Merge "Add source code orientation to development docs"

This commit is contained in:
Zuul 2019-10-25 13:28:51 +00:00 committed by Gerrit Code Review
commit 1d82724875

View File

@ -2,6 +2,46 @@
Development
===========
Source Code Orientation
=======================
There are a number of layers to Kayobe, so here we provide a few pointers to
the major parts.
CLI
---
The Command Line Interface (CLI) is built using the `cliff
<https://pypi.org/project/cliff/>`__ library. Commands are exposed as Python
entry points in `setup.cfg
<https://opendev.org/openstack/kayobe/src/branch/master/setup.cfg>`__. These
entry points map to classes in `kayobe/cli/commands.py
<https://opendev.org/openstack/kayobe/src/branch/master/kayobe/cli/commands.py>`__.
The helper modules `kayobe/ansible.py
<https://opendev.org/openstack/kayobe/src/branch/master/kayobe/ansible.py>`__
and `kayobe/kolla_ansible.py
<https://opendev.org/openstack/kayobe/src/branch/master/kayobe/kolla_ansible.py>`__
are used to execute Kayobe playbooks and Kolla Ansible commands respectively.
Ansible
-------
Kayobe's Ansible playbooks live in `ansible/*.yml
<https://opendev.org/openstack/kayobe/src/branch/master/ansible>`__, and these
typically execute roles in `ansible/roles/
<https://opendev.org/openstack/kayobe/src/branch/master/ansible/roles>`__.
Global variable defaults are defined in group variable files in
`ansible/group_vars/all/
<https://opendev.org/openstack/kayobe/src/branch/master/ansible/group_vars/>`__
and these typically map to commented out variables in the configuration files
in `etc/kayobe/*.yml
<https://opendev.org/openstack/kayobe/src/branch/master/etc/kayobe/>`__.
A number of custom Jinja filters exist in `ansible/filter_plugins/*.py
<https://opendev.org/openstack/kayobe/src/branch/master/ansible/filter_plugins>`__.
Kayobe depends on roles hosted on Ansible Galaxy, and these and their version
requirements are defined in `requirements.yml
<https://opendev.org/openstack/kayobe/src/branch/master/requirements.yml>`__.
Ansible Galaxy
==============