From 0a3e2210016b138ef4f3fadc1e3b4babbee78bd7 Mon Sep 17 00:00:00 2001 From: Michal Nasiadka Date: Fri, 10 Oct 2025 11:45:37 +0200 Subject: CI: rework upgrade.sh to Ansible role Change-Id: I73ca974aa6eef071e53dcbb9b66af2713ac655a8 Signed-off-by: Michal Nasiadka --- roles/kolla-ansible-deploy/tasks/deploy.yml | 2 +- roles/kolla-ansible-upgrade/tasks/main.yml | 65 +++++++++++++++++++++++++++++ tests/run.yml | 10 +---- tests/upgrade.sh | 32 -------------- 4 files changed, 68 insertions(+), 41 deletions(-) create mode 100644 roles/kolla-ansible-upgrade/tasks/main.yml delete mode 100755 tests/upgrade.sh diff --git a/roles/kolla-ansible-deploy/tasks/deploy.yml b/roles/kolla-ansible-deploy/tasks/deploy.yml index 5b36d7b97..771006735 100644 --- a/roles/kolla-ansible-deploy/tasks/deploy.yml +++ b/roles/kolla-ansible-deploy/tasks/deploy.yml @@ -35,7 +35,7 @@ -vvv >/tmp/logs/ansible/post-deploy 2>&1 -- name: Run kolla-ansible validate-config on upgrades +- name: Run kolla-ansible validate-config ansible.builtin.shell: cmd: > . {{ kolla_ansible_venv_path }}/bin/activate && diff --git a/roles/kolla-ansible-upgrade/tasks/main.yml b/roles/kolla-ansible-upgrade/tasks/main.yml new file mode 100644 index 000000000..a464f1cf3 --- /dev/null +++ b/roles/kolla-ansible-upgrade/tasks/main.yml @@ -0,0 +1,65 @@ +--- +- name: Generate self-signed certificates for the optional internal TLS tests + ansible.builtin.shell: + cmd: > + . {{ kolla_ansible_venv_path }}/bin/activate && + kolla-ansible certificates + -i /etc/kolla/inventory + -vvv + >/tmp/logs/ansible/upgrade-certificates 2>&1 + +# NOTE(mnasiadka): Need to run bootstrap before upgrade +- name: Run kolla-ansible bootstrap-servers + ansible.builtin.shell: + cmd: > + . {{ kolla_ansible_venv_path }}/bin/activate && + kolla-ansible bootstrap-servers + -i /etc/kolla/inventory + -vvv + >/tmp/logs/ansible/upgrade-bootstrap 2>&1 + +- name: Run kolla-ansible prechecks + ansible.builtin.shell: + cmd: > + . {{ kolla_ansible_venv_path }}/bin/activate && + kolla-ansible prechecks + -i /etc/kolla/inventory + -vvv + >/tmp/logs/ansible/upgrade-prechecks 2>&1 + +- name: Run kolla-ansible pull + ansible.builtin.shell: + cmd: > + . {{ kolla_ansible_venv_path }}/bin/activate && + kolla-ansible pull + -i /etc/kolla/inventory + -vvv + >/tmp/logs/ansible/upgrade-pull 2>&1 + +- name: Run kolla-ansible deploy + ansible.builtin.shell: + cmd: > + . {{ kolla_ansible_venv_path }}/bin/activate && + kolla-ansible upgrade + -i /etc/kolla/inventory + -vvv + >/tmp/logs/ansible/upgrade 2>&1 + +- name: Run kolla-ansible post-deploy + ansible.builtin.shell: + cmd: > + . {{ kolla_ansible_venv_path }}/bin/activate && + kolla-ansible post-deploy + -i /etc/kolla/inventory + -vvv + >/tmp/logs/ansible/upgrade-post-deploy 2>&1 + +- name: Run kolla-ansible validate-config on upgrades + ansible.builtin.shell: + cmd: > + . {{ kolla_ansible_venv_path }}/bin/activate && + kolla-ansible validate-config + -i /etc/kolla/inventory + -vvv + >/tmp/logs/ansible/upgrade-validate-config 2>&1 + diff --git a/tests/run.yml b/tests/run.yml index 1108ae6a4..aa1ca4dbf 100644 --- a/tests/run.yml +++ b/tests/run.yml @@ -725,14 +725,8 @@ --final /etc/kolla/passwords.yml # Perform an upgrade to the in-development code. - - name: Run upgrade.sh script - shell: - cmd: tests/upgrade.sh - executable: /bin/bash - chdir: "{{ kolla_ansible_src_dir }}" - environment: - KOLLA_ANSIBLE_VENV_PATH: "{{ kolla_ansible_venv_path }}" - SCENARIO: "{{ scenario }}" + - import_role: + name: kolla-ansible-upgrade - import_role: name: kolla-ansible-test-dashboard diff --git a/tests/upgrade.sh b/tests/upgrade.sh deleted file mode 100755 index eeea9d818..000000000 --- a/tests/upgrade.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -set -o xtrace -set -o errexit - -# Enable unbuffered output for Ansible in Jenkins. -export PYTHONUNBUFFERED=1 - - -function upgrade { - RAW_INVENTORY=/etc/kolla/inventory - - source $KOLLA_ANSIBLE_VENV_PATH/bin/activate - - kolla-ansible certificates -i ${RAW_INVENTORY} -vvv &> /tmp/logs/ansible/certificates - # Previous versions had older docker, requests requirements for example - # Therefore we need to run bootstrap again to ensure libraries are in - # proper versions (ansible-collection-kolla is different for new version, potentionally - # also dependencies). - kolla-ansible bootstrap-servers -i ${RAW_INVENTORY} -vvv &> /tmp/logs/ansible/upgrade-bootstrap - kolla-ansible prechecks -i ${RAW_INVENTORY} -vvv &> /tmp/logs/ansible/upgrade-prechecks - - kolla-ansible pull -i ${RAW_INVENTORY} -vvv &> /tmp/logs/ansible/pull-upgrade - kolla-ansible upgrade -i ${RAW_INVENTORY} -vvv &> /tmp/logs/ansible/upgrade - - kolla-ansible post-deploy -i ${RAW_INVENTORY} -vvv &> /tmp/logs/ansible/upgrade-post-deploy - - kolla-ansible validate-config -i ${RAW_INVENTORY} -vvv &> /tmp/logs/ansible/validate-config -} - - -upgrade -- cgit v1.2.3