Files
openstack-ansible/doc/source/user/source-overrides/index.rst
Jean-Philippe Evrard 3a4ca09d11 Developer docs refactor
This refactor has the intent of guiding a new OpenStack-Ansible
user towards his first contributions.

The deploy guide is now pointing towards the Developer Guide,
but there is was no guidance given, just a series of topics.

Here, the first page of the developer guide is an onboarding
page, explaining our repos, what's inside them, and how to
contribute. It then links towards all the sections, which
had to be restructured to match a wizard-style flow.

Change-Id: Ib2a5f2063c4dc58fc249ac94c3cd85bb281f28a5
2018-04-04 19:22:49 +02:00

78 lines
2.3 KiB
ReStructuredText

==========================
Source overriding examples
==========================
There are situations where a deployer want to override sources with
its own fork.
This chapter gives case-by-case examples on how to override the
default sources.
Overriding Ansible version
==========================
Overriding the default Ansible version is not recommended, as
each branch of OpenStack-Ansible has been built with the a specific
Ansible version in mind, and many Ansible changes are neither backwards
nor forward compatible.
The ``bootstrap-ansible.sh`` script installs Ansible, and uses
a variable ``ANSIBLE_PACKAGE`` to describe which version to install.
For example to install ansible version 2.5.0:
.. code:: bash
$ export ANSIBLE_PACKAGE="ansible==2.5.0"
Installing directly from git is also supported. For example, from the tip of
Ansible development branch:
.. code:: bash
$ export ANSIBLE_PACKAGE="git+https://github.com/ansible/ansible@devel#egg=ansible"
Overriding the roles
====================
Overriding the role file has been explained in the reference guide,
on the :ref:`extend_osa_roles` section.
Overriding other upstream projects source code
==============================================
All the upstream repositories used are defined in the
``openstack-ansible`` integrated repository, in the
``playbooks/defaults/repo_packages`` folder.
For example, if you want to override ``glance`` repository with your
own, you need to define the following:
::
glance_git_repo: https://<your git repo>
glance_git_install_branch: <your git branch or commit SHA>
glance_git_project_group: glance_all
Please note, for this glance example, that you do not need to edit the
``playbooks/defaults/repo_packages/openstack_services.yml`` file.
Instead, the usual overrides mechanism can take place, and you
can define these 3 variables in a ``user_*.yml`` file.
See also the :ref:`user-overrides` page.
.. note::
These variables behave a little differently than standard ansible
precedence, because they are also consumed by a custom lookup plugin.
The ``py_pkgs lookup`` will ignore all _git_ variables unless the
``_git_repo`` variable is present.
So even if you only want to override the ``_git_install_branch`` for
a repository, you should also define the ``_git_repo`` variable
in your user variables.