Commit graph

371 commits

Author SHA1 Message Date
Lars Karlitski
8161f2fa04 schutzbot: add repositories to be used by tests
Base these on https://osbuild.org/rpmrepo.

Install those repository files when deploying in schutzbot and include
them in tools/deploy/test for local testing.

Also remove copying overrides from deploy.sh, because it copied the
wrong files. We probably want to add this back properly in the future.
2020-10-16 09:37:04 +02:00
Lars Karlitski
835b556db7 distribution: deprecate osbuild-composer-koji.socket
Instead, call it osbuild-composer-api.socket, but provide a symlink for
backwards compatibility. Change `schutzbot/provision.sh` to only enable
osbuild-composer-api.socket.

In the future, this new socket is the only API socket, which provides
both the "cloud" API and the one for koji.

This means that the koji API is always enabled.
2020-10-16 09:37:04 +02:00
Martin Sehnoutka
6badebef4f schutzbot/run_cloud_cleaner: pass BRANCH_NAME instead of CHANGE_ID
CHANGE_ID is unset in master branch. Use BRANCH_NAME instead.
2020-10-14 16:58:58 +02:00
Ondřej Budai
7a2f72281e schutzbot: enable F33 mockbuild
Let's start slowly. This commit enables F33 mockbuilding in Schutzbot.
Actual testing will be enabled in a follow-up.
2020-10-14 16:44:26 +02:00
Ondřej Budai
1a69a8919b schutzbot: use s3cmd from repositories
s3cmd from pip doesn't work with Python 3.9. Fortunately, s3cmd in Fedora has
a downstream patch to fix it.

See rhbz#1884607 and https://github.com/s3tools/s3cmd/pull/1137
2020-10-14 16:44:26 +02:00
Martin Sehnoutka
6b137d0ac5 cloud-cleaner: introduce script to wipe all CI artifacts
In case the job fails completely, resources might leak. This patch
together with the one introducing predictable names for CI artifacts
will make sure we wipe all resources after each CI run.
2020-10-13 14:41:32 +02:00
Ondřej Budai
6a1b9f17ce test: enable epel on RHEL
I broke master by merging #1021 - ansible and koji are not in the official
RHEL repositories so we need to enable epel on RHEL to be able to get them.
2020-10-07 17:17:43 +01:00
Tom Gundersen
122ab25476 test: depend on rpms rather than installing them explicitly
The -test subpackage should depend on all that it needs, and we should
never need to install anything explicitly from the test scripts.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-10-07 11:49:05 +02:00
Tom Gundersen
9e56ac9a8b schutzbot: split provision out from deploy
Deployment is specific to CI, but the provision script is needed to be
run to execute tests locally too.

This should be called from each test, rather than from deploy. For now
this change is a noop.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-10-06 13:08:26 +02:00
Tom Gundersen
dae0f86b35 schutzbot/repositories: use RHEL8.3 nightly rather than snapshot
Our snapshots are currently broken, so until they are fixed revert back
to using an internal RHEL nightly. We choose a slightly older one,
in the hope that it is not going to be deleted anytime soon.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-10-06 13:08:26 +02:00
Tom Gundersen
805ae59151 tests: ship all tests in the -tests sub-package
No tests should be run directly from git, but should rather be installed
onto the test system using rpm and run from there. This moves towards
unifying our two types of test cases.

The new structure of is now:

`test/cmd`:   the executors, one for each test-case. This is installed
              into `/usr/libexec/test/osbuild-composer`.
`test/data`:  data and config used by the tests. This is installed into
              `/usr/share/tests/osbuild-composer`.
`schutzbot`:  configuration of the actual test run. In particular, this
              is where the distros and repositories to test against are
              configured.

This is very much still work-in-progress, and is only the first step
towards simplifying schutzbot. Apart from moving files around, this
should be a noop.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-10-06 13:08:26 +02:00
Tom Gundersen
e835c34678 test/integration: move composer configuration into composer
This is not an integration test, but configuration.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-10-06 13:08:26 +02:00
Tom Gundersen
272332e5e8 test: rename image-tests to integration
We already have something called image-tests, so this naming was
confusing. This is a collection of generic integration tests, so name
them accordingly.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-10-06 13:08:26 +02:00
Tom Gundersen
c7d993d537 scutzbot: deploy pre-generated SSL certs for testing 2020-10-06 13:08:26 +02:00
Tom Gundersen
9d18c3bfa2 tests: rename composer-cli tests
These had the generic name osbulid-tests, rename the binary to more
closely describe what is under test: weldr API as composed by
composer-cli.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-10-06 13:08:26 +02:00
Alexander Todorov
2adf8e660f tests: Use aws-credentials-osbuild-image-test in CI 2020-09-30 21:58:14 +02:00
Alexander Todorov
b48bff75bf tests: Fail if there were no tests executed. Fix #1002 2020-09-30 21:58:14 +02:00
Ondřej Budai
e9b8b7e01f tests/image: fix sudo invocation
We need sudo arguments as a separate ones.
2020-09-30 21:58:14 +02:00
Ondřej Budai
ad969cdda7 tests/image: fix the selector
Using wildcard in quotes doesn't trigger shell expansion, therefore this
commit moves the wildcard out of the quotes
2020-09-30 21:58:14 +02:00
Alexander Todorov
fd311fedfd tests: Start osbuild-composer-koji.socket only if installed 2020-09-29 09:00:44 +02:00
Ondřej Budai
68be242850 tests: introduce auth tests
This commit introduces a new test binary responsible for testing TLS
authentication.

Currently, it covers both remote worker API and Koji API. It tests that
the server refuses certificates issued by an untrusted CA or self-signed ones.
Also, it tests that the certificate is issued for an allowed domain.

TODO: certs with subject alternative name are currently not used in tests.
They should work just right, but a proper testing requires more tinkering with
OpenSSL than I'm willing to accept at this time
2020-09-23 11:08:21 +01:00
Ondřej Budai
28aff2259a schutzbot: start also the remote socket
The following commits will add testing of authentication on this socket.

This commit also sets up the config for composer other it won't start
with remote socket enabled.
2020-09-23 11:08:21 +01:00
Ondřej Budai
e296a3dea7 schutzbot: greenprintify deploy.sh
It's a word, trust me.
2020-09-23 11:08:21 +01:00
sanne raymaekers
9ca50ae3ac osbuild-composer-cloud: introduce the cloud-specific service 2020-09-22 11:38:28 +02:00
Martin Sehnoutka
d9f254f9d1 *.sh: apply fixes suggested by shellcheck
also:
tweak some automatic fixes to be more readable
fix automatically generated bash fixes for SSH options
2020-09-19 15:10:39 +02:00
Martin Sehnoutka
b06e6dd916 *.sh: apply automatically all suggestions from shellcheck
This commit was automatically generated using:
```
$ fd --exclude vendor sh | xargs shellcheck -f diff | git apply
```
2020-09-19 15:10:39 +02:00
Major Hayden
4c476f32c2 📜 mockbuild: Reduce log output
Running mock with verbose enabled made sense a while back when we were
still unsure if things would work, but it's generating a ton of logs now
that eventually clogs Jenkins' disk.

Disable the verbose flag to reduce mock's log output.

Signed-off-by: Major Hayden <major@redhat.com>
2020-09-18 07:30:03 -05:00
Martin Sehnoutka
d819b26e3f run_image_tests: replace CHANGE_ID with BRANCH_NAME
CHANGE_ID is set for PRs, which is why it worked during the review
process, but in the master branch it is not set. BRANCH_NAME is set for
both PRs and master branch. In case of PRs it is in form `PR-<pull
request number>`.
2020-09-16 23:08:31 +02:00
Ondřej Budai
8ccbde8591 schutzbot: run EL integration tests in PSI
We need RH internal repos which are not available in AWS.
2020-09-16 00:15:02 +01:00
Tom Gundersen
9666be2891 schutzbot: add koji integration tests
This sets up containers running koji and supporting infrastructure, and
calls the osbuild-composer-koji API to build and image and push it into
our testing instance.

koji-compose.py and various fixes by Christian Kellner.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-09-16 00:15:02 +01:00
Martin Sehnoutka
509964bede image-tests: don't use random names for CI artifacts
When using random names for artifacts like AWS snapshots, or Azure
images, it becomes hard to clean them up in case of CI failure. See this
issue for more details:
https://github.com/osbuild/osbuild-composer/issues/942

This PR introduces predictable names so that we can easily determine
which artifact belongs to which PR and therefore we can decide to wipe
all resources that are not needed any more.
2020-09-15 14:30:51 +02:00
Alexander Todorov
951e5e66b6 Shutzbot: add pipeline for RHEL nightly builds. Refs #912
Notes:
ATM will not run any actual tests b/c we want to make sure the
pipeline configuration is correct.

run_tests() will call the deploy.sh script and then do nothing
b/c of the "dummy-" prefix which doesn't match any actual tests!
2020-09-04 09:56:25 -05:00
Alexander Todorov
c0d9bb13fc Shutzbot: show info for osbuild-composer sources
so we can actually see what sources are being used
2020-09-04 09:56:25 -05:00
Tom Gundersen
4afbaec8e0 schutzbot/ci_details: print the username
We are storing some data in the user's home directory, so let's print
the username so we know what that is.

In particular, this would tell us which user has been authorized to log
in via ssh.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-09-03 22:54:02 +01:00
Xiaofeng Wang
c1b0d348d6 test: Add ostree image installation and upgrade test and add a
new parallel stage for ostree test
2020-09-03 22:51:39 +01:00
Major Hayden
d5ddcbc921 ⛈ Use AWS more often for testing
Now that we've reduced how much of our PSI quota we are using so the
OpenStack boot tests will work, we need to use AWS for jobs more often.
This should allow test runs to complete a little sooner by freeing up
PSI resources for the jobs that are only able to run there.

Signed-off-by: Major Hayden <major@redhat.com>
2020-08-28 13:31:52 +02:00
Tom Gundersen
496f921eff schutzbot: don't boot-test vmdk images in libvirt
The vmdk images are meant to be imported into VMWare vCenter, not to be
booted directly.

Our image-info tests verifies that this work, they should be converted
into integration tests similar to the aws.sh script in the future.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-08-23 14:45:27 +02:00
Alexander Todorov
dcee05d8b6 Read vCenter credentials for Schutzbot & document them 2020-08-20 21:59:54 +02:00
Tom Gundersen
dc5434d627 schutzbot/deploy: do not override repos when deploying on 8.2
We will automatically detect whether to use GA or Beta content, so we
can drop the override as 8.2 is GA so will get GA content.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-08-19 15:06:21 +02:00
Alexander Todorov
b136332c7f Provide OpenStack environment for image tests
in the same way this is done for Azure we read the OS credentials
and provide them as ENV variables for the test

Note: uses `psi-openstack-creds` and not `psi-openstack-clouds-yaml`
which is a yaml file.
2020-08-07 19:58:37 +02:00
Major Hayden
a93143ea0c mockbuild: Fix path to latest repo
Using `cp` to copy the repo content caused the last part of the path to
be duplicated:

  Current: `master/latest/rhel82_x86_64/rhel82_x86_64/repodata/repomd.xml`
  Desired: `master/latest/rhel82_x86_64/repodata/repomd.xml`

Remove the VERSION_ID/ARCH from the destination to remove the duplicated
path.

Signed-off-by: Major Hayden <major@redhat.com>
2020-08-06 00:15:38 +02:00
Martin Sehnoutka
b6e1e8b4ce schutzbot: don't skip image test for fedora iot commit
The SELinux bug has been fixed so there is no need to skip it.
2020-08-03 17:46:49 +02:00
Major Hayden
093117559e 🦘 Skip checkout on prepare
Checking out the code from git during the prepare step is a waste of
time and disk space since we don't need the git repository cloned there.

Signed-off-by: Major Hayden <major@redhat.com>
2020-08-02 11:17:11 +01:00
Major Hayden
8da3d58213 mockbuild: Remove rsync
Although rsync works just fine, it would reduce our package list if we
just used `cp` to create the latest repo.

Signed-off-by: Major Hayden <major@redhat.com>
2020-07-30 18:15:38 +02:00
Major Hayden
fe1777102e 🏠 Keep RHEL 8 image tests internal only
The image tests for RHEL 8 still download packages from a server that is
only available inside the Red Hat network. 😢

Signed-off-by: Major Hayden <major@redhat.com>
2020-07-30 18:15:17 +02:00
Major Hayden
17075cffa0 📦 mockbuild: Create 'latest' repo for branch
Allow anyone to set up a dnf repository to point to the latest
build for the branch by using a repo file pointing to that build.

This would allow anyone to get the latest set of RPMs for a particular
pull request or branch (especially the master branch.

Signed-off-by: Major Hayden <major@redhat.com>
2020-07-30 13:31:01 +02:00
Major Hayden
484bb9a182 🐣 Use RHEL 8.3 beta content from CDN
Remove the nightly repos from the RHEL 8.3 jobs and replace them with
CDN registration for beta content.

Signed-off-by: Major Hayden <major@redhat.com>
2020-07-29 13:25:29 -05:00
Major Hayden
61e6e5f500 Remove old testing YAML
Signed-off-by: Major Hayden <major@redhat.com>
2020-07-29 08:44:21 +02:00
Major Hayden
248db2be0e 🔐 Add OpenStack credentials for image tests
We want to deliver images directly to OpenStack during the CI tests.
Ensure the credentials are available during those tests and move them to
the proper location to be read by OpenStack tools and SDKs.

This helps with #876.

Signed-off-by: Major Hayden <major@redhat.com>
2020-07-22 20:02:12 +03:00
Major Hayden
5d902260b0 Fix post-build telegram notification
Jenkins needs to know which node to use to send the telegram
notification.

Signed-off-by: Major Hayden <major@redhat.com>
2020-07-20 10:00:41 -05:00