Skip to content

Commit 85ac463

Browse files
Merge pull request #108 from noelmcloughlin/part1
feat(federation-set): add support for
2 parents 67a7f18 + 58343b6 commit 85ac463

20 files changed

+606
-168
lines changed

.gitlab-ci.yml

+9-9
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ rubocop:
137137
# default-rockylinux-8-tiamat-py3: {extends: '.test_instance'}
138138
# default-debian-11-master-py3: {extends: '.test_instance'}
139139
# nopillars-debian-11-master-py3: {extends: '.test_instance'}
140-
debian-11-master-py3: {extends: '.test_instance'}
140+
### debian-11-master-py3: {extends: '.test_instance'}
141141
# default-debian-10-master-py3: {extends: '.test_instance'}
142142
# nopillars-debian-10-master-py3: {extends: '.test_instance'}
143143
debian-10-master-py3: {extends: '.test_instance'}
@@ -146,16 +146,16 @@ debian-10-master-py3: {extends: '.test_instance'}
146146
# debian-9-master-py3: {extends: '.test_instance'}
147147
# default-ubuntu-2004-master-py3: {extends: '.test_instance'}
148148
# nopillars-ubuntu-2004-master-py3: {extends: '.test_instance'}
149-
ubuntu-2004-master-py3: {extends: '.test_instance'}
149+
### ubuntu-2004-master-py3: {extends: '.test_instance'}
150150
# default-ubuntu-1804-master-py3: {extends: '.test_instance'}
151151
# nopillars-ubuntu-1804-master-py3: {extends: '.test_instance'}
152-
ubuntu-1804-master-py3: {extends: '.test_instance'}
152+
### ubuntu-1804-master-py3: {extends: '.test_instance'}
153153
# default-centos-8-master-py3: {extends: '.test_instance'}
154154
# nopillars-centos-8-master-py3: {extends: '.test_instance'}
155-
centos-8-master-py3: {extends: '.test_instance'}
155+
### centos-8-master-py3: {extends: '.test_instance'}
156156
# default-centos-7-master-py3: {extends: '.test_instance'}
157157
# nopillars-centos-7-master-py3: {extends: '.test_instance'}
158-
centos-7-master-py3: {extends: '.test_instance'}
158+
### centos-7-master-py3: {extends: '.test_instance'}
159159
default-fedora-34-master-py3: {extends: '.test_instance'}
160160
# nopillars-fedora-34-master-py3: {extends: '.test_instance'}
161161
# fedora-34-master-py3: {extends: '.test_instance'}
@@ -176,10 +176,10 @@ default-opensuse-tmbl-latest-master-py3: {extends: '.test_instance'}
176176
# amazonlinux-2-master-py3: {extends: '.test_instance'}
177177
# default-oraclelinux-8-master-py3: {extends: '.test_instance'}
178178
# nopillars-oraclelinux-8-master-py3: {extends: '.test_instance'}
179-
oraclelinux-8-master-py3: {extends: '.test_instance'}
179+
### oraclelinux-8-master-py3: {extends: '.test_instance'}
180180
# default-oraclelinux-7-master-py3: {extends: '.test_instance'}
181181
# nopillars-oraclelinux-7-master-py3: {extends: '.test_instance'}
182-
oraclelinux-7-master-py3: {extends: '.test_instance'}
182+
### oraclelinux-7-master-py3: {extends: '.test_instance'}
183183
# default-arch-base-latest-master-py3: {extends: '.test_instance'}
184184
# nopillars-arch-base-latest-master-py3: {extends: '.test_instance'}
185185
# arch-base-latest-master-py3: {extends: '.test_instance'}
@@ -191,10 +191,10 @@ oraclelinux-7-master-py3: {extends: '.test_instance'}
191191
# gentoo-stage3-systemd-master-py3: {extends: '.test_instance'}
192192
# default-almalinux-8-master-py3: {extends: '.test_instance'}
193193
# nopillars-almalinux-8-master-py3: {extends: '.test_instance'}
194-
almalinux-8-master-py3: {extends: '.test_instance'}
194+
### almalinux-8-master-py3: {extends: '.test_instance'}
195195
# default-rockylinux-8-master-py3: {extends: '.test_instance'}
196196
# nopillars-rockylinux-8-master-py3: {extends: '.test_instance'}
197-
rockylinux-8-master-py3: {extends: '.test_instance'}
197+
### rockylinux-8-master-py3: {extends: '.test_instance'}
198198
# default-debian-11-3003-1-py3: {extends: '.test_instance'}
199199
# default-debian-10-3003-1-py3: {extends: '.test_instance'}
200200
# default-debian-9-3003-1-py3: {extends: '.test_instance'}

pillar.example

+48-22
Original file line numberDiff line numberDiff line change
@@ -88,27 +88,40 @@ rabbitmq:
8888
- '.*'
8989
- '.*'
9090
- '.*'
91+
parameters:
92+
my-federation-upstream-set:
93+
component: federation-upstream-set
94+
definition:
95+
# todo: multiple dict items (not just one)
96+
upstream: my-federation-upstream1
97+
vhost: default_vhost
98+
my-federation-upstream1:
99+
component: federation-upstream
100+
definition:
101+
uri: 'amqp://saltstack_mq:password@localhost'
102+
ack-mode: on-confirm
103+
trust-user-id: true
104+
max-hops: 1
105+
vhost: default_vhost
91106
policies:
92-
my-federate-policy:
107+
my-federation-policy1:
93108
definition:
94109
federation-upstream-set: all
95-
pattern: '^federated\.'
110+
pattern: '^federated1\.'
111+
priority: 1
112+
vhost: default_vhost
113+
my-federation-policy2:
114+
definition:
115+
federation-upstream-set: my-federation-upstream-set
116+
pattern: '^federated2\.'
96117
priority: 1
97118
vhost: default_vhost
98119
my-ha-policy:
99120
definition:
100121
ha-mode: nodes
101122
ha-params: ["rabbit", "rabbit2"]
102123
pattern: '.*'
103-
vhost: default_vhost
104-
parameters:
105-
my-upstream1:
106-
component: federation-upstream
107-
params:
108-
uri: 'amqp://saltstack_mq:password@localhost'
109-
ack-mode: on-confirm
110-
trust-user-id: true
111-
max-hops: 1
124+
priority: 1
112125
vhost: default_vhost
113126

114127
rabbit2:
@@ -197,27 +210,40 @@ rabbitmq:
197210
- '.*'
198211
- '.*'
199212
- '.*'
213+
parameters:
214+
my-federation-upstream-set:
215+
component: federation-upstream-set
216+
definition:
217+
# todo: multiple dict items (not just one)
218+
upstream: my-federation-upstream1
219+
vhost: rabbit2_vhost
220+
my-federation-upstream1:
221+
component: federation-upstream
222+
definition:
223+
uri: 'amqp://saltstack_mq:password@localhost'
224+
ack-mode: on-confirm
225+
trust-user-id: true
226+
max-hops: 1
227+
vhost: rabbit2_vhost
200228
policies:
201-
my-federate-policy:
229+
my-federation-policy1:
202230
definition:
203231
federation-upstream-set: all
204-
pattern: '^federated\.'
232+
pattern: '^federated1\.'
233+
priority: 1
234+
vhost: rabbit2_vhost
235+
my-federation-policy2:
236+
definition:
237+
federation-upstream-set: my-federation-upstream-set
238+
pattern: '^federated2\.'
205239
priority: 1
206240
vhost: rabbit2_vhost
207241
my-ha-policy:
208242
definition:
209243
ha-mode: nodes
210244
ha-params: ["rabbit", "rabbit2"]
211245
pattern: '.*'
212-
vhost: rabbit2_vhost
213-
parameters:
214-
my-upstream1:
215-
component: federation-upstream
216-
params:
217-
uri: 'amqp://saltstack_mq:password@localhost'
218-
ack-mode: on-confirm
219-
trust-user-id: true
220-
max-hops: 1
246+
priority: 1
221247
vhost: rabbit2_vhost
222248

223249
pkg:

rabbitmq/config/parameters/install.sls

+5-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ include:
1515
rabbitmq-config-parameters-present-{{ name }}-{{ param }}:
1616
cmd.run:
1717
- name: >-
18-
/usr/sbin/rabbitmqctl --node {{ name }} set_parameter --vhost={{ '/' if 'vhost' not in p else p.vhost }} {{ p.component }} '{{ param }}' '{{ p.params|json }}' # noqa 204
18+
{%- if p.component == 'federation-upstream' %}
19+
/usr/sbin/rabbitmqctl --node {{ name }} set_parameter --vhost={{ '/' if 'vhost' not in p else p.vhost }} {{ p.component }} '{{ param }}' '{{ p.definition|json }}' # noqa 204
20+
{%- else %}{# federation-upstream-set for now #}
21+
/usr/sbin/rabbitmqctl --node {{ name }} set_parameter --vhost={{ '/' if 'vhost' not in p else p.vhost }} {{ p.component }} '{{ param }}' '[{{ p.definition|json }},]' # noqa 204
22+
{%- endif %}
1923
- runas: rabbitmq
2024
- onlyif: test -x /usr/sbin/rabbitmqctl
2125
- require:

test/integration/default/files/_mapdata/almalinux-8.yaml

+32-8
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,14 @@ values:
5858
vhost: default_vhost
5959
nodeport: 5672
6060
parameters:
61-
my-upstream1:
61+
my-federation-upstream-set:
62+
component: federation-upstream-set
63+
definition:
64+
upstream: my-federation-upstream1
65+
vhost: default_vhost
66+
my-federation-upstream1:
6267
component: federation-upstream
63-
params:
68+
definition:
6469
ack-mode: on-confirm
6570
max-hops: 1
6671
trust-user-id: true
@@ -74,17 +79,24 @@ values:
7479
- rabbitmq_shovel
7580
- rabbitmq_shovel_management
7681
policies:
77-
my-federate-policy:
82+
my-federation-policy1:
83+
definition:
84+
federation-upstream-set: all
85+
pattern: '^federated1\.'
86+
priority: 1
87+
vhost: default_vhost
88+
my-federation-policy2:
7889
definition:
7990
federation-upstream-set: all
80-
pattern: '^federated\.'
91+
pattern: '^federated2\.'
8192
priority: 1
8293
vhost: default_vhost
8394
my-ha-policy:
8495
definition:
8596
ha-mode: nodes
8697
ha-params: ["rabbit", "rabbit2"]
8798
pattern: '.*'
99+
priority: 1
88100
vhost: default_vhost
89101
queues:
90102
my-queue:
@@ -161,27 +173,39 @@ values:
161173
join_node: rabbit # create multinode cluster on localhost
162174
nodeport: 5673
163175
parameters:
164-
my-upstream1:
176+
my-federation-upstream-set:
177+
component: federation-upstream-set
178+
definition:
179+
upstream: my-federation-upstream1
180+
vhost: default_vhost
181+
my-federation-upstream1:
165182
component: federation-upstream
166-
params:
183+
definition:
167184
ack-mode: on-confirm
168185
max-hops: 1
169186
trust-user-id: true
170187
uri: 'amqp://saltstack_mq:password@localhost'
171188
vhost: rabbit2_vhost
172189
plugins: []
173190
policies:
174-
my-federate-policy:
191+
my-federation-policy1:
192+
definition:
193+
federation-upstream-set: all
194+
pattern: '^federated1\.'
195+
priority: 1
196+
vhost: rabbit2_vhost
197+
my-federation-policy2:
175198
definition:
176199
federation-upstream-set: all
177-
pattern: '^federated\.'
200+
pattern: '^federated2\.'
178201
priority: 1
179202
vhost: rabbit2_vhost
180203
my-ha-policy:
181204
definition:
182205
ha-mode: nodes
183206
ha-params: ["rabbit", "rabbit2"]
184207
pattern: '.*'
208+
priority: 1
185209
vhost: rabbit2_vhost
186210
queues:
187211
my-queue:

test/integration/default/files/_mapdata/centos-7.yaml

+32-8
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,14 @@ values:
6161
vhost: default_vhost
6262
nodeport: 5672
6363
parameters:
64-
my-upstream1:
64+
my-federation-upstream-set:
65+
component: federation-upstream-set
66+
definition:
67+
upstream: my-federation-upstream1
68+
vhost: default_vhost
69+
my-federation-upstream1:
6570
component: federation-upstream
66-
params:
71+
definition:
6772
ack-mode: on-confirm
6873
max-hops: 1
6974
trust-user-id: true
@@ -77,17 +82,24 @@ values:
7782
- rabbitmq_shovel
7883
- rabbitmq_shovel_management
7984
policies:
80-
my-federate-policy:
85+
my-federation-policy1:
8186
definition:
8287
federation-upstream-set: all
83-
pattern: '^federated\.'
88+
pattern: '^federated1\.'
89+
priority: 1
90+
vhost: default_vhost
91+
my-federation-policy2:
92+
definition:
93+
federation-upstream-set: my-federation-upstream-set
94+
pattern: '^federated2\.'
8495
priority: 1
8596
vhost: default_vhost
8697
my-ha-policy:
8798
definition:
8899
ha-mode: nodes
89100
ha-params: ["rabbit", "rabbit2"]
90101
pattern: '.*'
102+
priority: 1
91103
vhost: default_vhost
92104
queues:
93105
my-queue:
@@ -164,27 +176,39 @@ values:
164176
join_node: rabbit # create multinode cluster on localhost
165177
nodeport: 5673
166178
parameters:
167-
my-upstream1:
179+
my-federation-upstream-set:
180+
component: federation-upstream-set
181+
definition:
182+
upstream: my-federation-upstream1
183+
vhost: default_vhost
184+
my-federation-upstream1:
168185
component: federation-upstream
169-
params:
186+
definition:
170187
ack-mode: on-confirm
171188
max-hops: 1
172189
trust-user-id: true
173190
uri: 'amqp://saltstack_mq:password@localhost'
174191
vhost: rabbit2_vhost
175192
plugins: []
176193
policies:
177-
my-federate-policy:
194+
my-federation-policy1:
178195
definition:
179196
federation-upstream-set: all
180-
pattern: '^federated\.'
197+
pattern: '^federated1\.'
198+
priority: 1
199+
vhost: rabbit2_vhost
200+
my-federation-policy2:
201+
definition:
202+
federation-upstream-set: my-federation-upstream-set
203+
pattern: '^federated2\.'
181204
priority: 1
182205
vhost: rabbit2_vhost
183206
my-ha-policy:
184207
definition:
185208
ha-mode: nodes
186209
ha-params: ["rabbit", "rabbit2"]
187210
pattern: '.*'
211+
priority: 1
188212
vhost: rabbit2_vhost
189213
queues:
190214
my-queue:

0 commit comments

Comments
 (0)