From 238d751b6ade573352db6237e5ce2e6b9004fde1 Mon Sep 17 00:00:00 2001 From: Jose Luis Franco Arza Date: Tue, 2 Jun 2020 17:39:13 +0200 Subject: [PATCH] Check transfer data flag to skip pacemaker normal upgrade. When the operating system upgrade is performed a transfer data step must be executed (to allow the db import once the operating system upgrades). During this step the pacemaker cluster is stopped, so we can create a new cluster with the newly OS upgraded node. Therefore, as the pacemaker cluster is down we need to skip some of the tasks which would be executed during a normal upgrade (check pcs status, stop pcs and start pcs) from the upgrade_tasks. This patch removes the use of UpgradeLeappEnabled heat parameter to identify this and uses the existence of the flag file created during the transfer_data to skip the normal pacemaker upgrade tasks by setting a new fact, cluster_recreate, if this file exists. Change-Id: Iba85e99f59258ce6ef4e05ccae737b9eeb6cfc57 (cherry picked from commit 5845c0a72aa68eb2dbbbdbd42fc1a6406aa92100) --- .../cinder-backup-pacemaker-puppet.yaml | 2 +- .../cinder-volume-pacemaker-puppet.yaml | 2 +- .../database/mysql-pacemaker-puppet.yaml | 2 +- .../database/redis-pacemaker-puppet.yaml | 2 +- .../haproxy/haproxy-pacemaker-puppet.yaml | 2 +- .../manila/manila-share-pacemaker-puppet.yaml | 2 +- deployment/ovn/ovn-dbs-pacemaker-puppet.yaml | 2 +- .../pacemaker/pacemaker-baremetal-puppet.yaml | 30 ++++++++++++------- ...tmq-messaging-notify-pacemaker-puppet.yaml | 2 +- .../rabbitmq-messaging-pacemaker-puppet.yaml | 2 +- ...bbitmq-messaging-rpc-pacemaker-puppet.yaml | 2 +- 11 files changed, 30 insertions(+), 20 deletions(-) diff --git a/deployment/cinder/cinder-backup-pacemaker-puppet.yaml b/deployment/cinder/cinder-backup-pacemaker-puppet.yaml index 1c34bf7c7f..8055918806 100644 --- a/deployment/cinder/cinder-backup-pacemaker-puppet.yaml +++ b/deployment/cinder/cinder-backup-pacemaker-puppet.yaml @@ -328,7 +328,7 @@ outputs: - name: Create hiera data to upgrade cinder_backup in a stepwise manner. when: - step|int == 1 - - upgrade_leapp_enabled|bool + - cluster_recreate|bool block: - name: set cinder_backup upgrade node facts in a single-node environment set_fact: diff --git a/deployment/cinder/cinder-volume-pacemaker-puppet.yaml b/deployment/cinder/cinder-volume-pacemaker-puppet.yaml index 08d297c1b0..6b8b032e6e 100644 --- a/deployment/cinder/cinder-volume-pacemaker-puppet.yaml +++ b/deployment/cinder/cinder-volume-pacemaker-puppet.yaml @@ -314,7 +314,7 @@ outputs: - name: Create hiera data to upgrade cinder_volume in a stepwise manner. when: - step|int == 1 - - upgrade_leapp_enabled|bool + - cluster_recreate|bool block: - name: set cinder_volume upgrade node facts in a single-node environment set_fact: diff --git a/deployment/database/mysql-pacemaker-puppet.yaml b/deployment/database/mysql-pacemaker-puppet.yaml index 3354597e0b..9aa45ddfad 100644 --- a/deployment/database/mysql-pacemaker-puppet.yaml +++ b/deployment/database/mysql-pacemaker-puppet.yaml @@ -469,7 +469,7 @@ outputs: - name: Create hiera data to upgrade mysql in a stepwise manner. when: - step|int == 1 - - upgrade_leapp_enabled|bool + - cluster_recreate|bool block: - name: set mysql upgrade node facts in a single-node environment set_fact: diff --git a/deployment/database/redis-pacemaker-puppet.yaml b/deployment/database/redis-pacemaker-puppet.yaml index 7f32ecd9fb..e38be5b4d5 100644 --- a/deployment/database/redis-pacemaker-puppet.yaml +++ b/deployment/database/redis-pacemaker-puppet.yaml @@ -403,7 +403,7 @@ outputs: - name: Create hiera data to upgrade redis in a stepwise manner. when: - step|int == 1 - - upgrade_leapp_enabled|bool + - cluster_recreate|bool block: - name: set redis upgrade node facts in a single-node environment set_fact: diff --git a/deployment/haproxy/haproxy-pacemaker-puppet.yaml b/deployment/haproxy/haproxy-pacemaker-puppet.yaml index efc0a69735..816ef39471 100644 --- a/deployment/haproxy/haproxy-pacemaker-puppet.yaml +++ b/deployment/haproxy/haproxy-pacemaker-puppet.yaml @@ -521,7 +521,7 @@ outputs: - name: Create hiera data to upgrade haproxy in a stepwise manner. when: - step|int == 1 - - upgrade_leapp_enabled|bool + - cluster_recreate|bool block: - name: set haproxy upgrade node facts in a single-node environment set_fact: diff --git a/deployment/manila/manila-share-pacemaker-puppet.yaml b/deployment/manila/manila-share-pacemaker-puppet.yaml index 9054e7a0fa..fb123be7aa 100644 --- a/deployment/manila/manila-share-pacemaker-puppet.yaml +++ b/deployment/manila/manila-share-pacemaker-puppet.yaml @@ -309,7 +309,7 @@ outputs: - name: Create hiera data to upgrade manila_share in a stepwise manner. when: - step|int == 1 - - upgrade_leapp_enabled|bool + - cluster_recreate|bool block: - name: set manila_share upgrade node facts in a single-node environment set_fact: diff --git a/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml b/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml index 9b81c36c40..58cabf9f89 100644 --- a/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml +++ b/deployment/ovn/ovn-dbs-pacemaker-puppet.yaml @@ -420,7 +420,7 @@ outputs: - name: Create hiera data to upgrade ovn_dbs in a stepwise manner. when: - step|int == 1 - - upgrade_leapp_enabled|bool + - cluster_recreate|bool block: - name: set ovn_dbs upgrade node facts in a single-node environment set_fact: diff --git a/deployment/pacemaker/pacemaker-baremetal-puppet.yaml b/deployment/pacemaker/pacemaker-baremetal-puppet.yaml index 27eac3f26c..fd5cc90042 100644 --- a/deployment/pacemaker/pacemaker-baremetal-puppet.yaml +++ b/deployment/pacemaker/pacemaker-baremetal-puppet.yaml @@ -97,10 +97,6 @@ parameters: tag: system.pacemaker file: /var/log/host/pacemaker.log startmsg.regex: "^[a-zA-Z]{3} [0-9]{2} [:0-9]{8}" - UpgradeLeappEnabled: - description: Use Leapp for operating system upgrade - type: boolean - default: false ContainerCli: type: string default: 'podman' @@ -198,19 +194,33 @@ outputs: - name: upgrade step 0 when: step|int == 0 block: - - name: Set fact upgrade_leapp_enabled + # If performing an upgrade which requires operating system upgrading + # a transfer data step needs to be run. During this step, the whole + # pacemaker cluster is stopped so we can't check the cluster status. + # Once the transfer_data step is executed, a flag file is stored. + # This code checks the existence of this file to know if we should + # avoid doing a normal pacemaker upgrade or not. As with the + # operating system upgrade a new cluster will be created in which + # the other nodes will be added. + - name: check flag file existence in destination host + stat: + path: "/var/lib/tripleo/transfer-flags/var-lib-mysql" + register: tripleo_transfer_flag_stat + become: true + delegate_to: "{{ mysql_short_bootstrap_node_name }}" + - name: Set fact cluster_recreate set_fact: - upgrade_leapp_enabled: {get_param: UpgradeLeappEnabled} + cluster_recreate: "{{ tripleo_transfer_flag_stat.stat.exists|bool }}" - name: Check pacemaker cluster running before upgrade tags: validation pacemaker_cluster: state=online check_and_fail=true async: 30 poll: 4 - when: not upgrade_leapp_enabled|bool + when: not cluster_recreate|bool - name: Create hiera data to upgrade pacemaker in a stepwise manner. when: - step|int == 1 - - upgrade_leapp_enabled|bool + - cluster_recreate|bool block: - name: set pacemaker upgrade node facts in a single-node environment set_fact: @@ -280,13 +290,13 @@ outputs: block: - name: Stop pacemaker cluster pacemaker_cluster: state=offline - when: not upgrade_leapp_enabled + when: not cluster_recreate|bool - name: upgrade step 4 when: step|int == 4 block: - name: Start pacemaker cluster pacemaker_cluster: state=online - when: not upgrade_leapp_enabled + when: not cluster_recreate|bool external_upgrade_tasks: - when: - step|int == 1 diff --git a/deployment/rabbitmq/rabbitmq-messaging-notify-pacemaker-puppet.yaml b/deployment/rabbitmq/rabbitmq-messaging-notify-pacemaker-puppet.yaml index 925db43200..afb5384401 100644 --- a/deployment/rabbitmq/rabbitmq-messaging-notify-pacemaker-puppet.yaml +++ b/deployment/rabbitmq/rabbitmq-messaging-notify-pacemaker-puppet.yaml @@ -363,7 +363,7 @@ outputs: - name: Create hiera data to upgrade oslo messaging notify in a stepwise manner. when: - step|int == 1 - - upgrade_leapp_enabled|bool + - cluster_recreate|bool block: - name: set oslo_messaging_notify upgrade node facts in a single-node environment set_fact: diff --git a/deployment/rabbitmq/rabbitmq-messaging-pacemaker-puppet.yaml b/deployment/rabbitmq/rabbitmq-messaging-pacemaker-puppet.yaml index 3d15c6d7e1..5bc6548e1d 100644 --- a/deployment/rabbitmq/rabbitmq-messaging-pacemaker-puppet.yaml +++ b/deployment/rabbitmq/rabbitmq-messaging-pacemaker-puppet.yaml @@ -364,7 +364,7 @@ outputs: - name: Create hiera data to upgrade rabbitmq in a stepwise manner. when: - step|int == 1 - - upgrade_leapp_enabled|bool + - cluster_recreate|bool block: - name: set rabbitmq upgrade node facts in a single-node environment set_fact: diff --git a/deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml b/deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml index c93bcc5efd..ec71c9c154 100644 --- a/deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml +++ b/deployment/rabbitmq/rabbitmq-messaging-rpc-pacemaker-puppet.yaml @@ -369,7 +369,7 @@ outputs: - name: Create hiera data to upgrade oslo messaging rpc in a stepwise manner. when: - step|int == 1 - - upgrade_leapp_enabled|bool + - cluster_recreate|bool block: - name: set oslo_messaging_rpc upgrade node facts in a single-node environment set_fact: