Merge "Adding support for multiple globals files"
This commit is contained in:
commit
26c7824055
@ -453,6 +453,21 @@ There are a few options that are required to deploy Kolla-Ansible:
|
|||||||
:kolla-ansible-doc:`Services Reference Guide
|
:kolla-ansible-doc:`Services Reference Guide
|
||||||
<reference/index.html>`.
|
<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
|
* Virtual environment
|
||||||
|
|
||||||
It is recommended to use a virtual environment to execute tasks on the remote
|
It is recommended to use a virtual environment to execute tasks on the remote
|
||||||
|
@ -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.
|
88
specs/multiple-globals-files.rst
Normal file
88
specs/multiple-globals-files.rst
Normal file
@ -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
|
@ -452,6 +452,8 @@ EOF
|
|||||||
;;
|
;;
|
||||||
esac
|
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"
|
CMD="ansible-playbook -i $INVENTORY $CONFIG_OPTS $EXTRA_OPTS $PLAYBOOK $VERBOSITY"
|
||||||
process_cmd
|
process_cmd
|
||||||
|
Loading…
Reference in New Issue
Block a user