From 4217767d8782abae02b11f553fc14daf7cd72916 Mon Sep 17 00:00:00 2001 From: Oliver Walsh Date: Fri, 20 Oct 2017 23:27:15 +0100 Subject: 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) --- puppet/all-nodes-config.j2.yaml | 6 ++++++ puppet/role.role.j2.yaml | 10 ++++++++++ 2 files changed, 16 insertions(+) (limited to 'puppet') 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: -- cgit 1.2.3-korg