155 Commits

Author SHA1 Message Date
Zuul
21faa1a9d8 Merge "Add the post-reboot-tasks role" 2022-06-17 15:46:53 +00:00
Ade Lee
25caf7ef5e Add the post-reboot-tasks role
This role will do basic checks to confirm that the node is
sufficiently up to continue afer a reboot.

Change-Id: Iebf474c9351e4246d7ab2072b48a50e93dbf0b94
2022-06-06 04:56:14 -07:00
James E. Blair
0c980bbcb7 Make test-prepare-workspace-git role
This is a copy of prepare-workspace-git except that it imports
test-mirror-workspace-git-repos.  This is for base job testing.

Change-Id: I4ef3e4376c9e958761c165836c4fb546157e237a
2022-05-19 11:40:44 -07:00
Zuul
775729a4c0 Merge "Add per-build WinRM cert generation" 2022-04-26 21:52:35 +00:00
James E. Blair
59d7af0e67 Add per-build WinRM cert generation
This adds roles that, similar to add-build-sshkey, create a per-build
WinRM certificate, install it on remote windows nodes, and then switch
to using the certificate in Ansible for authentication.  A second role
is included which can clean up the cert which is useful for static
nodes.

Since winrm certificates must be acessible within the bubblewrap
container, these roles can be used to restrict the system-wide winrm
cert to trusted playbooks while untrusted playbooks will only have access
to the per-build cert (with appropriate configuration of the executor).

Change-Id: I4efe25594c2f543886a000aa02fb0a38683a43cb
2022-04-13 15:04:51 -07:00
Zuul
9761561e5a Merge "Add upload-logs-ibm role" 2022-04-11 22:30:23 +00:00
James E. Blair
a8b4bc6ff3 Add upload-logs-ibm role
This role uploads logs to IBM Cloud object storage.

Change-Id: Ibe1131f863a64051b427fcb03b126b1577c4843a
2022-04-11 14:20:49 -07:00
Zuul
70c30231cd Merge "Add tox-py310 job" 2022-04-04 13:51:04 +00:00
Sorin Sbarnea
f5dbe71c49 Add tox-py310 job
Change-Id: Ib6a06893c0b4c7e5c988acf7315b17367b330d9e
2022-03-24 13:25:04 +01:00
Ian Wienand
ad7093c17b encrypt-file : role to encrypt a file
This is a role that takes some ASCII gpg keys, and encrypts a file
with them.

Change-Id: If2fe7921ff051a1c5d0589f5e32fba26d30ae96c
2022-02-19 08:05:40 +11:00
James E. Blair
90c427d630 Switch docs theme to RTD
To match change I2870450ffd02f55509fcc1297d050b09deafbfb9 in Zuul.

This does not use the versioning feature due to the nature of this repo.

This also corrects a reference which is now an error.

Change-Id: Ia1d31df932b447f11bc588925de9974d4f6dfc7d
2021-12-16 06:48:49 -08:00
Andre Aranha
cac1875575 Add fips version of jobs needed for OpenStack
FIPS needs to be enabled before test-setup is run, as enabling
FIPS requires the node to be rebooted, test-setup needs to run and
setup the environment after the reboot.

Change-Id: I6fecb9c6e917d1a36b2b82c1b02098eed4323ac7
2021-11-05 14:17:26 +00:00
Douglas Viroel
9107f3ee7d Add FIPS enable multinode job definition
This patch adds a new multinode job definition that enables
FIPS mode prior to multinode configuration.
In order to enable FIPS mode, the OS boot procedure need to be
changed to enable the appropriate kernel flag. This modification
has effect only after system reboot.
The default behavior of this job is to always enable FIPS mode.

Change-Id: I6f1365837d9ed2ba82c391a20f9094c9ef0e6c4e
Signed-off-by: Douglas Viroel <dviroel@redhat.com>
2021-10-20 11:20:52 -03:00
Zuul
7fcb90c59d Merge "Deprecate EOL Python releases and OS versions" 2021-09-30 17:33:30 +00:00
Jeremy Stanley
483838ceca Deprecate EOL Python releases and OS versions
Update the deprecation policy to indicate that zuul-jobs is no
longer tested with EOL platforms. Also explicitly switch the minimum
Python 3 documented to 3.6, and add a note to the tox-py34 and
tox-py35 jobs mentioning that they're no longer directly tested.
Move those jobs to the deprecated jobs list as well, to help
reinforce the point that their continued use is not recommended.

Change-Id: I2edbf8ea010caf7a7641e0d88f360965fc0b96ab
2021-09-23 17:35:32 +00:00
Jeremy Stanley
f8a60d416f Pin to funcparserlib prerelease for new SetupTools
SetupTools 58 dropped support for its old use_2to3 option, which has
started surfacing a number of ancient Python packages in need of
updates. In this case, the last full release of funcparserlib (which
is a transitive dependency by way of blockdiag by way of
sphinxcontrib-blockdiag) was in 2013, but luckily they have an alpha
release which we can pin explicitly and pull in as a temporary
workaround to get docs builds going again.

Change-Id: I6903eeac2c479e2da795c1dbd215cdee33d09fd7
2021-09-17 20:34:37 +00:00
Ade Lee
be0415e556 Add role to enable FIPS on a node
Adds role to be used to enable FIPS on test nodes, so that projects
can create jobs that would test when FIPS is enabled.

This is pretty much copied from the same role in ansible zuul jobs, where
it works well. Thanks to Paul Belanger for pointing it out.
https://github.com/ansible/ansible-zuul-jobs/blob/master/roles/enable-fips-mode/tasks/main.yaml

An example showing how this is can be used is in:
https://review.opendev.org/c/openstack/barbican/+/760665

Change-Id: If07b8ddb77368d591659f3a111e3f5306daf6f06
2021-06-11 14:30:39 -04:00
Guillaume Chauvel
b517747623 Add ensure-skopeo role
Role copied and modified from ensure-podman

As focal doesn't exist for project atomic ppa [1]
Install is performed from opensuse repository only

[1] http://ppa.launchpad.net/projectatomic/ppa/ubuntu/dists/

Change-Id: I72fc2e68768664b80c39bd47295330131337d8b5
2021-05-25 16:38:00 +02:00
Clint Byrum
7eab57ab1e intercept-job -- self-service SSH access
This role is an attempt to allow self-service SSH access to nodes.

Change-Id: Icb6fb50b779c0bf2296e14436e4746355703f2ae
2021-04-23 15:14:06 +00:00
James E. Blair
120a11ef20 Add upload-logs-azure role
Add support for uploading logs to Azure blob storage.

Change-Id: I0347977324b880123c6ed83ded3c39eb210612e2
2021-03-30 22:27:25 -07:00
Sorin Sbarnea
938da600b7 Add tox-py39 job
Change-Id: I46cac3396bd870eb1f54820921df09946184605a
2021-01-27 10:14:32 +00:00
Paul Belanger
777230be59 Create upload-container-image role
This new role will be used to replace our upload-docker-image role in
the future.

Change-Id: I0e2b0cca6575255520aa6d4d48a12128ab5f46cc
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2020-11-13 15:04:27 -05:00
Albin Vass
b209381be0 Add nimble roles and job
Installs nim toolchains using choosenim (similar to rustup),
installs dependencies and builds nim projects using
the package manager nimble.

See:
https://nim-lang.org/
https://github.com/nim-lang/nimble
https://github.com/dom96/choosenim

Change-Id: I95e7e02eb975200aed7680880b945261888de5ca
2020-11-08 09:36:05 +01:00
James E. Blair
5603eb2291 Revert "Refactor fetch-sphinx-tarball to be executor safe"
This reverts commit 51a8ed8e95a2240547b0128701cc8acf6ba8bbcc.

This has a typo ("exector").  The fix is obvious, but the bigger
issue is that it was not caught in testing, even though the main
purpose of the change was to re-enable tests.  We should understand
why it wasn't caught in testing and resolve that before fixing and
unreverting.

Change-Id: I3ed407546fecc52d4a039f7959c0521511e6a00b
2020-10-14 13:54:22 -07:00
Zuul
4b19def07d Merge "Refactor fetch-sphinx-tarball to be executor safe" 2020-10-14 18:51:05 +00:00
Ian Wienand
0b9fad9583 update-json-file: add role to combine values into a .json
Ansible doens't really have a great built-in way to modify a json file
(unlike ini files).  The extant docker role does what seems to be the
usual standard, which is slurp in the file, parse it and then write it
back out.

In a follow-on change (I338616c41a65b007d56648fdab6da2a6a6b909f4) we
need to set some more values in the docker configuration .json file,
which made me think it's generic enough that we can have a role to
basically run read the file, |combine and write it back out.

This adds such a role with various options, and converts the existing
json configuration update in ensure-docker to use it.

Change-Id: I155a409945e0175249cf2dc630b839c7a97fb452
2020-10-05 15:18:58 +11:00
Ian Wienand
51a8ed8e95 Refactor fetch-sphinx-tarball to be executor safe
This reverts commit 69a238df46ca81e8890ebb2ace7addcbb4852911.

The role is re-written with executor-safe methods.

Depends-On: https://review.opendev.org/753222
Change-Id: I0b52eff66bfdca776e0e5c426bf1fc57deb3fc49
2020-10-05 15:14:31 +11:00
Tristan Cacqueray
a086fb4333 ensure-zookeeper: add role to setup zookeeper
This role is lifted from https://src.fedoraproject.org/rpms/zuul/blob/master/f/tests/setup_zookeeper.yml

Co-Authored-By: Fabien Boucher <fboucher@redhat.com>
Change-Id: Iec21d12baddf3de580d1941adade107c7e24fdd9
2020-09-24 23:29:59 +00:00
Albin Vass
17d7322bd3 Update hashicorp jobs file with correct title
Change-Id: Ibc3a3f1f442e97d0c2d7edf3383694bcd5ad7cc0
2020-09-01 05:43:46 +00:00
Ian Wienand
048aff6c98 Add ensure-rust role
Add a role to install Rust via the rustup tool.  It defaults to
installing globally, which avoids having to worry too much about
setting paths for follow-on jobs.

Packaged Rust and the upstream rustup install tool can live together,
and there's various documentation about it.  Thus I've made this such
that we can expand it with packaged Rust support if there is a need,
but I have not implemented that yet.

Change-Id: I32f9b285904a7036f9a80ada8a49fa9cf31b5163
2020-08-25 09:04:43 +10:00
Albin Vass
838b0c8877 Add upload-logs-s3
Change-Id: I6ce64734ed5f20a212e6cb953d09ea2769238bea
2020-07-19 21:22:36 +02:00
Albin Vass
3d4f3a3a28 Add linting rule to enforce no-same-owner policy
Change-Id: I92c66a21be95935d11fc8e9887d9d91c645d28d4
2020-06-18 11:06:45 +02:00
Zuul
07e0a5a6c4 Merge "Update guideline docs for os specific tasks" 2020-06-17 15:40:44 +00:00
Albin Vass
acf5764472 Update guideline docs for os specific tasks
We're not actually following this. Let's either update
the docs to reflect on how os specific tasks are handled
or update the roles to follow the guidelines.

Change-Id: I9b987efaf597acd34cbcacccd37415dd205a7fba
2020-06-17 17:24:12 +02:00
Albin Vass
5bcf93c37d Terraform roles and jobs.
Adds terraform roles to install and execute terraform.

Supports adding an override.tf file to override configuration in CI
which is useful to let zuul handle module reposity authentication
instead of setting up credentials on the remote during the job.

Also returns the execution plan back as a comment for 'terraform plan'
to make it easy for reviewers.

Change-Id: I3b4f2bac7f055a0c0f9cb7888b4146ac9c007d25
2020-06-11 17:26:50 +02:00
Zuul
5b194d277e Merge "shake-build: add shake build system job" 2020-05-28 13:28:21 +00:00
Tristan Cacqueray
b8e57ffc60 shake-build: add shake build system job
This change adds a new job to run the shake build system.

Change-Id: Iffaf4e0675d91033b1b5d66c52d501f6bdc8acaf
2020-05-28 12:48:16 +00:00
Andreas Jaeger
8d90e3d4cb Fix typo: Deprecrated
Fix typo: Deprecrated -> Deprecated

Change-Id: I57f08a85f3dd0effe270c35d36c95b1b889de6ff
2020-05-28 08:09:49 +02:00
vass
ef2f2eacb1 Remove install-* roles
The install-* roles has been renamed to ensure-* but have been kept
to give users time to update their repositories.

Tuesday the 26th of may is four weeks after we announced the deprecation
of the install-* roles and the date we should remove them completely.

Depends-On: https://review.opendev.org/719323
Depends-On: https://review.opendev.org/719324
Depends-On: https://review.opendev.org/719325
Depends-On: https://review.opendev.org/719326
Depends-On: https://review.opendev.org/719333
Depends-On: https://review.opendev.org/719334
Depends-On: https://review.opendev.org/719401
Depends-On: https://review.opendev.org/719402
Depends-On: https://review.opendev.org/719404

Change-Id: I1bc87cf9ef544c06e2f1daf3177bba9d577e332e
2020-05-26 09:34:25 +02:00
Tristan de Cacqueray
1e0af6779b Add remove-zuul-sshkey
This change enables a kubectl connection job to just remove the
zuul sshkey, without using the add-build-sshkey role which doesn't
work on pod. To do that, this change moves the sshagent_remove_key
task to a new role and makes add-build-sshkey use the new role.

Change-Id: I5e7288592cad303df919220259f5a360bf522f64
2020-05-15 12:24:33 +00:00
Zuul
f05687fd78 Merge "Add upload-artifactory role" 2020-05-14 17:26:10 +00:00
Zuul
37d6544969 Merge "Policy rule for ownership between remote and executor" 2020-05-14 16:04:03 +00:00
Monty Taylor
886cdcc21f Combine javascript deployment and deployment-tarball jobs
There's no reason to not just build the tarball when we build the
content.

Set the default value for node_version in the base job.

Change-Id: Ifb3e5138e9ae19ec3de9250f1828fc07230ef739
2020-05-13 16:48:29 +00:00
Albin Vass
38053b0826 Policy rule for ownership between remote and executor
Change-Id: Ia0b6bcf221ee053a0c2a2073796cba35fa22efd0
2020-05-13 09:41:38 +02:00
Albin Vass
664b016fa5 Add upload-artifactory role
Adds a role to let users define a manifest of artifacts located
in zuul-output/artifacts that should be uploaded to pre defined
artifactory instances.

Change-Id: I00dc0302e85ce59b3808f6e62e2bcdadf2e41fde
2020-05-12 20:02:12 +02:00
Monty Taylor
0caa85cc48 Split browser and non-browser targetting js test jobs
Some javascript operations, like running tests for web-apps, need
browsers. Javascript packages that are not targetting browsers
do not.

Make a -browser version that installs the browsers and xvfb, and
a non-browser version that does not.

Change-Id: I33c12cb0d9516bdffef7d8d04af4dbcb03ed8355
2020-05-12 11:31:42 -05:00
Monty Taylor
5973c9b7b1 Extract ensure-javascript-build-tool role
The pre-playbook for the javascript jobs got complex. Extract it
to a role so we can better document it.

Also - stop installing javascript depends in pre - the depends
declared in a patch should be tested as part of the patch.

Change-Id: I50a483f223620cd3f9ecd82887062cfc9ac64b7f
2020-05-12 07:53:14 +02:00
Monty Taylor
202cce830e Add new non-npm specific javascript jobs
We have a bunch of jobs that are built around the npm role, but
for projects using yarn, that can lead to ignoring yarn.lock.

For projects with a yarn.lock, we can assume the user wants to
use yarn. Make a new js-package-manager role that can detect
if that's the case and otherwise use npm. Make an js_build_tool
parameter that allows the user to override that auto-detection.

Make a whole new suite of jobs that do this behavior, do not have
npm in their name, and default to the latest node LTS, version 14.

Don't install yarn if we're not going to use yarn. Also allow people
who want to use yarn but don't have a yarn.lock to override
js_build_tool everywhere we do that logic.

Mark the old jobs deprecated.

Shift the npm and yarn roles to use the new js-package-manager role
with defaults set.

Change-Id: I8013228ca05607a69f390a9bb75991fc6543f865
2020-05-12 07:50:19 +02:00
Tristan Cacqueray
4903ecd30b dhall-diff: add new job
This change adds a new dhall-diff job to verify generated config
is idempotent.

Change-Id: I96a335dc78c4fa74564b854997433e5be0b5e633
2020-05-03 19:06:37 +00:00
Zuul
096b1218c3 Merge "haskell-stack-test: add haskell tool stack test" 2020-05-01 16:09:58 +00:00