
Requirements upper constraints bumped python-novaclient to version 18.0.0 [1], which requires Python 3.8 [2]. This results in failures when installing python-openstackclient on CentOS and Rocky with Python 3.6. ERROR: Cannot install python-openstackclient==5.8.0 because these package versions have conflicting dependencies. The conflict is caused by: python-openstackclient 5.8.0 depends on python-novaclient>=17.0.0 The user requested (constraint) python-novaclient===18.0.0 Work around this issue by using yoga upper constraints until we upgrade to CentOS Stream 9 and Rocky Linux 9. This also fixes another issue seen on Ubuntu where image uploads to Glance through Ansible fail with a 400 Bad Request error. This is caused by the bump of openstacksdk to version 0.99.0 and will be fixed by a new release of ansible-collections-openstack. [1] https://review.opendev.org/c/openstack/requirements/+/842808 [2] https://review.opendev.org/c/openstack/python-novaclient/+/838944 Change-Id: I40c6b898963c2218d41d37bd73d40ce8dcf22b87
128 lines
4.9 KiB
YAML
128 lines
4.9 KiB
YAML
---
|
|
- hosts: primary
|
|
environment:
|
|
UPPER_CONSTRAINTS_FILE: "https://releases.openstack.org/constraints/upper/yoga"
|
|
tasks:
|
|
|
|
# Install the previous release of Kayobe, and use it to deploy a control
|
|
# plane.
|
|
|
|
- block:
|
|
- name: Ensure kayobe is installed
|
|
shell:
|
|
cmd: dev/install.sh &> {{ logs_dir }}/ansible/install-pre-upgrade
|
|
chdir: "{{ previous_kayobe_src_dir }}"
|
|
executable: /bin/bash
|
|
|
|
- name: Configure the firewall
|
|
# We run kayobe commands to determine variable values. So this must
|
|
# be run after install.
|
|
shell:
|
|
cmd: dev/configure-firewall.sh
|
|
chdir: "{{ previous_kayobe_src_dir }}"
|
|
executable: /bin/bash
|
|
|
|
- name: Ensure overcloud is deployed
|
|
shell:
|
|
cmd: dev/overcloud-deploy.sh &> {{ logs_dir }}/ansible/overcloud-deploy-pre-upgrade
|
|
chdir: "{{ previous_kayobe_src_dir }}"
|
|
executable: /bin/bash
|
|
|
|
environment:
|
|
KAYOBE_CONFIG_SOURCE_PATH: "{{ previous_kayobe_config_src_dir }}"
|
|
|
|
# Update the Kayobe configuration to the current release.
|
|
|
|
- name: Ensure kolla config directory exists
|
|
file:
|
|
path: "{{ kayobe_config_src_dir }}/etc/kolla"
|
|
state: directory
|
|
|
|
- name: Copy across relevant kayobe-config files
|
|
copy:
|
|
src: "{{ previous_kayobe_config_src_dir }}/{{ item }}"
|
|
dest: "{{ kayobe_config_src_dir }}/{{ item }}"
|
|
remote_src: true
|
|
with_items:
|
|
- etc/kayobe/kolla/passwords.yml
|
|
- etc/kolla/admin-openrc.sh
|
|
- etc/kolla/public-openrc.sh
|
|
|
|
# NOTE(mgoddard): Use the name zz-overrides.yml to ensure this takes
|
|
# precedence over the standard config files.
|
|
- name: Ensure kayobe-config override config file exists
|
|
template:
|
|
src: overrides.yml.j2
|
|
dest: "{{ kayobe_config_src_dir }}/etc/kayobe/zz-overrides.yml"
|
|
|
|
- name: Ensure kolla-ansible globals.yml override config file exists
|
|
template:
|
|
src: globals.yml.j2
|
|
dest: "{{ kayobe_config_src_dir }}/etc/kayobe/kolla/globals.yml"
|
|
|
|
# Perform a smoke test against the previous release.
|
|
|
|
- block:
|
|
- name: Ensure test Tenks cluster is deployed
|
|
shell:
|
|
# Pass absolute source directory, since otherwise the `chdir` will
|
|
# cause this to fail.
|
|
cmd: dev/tenks-deploy-compute.sh '{{ tenks_src_dir }}' &> {{ logs_dir }}/ansible/tenks-deploy
|
|
chdir: "{{ kayobe_src_dir }}"
|
|
executable: /bin/bash
|
|
|
|
- name: Perform testing of the VMs in the overcloud prior to upgrade
|
|
shell:
|
|
cmd: dev/overcloud-test-vm.sh &> {{ logs_dir }}/ansible/overcloud-test-vm-pre-upgrade
|
|
chdir: "{{ previous_kayobe_src_dir }}"
|
|
executable: /bin/bash
|
|
|
|
- name: Perform testing of the baremetal machines in the overcloud prior to upgrade
|
|
shell:
|
|
cmd: dev/overcloud-test-baremetal.sh &> {{ logs_dir }}/ansible/overcloud-test-bm-pre-upgrade
|
|
chdir: "{{ previous_kayobe_src_dir }}"
|
|
executable: /bin/bash
|
|
# FIXME(mgoddard): Bare metal testing is unreliable on Ubuntu - some jobs
|
|
# see IPMI failures such as the following:
|
|
# ipmitool chassis bootdev pxe
|
|
# Error setting Chassis Boot Parameter 5\nError setting Chassis Boot
|
|
# Parameter 0\n
|
|
when: ansible_os_family != 'Debian'
|
|
|
|
# Upgrade Kayobe, and use it to perform an upgrade of the control plane.
|
|
|
|
- name: Ensure overcloud is upgraded
|
|
shell:
|
|
cmd: "{{ kayobe_src_dir }}/dev/overcloud-upgrade.sh &> {{ logs_dir }}/ansible/overcloud-upgrade"
|
|
executable: /bin/bash
|
|
|
|
# Remove unused Docker images to avoid reaching full disk
|
|
- name: Remove unused Docker images
|
|
shell:
|
|
cmd: "docker image prune --all --force"
|
|
become: true
|
|
|
|
# Perform a smoke test against the upgraded current release.
|
|
|
|
- name: Perform testing of VMs in the upgraded overcloud
|
|
shell:
|
|
cmd: dev/overcloud-test-vm.sh &> {{ logs_dir }}/ansible/overcloud-test-vm-post-upgrade
|
|
chdir: "{{ kayobe_src_dir }}"
|
|
executable: /bin/bash
|
|
|
|
- name: Perform testing of the baremetal machines in the upgraded overcloud
|
|
shell:
|
|
cmd: dev/overcloud-test-baremetal.sh &> {{ logs_dir }}/ansible/overcloud-test-bm-post-upgrade
|
|
chdir: "{{ kayobe_src_dir }}"
|
|
executable: /bin/bash
|
|
# FIXME(mgoddard): Bare metal testing is unreliable on Ubuntu - some jobs
|
|
# see IPMI failures such as the following:
|
|
# ipmitool chassis bootdev pxe
|
|
# Error setting Chassis Boot Parameter 5\nError setting Chassis Boot
|
|
# Parameter 0\n
|
|
when: ansible_os_family != 'Debian'
|
|
|
|
environment:
|
|
KAYOBE_CONFIG_SOURCE_PATH: "{{ kayobe_config_src_dir }}"
|
|
KAYOBE_SOURCE_PATH: "{{ kayobe_src_dir }}"
|