From 8d732905457c027e8e7900dd05226f0f1d40636d Mon Sep 17 00:00:00 2001 From: Jean-Philippe Evrard Date: Thu, 2 Jun 2016 18:33:44 +0100 Subject: [PATCH] Fail Fast when trying to upgrade with LBaaS v1 enabled Because LBaaS v1 isn't supported in Newton and we can't migrate, deployer will have to manually disable LBaaS v1 before doing the upgrade. Change-Id: I0aa309aa7adbdb37b333a550423b0d3b938c3923 --- doc/source/upgrade-guide/manual-upgrade.rst | 19 ++++++++++++++ .../reference-upgrade-playbooks.rst | 13 ++++++++++ scripts/run-upgrade.sh | 1 + .../playbooks/lbaas-version-check.yml | 25 +++++++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 scripts/upgrade-utilities/playbooks/lbaas-version-check.yml diff --git a/doc/source/upgrade-guide/manual-upgrade.rst b/doc/source/upgrade-guide/manual-upgrade.rst index f6a6005e41..3634901b6b 100644 --- a/doc/source/upgrade-guide/manual-upgrade.rst +++ b/doc/source/upgrade-guide/manual-upgrade.rst @@ -63,6 +63,25 @@ inventory is found automatically. # cd playbooks +Pre-flight checks +~~~~~~~~~~~~~~~~~ + +Before starting with the new version, you should do pre-flight checks +to ensure everything is fine. If any of those check fail, the upgrade +should stop to let the deployer chose what to do. + +Making sure LBaaS v1 isn't in the way +````````````````````````````````````` + +Because LBaaS was deprecated, this playbook checks if it was previously +deployed, and fails if this is the case. + +See :ref:`lbaas-version-check` for more details. + +.. code-block:: console + + # openstack-ansible "${UPGRADE_PLAYBOOKS}/lbaas-version-check.yml" + Cleanup old facts ~~~~~~~~~~~~~~~~~ diff --git a/doc/source/upgrade-guide/reference-upgrade-playbooks.rst b/doc/source/upgrade-guide/reference-upgrade-playbooks.rst index 065c95e139..be970cb0bd 100644 --- a/doc/source/upgrade-guide/reference-upgrade-playbooks.rst +++ b/doc/source/upgrade-guide/reference-upgrade-playbooks.rst @@ -9,6 +9,19 @@ Within the main :file:`scripts` directory there is an :file:`upgrade-utilities` directory, which contains an additional playbooks directory. These playbooks facilitate the upgrade process. +.. _lbaas-version-check: + +lbaas-version-check.yml +----------------------- + +This playbook is part of the general pre-flight checks. + +Because LBaaS v1 isn't supported in Newton and above, and there is no +migration path, the deployer will have to manually disable LBaaS v1 before +upgrading. For openstack-ansible, we are checking if ``neutron_lbaas`` is +set to ``False``, but additional operations are to be done by the deployer for +the cleanup. + .. _fact-cleanup-playbook: ``ansible_fact_cleanup.yml`` diff --git a/scripts/run-upgrade.sh b/scripts/run-upgrade.sh index e38e2f946f..ebe58cbc80 100755 --- a/scripts/run-upgrade.sh +++ b/scripts/run-upgrade.sh @@ -141,6 +141,7 @@ function main { "${SCRIPTS_PATH}/bootstrap-ansible.sh" pushd ${MAIN_PATH}/playbooks + RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/lbaas-version-check.yml") RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/ansible_fact_cleanup.yml") RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/deploy-config-changes.yml") RUN_TASKS+=("${UPGRADE_PLAYBOOKS}/user-secrets-adjustment.yml") diff --git a/scripts/upgrade-utilities/playbooks/lbaas-version-check.yml b/scripts/upgrade-utilities/playbooks/lbaas-version-check.yml new file mode 100644 index 0000000000..dcd289122d --- /dev/null +++ b/scripts/upgrade-utilities/playbooks/lbaas-version-check.yml @@ -0,0 +1,25 @@ +--- +# Copyright 2016, Rackspace US, Inc. +# +# 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: Fail fast if LBaaS v1 is configured + hosts: localhost + connection: local + tasks: + - name: Checking if neutron_lbaas variable exists + fail: + msg: | + LBaaS v1 isn't supported in Newton. Please read: + http://docs.openstack.org/developer/openstack-ansible/install-guide/configure-network-services.html#load-balancing-service-optional + when: neutron_lbaas | bool