aboutsummaryrefslogtreecommitdiffstats
path: root/overcloud.j2.yaml
diff options
context:
space:
mode:
authorGiulio Fidente <gfidente@redhat.com>2017-05-24 18:45:59 +0200
committerGiulio Fidente <gfidente@redhat.com>2017-06-26 16:32:02 +0200
commit9c1940e461867f2ce986a81fa313d7995592f0c5 (patch)
tree7c0e47d78aca6b327ab9d53539582023627651de /overcloud.j2.yaml
parent71f13388161cbab12fe284f7b251ca8d36f7635c (diff)
Provides a list of per-service ctlplane IPs to the workflows env
Adds in the execution environment of the workflow steps a list of per-service network IPs. This can be used by the workflows to execute actions against the nodes hosting a given service. Change-Id: Id7c735d53f04f6ad848b2f9f1adaa3c84ecd2fcd Implements: blueprint tripleo-ceph-ansible
Diffstat (limited to 'overcloud.j2.yaml')
-rw-r--r--overcloud.j2.yaml12
1 files changed, 12 insertions, 0 deletions
diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml
index bc74a5ac..448f6d8b 100644
--- a/overcloud.j2.yaml
+++ b/overcloud.j2.yaml
@@ -737,6 +737,18 @@ resources:
{% endfor %}
stack_name: {get_param: 'OS::stack_name'}
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
+ ctlplane_service_ips:
+ # Note (shardy) this somewhat complex yaql may be replaced
+ # with a map_deep_merge function in ocata. It merges the
+ # list of maps, but appends to colliding lists when a service
+ # is deployed on more than one role
+ yaql:
+ expression: dict($.data.l.where($ != null).selectMany($.items()).groupBy($[0], $[1], [$[0], $[1].flatten()]))
+ data:
+ l:
+{% for role in roles %}
+ - {get_attr: [{{role.name}}IpListMap, ctlplane_service_ips]}
+{% endfor %}
role_data:
{% for role in roles %}
{{role.name}}: {get_attr: [{{role.name}}ServiceChainRoleData, value]}