Commit Graph

340 Commits

Author SHA1 Message Date
Takashi Kajinami 2ca88097dc Add Python 3.10 to supported versions
Now we have python 3.10 unit tests and also functional jobs using
Ubuntu Jammy[1].

[1] d92c731aa2

Change-Id: I09648e33b9b55e29d991e9f9f41f08fe38d16580
2024-01-21 23:34:54 +09:00
Mark Goddard 0bb3edcabb Add retries for get_url and package tasks
Occasionally we see connection issues in CI.

Change-Id: I93cc6793cf23fd21462cec6a4deb2ea35d36da21
2023-05-18 09:24:57 +01:00
Mark Goddard 2c2c8b9504 Fix CI failures
* new ansible-lint complaints
* clamp ansible-lint to <7
* tox 4 support
* switch to CentOS NFV Open vSwitch repository for OVS - rocky 9 RDO install was failing
* switch from Kayobe CentOS stream 8 to Rocky Linux 9 and Ubuntu Jammy
  jobs - these are the current supported distros in Kayobe master

Change-Id: Ic607ccccc866da65c100053bfa15ee141a98679e
2023-05-18 09:24:55 +01:00
Mark Goddard d0ded32016 Follow ups to venv
Follow ups to Icd60aca084323cede944ee261d2cf5941b320e4b.

Change-Id: Id25a8b35ad42ee7f095098c210bc14926aec18ed
2022-10-25 08:05:40 +00:00
Radosław Piliszek 3ced4bdb34 Skip more ansible-lint style checks
And add "jinja[invalid]" to warnings as its behaviour is not really
predictable...

Change-Id: Ic0603edec71828c87cde17bdd68c3d5f91385405
2022-10-25 10:05:27 +02:00
Zuul 1c0e259c66 Merge "[CI] Name the Debian version" 2022-09-15 10:11:31 +00:00
Zuul fd66eb499b Merge "[CI] Ignore .ansible-lint in the main jobs" 2022-09-15 10:11:30 +00:00
Zuul a2484e68f9 Merge "[ansible-lint] Unignore jinja[spacing]" 2022-09-15 10:11:27 +00:00
Zuul 76b13d0b24 Merge "[ansible-lint] Restore sanity" 2022-09-15 10:11:25 +00:00
Zuul c8680b2320 Merge "[CI] Optimise ovs setup" 2022-09-15 10:11:23 +00:00
Zuul 7ccf14bd22 Merge "[CI] Remove CentOS 7 support leftovers" 2022-09-15 09:41:34 +00:00
Zuul b1c2b99cc9 Merge "[CI] Gate on CentOS Stream 9 and Rocky Linux 9" 2022-09-15 08:51:14 +00:00
Radosław Piliszek 3b2a730a8b Use Yoga branch of Kayobe for gating CI job (p2)
Follow-up to I2f0c4248138d29d37138d0747d7882ccc3015a6d which did
not fix the gate definition.

Change-Id: I8779976ef26a1784a34331dc29ad8f8d18c1263c
2022-09-14 11:40:12 +00:00
Zuul 7bfa72a755 Merge "Use Yoga branch of Kayobe for gating CI job" 2022-09-14 08:41:02 +00:00
Mark Goddard 84d3147e18 Use Yoga branch of Kayobe for gating CI job
Change-Id: I2f0c4248138d29d37138d0747d7882ccc3015a6d
2022-09-13 09:29:56 +01:00
Radosław Piliszek e6166ed647 [CI] Name the Debian version
To align it with other distros, make it clear which one is tested,
and allow for adding more.

Change-Id: Ie6fb90f23676a7053e372859b07ed10a4eae670d
2022-09-10 11:20:48 +00:00
Radosław Piliszek 7f8b1c70c8 [CI] Ignore .ansible-lint in the main jobs
They do not care about its config.

Change-Id: I6d2d118441136445a344911c02b8c7d2afc589a1
2022-09-10 11:14:37 +00:00
Radosław Piliszek aa922ad2f8 [ansible-lint] Unignore jinja[spacing]
Fix in one place, ignore in the other.

Only 4 warnings now.

Change-Id: I3c745914e2ffdcdd7e70d9e06ae1df05dc120f79
2022-09-10 09:11:28 +00:00
Radosław Piliszek 0d2fb5e71d [ansible-lint] Restore sanity
1.
ansible-lint verbosity is only really required for debugging which
is best done locally, on-demand.

2.
There are almost a hundred violations of fqcn-builtins which
makes it hard to navigate ansible-lint warnings.

3.
command-instead-of-shell and 106 are no longer violated.

There are only 6 warnings now.

Change-Id: I98fb0e587373f85d78a58e84fa8051cbc18f2d8b
2022-09-10 09:11:24 +00:00
Radosław Piliszek 6ca0bb7bd6 [CI] Optimise ovs setup
Change-Id: I28ec8e02054ea75efffe472672ff3ed46c6f2cf7
2022-09-10 09:11:01 +00:00
Radosław Piliszek 75d5ba7338 [CI] Remove CentOS 7 support leftovers
Change-Id: Ic5837cf0a174e1311b1497abdfde7d9166304bfb
2022-09-09 20:56:21 +00:00
Radosław Piliszek a76929cb88 [CI] Gate on CentOS Stream 9 and Rocky Linux 9
It seems their gating was missed in [1].

[1] If36eaeb518828778490a1599f93792c82c189bb6

Change-Id: I2f37691a28b7f1550dbfc6fc2a085435e526ac22
2022-09-09 20:41:46 +00:00
Radosław Piliszek 6c59da3daf Use venv instead of virtualenv
virtualenv is not a part of the core python installation, but
venv is. Let's use it to be slimmer and avoid issues with
virtualenv installation.

At the same time, remove some existing hacks around selinux,
systemd, PyYAML and libvirt.

Change-Id: Icd60aca084323cede944ee261d2cf5941b320e4b
2022-09-09 15:56:21 +00:00
Zuul c41b3edd67 Merge "Add support for EL9" 2022-09-06 14:28:42 +00:00
Michal Nasiadka f34703d297 Add support for EL9
Needs crb repo enablement for python3-wheel package, added rockylinux-9 jobs.

Change-Id: If36eaeb518828778490a1599f93792c82c189bb6
2022-09-06 10:11:40 +00:00
jiaqi07 789f190342 Use TOX_CONSTRAINTS_FILE
UPPER_CONSTRAINTS_FILE is old name and deprecated
This allows to use upper-constraints file as more
readable way instead of UPPER_CONSTRAINTS_FILE=<lower-constraints file>.

Change-Id: I9b1c1702983594202d0040065a80a77d540d211c
2022-09-06 08:44:42 +00:00
Michal Nasiadka 6af32ae579 Fix ansible-lint errors
Add jinja[spacing] to warn list and fix name[play] issues.

Change-Id: Ie9d1d92e8c2fc2e69e0d1fd14ec859ebc67f6a38
2022-09-06 09:35:31 +02:00
jiaqi07 0cd55eae06 remove unicode from code
Change-Id: I561bca72d8395db2a3714180aa228978542eb178
2022-08-12 00:34:37 +00:00
jiaqi07 c13f3c212e Remove py2 unicode markers
Change-Id: I2cedb7f1b649ee3b82e0c6d4a7f0ede87ff3cc1b
2022-08-02 08:16:45 +00:00
Bartosz Bezak d92c731aa2 Add Ubuntu 22.04 Jammy support.
CI and docs updated - openstack-tox-py310 and Jammy tenks jobs.

libzmq5 added as a dependency of vbmc/zmq

Change-Id: Ibf0ca87bc86152953650e7ef8384e5c839d7a8bc
2022-07-26 16:57:19 +02:00
Bartosz Bezak d7312db645 [CI] Drop Python 3.7 job. Fix ansible-lint errors.
Two changes to fix CI:
- Drop Python 3.7 job as Victoria is in extended maintenance now [1][2]
- Name tasks to fix 'unnamed-task' ansible-lint errors

[1]: https://review.opendev.org/c/openstack/governance/+/693743
[2]: https://review.opendev.org/c/openstack/governance/+/743847

Change-Id: I7324467e54deda1a05063cfa1b52a276f7622442
2022-07-26 10:45:19 +02:00
Zuul dcbaa41699 Merge "Remove Python 2 leftovers" 2022-07-07 14:53:00 +00:00
Pierre Riteau 41577fd913 Use yoga upper constraints for openstack-tox-py36
Change-Id: I479e90c62573b4fceb809551cea2456e6bf396f7
2022-07-05 12:28:55 +02:00
Pierre Riteau 3a64cdc911 Remove Python 2 leftovers
Change-Id: I7f6fa2ea66a092f07605b593154cb89d8d31c0c2
2022-07-05 09:35:05 +02:00
Mark Goddard 66f0066273 Use Yoga upper constraints to avoid Python version conflict
Requirements upper constraints bumped python-novaclient to version
18.0.0 [1], which requires Python 3.8 [2]. This results in failures when
installing python-openstackclient on CentOS and Rocky with Python 3.6.

    ERROR: Cannot install python-openstackclient==5.8.0 because these package versions have conflicting dependencies.

    The conflict is caused by:
        python-openstackclient 5.8.0 depends on python-novaclient>=17.0.0
        The user requested (constraint) python-novaclient===18.0.0

Work around this issue by using yoga upper constraints until we upgrade
to CentOS Stream 9 and Rocky Linux 9.

[1] https://review.opendev.org/c/openstack/requirements/+/842808
[2] https://review.opendev.org/c/openstack/python-novaclient/+/838944

Change-Id: I802b206199b06cfa1983f6f07f195660dd7d86ad
2022-05-26 11:35:16 +01:00
Julia Kreger 26cec85434 CI: Removing tenks job queue
Please see: https://zuul-ci.org/docs/zuul/latest/releasenotes.html#relnotes-4-1-0-deprecation-notes

Change-Id: I54e3b2053b6681f117306b7e8576178e890f71f1
2022-05-19 11:23:04 -07:00
Mark Goddard e47ff6bd82 Use jinja2.pass_context instead of contextfilter
Jinja2 3.0.0 deprecated contextfilter in favour of pass_context. 3.1.0
dropped contextfilter.

Fall back to contextfilter for Jinja2 2.x.

This change also fixes some issues caused by Ansible lint 6.0. Issues
found by the yaml plugin are fixed, while the FQCN for builtin actions
plugin is skipped.

Change-Id: I97b25551eb26da2c9100120bcd646c88fdb33ba6
2022-03-29 12:36:52 +01:00
Radosław Piliszek eba6b368f6 [TrivialFix] Use correct project badge in README
Change-Id: Icb25ed4e35bb86bf46dcc9fb238a0dace0a48abb
2022-03-05 11:55:20 +01:00
Radosław Piliszek d178655657 Add Debian support
With CI and docs updates.

Debian 11 requires a newer Ansible so this change bumps its
version.

Change-Id: I814933563c6e34d63d1b31ef01bba30b031fd7a0
2022-03-02 10:26:12 +01:00
Radosław Piliszek 5cf433efb2 [CI] Stop overriding default python
This hid an issue with Debian that it was not supported out of the
box.

Change-Id: Ie22dd4fd545674c7076125985adf7dcd683a839e
2022-03-01 19:35:44 +01:00
Zuul 193240d908 Merge "docs: linux bridge, supported OS distros" 2022-02-28 12:59:23 +00:00
Zuul acd5190510 Merge "Use ansible_facts to reference facts" 2022-02-28 12:59:18 +00:00
Mark Goddard 2474797bcf docs: linux bridge, supported OS distros
Some small docs updates for linux bridge support and syncing the
supported OS distros.

Change-Id: I17c9b8274c65acbf16f0ea04ac6e018c71b65694
2022-02-23 18:17:52 +00:00
Mark Goddard e86b46cb7d CI: switch Ubuntu jobs to Focal 20.04
Change-Id: Ied3bf8015bab969b209a0c15a801545d456af9ef
2022-02-23 18:17:48 +00:00
Mark Goddard 9111328e8a Use ansible_facts to reference facts
By default, Ansible injects a variable for every fact, prefixed with
ansible_. This can result in a large number of variables for each host,
which at scale can incur a performance penalty. Ansible provides a
configuration option [0] that can be set to False to prevent this
injection of facts. In this case, facts should be referenced via
ansible_facts.<fact>.

This change updates all references to Ansible facts within Tenks
from using individual fact variables to using the items in the
ansible_facts dictionary. This allows users to disable fact variable
injection in their Ansible configuration, which may provide some
performance improvement.

This change disables fact variable injection in the ansible
configuration used in CI, to catch any attempts to use the injected
variables.

[0] https://docs.ansible.com/ansible/latest/reference_appendices/config.html#inject-facts-as-vars

Change-Id: I4831769909c341c72bb178daf8df3309773a56ad
Co-Authored-By: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2022-02-23 18:17:43 +00:00
Radosław Piliszek d25067dd1a [CI] Optimise irrelevant files
Certain files need not trigger extra jobs.

Also ensure special chars are properly escaped (regexp syntax).

Change-Id: I32cb7f4fcf0cabba49adc3d73cbe42d9db9d0150
2022-02-21 19:23:29 +01:00
Mark Goddard fc1b42c60d Support UEFI boot mode
Adds support for using UEFI boot mode for nodes. This is done via node
capabilities, as it is in Ironic.

The default boot mode is now configurable via the default_boot_mode
variable. The default boot mode remains legacy BIOS for now, although
this may change.

Updates the existing CI jobs, with the OVS jobs using BIOS boot mode,
and the linuxbridge jobs using UEFI boot mode.

Depends-On: https://github.com/stackhpc/ansible-role-libvirt-vm/pull/83
Depends-On: https://github.com/stackhpc/ansible-role-libvirt-host/pull/50
Depends-On: https://review.opendev.org/c/openstack/kayobe/+/827486

Change-Id: Ifaf95ecfd4f6e925d3c69d4b324fdf2cd6b0ca52
2022-02-08 10:52:28 +00:00
Mark Goddard 7c6e87e598 Explicitly set boot_mode to legacy BIOS
Since we currently only support legacy BIOS boot mode, set it explicitly
in node capabilities. This is especially important since Ironic changed
the default boot mode to UEFI in Yoga. If the capabilities field is
provided, the boot_mode should be set explicitly.

This change should be followed by one that adds support for UEFI boot
mode.

Change-Id: I0c1e0cc50119cc2f9ba3e0b0a3548baeca9dca2e
2022-02-01 15:06:36 +00:00
Takashi Kajinami 7331ccfef2 Migrate jobs from CentOS 8 to CentOS 8 Stream
CentOS 8 is being removed from CI because of its EOL[1].

[1] http://lists.openstack.org/pipermail/openstack-discuss/2022-January/026621.html

Change-Id: I2b7d1bdea7fffc5a54a033f59444251b929807c5
2022-01-12 10:08:41 +09:00
Ghanshyam Mann a6f7b2ed72 Test all supported python version
As tenks is branchless which means same
master code is run on stable branches too, let's test it
with all the python version supported in those stable branches.

For that, we need to explicitly add the python jobs instead of using
the release specific job template. This way, we will explicitly know
that we are testing all supported python versions and do not remove the
older py version testing when the new release template bumps the min python
version like done in Yoga.

In Yoga testing, we are making py3.9 job to run as voting, so
adding py3.9 job as voting.

Change-Id: I1e9bbc75703f94acda0bddf0a2e43e835eb80cf0
2021-11-25 09:10:21 +00:00