2266 Commits

Author SHA1 Message Date
Mark Goddard
f3bca3e0f6 CI: pin pytest-metadata<2 for molecule
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
2022-03-22 20:09:21 +00:00
Zuul
4616c87010 Merge "Add support for Rocky Linux 8" 2022-03-20 22:20:24 +00:00
Mark Goddard
994af643e6 ironic: switch to kernel_append_params
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
2022-03-18 20:42:25 +00:00
Michal Nasiadka
8e55ea08a4 Add support for Rocky Linux 8
Change-Id: If7d6e58b19f98ccb7cc4c209e458cb6f4f4765ad
2022-03-18 15:04:21 +00:00
Maksim Malchuk
1de4f2a4a3 Skip IP address allocation and configuration if needed
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>
2022-03-18 11:39:40 +01:00
Zuul
a1ed4a05bb Merge "Use naming convention to infer VLAN tagging" 2022-03-17 02:01:15 +00:00
Zuul
bf4f58489f Merge "Fix link formatting in release note" 2022-03-16 18:46:57 +00:00
Will Szumski
dd956189ed Use naming convention to infer VLAN tagging
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
2022-03-16 16:30:19 +01:00
Pierre Riteau
2d16a70e00 CI: Enable overcloud TLS job again
Change If483a6a6fb6d5b2c9b6b7dbd22939b0b46599538 which fixed the job
should have included this bit.

Change-Id: I22e2e6d361bc15fe7aa47ff833b3c5a525266221
2022-03-16 15:40:19 +01:00
Zuul
5fdf643807 Merge "CI: Don't download Cirros or IPA in seed jobs" 2022-03-16 11:41:09 +00:00
Pierre Riteau
1d4046ef4b Fix link formatting in release note
Change-Id: I3d6a703f74a662ca28022fe44ca936c192c7e89e
2022-03-16 11:42:08 +01:00
Zuul
0c3fd4b5e2 Merge "Only create patch links on overcloud hosts" 2022-03-16 01:49:30 +00:00
Zuul
4f76cae4ab Merge "Bump MichaelRigart.interfaces to v1.13.1" 2022-03-16 01:34:38 +00:00
Zuul
5d996709a6 Merge "CI: Move to pytest-testinfra" 2022-03-16 01:34:36 +00:00
Zuul
554f23074e Merge "CI: fix TLS job by freeing up memory" 2022-03-16 01:34:33 +00:00
Zuul
b463568434 Merge "CI: Disable container image builds on Ubuntu" 2022-03-15 20:26:33 +00:00
Mark Goddard
07eb06755e CI: Pin ansible-lint to <6
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
2022-03-15 15:10:01 +00:00
Mark Goddard
d77a30db36 CI: Don't download Cirros or IPA in seed jobs
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
2022-03-15 13:24:42 +00:00
Mark Goddard
acf6d0d51f CI: Disable container image builds on Ubuntu
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
2022-03-15 09:52:38 +00:00
Pierre Riteau
b0c1d4c53a CI: fix TLS job by freeing up memory
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
2022-03-11 17:38:09 +01:00
Pierre Riteau
5fb6362e25 CI: Disable TLS job until fixed
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
2022-03-11 10:19:31 +01:00
Will Szumski
bb9da9fb24 Only create patch links on overcloud hosts
These are only neccesary on network and compute nodes.

Co-authored-by: Mark Goddard <mark@stackhpc.com>

Change-Id: Id5af3969da63150e892201f7518f50a3da73e852
Story: 2009911
Task: 44740
2022-03-10 16:51:38 +00:00
Mark Goddard
a786ef20f7 Bump MichaelRigart.interfaces to v1.13.1
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
2022-03-10 09:18:15 +00:00
Michal Nasiadka
a20fc47f0c CI: Move to pytest-testinfra
Change-Id: I615707976454a91c8f6aecc5eda1852def7197d4
2022-03-07 14:32:48 +01:00
Zuul
678b915aff Merge "CI: remove qemu-utils installation" 2022-03-03 18:00:32 +00:00
Zuul
f3f4dbb78c Merge "Add support for root filesystem UUID customisation" 2022-03-03 15:49:47 +00:00
Zuul
a245d5019c Merge "CI: stop setting libvirt_host_require_vt in overrides" 2022-03-03 13:16:25 +00:00
Zuul
4004f5d009 Merge "Add the bonding 802.3ad aggregation selection option" 2022-03-03 13:16:22 +00:00
Zuul
705dfcf81c Merge "Synchronise Kolla Ansible inventory template" 2022-03-03 13:16:19 +00:00
Zuul
0352b098bf Merge "Drop vmtp" 2022-03-03 13:16:16 +00:00
Zuul
afa8618f6a Merge "CI: stop using zuul as kayobe_ansible_user in TLS jobs" 2022-03-03 13:16:13 +00:00
Pierre Riteau
e453f3c570 CI: remove qemu-utils installation
nova-libvirt images now include qemu-utils on master [1] and xena [2].

[1] https://review.opendev.org/c/openstack/kolla/+/830401
[2] https://review.opendev.org/c/openstack/kolla/+/831411

Change-Id: I8f5f93340642d055cce7ef306d942e75b10c86a9
2022-03-03 10:01:21 +01:00
Piotr Parczewski
04d97cda85 Add support for root filesystem UUID customisation
Depends-on: https://review.opendev.org/c/openstack/bifrost/+/819785
Change-Id: I37b9d18f0523c121357c5a37ec6fc458209f8e79
2022-03-03 09:42:03 +01:00
Zuul
b2b013c1cf Merge "Bump up Ansible supported versions" 2022-03-02 17:34:35 +00:00
Mark Goddard
a0665cd9c6 CI: stop using zuul as kayobe_ansible_user in TLS jobs
Previously we were using the zuul user in the TLS jobs. This was due to
a permissions issue when accessing the CA certificate in kayobe-config
in the zuul user's home directory.

This change reverts to the default of using the stack user for the TLS
jobs. In order to make this work, the generated CA cert chain is added
to the trust store.

Change-Id: I875f8976df75dee68ba00842fe624c29cc1b123c
2022-03-02 13:34:12 +00:00
Zuul
082f9c5477 Merge "CI: test fact caching" 2022-02-28 13:09:51 +00:00
Pierre Riteau
0177eedc9b Synchronise Kolla Ansible inventory template
Change-Id: Iaec4c530c353f7b97209a205473601abb0a408f4
2022-02-25 11:21:29 +01:00
Pierre Riteau
fb24afca9e Drop vmtp
This was removed from Kolla during the Yoga release cycle.

Change-Id: I0d2fba4e23ba49dec5adc9a822af2afe09111b58
2022-02-25 11:16:47 +01:00
Mark Goddard
06123b795d ntp: Remove removal of chrony container
The chrony container removal was performed in the Xena cycle, so we no
longer require this task in the 'overcloud host configure' command.

Change-Id: I86fcc75e844eb922f62c90c45a105519845cc1a7
2022-02-23 22:36:14 +00:00
Zuul
01e5834ed1 Merge "CI: enable libvirt TLS in TLS job" 2022-02-23 18:00:52 +00:00
Zuul
2de62b1710 Merge "Sync enable flag defaults with kolla ansible" 2022-02-23 13:31:43 +00:00
Pierre Riteau
959bef6745 CI: test fact caching
Also synchronise Ansible settings between Kayobe and Kolla Ansible.

Change-Id: Idaea4a984391a8cd05a5b0eee254ac6bad531a3e
2022-02-23 09:29:43 +01:00
Maksim Malchuk
8e36626e3e Add the bonding 802.3ad aggregation selection option
Change-Id: I863e18841924e88c8943c1df0c6753fd90c90ef3
Signed-off-by: Maksim Malchuk <maksim.malchuk@gmail.com>
2022-02-22 17:42:39 +03:00
Mark Goddard
f477473bd7 Revert "CI: drop jobs requiring kolla-ansible"
This reverts commit f00a65ead9f3e7431c7c54c2eb7132c2ff32a089.

Reason for revert: fix for kolla-ansible installation with
openstack.kolla has merged.

Change-Id: I361c68904eb66e9728b4a902a0998e4bc06d2dcd
2022-02-22 10:13:04 +00:00
Mark Goddard
3efc551e7e Install Ansible collections for kolla-ansible
This change uses the new Galaxy requirements file in Kolla Ansible to
install the openstack.kolla collection.

Cross-project dependencies on ansible-collection-kolla are supported.

Story: 2009854
Task: 44504

Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/819430
Change-Id: Iac185dd2bbbca128c6cf71b2734e94b3e1c6133b
2022-02-22 09:23:35 +00:00
Mark Goddard
06c6191799 Install openstack.kolla collection
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
2022-02-22 09:23:14 +00:00
Mark Goddard
cb48f7e5d2 Refactor host configure commands to use a single playbook
Ansible failure handling is different when executing multiple top-level
playbooks (CLI arguments) vs. multiple plays within a top-level
playbook. If any hosts have failed or are unreachable at the end of a
top-level playbook, then ansible-playbook exits non-zero.

In contrast, execution will continue at the end of a mid-playbook play
if there are hosts that have not failed or become unreachable. This is
documented in [1].

Currently, Kayobe executes multiple top-level playbooks, most notably in
the host configure commands where there is a long list of them. This has
implications when working at scale, where failures are more common. If a
host fails at any point, then execution of the command will stop at the
end of the current playbook. This means that the command must be run
again for all hosts. Additionally, if any hosts are unreachable, then
the command is unable to progress at all without removing them from the
inventory.

This change refactors the host configure and host upgrade commands to
use a single top-level playbook.

[1] https://github.com/markgoddard/ansible-experiments/tree/master/14-error-handling

Story: 2009854
Task: 44482

Change-Id: Ia63d66097b10b6ddda30ad693636143f8b1a85e0
2022-02-22 09:22:09 +00:00
Mark Goddard
f00a65ead9 CI: drop jobs requiring kolla-ansible
Drop Kayobe jobs until we support installing kolla-ansible with
openstack.kolla collection
(Iac185dd2bbbca128c6cf71b2734e94b3e1c6133b).

Change-Id: Ia6cc7e2f7a9a9fb0a1c3e0fdf07e7cdd1cbd431c
2022-02-22 09:17:18 +00:00
Mark Goddard
b2e8e71553 CI: Revert from UEFI to BIOS mode in TLS jobs
We keep hitting the OOM killer in the TLS job, and the switch to UEFI
mode in bare metal testing seems like the most likely culprit.

This change keeps in place most of the changes of
Id1b4e9775c834b8b97e086241ee8b247977225a2, but removes the override of
ironic_boot_mode in the TLS job.

Change-Id: Id35894be893183b0b84e6dacb81e1b72e4a828f9
2022-02-21 17:34:08 +00:00
Mark Goddard
5cf03e9870 CI: stop setting libvirt_host_require_vt in overrides
It is now set globally in kayobe-config-dev.

Depends-On: https://review.opendev.org/c/openstack/kayobe-config-dev/+/829225
Change-Id: Ib46834fd226c3f59146bbaada53c8d079481d315
2022-02-21 14:14:30 +00:00