20164 Commits

Author SHA1 Message Date
b0f77acd12 e2e: diff_test: use ExitCleanly()
Ongoing steps toward RUN-1907: replace Exit(0) with ExitCleanly()

One manual fix: adding -q to podman commit, to avoid progress messages

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-12 13:47:35 -06:00
e8c4d7966b Merge pull request #19952 from mheon/init_cannot_modify
[CI:DOCS] The `podman init` command cannot modify containers.
2023-09-12 21:33:53 +02:00
89d951aa9b Merge pull request #19948 from edsantiago/e2e_check_stderr__more
e2e: more ExitCleanly(): low-hanging fruit
2023-09-12 21:31:16 +02:00
f0557a27d7 Merge pull request #19932 from lsm5/podmansh-timeout
Podmansh: use podmansh_timeout
2023-09-12 21:23:31 +02:00
c1703f7b55 Merge pull request #19950 from Luap99/vendor-common
bump c/common to latest main
2023-09-12 20:07:33 +02:00
5920bfa2ef The podman init command cannot modify containers.
`podman init` is a debugging command for inspecting a container's
OCI spec before it runs, to look for anything suspicious. It is
not capable of supporting modifications to that spec, as it
starts Conmon and thus the OCI runtime, so the spec has already
been loaded by the time `podman init` is run.

Signed-off-by: Matt Heon <mheon@redhat.com>
2023-09-12 13:28:42 -04:00
639a1a0293 bump c/common to latest main
Includes the fixes for the search filter changes.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-09-12 16:03:40 +02:00
806c5de12a Podmansh: use podmansh_timeout
podmansh_timeout is now a configurable option in containers.conf.

[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-09-12 09:18:24 -04:00
eefaa512af e2e: more ExitCleanly(): low-hanging fruit
Ongoing steps toward RUN-1907: replace Exit(0) with ExitCleanly()

A handful of test files with trivial command-line replacement,
and no manual muckery (aside from includes).

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-12 06:21:00 -06:00
7da91addc8 Merge pull request #19579 from danishprakash/generate-daemonset-support
kube: add DaemonSet support for generate
2023-09-12 10:16:03 +02:00
91f3f3a523 Merge pull request #19924 from edsantiago/e2e_check_stderr__commit
e2e: commit_test: use ExitCleanly()
2023-09-12 09:55:02 +02:00
cdcf18b862 kube: add DaemonSet support for generate
Signed-off-by: danishprakash <danish.prakash@suse.com>
2023-09-12 10:30:57 +05:30
e9673502e4 Merge pull request #19929 from rhatdan/VENDOR
vendor of containers/(common, storage, image)
2023-09-12 03:05:36 +02:00
22003cbb8c Merge pull request #19923 from edsantiago/e2e_check_stderr__cleanup
e2e: use ExitCleanly() in cleanup_test.go
2023-09-11 21:04:53 +02:00
75b4679a73 vendor of containers/(common, storage, image)
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-09-11 13:52:23 -04:00
cbb955811c Merge pull request #19245 from mheon/fix_19237
Ensure HC events fire after logs are written
2023-09-11 19:47:37 +02:00
5e8c75e4a9 Merge pull request #19926 from edsantiago/e2e_check_stderr__clone
e2e: container_clone_test.go: use ExitCleanly()
2023-09-11 19:32:08 +02:00
325736fcb7 Merge pull request #19914 from umohnani8/term
Add support for kube TerminationGracePeriodSeconds
2023-09-11 19:24:18 +02:00
fd886d6579 Merge pull request #19927 from giuseppe/move-oom-clamp-at-start-time
libpod: move oom_score_adj clamp to init
2023-09-11 19:21:40 +02:00
19bd9b33dd libpod: move oom_score_adj clamp to init
commit 8b4a79a744ac3fd176ca4dc0e3ae40f75159e090 introduced
oom_score_adj clamping when the container oom_score_adj value is lower
than the current one in a rootless environment.  Move the check to
init() time so it is performed every time the container starts and not
only when it is created.  It is more robust if the oom_score_adj value
is changed for the current user session.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-11 17:04:37 +02:00
4f017236ef e2e: commit_test: use ExitCleanly()
Ongoing steps toward RUN-1907: replace Exit(0) with ExitCleanly()

Clean command-line replace, but required adding "-q" (quiet)
to all commit commands. Except one, on which I added tests
for the expected progress messages.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-11 08:07:24 -06:00
3a4be5e904 e2e: container_clone_test.go: use ExitCleanly()
Ongoing steps toward RUN-1907: replace Exit(0) with ExitCleanly()

Clean command-line replace, with manual tweaks to two tests:

 * clone to a pod: revert to just Exit(0), because podman issues
   a namespace warning

 * --destroy --force : run "top" in container, not default (shell),
   to avoid the 10-second SIGKILL fallback warning

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-11 07:59:32 -06:00
8cb14e54a5 e2e: use ExitCleanly() in cleanup_test.go
Ongoing steps toward RUN-1907: replace Exit(0) with ExitCleanly()

Clean command-line replace.

Also, fix up the Containerized and Debian exceptions in matcher.
I was in a huge rush Thursday night when I added the Debian
exception. This, I hope, makes it slightly easier to understand
the cases where we don't check stderr.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-09-11 06:33:18 -06:00
925794c6aa Ensure HC events fire after logs are written
HC events were firing as part of the `exec` call, before it had
even been decided whether the HC succeeded or failed. As such,
the status was not going to be correct any time there was a
change (e.g. the first event after a container went healthy to
unhealthy would still read healthy). Move the event into the
actual Healthcheck function and throw it in a defer to make sure
it happens at the very end, after logs are written.

Ignores several conditions that did not log previously (container
in question does not have a healthcheck, or an internal failure
that should not really happen).

Still not a perfect solution. This relies on the HC log being
written, when instead we could just get the status straight from
the function writing the event - so if we fail to write the log,
we can still report a bad status. But if the log wasn't written,
we're in bad shape regardless - `podman ps` would disagree with
the event written, for example.

Fixes #19237

Signed-off-by: Matt Heon <mheon@redhat.com>
2023-09-11 08:02:46 -04:00
adc45ef887 Merge pull request #19916 from eriksjolund/fix-docs-podman-systemd-unit-equivalents
[CI:DOCS] podman-systemd.unit: fix equivalents
2023-09-11 11:19:28 +02:00
65a64da271 [CI:DOCS] podman-systemd.unit: fix equivalents
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2023-09-11 07:41:10 +02:00
8acd66c115 Merge pull request #19888 from giuseppe/fix-pod-lifecycle
fix pod cgroup lifecycle
2023-09-10 20:36:21 -04:00
d9a85466a0 Add support for kube TerminationGracePeriodSeconds
Add support to kube play to support the TerminationGracePeriodSeconds
fiels by sending the value of that to podman's stopTimeout.
Add support to kube generate to generate TerminationGracePeriodSeconds
if stopTimeout is set for a container (will ignore podman's default).

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2023-09-10 16:41:24 -04:00
8d37db75ad Merge pull request #19910 from Daskan/main
[CI:DOCS] Update podman-kube-play.1.md.in
2023-09-10 20:49:58 +02:00
51d01dd38e Merge pull request #19907 from n1hility/breakout-altbuild
Split up alt binaries to speed up build
2023-09-10 05:49:09 +02:00
5eb0a53a0a Update podman-kube-play.1.md.in
To avoid the error:
`Error: unable to read YAML as Kube Pod: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal object into Go struct field Container.spec.containers.command of type string`

Also makes it easier to understand as you only need the image parameter.

Signed-off-by: Daskan <kevin81991@web.de>
2023-09-09 21:41:41 +02:00
92bdd912b2 Merge pull request #19891 from edsantiago/run_rmi_warn
run --rmi: "cannot remove" is a warning, not an error
2023-09-09 10:20:49 -04:00
745201ea23 Merge pull request #19902 from giuseppe/fix-pod-run-with-mounts
pod: fix duplicate volumes from containers.conf
2023-09-09 10:09:25 -04:00
c2cd93cdc2 Split up alt binaries to speed up build
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2023-09-08 23:57:20 -05:00
7bf9f302a3 Switch installer task to EC2
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2023-09-08 21:36:39 -05:00
ab5ca5b69c Merge pull request #19895 from edsantiago/ci_test_skipper_fix
CI test runner: upgrade tests rely on system tests
2023-09-08 11:36:48 -04:00
fbbad04398 pod: fix duplicate volumes from containers.conf
If some volumes are specified in containers.conf, they are currently
added twice to the containers spec causing the container to fail:

$ head -n2 ~/.config/containers/containers.conf
[containers]
volumes = ["/tmp:/tmp"]
$ podman pod create --name foo
7ac7f97f9b74a596332483e4a13e58cb9c8d997e9c5baae46804ae0acc26cbc6
$ podman run --pod=foo alpine true
Error: "/tmp": duplicate mount destination

The fix is to ignore the setting from containers.conf when setting the
pod default configuration.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-08 16:02:55 +02:00
0c75eac637 tests: add test for pod cgroups
This test checks that the pod cgroups are created and that the limits
set for a pod cgroup are enforced also after a reboot.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-08 14:58:48 +02:00
b8f6a12d01 libpod: create the cgroup pod before containers
When a container is created and it is part of a pod, we ensure the pod
cgroup exists so limits can be applied on the pod cgroup.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-08 14:58:48 +02:00
331b3c216d cmd, specgen: allow cgroup resources without --infra
When the infra container is not created, we can still set limits on
the pod cgroup.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-08 14:58:48 +02:00
83334fb4e7 specgen: allow --share-parent with --infra=false
This allows to use --share-parent with --infra=false, so that the
containers in the pod can share the parent cgroup.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-08 14:58:48 +02:00
5de8f4aba0 libpod: allow cgroup path without infra container
a pod can use cgroups without an infra container.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-08 14:58:48 +02:00
5121c9eb0e libpod: check if cgroup exists before creating it
do not create the pod cgroup if it already exists.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-08 14:58:48 +02:00
38209ef49d libpod: refactor platformMakePod signature
accept only the resources to be used by the pod, so that the function
can more easily be used by a successive patch.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-08 14:58:48 +02:00
627ac1c96b libpod: destroy pod cgroup on pod stop
When the pod is stopped, we need to destroy the pod cgroup, otherwise
it is leaked.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-08 14:58:48 +02:00
9a347619d8 utils: export MoveUnderCgroup
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-08 14:58:47 +02:00
556db46a68 libpod: refactor code to new function
move the code to remove the pod cgroup to a separate function.  It is
a preparation for the next patch.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2023-09-08 14:58:44 +02:00
f8e1ec731e Merge pull request #19897 from edsantiago/e2e_check_stderr_checkpoint
e2e: use ExitCleanly() in checkpoint tests
2023-09-08 06:57:57 -04:00
7524753efb Merge pull request #19896 from baude/issue17019
[CI:DOCS]Remove use of --latest|-l from tutorial
2023-09-08 06:56:40 -04:00
6ee8f73d41 Merge pull request #19885 from rhatdan/kube
Add support for kube  securityContext.procMount
2023-09-08 06:56:05 -04:00