Commit Graph

477 Commits

Author SHA1 Message Date
Chris Evich
e8564dc44f Cirrus: Print images that should be pruned
Over time unless they're removed, the project could grow quite a large
collection of VM images.  While generally cheap (less than a penny each,
per month), these will become a significant cost item if not kept
in-check.

Add a specialized container for handling image-pruning, but limit
it to only finding and printing (not actually deleting) images.

Also update the image-building workflow so that base-images used to
compose cache-images are also labeled with metadata.

N/B: As an additional safeguard, the service account which
     executes the new container in production *DOES NOT*
     have access to delete images.  This can be enabled
     by adding the GCE IAM role: CustomComputeImagePrune

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-07-15 15:26:26 -04:00
Chris Evich
9043b816d4 Cirrus: Fix missing removal of packaged podman
This was originally intended, but somehow omitted from #1936

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-07-12 08:44:27 -04:00
OpenShift Merge Robot
81e722d086 Merge pull request #3106 from cevich/cirrus_release
Cirrus: Automate releasing of tested binaries
2019-07-10 15:08:03 +02:00
OpenShift Merge Robot
7633bd3b1b Merge pull request #1936 from cevich/cirrus_packaged_deps
Cirrus: Use packaged-based dependencies
2019-07-09 00:16:45 +02:00
Chris Evich
1ef8637ae3 Cirrus: Automate releasing of tested binaries
It's desirable to make archives available of builds containing actual
tested content.  While not official distro-releases, these will enable
third-party testing, experimentation, and development for both branches
(e.g. "master") and pull requests (e.g. "pr3106").

* Add a Makefile targets for archiving both regular podman binaries
  and the remote-client.  Encode release metadata within these
  archives so that their exact source can be identified.

* Fix bug with cross-compiling remote clients for the Windows and Darwin
  platforms.

* Add unit-testing of cross-compiles for Windows and Darwin platforms.

* A few small CI-script typo-fixes

* Add a script which operates in two modes:

  1. Call Makefile targets which produce release archives.
     Upload the archive to Cirrus-CI's built-in caching system
     using reproducible cache keys.

  2. Utilize reproduced cache keys to attempt download of cache
     from each tasks.  When successful, parse the file's
     release metadata, using it to name the archive file.  Upload
     all recovered archives to a publicly accessible storage bucket
     for future reference.

* Update the main testing task to call the script in mode #1 for
  all primary platforms.

* Add a new `$SPECIALMODE` task to call the script in mode #1 for
  Windows and Darwin targets.

* Add a new 'release' task to the CI system, dependent upon all other
  tasks.  This new tasks executes the script in mode #2.

* Update CI documentation

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-07-03 16:51:21 -04:00
Matthew Heon
4ced285857 Bump to v1.4.5-dev
Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-07-02 14:58:54 -04:00
Chris Evich
3d559df540 Cirrus: Use packaged dependencies
Building/installing dependencies from fixed source-version ensures
testing is reliable, but introduces a maintenance burden and
risks testing far outside of a real-world environment.  The
sensible alternative is to install dependencies from distro-packaging
systems.

Install all development and testing dependencies at VM cache-image build
time, to help ensure testing remains stable.  The existing cache-image
build workflow can be utilized at any future time to build/test
with updated packages.

***N/B***: This does not update any dockerfiles used by testing, that is
left up to future efforts.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-06-27 09:05:26 -04:00
OpenShift Merge Robot
fccf4ad503 Merge pull request #3193 from cevich/check_image
Cirrus: More tests to verify cache_images
2019-06-27 03:31:35 +02:00
Matthew Heon
5f21858ae3 Bump to v1.4.4-dev
Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-06-25 15:46:02 -04:00
Chris Evich
cd78825be7 Cirrus: More tests to verify cache_images
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-06-25 15:45:12 -04:00
Peter Hunt
284208a238 Update conmon to include attach socket unlink
Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-06-21 10:55:24 -04:00
OpenShift Merge Robot
7be87f5551 Merge pull request #3078 from cevich/cirrus_f30
Cirrus F30
2019-06-19 16:13:47 +02:00
Matthew Heon
c225934726 Bump to v1.4.3-dev
Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-06-18 19:27:19 -04:00
Ed Santiago
d6f436204f run BATS tests in Cirrus
I'm running the BATS tests manually once in a while, and
catching several problems each week that make it past
the rest of CI. Since the BATS tests run at RPM gating
time, we need to catch problems earlier. Try running
the tests from Cirrus.

Tests will be skipped on Ubuntu due to a too-ancient
version of coreutils (8.28; the 'timeout -v' we use
requires 8.29).

Tests are run *after* integration tests, even though
these take three minutes and would be nice to have
fail quickly, because running before causes bizarre
CI failures. Shrug.

UPDATE: also fix run test, broken by #3311.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-06-17 13:41:14 -06:00
OpenShift Merge Robot
058c93f850 Merge pull request #3308 from cevich/always_collect_logs
Cirrus: Simplify log collection commands
2019-06-17 21:38:25 +02:00
Matthew Heon
e0db4690aa Bump to v1.4.2-dev
Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-06-14 18:19:30 -04:00
Chris Evich
ab3105a46d Cirrus: Fix F30 ssh guarantee
The original solution using --wait does not function on F30, waiting
forever.  Replace it with a simple 5-minute timeout loop.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-06-14 15:47:07 -04:00
Chris Evich
11484580d3 Cirrus: Add support for testing F30
Remove disused `build_cache_images` task, and
update relevant dockerfiles for F30.

Fix problem of cloud-init failing to expand root-device on boot
(/var/lib/cloud/instance left in improper state).

Fix problem of cloud-init racing with google-network-daemon.service on
boot (looking for cloudconfig metadata too early).  Causing
root-device to _sometimes_ fail to expand.

Fix problem of hack/get_ci_vm.sh argument passing.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-06-14 13:41:58 -04:00
Chris Evich
60a857db62 Bump gate-container up to F30
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-06-14 10:27:06 -04:00
OpenShift Merge Robot
1322b41aa0 Merge pull request #3320 from cevich/fix_ssh_race
Cirrus: Guarantee ssh is running for rootless
2019-06-14 15:44:58 +02:00
Chris Evich
4e9f5e5f2b Cirrus: Simplify log collection commands
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-06-14 08:49:18 -04:00
Peter Hunt
a3ed16416f Bump conmon to 0.3.0
This enables cgroup v2 OOM

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-06-13 12:03:57 -04:00
Chris Evich
8440656fd5 Cirrus: Guarantee ssh is running for rootless
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-06-13 11:32:06 -04:00
Chris Evich
1a9accb379 Remove source-built buildah from CI
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-06-10 12:54:42 -04:00
TomSweeneyRedHat
cdffb69493 Touchup upstream Dockerfile
The upstream/Dockerfile had a few issues that this
cleans up.  A few files were misplaced, wrong installs
and removes.  This corrects those issues.

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2019-06-08 21:31:46 -04:00
OpenShift Merge Robot
5646f13178 Merge pull request #3253 from cevich/clean_brent_mess
Cirrus: Minor cleanup of dependencies and docs
2019-06-08 12:35:57 +02:00
Matthew Heon
4bd0fcf561 Bump to v1.4.1-dev
Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-06-07 16:49:51 -04:00
Matthew Heon
41365a8f67 Bump to v1.4.0
Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-06-07 16:49:48 -04:00
Chris Evich
ae16fa33d7 Cirrus: Minor cleanup of dependencies and docs
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-06-06 15:33:01 -04:00
Chris Evich
32fb83e3ab Cirrus: Track VM Image calling GCE project
With multiple `containers` projects updating VM Image metadata,
it would be very difficult to discover which Cirrus-CI setup
was responsible.  Add the GCE project name to the list
of metadata labels to update when this container runs.  This
will give more context as to which images are currently in use.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-06-05 15:53:00 -04:00
OpenShift Merge Robot
88eefaecb6 Merge pull request #3156 from TomSweeneyRedHat/dev/tsweeney/podmanimage
Create Dockerfiles for podmanimage
2019-06-04 07:49:47 +02:00
Ed Santiago
a47bb4d29f cirrus: minor cleanup and refactoring
...with the goal of (very soon) reusing this code, in #2947,
to run system tests in CI. This is the cleanest way I can
think of to do so without duplication or a large maintenance
burden.

Changes are:
 - replace references to 'ginkgo' with 'integration'. That
   target is already in Makefile, and is not only more
   readable, it's also more abstract. There is no reason
   for this level of code to know about ginkgo.
 - allow rootless_test.sh to accept an argument,
   that being the name of the test suite to run
   (default: integration). #2947 will enable 'system'.
 - allow integration_test.sh to serve multiple purposes,
   by checking its filename. #2947 will add a symlink,
   system_test.sh, which will then cascade down to
   invoke system tests.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-06-03 05:34:31 -06:00
TomSweeneyRedHat
54e1a3a103 Create Dockerfiles for podmanimage
The Dockerfiles necessary to create the stable, testing and upstream container images
on quay.io/user/podman.  Once this is commited, I will set up those images
such that they will be built with every git commit.

stable - Latest Fedora release image
testing - Latest release on bohdi Fedora testing
upstream - Latest version in upstream podman

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2019-06-01 14:22:38 -04:00
baude
d1c44ea856 split rootless local and remote testing
Signed-off-by: baude <bbaude@redhat.com>
2019-05-31 14:54:06 -05:00
baude
ce6e3b80d1 do not run remote tests inside container
when running the podman integration tests inside a container, we should
not be running the remote tests.

Signed-off-by: baude <bbaude@redhat.com>
2019-05-30 10:30:14 -05:00
OpenShift Merge Robot
8649dbdc11 Merge pull request #3210 from haircommander/conmon-0.2.0
bump conmon to v0.2.0
2019-05-28 21:07:43 +02:00
Peter Hunt
f2c8391ecc bump conmon to v0.2.0
Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-05-28 10:42:52 -04:00
Chris Evich
361f787abe Cirrus: Add zip package to images
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-05-23 09:16:17 -04:00
Chris Evich
bd0ac639bf Cirrus: Fix missing CRIO_COMMIT -> CONMON_COMMIT
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-05-21 10:56:47 -04:00
Chris Evich
c7d9780be4 Cirrus: workaround root expand failure
Occasionally, and seemingly only on F29 the root disk fails to expand
upon boot.  When this happens, any number of failures could occur if
space runs out.  Until there is time to investigate the actual cause,
workaround this problem by detecting it and acting accordingly.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-05-21 08:44:02 -04:00
Chris Evich
1a2055ffac Cirrus: Stub in F30 support
New base-image boots, a cache-image builds, but more work is needed for
it to be prime-time ready.  This commit just adds some updates to the
scafolding necessary to build the base-image.  Future work will make F30
more of a reality.

Also add log-collection scripts to test image verification task

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-05-21 08:44:02 -04:00
Chris Evich
95141f88d4 Cirrus: fixups based on review feedback
Also remove disused distros (RHEL/CentOS/FAH) and fix get_ci_vm script

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-05-21 08:44:02 -04:00
Chris Evich
c4d9b03f78 Cirrus: Overhaul/Simplify env. var setup
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-05-21 08:44:02 -04:00
Chris Evich
51a95e6ef1 Cirrus: Run tests on test-built cache-images
Also, add jq and catatonit installs to images.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-05-21 08:44:01 -04:00
Chris Evich
191a08ae43 Cirrus: Support testing of VM cache-image changes
Previously, it was quite difficult to affect changes to VM cache images
without lots of manual work.  This commit adds a new optional testing
task which mirrors the official-image build task which only runs on
master.  In contrast, the new task may be run at any time in a PR, but
including a magic phrase in the PR description.

Update documentation to describe the new task and inform on it's usage.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-05-21 08:44:01 -04:00
Chris Evich
84c6f7c55d Cirrus: Remove "too new" runc hack
Hack was to workaround not having fix for:
https://bodhi.fedoraproject.org/updates/FEDORA-2019-b4356521ba

Update `RUNC_COMMIT` value to match commit id to working package.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-05-21 08:44:01 -04:00
OpenShift Merge Robot
9567d87bdf Merge pull request #3152 from rhatdan/remote
install.remote should be separate for install.bin
2019-05-20 20:26:09 +02:00
OpenShift Merge Robot
00ecbfc131 Merge pull request #2844 from haircommander/cri-o-update
move to cri-o/cri-o and build with containers/conmon
2019-05-17 21:49:10 +02:00
Daniel J Walsh
6154ba4a80 install.remote should be separate for install.bin
For people who want to install podman remote or podman
only we need to separate out the two install commands.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-05-17 14:20:45 -04:00
Chris Evich
0f31c6bdc4 Cirrus: Confirm networking is working
Thanks to @edsantiago for suggestion to use nc

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-05-17 13:25:59 -04:00