This patch adds the openstack.kolla collection to the Galaxy
requirements. It is installed from the OpenDev git repository. The
collection is not yet used by Kayobe.
Zuul cross-project dependencies on the ansible-collection-kolla
repository are supported (and used in this commit).
Story: 2009854
Task: 44503
Depends-On: https://review.opendev.org/c/openstack/ansible-collection-kolla/+/820165/
Change-Id: I91cbac839f816a00ac54bc4a350f44b5ae457cc3
Previously we were seeing issues with ipmitool and virtualbmc on Ubuntu:
Error setting Chassis Boot Parameter 5\nError setting Chassis Boot Parameter 0
The dependent change fixes these issues, and this change enables bare
metal testing in Ubuntu CI.
Depends-On: https://review.opendev.org/c/openstack/kayobe-config-dev/+/829006
Change-Id: I96827fc32c1594ca9a0535e259929c49d3f0e704
EPEL is no longer required for a default installation. Let's disable it.
Also clean up the install_epel variable from Kolla Ansible globals.yml
template, since it never existed.
Story: 2009757
Task: 44227
Change-Id: I96eb4685f997e85ad2ee5318640d58d0287a016d
As a first step towards supporting multiple overcloud disk images, this
change introduces a new command to build a disk image directly with DIB:
`kayobe overcloud host image build`.
It also disables building a root disk image during Bifrost bootstrap if
overcloud_dib_build_host_images is set to true.
Change-Id: I93d242889e225b4e60254f6b9cc5eeb457294ac8
Story: 2002098
Task: 41693
This saves 156MB of storage in each CentOS job on the master branch.
Backport note: ironic-ipxe is Xena only. Storage space saved on Wallaby
and older will be about half (varies depending on Linux distribution and
OpenStack release).
Change-Id: Icb3569bc764435127a00ee15583c6f3e4e598eca
Five levels of depth gives us details about each Docker volume. Remove
files or directories smaller than 1MB from the output to keep it short.
Change-Id: I300e37106ab4dc2ebfa70371391c99cd43c7b14c
Currently the logs get printed in Zuul job stdout and only a small portion
of them is redirected to a file - this patch changes that to send all output
to desired files.
Change-Id: I45e937ec7c102e89edee20679b8959bf7f6c7152
This change adds support for network configuration via systemd-networkd
on Ubuntu systems.
This is implemented via an Ansible Galaxy role,
stackhpc.systemd_networkd which was forked from
aruhier.systemd_networkd. Several improvements were made in
https://github.com/stackhpc/ansible-role-systemd-networkd/pull/1,
including:
* Add support for removing unexpected config files
* Use become where necessary
* Refactor config generation into a single task to improve performance
The systemd_networkd role does not add much abstraction on top of the
systemd-networkd configuration file format, which provides a lot of
flexibility at the expense of additional code in Kayobe. This code is
implemented as filter plugins, similarly to the existing
MichaelRigart.interfaces role.
This patch includes support for:
* Ethernet interfaces
* bridges
* bonds
* VLANs
* virtual Ethernet pairs (to connect Linux bridges and OVS bridges)
* static IP addresses
* static routes
* MTU
Some network attributes are currently not supported for
systemd-networkd:
* rules
* route options
* ethtool_opts
* zone
* allowed addresses
Story: 2004960
Task: 41881
Change-Id: I248b5bb9ce5a80a07a2a311cb3aca6daca920720
* Use source images
* Need to specify bash for &> syntax
Issues worked around:
* Manually configuring bridge via ip commands makes ifup fail to bring
up the link. Adds a kayobe-network-bootstrap Zuul CI role that adds
persistent configuration for the all-in-one network.
* bridge not active after interfaces role bounce. Added a pause, similar
to https://github.com/michaelrigart/ansible-role-interfaces/pull/31
* fails installing docker python module for kolla user. WARNING: The
repository located at mirror-int.ord.rax.opendev.org is not a trusted
or secure host and is being ignored ERROR: No matching distribution
found for docker===4.4.0 Adding trusted host for PyPI mirror.
* Tenks fails to create block devices - missing qemu-img (in qemu-utils)
* Tenks qemu emulator is different on Ubuntu
Remaining issues:
* Bare metal testing is unreliable on Ubuntu - some jobs see IPMI
failures such as the following:
ipmitool chassis bootdev pxe
Error setting Chassis Boot Parameter 5\nError setting Chassis Boot
Parameter 0\n
Bare metal testing is disabled on Ubuntu for now.
Depends-On: https://review.opendev.org/766984
Depends-On: https://review.opendev.org/766958
Story: 2004960
Task: 29393
Change-Id: I1985efae7c18f55c3ff7c27c17d6242523904f3e
This requires stackhpc.os-images v1.10.0 or newer, for compatibility
with CentOS 8 when SELinux is enabled: we disable SELinux, but without
rebooting it stays enabled.
This Ansible role was updated to v1.10.2 in master and stable/victoria
by I5efdbd52556721914fe69d7c6ba454b2c721b643, for another reason.
Remember to bump the requirement when backporting to earlier releases.
It also needs changes in the way we interact with Bifrost to avoid using
the env-vars file which has been removed. This is implemented by change
I25078e69acdf41a4ef9957f99fe5047de54b778d.
Finally, it requires building seed deployment images only after
deploying Bifrost, because the task copying images onto the seed expects
/etc/kolla/bifrost to exist.
We also copy log files to identify issues when the job fails.
Change-Id: I4719b4d397c01b35c78cb84c6d686dd27742d1c0
* Always use Python 3
* Drop code paths for CentOS 7
* Drop support for Yum
* Remove support for host NTP daemon, always use chrony
* Switch references from 'yum_install_epel' to 'dnf_install_epel'
* Remove overcloud host image workaround for tagged VLAN admin network
* Remove the kayobe.utils.yum_install function, which is unused
Change-Id: I368f6edafed9779658798fc342116b4c1b3ffd48
Story: 2006574
Task: 39481
In the upgrade CI job, the kayobe configuration is first generated for
the previous release. If the job fails while deploying the previous
release, we don't have access to the configuration that was used.
This change adds previous_kayobe_config and previous_kolla_config to the
saved logs.
Change-Id: I603fc856cf79bdc52f5bf158c6706c1c0ffe2d95
tenks-deploy.sh deploys a minimal virtualized baremetal test cluster
locally. It also adds it to the overcloud-base CI job. To make the new
CI job work, we need to configure the firewall on the test machine to
allow the baremetal machines to communicate with the openstack services.
Change-Id: I7487a2606cf0bac71c5c63db41b2b518a6f6398b
Depends-On: https://review.openstack.org/#/c/615939
Depends-On: https://review.openstack.org/#/c/618003
Story: 2004297
Task: 27850
This allows us to remove the sudo from the tox molecule environment, since
the install-docker role correctly adds the zuul user to the docker group.
Change-Id: Ib7abd22c0caf793a8a59d38a4f63df7e60a7b69e
There is currently no coverage of upgrades in CI, which leaves us open
to regression in this infrequently tested but crucial area. This change
adds the required scripts and Zuul configuration.
A control plane is first deployed using the Kayobe stable/pike branch
and associated default configuration. The control plane is tested by
deploying then deleting a server instance. An upgrade to Queens is
performed, using the Kayobe master branch, or code in review if
applicable. The upgraded control plane is tested by deploying then
deleting a second server instance.
A workaround was required to restart the nova_compute service after the
upgrade, since the SIGHUP sent to it by Kolla Ansible during upgrade
appeared to be putting it into a degraded state.
A future improvement to this test could be to leave a server instance
running during the upgrade.
Change-Id: I0e595524e39d1131fe3ec6aaf2aeec3ff3d6a536
Story: 2003472
Task: 24732
Currently we're saving the config generated by kayobe for kolla, but not
the config generated by kolla for the containers. This change fixes
that.
Change-Id: I5558a4fb8285a4e96f6918d133452d664b7bf0fa
Adds the following zuul job:
kayobe-tox-molecule
It runs ansible role tests using the molecule framework.
Note that we are currently running tox as root to work around issues
with applying docker group membership in the Zuul CI environment.
The ubuntu-1604 platform has been removed because the job takes a long
time to run even on one platform.
Change-Id: I8be24be828c0e124d822d7b39a02169c92b81eb3
Story: #2001637
Task: #6646
Adds a new CI job, kayobe-seed-centos, that deploys a single VM as a
seed host. The VM provided by Zuul is configured as the seed, rather
than a seed hypervisor that provisions a seed VM using nested virt.
This approach should be more reliable, faster, and easier to get
working, at the expense of not testing the seed hypervisor code paths.
Currently the seed services are deployed, but not tested. A future
change could test discovery and provisioning of an overcloud host using
the seed.
Change-Id: Iefe16215af6f1a9fb8ec78094cd6bd76a82a040a
Story: 2001655
Task: 6683
Adds a Zuul job to perform deployment of an OpenStack control plane
consisting of a single node. Currently no tests are run against the
resulting control plane.
Change-Id: I2728421cb5dbd1dc370a3aa7d37d913c90ba38a5
Story: #2001655
Task: #6682