Commit graph

7762 commits

Author SHA1 Message Date
Matt Heon
df12c9806c
Merge pull request #28214 from MayorFaj/feat/28189-volume-rename
Some checks are pending
ci / int local rootless fedora-prior (push) Blocked by required conditions
ci / sys local rootless fedora-prior (push) Blocked by required conditions
ci / int remote root fedora-prior (push) Blocked by required conditions
ci / sys remote root fedora-prior (push) Blocked by required conditions
ci / int local root fedora-rawhide (push) Blocked by required conditions
ci / sys local root fedora-rawhide (push) Blocked by required conditions
ci / int local rootless fedora-rawhide (push) Blocked by required conditions
ci / sys local rootless fedora-rawhide (push) Blocked by required conditions
ci / int remote root fedora-rawhide (push) Blocked by required conditions
ci / sys remote root fedora-rawhide (push) Blocked by required conditions
ci / apiv2 root fedora-current (push) Blocked by required conditions
ci / bindings root fedora-current (push) Blocked by required conditions
ci / compose_v2 root fedora-current (push) Blocked by required conditions
ci / docker_py root fedora-current (push) Blocked by required conditions
ci / unit root fedora-current (push) Blocked by required conditions
ci / apiv2 rootless fedora-current (push) Blocked by required conditions
ci / compose_v2 rootless fedora-current (push) Blocked by required conditions
ci / unit rootless fedora-current (push) Blocked by required conditions
ci / upgrade v5.3.1 root fedora-current (push) Blocked by required conditions
ci / upgrade v5.6.2 root fedora-current (push) Blocked by required conditions
ci / machine linux amd64 (push) Blocked by required conditions
ci / windows unit (push) Blocked by required conditions
ci / windows e2e (push) Blocked by required conditions
ci / windows machine hyperv (push) Blocked by required conditions
ci / windows machine wsl (push) Blocked by required conditions
ci / macos machine applehv (push) Blocked by required conditions
ci / macos machine libkrun (push) Blocked by required conditions
ci / Total Success (push) Blocked by required conditions
Publish swagger / Build and publish swagger.yaml (push) Waiting to run
zizmor: GitHub Actions Security Analysis / Zizmor (push) Waiting to run
feat: implement volume rename functionality
2026-06-18 14:47:35 -04:00
Matt Heon
20e3bf634b
Merge pull request #28951 from MayorFaj/feat/quadlet-image-volume
Some checks are pending
ci / int local rootless fedora-prior (push) Blocked by required conditions
ci / sys local rootless fedora-prior (push) Blocked by required conditions
ci / int remote root fedora-prior (push) Blocked by required conditions
ci / sys remote root fedora-prior (push) Blocked by required conditions
ci / int local root fedora-rawhide (push) Blocked by required conditions
ci / sys local root fedora-rawhide (push) Blocked by required conditions
ci / int local rootless fedora-rawhide (push) Blocked by required conditions
ci / sys local rootless fedora-rawhide (push) Blocked by required conditions
ci / int remote root fedora-rawhide (push) Blocked by required conditions
ci / sys remote root fedora-rawhide (push) Blocked by required conditions
ci / apiv2 root fedora-current (push) Blocked by required conditions
ci / bindings root fedora-current (push) Blocked by required conditions
ci / compose_v2 root fedora-current (push) Blocked by required conditions
ci / docker_py root fedora-current (push) Blocked by required conditions
ci / unit root fedora-current (push) Blocked by required conditions
ci / apiv2 rootless fedora-current (push) Blocked by required conditions
ci / compose_v2 rootless fedora-current (push) Blocked by required conditions
ci / unit rootless fedora-current (push) Blocked by required conditions
ci / upgrade v5.3.1 root fedora-current (push) Blocked by required conditions
ci / upgrade v5.6.2 root fedora-current (push) Blocked by required conditions
ci / machine linux amd64 (push) Blocked by required conditions
ci / windows unit (push) Blocked by required conditions
ci / windows e2e (push) Blocked by required conditions
ci / windows machine hyperv (push) Blocked by required conditions
ci / windows machine wsl (push) Blocked by required conditions
ci / macos machine applehv (push) Blocked by required conditions
ci / macos machine libkrun (push) Blocked by required conditions
ci / Total Success (push) Blocked by required conditions
Publish swagger / Build and publish swagger.yaml (push) Waiting to run
zizmor: GitHub Actions Security Analysis / Zizmor (push) Waiting to run
add support for ImageVolume option in Podman Quadlet
2026-06-18 11:15:53 -04:00
Jan Rodák
0aa4381e43
Add quick-reference table and destructive-test warning
Add a warning that tests wipe local container state,
a quick-reference table of make targets,
and examples for running specific integration, machine,
system, and unit tests.

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-06-17 10:02:24 +02:00
MayorFaj
c6e5eb5553 Add support for ImageVolume option in Podman Quadlet
Signed-off-by: MayorFaj <mayorfaj@gmail.com>
2026-06-17 07:19:07 +01:00
Danish Prakash
5ac01dd4e1
Merge pull request #28897 from ROKUMATE/fix-image-scp-at-username
image scp: preserve usernames containing an "@"
2026-06-17 10:36:46 +05:30
Ricardo Branco
2d1868ff60
test/system: Fix "command not found" with wait builtin
Only on Fedora there's a /bin/wait shell script that calls Bash's
builtin(1).  This is not the case of openSUSE Tumbleweed with the same
Bash version and Debian 13.  Otherwise we get errors from bats like:

BW01: `run`'s command `wait 872594` exited with code 127, indicating
'Command not found'. Use run's return code checks, e.g. `run -127`,
to fix this message.

Replace `run wait` with `wait || true` like it's done in other tests.

Signed-off-by: Ricardo Branco <rbranco@suse.de>
2026-06-16 10:39:16 +02:00
Paul Holzinger
2249aac26c
Merge pull request #28929 from podman-container-tools/renovate/pytest-9.x
Update dependency pytest to v9.1.0
2026-06-16 09:43:38 +02:00
Paul Holzinger
776bcd74c2
Revert "test/e2e: build in subdirectory"
This reverts commit 79e7b0f6fd.

With the proper tmpdir split we no longer need this.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-06-15 17:31:51 +02:00
Paul Holzinger
6e20527004
test/e2e: split cli tmpdir from per test tempdir
Right now the tmpdir for the test and cli are are the same and worse the
root/runroot directories are subdirectories of the tmpdir so tests can
create conflicting files.

Also for rootless remote builds this cuases problems for all tests which
uses the main tmpdir as context dir as they then try to copy the storage
files with different uids which will fail. Commit 79e7b0f6fd tried to
work around it but it is not enough as much more tests use this pattern.

So to fix this once and for all properly separate them. And then fixup a
few test cases that depended on the wrong value and make them use the
proper root value directly.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-06-15 17:31:51 +02:00
renovate[bot]
817c05240c
Update dependency pytest to v9.1.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-13 21:35:08 +00:00
ROKUMATE
b9003828db image scp: preserve usernames containing an "@"
Signed-off-by: ROKUMATE <rohitkumawat0110@gmail.com>
2026-06-12 15:23:25 +05:30
Jan Rodák
b294a92a25
Add reasons to all staticcheck suppressions
Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-06-12 10:12:40 +02:00
MayorFaj
d01b7ae534 libpod: add volume rename support
Add a podman volume rename command, REST API endpoint, and bindings for renaming volumes.

The rename updates both the VolumeConfig and VolumeState tables in a single transaction and moves the volume directory on disk, rolling back if the transaction fails. Renaming an anonymous volume converts it to a named volume. Volumes that are in use, mounted, or backed by a volume plugin or the image driver cannot be renamed.

Fixes: #28189
Signed-off-by: MayorFaj <mayorfaj@gmail.com>
2026-06-11 21:56:15 +01:00
Matt Heon
735d0b0093
Merge pull request #28903 from Luap99/fix-chrootarchive-remote
fix podman-remote save -f oci-dir/docker-dir
2026-06-11 09:58:56 -04:00
Matej Vašek
db70e73056
fix: compat API image push err meg propagation
When returning error http code (e.g. 4xx, 5xx) the body needs to contain
a JSON that has a key "message" in it,
we must not use jsonmessage.JSONMessage.

The JSON of shape jsonmessage.JSONMessage is used only when client
already received 200.

Signed-off-by: Matej Vašek <matejvasek@gmail.com>
2026-06-11 12:56:29 +02:00
Jan Rodák
7fe6abf197
Merge pull request #28879 from jiwahn/fix-event-attributes-labels
events: include labels in pod and volume attributes Fixes: #26480
2026-06-11 10:27:38 +02:00
Paul Holzinger
79e7b0f6fd
test/e2e: build in subdirectory
So when running remote and rootless tests the buildImage() thing has one
big problem because it used the main test tmpdir as context.

However that dir also holds all the image layers with files that are
owned by other uids and because podman-remote does not use the userns it
cannot read some files and then fails when trying to tar up the context
dir.

To fix this use an extra sub directory. Now because some tests where
using the parent directory to supply context files just switch the
callers so they have full control still.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-06-10 20:26:11 +02:00
Paul Holzinger
cefaa0ee44
Merge pull request #28712 from elezar/info-cdi-devices
info: report configured and discovered CDI devices
2026-06-10 14:34:35 +02:00
Evan Lezar
dea67a3eba
test/e2e: use Ginkgo Setenv in info tests
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2026-06-10 12:21:27 +02:00
Kir Kolyshkin
3c4068bcd6 deps: bump go-criu to v8.2.0
I guess this was not done by renovate/dependabot because of major
version bump.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2026-06-09 11:51:46 -07:00
Jan Rodák
ac75155196
Fix stop timing flake by widening upper bound
The `podman stop - basic test` flakes in CI because $SECONDS is
integer-precision: a ~14.6s stop rounds to delta_t=15 and fails
the -le 14 check. Widen the upper bound to 18s, which still catches
real regressions while tolerating slow CI nodes and remote-mode
socket overhead.

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-06-09 14:57:28 +02:00
Jan Rodák
81fceb48d2
Fix healthcheck flake by capturing time before systemctl checks
After _check_health "First failure" returns with FailingStreak=2, the
3rd failure fires during the subsequent systemctl checks (~1s interval),
emitting the "unhealthy" event before current_time was captured. Move
current_time before those checks so --since doesn't miss the event.

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-06-09 14:57:27 +02:00
Jan Rodák
d18ed46101
fix flaky "rm --force" stopping-state detection
Test: `podman container rm --force doesn't leave running processes`

Under CI load, podman-inspect takes 2-3s per call, longer than the
2s stop-timeout window. Increase to 20s so the test reliably catches
the "stopping" state before it transitions to "exited".

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2026-06-09 14:57:24 +02:00
Jiwoo Ahn
ef2d2e4a58 events: include labels in pod and volume attributes
Fixes: #26480

Signed-off-by: Jiwoo Ahn <ikwydls1314@gmail.com>
2026-06-09 20:36:04 +09:00
zhongchunhe.zch
45b9e6f1a2 fix: handle multiple networks in 'podman inspect --type=all'
Signed-off-by: zhongchunhe.zch <zhongchunhe.zch@qq.com>
2026-06-08 20:37:47 +08:00
Paul Holzinger
486bacd3e4
Merge pull request #28335 from axel7083/refactor/quadlet-applications
refactor: podman quadlet sub-command
2026-06-05 17:55:51 +02:00
Paul Holzinger
1eda0cfbb4
test/e2e: fix flake in login tests
By default we run tests in parallel so when we mount test/certs with the
":Z" option it means only one container can read it, depending on the
startup times this can mean the container fails to start. I observed
this error in a CI run:

level=fatal msg="open /certs/domain.crt: permission denied"

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-06-05 13:06:26 +02:00
Paul Holzinger
88a32272b7
test/e2e: do not call out to htpasswd/cp in registry tests
Because we use hard coded names anyway we might as well skip the extra
command execution here that happened for each test.

Just inline a valid htpasswd line. Also remove the extra sync call,
there is no reason whatsoever for this file to be synced.

For cp there is also no reason at all to call an external command. Worse
the command also was never checked for errors.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-06-05 13:02:17 +02:00
Brent Baude
e32fc614df
Merge pull request #28800 from danishprakash/remote-log-path
specgen: move log_path handling over to the server
2026-06-03 08:59:54 -05:00
Giuseppe Scrivano
1a76d464fd
cmd, commit: change --pause default to true
Pause the container by default during commit.  It is safer as it
avoids conflicts, and potentially security issues, when another
process is accessing the container rootfs.

Originally this was not done because it was a breaking change and
rootless containers weren't able to use the freezer cgroup controller.
Now that we support only cgroup v2, there is no gap anymore with
root (exotic configurations can still use --pause=false).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2026-06-03 07:28:22 +02:00
Danish Prakash
bad0a715ee
specgen: move log_path handling over to the server
log_path is currently set at the client side and is ignored by
the server in a remote session. This leads to either incorrect log_path
being considered by the server or not honored at all. Move the handling
from client to the server, in line with other flags such as log_driver.

Signed-off-by: Danish Prakash <contact@danishpraka.sh>
2026-06-03 09:22:50 +05:30
axel7083
496646f0da feat: update podman quadlet sub-command
Fixes: #28118
Signed-off-by: axel7083 <42176370+axel7083@users.noreply.github.com>
2026-06-02 09:52:49 +00:00
Evan Lezar
3f64825cdc
test/e2e: use PodmanExitCleanly in info tests
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2026-06-01 21:52:29 +02:00
Evan Lezar
e740848eb9
info: report configured and discovered CDI devices
Add CDI information to podman info and podman system info.

The host info now includes the configured CDI spec directories and the
currently discovered CDI devices. The devices are resolved when the info
endpoint is called and there is no need to refresh these in the background.

Also map the same data into the Docker-compatible /info response as CDISpecDirs and DiscoveredDevices.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
2026-06-01 21:45:41 +02:00
Paul Holzinger
c1ffafe5b7
test/system: fix "quadlet kube - start error" flake
The test flakes on the socat pid kill when the pid already exited.
Because the timeout is just 10s we can just bump it to something loinger
to ensure the process is still alive when we kill it. Also move it up a
bit so the kill happens earlier.

I observed multiple time failing with test times of 11s+. This should be
enough to make it work properly.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-06-01 21:02:30 +02:00
Paul Holzinger
48594b61c8
test/system: fix can trap signal flake
In the new CI with run with many parallel jobs (8) and that is messing
up timings a fair but, any command might take unexpected long to
scheduling delays and lock holding by other tests.

Any test doing a podman ps -a while need to take all container locks
for example and that then can delay the stop command an unknown amount
of time, bump the timeout to 8 and use a higher stop timeout so we are
still testing that we exit before the wait timeout is reached.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-06-01 20:58:37 +02:00
Paul Holzinger
30aaf14abb
test/python/docker/compat: skip test_search_image
It does not seem to work in the new CI system right now.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-06-01 17:00:17 +02:00
Paul Holzinger
f9db3cbd2b
test/system: do not use image mount as rootfs source
This started to fail on fedora rawhide with kernel 7.1. I have not
looked into why exactly why but the theory from commit 12d40777f0
is likely related. What I do not get is why this tests seem to pass
elsewhere, i.e. it passes in openQA and testing farm but not in our
custom lima based VMs.

Lets hope this works better.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-06-01 13:01:34 +02:00
Tom Sweeney
8d036cea7c Skip a number of failing tests
Skip a number of failing tests.  Issue #28810

Signed-off-by: Tom Sweeney <tsweeney@redhat.com>
2026-05-29 09:13:14 -04:00
Tom Sweeney
8b1e46170b Adjust API calls for compression
Add the various compression API calls as created by @nalind in #28807

Signed-off-by: Tom Sweeney <tsweeney@redhat.com>
2026-05-29 09:10:50 -04:00
Paul Holzinger
2393c05d28
Merge pull request #28806 from martinetd/detach_run_tty
cmd/podman: don't warn on `podman run -ti -d` from not a tty
2026-05-29 13:19:14 +02:00
Dominique Martinet
4ec95b5de1 cmd/podman: don't warn on podman run -ti -d from not a tty
`podman run -ti` warns when stdin is not a tty, but if the container is
run in detached state that warning does not make much sense: we just
need the environment where podman attach will be run to be a tty.

Running with `-ti` even in detached state can make sense to avoid
applications buffering their output (for realtime logs) or allowing
later interaction and should not warn users.

Also remove the comment saying that warning will become fatal, as there
seems to be agreement that such a breaking change will not be made

Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
2026-05-29 10:37:26 +09:00
Paul Holzinger
c4c2778776
test/system: fix "podman kill - concurrent stop"
It is possible that the background podman stop -t 1 completes before we
get to podman kill making the kill fail as the container is not running.

The result is this error in the test:
"Error: can only kill running containers. xxx is in state exited: container state improper"

We can just bump the stop timeout to have a larger time where we can
trigger kill on a stopping container.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-05-28 13:37:42 +02:00
Paul Holzinger
ea51ae7305
test/system: use DISABLE_HC_SYSTEMD for 2 tests
The problem is by default we create the systemd timers and run hc in the
background. This means any tests who depend on exact hc timing can get
broken by this so use the DISABLE_HC_SYSTEMD=true env which makes podman
skip creating the systemd timers but still allows you to manually run
the commands.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-05-28 13:37:42 +02:00
Paul Holzinger
a2581cc82f
test/e2e: deduplicate some network subnets
With a high parallel node run we have much more test cases run in
parallel, as such I am seeing a lot of network subnet flakes as they
were using the same one and thus failed since there can only be one
config using it at a time.

Now hard coding this here is ugly, yes. But for now I just need to get
the flakes down in the new CI. Long term we should likely have a helper
that hands out known unused subnets for the tests.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-05-28 13:36:45 +02:00
Paul Holzinger
d1d0c84a56
test/system: bump "unlock while waiting for timeout" timeout
In parallel runs the timings might be a bit slower than normal. Increase
the timeout here, it should not affect the test as we use a 20s stop
timeout which is more than the ready loop which uses 5s now.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2026-05-28 13:36:45 +02:00
Giuseppe Scrivano
c995882ecf
Merge pull request #28802 from inknos/rhel-178653
api/libpod: fix r_limits cleared on update
2026-05-28 08:03:17 +02:00
Giuseppe Scrivano
20c6bd5bdd
Merge pull request #28793 from mheon/blackhole-routes
podman: Add support for blackhole routes
2026-05-27 16:29:48 +02:00
Povilas Kanapickas
daaf8b62ba podman: Add support for blackhole routes
Add support for blackhole, unreachable, and prohibit route types in podman
networks. These route types allow silently discarding packets (blackhole),
rejecting with destination unreachable (unreachable), or rejecting with
administratively prohibited (prohibit).

Note: Blackhole routes require netavark >= 2.0.0. Regular unicast routes
remain backward compatible with all netavark versions.

Signed-off-by: Povilas Kanapickas <povilas@radix.lt>

<MH: Rebased atop latest main & fixed cherry-pick conflicts>

Signed-off-by: Matt Heon <matthew.heon@pm.me>
2026-05-27 09:09:19 -04:00
Nicola Sella
e59b9dae8f
api/libpod: fix r_limits cleared on update
Returnin nil when input is empty, to skip rlimit replacement
when r_limits is not present in the request.

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

Signed-off-by: Nicola Sella <nsella@redhat.com>
2026-05-27 13:32:31 +02:00