From e94c56ebe56559a2b2940cd2ef5378378905ac5e Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Wed, 26 Sep 2018 21:20:43 +0100 Subject: [PATCH] Automate the removal of the molteniron role In an upgrade from Queens to Rocky, the molteniron role is still there, causing the repo build process to pick it up and try to build wheels - but it fails. Here we ensure that the upgrade process cleans it up, preventing this from happening. Closes-Bug: 1794599 Change-Id: I641fc0deb8292af0cb19887837d4de8d618cd18f --- .../major-upgrades-manual-upgrade.rst | 13 +++++++++ .../upgrades/reference-upgrade-playbooks.rst | 12 ++++++++ scripts/run-upgrade.sh | 1 + .../playbooks/molteniron-role-removal.yml | 29 +++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 scripts/upgrade-utilities/playbooks/molteniron-role-removal.yml diff --git a/doc/source/admin/upgrades/major-upgrades-manual-upgrade.rst b/doc/source/admin/upgrades/major-upgrades-manual-upgrade.rst index 730737b766..45a2ed540e 100644 --- a/doc/source/admin/upgrades/major-upgrades-manual-upgrade.rst +++ b/doc/source/admin/upgrades/major-upgrades-manual-upgrade.rst @@ -141,6 +141,19 @@ galaxy-named roles. # openstack-ansible "${UPGRADE_PLAYBOOKS}/ceph-galaxy-removal.yml" +Clean up the molteniron role +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The molteniron service is not an official OpenStack project, and has been +removed from the integrated build. It can still be optionally added, but +due to the fact that it was previously integrated we need to remove it +during this major upgrade to ensure that the repo build process does not +try to build its wheels. + +.. code-block:: console + + # openstack-ansible "${UPGRADE_PLAYBOOKS}/molteniron-role-removal.yml" + Upgrade hosts ~~~~~~~~~~~~~ diff --git a/doc/source/reference/upgrades/reference-upgrade-playbooks.rst b/doc/source/reference/upgrades/reference-upgrade-playbooks.rst index 576750f65f..927fc37006 100644 --- a/doc/source/reference/upgrades/reference-upgrade-playbooks.rst +++ b/doc/source/reference/upgrades/reference-upgrade-playbooks.rst @@ -59,6 +59,18 @@ The roles will be cloned according to the new naming, and an upgrade playbook ``ceph-galaxy-removal.yml`` has been added to clean up the stale galaxy-named roles. +.. _molteniron-role-removal: + +Clean up the molteniron role +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The molteniron service is not an official OpenStack project, and has been +removed from the integrated build. It can still be optionally added, but +due to the fact that it was previously integrated we need to remove it +during this major upgrade to ensure that the repo build process does not +try to build its wheels. The upgrade playbook ``molteniron-role-removal.yml`` +has been added to clean it up. + .. _setup-infra-playbook: setup-infrastructure.yml diff --git a/scripts/run-upgrade.sh b/scripts/run-upgrade.sh index ee89fd0dda..7ae9218e0c 100755 --- a/scripts/run-upgrade.sh +++ b/scripts/run-upgrade.sh @@ -172,6 +172,7 @@ function main { RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/user-secrets-adjustment.yml") RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/pip-conf-removal.yml") RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/ceph-galaxy-removal.yml") + RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/molteniron-role-removal.yml") # we don't want to trigger container restarts for these groups yet RUN_TASKS+=("setup-hosts.yml --limit '!galera_all:!neutron_agent:!rabbitmq_all'") # add new container config to containers but don't restart diff --git a/scripts/upgrade-utilities/playbooks/molteniron-role-removal.yml b/scripts/upgrade-utilities/playbooks/molteniron-role-removal.yml new file mode 100644 index 0000000000..341deef5e9 --- /dev/null +++ b/scripts/upgrade-utilities/playbooks/molteniron-role-removal.yml @@ -0,0 +1,29 @@ +--- +# Copyright 2017, Logan Vig +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- name: Remove the molteniron role + hosts: localhost + gather_facts: true + user: root + tasks: + # The molteniron service is not an official OpenStack project, and + # has been removed from the integrated build. It can still be optionally + # added, but due to the fact that it was previously integrated we need + # to remove it during this major upgrade to ensure that the repo build + # process does not try to build its wheels. + - name: Remove molteniron role if found + file: + path: "/etc/ansible/roles/os_molteniron" + state: "absent"