Commit Graph

7610 Commits

Author SHA1 Message Date
Ricardo Branco
2d5f5395c2 test/system: Fix 260-sdnotify being silently skipped
PODMAN_CMD is uninitialized until basic_setup() runs, causing
podman_runtime() to invoke an empty command and fall back to [null].

Call basic_setup() before the runtime check to ensure PODMAN_CMD is
populated before use.

Signed-off-by: Ricardo Branco <rbranco@suse.de>
2026-04-05 16:43:40 +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
66c4c9c6b5 Merge pull request #28390 from crawfordxx/fix-docker-compat-stopped-state-28359
compat: map internal states to Docker equivalents in LibpodToContainer
2026-03-31 11:59:23 +02: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
9bea6e759a Merge pull request #28382 from himgov/issue/28369
Add a Status filter to podman quadlet list #28369
2026-03-30 13:25:04 -04: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
crawfordxx
fdf663b079 compat: map internal states to Docker equivalents in LibpodToContainer
The Docker compat /containers/json endpoint was leaking podman-internal
container states ("stopped", "stopping") that are not valid Docker API
states. Docker clients that strictly validate the State field against
the documented set ("created", "running", "paused", "restarting",
"exited", "removing", "dead") would fail with deserialization errors.

LibpodToContainerJSON already performs this mapping correctly:
- "stopped" → "exited"
- "stopping" → "running"

Apply the same remapping in LibpodToContainer using a switch statement
so the list endpoint behaves consistently with the inspect endpoint.

Add a test assertion to the compat /containers/json test to verify
that a stopped container is reported with State="exited".

Fixes #28359

Signed-off-by: crawfordxx <crawfordxx@users.noreply.github.com>
2026-03-29 12:04:46 +08:00
Himanshu Jaiswal
04935fe867 Add a Status filter to podman quadlet list
Adds --filter status=<value> support to podman quadlet list.
Also adds shell completion for the status filter values.

Signed-off-by: Himanshu Jaiswal <himanshu.bw5@gmail.com>
2026-03-28 12:05:46 +00:00
renovate[bot]
e50974edc9 chore(deps): update dependency requests to ~=2.33.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-25 17:59:42 +00:00
Jan Rodák
5260bd37b6 Merge pull request #28224 from simonbrauner/libpod-pull-progress
Extend libpod pull API to show pull progress
2026-03-24 10:43:32 +01:00
Matt Heon
03ee20c854 Merge pull request #28348 from Luap99/fixes
two small review fixes from storage.conf rework
2026-03-23 11:37:06 -04:00
Paul Holzinger
91bae6f6e4 test/system: drop outdated comment
We do not want to bind mount storage.conf anymore.

Generally a podman with old config should work with the upgrade to new
podman with new config. The old podman with new config however may not
work as such we should not make them use the same config.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-03-23 14:54:46 +01:00
Ricardo Branco
b77531879b test: relax rootless runc pid namespace assertion
runc may or may not issue a warning here.

https://github.com/opencontainers/runc/issues/4732

Signed-off-by: Ricardo Branco <rbranco@suse.de>
2026-03-21 21:43:37 +01:00
Miloslav Trmač
85d9999c45 Merge pull request #28194 from Luap99/storage-conf
vendor container-libs with storage.conf rework
2026-03-20 14:03:53 +01:00
Danish Prakash
9565002257 feat: add support for changing default host IPs via containers.conf
Add support for `default_host_ips` in containers.conf to set default
host IP(s) if no IP is set when forwarding ports. Multiple IPs can be
configured, and passing explicit IP with -p will always override
the configured defaults.

Signed-off-by: Danish Prakash <contact@danishpraka.sh>
2026-03-20 13:54:48 +05:30
Paul Holzinger
a33114f248 test/upgrade: remove storage.conf mount
It is not really needed as the storage options are overriden via the cli
anyway and the older podman does not like that the new file has explicit
runroot set.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-03-19 21:49:20 +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
6be50cbb38 test/system: fix empty default test
We no longer generate a warning for an empty driver in storage.conf so
remove that.

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
46502be750 Merge pull request #28234 from Honny1/add-format-for-scp
Add `--format` to `podman image scp`
2026-03-19 19:50:16 +01:00
Paul Holzinger
5d7bc4e947 Merge pull request #28323 from giuseppe/detect-stale-pause-process
rootless: detect and remove stale pause.pid with recycled PIDs
2026-03-19 18:33:53 +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
Jan Rodák
da3c4aa21a Add --format to image scp
Add --format (oci-archive, docker-archive) to pass through to podman save.
Default is unchanged (no --format) so podman save uses its own default.
Document that scp is not storage-to-storage and only archive formats
are supported.

Fixes: https://github.com/containers/podman/issues/28183
Fixes: https://issues.redhat.com/browse/RUN-4403

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-19 17:42:33 +01:00
Lokesh Mandvekar
2eb20b3dd9 test: skip build-conflicting-isolation-chroot-and-network on remote
The BUILDAH_ISOLATION env var is not propagated to the server via
podman-remote. The buildah bud test (added in buildah PR #6697) sets
BUILDAH_ISOLATION=chroot to verify the --network conflict, which
silently has no effect on remote, causing the test to fail.

Ref: https://github.com/containers/buildah/pull/6697

Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2026-03-19 20:26:22 +05:30
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
Tom Sweeney
bb9d188d4a Merge pull request #28236 from Honny1/fix-unless-stopped
Fix `unless-stopped` containers not restarting after `podman-restart-service` stop them
2026-03-19 10:45:28 -04:00
Giuseppe Scrivano
a2db18f35c rootless: detect and remove stale pause.pid with recycled PIDs
When a pause process dies and its PID gets recycled by an unrelated
process, the stale pause.pid file causes join failures.  Detect this
by checking /proc/<pid>/environ for _PODMAN_PAUSE=1 after a failed
join attempt.

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

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2026-03-19 14:46:29 +01:00
Jan Rodák
d887a8146a Fix creating unnamed volumes as anonymous
Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-19 13:40:47 +01:00
Jan Rodák
a63910314f Refactor volume_prune tests to use PodmanExitCleanly
Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-19 13:40:47 +01:00
Jan Rodák
339acf880c volume prune: match Docker default and add --all
Fixes: https://github.com/containers/podman/issues/24597
Fixes: https://issues.redhat.com/browse/RUN-4404

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-19 13:40:45 +01:00
Matt Heon
5a40e02c81 Merge pull request #27980 from amyssnippet/fix/27977
fix(quadlet): correct replace behavior and prevent duplicates in .app files
2026-03-18 14:24:38 -04:00
Šimon Brauner
6f497d2437 Extend libpod pull API to show pull progress
Fixes: https://issues.redhat.com/browse/RUN-4362

Signed-off-by: Šimon Brauner <sbrauner@redhat.com>
2026-03-18 13:44:41 +01:00
Jan Rodák
7326b862e3 Fix unless-stopped containers not restarting after podman-restart.service stop them
When `podman-restart.service` stops containers, it marks them as "stopped by
user" which breaks the `unless-stopped` restart policy. Add hidden
`--not-stopped-by-user` flag to prevent this, allowing `unless-stopped`
containers to restart on next boot.

Fixes: https://github.com/containers/podman/issues/28152
Fixes: https://issues.redhat.com/browse/RUN-4357

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-16 13:51:17 +01:00
Jan Rodák
acf6472f5b Ignore operational EndpointSettings.IPAddress for static IPs in compat API
Docker treats EndpointSettings.IPAddress as operational/state, not desired create input.
Static address requests should come from IPAMConfig fields. Using both can duplicate
the same IPv4 request and trigger already allocated IPAM errors in compose scenarios.

Ref: moby/moby#46183 (daemon validation), docker/cli#4493 (CLI IPAMConfig), moby/moby#19001 (static IP feature).

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-16 13:48:41 +01:00
Jan Rodák
1ccded76ce Use InspectNetwork helper in e2e tests
Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-16 13:47:01 +01:00
Jan Rodák
6acfd58026 Add multi-IP container support
Add tests for multiple static IPs per container across single and multi-subnet networks.
Document --network option for comma-separated IPs and subnet-based IP ordering.

Fixes: https://issues.redhat.com/browse/RHEL-98277

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-03-16 13:47:01 +01:00
Lokesh Mandvekar
03f0b70b28 Merge pull request #28286 from com6056/fix-container-create-409
compat: return 409 Conflict when container name is already in use
2026-03-16 16:44:35 +05:30
Jan Rodák
23bb500a76 Merge pull request #28252 from containers/renovate/openapi-schema-validator-0.x
chore(deps): update dependency openapi-schema-validator to ~=0.8.1
2026-03-16 11:36:04 +01:00
Jan Rodák
e3754862d1 Merge pull request #28265 from kyounghunJang/main
feat: print client info from `podman version` when the server is not available
2026-03-16 11:35:16 +01:00
Tom Sweeney
8b0f9eb8a4 Merge pull request #28281 from ricardobranco777/arm64e2e
tests/e2e: Do not try to list /proc/acpi on non-amd64
2026-03-13 13:25:49 -04:00
Jordan Rodgers
7ecac4a65e compat: return 409 Conflict when container name is already in use
The Docker API spec defines HTTP 409 for POST /containers/create when
the requested name is already in use. The handler was returning 500 for
all errors from ContainerCreate, including ErrCtrExists.

This mismatch breaks buildx parallel builds on Podman: buildx checks
for a conflict response to safely converge multiple concurrent builders
onto the already-running BuildKit container. With 500 it treats the
conflict as a fatal error instead, causing all but the first parallel
build to fail.

The fix follows the same pattern already used in the rename handler,
which correctly returns 409 for ErrCtrExists. The swagger annotation
for this endpoint already documents the 409 response.

Signed-off-by: Jordan Rodgers <com6056@gmail.com>
2026-03-13 09:53:04 -07:00
Matt Heon
f43504a329 Merge pull request #28279 from umut-polat/fix-quadlet-empty-entrypoint
quadlet: allow empty Entrypoint to clear image default
2026-03-13 09:20:06 -04:00
KyounghoonJang
c7921b0049 feat: print client info from podman version when the server is unavailable
In remote mode, `podman version` currently returns a connection error before
printing any version information if it cannot connect to the service.

Introduce a reusable `PrintVersion` helper and invoke it at the root level
when a `ConnectionError` is encountered. This ensures that client information
is still shown even when the server cannot be reached.

Fixes: #28222
Signed-off-by: KyounghoonJang <matkimchi_@naver.com>
2026-03-13 19:09:54 +09:00
umut-polat
926f562bd5 quadlet: allow empty Entrypoint to clear image default
Setting Entrypoint= (empty value) in a quadlet .container file should
produce --entrypoint "" in the generated podman command, which clears
the image's default entrypoint. Previously this was silently ignored
because lookupAndAddString skips empty values.

Move the Entrypoint key out of the generic stringKeys map and handle
it separately so that an empty value is passed through.

Closes #28213

Signed-off-by: umut-polat <52835619+umut-polat@users.noreply.github.com>
2026-03-13 08:14:57 +00:00
Ricardo Branco
67ccf4940c tests/e2e: Do not try to list /proc/acpi on non-amd64
Signed-off-by: Ricardo Branco <rbranco@suse.de>
2026-03-12 21:31:11 +01:00
Paul Holzinger
14dd313d41 Merge pull request #27766 from Banana-Cultist/podman-events-oom
Improve OOMKilled Visibility
2026-03-12 19:23:02 +01:00
Paul Holzinger
1f3c344312 run modernize -fix ./...
modernize seems to be smarter now so it found some more things that are
not even go 1.25 related.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-03-12 17:22:01 +01:00