summaryrefslogtreecommitdiffstats
path: root/puppet
diff options
context:
space:
mode:
authorOliver Walsh <owalsh@redhat.com>2017-10-20 23:27:15 +0100
committerOliver Walsh <owalsh@redhat.com>2017-11-10 09:25:25 +0000
commit4217767d8782abae02b11f553fc14daf7cd72916 (patch)
tree40a20fb6bd90c57faed62de6192d3b208a6a0194 /puppet
parent690b938c58af1446bd27c34b17fa45e865241e99 (diff)
Refactor cellv2 host discovery logic to avoid races
The compute service list is polled until all expected hosts are reported or a timeout occurs (600s). Adds a cellv2_discovery flag to puppet services. Used to generate a list of hosts that should have cellv2 host mappings. Adds a canonical fqdn and that should match the fqdn reported by a host. Adds the ability to upload a config script for docker config instead of using complex bash on-liners. Closes-bug: 1720821 Change-Id: I33e2f296526c957cb5f96dff19682a4e60c6a0f0 (cherry picked from commit 61fcfca045aeb5be1ee280d8dd9c260fb39b9084)
Diffstat (limited to 'puppet')
-rw-r--r--puppet/all-nodes-config.j2.yaml6
-rw-r--r--puppet/role.role.j2.yaml10
2 files changed, 16 insertions, 0 deletions
diff --git a/puppet/all-nodes-config.j2.yaml b/puppet/all-nodes-config.j2.yaml
index bdd2bcf3..65949625 100644
--- a/puppet/all-nodes-config.j2.yaml
+++ b/puppet/all-nodes-config.j2.yaml
@@ -22,6 +22,8 @@ parameters:
type: json
controller_names:
type: comma_delimited_list
+ cellv2_discovery_hosts:
+ type: comma_delimited_list
NetVipMap:
type: json
RedisVirtualIP:
@@ -141,6 +143,10 @@ resources:
list_join:
- ','
- {get_param: controller_names}
+ - cellv2_discovery_hosts:
+ list_join:
+ - ','
+ - {get_param: cellv2_discovery_hosts}
deploy_identifier: {get_param: DeployIdentifier}
update_identifier: {get_param: UpdateIdentifier}
stack_action: {get_param: StackAction}
diff --git a/puppet/role.role.j2.yaml b/puppet/role.role.j2.yaml
index d53afd04..a3cbe851 100644
--- a/puppet/role.role.j2.yaml
+++ b/puppet/role.role.j2.yaml
@@ -477,6 +477,14 @@ resources:
- '.'
- - {get_attr: [{{server_resource_name}}, name]}
- ctlplane
+ canonical:
+ fqdn:
+ list_join:
+ - '.'
+ - - {get_attr: [{{server_resource_name}}, name]}
+ - {get_param: CloudDomain}
+ short:
+ - {get_attr: [{{server_resource_name}}, name]}
PreNetworkConfig:
type: OS::TripleO::{{role.name}}::PreNetworkConfig
@@ -602,6 +610,7 @@ resources:
fqdn_management: {get_attr: [NetHostMap, value, management, fqdn]}
fqdn_ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]}
fqdn_external: {get_attr: [NetHostMap, value, external, fqdn]}
+ fqdn_canonical: {get_attr: [NetHostMap, value, canonical, fqdn]}
# Resource for site-specific injection of root certificate
NodeTLSCAData:
@@ -696,6 +705,7 @@ outputs:
{{network.name_lower|default(network.name.lower())}}: {get_attr: [NetHostMap, value, {{network.name_lower|default(network.name.lower()) }}, fqdn]}
{%- endfor %}
ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]}
+ canonical: {get_attr: [NetHostMap, value, canonical, fqdn]}
hosts_entry:
value:
str_replace: