Add Keystone admin/public to enabled services list

These services need to be added to the ServiceNames resources list of
enabled services per role if we want groupings for them to be created in
the ansible inventory.

This same logic already exists in network/ports/net_ip_list_map.j2.yaml,
where the hieradata for <service>_node_[names,ips] are created. We also
need these service groupings to exist in the ansible inventory if we
want to make this hieradata generic instead of hardcoded coming out of
the heat templates.

Change-Id: Ie4c221a850a9018b4eb62bfd3d54ac22395b7a9c
This commit is contained in:
James Slagle 2019-04-24 14:07:41 -04:00
parent 2cee65b397
commit bfd3fea2ef

View File

@ -543,8 +543,17 @@ resources:
type: comma_delimited_list
value:
yaql:
expression: coalesce($.data, []).where($ != null)
data: {get_attr: [{{role.name}}ServiceChainRoleData, value, service_names]}
expression: let(root => $) -> $.data.extra_services.items().where($[0] in coalesce($root.data.enabled_services, [])).select($[1]).flatten() + coalesce($root.data.enabled_services, [])
data:
enabled_services: {get_attr: [{{role.name}}ServiceChainRoleData, value, service_names]}
extra_services:
# If anything other than keystone needs this
# then we should add an extra_networks interface
# to the service templates role_data but for
# now we hard-code the keystone special case
keystone:
- keystone_admin_api
- keystone_public_api
{{role.name}}HostsDeployment:
type: OS::Heat::StructuredDeployments