diff options
author | Giulio Fidente <gfidente@redhat.com> | 2017-05-24 18:45:59 +0200 |
---|---|---|
committer | Giulio Fidente <gfidente@redhat.com> | 2017-06-26 16:32:02 +0200 |
commit | 9c1940e461867f2ce986a81fa313d7995592f0c5 (patch) | |
tree | 7c0e47d78aca6b327ab9d53539582023627651de /overcloud.j2.yaml | |
parent | 71f13388161cbab12fe284f7b251ca8d36f7635c (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.yaml | 12 |
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]} |