Filter out empty src/source from user-role/collection-requirements
In case when deployer wants to remove some specific collection or from deployment without overriding rest requirements, they can do that now through defining a record with same name but empty src/source keys which will filter such records out of bootstrap process. Change-Id: I4bc96c1a1d18d03970a14a80c3daa580bebe695b
This commit is contained in:
parent
5e37cdf534
commit
1e1c63ee81
@ -74,24 +74,55 @@ the location of a YAML file which ansible-galaxy can consume,
|
|||||||
specifying which roles to download and install.
|
specifying which roles to download and install.
|
||||||
The default value for this is ``ansible-role-requirements.yml``.
|
The default value for this is ``ansible-role-requirements.yml``.
|
||||||
|
|
||||||
You can override the ansible-role-requirement file used by defining
|
To completely override the ansible-role-requirement file you can define
|
||||||
the environment variable ``ANSIBLE_ROLE_FILE`` before running the
|
the environment variable ``ANSIBLE_ROLE_FILE`` before running the
|
||||||
``bootstrap-ansible.sh`` script.
|
``bootstrap-ansible.sh`` script. With this approach it is now the
|
||||||
|
responsibility of the deployer to maintain appropriate versions pins
|
||||||
|
of the ansible roles if an upgrade is required.
|
||||||
|
|
||||||
It is now the responsibility of the deployer to maintain appropriate
|
If you want to extend or just partially override content of the
|
||||||
versions pins of the ansible roles if an upgrade is required.
|
``ansible-role-requirements.yml`` file you can create a new config file
|
||||||
|
which path defaults to ``/etc/openstack_deploy/user-role-requirements.yml``.
|
||||||
|
This path can be overriden with another environment variable
|
||||||
|
``USER_ROLE_FILE`` which is expected to be relative to ``OSA_CONFIG_DIR``
|
||||||
|
(/etc/openstack_deploy) folder.
|
||||||
|
|
||||||
Adding new collections in your OpenStack-Ansible installation
|
This file is in the same format as ``ansible-role-requirements.yml`` and can be
|
||||||
-------------------------------------------------------------
|
used to add new roles or selectively override existing ones. New roles
|
||||||
|
listed in ``user-role-requirements.yml`` will be merged with those
|
||||||
|
in ``ansible-role-requirements.yml``, and roles with matching ``name`` key
|
||||||
|
will override those in ``ansible-role-requirements.yml``. In case when
|
||||||
|
``src`` key is not defined bootstrap script will skip cloning such roles.
|
||||||
|
|
||||||
|
It is easy for a deployer to keep this file under their own version
|
||||||
|
control and out of the openstack-ansible tree.
|
||||||
|
|
||||||
|
|
||||||
|
Adding new or overriding collections in your OpenStack-Ansible installation
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Alike to roles, collections for installation are stored in
|
||||||
|
`ansible-collection-requirements`_ file. Path to this file can be overriden
|
||||||
|
through ``ANSIBLE_COLLECTION_FILE`` environmental variable.
|
||||||
|
|
||||||
The Victoria release of openstack-ansible adds an optional new config
|
The Victoria release of openstack-ansible adds an optional new config
|
||||||
file which defaults to
|
file which defaults to
|
||||||
``/etc/openstack_deploy/user-collection-requirements.yml``. It should be
|
``/etc/openstack_deploy/user-collection-requirements.yml``.
|
||||||
in the native format of the ansible-galaxy requirements file and can be
|
|
||||||
used to add new collections to the deploy host.
|
It should be in the native format of the ansible-galaxy requirements file
|
||||||
|
and can be used to add new collections to the deploy host or override versions
|
||||||
|
or source for collections defined in ``ansible-collection-requirements``.
|
||||||
|
|
||||||
|
``user-collection-requirements`` will be merged with
|
||||||
|
``ansible-collection-requirements`` using collection ``name`` as a key.
|
||||||
|
In case ``source`` is not defined in ``user-collection-requirements``,
|
||||||
|
collection installation will be skipped. This way you can skip installation
|
||||||
|
of unwanted collections.
|
||||||
|
|
||||||
You can override location of the ``user-collection-requirements.yml`` by
|
You can override location of the ``user-collection-requirements.yml`` by
|
||||||
setting ``USER_COLLECTION_FILE`` environment variable before running the
|
setting ``USER_COLLECTION_FILE`` environment variable before running the
|
||||||
``bootstrap-ansible.sh`` script.
|
``bootstrap-ansible.sh`` script. Though it is expected to be relative to
|
||||||
|
``OSA_CONFIG_DIR`` (/etc/openstack_deploy) folder.
|
||||||
|
|
||||||
Installing extra Python packages inside Ansible virtualenv
|
Installing extra Python packages inside Ansible virtualenv
|
||||||
----------------------------------------------------------
|
----------------------------------------------------------
|
||||||
@ -106,25 +137,8 @@ You can override the default path to ``user-ansible-venv-requirements.txt`` file
|
|||||||
with ``USER_ANSIBLE_REQUIREMENTS_FILE`` environment variable before running the
|
with ``USER_ANSIBLE_REQUIREMENTS_FILE`` environment variable before running the
|
||||||
``bootstrap-ansible.sh`` script.
|
``bootstrap-ansible.sh`` script.
|
||||||
|
|
||||||
Maintaining local forks of ansible roles
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
The Train release of openstack-ansible adds an optional new config file
|
|
||||||
which defaults to ``/etc/openstack_deploy/user-role-requirements.yml``.
|
|
||||||
It is in the same format as ``ansible-role-requirements.yml`` and can be
|
|
||||||
used to add new roles or selectively override existing ones. New roles
|
|
||||||
listed in ``user-role-requirements.yml`` will be merged with those
|
|
||||||
in ``ansible-role-requirements.yml``, and roles with matching names
|
|
||||||
will override those in ``ansible-role-requirements.yml``. It is easy
|
|
||||||
for a deployer to keep this file under their own version control and out
|
|
||||||
of the openstack-ansible tree.
|
|
||||||
|
|
||||||
|
|
||||||
This allows a deployer to
|
|
||||||
either add new ansible roles, or override the location or SHA of
|
|
||||||
existing individual roles without replacing the original file
|
|
||||||
entirely. It is also straightforward to include the
|
|
||||||
|
|
||||||
.. _ansible-role-requirements: https://opendev.org/openstack/openstack-ansible/src/ansible-role-requirements.yml
|
.. _ansible-role-requirements: https://opendev.org/openstack/openstack-ansible/src/ansible-role-requirements.yml
|
||||||
|
.. _ansible-collection-requirements: https://opendev.org/openstack/openstack-ansible/src/ansible-collection-requirements.yml
|
||||||
|
|
||||||
.. _ansible-galaxy: https://docs.ansible.com/ansible/latest/galaxy/user_guide.html#install-multiple-collections-with-a-requirements-file
|
.. _ansible-galaxy: https://docs.ansible.com/ansible/latest/galaxy/user_guide.html#install-multiple-collections-with-a-requirements-file
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Deployers are now able to remove un-needed roles/collections from the
|
||||||
|
bootstrap process through user-role/collection-requirements.yml files.
|
||||||
|
Please, check documentation for more details:
|
||||||
|
https://docs.openstack.org/openstack-ansible/latest/reference/configuration/extending-osa.html
|
@ -46,6 +46,7 @@
|
|||||||
with_items: "{{ user_collections.collections }}"
|
with_items: "{{ user_collections.collections }}"
|
||||||
when:
|
when:
|
||||||
- user_collections.collections is defined
|
- user_collections.collections is defined
|
||||||
|
- "'source' in item"
|
||||||
|
|
||||||
- name: Check the Zuul src dir for cloned collections
|
- name: Check the Zuul src dir for cloned collections
|
||||||
stat:
|
stat:
|
||||||
|
@ -119,7 +119,7 @@
|
|||||||
|
|
||||||
- name: Append user overridden roles
|
- name: Append user overridden roles
|
||||||
set_fact:
|
set_fact:
|
||||||
clone_roles: "{{ (clone_roles | default([])) + user_roles }}"
|
clone_roles: "{{ (clone_roles | default([])) + user_roles | rejectattr('src', 'undefined') }}"
|
||||||
|
|
||||||
- name: Clone git repos
|
- name: Clone git repos
|
||||||
block:
|
block:
|
||||||
|
Loading…
Reference in New Issue
Block a user