From f55d6707619edfdb7bda494f4b2851f2ee747b17 Mon Sep 17 00:00:00 2001 From: Mathieu Bultel Date: Tue, 24 Jan 2017 14:36:59 +0100 Subject: [PATCH] Dump and run puppet for role which are disable_upgrade_deployment true We wants to run puppet on each role which has the flag disable_upgrade_deployment to true. It will run after the upgrade of the role and before running the whole converge step. Change-Id: Ia85be688d070dfb5b8337e8ef3c4bc439fb6052e --- extraconfig/tasks/tripleo_upgrade_node.sh | 3 +++ puppet/major_upgrade_steps.j2.yaml | 28 +++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/extraconfig/tasks/tripleo_upgrade_node.sh b/extraconfig/tasks/tripleo_upgrade_node.sh index 7f0560216b..27ba33a8b2 100644 --- a/extraconfig/tasks/tripleo_upgrade_node.sh +++ b/extraconfig/tasks/tripleo_upgrade_node.sh @@ -44,6 +44,9 @@ if [[ -n \$NOVA_COMPUTE ]]; then systemctl restart openstack-ceilometer-compute fi +# Apply puppet manifest to converge just right after the \$ROLE upgrade +puppet apply /root/${ROLE}_puppet_config.pp + ENDOFCAT # ensure the permissions are OK diff --git a/puppet/major_upgrade_steps.j2.yaml b/puppet/major_upgrade_steps.j2.yaml index e0dac6a169..3362a01f71 100644 --- a/puppet/major_upgrade_steps.j2.yaml +++ b/puppet/major_upgrade_steps.j2.yaml @@ -72,10 +72,12 @@ resources: crudini --set /etc/nova/nova.conf placement password 'SERVICE_PASSWORD' crudini --set /etc/nova/nova.conf placement region_name 'REGION_NAME' crudini --set /etc/nova/nova.conf placement auth_url 'AUTH_URL' + ROLE='ROLE_NAME' params: SERVICE_PASSWORD: { get_param: NovaPassword } REGION_NAME: { get_param: KeystoneRegion } AUTH_URL: { get_param: [EndpointMap, KeystoneAdmin, uri_no_suffix]} + ROLE_NAME: {{role.name}} - get_file: ../extraconfig/tasks/pacemaker_common_functions.sh - get_file: ../extraconfig/tasks/tripleo_upgrade_node.sh @@ -145,6 +147,32 @@ resources: {%- endfor %} {%- endfor %} +# Dump the puppet manifests to be apply later when disable_upgrade_deployment +# is to true +{% for role in roles if role.disable_upgrade_deployment|default(false) %} + {{role.name}}DeliverPuppetConfig: + type: OS::Heat::SoftwareConfig + properties: + group: script + config: + list_join: + - '' + - - str_replace: + template: | + #!/bin/bash + cat > /root/{{role.name}}_puppet_config.pp << ENDOFCAT + PUPPET_CLASSES + ENDOFCAT + params: + PUPPET_CLASSES: {get_param: [role_data, {{role.name}}, step_config]} + + {{role.name}}DeliverPuppetDeployment: + type: OS::Heat::SoftwareDeploymentGroup + properties: + servers: {get_param: [servers, {{role.name}}]} + config: {get_resource: {{role.name}}DeliverPuppetConfig} +{% endfor %} + # Upgrade Steps for all roles {%- for step in range(0, upgrade_steps_max) %} # Config resources for step {{step}}