aboutsummaryrefslogtreecommitdiffstats
path: root/network
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2016-09-30 15:23:26 +0100
committerSteven Hardy <shardy@redhat.com>2016-09-30 16:41:27 +0100
commitc947008d9e2d36f4a68f18ff1f56fa5b9bf21873 (patch)
tree2b3f27ffd5b2c918f3cd05746bd465ada07d2f7d /network
parentd601d64e110f5dfd3e471adc82ad8f898158c175 (diff)
Make keystone api network hiera composable
These hard-coded references to the Controller role mean that things won't work if the keystone service is moved to any other role, so we need to generate the lists dynamically based on the enabled services for each role. Change-Id: I5f1250a8a1a38cb3909feeb7d4c1000fd0fabd14 Closes-Bug: #1629096
Diffstat (limited to 'network')
-rw-r--r--network/ports/net_ip_list_map.yaml27
1 files changed, 25 insertions, 2 deletions
diff --git a/network/ports/net_ip_list_map.yaml b/network/ports/net_ip_list_map.yaml
index 07e2de4c..346059f2 100644
--- a/network/ports/net_ip_list_map.yaml
+++ b/network/ports/net_ip_list_map.yaml
@@ -32,6 +32,29 @@ parameters:
default: []
type: comma_delimited_list
+resources:
+ # This adds the extra "services" on for keystone
+ # so that keystone_admin_api_network and
+ # keystone_public_api_network point to the correct
+ # network on the nodes running the "keystone" service
+ EnabledServicesValue:
+ type: OS::Heat::Value
+ properties:
+ type: comma_delimited_list
+ value:
+ yaql:
+ expression: let(root => $) -> $.data.extra_services.items().where($[0] in $root.data.enabled_services).select($[1]).flatten() + $root.data.enabled_services
+ data:
+ enabled_services: {get_param: EnabledServices}
+ 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
+
outputs:
net_ip_map:
description: >
@@ -64,7 +87,7 @@ outputs:
template:
SERVICE_node_ips: SERVICE_network
for_each:
- SERVICE: {get_param: EnabledServices}
+ SERVICE: {get_attr: [EnabledServicesValue, value]}
- values: {get_param: ServiceNetMap}
- values:
ctlplane: {get_param: ControlPlaneIpList}
@@ -89,4 +112,4 @@ outputs:
template:
SERVICE_node_names: {get_param: ServiceHostnameList}
for_each:
- SERVICE: {get_param: EnabledServices}
+ SERVICE: {get_attr: [EnabledServicesValue, value]}