951 Commits

Author SHA1 Message Date
Ian Wienand
cdff4b7835 Role to install podman
A simple role to install podman packages.

Change-Id: I135fab8474b3564bb4ab1f2b19d4645d4a86f560
2019-11-08 08:51:58 +01:00
Zuul
81d7e7a993 Merge "Remove argument to ssh-keygen for key size" 2019-11-05 20:49:24 +00:00
Ian Wienand
89ed14752b test-swift-log-upload: fix dry_run parameter
This was pointed out and fixed by jhesketh in
Ie4888606a8ca4ffe2eb99ddbbcd9d5cee8ceec44, but I forgot to add it to
the test role.  Sure enough, it fails as jhesketh predicted.

[1] https://review.opendev.org/#/c/592929/3..4/roles/upload-logs-swift/library/zuul_swift_upload.py

Change-Id: I8d25a234fb92cd1bcfcd0cb7ddf9b8222dbd5978
2019-11-01 16:06:22 +11:00
Ian Wienand
9a8cc2a1c0 test-upload-logs-swift: Add missing template for test
I forgot to "git add" this file in
Id91350ff1c531fd7266f3bf76681a8415941481f.

Change-Id: Ia6af42a7d9062fa7895f3b6901a0fa1e8646e8b9
2019-11-01 15:24:29 +11:00
David Shrewsbury
ce67cef122 run-buildset-registry: Fix python version check
The "Start the buildset registry" task, which uses the
docker_container Ansible module, was failing with:

    "No module named 'requests'"

This is because the earlier package install task was installing
the packages into the wrong python version because the
ansible_python_interpreter value was 'auto' and thus never
included the 'python3' value.

Change-Id: I887fdf8d000c8b916fdab281c531b7c98bdd5ae2
2019-10-31 16:17:27 -04:00
Zuul
d7b86832b2 Merge "upload-logs-swift: test bulk download script change" 2019-10-31 06:36:02 +00:00
Zuul
04f7283b27 Merge "upload-logs-swift: Stub out dry run in the uploader" 2019-10-31 06:26:59 +00:00
Ian Wienand
ddc0da55a1 upload-logs-swift: test bulk download script change
This implements the production change
I98c80f657f38c5e1ed5f28e5d36988a3429ad1f8 in the test role.  Review
comments should be left there; we can merge this and then parent a job
to base-test to test it.

Change-Id: Id91350ff1c531fd7266f3bf76681a8415941481f
2019-10-31 06:26:49 +00:00
Ian Wienand
a6f946472d upload-logs-swift: Stub out dry run in the uploader
By doing this, we're not constrained about where to run the uploader
while still providing some useful testing in dry-run mode.

Change-Id: Ie4888606a8ca4ffe2eb99ddbbcd9d5cee8ceec44
2019-10-31 15:43:44 +11:00
Clint Byrum
a997073141 Remove argument to ssh-keygen for key size
We don't need to be explicit, ssh-keygen will pick a good size for us.
Meanwhile, 1024 bit keys are generally seen as security problems and
thus ring bells and are refused by some servers/services.

Change-Id: Iaea82e0b394a5a6b1da3b59637fc4e0f541e1978
2019-10-30 16:43:40 -07:00
James E. Blair
91ae8e62de Test buildset registry with k8s and docker
This adds a test job for the buildset registry with k8s with the
docker runtime.

Change-Id: I0ec1d3d5980424f85f5e7619b9dec96c8f0f70f1
2019-10-28 15:45:39 -07:00
James E. Blair
dba2c101fd Adjust buildset registry container name
If we want to run a second registry on a different port, we'll need
a different name for the docker container.

Change-Id: I887d9015c0d21e6d7f95379e6fa7fb4211e58d3d
2019-10-28 15:42:29 -07:00
James E. Blair
a321a8270d Make the buildset registry port configurable
This will allow us to run the role twice on the same host.  This
will be useful when we test changes to this role.

Change-Id: I97baeb3172298648bcfef26c5be635ad4be036f0
2019-10-28 15:42:29 -07:00
James E. Blair
8766890012 Use zuul-registry as buildset registry
The proxy functionality is no longer needed so it is removed.

Change-Id: I29ff75d331b433ea4ad3b66ed723eee14a90b404
Depends-On: https://review.opendev.org/689829
2019-10-28 15:42:26 -07:00
Zuul
aa7dcaf69c Merge "fetch_subunit: Change variable" 2019-10-21 19:58:39 +00:00
Zuul
ff1c4648e1 Merge "fetch-subunit-output: collect additional subunits (2nd try)" 2019-10-21 19:48:51 +00:00
Andreas Jaeger
293b064d29 fetch_subunit: Change variable
Change new variable zuul_additional_subunit_dirs to
fetch_subunit_output_additional_dirs to name it after the role.

Change-Id: I7ac0b5d343701409a8741439334fe27f5374a258
2019-10-21 21:07:39 +02:00
Zuul
0d39fba5fe Merge "configure-mirrors: Consolidate dnf/yum handler" 2019-10-19 07:45:07 +00:00
David Shrewsbury
a37c21b772 Increase minikube logging output to maximum
Per settings mentioned at: https://minikube.sigs.k8s.io/docs/tasks/debug/

The current logging level is very minimal for tracking down any
potential k8s issues.

Change-Id: I4ebd694481de936f9df790a46e195b251a803c5f
2019-10-17 20:00:01 +00:00
James E. Blair
03e42f874b install-kubernetes: add support for cri-o runtime
This adds optional support for using the cri-o rather than the
(still default) docker runtime.

Change-Id: I0f7cbb758a21cb022ceac24654183138bebf83bf
2019-10-17 11:27:31 -07:00
Luigi Toscano
ab8f9fc403 fetch-subunit-output: collect additional subunits (2nd try)
In addition to the main subunit file from zuul_work_dir,
collect the subunit files from the elements (directories)
of the zuul_additional_subunit_dirs list.

The default behavior is unchanged.

While the documentation of this role states that zuul_work_dir
contains an absolute path, this is not always true.
So make sure to not make any assumption about zuul_work_dir
in order to not fail spectacularly as it happened with the
previous patch[0].

Add also some tests for the role: both the basic case
and with an additional test directory.

[0] https://review.opendev.org/673885

Change-Id: Iabf2e0cf6d86e36a174778367186bbd39a65c3dd
2019-10-17 00:42:28 +02:00
Zuul
6d5826844a Merge "Allow for overriding dns resolvers in install-kubernetes" 2019-10-16 19:30:17 +00:00
Sorin Sbarnea
d3a52f108d configure-mirrors: Consolidate dnf/yum handler
Simplify logic by using a single handler for redhat systems.

Change-Id: I328f0abb602f0d71372812ff64d8ad3f3764fbd0
2019-10-15 18:21:44 +01:00
Ian Wienand
2e684a8da5 configure-mirrors: add CentOS 8
Add repositories for CentOS 8, add base test.

Co-Authored-By: Sorin Sbarnea <ssbarnea@redhat.com>
Change-Id: I24e194a2f4729046c8f521ffccd3b00055127516
2019-10-15 17:33:48 +11:00
Ian Wienand
2462d16322 configure-mirrors: make separate template directories for each platform
This keeps each platform's "/etc" template files in a separate
top-level directory.

Additionally, we add a distro major version match to the task import
and rename centos7 (in preparation for centos8).

Change-Id: If65d51a27e30311b1da20522afb6dbce7ee6cf35
2019-10-15 17:04:57 +11:00
Clark Boylan
7755ef1b8d Use gzip to compress files uploaded to swift
We've discovered that rackspace swift seems to always want to gzip
encode files when clients request their contents. When our files are
deflate encoded this results in files that are first deflate encoded
then gzip encoded. Not all browers or layer 7 firewalls can handle this
(despite being perfectly valid according to the HTTP RFCs). We'll use
gzip to see if that causes rackspace to not double encode the files.

To do this with memory efficienty we vendor a tool from pypi called
gzip-stream which allows us to read chunks of the compressed data at a
time without loading the entire file into memory or writing multiple
gzip headers in a single file.

Change-Id: I9483cfdbd8e7d0683eeb24d28dd6d8b0c0e772fa
2019-10-11 11:32:17 -07:00
Clark Boylan
61c05a180f Test role for upload-logs-swift
This creates a testing role for upload-logs-swift so that we can test
chagnes to this role before moving them into the production role.

Change-Id: If55b0e2809d9309bc98e6763da32219d996dbfa4
2019-10-11 11:32:11 -07:00
Clark Boylan
3c60b35a19 Replace command with shell in persistent-firewall
We continue to see the odd task rc of -13 when running iptables-save to
store persistent set of firewall rules. Switch to shell to give us a bit
more debugging freedom if necessary (and to rule out the command
module).

Change-Id: I0c0208101cad985d4113de6b636c3816613b778c
2019-10-02 10:18:38 -07:00
Zuul
7ce53a7732 Merge "Add unit tests for tox_instalL_sibling_packages" 2019-10-01 19:42:04 +00:00
Mohammed Naser
0193198215 Add unit tests for tox_instalL_sibling_packages
This adds very basic framework and a simple unit test for a function
which had non-Python 3 code.

Change-Id: Ie22402aeacd21942c356d7d7c5c962b40a29caa4
2019-10-01 19:18:25 +00:00
Zuul
26c1592e77 Merge "Allow upload-logs to toggle compression of console logs" 2019-10-01 18:56:10 +00:00
Clark Boylan
121baa0d77 Revert "Use import_role on persistent-firewall"
This reverts commit 46b7b6e1c98a8b12647be4b30b5b54405379d6ec.

This didn't end up changing the incidence of the iptables-save command
task failures.

Change-Id: I02e725d7330bc9b438a9864ea49510cca7fee524
2019-10-01 09:11:02 -07:00
Zuul
2689c24414 Merge "Use import_role on persistent-firewall" 2019-09-30 23:17:19 +00:00
Clark Boylan
40d32838d5 Escape special filename characters in urls
The href url paths need to have quoted filenames to handle cases where
filenames have special characters like : in them.

Change-Id: I0bc0de8d27c6e45c4a6b8841985b8265f0219df2
2019-09-30 14:12:18 -07:00
Clark Boylan
46b7b6e1c9 Use import_role on persistent-firewall
Previously to persist the filewall we were including the
persistent-firewall role. This seems to occasionally break because the
second invocation of the role (on multinode jobs after setting up the
multinode bridge) fails with an RC of -13 when listing ipv4 iptables
roles. Then when we try to write them to disk the variable is empty.

One thought is that dynamically loading the role multiple times may be
confusing ansible. Use import_role to statically load the role instead
and see if this helps.

Change-Id: I2458f8eb4c2e4638336fa14e436e13b5a2263cce
2019-09-30 10:39:02 -07:00
Colleen Murphy
18285584f1 Use iptables for openSUSE
In openSUSE Tumbleweed, the SuSEfirewall2 package was removed in favor
of firewalld[1]. This commit updates the iptables persistance tasks to
avoid using SuSEfirewall2 and instead use rc.local to restore saved
rules upon restart, and undefines the iptables_service variable for SUSE
since there is no service to restart any more. See the related change
for image builds[2].

[1] https://lists.opensuse.org/opensuse-factory/2019-01/msg00490.html
[2] https://review.opendev.org/683236

Change-Id: I0f8d74dd00df192c20b96a9368b964839c306171
2019-09-27 15:45:01 -07:00
Zuul
01f6c26e29 Merge "Remove invalid argument from format_exc() calls" 2019-09-24 08:29:42 +00:00
Zuul
d5edece13c Merge "Add more languages for build-releasenotes" 2019-09-24 02:43:39 +00:00
Ian Wienand
20bffbcfc0 Remove invalid argument from format_exc() calls
The argument here is an integer "limit", not the exception.

I think that we only notice this on Python 3 because of exception
chaining.  It causes a real failure though because the exception
handler that is meant to fall into "pass" raises another exception
when ipv6 doesn't work.

Change-Id: I0908a0a3dbb2356caabbffd062379751a0b61c41
2019-09-24 12:15:28 +10:00
Andreas Jaeger
0f42cbb88b Add more languages for build-releasenotes
Update list of languages since we have some more translations.

Change-Id: Ib9636132549673908660e47ad5e33ad3d9386c0f
2019-09-23 14:01:05 +02:00
Andreas Jaeger
4dbd165ef0 Fix tox_install_sibling_packages.py for py3
Under Python3, subprocess.check_output returns binary data,
convert to utf-8 so that it runs under both Python2 and 3.
Using decode works with both Py2 and Py3.

Note that in other places, we already convert the output of check_output
with decode, this change follows that pattern.

Change-Id: I727a2368233473f57978ba24947f6d861b02f7da
2019-09-22 10:44:23 +02:00
Paul Belanger
550e5da4b4 Allow upload-logs to toggle compression of console logs
We should make it easy for users to view console logs by default.
Today, we compress and upload logs and by default apache / nginx will
not properly display them as plain text.  This commit changes the
default to not compress, but allows more advanced users to enable this
logic.  As mostly likley it also means additional configuration for
your web server.

Change-Id: Ic446db4f85e2098db8fa4568f8c5140ba564e931
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-09-20 17:03:58 +00:00
James E. Blair
e35c529bac Retry pushes to dockerhub
To deal with things like 502 bad gateway errors.

Change-Id: Iaa745394baafcdfedc188f8503b7c7fc9ee92f5b
2019-09-20 09:50:44 -07:00
Zuul
8dd07b8aa5 Merge "Clean non-bare remote repos" 2019-09-17 17:47:02 +00:00
Zuul
cec475c082 Merge "Add a netconsole role" 2019-09-17 08:38:16 +00:00
Zuul
42a5fabffd Merge "Retry container gets in upload-logs-swift" 2019-09-16 17:09:57 +00:00
Zuul
cf69fc08a7 Merge "Add tests for manifest generation for missing files" 2019-09-16 11:56:22 +00:00
Clark Boylan
287880a63a Retry container gets in upload-logs-swift
We have been getting HTTP 401 unauthorized errors at the rate of about
once a day when trying to get containers in the swift logs role.
Manually getting and posting objects to the same container after the
jobs fail seems to work so this appears to be a transient failure.

Attempt to workaround this by retrying the container get calls several
times.

Change-Id: Ia7395ffa0b120fbbecde0c9bb6e8583078167143
2019-09-13 09:17:27 -07:00
Mohammed Naser
f3615abc01 Add tests for manifest generation for missing files
This is a patch that adds test to make sure that we handle FileNotFound
exceptions during walks.

Change-Id: I6d3513ddb4a705a28043065b1398b75018ee3115
2019-09-12 19:39:09 +02:00
Clark Boylan
1aacb23399 Log swift upload tracebacks with ansible
The old code will log swift upload tracebacks via logging.exception()
which doesn't seem to bubble back up into ansible's logging. We address
this by using traceback.format_exc() to format an exception traceback
string which we pass to ansible's module.fail_json().

Change-Id: I524bd0d5a9529011cffb6d09866b22b2c97fab7d
2019-09-12 10:37:44 -07:00