From d56161c5fb94e2ce48729aced6c77641a041fc11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harald=20Jens=C3=A5s?= Date: Wed, 27 May 2020 09:43:42 +0200 Subject: [PATCH] Make IronicConductorGroup role_specific Make it possible to configure the IronicConductorGroup property per rolem, so that grouping of baremetal nodes with conductors in different sites is possible when deploying Ironic in the overcloud. Closes-Bug: #1880754 Change-Id: I1de6a90a8a8feef1056b0d56d5cfc74bb8eacd97 --- .../ironic-conductor-container-puppet.yaml | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/deployment/ironic/ironic-conductor-container-puppet.yaml b/deployment/ironic/ironic-conductor-container-puppet.yaml index 9609ef0ef0..14db3e5423 100644 --- a/deployment/ironic/ironic-conductor-container-puppet.yaml +++ b/deployment/ironic/ironic-conductor-container-puppet.yaml @@ -227,6 +227,8 @@ parameters: description: The name of an Ironic Conductor Group. default: '' type: string + tags: + - role_specific constraints: - allowed_pattern: '^[a-zA-Z0-9_\-\.]*$' MonitoringSubscriptionIronicConductor: @@ -262,9 +264,26 @@ conditions: - equals: [{get_param: Debug}, true] enable_architecture_ppc64le: {contains: ['ppc64le', {get_param: AdditionalArchitectures}]} configure_swift_temp_url: {equals: [{get_param: IronicConfigureSwiftTempUrlKey}, true]} - ironic_conductor_group: {not: {equals: [{get_param: IronicConductorGroup}, '']}} + ironic_conductor_group: + or: + - not: {equals: [{get_param: IronicConductorGroup}, '']} + - not: {equals: [{get_param: [RoleParameters, IronicConductorGroup]}, '']} resources: + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - if: + - ironic_conductor_group + - ironic::conductor::conductor_group: IronicConductorGroup + - {} + - values: {get_param: [RoleParameters]} + - values: + IronicConductorGroup: {get_param: IronicConductorGroup} ContainersCommon: type: ../containers-common.yaml @@ -299,6 +318,7 @@ outputs: config_settings: map_merge: - get_attr: [IronicBase, role_data, config_settings] + - get_attr: [RoleParametersValue, value] - if: - default_deploy_interface_unset @@ -455,11 +475,6 @@ outputs: - ironic::pxe::tftp_root: /var/lib/ironic/tftpboot - ironic::pxe::http_root: /var/lib/ironic/httpboot - ironic::conductor::http_root: /var/lib/ironic/httpboot - - - if: - - ironic_conductor_group - - ironic::conductor::conductor_group: {get_param: IronicConductorGroup} - - {} service_config_settings: {} # BEGIN DOCKER SETTINGS puppet_config: