Update documentation on overriding config files
The main motivation here is to document a mechanism which can be used to configure Nova cells on a per-cell basis without introducing a myriad of additional locations to put config files. The following changes are made: - Remove the note about only ini files being supported because merge_yaml is now used - Expand on supported config file locations - Add a section on using conditionals in the config file Partially Implements: blueprint support-nova-cells Change-Id: I92599e501506fdacaf3adb94cc6fffcf6fea2af3
This commit is contained in:
parent
651b983bdb
commit
98bed6c2bf
@ -157,10 +157,6 @@ in the ``/etc/kolla/certificates/`` directory.
|
|||||||
OpenStack Service Configuration in Kolla
|
OpenStack Service Configuration in Kolla
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
As of now kolla only supports config overrides for ini based configs.
|
|
||||||
|
|
||||||
An operator can change the location where custom config files are read from by
|
An operator can change the location where custom config files are read from by
|
||||||
editing ``/etc/kolla/globals.yml`` and adding the following line.
|
editing ``/etc/kolla/globals.yml`` and adding the following line.
|
||||||
|
|
||||||
@ -170,10 +166,29 @@ editing ``/etc/kolla/globals.yml`` and adding the following line.
|
|||||||
node_custom_config: "/etc/kolla/config"
|
node_custom_config: "/etc/kolla/config"
|
||||||
|
|
||||||
Kolla allows the operator to override configuration of services. Kolla will
|
Kolla allows the operator to override configuration of services. Kolla will
|
||||||
look for a file in ``/etc/kolla/config/<< service name >>/<< config file >>``.
|
generally look for a file in ``/etc/kolla/config/<< config file >>``,
|
||||||
This can be done per-project, per-service or per-service-on-specified-host.
|
``/etc/kolla/config/<< service name >>/<< config file >>`` or
|
||||||
For example to override scheduler_max_attempts in nova scheduler, the operator
|
``/etc/kolla/config/<< service name >>/<< hostname >>/<< config file >>``,
|
||||||
needs to create ``/etc/kolla/config/nova/nova-scheduler.conf`` with content:
|
but these locations sometimes vary and you should check the config task in
|
||||||
|
the appropriate Ansible role for a full list of supported locations. For
|
||||||
|
example, in the case of ``nova.conf`` the following locations are supported,
|
||||||
|
assuming that you have services using ``nova.conf`` running on hosts
|
||||||
|
called ``controller-0001``, ``controller-0002`` and ``controller-0003``:
|
||||||
|
|
||||||
|
* ``/etc/kolla/config/nova.conf``
|
||||||
|
* ``/etc/kolla/config/nova/nova.conf``
|
||||||
|
* ``/etc/kolla/config/nova/controller-0001/nova.conf``
|
||||||
|
* ``/etc/kolla/config/nova/controller-0002/nova.conf``
|
||||||
|
* ``/etc/kolla/config/nova/controller-0003/nova.conf``
|
||||||
|
* ``/etc/kolla/config/nova/nova-scheduler.conf``
|
||||||
|
|
||||||
|
Using this mechansim, overrides can be configured per-project,
|
||||||
|
per-project-service or per-project-service-on-specified-host.
|
||||||
|
|
||||||
|
Overriding an option is as simple as setting the option under the relevant
|
||||||
|
section. For example, to set ``override scheduler_max_attempts`` in nova
|
||||||
|
scheduler, the operator could create
|
||||||
|
``/etc/kolla/config/nova/nova-scheduler.conf`` with content:
|
||||||
|
|
||||||
.. path /etc/kolla/config/nova/nova-scheduler.conf
|
.. path /etc/kolla/config/nova/nova-scheduler.conf
|
||||||
.. code-block:: ini
|
.. code-block:: ini
|
||||||
@ -192,6 +207,40 @@ on host myhost, the operator needs to create file
|
|||||||
cpu_allocation_ratio = 16.0
|
cpu_allocation_ratio = 16.0
|
||||||
ram_allocation_ratio = 5.0
|
ram_allocation_ratio = 5.0
|
||||||
|
|
||||||
|
This method of merging configuration sections is supported for all services
|
||||||
|
using Oslo Config, which includes the vast majority of OpenStack services,
|
||||||
|
and in some cases for services using YAML configuration. Since the INI format
|
||||||
|
is an informal standard, not all INI files can be merged in this way. In
|
||||||
|
these cases Kolla supports overriding the entire config file.
|
||||||
|
|
||||||
|
Additional flexibility can be introduced by using Jinja conditionals in the
|
||||||
|
config files. For example, you may create Nova cells which are homogeneous
|
||||||
|
with respect to the hypervisor model. In each cell, you may wish to configure
|
||||||
|
the hypervisors differently, for example the following override shows one way
|
||||||
|
of setting the ``bandwidth_poll_interval`` variable as a function of the cell:
|
||||||
|
|
||||||
|
.. path /etc/kolla/config/nova.conf
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
[DEFAULT]
|
||||||
|
{% if 'cell0001' in group_names %}
|
||||||
|
bandwidth_poll_interval = 100
|
||||||
|
{% elif 'cell0002' in group_names %}
|
||||||
|
bandwidth_poll_interval = -1
|
||||||
|
{% else %}
|
||||||
|
bandwidth_poll_interval = 300
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
An alternative to Jinja conditionals would be to define a variable for the
|
||||||
|
``bandwidth_poll_interval`` and set it in according to your requirements
|
||||||
|
in the inventory group or host vars:
|
||||||
|
|
||||||
|
.. path /etc/kolla/config/nova.conf
|
||||||
|
.. code-block:: ini
|
||||||
|
|
||||||
|
[DEFAULT]
|
||||||
|
bandwidth_poll_interval = {{ bandwidth_poll_interval }}
|
||||||
|
|
||||||
Kolla allows the operator to override configuration globally for all services.
|
Kolla allows the operator to override configuration globally for all services.
|
||||||
It will look for a file called ``/etc/kolla/config/global.conf``.
|
It will look for a file called ``/etc/kolla/config/global.conf``.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user