19039 Commits

Author SHA1 Message Date
0372bf4bdd systests: minimize race-condition window
Reduce sleep-loop time in logs test, from 1s to 0.1s,
to make 'podman stop' take effect more quickly. With 1s,
and testing with 1s resolution, we get flakes.

Fixes: #17826

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-31 06:38:17 -06:00
b7d4da671b Merge pull request #18734 from edsantiago/image-rm-race
e2e: make BuildImage parallel-safe
2023-05-31 05:33:36 -04:00
c9c5cb2224 Merge pull request #18741 from containers/renovate/github.com-burntsushi-toml-1.x
fix(deps): update module github.com/burntsushi/toml to v1.3.0
2023-05-30 15:31:52 -04:00
710315d33c Merge pull request #18577 from rhatdan/build
Support podman --remote when Containerfile is not in context directory
2023-05-30 13:53:02 -04:00
f48fa11131 fix(deps): update module github.com/burntsushi/toml to v1.3.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-30 16:13:20 +00:00
fa61bb2594 Merge pull request #18736 from Luap99/completion-panic
completion: fix panic in simplePathJoinUnix()
2023-05-30 12:11:59 -04:00
77bd041a96 Merge pull request #18731 from containers/renovate/github.com-stretchr-testify-1.x
Update module github.com/stretchr/testify to v1.8.4
2023-05-30 11:03:18 -04:00
88e78456db e2e: make BuildImage parallel-safe
"image rm concurrent" test is still failing, even after #18664:

    Error: no contents in "/tmp/podman_test967723851/Dockerfile"

Probable cause: the images are built in parallel, and p.BuildImage()
writes one single Dockerfile. (This almost certainly renders the
test less effective than intended, since the generated images
might end up being identical).

Solution: write and use a uniquely-named Dockerfile

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-30 08:16:26 -06:00
370e1132ce completion: fix panic in simplePathJoinUnix()
When we do path completion in images a user could try to complete a
simple relative path, e.g. podman run $IMAGE e... should complete to etc
if this path exists in the image. Right now we panic in this case as the
current check didn't account for an empty string in simplePathJoinUnix().
In such a case return the path directly because we can not alter what
the user typed on the cli and must return a path without slash as well
in order for the shell to suggest the completion.

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2209809

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-05-30 16:09:19 +02:00
0ab95af371 Merge pull request #18729 from containers/renovate/github.com-rootless-containers-rootlesskit-1.x
Update module github.com/rootless-containers/rootlesskit to v1.1.1
2023-05-30 08:36:43 -04:00
46456f5f15 Update module github.com/stretchr/testify to v1.8.4
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-30 11:05:50 +00:00
01012a0807 Update module github.com/rootless-containers/rootlesskit to v1.1.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-30 08:19:36 +00:00
8b2adb836f Merge pull request #18728 from sstosh/typo-hack-registry
hack: fix typo in hack/podman-registry
2023-05-30 04:17:57 -04:00
e3240c2fb4 hack: fix typo in hack/podman-registry
hack/podman-registry --help option does not exist.
We need to use -h option when we want to see the usage message.

[NO NEW TESTS NEEDED]

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2023-05-30 11:47:10 +09:00
e7dc5074a3 Merge pull request #18681 from Luap99/reexec-signals
pkg/rootless: correctly handle proxy signals on reexec
2023-05-27 17:19:58 -04:00
ed1c176f63 Merge pull request #18707 from lsm5/bump-gvisor-and-fix-packit
RPM: bump gvisor-tap-vsock subpackage and fix packit scripts
2023-05-27 17:04:09 -04:00
71c65c27d3 Merge pull request #18678 from edsantiago/gomd2man-workaround
Man pages: fix broken tables
2023-05-27 16:40:52 -04:00
e6bfc81a8f RPM: bump gvisor-tap-vsock subpackage and fix packit scripts
gvisor-tap-vsock:
- bump to v0.6.1
- installs /usr/libexecdir/podman/gvforwarder

packit:
- fix pre-sync action in propose-downstream
Ref: https://dashboard.packit.dev/results/propose-downstream/2581

cleanup:
- remove `contrib/spec/python-podman.spec.in`. No longer needed.

[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-05-26 14:32:52 -04:00
dfba6ddd4c Man pages: fix broken tables
Work around a go-md2man bug, and add a check script to make sure
this doesn't hit us again.

Background: go-md2man can't deal with a left-hand column > 31 chars.
It produces man pages that look like:

    | Something With >31 Character |                |
    |                              | ..description  |

(should be all on one row). It also has trouble when the vertical
bars are misaligned: it completely removes the right-hand side.

There's almost certainly a better solution: fix go-md2man, or
use a different conversion tool, or maybe even pre/postprocess.
But this is a quick interim solution.

Sorry for the perl. This could be done in bash/sed/awk/grep,
but not with any sort of sane error messages.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-26 06:08:14 -06:00
1210efc44d Merge pull request #18689 from 89luca89/fix/filter_flags
fix: move filter flags from StringSliceVar to StringArrayVar
2023-05-26 07:57:51 -04:00
e7ef259cb6 Merge pull request #18671 from vrothberg/RUN-1776
kube play: add exit-code propagation
2023-05-26 04:57:24 -04:00
5b2d963c44 test/e2e: add regression testing for comma-containing labels
Signed-off-by: Luca Di Maio <luca.dimaio1@gmail.com>
2023-05-25 22:56:27 +02:00
047a4bc830 fix: volume create filters
Signed-off-by: Luca Di Maio <luca.dimaio1@gmail.com>
2023-05-25 21:34:53 +02:00
0357881075 Merge pull request #18687 from lsm5/packit-downstream-followup
[CI:BUILD] Packit: set propose-downstream action type to pre-sync
2023-05-25 12:38:46 -04:00
0be9887afc fix: move filter flags from StringSliceVar to StringArrayVar
Signed-off-by: Luca Di Maio <luca.dimaio1@gmail.com>
2023-05-25 16:53:14 +02:00
6bc52c9c5e pkg/rootless: correctly handle proxy signals on reexec
There are quite a lot of places in podman were we have some signal
handlers, most notably libpod/shutdown/handler.go.

However when we rexec we do not want any of that and just send all
signals we get down to the child obviously. So before we install our
signal handler we must first reset all others with signal.Reset().

Also while at it fix a problem were the joinUserAndMountNS() code path
would not forward signals at all. This code path is used when you have
running containers but the pause process was killed.

Fixes #16091
Given that signal handlers run in different goroutines parallel it would
explain why it flakes sometimes in CI. However to my understanding this
flake can only happen when the pause process is dead before we run the
podman command. So the question still is what kills the pause process?

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-05-25 16:48:15 +02:00
85b4c896bd [CI:BUILD] Packit: set propose-downstream action type to pre-sync
Also address review concerns in pr#18675.

[NO NEW TESTS NEEDED]

Co-authored-by: Chris Evich <cevich@redhat.com>
Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-05-25 09:26:35 -04:00
8f94a4775a [CI:DOCS] fix Quadlet man page rendering
Fixes: https://github.com/containers/podman/pull/18671#pullrequestreview-1442193542
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-05-25 14:46:35 +02:00
29f7c494ee Quadlet: kube: use ExecStopPost
Use ExecStopPost instead of ExecStop to make sure containers, pods, etc.
are all cleaned up even in case of an error.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-05-25 14:46:35 +02:00
6487d9c11a Quadlet: kube: add ExitCodePropagation field
Add a new field `ExitCodePropagation` field to allow for configuring the
newly added functionality of controlling how the main PID of a kube
service exits.

Jira: issues.redhat.com/browse/RUN-1776
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-05-25 14:46:35 +02:00
08b0d93ea3 kube play: exit-code propagation
Implement means for reflecting failed containers (i.e., those having
exited non-zero) to better integrate `kube play` with systemd.  The
idea is to have the main PID of `kube play` exit non-zero in a
configurable way such that systemd's restart policies can kick in.

When using the default sdnotify-notify policy, the service container
acts as the main PID to further reduce the resource footprint.  In that
case, before stopping the service container, Podman will lookup the exit
codes of all non-infra containers.  The service will then behave
according to the following three exit-code policies:

 - `none`: exit 0 and ignore containers (default)
 - `any`: exit non-zero if _any_ container did
 - `all`: exit non-zero if _all_ containers did

The upper values can be passed via a hidden `kube play
--service-exit-code-propagation` flag which can be used by tests and
later on by Quadlet.

In case Podman acts as the main PID (i.e., when at least one container
runs with an sdnotify-policy other than "ignore"), Podman will continue
to wait for the service container to exit and reflect its exit code.

Note that this commit also fixes a long-standing annoyance of the
service container exiting non-zero.  The underlying issue was that the
service container had been stopped with SIGKILL instead of SIGTERM and
hence exited non-zero.  Fixing that was a prerequisite for the exit-code
propagation to work but also improves the integration of `kube play`
with systemd and hence Quadlet with systemd.

Jira: issues.redhat.com/browse/RUN-1776
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-05-25 14:46:34 +02:00
6dbc138339 prune exit codes only when container doesn't exist
Make sure to prune container exit codes only when the associated
container does not exist anymore.  This is needed when checking if any
container in kube-play exited non-zero and a building block for the
below linked Jira card.

[NO NEW TESTS NEEDED] - there are no unit tests for exit code pruning.

Jira: https://issues.redhat.com/browse/RUN-1776
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-05-25 13:14:27 +02:00
688e6dbef1 Merge pull request #18640 from HirazawaUi/add-pasta-to-podman-info
podman: Add pasta to podman info
2023-05-25 06:55:04 -04:00
977b3cdbf6 podman: Add pasta to podman info
[NO NEW TESTS NEEDED]

Fixes: #18561

Signed-off-by: binghongtao <695097494plus@gmail.com>
2023-05-25 00:39:52 +08:00
47ac6c4cbe Merge pull request #18674 from edsantiago/revert_17796
Revert "test/system/255-auto-update.bats: add debug logs"
2023-05-24 12:29:01 -04:00
74d804d1ca Merge pull request #18465 from lsm5/packit-downstream-sync
[CI:BUILD] Packit: add jobs for downstream Fedora package builds
2023-05-24 10:53:57 -04:00
373919ca0a Revert "test/system/255-auto-update.bats: add debug logs"
RHEL gating tests failing, because (sigh) journalctl doesn't
work rootless on RHEL.

I think the flake is fixed anyway, so we don't need this.

This reverts commit ba141adce489a0188b91dad36f055607b23b72cc.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-24 07:41:57 -06:00
86746c067f Merge pull request #18670 from ygalblum/quadlet-kube-podman-args
Quadlet - add support for PodmanArgs to all groups
2023-05-24 04:43:21 -04:00
901900530a Quadlet - add support for PodmanArgs to all groups
PodmanArgs allows users to pass arguments not explicitly supported by
Quadlet.

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2023-05-24 10:05:02 +03:00
6003dca9c7 [CI:BUILD] Packit: add jobs for downstream Fedora package builds
Get rid of `podman.spec.rpkg` in favour of
`rpm/podman.spec` which gets synced with fedora dist-git on every
upstream release. The version in the new spec file is set to `0` by
default and gets updated by packit automatically on every packit task.

For local manual rpm builds using the spec, the helper script in the
`rpm/` subdir will update the Version field with the latest version
found in the upstream repo.

Packit will automatically create a PR on fedora dist-git on every new
upstream release. A sample PR will look like:
https://src.fedoraproject.org/rpms/container-selinux/pull-request/10#

A dry run for this can be triggered using:
`$ packit propose-downstream --local-content`

To run this command locally, you would need to have your packit
user-configuration-file set.
Ref: https://packit.dev/docs/configuration/#user-configuration-file

along with a fedora api key created at:
https://src.fedoraproject.org/settings#nav-api-tab with sufficient ACLs.

Also includes a revised `package` Makefile target which will build rpms
using `rpm/podman.spec`. Fixes: #18421.

[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-05-23 16:41:46 -04:00
c08ecd6cb3 Merge pull request #18664 from mtrmac/rm-concurrent-flake
In a concurrent removal test, don't remove concurrently with builds
2023-05-23 16:05:33 -04:00
fb8a124905 In a concurrent removal test, don't remove concurrently with builds
This test is intended to test concurrent removals, so don't
risk a removal breaking a build.

Fixes #18659 .

(The sitaution that removals can break a build WIP is a real
problem that should be fixed, but that's not a target of this test.)

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2023-05-23 18:14:33 +02:00
c894a12b74 Merge pull request #18651 from containers/renovate/requests-2.x
chore(deps): update dependency requests to ~=2.31.0
2023-05-23 07:45:32 -04:00
fe64f79469 Merge pull request #18636 from mtrmac/cleanupStorage-error
Fix, and reduce repetitiveness, in container cleanup error handling
2023-05-23 07:43:01 -04:00
d7b811677e Merge pull request #18652 from anjannath/update-qemu
pkginstaller: bump Qemu to version 8.0.0
2023-05-23 07:11:14 -04:00
acad53ad64 Merge pull request #18653 from edsantiago/unlinkat-ebusy-bail
TEMPORARY(?) instrumentation for unlinkat-ebusy
2023-05-23 06:36:11 -04:00
ca7d0128b2 Merge pull request #18619 from vyasgun/pr/events-volume-name
fix: event --filter volume=vol-name should compare the event name with volume name
2023-05-23 02:42:57 -04:00
032d4a95f0 Consolidate error handling in Runtime.removeContainer
Use a helper to handle the cleanupErr logic instead of
copy&pasting it EIGHT times.

Also modifies the returned errors to be wrapped with a context,
and changes the text of the logged errors a bit.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2023-05-22 19:14:06 +02:00
f556e58bb0 Consolidate error handling in Container.cleanupStorage
Use a shared helper instead of copy&pasting the handling
of cleanupErr EIGHT times.

This changes the wording of logged error text, and the error
in one case, a bit.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2023-05-22 19:14:06 +02:00
4969c552ec Fix reporting errors on container unmount
[NO NEW TESTS NEEDED]
... because testing this would require us to intentionally
create an inconsistent state, which should ideally not be possible...
(and because at this point I don't even know what the reported failure
was.)

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2023-05-22 19:11:56 +02:00