This reverts commit 88dd02dc92ca4b544aec18bfbb1d1d93954c55fe.
Reason for revert: Master is now Zed
Change-Id: I9a18c41dbdc369a7a719632d6e41e2373784f29e
Switch all dependencies to use the OpenStack Yoga release.
This commit should be reverted on the master branch once the
Kayobe stable/yoga branch has been cut and RC1 released.
Change-Id: Ib7495c1bf79de8b1ea67e4a8652345c22e9d1a3e
When a kolla-ansible group is composed of a kayobe group with the same
name and of at least one other kayobe group, kayobe would generate an
invalid Ansible inventory such as:
[compute:children]
controllers
compute
Because the top-level group should already be defined, we only need to
add as children the kayobe groups using different names.
Change-Id: I88bdf1e3d0c08271ac8938ae2f9ac3f9fee1efa5
Story: 2009927
Task: 44798
This reverts commit b2e8e715538b4f7dcfda7d657497818828a66dae.
Reason for revert: Other measures were taken to reduce memory overhead.
Change-Id: I4987480b4ed1bd4bd95a0ae72861f471cc229e20
Syncs with Kolla Ansible inventory for Yoga release, at commit
1a20c2348830eb189026b7d1d799ed0fa435aeeb.
Change-Id: I119c200c0c61e7996ba9996d480d07cb0a273b60
Disk and container image builds tend to be fairly unreliable.
With 3 voting seed jobs all building images, this can introduce
instability into the CI jobs.
This change adds a non-voting kayobe-seed-images-centos8s job, which
does the following:
* Builds IPA images
* Builds an overcloud host image
* Builds a base container image
Similar Rocky and Ubuntu jobs are added to the experimental pipeline,
and may be run by commenting 'check experimental' in gerrit.
The existing kayobe-seed-* jobs no longer build images.
Change-Id: Idecda342f3ab86733e8d59061458d44af834dbb0
This adds a variable that allows you to modify the version of ansible
installed in the kolla-ansible virtualenv. This is useful if you want
to use a customised version of ansible.
Change-Id: I319dd51ed3221826f820fbc0ae3639b89e9c82ea
The contextfilter decorator was deprecated in jinja2 3.0.0, and has been
dropped in 3.1.0. This results in the following warning, and failed
attempts to use filters:
[WARNING]: Skipping plugin (networks.py) as it seems to be invalid:
module 'jinja2' has no attribute 'contextfilter'
This change switches to use the pass_context decorator. The minimum
version of Jinja2 is raised to 3 to ensure pass_context is present.
This change also includes some changes to address issues with image
builds in CI, caused by CentOS Scream.
1. disable IPA image builds in seed deploy jobs
IPA image builds will be split out into a separate job. For now, disable
them.
2. disable overcloud host image builds in seed deploy jobs
Overcloud host image builds will be split out into a separate job. For
now, disable them.
Depends-On: https://review.opendev.org/c/openstack/kayobe/+/835279
Change-Id: If657bf5b0117812d3c53942464cc41cf86cc8ad5
This change adds support for configuration of Apt package manager in
/etc/apt/apt.conf.d/. This allows adding arbitrary global configuration
options for Apt. Options can be added in different files, allowing for
different filename-based priorities.
CI tests and documentation are provided.
Story: 2009655
Task: 43987
Change-Id: I9d7d18851359e97cd01b4c2287bf79110796b25a
This change adds support for configuring Apt repositories on Ubuntu
hosts during host configuration.
Repositories are configured in a single file
(/etc/apt/sources.list.d/kayobe.sources), using the modern deb822
format [1]. This format is more flexible and readable than the original
single-line format, particularly if multiple options are used.
Using a single file allows us to more easily keep the set of
repositories in sync, since Ansible doesn't make it easy to clean things
up.
Support is added for marking repositories as signed by a particular GPG
key. This approach is now preferred over the deprecated [2] apt-key
tool, which resulted in a set of globally trusted keys.
It is also possible to disable the repositories in
/etc/apt/sources.list via apt_disable_sources_list. This allows for
replacing the standard repositories with a local mirror.
CI tests and documentation are provided.
[1] https://manpages.ubuntu.com/manpages/focal/en/man5/sources.list.5.html
[2] https://manpages.ubuntu.com/manpages/groovy/man8/apt-key.8.html
Story: 2009655
Task: 43818
Change-Id: I3f821937b0930a0ac9341178de7ae5123d82b957
The release of pytest-metadata 2.0.0 appears to have broken the molecule tests.
AttributeError: 'Config' object has no attribute '_metadata'
Change-Id: I60cf89ce2f8c236b7febb92d437abf7e21bb7acd
Currently, the 'kayobe * host package update' commands do not work on
Ubuntu, since the main task is skipped.
This change adds support for running the commands against Ubuntu hosts,
passing parameters to the package module based on the OS distribution.
Change-Id: I879df0ea3f357c2bb45a5e7331a3f2569eac63e9
Story: 2009685
Task: 43988
Since I4fb42d376636dc363cd86950ed37de4a3d28df73, kolla-ansible sets
kernel_append_params in ironic.conf, instead of the deprecated
pxe_append_params. Make the same change in the Kayobe ironic.conf
template, to avoid getting shadowed by the kolla-ansible default.
This also fixes the overcloud TLS job, which started failing because it
lost the ipa-insecure kernel option, making the Ironic API callback
invalid.
Change-Id: Id7e4bd7f199ad9dcb21d5db082e7a187cb310df9
When some custom config files are used, generation of local
configuration for Kolla Ansible is not idempotent. This happens because
an executable permission is applied recursively in a directory, then
reverted on regular files.
Change-Id: I8cc9531570b76a8282a95c4036324e9d1025d7cb
Sometimes some hosts should be configured with an interface without any
IP address set (e.g. bridged interface) and to achieve that this change
adds the new attribute 'no_ip' for the network configuration. Also the
change contain a test for this.
Change-Id: I2c9dfeca7f0d37a96f9cbd9df51d94098cf07258
Signed-off-by: Maksim Malchuk <maksim.malchuk@gmail.com>
Any interface not matching the convention: <interface>.<vlan id> will be
assumed to untagged when generating the config drive. The link type will
be set to `phy` in `network_data.json` instead of `vlan`. This prevents
invalid config drive configuration from being generated.
Change-Id: I00e7615581c7a214e0ee8e8f04cacdbb3ea4131a
Story: 2009910
Task: 44736
Change If483a6a6fb6d5b2c9b6b7dbd22939b0b46599538 which fixed the job
should have included this bit.
Change-Id: I22e2e6d361bc15fe7aa47ff833b3c5a525266221
The molecule job is failing with the following since the release of
ansible-lint 6.0.0:
ModuleNotFoundError: No module named 'ansiblelint.prerun'
Pin ansible-lint to <6.
Also ignore changes to molecule-requirements.txt for jobs that don't use
it.
Change-Id: I00ea1b4cd57a22a1a0939ddc463ef336da2f0902
We build IPA images and a deployment image in the seed jobs, so we don't
need to download Cirros or IPA images. Also, these downloads depend on
external resources which may make jobs less reliable.
For seed upgrade jobs, disable IPA and deployment image downloads.
Change-Id: Ib59c8bc2d8938eca18c943bb2e66ed185152a739
The kayobe-seed-ubuntu-focal job is currently fairly unreliable, often
failing to build the base container image.
We are not using the mirrors provided by OpenDev infra, which may be
making these builds less reliable.
This change disables container image builds in CI on Ubuntu. It should
be reverted if they are made more reliable.
Change-Id: I648fa6423ad9ff43120c7808f080b0359ad8621c
When TLS is enabled, extra RAM usage is causing the OOM killer to
terminate Tenks VMs, which are using large RSS amounts (around 1.5 GB).
Disable Heat and Horizon to free up enough memory to make the job pass.
Change-Id: If483a6a6fb6d5b2c9b6b7dbd22939b0b46599538
The overcloud job with TLS is failing frequently with the Tenks VM
triggering the OOM killer. Disable until we find a reliable fix.
Change-Id: If42d1f0580d8305a36dd4fd4431680559eb5d68f
These are only neccesary on network and compute nodes.
Co-authored-by: Mark Goddard <mark@stackhpc.com>
Change-Id: Id5af3969da63150e892201f7518f50a3da73e852
Story: 2009911
Task: 44740
The update of MichaelRigart.interfaces to v1.13.0
introduced a regression due to
https://github.com/michaelrigart/ansible-role-interfaces/pull/118.
Configuration for active interfaces could be removed and not recreated,
if not present in the kayobe network interface configuration. This
affects the Kayobe development environment, in which the configuration
does not touch the host's real network interfaces. That would lead to
DHCP leases not being renewed, and consequent loss of access to the
host.
This change fixes the issue by bumping to v1.13.1, which reverts the
change.
Change-Id: I03da729e1d05783af2e290237485f6035d2ddcdc