Merge "Zuul v3: update with Ansible role information"
This commit is contained in:
commit
921e38a153
@ -634,6 +634,54 @@ cleanup::
|
|||||||
roles:
|
roles:
|
||||||
- archive-logs: "/opt/workspace/logs"
|
- archive-logs: "/opt/workspace/logs"
|
||||||
|
|
||||||
|
All of the content of Ansible playbooks is held in the git
|
||||||
|
repositories that Zuul operates on, and this is true for some of the
|
||||||
|
Ansible roles as well, though some playbooks will require roles that
|
||||||
|
are defined outside of this system. Because the content of roles must
|
||||||
|
be already present on the host executing a playbook, Zuul will need to
|
||||||
|
be able to prepare these roles prior to executing a job. To
|
||||||
|
facilitate this, job definitions may also specify role dependencies::
|
||||||
|
|
||||||
|
### global_config.yaml (continued)
|
||||||
|
- job:
|
||||||
|
name: ansible-nova
|
||||||
|
parent: base
|
||||||
|
roles:
|
||||||
|
- zuul: openstack-infra/infra-roles
|
||||||
|
- galaxy: openstack.nova
|
||||||
|
name: nova
|
||||||
|
|
||||||
|
This would instruct zuul to prepare the execution context with roles
|
||||||
|
collected from the zuul-managed "infra-roles" repository, as well as
|
||||||
|
the "openstack.nova" role from Ansible Galaxy. An optional "name"
|
||||||
|
attribute will cause the role will to be placed in a directory with
|
||||||
|
that name so that the role may be referenced by it. When constructing
|
||||||
|
a job using inheritance, roles for the child job will extend the list
|
||||||
|
of roles from the parent job (this is intended to make it simple to
|
||||||
|
ensure that all jobs have a basic set of roles available).
|
||||||
|
|
||||||
|
If a job references a role in a Zuul-managed repo, the usual
|
||||||
|
dependency processing will apply (so that jobs can run with un-merged
|
||||||
|
changes in other repositories).
|
||||||
|
|
||||||
|
A Zuul repository might be a bare single-role repository (e.g.,
|
||||||
|
ansible-role-puppet), or it might be a repository which contains
|
||||||
|
multiple roles (e.g., infra-roles, or even project-config). Zuul
|
||||||
|
should detect these cases and handle them accordingly.
|
||||||
|
|
||||||
|
* If a repository appears to be a bare role (has tasks/, vars/,
|
||||||
|
etc. directories at the root of the repo), the directory containing
|
||||||
|
the repo checkout (which should otherwise be empty) should be added
|
||||||
|
to the roles_path Ansible configuration value.
|
||||||
|
* If a repository has a roles/ directory at the root, the roles/
|
||||||
|
directory within the repo should be added to roles_path.
|
||||||
|
* Otherwise, the root of the repository should be added to the roles
|
||||||
|
path (under the assumption that individual directories in the
|
||||||
|
repository are roles).
|
||||||
|
|
||||||
|
In the future, Zuul may support reading Ansible requirements.yaml
|
||||||
|
files to determine roles needed for jobs.
|
||||||
|
|
||||||
Execution
|
Execution
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user