Add EndpointMapOverride parameter

This allows overriding the calculated EndpointMap, which is useful
in some cases such as deploying compute-only stacks which reference
some existing endpoints from a controlplane stack.

The values can be generated like:

openstack stack output show controlplane EndpointMap

Or with https://review.openstack.org/#/c/521969/ applied to heatclient:

openstack stack output show controlplane EndpointMap --format yaml \
 | grep -A 1000 output_value | sed "s/^/  /" \
 | sed "1s/^/parameter_defaults:\n  EndpointMapOverride:\n/" | sed "/output_value/d"

Change-Id: Ie1185b99db1b0db93acaf0deae05bd7b707b442f
This commit is contained in:
Steven Hardy 2017-11-20 18:18:38 +00:00
parent f2915552b9
commit 0f49e8eb8b

View File

@ -63,6 +63,10 @@ parameters:
default: []
description: List of extra hosts entries to be appended to /etc/hosts
type: comma_delimited_list
EndpointMapOverride:
default: {}
description: Can be used to override the calcluated EndpointMap
type: json
ExtraConfig:
default: {}
description: |
@ -353,7 +357,10 @@ resources:
type: OS::Heat::Value
properties:
type: json
value: {get_attr: [EndpointMap, endpoint_map]}
value:
map_merge:
- {get_attr: [EndpointMap, endpoint_map]}
- {get_param: EndpointMapOverride}
SshKnownHostsConfig:
type: OS::TripleO::Ssh::KnownHostsConfig
@ -376,7 +383,7 @@ resources:
ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
ServiceData:
net_cidr_map: {get_attr: [NetCidrMapValue, value]}
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
EndpointMap: {get_attr: [EndpointMapData, value]}
DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
RoleName: {{role.name}}
RoleParameters: {get_param: {{role.name}}Parameters}
@ -535,7 +542,7 @@ resources:
properties:
CloudDomain: {get_param: CloudDomain}
ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
EndpointMap: {get_attr: [EndpointMapData, value]}
Hostname:
str_replace:
template: {get_param: {{role.name}}HostnameFormat}
@ -857,7 +864,7 @@ resources:
{{role.name}}: {get_attr: [{{role.name}}Servers, value]}
{% endfor %}
stack_name: {get_param: 'OS::stack_name'}
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
EndpointMap: {get_attr: [EndpointMapData, value]}
ctlplane_service_ips:
# Note (shardy) this somewhat complex yaql may be replaced
# with a map_deep_merge function in ocata. It merges the