From 63f0ba773d4be869d912de96a6e5df5d117f4505 Mon Sep 17 00:00:00 2001 From: Jose Luis Franco Arza Date: Mon, 14 Feb 2022 07:37:53 +0100 Subject: [PATCH] Add --reproduce-command in UC commands. Include the --reproduce-command option support into the tripleo_undercloud_install and tripleo_undercloud_upgrade operator roles. This option will allow getting a reproducer to run the Ansible playbooks for a deployment or upgrade. Depends-On: https://review.opendev.org/c/openstack/python-tripleoclient/+/827494 Change-Id: I6cb69a4158213ee8694dc07ac1cec0dac3818346 --- roles/tripleo_undercloud_install/README.md | 1 + roles/tripleo_undercloud_install/defaults/main.yml | 1 + .../molecule/default/converge.yml | 11 +++++++++++ roles/tripleo_undercloud_install/tasks/main.yml | 1 + roles/tripleo_undercloud_upgrade/README.md | 1 + roles/tripleo_undercloud_upgrade/defaults/main.yml | 1 + .../molecule/default/converge.yml | 11 +++++++++++ roles/tripleo_undercloud_upgrade/tasks/main.yml | 1 + 8 files changed, 28 insertions(+) diff --git a/roles/tripleo_undercloud_install/README.md b/roles/tripleo_undercloud_install/README.md index 1bd6d71..8284447 100644 --- a/roles/tripleo_undercloud_install/README.md +++ b/roles/tripleo_undercloud_install/README.md @@ -22,6 +22,7 @@ Role Variables * `tripleo_undercloud_install_log_output`: (Boolean) Flag to log the output to a file rather than show it in the ansible output. Default: true * `tripleo_undercloud_install_no_validations`: (Boolean) Flag to add --no-validations to the install. Default: false * `tripleo_undercloud_install_poll`: (Integer) Number of seconds to wait between checks to see if the install command has completed. This should be set to a value greater or equal to 1. Default: 10 +* `tripleo_undercloud_install_reproducer_command`: (Boolean) Flag to create a reproducer script including the Ansible command to re-run deployment playbooks. * `tripleo_undercloud_install_timeout`: (Integer) Timeout for the install command. Default: 7200 * `tripleo_undercloud_install_yes`: (Boolean) Flag to add --yes to the install. Default: false * `tripleo_undercloud_install_log`: (String) Install log file path. Default: "{{ tripleo_undercloud_install_home_dir }}/undercloud_install.log" diff --git a/roles/tripleo_undercloud_install/defaults/main.yml b/roles/tripleo_undercloud_install/defaults/main.yml index 8bf518d..0dc9f50 100644 --- a/roles/tripleo_undercloud_install/defaults/main.yml +++ b/roles/tripleo_undercloud_install/defaults/main.yml @@ -12,6 +12,7 @@ tripleo_undercloud_install_log_combine: true tripleo_undercloud_install_log_output: true tripleo_undercloud_install_no_validations: false tripleo_undercloud_install_poll: 10 +tripleo_undercloud_install_reproducer_command: false tripleo_undercloud_install_timeout: 7200 tripleo_undercloud_install_yes: false tripleo_undercloud_install_log: "{{ tripleo_undercloud_install_home_dir }}/undercloud_install.log" diff --git a/roles/tripleo_undercloud_install/molecule/default/converge.yml b/roles/tripleo_undercloud_install/molecule/default/converge.yml index 357f773..00aa326 100644 --- a/roles/tripleo_undercloud_install/molecule/default/converge.yml +++ b/roles/tripleo_undercloud_install/molecule/default/converge.yml @@ -75,3 +75,14 @@ assert: that: - tripleo_undercloud_install_result.stdout == "undercloud install --yes" + + - name: Check parameter "tripleo_undercloud_install_reproducer_command" + include_role: + name: "tripleo_undercloud_install" + vars: + tripleo_undercloud_install_reproducer_command: true + + - name: Assert "tripleo_undercloud_install_reproducer_command" + assert: + that: + - tripleo_undercloud_install_result.stdout == "undercloud install --reproduce-command" diff --git a/roles/tripleo_undercloud_install/tasks/main.yml b/roles/tripleo_undercloud_install/tasks/main.yml index 33fc5ac..a84c906 100644 --- a/roles/tripleo_undercloud_install/tasks/main.yml +++ b/roles/tripleo_undercloud_install/tasks/main.yml @@ -8,6 +8,7 @@ {{ tripleo_undercloud_install_inflight_validations | ternary("--inflight-validations", '') }} {{ tripleo_undercloud_install_dry_run | ternary("--dry-run", '') }} {{ tripleo_undercloud_install_yes | ternary("--yes", '') }} + {{ tripleo_undercloud_install_reproducer_command | ternary("--reproduce-command", '') }} {{ tripleo_undercloud_install_log_output | ternary((">" ~ tripleo_undercloud_install_log), '') }} {{ tripleo_undercloud_install_log_combine | ternary("2>&1", '') }} _install_env: {} diff --git a/roles/tripleo_undercloud_upgrade/README.md b/roles/tripleo_undercloud_upgrade/README.md index eaa73b8..2a2cc33 100644 --- a/roles/tripleo_undercloud_upgrade/README.md +++ b/roles/tripleo_undercloud_upgrade/README.md @@ -22,6 +22,7 @@ Role Variables * `tripleo_undercloud_upgrade_log_output`: (Boolean) Flag to log the output to a file rather than show it in the ansible output. Default: true * `tripleo_undercloud_upgrade_no_validations`: (Boolean) Flag to add --no-validations to the upgrade. Default: false * `tripleo_undercloud_upgrade_poll`: (Integer) Number of seconds to wait between checks to see if the upgrade command has completed. This should be set to a value greater or equal to 1. Default: 10 +* `tripleo_undercloud_upgrade_reproducer_command`: (Boolean) Flag to create a reproducer script including the Ansible command to re-run deployment playbooks. * `tripleo_undercloud_upgrade_timeout`: (Integer) Timeout for the upgrade command. Default: 7200 * `tripleo_undercloud_upgrade_yes`: (Boolean) Flag to add --yes to the upgrade. Default: false * `tripleo_undercloud_upgrade_log`: (String) Upgrade log file path. Default: "{{ tripleo_undercloud_upgrade_home_dir }}/undercloud_upgrade.log" diff --git a/roles/tripleo_undercloud_upgrade/defaults/main.yml b/roles/tripleo_undercloud_upgrade/defaults/main.yml index e17dcb5..b4d95a4 100644 --- a/roles/tripleo_undercloud_upgrade/defaults/main.yml +++ b/roles/tripleo_undercloud_upgrade/defaults/main.yml @@ -13,5 +13,6 @@ tripleo_undercloud_upgrade_log_combine: true tripleo_undercloud_upgrade_log_output: true tripleo_undercloud_upgrade_no_validations: false tripleo_undercloud_upgrade_poll: 10 +tripleo_undercloud_upgrade_reproducer_command: false tripleo_undercloud_upgrade_timeout: 7200 tripleo_undercloud_upgrade_yes: false diff --git a/roles/tripleo_undercloud_upgrade/molecule/default/converge.yml b/roles/tripleo_undercloud_upgrade/molecule/default/converge.yml index fa0f831..4dca1e5 100644 --- a/roles/tripleo_undercloud_upgrade/molecule/default/converge.yml +++ b/roles/tripleo_undercloud_upgrade/molecule/default/converge.yml @@ -75,3 +75,14 @@ assert: that: - tripleo_undercloud_upgrade_result.stdout == "undercloud upgrade --yes" + + - name: Check parameter "tripleo_undercloud_upgrade_reproducer_command" + include_role: + name: "tripleo_undercloud_upgrade" + vars: + tripleo_undercloud_upgrade_reproducer_command: true + + - name: Assert "tripleo_undercloud_upgrade_reproducer_command" + assert: + that: + - tripleo_undercloud_upgrade_result.stdout == "undercloud upgrade --reproduce-command" diff --git a/roles/tripleo_undercloud_upgrade/tasks/main.yml b/roles/tripleo_undercloud_upgrade/tasks/main.yml index 03ee0ab..15f1843 100644 --- a/roles/tripleo_undercloud_upgrade/tasks/main.yml +++ b/roles/tripleo_undercloud_upgrade/tasks/main.yml @@ -8,6 +8,7 @@ {{ tripleo_undercloud_upgrade_inflight_validations | ternary("--inflight-validations", '') }} {{ tripleo_undercloud_upgrade_dry_run | ternary("--dry-run", '') }} {{ tripleo_undercloud_upgrade_yes | ternary("--yes", '') }} + {{ tripleo_undercloud_upgrade_reproducer_command | ternary("--reproduce-command", '') }} {{ tripleo_undercloud_upgrade_log_output | ternary((">" ~ tripleo_undercloud_upgrade_log), '') }} {{ tripleo_undercloud_upgrade_log_combine | ternary("2>&1", '') }} _upgrade_env: {}