Zuul CI Roles¶
-
apache-logs-conf
¶ Prepare apache configs and logs for staging
Make sure apache config files and log files are available in a linux flavor independent location. Note that this relies on hard links, to the staging directory must be in the same partition where the logs and configs are.
Role Variables
-
stage_dir
¶
Default:{{ ansible_user_dir }}
The base stage directory.
-
-
capture-system-logs
¶ Stage a number of system type logs
Stage a number of different logs / reports: - snapshot of iptables - disk space available - pip[2|3] freeze - installed packages (dpkg/rpm) - ceph, openswitch, gluster - coredumps - dns resolver - listen53 - unbound.log - deprecation messages
Role Variables
-
stage_dir
¶
Default:{{ ansible_user_dir }}
The base stage directory.
-
-
devstack-ipv6-only-deployments-verification
¶ Verify the IPv6-only deployments
This role needs to be invoked from a playbook that run tests. This role verifies the IPv6 setting on devstack side and devstack deploy services on IPv6. This role is invoked before tests are run so that if any missing IPv6 setting or deployments can fail the job early.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
-
devstack-project-conf
¶ Prepare OpenStack project configurations for staging
Prepare all relevant config files for staging. This is helpful to avoid staging the entire /etc.
Role Variables
-
stage_dir
¶
Default:{{ ansible_user_dir }}
The base stage directory.
-
-
export-devstack-journal
¶ Export journal files from devstack services
This performs a number of logging collection services
Export the systemd journal in native format
For every devstack service, export logs to text in a file named
screen-*
to maintain legacy compatability when devstack services used to run in a screen session and were logged separately.Export a syslog-style file with kernel and sudo messages for legacy compatability.
Writes the output to the
logs/
subdirectory ofstage_dir
.Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory. This is used to obtain the
log-start-timestamp.txt
, used to filter the systemd journal.
-
stage_dir
¶
Default:{{ ansible_user_dir }}
The base stage directory.
-
fetch-devstack-log-dir
¶ Fetch content from the devstack log directory
Copy logs from every host back to the zuul executor.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
-
get-devstack-os-environment
¶ Reads the OS_* variables set by devstack through openrc for the specified user and project and exports them as the os_env_vars fact.
WARNING: this role is meant to be used as porting aid for the non-unified python-<service>client jobs which are already around, as those clients do not use clouds.yaml as openstackclient does. When those clients and their jobs are deprecated and removed, or anyway when the new code is able to read from clouds.yaml directly, this role should be removed as well.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
openrc_file
¶
Default:{{ devstack_base_dir }}/devstack/openrc
The location of the generated openrc file.
-
openrc_user
¶
Default:admin
The user whose credentials should be retrieved.
-
openrc_project
¶
Default:admin
The project (which openrc_user is part of) whose access data should be retrieved.
-
openrc_enable_export
¶
Default:false
Set it to true to export os_env_vars.
-
-
orchestrate-devstack
¶ Orchestrate a devstack
Runs devstack in a multinode scenario, with one controller node and a group of subnodes.
The reason for this role is so that jobs in other repository may run devstack in their plays with no need for re-implementing the orchestration logic.
The “run-devstack” role is available to run devstack with no orchestration.
This role sets up the controller and CA first, it then pushes CA data to sub-nodes and run devstack there. The only requirement for this role is for the controller inventory_hostname to be “controller” and for all sub-nodes to be defined in a group called “subnode”.
This role needs to be invoked from a playbook that uses a “linear” strategy.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
-
process-stackviz
¶ Generate stackviz report.
Generate stackviz report using subunit and dstat data, using the stackviz archive embedded in test images.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
stage_dir
¶
Default:"{{ ansible_user_dir }}"
The stage directory where the input data can be found and the output will be produced.
-
zuul_work_dir
¶
Default:{{ devstack_base_dir }}/tempest
Directory to work in. It has to be a fully qualified path.
-
-
run-devstack
¶ Run devstack
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
-
setup-devstack-cache
¶ Set up the devstack cache directory
If the node has a cache of devstack image files, copy it into place.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
devstack_cache_dir
¶
Default:/opt/cache
The directory with the cached files.
-
-
setup-devstack-log-dir
¶ Set up the devstack log directory
Create a log directory on the ephemeral disk partition to save space on the root device.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
-
setup-devstack-source-dirs
¶ Set up the devstack source directories
Ensure that the base directory exists, and then move the source repos into it.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
devstack_sources_branch
¶
Default:None
The target branch to be setup (where available).
-
-
setup-stack-user
¶ Set up the stack user
Create the stack user, set up its home directory, and allow it to sudo.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
devstack_stack_home_dir
¶
Default:{{ devstack_base_dir }}
The home directory for the stack user.
-
-
setup-tempest-user
¶ Set up the tempest user
Create the tempest user and allow it to sudo.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
-
start-fresh-logging
¶ Restart logging on all hosts
Restart syslog so that the system logs only include output from the job.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
-
sync-controller-ceph-conf-and-keys
¶ Sync ceph config and keys between controller and subnodes
Simply copy the contents of /etc/ceph on the controller to subnodes.
-
sync-devstack-data
¶ Sync devstack data for multinode configurations
Sync any data files which include certificates to be used if TLS is enabled. This role must be executed on the controller and it pushes data to all subnodes.
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
devstack_data_base_dir
¶
Default:{{ devstack_base_dir }}
The devstack base directory for data/. Useful for example when multiple executions of devstack (i.e. grenade) share the same data directory.
-
-
write-devstack-local-conf
¶ Write the local.conf file for use by devstack
Role Variables
-
devstack_base_dir
¶
Default:/opt/stack
The devstack base directory.
-
devstack_local_conf_path
¶
Default:{{ devstack_base_dir }}/devstack/local.conf
The path of the local.conf file.
-
devstack_localrc
¶
Type: dict A dictionary of variables that should be written to the localrc section of local.conf. The values (which are strings) may contain bash shell variables, and will be ordered so that variables used by later entries appear first.
As a special case, the variable
LIBS_FROM_GIT
will be constructed automatically from the projects which appear in therequired-projects
list defined by the job plus the project of the change under test. To instruct devstack to install a library from source rather than pypi, simply add that library to the job’srequired-projects
list. To override the automatically-generated value, setLIBS_FROM_GIT
indevstack_localrc
to the desired value.
-
devstack_local_conf
¶
Type: dict A complex argument consisting of nested dictionaries which combine to form the meta-sections of the local_conf file. The top level is a dictionary of phases, followed by dictionaries of filenames, then sections, which finally contain key-value pairs for the INI file entries in those sections.
The keys in this dictionary are the devstack phases.
-
devstack_local_conf{}.
[phase]
¶
Type: dict The keys in this dictionary are the filenames for this phase.
-
-
devstack_base_services
¶
Default:{{ base_services | default(omit) }}
Type: list A list of base services which are enabled. Services can be added or removed from this list via the
devstack_services
variable. This is ignored ifbase
is set toFalse
indevstack_services
.
-
devstack_services
¶
Type: dict A dictionary mapping service names to boolean values. If the boolean value is
false
, adisable_service
line will be emitted for the service name. If it istrue
, thenenable_service
will be emitted. All other values are ignored.The special key
base
can be used to enable or disable the base set of services enabled by default. Ifbase
is found, it will processed before all other keys. If its value isFalse
adisable_all_services
will be emitted; if its value isTrue
services fromdevstack_base_services
will be emitted viaENABLED_SERVICES
.
-
devstack_plugins
¶
Type: dict A dictionary mapping a plugin name to a git repo location. If the location is a non-empty string, then an
enable_plugin
line will be emmitted for the plugin name.If a plugin declares a dependency on another plugin (via
plugin_requires
in the plugin’s settings file), this role will automatically emitenable_plugin
lines in the correct order.
-
tempest_plugins
¶
Type: list A list of tempest plugins which are installed alongside tempest.
The list of values will be combined with the base devstack directory and used to populate the
TEMPEST_PLUGINS
variable. If the variable already exists, its value is not changed.
-