Exclude /var/lib/ironic/* from container-puppet.sh rsync

Exclude /var/lib/ironic/* from container-puppet.sh rsync, this is a
leftover from the initial containerization of TripleO; now we have
host prep tasks, the ironic conductor and inspector bind mount
/var/lib/ironic and generate the data that they need. But this data should
not be in the config volume or it can conflict from each other when rsync
runs at the same time.

TripleO upgrade tasks and host prep tasks will take care of removing
the var directory from the config volumes and the containers will just use
the bind mount, like it should be doing now.
These tasks will run during a minor update, major upgrade, and fast
forward upgrade.

Note: this will have to be backported to stable/train, and cleaned up
later after Ussuri as the tasks won't be needed anymore.

Root cause patches:
- I3a195466a5039e7641e843c11e5436440bfc5a01
- Ibcff99f03e6751fbf3197adefd5d344178b71fc2

Related-Bug: #1868934
Co-Authored-By: Alex Schultz <aschultz@redhat.com>

Change-Id: I69a1d1059bdfc0b99cf6a4a3dc78a1eb9a43ad0b
This commit is contained in:
Emilien Macchi 2020-04-01 12:35:05 -04:00
parent cd1fc9cb77
commit b4ff60f0a8
4 changed files with 44 additions and 1 deletions

View File

@ -72,7 +72,7 @@ verbosity=""
# Disables archiving
if [ -z "$NO_ARCHIVE" ]; then
archivedirs=("/etc" "/root" "/opt" "/var/lib/ironic/tftpboot" "/var/lib/ironic/httpboot" "/var/www" "/var/spool/cron" "/var/lib/nova/.ssh")
archivedirs=("/etc" "/root" "/opt" "/var/www" "/var/spool/cron" "/var/lib/nova/.ssh")
rsync_srcs=""
for d in "${archivedirs[@]}"; do
if [ -d "$d" ]; then

View File

@ -584,6 +584,20 @@ outputs:
with_items:
- httpboot
- tftpboot
# TODO(emilien): remove the cleanup tasks after Ussuri
# https://bugs.launchpad.net/tripleo/+bug/1868934
- name: Cleanup unnecessary container config-data
block: &ironic_config_data_cleanup
- name: Remove /var/lib/config-data/puppet-generated/ironic/var
file:
path: /var/lib/config-data/puppet-generated/ironic/var
state: absent
upgrade_tasks:
- name: Cleanup unnecessary container config-data
when:
- step|int == 0
tags: common
block: *ironic_config_data_cleanup
fast_forward_upgrade_tasks:
- when:
- step|int == 0

View File

@ -497,3 +497,17 @@ outputs:
path: /var/lib/ironic-inspector/dhcp-hostsdir
state: directory
setype: container_file_t
# TODO(emilien): remove the cleanup tasks after Ussuri
# https://bugs.launchpad.net/tripleo/+bug/1868934
- name: Cleanup unnecessary container config-data
block: &ironic_config_data_cleanup
- name: Remove /var/lib/config-data/puppet-generated/ironic_inspector/var
file:
path: /var/lib/config-data/puppet-generated/ironic_inspector/var
state: absent
upgrade_tasks:
- name: Cleanup unnecessary container config-data
when:
- step|int == 0
tags: common
block: *ironic_config_data_cleanup

View File

@ -0,0 +1,15 @@
---
upgrade:
- |
Exclude /var/lib/ironic/* from container-puppet.sh rsync, this is a
leftover from the initial containerization of TripleO; now we have
host prep tasks, the ironic conductor and inspector bind mount
/var/lib/ironic and generate the data that they need. But this data should
not be in the config volume or it can conflict from each other when rsync
runs at the same time. Check `launchpad bug 1868934
<https://bugs.launchpad.net/tripleo/+bug/1868934>`_.
TripleO upgrade tasks and host prep tasks will take care of removing
the var directory from the config volumes and the containers will just use
the bind mount, like it should be doing now.
These tasks will run during a minor update, major upgrade, and fast
forward upgrade.