From c416ddabbd4a4194dfb69b1d740a54d08bdb759c Mon Sep 17 00:00:00 2001 From: "Jesse Pretorius (odyssey4me)" Date: Fri, 15 May 2020 10:10:02 +0100 Subject: [PATCH] Only enable leapp tasks when distribution is correct To enable idempotence in the leapp process, even if the tasks complete a previous partial run, we add another condition over and above the 'UpgradeLeappEnabled' heat parameter which checks that the distribution is RedHat (CentOS does not support the leapp tool) and distribution version is 7 (if it's 8 then the leapp process is complete already for this host). Change-Id: Ia58e2f7853056d8a4f0a54f35d91743bf0d9f2ed (cherry picked from commit ff1361b2bea59dba8dcac5e15f925f8ecc100d13) --- .../pacemaker/pacemaker-baremetal-puppet.yaml | 17 +++++++++++++++- .../tripleo-packages-baremetal-puppet.yaml | 20 ++++++++++++++++--- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/deployment/pacemaker/pacemaker-baremetal-puppet.yaml b/deployment/pacemaker/pacemaker-baremetal-puppet.yaml index f860987b00..ca7f311e3b 100644 --- a/deployment/pacemaker/pacemaker-baremetal-puppet.yaml +++ b/deployment/pacemaker/pacemaker-baremetal-puppet.yaml @@ -198,9 +198,24 @@ outputs: - name: upgrade step 0 when: step|int == 0 block: + - name: Gather missing facts + setup: + gather_subset: "distribution" + when: >- + ansible_facts['distribution'] is not defined or + ansible_facts['distribution_major_version'] is not defined + tags: + - always - name: Set fact upgrade_leapp_enabled set_fact: - upgrade_leapp_enabled: {get_param: UpgradeLeappEnabled} + upgrade_leapp_enabled: >- + {{ _upgradeLeappEnabled | bool and + ansible_facts['distribution'] == 'RedHat' and + ansible_facts['distribution_major_version'] is version('7', '==') }} + vars: + _upgradeLeappEnabled: {get_param: UpgradeLeappEnabled} + tags: + - always - name: Check pacemaker cluster running before upgrade tags: validation pacemaker_cluster: state=online check_and_fail=true diff --git a/deployment/tripleo-packages/tripleo-packages-baremetal-puppet.yaml b/deployment/tripleo-packages/tripleo-packages-baremetal-puppet.yaml index 759fbb6400..c05c3e6c17 100644 --- a/deployment/tripleo-packages/tripleo-packages-baremetal-puppet.yaml +++ b/deployment/tripleo-packages/tripleo-packages-baremetal-puppet.yaml @@ -111,14 +111,28 @@ outputs: step_config: | include ::tripleo::packages upgrade_tasks: - - name: set leapp facts - tags: always + - name: Gather missing facts + setup: + gather_subset: "distribution" + when: >- + ansible_facts['distribution'] is not defined or + ansible_facts['distribution_major_version'] is not defined + tags: + - always + - name: Set leapp facts set_fact: - upgrade_leapp_enabled: {get_param: UpgradeLeappEnabled} + upgrade_leapp_enabled: >- + {{ _upgradeLeappEnabled | bool and + ansible_facts['distribution'] == 'RedHat' and + ansible_facts['distribution_major_version'] is version('7', '==') }} upgrade_leapp_debug: {get_param: UpgradeLeappDebug} upgrade_leapp_devel_skip: {get_param: UpgradeLeappDevelSkip} upgrade_leapp_command_options: {get_param: UpgradeLeappCommandOptions} upgrade_leapp_reboot_timeout: {get_param: UpgradeLeappRebootTimeout} + vars: + _upgradeLeappEnabled: {get_param: UpgradeLeappEnabled} + tags: + - always - name: system_upgrade_prepare step 3 tags: