Commit graph

4210 commits

Author SHA1 Message Date
Brent Baude
320dcc8034
Merge pull request #28775 from Honny1/skip-pesto-tests
Skip pasta forwarder tests pending passt SELinux fix
2026-05-26 08:46:28 -05:00
Paul Holzinger
1c6d8a0a89
Merge pull request #28759 from kolyshkin/modernize-3
Assorted go modernize fixes
2026-05-26 12:20:31 +02:00
Jan Rodák
5b98ee331f
Merge pull request #28641 from jiwahn/feat/container-annotation-filter
Feat/container annotation filter
2026-05-26 12:00:40 +02:00
Jan Rodák
3f427f4535
Skip pasta forwarder tests pending passt SELinux fix
The pasta_t SELinux domain is denied { create } for pasta.sock
on ifconfig_var_run_t directories. Disable all pasta forwarder
tests (BATS + e2e) until a new passt release ships the fix.

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-05-25 12:31:26 +02:00
Kir Kolyshkin
329ce86835 test/e2e: modernize
Generated by go1.26.3 fix ./test/e2e/...

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2026-05-22 13:11:01 -07:00
Kir Kolyshkin
7f7b35356f Replace os.Is* error checks with errors.Is
Using os.Is{Exist,NotExist,Permission} checks is not recommended in the
new code (see official documentation). While using it in the existing
code is OK, it may still result in a subtle errors later (for a specific
example of that, see [1]).

Replace those with errors.Is.

Generated by:

	gofmt -r 'os.IsExist(a) -> errors.Is(a, os.ErrExist)' -w .
	gofmt -r 'os.IsNotExist(a) -> errors.Is(a, os.ErrNotExist)' -w .
	gofmt -r 'os.IsPermission(a) -> errors.Is(a, os.ErrPermission)' -w .
	goimports -w .
	git diff vendor test/tools/vendor | patch -p1 -R

[1]: https://github.com/opencontainers/runc/pull/5061
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2026-05-21 13:09:42 -07:00
Jan Rodák
e598657244
Add pasta-based port forwarding for rootless bridge networks
Add rootless_port_forwarder="pasta" option that uses pesto to update
pasta's forwarding table via UNIX socket, preserving source IPs that
rootlessport's userspace proxy masks.

HostIP is stripped from port mappings in the netavark wrapper when
pasta forwarding is active because pesto handles host-side binding
while pasta's splice changes the destination IP that netavark DNAT
expects. Pesto binds both 0.0.0.0 and [::] for dual-stack support.

Fixes: https://redhat.atlassian.net/browse/RUN-2214
Fixes: https://github.com/containers/podman/issues/8193
Fixes: https://redhat.atlassian.net/browse/RUN-3587

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-05-20 14:24:47 +02:00
Jan Rodák
517070e750
Merge pull request #28673 from kyounghunJang/feat/add-volume-prune-dry-run
volume prune: add dry-run support
2026-05-18 19:26:18 +02:00
Byounguk Lee
b50b9c0dbc events: support artifact events with refactored event forwarding
- libpod/events.go & libpod/runtime.go: Added the `Artifact` event type.
  Refactored and deduplicated event forwarding logic by introducing
  `spawnEventForwarder[T any]`, replacing separate goroutine loops for
  images and artifacts. Implemented graceful shutdown and resolved eventer
  initialization race conditions.
- libpod/events: Implemented event filtering by name/ID, updated journald
  and logfile readers/writers for artifact events, and added `Artifact` to
  `ToHumanReadable` formatting.
- cmd/podman: Added shell auto-completion for `artifact=` and `type=artifact` filters.
- docs/test: Documented the `artifact` event type, statuses, and filters in
  `podman-events.1.md`. Added an end-to-end test in `events_test.go` to verify
  event emissions.

Signed-off-by: Byounguk Lee <nimdrak@gmail.com>
2026-05-18 00:05:10 +00:00
KyounghoonJang
3d899a8c25 volume prune: add dry-run support
Add a --dry-run option to show which volumes would be pruned without removing them.

Related: #27838
Signed-off-by: KyounghoonJang <matkimchi_@naver.com>
2026-05-16 19:03:34 +09:00
Jiwoo Ahn
ec583fa17f filters: add annotation filter for containers Fixes: #28562
Signed-off-by: Jiwoo Ahn <ikwydls1314@gmail.com>
2026-05-11 20:24:28 +09:00
iTrooz
f4389592f9 test: ensure complex --output values have correct behaviour
Signed-off-by: iTrooz <hey@itrooz.fr>
2026-05-05 14:19:04 +02:00
Matt Heon
99b2fe252e
Merge pull request #28455 from simonbrauner/fix-filtering-with-negated-labels
Fix filtering with negated labels
2026-04-30 12:08:31 -04:00
Mario Loriedo
15c9ca130f Add command podman system hyperv-prep
Introducing a new `podmand system` subcommand to prepare a Windows host
to run Hyper-V based Podman machines: `hyperv-prep`.

When executed it:
- creates of the registry keys for VSocks
- adds the current user to the Hyper-V administrators group

This command requires an administrator terminal.

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2026-04-29 23:00:29 +02:00
Šimon Brauner
fdd8cc17fa Fix filtering with negated labels
Signed-off-by: Šimon Brauner <sbrauner@redhat.com>
2026-04-29 11:18:03 +02:00
Matt Heon
3bd7bbc0dc
Merge pull request #28413 from simonbrauner/issue-26786
Use AND to combine different volume filter keys
2026-04-28 13:59:42 -04:00
Ashley Cui
bb02e49080 Adjust error messages for new netavark create
c/common uses the new netavark create command, so some of the error messages have slightly changed. Adjust the tests so they pass.

Signed-off-by: Ashley Cui <acui@redhat.com>
2026-04-28 12:43:48 -04:00
Paul Holzinger
50bf7db0d9
test/e2e: fix broken checkpoint tests
On main these tests fail right now due the parallel merge of commit
d01cd46830 ("test: remove outdated checkpoint skip") and commit
1b99ae56b0 ("New images 2026-04-24").

The new crun and/or criu versions in the CI images changed the error
message so adapt to that.

The new full error is:
Error: crun: (00.054135) Error (criu/cgroup.c:1998): cg: cgroupd: recv req error: No such file or directory: OCI runtime attempted to invoke a command that was not found

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-04-28 15:27:02 +02:00
Paul Holzinger
c1d4e1491a
test/e2e: port some checkpoint tests to PodmanExitCleanly
Also remove one podman rm -t0 -fa call, the test cleanup does it already
so no need to do it twice.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-04-28 15:27:02 +02:00
Jan Rodák
30f93025ab
Merge pull request #28556 from Luap99/checkpoint-skip
test: remove outdated checkpoint skip
2026-04-27 15:02:20 +02:00
Paul Holzinger
46aa8b83a4
test: remove outdated checkpoint skip
This should work again with the latest VM images.

Fixes: #26289

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-04-23 20:44:06 +02:00
Paul Holzinger
56a24d5183
fix container inspect output to not escape html chars
The default std json behavior is to escape &, < and >. Because we print
to the terminal we do not want escapes and rather the real chars.

That is what PrintGenericJSON() does but because we have custom
MarshalJSON() overwrite on the type which called json.Marshal() this
option was not carried into that. The inner type must not escape it.

This is not a problem in the other direction because the outer
json.Marshal call will still escape the chars returned from the inner
MarshalJSON() result if needed.

Fixes: #28560

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-04-23 20:12:14 +02:00
Paul Holzinger
2c2ff559bd
Merge pull request #28554 from Luap99/registries-v2
move old registries.conf v1 files to v2
2026-04-23 15:55:43 +02:00
Paul Holzinger
bf76b9133f
move old registries.conf v1 files to v2
The v1 syntax is no longer accepted.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-04-23 13:19:04 +02:00
Nabil Houidi
d44655537e
fix: ensure infra image is set from infra container spec in PodConfigToSpec
fixes #21609

Signed-off-by: Nabil Houidi <35373676+NabilHouidi@users.noreply.github.com>
2026-04-22 23:47:00 +02:00
Brent Baude
2cc3be7332
RUN-4539: Change podman module paths
The podman module paths are moving from github.com/containers/podman to
go.podman.io/podman.  This will help with future mobility.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2026-04-22 14:02:25 -05:00
Brent Baude
2e6f29a2df
RUN-4538: Fix buildah vendoring
This PR reflects the upstream change of moving the buildah module from
github.com/containers/buildah to go.podman.io/buildah.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2026-04-21 14:27:58 -05:00
Jan Kaluza
54d61c2f02 trust: switch policy.json lookup to configfile
Use shared configfile instead of custom policy.json path handling.
This updates ocipull to rely on signature.DefaultPolicy(), removes
explicit SignaturePolicyPath, and replaces trust's custom default-policy
path logic with common configfile code.

Replace hidden `--policypath` with --signature-policy` and require
it for `trust set` command instead of path resolution based on
configfile.

For `trust get`, the `--signature-policy` is optional.

Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
2026-04-20 15:11:22 +02:00
Ygal Blum
8059539425 Quadlet - Support empty source for Mount key
Fixes: #28497

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2026-04-13 17:28:33 -04:00
Lokesh Mandvekar
22054b5180
test: Remove slirp4netns-specific test cases
Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2026-04-13 08:22:35 -04:00
Tom Sweeney
ef7fdbabc4
Merge pull request #28464 from simonbrauner/volume-prune-fix-all-filter
Fix inconsistencies between --all and --filter=all in volume prune
2026-04-10 17:03:31 -04:00
Paul Holzinger
80df8f2f2e
Merge pull request #24126 from inknos/issue-23824
Docker compat: Return null when swappiness is unset instead of -1
2026-04-10 19:04:21 +02:00
Miloslav Trmač
dd0dd6c372
Merge pull request #28459 from Luap99/revert
Revert #28401, show :latest tag in artifact ls output when no explicit tag given
2026-04-08 20:42:30 +02:00
Paul Holzinger
3f2886556b
Merge pull request #28356 from Honny1/fix-remote-build
Remote build: `nTar` secrets with relative paths and ignore bypass
2026-04-08 19:49:48 +02:00
Nicola Sella
8dd7ac5756
Fix: set Swappiness when no mem limits
This hard codes -1 on inspect for Docker's API to return `null` and be compatible

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

Signed-off-by: Nicola Sella <nsella@redhat.com>
2026-04-08 15:10:11 +02:00
Šimon Brauner
4f252be4a0 Fix inconsistencies between --all and --filter=all in volume prune
Signed-off-by: Šimon Brauner <sbrauner@redhat.com>
2026-04-08 14:52:41 +02:00
Paul Holzinger
af4f2be43b
Revert "test(artifact): add e2e test for untagged artifact default tag"
This reverts commit 1d4465abf7.

As discussed on #28401 we should revert these changes.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-04-07 20:56:11 +02:00
Šimon Brauner
98abcdcb19 Use AND to combine different volume filter keys
Fixes: https://github.com/containers/podman/issues/26786

Signed-off-by: Šimon Brauner <sbrauner@redhat.com>
2026-04-07 09:23:22 +02:00
Matt Heon
75d68ea174
Merge pull request #28414 from Honny1/fix-quadlet-lookup-strip
Fix Quadlet `Lookup()` stripping unmatched quotes
2026-03-31 11:14:47 -04:00
Jan Rodák
cf6404f387
Fix Quadlet Lookup() stripping unmatched quotes
Fixes: https://github.com/containers/podman/issues/28409

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-31 10:27:39 +02:00
Matt Heon
e3920188cc
Merge pull request #28408 from jdoss/fix/shell-driver-opts-cross-contamination
Fix shell driver DriverOpts cross-contamination in secret creation
2026-03-30 11:20:11 -04:00
Joe Doss
8b905613b5
Add e2e test for shell driver DriverOpts cross-contamination fix
Verify that creating a secret with driver=shell and no --driver-opts
does not inherit the file driver's default path option. Before the fix,
this produced "invalid shell driver option"; after, it correctly fails
with "missing config value" for unconfigured shell commands.

Signed-off-by: Joe Doss <joe@solidadmin.com>
2026-03-30 08:36:00 -05:00
Devesh B
1d4465abf7 test(artifact): add e2e test for untagged artifact default tag
Verify that artifacts pushed without an explicit tag display "latest"
in the TAG column of `podman artifact ls`.

Signed-off-by: Devesh B <98201065+DeveshB-1@users.noreply.github.com>
2026-03-30 00:16:08 +05:30
Jan Rodák
765ffb9a2e
Consolidate build secret tests and assert no podman-build-secret leak
Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-25 19:01:32 +01:00
Jan Rodák
e18bb9ea8b
Remote build: nTar secrets with relative paths and ignore bypass
When `podman-remote` tars the context, extra `podman-build-secret*` paths were
either dropped by `.dockerignore` (#25314) or archived as absolute paths so
`COPY . .` pulled host-shaped trees into the image (#28334).

Use relative names under the primary context for extra sources and do not apply
`.dockerignore` to those forced entries.

Fixes: https://github.com/containers/podman/issues/25314
Fixes: https://github.com/containers/podman/issues/28334

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-25 15:02:28 +01:00
Paul Holzinger
bb5f759ba8
test/e2e: fix podman pull and run on split imagestore test
We no longer generate a warning for an empty driver in storage.conf so
remove that.

Also update the test to use CONTAINERS_STORAGE_CONF_OVERRIDE instead to
just add a single setting there.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-03-19 21:49:20 +01:00
Paul Holzinger
0147339e8e
Merge pull request #28202 from lsm5/podman6-no-cni-vendor
Podman6: Vendor update w/o CNI + additional cleanups
2026-03-19 21:44:01 +01:00
Paul Holzinger
d2e7e8192e
Merge pull request #28235 from Honny1/volume-prune-docker
`podman volume prune`: match Docker defaults, add `--all` flag
2026-03-19 17:53:18 +01:00
Lokesh Mandvekar
61cb417c26
Remove CNI references from comments
Update comments that reference CNI as a network backend since it
has been removed.

Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2026-03-19 20:26:21 +05:30
Lokesh Mandvekar
8d1f636e40
vendor update without CNI in buildah and container-libs
rootlessport: clarify RootlessCNI comment

Update the comment for the RootlessCNI conditional to clarify that
the flag is for rootless bridge networking, not CNI specifically.
The bool is set when netStatus != nil in slirp4netns and will be
removed when slirp4netns and rootlessport are fully dropped.

Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2026-03-19 20:26:21 +05:30