Merge "Select per-network hostnames for service_node_names" into stable/newton
This commit is contained in:
commit
cb4ce13ffc
@ -31,6 +31,9 @@ parameters:
|
||||
ServiceHostnameList:
|
||||
default: []
|
||||
type: comma_delimited_list
|
||||
NetworkHostnameMap:
|
||||
default: []
|
||||
type: json
|
||||
|
||||
resources:
|
||||
# This adds the extra "services" on for keystone
|
||||
@ -100,6 +103,28 @@ outputs:
|
||||
service_hostnames:
|
||||
description: >
|
||||
Map of enabled services to a list of hostnames where they're running
|
||||
value:
|
||||
map_replace:
|
||||
- yaql:
|
||||
# This filters any entries where the value hasn't been substituted for
|
||||
# a list, e.g it's still $service_network. This happens when there is
|
||||
# no network defined for the service in the ServiceNetMap, which is OK
|
||||
# as not all services have to be bound to a network, so we filter them
|
||||
expression: dict($.data.map.items().where(not $[1].endsWith("_network")))
|
||||
data:
|
||||
map:
|
||||
map_replace:
|
||||
- map_merge:
|
||||
repeat:
|
||||
template:
|
||||
SERVICE_node_names: SERVICE_network
|
||||
for_each:
|
||||
SERVICE: {get_attr: [EnabledServicesValue, value]}
|
||||
- values: {get_param: ServiceNetMap}
|
||||
- values: {get_param: NetworkHostnameMap}
|
||||
short_service_hostnames:
|
||||
description: >
|
||||
Map of enabled services to a list of hostnames where they're running regardless of the network
|
||||
value:
|
||||
yaql:
|
||||
# If ServiceHostnameList is empty the role is deployed with zero nodes
|
||||
@ -110,6 +135,6 @@ outputs:
|
||||
map_merge:
|
||||
repeat:
|
||||
template:
|
||||
SERVICE_node_names: {get_param: ServiceHostnameList}
|
||||
SERVICE_short_node_names: {get_param: ServiceHostnameList}
|
||||
for_each:
|
||||
SERVICE: {get_attr: [EnabledServicesValue, value]}
|
||||
|
@ -245,6 +245,15 @@ resources:
|
||||
EnabledServices: {get_attr: [{{role.name}}ServiceChain, role_data, service_names]}
|
||||
ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
|
||||
ServiceHostnameList: {get_attr: [{{role.name}}, hostname]}
|
||||
NetworkHostnameMap:
|
||||
# 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 so we can
|
||||
# create a map of lists for all nodes for each network
|
||||
yaql:
|
||||
expression: dict($.data.where($ != null).flatten().selectMany($.items()).groupBy($[0], $[1], [$[0], $[1].flatten()]))
|
||||
data:
|
||||
- {get_attr: [{{role.name}}, hostname_map]}
|
||||
|
||||
{{role.name}}:
|
||||
type: OS::Heat::ResourceGroup
|
||||
@ -353,6 +362,14 @@ resources:
|
||||
l:
|
||||
{% for role in roles %}
|
||||
- {get_attr: [{{role.name}}IpListMap, service_hostnames]}
|
||||
{% endfor %}
|
||||
short_service_node_names:
|
||||
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, short_service_hostnames]}
|
||||
{% endfor %}
|
||||
# FIXME(shardy): These require further work to move into service_ips
|
||||
memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MemcachedNetwork]}]}
|
||||
|
@ -28,6 +28,8 @@ parameters:
|
||||
type: json
|
||||
service_node_names:
|
||||
type: json
|
||||
short_service_node_names:
|
||||
type: json
|
||||
controller_names:
|
||||
type: comma_delimited_list
|
||||
memcache_node_ips:
|
||||
@ -122,6 +124,7 @@ resources:
|
||||
# provides a mapping of service_name_ips to a list of IPs
|
||||
- {get_param: service_ips}
|
||||
- {get_param: service_node_names}
|
||||
- {get_param: short_service_node_names}
|
||||
- controller_node_ips:
|
||||
list_join:
|
||||
- ','
|
||||
|
@ -307,6 +307,51 @@ outputs:
|
||||
hostname:
|
||||
description: Hostname of the server
|
||||
value: {get_attr: [BlockStorage, name]}
|
||||
hostname_map:
|
||||
description: Mapping of network names to hostnames
|
||||
value:
|
||||
external:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [BlockStorage, name]}
|
||||
- external
|
||||
- {get_param: CloudDomain}
|
||||
internal_api:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [BlockStorage, name]}
|
||||
- internalapi
|
||||
- {get_param: CloudDomain}
|
||||
storage:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [BlockStorage, name]}
|
||||
- storage
|
||||
- {get_param: CloudDomain}
|
||||
storage_mgmt:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [BlockStorage, name]}
|
||||
- storagemgmt
|
||||
- {get_param: CloudDomain}
|
||||
tenant:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [BlockStorage, name]}
|
||||
- tenant
|
||||
- {get_param: CloudDomain}
|
||||
management:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [BlockStorage, name]}
|
||||
- management
|
||||
- {get_param: CloudDomain}
|
||||
ctlplane:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [BlockStorage, name]}
|
||||
- ctlplane
|
||||
- {get_param: CloudDomain}
|
||||
hosts_entry:
|
||||
value:
|
||||
str_replace:
|
||||
|
@ -317,6 +317,51 @@ outputs:
|
||||
hostname:
|
||||
description: Hostname of the server
|
||||
value: {get_attr: [CephStorage, name]}
|
||||
hostname_map:
|
||||
description: Mapping of network names to hostnames
|
||||
value:
|
||||
external:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [CephStorage, name]}
|
||||
- external
|
||||
- {get_param: CloudDomain}
|
||||
internal_api:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [CephStorage, name]}
|
||||
- internalapi
|
||||
- {get_param: CloudDomain}
|
||||
storage:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [CephStorage, name]}
|
||||
- storage
|
||||
- {get_param: CloudDomain}
|
||||
storage_mgmt:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [CephStorage, name]}
|
||||
- storagemgmt
|
||||
- {get_param: CloudDomain}
|
||||
tenant:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [CephStorage, name]}
|
||||
- tenant
|
||||
- {get_param: CloudDomain}
|
||||
management:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [CephStorage, name]}
|
||||
- management
|
||||
- {get_param: CloudDomain}
|
||||
ctlplane:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [CephStorage, name]}
|
||||
- ctlplane
|
||||
- {get_param: CloudDomain}
|
||||
hosts_entry:
|
||||
value:
|
||||
str_replace:
|
||||
|
@ -360,6 +360,51 @@ outputs:
|
||||
hostname:
|
||||
description: Hostname of the server
|
||||
value: {get_attr: [NovaCompute, name]}
|
||||
hostname_map:
|
||||
description: Mapping of network names to hostnames
|
||||
value:
|
||||
external:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [NovaCompute, name]}
|
||||
- external
|
||||
- {get_param: CloudDomain}
|
||||
internal_api:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [NovaCompute, name]}
|
||||
- internalapi
|
||||
- {get_param: CloudDomain}
|
||||
storage:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [NovaCompute, name]}
|
||||
- storage
|
||||
- {get_param: CloudDomain}
|
||||
storage_mgmt:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [NovaCompute, name]}
|
||||
- storagemgmt
|
||||
- {get_param: CloudDomain}
|
||||
tenant:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [NovaCompute, name]}
|
||||
- tenant
|
||||
- {get_param: CloudDomain}
|
||||
management:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [NovaCompute, name]}
|
||||
- management
|
||||
- {get_param: CloudDomain}
|
||||
ctlplane:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [NovaCompute, name]}
|
||||
- ctlplane
|
||||
- {get_param: CloudDomain}
|
||||
hosts_entry:
|
||||
description: >
|
||||
Server's IP address and hostname in the /etc/hosts format
|
||||
|
@ -403,6 +403,51 @@ outputs:
|
||||
hostname:
|
||||
description: Hostname of the server
|
||||
value: {get_attr: [Controller, name]}
|
||||
hostname_map:
|
||||
description: Mapping of network names to hostnames
|
||||
value:
|
||||
external:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [Controller, name]}
|
||||
- external
|
||||
- {get_param: CloudDomain}
|
||||
internal_api:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [Controller, name]}
|
||||
- internalapi
|
||||
- {get_param: CloudDomain}
|
||||
storage:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [Controller, name]}
|
||||
- storage
|
||||
- {get_param: CloudDomain}
|
||||
storage_mgmt:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [Controller, name]}
|
||||
- storagemgmt
|
||||
- {get_param: CloudDomain}
|
||||
tenant:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [Controller, name]}
|
||||
- tenant
|
||||
- {get_param: CloudDomain}
|
||||
management:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [Controller, name]}
|
||||
- management
|
||||
- {get_param: CloudDomain}
|
||||
ctlplane:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [Controller, name]}
|
||||
- ctlplane
|
||||
- {get_param: CloudDomain}
|
||||
hosts_entry:
|
||||
description: >
|
||||
Server's IP address and hostname in the /etc/hosts format
|
||||
|
@ -306,6 +306,51 @@ outputs:
|
||||
hostname:
|
||||
description: Hostname of the server
|
||||
value: {get_attr: [SwiftStorage, name]}
|
||||
hostname_map:
|
||||
description: Mapping of network names to hostnames
|
||||
value:
|
||||
external:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [SwiftStorage, name]}
|
||||
- external
|
||||
- {get_param: CloudDomain}
|
||||
internal_api:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [SwiftStorage, name]}
|
||||
- internalapi
|
||||
- {get_param: CloudDomain}
|
||||
storage:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [SwiftStorage, name]}
|
||||
- storage
|
||||
- {get_param: CloudDomain}
|
||||
storage_mgmt:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [SwiftStorage, name]}
|
||||
- storagemgmt
|
||||
- {get_param: CloudDomain}
|
||||
tenant:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [SwiftStorage, name]}
|
||||
- tenant
|
||||
- {get_param: CloudDomain}
|
||||
management:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [SwiftStorage, name]}
|
||||
- management
|
||||
- {get_param: CloudDomain}
|
||||
ctlplane:
|
||||
list_join:
|
||||
- '.'
|
||||
- - {get_attr: [SwiftStorage, name]}
|
||||
- ctlplane
|
||||
- {get_param: CloudDomain}
|
||||
hosts_entry:
|
||||
value:
|
||||
str_replace:
|
||||
|
Loading…
Reference in New Issue
Block a user