diff --git a/doc/source/contributor/releases.rst b/doc/source/contributor/releases.rst index 68b4e514a..9155c3690 100644 --- a/doc/source/contributor/releases.rst +++ b/doc/source/contributor/releases.rst @@ -55,6 +55,69 @@ Testing Test the code and fix at a minimum all critical issues. +Synchronise with Kolla Ansible feature flags +-------------------------------------------- + +Clone the Kolla Ansible repository, and run the +Kayobe ``tools/kolla-feature-flags.sh`` script: + +.. code-block:: console + + tools/kolla-feature-flags.sh + +Copy the output of the script, and replace the ``kolla_feature_flags`` list in +``ansible/roles/kolla-ansible/vars/main.yml``. + +The ``kolla.yml`` configuration file should be updated to match: + +.. code-block:: console + + tools/feature-flags.py + +Copy the output of the script, and replace the list of ``kolla_enable_*`` flags +in ``etc/kayobe/kolla.yml``. + +Synchronise with Kolla Ansible inventory +---------------------------------------- + +Clone the Kolla Ansible repository, and copy across any relevant changes. The +Kayobe inventory is based on the ``ansible/inventory/multinode`` inventory, but +split into 3 parts - top-level, components and services. + +Top level +^^^^^^^^^ + +The top level inventory template is +``ansible/roles/kolla-ansible/templates/overcloud-top-level.j2``. It is heavily +templated, and does not typically need to be changed. Look out for changes in +the ``multinode`` inventory before the ``[baremetal]`` group. + +Components +^^^^^^^^^^ + +The components inventory template is +``ansible/roles/kolla-ansible/templates/overcloud-components.j2``. + +This includes groups in the ``multinode`` inventory from the ``[baremetal]`` +group down to the following text:: + + # Additional control implemented here. These groups allow you to control which + # services run on which hosts at a per-service level. + +Services +^^^^^^^^ + +The services inventory template is +``ansible/roles/kolla-ansible/templates/overcloud-services.j2``. + +This includes groups in the ``multinode`` inventory from the following text to +the end of the file:: + + # Additional control implemented here. These groups allow you to control which + # services run on which hosts at a per-service level. + +There are some small changes in this section which should be maintained. + .. _update-dependencies-for-release: Update dependencies to upcoming release diff --git a/tools/feature-flags.py b/tools/feature-flags.py index 921f93b31..874a0402c 100755 --- a/tools/feature-flags.py +++ b/tools/feature-flags.py @@ -2,6 +2,8 @@ # Usage: run this script and copy the output to etc/kayobe/kolla.yml +# See also: tools/kolla-feature-flags.sh + import os import pathlib diff --git a/tools/kolla-feature-flags.sh b/tools/kolla-feature-flags.sh new file mode 100755 index 000000000..8d4277a87 --- /dev/null +++ b/tools/kolla-feature-flags.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# This script generates a list of Kolla Ansible feature flags to use as the +# kolla_feature_flags variable in ansible/roles/kolla-ansible/vars/main.yml. +# It should be run periodically and before a release. + +# See also: tools/feature-flags.py + +set -e +set -o pipefail + +KOLLA_ANSIBLE_SRC=$1 +KOLLA_GROUP_VARS_ALL=${KOLLA_ANSIBLE_SRC}/ansible/group_vars/all.yml + +if [[ ! -f $KOLLA_GROUP_VARS_ALL ]]; then + echo "Usage: $0 " + exit 1 +fi + +# Find all feature flags, strip the enable_ prefix and value, sort. +cat ${KOLLA_GROUP_VARS_ALL} | grep '^enable_'| sed -e 's/enable_\(.*\):.*/ - \1/' | sort