From e5cc47f9e2ba6e7c623d805af900b69b4d6266c8 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Thu, 2 Apr 2020 21:45:56 -0400 Subject: [PATCH] Introduce {{role.name}}ExtraGroupVars {{role.name}}ExtraGroupVars (e.g. ControllerExtraGroupVars) is a new interface to override any Ansible group var for a specific role. If the group var was already defined in a service, the ExtraGroupVars will override it. Depends-On: https://review.opendev.org/717170 Change-Id: I3115ea3b1bd14979bad5e2ed45e91107ee969ca9 --- ci/environments/scenario002-standalone.yaml | 2 ++ deployment/tests/test-container-volume.yaml | 15 +++++++++++++++ overcloud.j2.yaml | 6 ++++++ .../notes/extra_group_vars-aafa71945882442f.yaml | 7 +++++++ 4 files changed, 30 insertions(+) create mode 100644 releasenotes/notes/extra_group_vars-aafa71945882442f.yaml diff --git a/ci/environments/scenario002-standalone.yaml b/ci/environments/scenario002-standalone.yaml index b959730fbe..300b7a5947 100644 --- a/ci/environments/scenario002-standalone.yaml +++ b/ci/environments/scenario002-standalone.yaml @@ -66,3 +66,5 @@ parameter_defaults: - test_volume:/testvol NovaComputeOptVolumes: - test_volume:/testvol + StandaloneExtraGroupVars: + cinder_fake_group_var_one: var_one_override diff --git a/deployment/tests/test-container-volume.yaml b/deployment/tests/test-container-volume.yaml index 45aecb7e45..d69e0912a3 100644 --- a/deployment/tests/test-container-volume.yaml +++ b/deployment/tests/test-container-volume.yaml @@ -49,11 +49,26 @@ outputs: config_settings: {} step_config: '' service_config_settings: {} + ansible_group_vars: + cinder_fake_group_var_one: var_one + cinder_fake_group_var_two: var_two deploy_steps_tasks: - name: Manage test container volume when: - step|int == 2 block: + - name: Test that cinder_fake_group_var_one was overridden + assert: + that: + - cinder_fake_group_var_one == 'var_one_override' + fail_msg: "cinder_fake_group_var_one was not overriden" + success_msg: "cinder_fake_group_var_one was overriden" + - name: Test that cinder_fake_group_var_two was not overridden + assert: + that: + - cinder_fake_group_var_two == 'var_two' + fail_msg: "cinder_fake_group_var_two was overriden" + success_msg: "cinder_fake_group_var_two was not overriden" - name: Create Test Volume facts set_fact: test_container_cli: {get_param: ContainerCli} diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml index 401c01b110..c151fdc6ba 100644 --- a/overcloud.j2.yaml +++ b/overcloud.j2.yaml @@ -272,6 +272,11 @@ parameters: type: json description: Optional Role Specific parameters to be provided to service default: {} + + {{role.name}}ExtraGroupVars: + type: json + description: Optional extra Ansible group vars + default: {} {% endfor %} # Identifiers to trigger tasks on nodes @@ -1198,6 +1203,7 @@ outputs: neutron_physical_bridge_name: {get_param: NeutronPhysicalBridge} neutron_public_interface_name: {get_param: NeutronPublicInterface} network_deployment_actions: {get_attr: [{{role.name}}NetworkDeploymentActionsValue, value]} + - {get_param: {{role.name}}ExtraGroupVars} {%- endfor %} RoleNetHostnameMap: description: Mapping of each network to a list of hostnames for each role diff --git a/releasenotes/notes/extra_group_vars-aafa71945882442f.yaml b/releasenotes/notes/extra_group_vars-aafa71945882442f.yaml new file mode 100644 index 0000000000..8f8eb1ab68 --- /dev/null +++ b/releasenotes/notes/extra_group_vars-aafa71945882442f.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Introduce "{{role.name}}ExtraGroupVars" which allows to define + a dictionary of Ansible group vars per role. + These extra group vars will override any pre-defined group var from a + service.