950bcb165f
Bifrost does not perform ironic online data migrations after upgrading. This can lead to the following error during kayobe seed service upgrade: The database is not compatible with this release of ironic (10.1.7). Please run "ironic-dbsync online_data_migrations" using the previous release. As a workaround, perform the migrations in kayobe, prior to performing the upgrade. Change-Id: I8951242ba40158c26e85377254d19085d85cf753 Story: 2004308 Task: 28657
49 lines
1.8 KiB
YAML
49 lines
1.8 KiB
YAML
---
|
|
- name: Prepare for an upgrade of the seed services
|
|
hosts: seed
|
|
tasks:
|
|
# Bifrost fails if IPA images exist with a different checksum. Move them
|
|
# out of the way.
|
|
- block:
|
|
- name: Find IPA deployment images
|
|
find:
|
|
path: /var/lib/docker/volumes/bifrost_httpboot/_data
|
|
patterns:
|
|
# Specify filenames individually to avoid movind previously moved
|
|
# images.
|
|
- ipa.initramfs
|
|
- ipa.initramfs.sha256
|
|
- ipa.vmlinuz
|
|
- ipa.vmlinuz.sha256
|
|
register: find_result
|
|
become: true
|
|
|
|
- name: Set a fact about the current time
|
|
set_fact:
|
|
ipa_extension: "{{ ansible_date_time.iso8601 }}"
|
|
|
|
- name: Move old IPA deployment images to make way for new ones
|
|
command: mv {{ item.path }} {{ item.path }}.{{ ipa_extension }}
|
|
with_items: "{{ find_result.files }}"
|
|
loop_control:
|
|
label: "{{ item.path }}"
|
|
become: true
|
|
|
|
when: not ipa_build_images | bool
|
|
|
|
# Bifrost does not perform ironic's online data migrations, which can
|
|
# prevent upgrading the database. If the upgrade fails early on, then the
|
|
# ironic config file may not exist. On subsequent attempts, this would
|
|
# cause the migrations to fail, so skip online migrations if ironic.conf
|
|
# doesn't exist.
|
|
# TODO: If the ironic config file does exist, we need to check
|
|
# the return code, since 2 means that the DB is not compatible
|
|
- name: Perform ironic online data migrations
|
|
command: >
|
|
docker exec bifrost_deploy
|
|
bash -c '
|
|
if [[ -f /etc/ironic/ironic.conf ]]; then
|
|
ironic-dbsync online_data_migrations
|
|
fi'
|
|
changed_when: true
|