Continuous Integration (CI) & Testing¶
Kolla-Ansible uses Zuul for continuous integration. Similar to testing performed using devstack, Kolla-Ansible is capable of integrating and testing pre-merged dependencies from many other projects.
Debugging with ARA in CI¶
Frequently, the need arises to obtain more verbose ansible logging in CI. ARA is an ansible plugin that collects a large amount of execution information and can render it into a browser friendly format.
This plugin is not enabled by default because there is a per-task overhead. However, it’s possible to trigger it when trying to debug a failing job.
By adding the text #ara to the git commit message of the review, the CI jobs will enable the plugin and generate a sqlite database containing comprehensive logging. It’s possible to render an HTML version of this by using #ara_verbose. Generating the HTML is not very efficient, however, and consumes a large amount of logging resources.
Please note that git usually strips lines beginning with # from the commit message. This can be avoided by preceding the string with a space.
CI coverage matrix¶
Zuul job templates live in zuul.d and are applied in
zuul.d/project.yaml. Pipelines always run tox/python style+unit checks,
docs/release builds, and requirements checks; the matrix below shows the
scenario jobs in check/gate.
Scenario |
Disabled |
Voting |
Tempest |
Core |
Upgrade |
SLURP |
Multinode |
TLS |
Ceph |
Cinder |
Octavia |
Valkey |
Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AIO core |
– |
✅ |
✅ |
✅ |
✅ |
✅ |
– |
✅ |
– |
– |
– |
– |
Core OpenStack (Keystone/Glance/Neutron/Nova/Heat) with Horizon; RabbitMQ/MariaDB/Memcached; Fluentd. |
Bifrost |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
Bifrost baremetal provisioning standalone. |
Cells |
– |
✅ |
✅ |
– |
✅ |
– |
✅ |
– |
– |
– |
– |
– |
Nova Cells v2 + ProxySQL; Horizon/Heat on; dashboard sanity. |
Cephadm |
– |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
– |
✅ |
✅ |
External Ceph (cinder/glance/nova) + RGW; RabbitMQ tuned. |
Container engine migration |
❌ |
– |
✅ |
✅ |
– |
– |
✅ |
✅ |
– |
– |
– |
– |
Container engine migration playbook; Tempest smoke; currently disabled (failing). |
Federation |
– |
– |
✅ |
– |
✅ |
– |
✅ |
✅ |
– |
– |
– |
– |
Keystone federation behind httpd. |
HAProxy FQDN |
– |
– |
✅ |
– |
– |
– |
✅ |
✅ |
– |
– |
– |
– |
HAProxy VIP/FQDN handling. |
Ironic |
– |
– |
✅ |
✅ |
– |
– |
– |
– |
– |
– |
– |
– |
Ironic + Tenks; Prometheus on; DNSMasq/iSCSI helpers. |
IPv6 |
❌ |
– |
✅ |
– |
✅ |
– |
– |
– |
– |
– |
– |
– |
IPv6-only deployment; currently disabled (disk pressure). |
Kayobe |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
Kayobe overcloud smoke (non-voting). |
KVM |
– |
– |
– |
✅ |
– |
– |
✅ |
– |
– |
– |
– |
– |
Nested virt compute (KVM). |
Let’s Encrypt |
– |
✅ |
✅ |
– |
✅ |
– |
✅ |
– |
– |
– |
– |
– |
Pebble ACME end-to-end, dashboard; DB/Rabbit TLS. |
Magnum |
– |
– |
✅ |
– |
– |
– |
– |
– |
– |
– |
– |
– |
Magnum + Designate + Trove. |
MariaDB |
– |
✅ |
– |
✅ |
✅ |
– |
✅ |
– |
– |
– |
– |
– |
Galera + ProxySQL, Fluentd, HAProxy, Keepalived. |
Masakari |
– |
– |
✅ |
– |
– |
– |
– |
– |
– |
– |
– |
✅ |
Masakari + Pacemaker. |
NFV |
– |
– |
✅ |
– |
✅ |
– |
– |
– |
– |
– |
✅ |
✅ |
Tacker + Neutron SFC, Barbican, Mistral, Aodh. |
Octavia |
– |
– |
✅ |
– |
– |
– |
– |
– |
✅ |
✅ |
– |
– |
Octavia/Amphora. |
OpenBao |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
– |
OpenBao-backed password management (password round-trip only; no deploy). |
OVN |
– |
✅ |
✅ |
✅ |
✅ |
– |
✅ |
✅ |
– |
✅ |
– |
– |
Neutron ML2/OVN + OVN Octavia provider. |
Prometheus + OpenSearch |
– |
– |
– |
✅ |
– |
✅ |
✅ |
– |
– |
– |
– |
– |
Fluentd, OpenSearch, Grafana, Prometheus, RabbitMQ/DB core. |
Skyline |
❌ |
– |
✅ |
– |
– |
✅ |
– |
– |
– |
– |
– |
– |
Skyline dashboard; currently disabled (SSO issues). |
Telemetry |
– |
– |
✅ |
– |
– |
✅ |
– |
– |
– |
– |
✅ |
✅ |
Aodh, Ceilometer, Gnocchi. |
Zun |
– |
✅ |
✅ |
– |
✅ |
✅ |
✅ |
✅ |
– |
– |
– |
– |
Zun + Kuryr + Cinder LVM; etcd; dashboard. |
Legend: ✅ = covered, ❌ = disabled, – = not covered. Core means the standard
Keystone/Glance/Neutron/Nova/Heat stack is deployed; Tempest indicates
smoke tests run; SLURP = Skip Level Upgrade Release Process.