Commit Graph

34 Commits

Author SHA1 Message Date
Bartosz Bezak 09507a3824 CI: fetch systemd configuration including kolla-generated unit files
Change-Id: I4ea22dbe43cd4780335df5cf0eee5c4339855fac
2023-08-01 14:39:12 +02:00
Maksim Malchuk 7088ff2c2f CI: Fix kayobe-seed-images-* jobs
Followup on I0d7ab0d8ff5b16ac5de8e50e63400bd455996555.
Fix issue with 'permission denied' while doing stat files.
Also we collect kolla-build configs for CI.

Change-Id: I209459ecf5b1a6e5f541cbc72d74aa7defb459d4
Signed-off-by: Maksim Malchuk <maksim.malchuk@gmail.com>
2023-05-31 19:28:33 +00:00
Bartosz Bezak 84fcc6ad0b CI: Add custom routing table output to logs.
Change-Id: Id86acf22cc548b37222a78300c1d5063f4527bf2
2023-03-31 12:08:49 +02:00
Bartosz Bezak f9fee1f17f CI: get repo directories from nodes for troubleshooting
Change-Id: I0f7a3dcb021f726693725f070d9a2ff80d84fe0e
2023-03-08 11:28:54 +01:00
Bartosz Bezak 2f447f6545 Move to Rocky Linux 9
CentOS Stream 8 support has been dropped. Migration path will be present
in Yoga release - as a followup change.

MichaelRigart.interfaces does not support custom routes for
NetworkManager yet. It has been disabled in CI for Rocky Linux 9
temporarily.

Non-voting CentOS Stream 9 CI overcloud job is using RL9 container
images (as kolla CI is not building CS9 images anymore).

Change-Id: Idf5ee822b03ba40179803c981500a6bad37594bf
2022-12-12 22:24:47 +01:00
Mark Goddard 05c09523fa ironic: default to ipxe booting
Enable the Ironic ipxe boot interface by default, following a similar
change in Ironic [1].

Drop the kolla_enable_ironic_ipxe flag, following a similar change in
Kolla Ansible [2]. Both PXE and iPXE are now enabled by default. Users
may revert to using PXE for ironic inspector's dnsmasq, by setting
ironic_dnsmasq_serve_ipxe to false in etc/kayobe/kolla/globals.yml.

[1] https://review.opendev.org/c/openstack/ironic/+/816824
[2] https://review.opendev.org/c/openstack/kolla-ansible/+/834512/

Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/832159
Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/834511
Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/837069

Change-Id: Ifb80bd15a20c9cfb8fbc6e0f6ac23baae631a18e
2022-04-12 11:57:21 +00:00
Michal Nasiadka 8e55ea08a4 Add support for Rocky Linux 8
Change-Id: If7d6e58b19f98ccb7cc4c209e458cb6f4f4765ad
2022-03-18 15:04:21 +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 883027afb0 CI: Enable bare metal testing for Ubuntu
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
2022-02-14 09:16:59 +00:00
Mark Goddard e0dec91689 Disable EPEL by default
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
2021-12-23 13:04:12 +00:00
Pierre Riteau c35f112a14 Build overcloud host image directly with DIB
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
2021-11-26 09:28:00 +01:00
Pierre Riteau 4ef6e59ef5 CI: Remove IPA images from saved /etc/kolla
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
2021-09-17 14:28:02 +02:00
Pierre Riteau 545f36106c CI: Log disk usage details
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
2021-09-16 13:01:47 +02:00
Michał Nasiadka 923813ac48 CI: Fix get_logs.sh docker logs output
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
2021-09-09 11:32:45 +02:00
Mark Goddard 3bbf736d8d Ubuntu: support systemd-networkd
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
2021-04-21 08:23:44 +00:00
Zuul 0e3ec62471 Merge "CI: add Ubuntu overcloud deploy job" 2021-03-04 14:22:40 +00:00
Mark Goddard 9f41cefc15 CI: add Ubuntu overcloud deploy job
* 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
2021-03-01 17:57:51 +00:00
Pierre Riteau e23e47dd63 Report available entropy
Change-Id: I0c37ba259d96c351e03dba1c8343fce8a84eb53e
Depends-On: https://review.opendev.org/c/openstack/kayobe-config-dev/+/777076
2021-02-24 15:04:00 +01:00
Pierre Riteau c84a9757dd Test building seed deployment images in the seed job
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
2021-02-05 11:50:15 +01:00
Mark Goddard b9d76f6ef5 Remove support for CentOS 7 and Python 2
* 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
2020-05-28 10:25:51 +01:00
Mark Goddard c657ead4f2 Stop gzipping logs in get-logs.sh
As per [1] we should stop compressing the logs sent to swift in order
to get them back readable via a browser.

[1] http://lists.openstack.org/pipermail/openstack-discuss/2020-January/011875.html

Change-Id: Ieb1577f859d388a0f326cb6933c953f486dfca15
Co-Authored-By: Michal Nasiadka <mnasiadka@gmail.com>
2020-02-11 13:04:37 +00:00
Mark Goddard 70556c8e37 Improve diagnostics for seed jobs
Change-Id: I4336cb50c37c9e72bdcc0a7c0424d0f7f158b79b
2019-06-06 10:28:55 +00:00
zhulingjie 8be12b71d7 use include_tasks and import_playbook instead of include
include is marked as deprecated since ansible 2.4[0]

Switch to include_tasks or import_playbook as necessary

[0] https://docs.ansible.com/ansible/2.4/include_module.html#deprecated

Change-Id: Ia1b826ca08ae042eec80f8c495ab030a087d97ba
2019-01-18 12:22:38 +00:00
Zuul 9120e74e9f Merge "Add --quiet flag to CI diagnostics collection" 2018-11-27 17:04:43 +00:00
Mark Goddard bbe3b45924 Add --quiet flag to CI diagnostics collection
This ensures that our CI logs are neat, and not full of file rsync
output.

Change-Id: Ic3bad1baa1b2f8639c8ce848a60c024d8c22e8d0
2018-11-21 15:36:28 +00:00
Mark Goddard 486cda26d8 Save previous kayobe & kolla configuration
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
2018-11-21 14:03:58 +00:00
Will Miller d0e9c50fd2 Add tenks-deploy.sh dev script
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
2018-11-20 18:53:09 +00:00
Mark Goddard 74cdf09d1a Use zuul's install-docker role
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
2018-11-12 10:58:59 +00:00
Mark Goddard 6266312fa1 Test upgrades in CI
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
2018-11-05 12:02:31 +00:00
Mark Goddard e327a84307 Save kolla-generated per-node configuration in CI logs
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
2018-09-28 18:43:11 +01:00
Mark Goddard d594faf657 Collect kayobe and kolla configuration in deployment CI jobs
This can help in analysing failures.

Change-Id: I9910f89fbeb5698a66659a835041dc564e2b64ae
2018-05-16 19:15:05 +01:00
Mark Goddard d385b32382 Add CI job for molecule tests
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
2018-04-10 12:28:27 +01:00
Mark Goddard cd6c366cc6 Add a job for seed deployment
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
2018-04-09 12:10:38 +01:00
Mark Goddard 4cdf71f5a1 Add overcloud deployment job
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
2018-03-15 10:47:54 +00:00