diff options
| author | Konstantinos Mouzakitis <kon.mouzakitis@vscaler.com> | 2020-06-09 12:59:52 -0400 |
|---|---|---|
| committer | Radosław Piliszek <radoslaw.piliszek@gmail.com> | 2020-06-18 17:33:51 +0000 |
| commit | f6d8c0d481306a45d61ed224c02ff12615e83ec9 (patch) | |
| tree | 97b2fa40bcb50682abb4cbb0578e0ec0d093e257 | |
| parent | ce1dc6da0a9de197c149cd045d48ff7a25c54701 (diff) | |
| download | kolla-ansible-f6d8c0d481306a45d61ed224c02ff12615e83ec9.tar.gz kolla-ansible-f6d8c0d481306a45d61ed224c02ff12615e83ec9.zip | |
Adding support for multiple globals files
Added a spec file for this blueprint.
Changed the kolla-ansible script to accept more than one
globals.yml file. That will still be the main one but operators
will be able to create more, under the /etc/kolla/globals.d
directory.
Also added some paragraphs in the quickstart documentation
about this.
Finally, Adding a release note
Change-Id: I34eb91d0e2ed80694594b8fc6801cf8ad77da754
Implements: blueprint multiple-globals-files
| -rw-r--r-- | doc/source/user/quickstart.rst | 15 | ||||
| -rw-r--r-- | releasenotes/notes/add-multiple-globals-files-support-a75bde9f02b7b022.yaml | 7 | ||||
| -rw-r--r-- | specs/multiple-globals-files.rst | 88 | ||||
| -rwxr-xr-x | tools/kolla-ansible | 4 |
4 files changed, 113 insertions, 1 deletions
diff --git a/doc/source/user/quickstart.rst b/doc/source/user/quickstart.rst index ee14729e2..f0496c0a9 100644 --- a/doc/source/user/quickstart.rst +++ b/doc/source/user/quickstart.rst @@ -453,6 +453,21 @@ There are a few options that are required to deploy Kolla-Ansible: :kolla-ansible-doc:`Services Reference Guide <reference/index.html>`. +* Multiple globals files + + For a more granular control, enabling any option from the main + ``globals.yml`` file can now be done using multiple yml files. Simply, + create a directory called ``globals.d`` under ``/etc/kolla/`` and place + all the relevant ``*.yml`` files in there. The ``kolla-ansible`` script + will, automatically, add all of them as arguments to the ``ansible-playbook`` + command. + + An example use case for this would be if an operator wants to enable cinder + and all its options, at a later stage than the initial deployment, without + tampering with the existing ``globals.yml`` file. That can be achieved, using + a separate ``cinder.yml`` file, placed under the ``/etc/kolla/globals.d/`` + directory and adding all the relevant options in there. + * Virtual environment It is recommended to use a virtual environment to execute tasks on the remote diff --git a/releasenotes/notes/add-multiple-globals-files-support-a75bde9f02b7b022.yaml b/releasenotes/notes/add-multiple-globals-files-support-a75bde9f02b7b022.yaml new file mode 100644 index 000000000..e90b685b4 --- /dev/null +++ b/releasenotes/notes/add-multiple-globals-files-support-a75bde9f02b7b022.yaml @@ -0,0 +1,7 @@ +--- +features: + - Adds support for multiple globals files. + The main ``globals.yml`` file still exists. In addition to that, + operators can now create a ``globals.d`` directory (next to + ``globals.yml``), where they can place any number of ``*.yml`` files, + for example for specific services they want to add. diff --git a/specs/multiple-globals-files.rst b/specs/multiple-globals-files.rst new file mode 100644 index 000000000..ab9dc8767 --- /dev/null +++ b/specs/multiple-globals-files.rst @@ -0,0 +1,88 @@ +.. + This work is licensed under a Creative Commons Attribution 3.0 Unported + License. + + http://creativecommons.org/licenses/by/3.0/legalcode + +.. + This template should be in ReSTructured text. The filename in the git + repository should match the launchpad URL, for example a URL of + https://blueprints.launchpad.net/kolla/+spec/awesome-thing should be named + awesome-thing.rst . Please do not delete any of the sections in this + template. If you have nothing to say for a whole section, just write: None + For help with syntax, see http://www.sphinx-doc.org/en/stable/rest.html + To test out your formatting, see http://www.tele3.cz/jbar/rest/rest.html + +====================================== +Add support for multiple globals files +====================================== + +https://blueprints.launchpad.net/kolla-ansible/+spec/multiple-globals-files + +Adding this feature to the kolla-ansible script, which will make it, automatically, +read multiple globals files. This would give operators the ability to have +separate globals files for some services, giving them a bit more granular control, +without the need to add the ``-e @/path/to/file`` flag. These files will be placed +under a new ``/etc/kolla/globals.d`` directory and ``kolla-ansible`` will search +for ``globals.d/*.yml`` files. The main ``globals.yml`` file will still exist +under ``/etc/kolla``, as usual. + +Problem description +=================== + +There's no problem, per say, to solve. This feature will basically give operators +the ability to have separate globals files for some services, giving them a bit +more granular control, without the need to add the ``-e @/path/to/file`` flag. + +Use cases +--------- +1. Allow a more granular controler over individual service's options +2. Better file and directory structure + +Proposed change +=============== + +- Add the capability in the ``tools/kolla-ansible`` script + - Check if the ``globals.d`` directory exists + - If it is, add its files in the ``CONFIG_OPTS`` variable at the end of the ``tools/kolla-ansible`` script + +Security impact +--------------- + +None + +Performance Impact +------------------ + +None + + +Implementation +============== + +Assignee(s) +----------- + +Konstantinos Mouzaitis <kon.mouzakitis@vscaler.com> + +Milestones +---------- + +Target Milestone for completion: + ussuri-10.0.0 + +Work Items +---------- + +- Add the capability in the ``tools/kolla-ansible`` script + - Check if the ``globals.d`` directory exists + - If it is, add its files in the ``CONFIG_OPTS`` variable at the end of the ``tools/kolla-ansible`` script + +Testing +======= +Test the new kolla-ansible script when the ``globals.d`` directory exists and +includes some more yml files, as well as when it doesn't exist. + +Documentation Impact +==================== +``doc/source/user/quickstart.rst`` will need to be updated to include the options discussed in this feature diff --git a/tools/kolla-ansible b/tools/kolla-ansible index dfc98cec5..fca10ea71 100755 --- a/tools/kolla-ansible +++ b/tools/kolla-ansible @@ -452,6 +452,8 @@ EOF ;; esac -CONFIG_OPTS="-e @${CONFIG_DIR}/globals.yml -e @${PASSWORDS_FILE} -e CONFIG_DIR=${CONFIG_DIR}" +GLOBALS_DIR="${CONFIG_DIR}/globals.d" +EXTRA_GLOBALS=$(find ${GLOBALS_DIR} -maxdepth 1 -type f -name '*.yml' -printf ' -e @%p') +CONFIG_OPTS="-e @${CONFIG_DIR}/globals.yml ${EXTRA_GLOBALS} -e @${PASSWORDS_FILE} -e CONFIG_DIR=${CONFIG_DIR}" CMD="ansible-playbook -i $INVENTORY $CONFIG_OPTS $EXTRA_OPTS $PLAYBOOK $VERBOSITY" process_cmd |
