Commit Graph

1217 Commits

Author SHA1 Message Date
Paul Holzinger d9183f0587
cirrus.yml: implement skips based on source changes
We do not have to test everything for each PR, we can know based on the
source if we changed (i.e. machine code) and only run the tests then.

This implements it as skip conditions, due to the nature of yaml files
we unfortunately cannot deduplicate everything, i.e. the is PR check and
danger files apply to everything but as skip is only a single yaml
string we cannot deduplicate parts of that string. If anyone knows a way
to achieve this I like to hear it.

For now I implemented this for int, system, bud and machine tests. Once
we are more comfortable with this I plan on adding it to other tests as
well.

This will replace the current _bail_if_test_can_be_skipped logic as it
covers more, marks tasks actually skipped in the github UI and works
even for the windows/macos machine tests.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-20 19:10:02 +02:00
Paul Holzinger 0eaec1a2e9
cirrus: check for system test leaks in nightly
The leak check is slower (over 5mins) so we do not wnat them on PR runs
to speed system tests up. However that opens the door for someone to add
a test which forgets to do the correct cleanup themselves. This might
not cause a fatal error right away and only later when new tests would
be added. To prevent this happening the nighlty run will check leaks so
that we can fix them quickly and not notice them months/years later when
a new test is added that might trip over it.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-18 11:06:52 +02:00
Paul Holzinger c20767120f
CI: do not install python packages at runtime
No idea why we need them, it passes without them so I just remove them.
Currently CI is broken as this install is failing on rawhide for some
reason. I don't know what changed there but this is working and unblocks
CI so I like to get this in.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-17 13:03:25 +02:00
Colin Walters bf541c6740 machine/linux: Support virtiofs mounts (retain 9p default)
I'm hitting a bug with 9p when trying to transfer large files.
In RHEL at least 9p isn't supported because it's known to have a
lot of design flaws; virtiofsd is the supported and recommended
way to share files between a host and guest.

Add a new hidden `PODMAN_MACHINE_VIRTFS` environment
variable  that can be set to `virtiofs` to switch to virtiofsd.

Signed-off-by: Colin Walters <walters@verbum.org>
2024-06-07 10:03:06 -04:00
Urvashi Mohnani e4123026b5 [CI:DOCS] Add contrib/podmanimage/stable path back in repo
The path mentioned above is linked in the sysadmin
article on running podman inside containers. The content
has since been moved and users are getting a 404 there now.
Add the path back with a readme pointing to the new location
of the content.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2024-05-31 10:38:34 -04:00
Mario Loriedo fb4ddf86cc Add Hyper-V option in windows installer
podman.msi GUI has a radio-button to select WSL or Hyper-V

The checkbox in podman.msi GUI allow the user to specify if
the machine provider installation (WSL or Hyper-V) should
be part of podman installation or not.

podman-setup.exe supports 2 new variables: MachineProvider
(valid values are `wsl` and `hyperv`) and HyperVCheckbox
(valid values are `0` and `1`)

Installation creates the configuration file
`99-podman-machine-provider.conf` under folder
`%APPDATA\containers\containers.conf.d` with the selected
machine provider

Cirrus CI `win_installer_task` tests the installation with
both `hyperv` and `wsl` and verifies the configuration.
Uninstallation is tested too.

Note that podman-setup.exe GUI doesn't allow to choose the
provider yet. See https://github.com/containers/podman/issues/22492

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-05-29 12:09:37 +02:00
Chris Evich 74e8f98772
Mac PM test: Require pre-installed rosetta
Previously, the mac podman-machine tests installed rosetta before
executing any tests.  As a best-practice (and because the Macs in CI are
shared) tests should never permanently modify the system.  As of this
commit, the system setup script used for the CI Macs does the rosetta
installation.  Remove the test setup code that installed rosetta and
add a CI-level confirmation that it's been pre-installed.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-05-23 10:23:06 -04:00
openshift-merge-bot[bot] f03dc68f00
Merge pull request #22654 from ashley-cui/val
[CI:DOCS] Improvements to make validatepr
2024-05-13 20:36:22 +00:00
Paul Holzinger 5901bf52b9
CI tests: enforce TMPDIR on tmpfs
First, setup a custom TMPDIR to ensure we have no special assumptions
about hard coded paths. Second, make sure it is actually on a tmpfs so
we can catch regressions in the VM setup immediately.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-05-13 17:27:10 +02:00
Ashley Cui 279e2d0cb2 [CI:DOCS] Improvements to make validatepr
Small usability improvements for our containerized validate target.

- Responds to SIGINT
- Exits if build fails, only validate if builds succeed
- Warns about potential of insufficient memory
- Document `make validatepr`

Signed-off-by: Ashley Cui <acui@redhat.com>
2024-05-09 10:06:47 -04:00
openshift-merge-bot[bot] cdb354fc98
Merge pull request #22623 from cevich/cleanup_passthrough_envars
[CI:DOCS] Clarify passthrough_envars() comments
2024-05-08 09:05:07 +00:00
Chris Evich b520e909e0
CI Docs: Clarify passthrough_envars() comments
A long time ago, `passthrough_envars()` was defined in `lib.sh`.  It has
since been moved, but the related comments were never updated.  Update
the env. var. comments pointing future maintainers to the function that
relies on them.  Otherwise a simple search w/in this repo. won't turn up
anything.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-05-06 13:26:55 -04:00
Ed Santiago 87747ca820 Skip machine tests if they don't need to be run
Followup to #13936 : add an exclusion to localmachine tests
so we can avoid running those on test- or doc-only PRs.
Reason: #22551, the machine-start-timeout flake, is causing
hours of wasted time.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-05-06 09:55:16 -06:00
Ed Santiago eaf60c7fe7 e2e tests: use /var/tmp, not $TMPDIR, as workdirs
TMPDIR is typically /tmp which is typically(*) a tmpfs.

This PR ignores $TMPDIR when $CI is defined, forcing all
e2e tests to set up one central working directory in /var/tmp
instead.

Also, lots of cleanup.

 (*) For many years, up to and still including the time of
     this PR, /tmp on Fedora CI VMs is actually NOT tmpfs,
     it is just / (root). This is nonstandard and undesirable.
     Efforts are underway to remove this special case.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-26 14:29:56 -06:00
Paul Holzinger d1bfdc7900
e2e and bindings tests: fix $PATH setup
Both tests need the podman-registry script in $PATH, this never worked
locally as only the cirrus specific CI setup scripts configured this.

To make it work correctly locally add the hack dir to $PATH for these
Makefile targets.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-26 14:37:27 +02:00
Paul Holzinger 2c61ee9a31
CI: remove compose v1 tests
compose v1 has been deprecated for some time now, since July 2023 it no
longer receives any updates[1]. As such testing it on every PR is
pointless, it also does not provide any more coverage then compose v2.
At least I never saw only compose v1 test fails (except for flakes) so
it doesn't help us to catch regressions.
We tried to remove it before but decided against it at that time[2].

[1] https://docs.docker.com/compose/migrate/
[2] https://github.com/containers/podman/issues/18688

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-18 14:48:27 +02:00
Paul Holzinger 5e9725983d
install swagger from source
First of all this removes the need for a network connection, second
renovate can update the version as it is tracked in go.mod.

However the real important part is that the binary downloads are
broken[1]. For some reason the swagger created with them does not
include all the type information for the examples. However when building
from source the same thing works fine.

[1] https://github.com/go-swagger/go-swagger/issues/2842

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-12 15:26:34 +02:00
Brent Baude e773ed42b3 [CI:DOCS]Initial PR validation
This PR is only a first step towards being able to validate developer
code locally prior to pushing a PR and using CI.  Right now, we have a
prepared image in a temporary spot (will change when done).  That image
can be used to exercise various podman builds, make validate, and DCO
check.

The idea here is we have a make target that spins a podman container (or
machine) and then execute a small script to perform the actual builds.
Note, these builds are to verify code, not make production binaries so
corners are cut.  As of now, we choose to not build cross-arch binaries
because most of our problems thus far have been operating system builds
and not arch.

Of course this can be expanded in the future.  This is just step one to
start getting some of it in place.  The rest of the work is tracked in
JIRA under two cards.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-04-11 07:49:03 -05:00
Ed Santiago ff133a544d Windows: clean up temporary perl install
Followup to #21991. Strawberry Perl is now installed by default
in CI VMs[1], so we no longer need the temporary install-perl code.

 [1] https://github.com/containers/automation_images/pull/337

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-03 08:53:55 -06:00
Mario Loriedo c0e32e93c0 Use logformatter for podman_machine_windows_task
https://github.com/containers/podman/issues/21760

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-03-27 12:59:49 +01:00
Ed Santiago f16ab115ed logformatter: handle Windows logs
C-colon and backslashes and ^Ms oh my

Tested on sample failure and success logs, seems to work.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-03-18 15:28:24 -06:00
Paul Holzinger dbf38779bd
Makefile: drop tests-included from validate target
make validate should work locally, this check makes no sense in a local
context as it checks for a github label.
To fix this remove this check from the validate target and only use it
as part of the CI validate run.

While at it remove old dnf install step, the issue has been closed for a
long time and it should already be part of our base images.

Fixes #22031

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-03-13 18:17:43 +01:00
openshift-merge-bot[bot] cc495a9fac
Merge pull request #22014 from baude/norqdpolicy
do not require policy.json
2024-03-13 15:21:12 +00:00
Brent Baude d7bc7b7b41 do not require policy.json
we are having second thoughts about *requiring* a policy.json on podman
machine hosts.  we are concerned that we need to work out some more use
cases to be sure we do not make choices now that limit us in the near
term future. for example, should the policy files be the same for
container images and machine images? And should one live on the host
machine and the other live in the machine?

therefore, if a policy.json *is* present in the correct location, we will use and honor it; however, if it does not, we will allow the machine image to be pulled without a policy.

Signed-off-by: Brent Baude <baude@redhat.com>
Co-authored-by: Paul Holzinger <45212748+Luap99@users.noreply.github.com>
Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-03-13 09:07:51 -05:00
Mario Loriedo abaa179aa0 Add target win-gvproxy in winmake.ps1
For consistency with linux/osx makefile
I have added the win-gvproxy target as
an alias of win-sshproxy

[NO NEW TESTS NEEDED]

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-03-13 00:45:10 +01:00
openshift-merge-bot[bot] 38e22d443c
Merge pull request #21950 from cevich/move_podmanimage
[CI:DOCS] Migrate podman container image
2024-03-11 17:28:28 +00:00
openshift-merge-bot[bot] 45068124f0
Merge pull request #21985 from n1hility/fin-policy-json
Complete policy.json inclusion (Also add to win installer)
2024-03-07 21:13:38 +00:00
Jason T. Greene d54a373996 Complete policy.json inclusion
- Sets default search location to always be the peer directory
  + make podman-remote now creates binaries that work the same as release zips
- Updates release zip to match expected search location
- Updates win installer to include the file if present in the repo cross-build
  archive

[NO NEW TESTS NEEDED]

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-03-07 14:05:22 -06:00
Ashley Cui 75fa38d52e [CI:BUILD] Build universal Podman binary for Mac installer
Build universal Podman binary and installer for Mac. Update GitHub action to build it too.

Signed-off-by: Ashley Cui <acui@redhat.com>
2024-03-07 09:09:32 -05:00
Chris Evich d6d2601742
[CI:DOCS] Migrate podman container image
Moved to: https://github.com/containers/image_build

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-03-05 16:11:02 -05:00
Ed Santiago 530782e11d logformatter: fixes for Macintosh
Lots of small special-case tweaks to logformatter because Macs
have to be different.

Also fix:
 - Wrong slash in printf-newline, leading to gray [It] blocks
 - echo gitCommit, so we can link to sources
 - --image-path is deprecated

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-03-04 05:52:00 -07:00
Ed Santiago 99bb2bfce4 CI: must-add-tests check: use GH label, not text
Old way: edit commit message, add magic string, re-push

New way: repo maintainer adds a Github label to PR, hits Rerun

I've looked and looked for the history behind this script
and why I didn't do it this way in the first place. I've
concluded that I just never thought of it.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-03-01 05:32:06 -07:00
Ed Santiago 6957c78199 CI: run logformatter on mac
It works (verified in #17831). Imperfectly, because Macs don't
have a useful awk, so we can't get timestamps. I will, in time,
look into adding the timestamp functionality to logformatter
itself.

Also imperfect because it's not linkifying: source code paths
are dead text. I need to fix that, too, in logformatter, by
having it recognize /Users/Mac paths.

Imperfect as it may be, it was quick, and I think could provide
good bang for the buck in these Mac-intensive debugging days.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-02-28 20:14:05 -07:00
Brent Baude fd1d951262 Move ignition functions into Containerfiles
We used to use ignition to perform any customization required for podman
machine because our input was a generic FCOS image.  Now that we are
building our own images, some of this customization can be migrated to
the Containerfile itself and be less of a burden in our code at boot up.

At the time of this PR, the Containerfile can be found at
https://github.com/baude/podman-machine-images/tree/main.  It is only
present for a so-called daily image.  There is little liklihood that
this would the final location for the Containerfile so consider it a
working version only.

Split WSL and rest apart in the e2e tests so we no longer ppull the
generic FCOS image for testing.

Note: the change to the pull image name is so PRs are not immediately
broken that are already in the queue.

[NO NEW TESTS REQUIRED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-28 16:05:50 -06:00
openshift-merge-bot[bot] 4704418c13
Merge pull request #21841 from edsantiago/rawhide_rc6
new vms, with rc6 rawhide kernel
2024-02-27 19:40:56 +00:00
Christophe Fergeau 9f5c20f9bf
macos installer: Add vfkit entitlement
vfkit needs the com.apple.security.virtualization entitlement or it
wont' be able to start virtual machines:

Error: Error Domain=VZErrorDomain Code=2 Description="Invalid virtual machine configuration. The process doesn’t have the “com.apple.security.virtualization” entitlement." UserInfo={
    NSLocalizedFailure = "Invalid virtual machine configuration.";
    NSLocalizedFailureReason = "The process doesn\U2019t have the \U201ccom.apple.security.virtualization\U201d entitlement.";
}

This fixes https://github.com/containers/podman/issues/21842

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2024-02-27 17:47:49 +01:00
Christophe Fergeau 15734f8c5a
macos-installer: Remove hvf.entitlements
That's a left-over from 87947761ed

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2024-02-27 17:44:04 +01:00
Christophe Fergeau 74b87874b6
macos installer: Default to using ad-hoc signing
When there is no signing identity to pass to the macOS `codesign` tool,
we can use `-` instead as the identity to perform ad-hoc signing.

From `man codesign`:
> If identity is the single letter "-" (dash), ad-hoc signing is
> performed.  Ad-hoc signing does not use an identity at all

This makes it easier to test the sign() code-path in package.sh as
we'll run the same code regardless of `NO_CODESIGN` being set or not.

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2024-02-27 17:44:01 +01:00
Ed Santiago c2a2113bb6 new vms, with rc6 rawhide kernel
Source: https://github.com/containers/automation_images/pull/331#issuecomment-1966677347

Kludgy VM build, because rawhide rc6 kernel is still not stable.
I would like to merge this anyway, because the rawhide hang is
hurting us badly. (I am not guaranteeing that this fixes the hang).

Also: new Windows VM has WiX 3.14 (up from 3.11).

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-02-27 09:42:43 -07:00
Paul Holzinger 1e5b5a8892
macos installer: install default policy.json file
Include a default policy.json file in the macos package so users do not
have to add this manually.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-27 15:31:09 +01:00
openshift-merge-bot[bot] bb44510db6
Merge pull request #21639 from cevich/require_build
Rearrange CI tasks for safety + efficiency
2024-02-22 21:05:08 +00:00
Chris Evich c4e68bdae4
Cirrus: Reuse shared clone script on Mac
The `Makefile` makes assumptions about git repo. clone details.
Because fixing the `Makefile` would likely be problematic, fix
the clone operation used on the Mac so that it matches what's used
on Linux.

Also, simplify git repo clone operations.  At some point in the
distant past, a git identity was required for CI to function properly.
That has since changed, so remove the unnecessary complexities.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-21 15:20:16 -05:00
Chris Evich f7d1726f93
Rearrange CI tasks for safety + efficiency
There's are sometimes conflicting purposes in podman CI:

1. Have the pipeline proceed in an orderly and progressive manner
   to sometimes save resources and unnecessary runtime.
2. Complete all testing as quickly as possible in support of
   human-developers moving on to other areas of work.
3. Ideally/hopefully, accomplish both items above safely,
   preventing untested and/or unintended changes from merging.

This commit shifts the balance of these slightly more toward the second
point.  It rearranges most CI tasks into essentially three buckets with
a single (new) aggregation task in-between the first two:

1. Build + Verify all the things
2. Test all the things
3. Minor/accessory things

The intention is that while we may unnecessarily spin some number of
testing tasks while others have failed, the best-case scenario
(everything passes) has a much shorter runtime.  In other words, it
potentially wastes more resources in favor of a chance to have
developers wait less.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-21 13:27:16 -05:00
openshift-merge-bot[bot] f756e5db68
Merge pull request #21747 from mheon/windows_lint
Fix Lint on Windows and enable the job
2024-02-21 00:47:04 +00:00
Matt Heon ec68f07c04 Fix Lint on Windows and enable the job
[NO NEW TESTS NEEDED] Purely refactoring

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-20 08:06:18 -05:00
Paul Holzinger 66fd41ff19
cirrus logcollector: update package list
aardvark-dns, netavark and passt are installed on both debian and
fedora. cri-o-runc is not installed anymore and it just uses the normal
runc package on debian. containers-common is called
golang-github-containers-common on debian and also uses
golang-github-containers-image for further config files from c/image.
This makes sure we correctly log all the package versions on debian
correctly.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-20 13:58:57 +01:00
openshift-merge-bot[bot] 9fc45088cb
Merge pull request #21587 from cevich/fix_podman_remote_image
[CI:DOCS] Remove disused Containerfile and docs
2024-02-20 09:46:31 +00:00
Chris Evich 068d4e81c7
Allow CI user to cleanup own files
According to https://go.dev/ref/mod#module-cache golang will leave
behind read-only bits.  It was observed that these cause the find/rm
cleanup operations to fail fail with `permission denied` on thousands
of files.  This is preventing cleanup of cruft from unrelated Cirrus-tasks
leading to unnecessary occupation of critical, local-ssd storage space.
Fix this by ensuring the user has at least write access to the entire
contents of `$TMPDIR` and `$HOME`, `ci` subdirs.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-14 10:29:51 -05:00
Ashley Cui 87947761ed [CI:BUILD] Add VFKit into pkginstaller, remove QEMU
Do not build and install QEMU in the pkginstaller. Instead, build, sign, and install VFKit.

Signed-off-by: Ashley Cui <acui@redhat.com>
2024-02-13 10:20:03 -05:00
openshift-merge-bot[bot] fcd69c997e
Merge pull request #21542 from jakecorrenti/bump-gvproxy
Enable passing logfile to gvproxy
2024-02-12 21:49:41 +00:00
Chris Evich 00180bd5b3
Enforce podman-machine mac CI results
Followup to https://github.com/containers/podman/pull/21551

Note: Fixed indentation of podman-machine mac task.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-12 09:28:23 -05:00
openshift-merge-bot[bot] e16d82dbac
Merge pull request #21441 from cevich/win_lint
Windows-cross linting
2024-02-09 18:08:01 +00:00
Chris Evich 69163af2a0
Remove gitleaks scanning
Ref:
https://github.com/containers/podman/pull/21570#issuecomment-1935709148

This tool is really intended/best used from git pre-commit on developers
local machines, to prevent addition of secret leaks.  When used as a
check against PRs, it tends to turn up more false-positives than helpful
warnings.  There's no good way to fix this, and maintaining the scanner
is an additional burden.  Rather than continue struggling to improve/fix
the situation, let's just remove the tool entirely.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-09 10:09:42 -05:00
Chris Evich 5b6b689764
Remove disused Containerfile and docs
Fixes: #21574

The documentation for this image references a quay repository that
doesn't exist.  It doesn't appear any of these files have been touched
since late 2022. Instead of updating the docs, let's just remove the
source.  It's trivial to recreate if anybody actually needs it for
something.

Users needing to access remote podman can simply use the `podman` binary
present in existing images `quay.io/containers/podman`,
`quay.io/podman/stable`, etc.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-09 10:02:27 -05:00
Jake Correnti 69d54c482e Bump gvisor-tap-vsock from 0.7.2 to 0.7.3
Bump the gvisor-tap-vsock version that podman uses from 0.7.2 to 0.7.3

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-02-08 08:31:50 -05:00
Ed Santiago e20b70c2e6 Upgrade tests: reenable, but revamped
No longer bother testing any 2.x or 3.x. Only 4.1 and above.

Remove all CNI-related code. CNI is gone.

Add DatabaseBackend tests, confirming that we can handle
both boltdb and sqlite.

Require BATS >= 1.8.0, and use "run -0" to do exit-status checks.

Update docs.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-02-08 06:22:56 -07:00
Chris Evich 43a01d7dc2
Temporarily ignore windows-linting failures
As of this commit, there are several pages worth of lint findings for
windows.  Once they're all addressed, this commit may be reverted to
enable continuous checking.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-06 16:28:38 -05:00
Chris Evich defbf42376
Lint before windows-cross build
Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-06 16:28:38 -05:00
Lokesh Mandvekar 01a8539ef0
Warn if cgroups-v1
Podman v5 will not support cgroups-v1. This commit will print a warning
if it detects a cgroups-v1 system. The warning can be hidden by setting
envvar `PODMAN_CGROUPSV1_WARNING`.

This warning is patched out for RHEL 9 builds as cgroups-v1 will still
be supported on RHEL 9 systems.

Resolves: https://issues.redhat.com/browse/RUN-1957

[NO NEW TESTS NEEDED]

Co-authored-by: Ed Santiago <santiago@redhat.com>
Co-authored-by: Sascha Grunert <sgrunert@redhat.com>
Co-authored-by: Giuseppe Scrivano <gscrivan@redhat.com>
Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2024-02-06 16:18:05 +05:30
Ashley Cui 26cd01ee51 Do not test CNI in CI
CNI is deprecated and is build tagged out for 5.0. Don't test it in our CI.
This commit also disables upgrade tests for now - those need more work since the old version of Podman only uses CNI. Upgrade tests will be re-vamped in a later commit.
Signed-off-by: Ashley Cui <acui@redhat.com>
2024-02-05 11:01:21 -05:00
Ed Santiago 1ab55defbb Test new CI VMs
From https://github.com/containers/automation_images/pull/325

Major change: netavark and aardvark are now included in prior-fedora,
so CNI can be fully eliminated from CI (#21410)

FIXME FIXME FIXME: skip two e2e tests, waiting for new netavark

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-02-01 09:50:41 -07:00
openshift-merge-bot[bot] 0655bf3d34
Merge pull request #21445 from anjannath/update-qemu
pkginstaller: bump Qemu version to 8.2.1
2024-01-31 03:29:32 +00:00
openshift-merge-bot[bot] 2632edc871
Merge pull request #21408 from cevich/re-enable_pm_win
Revert "Enable win podman-machine test failure"
2024-01-30 20:59:10 +00:00
Anjan Nath 76791a21c6 pkginstaller: bump Qemu version to 8.2.1
this updates the Makefile qemu version to use the qemu
8.2.1 build released at:
https://github.com/containers/podman-machine-qemu/releases/tag/v8.2.1-1

[NO NEW TESTS NEEDED]

Signed-off-by: Anjan Nath <kaludios@gmail.com>
2024-01-31 01:34:47 +05:30
Chris Evich 0ec84b8ec5
Revert "Enable win podman-machine test failure"
This reverts commit f9e8585c53.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-01-29 09:30:04 -05:00
Daniel J Walsh 8d14d41555
Run codespell on code
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2024-01-28 07:30:52 -05:00
Christophe Fergeau c566551e96 gvproxy: Update to 0.7.2 release
This updates the Windows installer and macOS installer to ship the newer
binaries, as well as the vendored gvisor-tap-vsock code.

[NO NEW TESTS NEEDED]

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2024-01-17 16:59:35 +01:00
Łukasz Stolcman e51bab3c97
Remove duplicated content in docs
Signed-off-by: Łukasz Stolcman <lukasz.stolcman@protonmail.com>
2023-12-15 23:54:03 +01:00
Łukasz Stolcman 7c72d8c2f3
Fix path to example files
Signed-off-by: Łukasz Stolcman <lukasz.stolcman@protonmail.com>
2023-12-15 00:37:53 +01:00
Chris Evich 95eb22c71c
Support a machine-test only mode
Because the podman machine tests normally run at the end of the chain,
it's time consuming for developers to validate machine-only changes.
Support a special CI runtime mode, only when a PR is marked as a draft.
Update related documentation

Also: Only run machine tests on PRs, never for branches or new tags.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-12-11 11:02:32 -05:00
openshift-merge-bot[bot] d513749085
Merge pull request #20914 from baude/machinehypervregression
Fix regression in e2e machine test suite
2023-12-08 16:16:24 +00:00
Lokesh Mandvekar f9b2da3eb7
[CI:BUILD] override crun-wasm in fcos + podman-next image build
crun-wasm depends on the same epoch:version-release as crun so
overriding `crun` but not `crun-wasm` will cause installation issues
like:
```
error: Could not depsolve transaction; 1 problem detected:
 Problem: package crun-wasm-1.11.1-1.fc39.x86_64 from @System requires crun = 1.11.1-1.fc39, but none of the providers can be installed
  - cannot install both crun-102:1.12-1.20231205201336970037.main.19.g90b21dd.fc39.x86_64 from @commandline and crun-1.11.1-1.fc39.x86_64 from @System
  - cannot install both crun-102:1.12-1.20231205201336970037.main.19.g90b21dd.fc39.x86_64 from @commandline and crun-1.11.1-1.fc39.x86_64 from updates-archive
  - conflicting requests
```

This commit overrides both crun and crun-wasm from what's found in
podman-next.

Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2023-12-08 17:10:41 +05:30
Brent Baude 1ebd507fbf Fix regression in e2e machine test suite
A simple regression was introduced to the test suite that overrode the
default image for hyperv testing.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2023-12-07 21:06:46 -06:00
Jason T. Greene 3d740674b3 Improve error handling in win-lib.ps1
- Modified Check-Exit to take a relative stack postition so that reusing
  functions like Run-Command report on their callers as opposed to the source
  position of the wrapper.
- Record and print the last command executed as it likely scrolled off with
  test output.

[NO NEW TESTS NEEDED]

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2023-12-06 21:49:33 -06:00
openshift-merge-bot[bot] e8f30989b0
Merge pull request #20691 from cevich/mac_podman_machine_ci
Implement bare-metal Mac M1 podman-machine testing
2023-12-05 19:22:49 +00:00
Chris Evich f1dc126bf6
Do not aggregate failing mac test status
Issue Ref: #20853

Allow the tests to fail, but don't block merging PRs.
This commit should be reverted when #20853 is resolved.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-12-04 10:40:13 -05:00
Chris Evich 2d46d05373
Implement bare-metal Mac M1 podman-machine testing
Setup and execute podman machine testing on bare-metal M1 Macs
using a pool of shared and semi-persistent hosts.  Automated
and manual processes outside this repository are responsible
for providing and maintaining all hosts.  Ref.
https://github.com/containers/automation/tree/main/mac_pw_pool

Update the `localmachine` make target to standardize execution
across platforms.  Update/simplify podman-machine e2e README to
reflect current reality.

Warning: This CI setup and supporting infrastructure was developed
in favor of expediency vs reliability and stability.  There are
many possible failure-modes (known and unknown) which may lead
to undefined test behaviors.  Future work may address some of
these as they are encountered or discovered.

[NO NEW TESTS NEEDED]

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-12-04 10:40:13 -05:00
Chris Evich b7a81c1ce1
Fix command failure not resulting in task failure
For whatever reason (I don't understand this stuff well) the
`win-podman-machine-main.ps1` script exits successfully despite the
final `Check-Exit` showing a non-zero exit code was detected.  Attempt
to fix this by throwing an exception instead of calling `Exit`.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-12-04 10:38:05 -05:00
openshift-merge-bot[bot] 1672318439
Merge pull request #20852 from cevich/win_fail_ok_todo
Enable win podman-machine test failure
2023-12-03 11:52:49 +00:00
Chris Evich f9e8585c53
Enable win podman-machine test failure
Intended to serve as motivation to fix them.  Removed from status
aggregator so the failures don't block PR merging.  Updated comment text
to reference related open issue, #20548.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-11-30 10:38:48 -05:00
Sander Maijers a5d11f4041
Set `BUILDAH_ISOLATION=chroot` within Podman containers
See: https://developers.redhat.com/blog/2019/08/14/best-practices-for-running-buildah-in-a-container

See: 06c41b614d/docs/source/markdown/options/isolation.md

Signed-off-by: Sander Maijers <3374183+sanmai-NL@users.noreply.github.com>
2023-11-29 14:45:21 +01:00
Giuseppe Scrivano cd21973f47
pkg/util: use code from c/storage
[NO NEW TESTS NEEDED] no new functionalities are added

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-11-23 21:36:42 +01:00
Ed Santiago a10b88cb2f CI: test overlay and vfs
We're only testing vfs in CI. That's bad. #18822 tried to
remedy that but that only worked on system tests, not e2e.

Here we introduce CI_DESIRED_STORAGE, to be set in .cirrus.yml
in the same vein as all the other CI_DESIRED_X. Since it's 2023
we default to overlay, testing vfs only in priorfedora.

Fixes required:
 - e2e tests:
   - in cleanup, umount ROOT/overlay to avoid leaking mounts

 - system tests:
   - fix a few badly-written tests that assumed/hardcoded overlay
   - buildx test: add weird exception to device-number test
   - mount tests: add special case code for vfs
   - unprivileged test: disable one section that is N/A on vfs

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-11-17 05:48:50 -07:00
Daniel J Walsh 5dc807487f
Pass secrets from the host down to internal podman containers
This change will allow RHEL subscriptions from the host to flow
to internal containers.

Fixes: https://github.com/containers/common/issues/1735

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-11-13 10:56:04 -05:00
Daniel J Walsh c2de6d34ca
Run codespell on podman
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-11-06 09:23:16 -06:00
Ed Santiago 2a17baa29d CI: default to sqlite
Followup to #20318: now that sqlite is the podman default,
enforce that in CI as well. Test boltdb only in Prior Fedora.

In the process, discovered & cleaned up some duplication
and unused YAML anchors.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-11-02 13:17:21 -06:00
Chris Evich 4c67a6aed2
Fix secrets scanning GHA Workflow
The podman in `ubuntu-latest` environment apparently is too old to
support `--userns=keep-id:uid=1000,gid=1000`.  Employ workaround in GHA
workflow and in `prebuild.sh` check.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-10-30 12:06:17 -04:00
Chris Evich 1146f2ca78
Merge pull request #20136 from cevich/credential_scanning_config
[CI:DOCS] Implement secrets/credential scanning
2023-10-30 11:43:01 -04:00
Urvashi Mohnani ebe01ca292 Add e2e tests for farm build
Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2023-10-24 17:32:47 -04:00
Ed Santiago bd953fdc71 cirrus setup: special-case perl unicode
Perl is still stuck in the 1980s. Try to override that.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-10-19 09:30:10 -06:00
Chris Evich 6cb10425d4
Implement secrets/credential scanning
As an effort to catch potential secrets and/or credential leaks, add a
github-actions workflow which is untouchable in a PR context.
To additionally guard against accidents, also check recent branch
history.  This is especially important on newly created
release-branches, which may begin with content from who-knows-where.

Finally, since the new workflow bypasses PR-level changes to the scanner
config and base-line.  Add a Cirrus-CI invocation of the scanning tool
to help catch tool-breaking changes from being merged.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-10-05 11:16:19 -04:00
Chris Evich 106abd13be
Cirrus: Execute Windows podman-machine e2e tests
Also, de-duplicate power-shell variables and functions as they're
beginning to sprawl.  This does not completely address all duplicates,
mainly those involved in the podman-machine CI workflow.  So,
nothing under `contrib/win-installer` has been touched.

[NO NEW TESTS NEEDED]

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-10-05 10:45:17 -04:00
OpenShift Merge Robot f3aa35aa0e
Merge pull request #20186 from cfergeau/gvproxy
Update mac installer to latest gvproxy release
2023-09-28 21:03:57 -04:00
Paul Holzinger b284128d7b Revert "cirrus setup: install en_US.UTF-8 locale"
This reverts commit ed1f514d55.

The en_US.UTF-8 locale is now added in the images at build time,
https://github.com/containers/automation_images/pull/295

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-09-28 11:23:03 -06:00
Chris Evich b28188de22 Cirrus: CI VM images w/ newer automation-library
The `v4.3.1` version of the library defines a common
`passthrough_envars()` so it doesn't need to be duplicated in podman and
buildah CI.  It also includes an update to build-push which should make
debugging easier.

Finally, these images include setting of the en_US.UTF-8 locale to enable
removal of a workaroud in a future commit.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-09-28 11:23:03 -06:00
Christophe Fergeau 58b5ae22e1 Update mac installer to latest gvproxy release
This brings DNS improvements/bug fixes, and docker.internal DNS entries.

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2023-09-28 14:52:04 +02:00
Paul Holzinger 0b5ea1e6ec
test/e2e: default to netavark
When you run e2e tests locally they use CNI unless the NETWORK_BACKEND
env was set to netavark. Because our main focus is on netavark we should
test it by default.

For local tests this should help to prevent CNI/netavark conflicts as I
assume most systems where people run tests on are on netavark by now.

For  CI testing we hardcode NETWORK_BACKEND there to test both netavark
(on current fedora) and CNI (prior fedora). MAke sure to switch the
logic in the CI setup to reflect that.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-09-27 13:30:20 +02:00
OpenShift Merge Robot ada67a2481
Merge pull request #20041 from lsm5/fcos-crun-wasm
[CI:BUILD] FCOS + podman-next image: pull in wasm
2023-09-21 07:34:55 -04:00
Lokesh Mandvekar 289be0c014
[CI:BUILD] FCOS + podman-next image: pull in wasm
This commit installs `crun-wasm` and `wasmedge-rt` in the FCOS image at
https://quay.io/repository/podman/fcos .

- crun-wasm is installed from rhcontainerbot/podman-next
- wasmedge-rt is installed from the official Fedora repos

Packages in Containerfile have also been rearranged in alphabetical
order.

[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-09-19 15:41:13 -04:00
Lokesh Mandvekar fa71504518
[CI:BUILD] followup PR for fcos with podman-next
Followup on #19477

Remove commented out cirrus task for fcos image build with podman-next
and add 2 github actions: 1 for running a simple uni-arch image build
on every PR and another to actually build multiarch images and push to
quay after merge.

`podman --version` will also include git short sha for clarity.

[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-09-19 10:19:53 -04:00