Skip to content

Commit a45c794

Browse files
committed
Support producer tags
1 parent 0531c80 commit a45c794

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

tasks/consul-services.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,18 @@
77
chdir: "{{ consul_config_dir }}"
88
register: registered_consul_services
99

10+
- name: consul services | Initialize a flat list
11+
set_fact:
12+
consul_producer_services_flat: []
13+
14+
- name: consul services | Populate a flat list
15+
set_fact:
16+
consul_producer_services_flat: "{{ consul_producer_services_flat + [ item.name if item is mapping else item ] }}"
17+
with_items: "{{ consul_producer_services }}"
18+
1019
- name: consul services | Check if any services are old
1120
set_fact:
12-
old_services: "{{ registered_consul_services.stdout_lines | difference(consul_producer_services) }}"
21+
old_services: "{{ registered_consul_services.stdout_lines | difference(consul_producer_services_flat) }}"
1322

1423
- name: consul services | Ensure old consul services JSON (if any) are deregister
1524
file:
@@ -22,7 +31,7 @@
2231
- name: consul services | Ensure consul services JSON are registered
2332
template:
2433
src="consul-service.j2"
25-
dest="{{ consul_config_dir }}/sv_{{ item }}.json"
34+
dest="{{ consul_config_dir }}/sv_{{ item.name if item is mapping else item }}.json"
2635
with_items: "{{ consul_producer_services }}"
2736
notify:
2837
- reload consul service

templates/consul-service.j2

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
1+
{% if item is mapping %}
2+
{% if 'weight' in consul_services[item.name] %}
3+
{% set weight_value = consul_services[item.name].pop('weight') %}
4+
{% if 'tags' in consul_services[item.name] %}
5+
{% set _ = consul_services[item.name]['tags'].append("WEIGHT:" ~ weight_value ) %}
6+
{% else %}
7+
{% set _ = consul_services[item.name].update({'tags': ['WEIGHT:' ~ weight_value]}) %}
8+
{% endif %}
9+
{% endif %}
10+
11+
{% if 'tags' in consul_services[item.name] %}
12+
{% set _ = consul_services[item.name]['tags'].extend(item.add_tags) %}
13+
{% else %}
14+
{% set _ = consul_services[item.name].update({'tags': item.add_tags}) %}
15+
{% endif %}
16+
17+
18+
{ {{ '' if consul_services[item.name].pop('haproxy', '') else '' }}
19+
"service": {{ consul_services[item.name] | to_nice_json }}
20+
}
21+
{% else %}
122
{% if 'weight' in consul_services[item] %}
223
{% set weight_value = consul_services[item].pop('weight') %}
324
{% if 'tags' in consul_services[item] %}
@@ -10,3 +31,4 @@
1031
{ {{ '' if consul_services[item].pop('haproxy', '') else '' }}
1132
"service": {{ consul_services[item] | to_nice_json }}
1233
}
34+
{% endif %}

0 commit comments

Comments
 (0)