Commit Graph

6160 Commits

Author SHA1 Message Date
Wolfgang Pross
bfbd0c8960 move IntelRdtClosID to HostConfig
Signed-off-by: Wolfgang Pross <wolfgang.pross@intel.com>
2023-09-27 16:44:13 +00:00
Wolfgang Pross
24b2f829b9 Add test for Intel RDT support
Signed-off-by: Wolfgang Pross <wolfgang.pross@intel.com>
2023-09-27 16:44:13 +00:00
Ygal Blum
f0eb456678 Quadlet container mount - support non key=val options
Some keys, e.g. ro do not have values.
The current implementation crashed looking for the = sign

Externalize findMountType in a new package
Parse mount command using FindMountType
Rebuild parameter string using csv

Add test case and adjust the test framework

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2023-09-27 16:20:00 +03: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
35824b647c Merge pull request #20148 from vrothberg/conmon-env
libpod: pass entire environment to conmon
2023-09-27 05:10:55 -04:00
Valentin Rothberg
7ade972102 libpod: pass entire environment to conmon
Pass the _entire_ environment to conmon instead of selectively enabling
only specific variables.  The main reasoning is to make sure that conmon
and the podman-cleanup callback process operate in the exact same
environment than the initial podman process.  Some configuration files
may be passed via environment variables.  Podman not passing those down
to conmon has led to subtle and hard to debug issues in the past, so
passing all down will avoid such kinds of issues in the future.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-09-26 16:48:52 +02:00
Ed Santiago
e4b7455b72 e2e: ExitCleanly(): manual fixes to get tests working
Commit 2 of 2: fixes to get tests passing

Mostly reverting back to Exit(0) on tests that produce stderr,
adding stderr checks when those are missing.

One pretty big exception: "run check dns" test was completely
broken in many respects. It should never have worked under CNI,
but was passing because nslookup in that alpine image was
checking /etc/hosts. This has been fixed in subsequent alpine
images, which we're now using in this test (CITEST_IMAGE).

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-26 08:47:16 -06:00
Ed Santiago
dbd946a932 e2e: ExitCleanly(): a few more
Commit 1 of 2: automated string replace Exit(0) -> ExitCleanly()

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-26 08:47:16 -06:00
OpenShift Merge Robot
97a02a0362 Merge pull request #20130 from edsantiago/fedoraminimal_safe
e2e: use safe fedora-minimal image
2023-09-25 12:47:19 -04:00
OpenShift Merge Robot
2fef4c7ab8 Merge pull request #20088 from vrothberg/fix-19938
fix handling of static/volume dir
2023-09-25 12:29:58 -04:00
Ed Santiago
ffd67cf75d e2e: use safe fedora-minimal image
PR #20082 bumped fedora-minimal, from f34 to f39. This worked
fine for a few days, then all of a sudden CI started breaking
because the f39 minimal image got rebuilt and repushed without
adduser. #20127 was an emergency fix; this is a stabler fix.

We keep using not-under-our-control container images, and we
keep getting burned when those get updated in nasty ways. Here
we switch to using a tagged & versioned fedora-minimal image
that is under our control.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-25 09:01:53 -06:00
Valentin Rothberg
59e295f2a3 podman build: correct default pull policy
The default pull policy is "missing" not "always".

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-09-25 16:28:53 +02:00
Valentin Rothberg
6293ec2e2d fix handling of static/volume dir
The processing and setting of the static and volume directories was
scattered across the code base (including c/common) leading to subtle
errors that surfaced in #19938.

There were multiple issues that I try to summarize below:

 - c/common loaded the graphroot from c/storage to set the defaults for
   static and volume dir.  That ignored Podman's --root flag and
   surfaced in #19938 and other bugs.  c/common does not set the
   defaults anymore which gives Podman the ability to detect when the
   user/admin configured a custom directory (not empty value).

 - When parsing the CLI, Podman (ab)uses containers.conf structures to
   set the defaults but also to override them in case the user specified
   a flag.  The --root flag overrode the static dir which is wrong and
   broke a couple of use cases.  Now there is a dedicated field for in
   the "PodmanConfig" which also includes a containers.conf struct.

 - The defaults for static and volume dir and now being set correctly
   and adhere to --root.

 - The CONTAINERS_CONF_OVERRIDE env variable has not been passed to the
   cleanup process.  I believe that _all_ env variables should be passed
   to conmon to avoid such subtle bugs.

Overall I find that the code and logic is scattered and hard to
understand and follow.  I refrained from larger refactorings as I really
just want to get #19938 fixed and then go back to other priorities.

https://github.com/containers/common/pull/1659 broke three pkg/machine
tests.  Those have been commented out until getting fixed.

Fixes: #19938
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-09-25 14:14:30 +02:00
OpenShift Merge Robot
919564e1ae Merge pull request #20127 from vrothberg/fix-20119
unbreak CI: useradd not found
2023-09-25 08:10:24 -04:00
Valentin Rothberg
26b5b1dd3c unbreak CI: useradd not found
The fedora minimal 39 image has been updated on the fedora registry and
removed the `useradd` binary.  Since we were pulling by tag and not by
digest, updates to images outside of our control always entail a certain
risk - and now it bit us.

To fix it, try to move as many users of `useradd` to _our_ CITEST_IMAGE
and migrate the code where necessary to this Alpine-based tooling.
However, the Alpine-based `adduser` binary (not useradd!) doesn't work
well when being executed as a non-root user and will just error out.
Hence, move the fedora minimal image back to version 34 which is still
including the `useradd` binary.

Ultimately, all images on public registries should be pulled via digest
to make sure we pin them down.  I refrain from doing this now to make
sure we can cherry-pick this PR to older branches and get things back
into a working state ASAP.

Fixes: #20119
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-09-25 11:48:35 +02:00
OpenShift Merge Robot
f41d536f19 Merge pull request #20089 from edsantiago/e2e_check_stderr__more
e2e: ExitCleanly(): a few more
2023-09-25 04:12:35 -04:00
Peter Werner
f52b02f406 Fix all ports exposed by kube play
Container ports defined with containerPort were exposed by default
even though kubernetes interprets them as mostly informative.
Closes #17028

Signed-off-by: Peter Werner <wpw.peter@gmail.com>
2023-09-23 19:53:46 +02:00
Urvashi Mohnani
e0b44bcf37 Fix farm update to check for connections
Fix farm update to verify a connection exists before
removing or adding it.
Also verify that the farm we want to update exists.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2023-09-22 15:16:21 -04:00
Paul Holzinger
af2665c28a pod rm: do not log error if anonymous volume is still used
This is not really an error, if the anonymous volume is still used then
this likely means it was transferred to another container with
--volumes-from. This is what the user wants and it is not like the user
can act on the logged error anyway. Once the last user of the volume is
removed it will be removed correctly.

see https://github.com/containers/podman/pull/19637

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-09-22 14:44:14 +02:00
Ed Santiago
4916f7d771 e2e: ExitCleanly(): manual fixes to get tests passing
Commit 2 of 2: steps to make tests work under ExitCleanly()

Mostly adding "-q" to push/pull, but also:

 - revert ExitCleanly(), and add error-message checks
   if absent;

 - fix a test that was completely nonfunctional from
   Day One: test was getting skipped because registry
   couldn't start, because of missing ":z"s in mount option.
   Fixed, and removed the bypass;

 - use built-in skopeo, not pulled-container skopeo. Skopeo
   is already a requirement for system tests.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-22 06:10:02 -06:00
Ed Santiago
8e743fa1dd e2e: ExitCleanly(): a few more
Commit 1 of 2: automated string replace Exit(0) -> ExitCleanly()

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-22 06:05:27 -06:00
OpenShift Merge Robot
da6ebeb511 Merge pull request #20086 from giuseppe/fix-mount-cgroupfs-without-netns
specgen, rootless: fix mount of cgroup without a netns
2023-09-22 05:08:12 -04:00
OpenShift Merge Robot
8576a36f4c Merge pull request #20083 from giuseppe/fix-shared-propagation-test
test: fix rootless propagation test
2023-09-22 04:10:07 -04:00
Giuseppe Scrivano
83b6975d10 test: fix rootless propagation test
the test works only when the user owns the outer mount namespace,
which is likely not the case when running in rootless mode.

Closes: https://github.com/containers/podman/issues/20076

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-21 21:33:27 +02:00
OpenShift Merge Robot
aa152a7796 Merge pull request #20082 from giuseppe/test-update-fedora-minimal
test: update fedoraMinimal version
2023-09-21 13:19:39 -04:00
Giuseppe Scrivano
682ca6b2ea test: update fedoraMinimal version
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-21 15:40:21 +02:00
Giuseppe Scrivano
8d3010d06b specgen, rootless: fix mount of cgroup without a netns
commit cf364703fc changed the way
/sys/fs/cgroup is mounted when there is not a netns and it now honors
the ro flag.  The mount was created using a bind mount that is a
problem when using a cgroup namespace, fix that by mounting a fresh
cgroup file system.

Closes: https://github.com/containers/podman/issues/20073

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-21 13:20:09 +02:00
Daniel J Walsh
39ba5ff24b Automatically remove anonymous volumes when removing a container
If you are running a quadlet with anonymous volumes, then the volume
will leak ever time you restart the service.  This change will
cause the volume to be removed.

Fixes: https://github.com/containers/podman/issues/20070

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-09-21 07:08:08 -04:00
OpenShift Merge Robot
e209c40ad6 Merge pull request #20071 from edsantiago/e2e_check_stderr__kubegen
e2e: ExitCleanly(): generate_kube_test.go
2023-09-21 05:25:31 -04:00
Ed Santiago
c69873d674 e2e: ExitCleanly(): generate_kube_test.go
Commit 3 of 3: make tests pass.

This is the tricky one requiring manual effort. For the most part,
all I did was replace ALPINE/"alpine" with CITEST_IMAGE so we
don't get "Pulling..." messages. Also added warning-message checks
to two truncation tests

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-20 14:41:41 -06:00
Ed Santiago
841cfa8026 e2e: generate kube -> kube generate
Commit 2 of 3:
 - rewrite all but one commands, from "generate kube" to "kube g".
 - remove "podman generate kube" from all It()s.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-20 14:39:08 -06:00
Ed Santiago
d1f86d524b e2e: ExitCleanly(): generate_kube_test.go
Commit 1 of 3: automated string replace of Exit(0) -> ExitCleanly()

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-20 14:38:45 -06:00
Ed Santiago
62e13bec70 e2e: ExitCleanly(): Fixes for breaking tests
Commit 3 of 3, and this one's a doozy. Sorry.

The main problem was that "kube play" re-pulled images.
To solve that, I changed PullPolicy to "missing" and,
where possible, replaced alpine/busybox with CITEST_IMAGE
because that one seems to be cached better? I couldn't
figure out why, but even without the PullPolicy change
everything worked better with CITEST_IMAGE. And it's
a better image to use anyway.

Other lesser changes (like adding "-q") as needed.

Also:
 - in four tests that use "replica", we can't use ExitCleanly()
   because of a run-time warning. Add a check for that warning.
 - remove a workaround for a long-closed issue (c/storage 1232)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-20 11:42:04 -06:00
Ed Santiago
09c3ac48fc play kube -> kube play
Commit 2 of 3:
 - rewrite all commands but one, from "play kube" to "kube play".
   Considered renaming the file but no, maybe later.
 - remove "podman play kube" from all It()s. "Podman kube play" is
   already in the Description; unnecessary redundancy is unnecessary.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-20 11:34:56 -06:00
Ed Santiago
e83ced8a03 e2e: ExitCleanly(): play_kube_test.go
Commit 1 of 3: automated string replace of Exit(0) -> ExitCleanly()

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-20 11:34:25 -06:00
OpenShift Merge Robot
639eb52c89 Merge pull request #20062 from vrothberg/syslog-fix
pass --syslog to the cleanup process
2023-09-20 11:57:33 -04:00
Valentin Rothberg
4652a2623f pass --syslog to the cleanup process
The --syslog flag has not been passed to the cleanup process (i.e.,
conmon's exit args) complicating debugging quite a bit.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-09-20 15:37:07 +02:00
OpenShift Merge Robot
370937d6c1 Merge pull request #20057 from vrothberg/fix-auto-update-test
fix --authfile auto-update test
2023-09-20 15:05:51 +02:00
OpenShift Merge Robot
8f17ac5c17 Merge pull request #19997 from cgiradkar/Issue_15588
Change priority for cli flags for remotely operating Podman
2023-09-20 14:53:35 +02:00
Valentin Rothberg
1cbe692ded fix --authfile auto-update test
The test started to fail in gating and on workstations.  It turned out
that pushing the test image to the registry recompresses it which in
turn may change the digest.  The digest now started to change; computing
it depends on the toolchain so the test passed before by pure luck it
seems.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-09-20 13:46:15 +02:00
OpenShift Merge Robot
e80d9b7f85 Merge pull request #20036 from edsantiago/bats_check_stderr
systests: tighter checks for unwanted warnings
2023-09-20 12:25:20 +02:00
Chetan Giradkar
8c95aa4021 Change priority for cli-flags for remotely operating Podman
cli flags couldn't override the active-destination when env variables were set. As a remedy, the precedence of cli flags has been changed.

Signed-off-by: Chetan Giradkar <cgiradka@redhat.com>
2023-09-20 10:49:33 +01:00
OpenShift Merge Robot
07f8d4451a Merge pull request #20048 from edsantiago/e2e_check_stderr__more
e2e: ExitCleanly(): more low-hanging fruit
2023-09-20 10:25:11 +02:00
Ed Santiago
0ac98176be e2e: ExitCleanly(): more low-hanging fruit
Commit 2 of 2: minor tweaks to get tests passing

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-19 18:09:08 -06:00
Ed Santiago
a50fb7e061 e2e: ExitCleanly(): more low-hanging fruit
Commit 1 of 2.

More easy ones: test files that either work with ExitCleanly()
or require very, very simple tweaks.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-19 18:09:08 -06:00
renovate[bot]
1908663f1e fix(deps): update module github.com/onsi/ginkgo/v2 to v2.12.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-19 23:00:33 +00:00
Ed Santiago
ff07abea47 systests: tighter checks for unwanted warnings
Part of RUN-1906.

Followup to #19878 (check stderr in system tests): allow_warnings()
and require_warning() functions to make sure no unexpected messages
fall through the cracks.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-19 15:22:58 -06:00
Ed Santiago
4fca726f7b e2e: ExitCleanly(): low-hanging fruit, part 2
Commit 2 of 2: manual tweaks to get tests passing. Very trivial,
the vast majority of these test files worked with no changes.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-19 10:26:06 -06:00
Ed Santiago
64c46c4297 e2e: ExitCleanly(): low-hanging fruit, part 1
Continuing work on RUN-1907: huge set of files, but not
as intimidating as it looks.

Commit 1 of 2: mindless replace of Exit(0) with ExitCleanly()

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-19 10:26:06 -06:00
Ed Santiago
aec58f515e systests: clean up after tests; fix missing path in logs
Followup to #20016:
- remove obsolete (misleading) comment
- prune dangling <none>:<none> image

Also, in kube test, rmi pause_image to avoid nasty red warnings

Also, ouch, fix a stupid that I introduced in #19878: the PODMAN
command path got dropped from log messages.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-19 08:40:13 -06:00