[release] add kolla feature flag sync scripts and update docs

Adds a script for syncing feature flags from Kolla Ansible, and updates
the release docs to include this step. Also adds the inventory sync
step.

Change-Id: Id2bd48897d6b37a5006bad7f6e8597db20aa1b8b
This commit is contained in:
Mark Goddard 2021-04-23 17:16:10 +01:00
parent 0b279474e0
commit b7287ec586
3 changed files with 86 additions and 0 deletions

View File

@ -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 <path to kolla-ansible source>
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

View File

@ -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

21
tools/kolla-feature-flags.sh Executable file
View File

@ -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 <path to kolla-ansible source>"
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