YARN needs a modern version of NodeJS and if we don't use the role
to get the latest version, we end up failing on most platforms that
ship an old version of it.
This patch also adds testing to validate that ensure-yarn alone works.
Co-Authored-By: Andreas Jaeger <aj@suse.com>
Change-Id: I83ac09bc5751c85c6f1eac550d289a300ca2255e
This patch refactors ensure-docker to use the new ensure-package-repostories
role which cleans up the codebase for it a lot. It also converges the
Debian and Ubuntu configuration as they were pretty much the same.
Also, it updates the Docker to the proper GPG key as while refactoring,
it was exposed that it was using the wrong key. Docker uses a different
key for Debian and RHEL based packaging.
Change-Id: Iad430c6a31be0750c1a0f50e12a26df230de9f4e
This patch refactors ensure-podman to use the new generic role
to allow it to be cross-platform in the future.
Change-Id: Id9ad0fbaeb9d19d022393ad16a27f11260c45da0
This patch refactors ensure-nodejs to use the new generic role
to allow it to be cross-platform in the future.
Change-Id: I859b6b3e33bc22ad4f99828e921ac2ed35a49252
This patch refactors ensure-kubernetes to use the new generic role
to allow it to be cross-platform in the future.
Change-Id: Ic90c8973431823814c7e6b122f4ef25a67d64c2f
* Build role requires build target to be specified via a variable
* Ensure role checks for a specific version of Bazel and downloads
and installs if missing; defaults to v3.1.0 and downloading from
bazelbuild Github, but these can be overrriden using variables
* Also installs dependencies for Bazel; only supports Ubuntu/Debian
at present, but includes scope to extend for other platforms
* Includes test playbook and job
Change-Id: I83f198aaf20c2b3664bea6fc05edd3b4fca13a4f
This is part of the efforts to remove pip-and-virtualenv from our base
images [1].
There are some users who specifically require the virtualenv command
(perhaps, like dib, they have some code that uses the activate_this.py
mechanisms it provides wich venv does not).
This installs the virtualenv package for the currently running
distribution.
One of the main maintenance issues of pip-and-virtualenv is that tried
to ensure that "virtualenv" created a Python 2 environment always by
default. Now that we have Python 3 only distributions like current
Fedora, this is not something we can continue to do (even if we wanted
to, which we don't).
What owns virtualenv and what it produces in our heterogeneous
environment is messy, and I think the best we can do is document it as
done here.
[1] https://docs.opendev.org/opendev/infra-specs/latest/specs/cleanup-test-node-python.html
Change-Id: I97d8bfb970ed2b5aaa02a0813899014c94994066
We discovered that role fails on some platform because of the missing
bzip2 package. We can avoid this by using gzip which is much more
likely to exist on machines (and exists in the container images for
most operating systems).
Change-Id: Ia33a0f77343df809cd3c591a4a988e8e3712c133
Co-Authored-By: Mohammed Naser <mnaser@vexxhost.com>
Otherwise this role could fail when tox is not installed in PATH.
Also updates the default behaviour to only collect the environments
configured with 'envlist' in tox.ini and collects all environments if
the envlist is set to 'ALL'.
Change-Id: I60bcc25cb853d2db3ee767a719b9ac54e421532e
We have enough infrastructure in place now to have the
pip-and-virtualenv free node type voting, while we progress towards
making this the default.
Change-Id: Ie2677364d8696d5c4f71eefe2054da1b39e8bb35
Update the Fedora test platform to 31. Since we have dropped the
pip-and-virtualenv element with this image, we do not need the
work-around for excluded packages any more.
Story: #2007386
Task: #39310
Change-Id: I713a3cc790039dee3d28d83198f5afff5bebc491
This role is intended to ensure that the `pip:` module, and jobs that
may wish to use `pip` from the shell, have the necessary requirements.
It is intended as a partial replacement for the pip-and-virtualenv
element in diskimage-builder, which currently pre-installs pip on our
infra CI images during image build.
We wish to remain broady compatible with this element, but not
replicate some of the more problematic areas of its implementation.
By default, this installs the system packages for pip and setuptools
(the latter being a requirement of the Ansible pip module, which
imports it directly, despite pip itself not requiring it).
In this role, we ensure the libraries for the currently running
ansible_python_interpreter version are installed.
There is provision to provide a flag to install the packages directly
from upstream via get-pip.py, although this is not recommended.
Story: #2007386
Task: #39309
Change-Id: Iac2d518a66caf1b801273225f75a0a748412903c
This is a temporary node type that does not install
"pip-and-virtualenv" so does not have pip or virtualenv pre-installed.
Add this for non-voting testing as we migrate to this node type.
Change-Id: Ia9006873470d76d29cc9229f11650981662b2de9
Story: #2007386
Task: #39306
- makes ensure-podman work on additional platforms
- prevents regression on new platforms fedora-30 and centos-8
- enables validation of podman engine
Change-Id: I5842ad22d94522f707ef743622b8950839d96dff
The jobs currently are not running tests if we make changes to the
"go" role due to a typo in the files. Also, the file name should
really be go-jobs.yaml because we're testing the jobs, not any specific
role.
This patch also adds support for verifying that it works across all
of the platforms.
Change-Id: Ie6c64936d01e368f8af789f6576f8425cfd9350c
This is an alternative to I98c80f657f38c5e1ed5f28e5d36988a3429ad1f8
which does not modify the upload script, but rather queries the API
and manifest for what to download.
The script is a hybrid of python and bash to not implement json API
parsing badly in bash, but not replicate curl badly in python either.
The script sanity checks for dependencies, which are considered pretty
standard for any developer who would be interested in downloading logs
like this.
The role writes out the script with the correct build values coded
into it, so a potential user just has to run it without any arguments
or modification.
Change-Id: Ic33732adbfd3210191bf4976c3ee316cfc50568e
In order to install particular python versions on distros that
don't otherwise have them, add an option for installing via
pyenv.
The packages to be installed to allow for Python to be built were
tested on the official Docker containers so they should provide
a fair amount of coverage from a minimal environment.
Co-Authored-By: Mohammed Naser <mnaser@vexxhost.com>
Change-Id: Ic3312458b499a4b743895fa5829bb25155f77654
Implements workaround for the missing --nobest option in Ansible
package module in order to succeed installing docker-ce.
Change-Id: I96e133dc5c59b9c811ff69df7651adadfcdf3a97
We need to pin enum34 on python2 because upstream broke it.
Also, we should not install zuul in python2, because it's not targetted
at python2. It's only here so that linters can deal with zuul_return
and other things from its library, so it should be fine to not install
it for python2 unittests.
GitPython was in here as a pin to the versions that support python3
for zuul. Since we're constraining zuul to only python3, we don't need
to mention GitPython at all.
Update the siblings unit test to use requests as the package we expect
to be already installed since we're no longer installing zuul for
python2.
Fedora 29 got archived upstream:
http://mirror.sjc1.vexxhost.openstack.org/fedora/releases/29/README
So we need to switch to fedora 30.
Change-Id: I69e0b03f624ba45889916f89c0912df667aaf096
This adds a role which installs bazelisk if it is not already
present. It also adds a test job which exercises the role; the
job will be run on any changes to the new role.
Change-Id: I69b28b58338b46ec3fea696f9d97be4271ed6ae4