From c5ba2cec81900fa086b6a9e72cd7e2dccf4b0b17 Mon Sep 17 00:00:00 2001 From: James Slagle Date: Wed, 3 Jul 2019 09:29:25 -0400 Subject: [PATCH] Use Ansible for {{role}} and host_extraconfig hieradata Migrates these hieradata files to use the cloud_domain and fqdn templates from tripleo-hieradata. The templates have more meaningful names to actually represent the data that these hieradata files contain. Detailed changes: common/deploy-steps.j2: Add parameter for CloudDomain and add it to the Ansible global vars Remove the Per-host hieradata tasks and parameters as they are no longer used Add cloud_domain and fqdn to list of templates for tripleo-hieradata overcloud.j2.yaml: Add role_networks to HieradataVars for each role Replace {{role}} and host_extraconfig from hieradata hierarchy with cloud_domain and fqdn. puppet/role.role.j2.yaml: Remove {{role}} hieradata from hieradata Datafiles as the template is now used instead. Remove per host hieradata resources and output as they are no longer used. Depends-On: I9c038399fccc4730b73e1a52281d7256ea689ee9 Change-Id: I136fb7aa864a2a3668f5a3845f3ded28b13bfe43 --- common/deploy-steps.j2 | 23 +++++++++-------------- overcloud.j2.yaml | 14 ++++++++------ puppet/role.role.j2.yaml | 18 ------------------ 3 files changed, 17 insertions(+), 38 deletions(-) diff --git a/common/deploy-steps.j2 b/common/deploy-steps.j2 index 0964f8fa77..75a80d9fea 100644 --- a/common/deploy-steps.j2 +++ b/common/deploy-steps.j2 @@ -122,9 +122,6 @@ parameters: {{role.name}}DeploymentHierarchy: type: json default: {} - {{role.name}}PerHostHieradata: - type: json - default: {} {{role.name}}HieradataVars: type: json default: {} @@ -202,6 +199,12 @@ parameters: EnableInternalTLS: type: boolean default: false + CloudDomain: + default: 'localdomain' + type: string + description: > + The DNS domain used for the hosts. This must match the + overcloud_domain_name configured on the undercloud. conditions: {% for role in enabled_roles %} @@ -367,6 +370,7 @@ outputs: {%- endfor %} cloud_names: {get_param: CloudNames} enable_internal_tls: {get_param: EnableInternalTLS} + cloud_domain: {get_param: CloudDomain} common_deploy_steps_tasks: {get_file: deploy-steps-tasks.yaml} docker_puppet_script: {get_file: ./container-puppet.py} all_nodes_validation_script.sh : {get_file: ../validation-scripts/all-nodes.sh} @@ -506,16 +510,6 @@ outputs: hieradata_variable_end_string: $$ hieradata_files: "{{ '{{' }} lookup('file', '{{role.name}}/deployment-hierarchy.yaml') {{ '}}' }}" when: tripleo_role_name == '{{role.name}}' - - name: Per-host hieradata - include_role: - name: tripleo-hieradata - vars: - hieradata_template: "{{role.name}}/per-host-hieradata.j2.yaml" - hieradata_per_host: True - hieradata_variable_start_string: $$ - hieradata_variable_end_string: $$ - hieradata_files: "{{ '{{' }} lookup('file', '{{role.name}}/deployment-hierarchy.yaml') {{ '}}' }}" - when: tripleo_role_name == '{{role.name}}' {%- endfor %} tags: - overcloud @@ -538,6 +532,8 @@ outputs: - all_nodes - vip_data - net_ip_map + - cloud_domain + - fqdn when: tripleo_role_name == '{{role.name}}' tags: - overcloud @@ -804,7 +800,6 @@ outputs: {%- for role in roles %} {{role.name}}/deployment-hieradata.j2.yaml: {get_param: {{role.name}}DeploymentHieradata} {{role.name}}/deployment-hierarchy.yaml: {get_param: {{role.name}}DeploymentHierarchy} - {{role.name}}/per-host-hieradata.j2.yaml: {get_param: {{role.name}}PerHostHieradata} {{role.name}}/hieradata_vars: {get_param: {{role.name}}HieradataVars} {%- endfor %} update_steps_tasks: | diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml index fe764933b7..0f5cb1ce6a 100644 --- a/overcloud.j2.yaml +++ b/overcloud.j2.yaml @@ -785,6 +785,12 @@ resources: data: {get_attr: [{{outer_role.name}}, {{network.name}}_cidr]} {%- endif %} {%- endfor %} + role_networks: + {%- for network in networks %} + {%- if network.enabled|default(true) and network.name in outer_role.networks|default([]) %} + - {{network.name}} + {% endif %} + {% endfor %} {%- endfor %} GlobalConfig: @@ -966,7 +972,7 @@ resources: properties: value: - '"%{::uuid}"' - - host_extraconfig + - fqdn - docker_puppet # Optionally provided by container-puppet.py - heat_config_%{::deploy_config_name} - config_step @@ -974,7 +980,7 @@ resources: - extraconfig - service_names - service_configs - - {{role.name.lower()}} + - cloud_domain - bootstrap_node # provided by tripleo-hieradata - all_nodes # provided by tripleo-hieradata - vip_data # provided by tripleo-hieradata @@ -1018,10 +1024,6 @@ resources: - {get_attr: [{{role.name}}, config_datafiles]} {{role.name}}DeploymentHierarchy: {get_attr: [{{role.name}}ConfigHierarchy, value]} - {{role.name}}PerHostHieradata: - map_merge: - list_concat: - - {get_attr: [{{role.name}}, per_host_hieradata_map]} {%- endfor %} ServiceNetMapLower: {get_attr: [ServiceNetMap, service_net_map_lower]} PingTestIpsMap: diff --git a/puppet/role.role.j2.yaml b/puppet/role.role.j2.yaml index 3ec6abc6ae..26bb66eca8 100644 --- a/puppet/role.role.j2.yaml +++ b/puppet/role.role.j2.yaml @@ -660,8 +660,6 @@ resources: {%- endif %} - {get_param: {{role.name}}ExtraConfig} extraconfig: {get_param: ExtraConfig} - {{role.name.lower()}}: - tripleo::clouddomain: {get_param: CloudDomain} # Resource for site-specific injection of root certificate NodeTLSCAData: @@ -746,14 +744,6 @@ resources: fqdn_ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]} fqdn_canonical: {get_attr: [NetHostMap, value, canonical, fqdn]} - {{server_resource_name}}PerHostHieradata: - type: OS::Heat::Value - properties: - type: json - value: - datafiles: - host_extraconfig: {get_attr: [{{server_resource_name}}AnsibleHostVars, value]} - outputs: ansible_host_vars_map: @@ -766,14 +756,6 @@ outputs: - host: {get_attr: [{{server_resource_name}}AnsibleHostVars, value]} - keys: host: {get_attr: [{{server_resource_name}}, name]} - per_host_hieradata_map: - description: | - Map of Hieradata specific per host. - value: - map_replace: - - host: {get_attr: [{{server_resource_name}}PerHostHieradata, value]} - - keys: - host: {get_attr: [{{server_resource_name}}, name]} config_datafiles: description: The config in the full format with datafiles section. value: {get_attr: [{{server_resource_name}}ConfigDatafiles, value]}