Commit Graph

7189 Commits

Author SHA1 Message Date
Lokesh Mandvekar 5e7c0a66ce
e2e: skip pre-checkpoint tests on aarch64
Per Adrian Reber, the aarch64 kernel doesn't support the soft dirty bit
and support isn't expected anytime soon.

Ref: https://github.com/checkpoint-restore/criu/issues/2676

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2025-05-29 12:25:37 -04:00
Jan Kaluza 3a981915f0 Handle "Entrypoint":[] in compat containers/create API.
When using `docker compose run --entrypoint ''`, docker sends
`"Entrypoint": []` in the JSON. Podman currently treats that
as `nil` and fallback to default image entrypoint.

This is not what is expected by the user. Instead, it should
not use any entrypoint.

This commit fixes it by properly propagating the `[]` downstream
to libpod.

Fixes: #26078

Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
2025-05-29 08:45:35 +02:00
openshift-merge-bot[bot] 23ded8bcee
Merge pull request #26207 from giuseppe/fix-flake-kmsg
test: fix race conditions in /dev/kmsg tests
2025-05-28 21:14:39 +00:00
Paul Holzinger 415668c802
system df --verbose don't crash
When a container has no image, i.e. using rootfs like our new infra
containers then the Image function crashed trying to show the first 12
image ID chars. If there is no image simply show nothing there.

Fixes: #26224

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-05-28 20:50:17 +02:00
openshift-merge-bot[bot] dad0b294d4
Merge pull request #26217 from mheon/fix_26168
Fix SQLite volume lookup queries matching too liberally
2025-05-28 18:42:06 +00:00
Matthew Heon b276e7ef21 Fix SQLite volume lookup queries matching too liberally
Specifically, this does two things:

1. Turn on case-sensitive LIKE queries. Technically, this is not
specific to volumes, as it will also affect container and pod
lookups - but there, it only affects IDs. So `podman rm abc123`
will not be the same as `podman rm ABC123` but I don't think
anyone was manually entering uppercase SHA256 hash IDs so it
shouldn't matter.

2. Escape the _ and % characters in volume lookup queries. These
are SQLite wildcards, and meant that `podman volume rm test_1`
would also match `podman volume rm testa2` (or any character in
place of the underscore). This isn't done with pod and container
lookups, but again those just use LIKE for IDs - so technically
`podman volume rm abc_123` probably works and removes containers
with an ID matching that pattern... I don't think that matters
though.

Fixes #26168

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2025-05-28 13:10:10 -04:00
openshift-merge-bot[bot] a484f78c44
Merge pull request #26209 from jankaluza/26190
Recreate the Rootfs in mountStorage for infra-container.
2025-05-28 14:35:04 +00:00
Jan Kaluza e0b08fcfa3 Recreate the Rootfs in mountStorage for infra-container.
After the system reboot, the Rootfs for infra-container can
be removed. This can happen when it is stored on tmpfs.

This commit recreates the infra-container directory which is
used for Rootfs for infra-container before mounting it.

Fixes: #26190

Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
2025-05-27 16:31:44 +02:00
openshift-merge-bot[bot] d667e2fe51
Merge pull request #26202 from Luap99/compat-base-hosts
compat API: respect base_hosts_file containers.conf option
2025-05-27 13:40:23 +00:00
openshift-merge-bot[bot] 4120115c86
Merge pull request #26193 from refi64/container-graph-errors
libpod: Don't exclude running deps from the container graph inputs
2025-05-27 13:15:36 +00:00
Giuseppe Scrivano ca20c42a52
test: fix race conditions in /dev/kmsg tests
The e2e tests for device access involving /dev/kmsg could fail
intermittently.  This was due to a race condition where concurrent
writes to the kernel log buffer by other processes, while the test
was reading from /dev/kmsg, could cause the read to fail with ESPIPE.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2025-05-27 15:12:14 +02:00
renovate[bot] d5520ded64
chore(deps): update dependency setuptools to ~=80.9.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 04:00:34 +00:00
Ryan Gonzalez 051be9b2d2 libpod: Don't exclude running deps from the container graph inputs
getAllDependencies() skips recursing into dependencies that are already
running, but BuildContainerGraph() expects a *complete* set of inputs
and returns an error if any are missing. Thus, podman will fail to start
a container with already-running direct dependencies that, in turn, have
their own dependencies.

None of the other callers of BuildContainerGraph() omit anything from
their list of containers, so follow the same approach here, and just
let startNode figure out if a start is actually needed.

Fixes: containers/podman-compose#921

Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
2025-05-26 20:29:53 -05:00
Paul Holzinger 66bf98e27c
compat API: respect base_hosts_file containers.conf option
Hard coding to none without checking containers.conf is not a good idea
as users who liked the previous behavior and the podman default behavior
of keeping the hosts entries can no longer do that.

With this commit they can set base_hosts_file = "/etc/hosts" to restore
the previous behavior.

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

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-05-26 16:16:10 +02:00
François Poirotte 9d4267c8f2
Disable the tests for rootless pods
Access to the cpuset cgroup controller is needed to run these tests.
Configuration on the CI workers prevents access to this controller
for rootless pods.

Signed-off-by: François Poirotte <clicky@erebot.net>
2025-05-22 11:45:01 +02:00
François Poirotte 5bfdb25b26
Support --cpuset-<cpus/mems> in podman kube play
This commit adds two new annotations named
io.podman.annotations.cpuset/$ctrname and
io.podman.annotations.memory-nodes/$ctrname

The first one allows restricting a container's execution to specific
CPU cores while the second restricts memory allocations to specific
NUMA memory nodes. They are also added automatically when the
--cpuset-cpus and --cpuset-mems options are used.

Fixes: containers#26172

Signed-off-by: François Poirotte <clicky@erebot.net>
2025-05-22 11:45:01 +02:00
openshift-merge-bot[bot] b2fcf00222
Merge pull request #26175 from lsm5/tmt-lint
lint: cleanups after TMT inclusion
2025-05-21 14:44:56 +00:00
Lokesh Mandvekar 50379429ca
lint: Fix linter issues on TMT files
Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2025-05-21 10:16:25 -04:00
openshift-merge-bot[bot] b61e99662d
Merge pull request #26148 from Luap99/test-dns
test/e2e: do not check dns.podman
2025-05-21 14:00:34 +00:00
openshift-merge-bot[bot] 6d23f22750
Merge pull request #24369 from lsm5/tmt-fedora-centos
[skip-ci] TMT: run system tests on Fedora
2025-05-21 07:56:20 +00:00
openshift-merge-bot[bot] 5629ba8a8d
Merge pull request #26149 from azdle/docker-api-container-status
compat: fix ContainerState.Status JSON values
2025-05-20 17:53:12 +00:00
Patrick Barrett 92a15085cb compat: fix Container State.Status JSON values
This mirrors the conversion currently being done in `LibpodToContainer`
into `LibpodToContainerJSON`, converting podman style statuses to docker
style statuses as defined in their OpenAPI definition:

https://docs.docker.com/reference/api/engine/version/v1.49/#tag/Container/operation/ContainerInspect

Fixes: #17728

Signed-off-by: Patrick Barrett <patrick@psbarrett.com>
2025-05-20 10:22:45 -05:00
renovate[bot] f10e2ffd36
chore(deps): update dependency setuptools to ~=80.8.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-20 14:38:17 +00:00
openshift-merge-bot[bot] e32b57b1ea
Merge pull request #26115 from inknos/compat-get-info-defaultaddresspool
compat: Add DefaultAddressPools field to GET /info
2025-05-20 14:37:22 +00:00
Paul Holzinger 736ca60378
test/e2e: do not check dns.podman
A recent change[1] in netavark makes it so we no longer set the default
dns.podman search domain. As such we must no longer test for it.

Follow up to 254ab3b90f ("test/system: do not check dns.podman")

[1] https://github.com/containers/netavark/pull/1214

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-05-16 14:18:19 +02:00
Nicola Sella 7c0262db3d
compat: Add DefaultAddressPools field to GET /info
Signed-off-by: Nicola Sella <nsella@redhat.com>
2025-05-16 13:16:27 +02:00
openshift-merge-bot[bot] 5fef6b714d
Merge pull request #26116 from inknos/compat-post-containers-create-cgroupsnsmode
compat: Add CgroupnsMode to POST /containers/create
2025-05-15 18:20:38 +00:00
openshift-merge-bot[bot] 3bf3d869b6
Merge pull request #26127 from martinetd/restart-hooks
podman: remember hooks-dir on restarts
2025-05-15 14:18:30 +00:00
Nicola Sella b82f2962c3
compat: Add CgroupnsMode to POST /containers/create
Signed-off-by: Nicola Sella <nsella@redhat.com>
2025-05-15 15:31:16 +02:00
renovate[bot] 06ddffc81d
Update dependency setuptools to ~=80.7.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 09:29:59 +00:00
Dominique Martinet 90ee7c86a3 podman: remember hooks-dir on restarts
When podman restarts config values within the Engine are lost.
Add --hook-dirs arguments as appropriate to the cleanup command
so that hooks are preserved on restarts due to the on-restart setting

Tests: add a check that prestart/poststop hooks ran every time after 2
restarts.
`wait_for_restart_count` was re-used to wait for restarts and moved to
helpers file.

Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
Fixes: #17935
2025-05-15 14:23:22 +09:00
openshift-merge-bot[bot] a1ac6c33cc
Merge pull request #26113 from ygalblum/quadlet-pod-name
Quadlet - restore pod name to not use systemd specifiers
2025-05-12 23:22:28 +00:00
openshift-merge-bot[bot] 45fc915dd9
Merge pull request #26117 from containers/renovate/setuptools-80.x
chore(deps): update dependency setuptools to ~=80.4.0
2025-05-12 16:58:17 +00:00
openshift-merge-bot[bot] 93fd26bc58
Merge pull request #25660 from ver4a/main
Fix parsing of paths for unmask
2025-05-12 16:55:30 +00:00
openshift-merge-bot[bot] df90606d53
Merge pull request #26086 from Honny1/hc-timeout
Fix: Ensure HealthCheck exec session terminates on timeout
2025-05-12 15:44:18 +00:00
renovate[bot] 59d9f1ea5d
chore(deps): update dependency setuptools to ~=80.4.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 15:36:49 +00:00
renovate[bot] 5471f6e191
chore(deps): update dependency docker to v7
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-12 15:16:16 +00:00
Jan Rodák 499ea1168b
Fix: Ensure HealthCheck exec session terminates on timeout
Previously, the HealthCheck exec session would not terminate on timeout, allowing the healthcheck to run indefinitely.

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

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2025-05-12 17:01:35 +02:00
Ygal Blum 09d9d3e26b Revert "Quadlet - fix pod name to depend on the name of the generate service"
This reverts commit 4f38c2fea2.

Fixes: #26105
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-05-12 09:33:16 -04:00
Šimon Škoda 7a161115f9 Fix parsing of paths for unmask
This fixes an issue where multiple paths separated by a colon were
treated as a single path, contrary to what docs say and unlike how mask
option works.

Test was updated with a case that fails without this commit.

Signed-off-by: Šimon Škoda <ver4a@uncontrol.me>
2025-05-09 11:25:30 +00:00
openshift-merge-bot[bot] ebbf90decc
Merge pull request #26082 from ygalblum/quadlet-pod-name
Quadlet - fix pod name to depend on the name of the generate service
2025-05-06 19:51:51 +00:00
openshift-merge-bot[bot] 857cfb9062
Merge pull request #25861 from cesargoncalves/main
update podman socket output to include also exposed ports
2025-05-06 19:10:36 +00:00
Ygal Blum 4f38c2fea2 Quadlet - fix pod name to depend on the name of the generate service
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-05-06 12:02:01 -04:00
renovate[bot] 78065fd8c7
chore(deps): update dependency setuptools to ~=80.2.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-03 03:22:47 +00:00
Lokesh Mandvekar 2419732eb7
[skip-ci] TMT: system tests
This commit introduces TMT test jobs triggered via packit to run system
tests on testing-farm infrastructure. Tests are run for
Fedora 41, 42 and rawhide on x86_64. The same
test plan will be reused by Fedora for bodhi, zuul and fedora-ci gating
tests. Packit will handle syncing of test plan and sources from upstream
to downstream.

Packit failure notification has also been updated to be less noisy and
let people know they are free to ignore any failures.

TODO:
1. Enable jobs for CentOS Stream and aarch64 envs.
2. Enable separate set of jobs for release branches as they need to be
   tested with official distro packages, not with bleeding-edge
   packages.

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2025-05-02 16:40:20 +05:30
renovate[bot] b7f67badf3
chore(deps): update dependency setuptools to ~=80.1.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-30 18:14:59 +00:00
openshift-merge-bot[bot] 8f22a0cf16
Merge pull request #26022 from giuseppe/test-do-not-set-limits-on-dev-zero
test: use block devices for I/O limit tests
2025-04-30 18:14:04 +00:00
Giuseppe Scrivano 8160e02459
test/e2e: Use nullb0 for IO limit tests
The tests for device I/O limits were using `/dev/zero`,
which is not a block device suitable for these cgroup
controls.

Update the tests to use `/dev/nullb0` if it exists.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2025-04-30 16:21:38 +02:00
Giuseppe Scrivano 3b61e56152
test/system: Use correct device for I/O limit tests
The tests were incorrectly using `/dev/zero`.  These options are
intended to set I/O limits on specific block devices.

The test already sets up a loopback device, so reuse it.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2025-04-30 16:21:38 +02:00
Giuseppe Scrivano f6b91d7be0
inspect: Ignore character devices for IO limits
Cgroup block I/O limits cannot be applied to character devices.

Ignore character devices in the inspect output.

Update the API tests to use the null block device `/dev/nullb0` (if
available) instead of `/dev/zero` for testing I/O limits.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2025-04-30 16:21:38 +02:00
Ygal Blum 9b2fb40ab8 Quadlet - remove the usage of cid and podid for container and pod files
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-04-30 07:59:15 -04:00
openshift-merge-bot[bot] ce0bac24e5
Merge pull request #25986 from Honny1/fix-unlimited-ulimits
Fix handling of "r_limits" in Podman REST API /libpod/containers/create
2025-04-28 22:27:40 +00:00
openshift-merge-bot[bot] 2679304aa8
Merge pull request #25983 from matejvasek/fix-inherit-label
Fix: inheritlabels=true if query param absent
2025-04-28 16:02:48 +00:00
Jan Rodák e66ff395b7
Fix handling of "r_limits" in Podman REST API /libpod/containers/create
The JSON decoder correctly cannot decode (overflow) negative values (e.g., `-1`) for fields of type `uint64`, as `-1` is used to represent `max` in `POSIXRlimit`. To handle this, we use `tmpSpecGenerator` to decode the request body. The `tmpSpecGenerator` replaces the `POSIXRlimit` type with a `tmpRlimit` type that uses the `json.Number` type for decoding values. The `tmpRlimit` is then converted into the `POSIXRlimit` type and assigned to the `SpecGenerator`.

This approach ensures compatibility with the Podman CLI and remote API, which already handle `-1` by casting it to `uint64` (`uint64(-1)` equals `MaxUint64`) to signify `max`.

Fixes: https://issues.redhat.com/browse/RUN-2859
Fixes: https://github.com/containers/podman/issues/24886

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2025-04-28 15:02:19 +02:00
openshift-merge-bot[bot] 42cee9d977
Merge pull request #25946 from ninja-quokka/docker_compat_force_image_remove
bug: Correct Docker compat REST API image delete endpoint
2025-04-28 11:03:41 +00:00
renovate[bot] 7819879776
chore(deps): update dependency setuptools to v80
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-27 17:44:15 +00:00
Lewis Roy 6e7de438cc
bug: Correct Docker compat REST API image delete endpoint
The Docker `-XDELETE image/$name?force=true` endpoint only removes
containers using an image if they are in a non running state.

In Podman, when forcefully removing images we also forcefully delete
containers using the image including running containers.

This patch changes the Docker image force delete compat API to act like the
Docker API while maintaining commands like `podman rmi -f $imagename`

It also corrects the API return code returned when an image is requested
to be deleted with running containers using it.

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

Signed-off-by: Lewis Roy <lewis@redhat.com>
2025-04-27 20:51:11 +10:00
Cesar Goncalves a969dbd73e
update podman socket output to include also exposed ports
Fixes https://github.com/containers/podman/issues/25851

Co-authored-by: Brent Baude <bbaude@redhat.com>
Signed-off-by: Cesar Goncalves <mail@cesargoncalves.com>
2025-04-27 11:11:28 +01:00
flouthoc 4268c61dd0 Added tests for inheritlabel fix
Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2025-04-25 19:29:18 +02:00
openshift-merge-bot[bot] ac12341046
Merge pull request #25942 from rcmadhankumar/set-default-mount-option
Remove using `rw` as a default mount option
2025-04-25 13:35:29 +00:00
renovate[bot] 7e14a03409
fix(deps): update module github.com/cpuguy83/go-md2man/v2 to v2.0.7
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 00:30:23 +00:00
openshift-merge-bot[bot] c28fd3cbd8
Merge pull request #25966 from Luap99/start-rm
remote: don't print bogus error when starting container attached
2025-04-24 18:58:00 +00:00
Robin Heinemeier 802fc15b1e Add Label to quadlet pod
Signed-off-by: Robin Heinemeier <sunnerlp@gmail.com>
2025-04-24 13:37:42 +00:00
Paul Holzinger 3a2d7587fe
remote: don't print bogus error when starting container attached
This looks like debug leftover, in any case this is not an error so
simply remove the line.

Fixes #25965

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-04-24 14:31:22 +02:00
rcmadhankumar bf7dcd5619 Fix: Remove appending rw as the default mount option
The backstory for this is that runc 1.2 (opencontainers/runc#3967)
fixed a long-standing bug in our mount flag handling (a bug that crun
still has). Before runc 1.2, when dealing with locked mount flags that
user namespaced containers cannot clear, trying to explicitly clearing
locked flags (like rw clearing MS_RDONLY) would silently ignore the rw
flag in most cases and would result in a read-only mount. This is
obviously not what the user expects.

What runc 1.2 did is that it made it so that passing clearing flags
like rw would always result in an attempt to clear the flag (which was
not the case before), and would (in all cases) explicitly return an
error if we try to clear locking flags. (This also let us finally fix a
bunch of other long-standing issues with locked mount flags causing
seemingly spurious errors).

The problem is that podman sets rw on all mounts by default (even if
the user doesn't specify anything). This is actually a no-op in
runc 1.1 and crun because of a bug in how clearing flags were handled
(rw is the absence of MS_RDONLY but until runc 1.2 we didn't correctly
track clearing flags like that, meaning that rw would literally be
handled as if it were not set at all by users) but in runc 1.2 leads to
unfortunate breakages and a subtle change in behaviour (before, a ro
mount being bind-mounted into a container would also be ro -- though
due to the above bug even setting rw explicitly would result in ro in
most cases -- but with runc 1.2 the mount will always be rw even if
the user didn't explicitly request it which most users would find
surprising). By the way, this "always set rw" behaviour is a departure
from Docker and it is not necesssary.

Signed-off-by: rcmadhankumar <madhankumar.chellamuthu@suse.com>
2025-04-23 17:18:03 +05:30
openshift-merge-bot[bot] a3e132055d
Merge pull request #25909 from baude/issue25884
Add ability to set layer media type for artifacts
2025-04-22 19:21:14 +00:00
openshift-merge-bot[bot] 5372c15bf8
Merge pull request #25892 from Regis-Caelum/quadlet-pod-hostname
Add HostName to quadlet pod
2025-04-22 12:52:04 +00:00
openshift-merge-bot[bot] 18de85bb14
Merge pull request #25940 from TomSweeneyRedHat/dev/tsweeney/bud_readme
[CI DOCS] Touchup buildah-bud README.md
2025-04-22 12:46:37 +00:00
Brent Baude 71504eedfb Output headers for volume ls when empty
To have consistency with other podman commands like `ps` and `images`,
`volume ls` should output its headers even when there are no volumes.

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

Signed-off-by: Brent Baude <bbaude@redhat.com>
2025-04-21 17:07:57 -05:00
tomsweeneyredhat 5494ac882a [CI DOCS] Touchup buildah-bud README.md
The README.md in test/buildah-bud had the old directory name for the
apply-podman-deltas file.  This change removes the `/` and adds a `-`
in that file name.

Signed-off-by: tomsweeneyredhat <tsweeney@redhat.com>
2025-04-21 17:05:07 -04:00
renovate[bot] 49b6faea09
chore(deps): update dependency setuptools to v79
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-20 16:01:15 +00:00
openshift-merge-bot[bot] 66954d7e7e
Merge pull request #25858 from Luap99/prefetch
test/system: add prefetch users to use cache image
2025-04-20 16:00:40 +00:00
Inshal Khan 4ba8cde41d
Add HostName to quadlet pod
update docs for hostname

Signed-off-by: Inshal Khan <kziaul123@gmail.com>
2025-04-19 08:51:45 +05:30
openshift-merge-bot[bot] f9eac5deb0
Merge pull request #25908 from Honny1/fix-ulimits-compat-api-with-rootless
Fix: Compat API in rootless mode ignores ulimits
2025-04-18 20:46:46 +00:00
openshift-merge-bot[bot] 3803429abb
Merge pull request #25918 from ricardobranco777/test_runc_namespaces
test: Fix expected output for runc on namespaces
2025-04-18 19:26:56 +00:00
Ricardo Branco a7a7304c6f
test: Fix expected output for runc on namespaces
Signed-off-by: Ricardo Branco <rbranco@suse.de>
2025-04-17 23:15:57 +02:00
Ygal Blum 6ac0a28564 Quadlet - support additional systemd unit relationship keys
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-04-17 14:51:24 -04:00
Brent Baude fdfed9979f Add ability to set layer media type for artifacts
in #25884, it was pointed out that the standard detection used to
determine the artifact's file type can be wrong.  in those cases, it
would be handy for the user to be able to override the media type of the
layer.  as such, added a new option called `--file-type`, which is
optional, and allows users to do just that.

`podman artifact add --file-type text/yaml
quay.io/artifact/config:latest ./config.yaml `

Fixes: #25884

Signed-off-by: Brent Baude <bbaude@redhat.com>
2025-04-17 10:36:21 -05:00
Jan Rodák 3cbb718049
Fix compat API in rootless mode ignores ulimits
Fixes: https://github.com/containers/podman/issues/25881

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2025-04-17 16:11:34 +02:00
openshift-merge-bot[bot] 51c4df1316
Merge pull request #25789 from jankaluza/23292
Replace podman pause image with rootfs.
2025-04-17 08:47:30 +00:00
Jan Kaluza 224e791161 Replace podman pause image with rootfs.
This commit removes the code to build a local pause
image from the Containerfile. It is replaced with
code to find the catatonit binary and include it in
the Rootfs.

This removes the need to build a local pause container
image.

The same logic is also applied to createServiceContainer
which is originally also based on the pause image.

Fixes: #23292

Signed-off-by: Jan Kaluza <jkaluza@redhat.com>
2025-04-17 08:36:27 +02:00
openshift-merge-bot[bot] 17f3aed4fd
Merge pull request #25899 from ygalblum/quadlet-unit-deps
Quadlet - translate dependencies on other quadlet units
2025-04-16 21:03:52 +00:00
Ygal Blum e498c6526b Quadlet - translate dependencies on other quadlet units
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-04-16 15:29:42 -04:00
Jan Rodák 69c2e68836
Fix directive `//nolint:revive` is unused for linter "revive" on ARM
Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2025-04-16 16:17:28 +02:00
Paul Holzinger 857b536507
test/system: add prefetch users to use cache image
When using a custom --root it will not have the image present and as
such cause a pull. We can however use our own local cache if present to
avoid the pull if we give the right podman options via
_PODMAN_TEST_OPTS.

I saw the volume quota test fail during the pull in openQA thus I
noticed this issue.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-04-15 12:36:40 +02:00
openshift-merge-bot[bot] 09c2546b27
Merge pull request #25844 from ygalblum/quadlet-network-delete
Quadlet - allow deleting the network when stopping the service
2025-04-14 17:57:45 +00:00
Paul Holzinger a4856a6224
test/system: add debug for /etc/hosts restore flake
Somehow the files do not match sometimes, I like to get data on the
/etc/hosts file on the host looks to see if this would explain anything.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-04-11 16:21:03 +02:00
Paul Holzinger 0849cbcf83
test/e2e: skip flaky restore into pod test
It is failing a lot, on the issue (#24571) there is a 100% reproducer
so we don't need to gather more data this is simply broken.

Reduce our flakes by skiping this until the main issue gets resolved.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-04-11 16:15:16 +02:00
Paul Holzinger 0fb78905c1
Revert "Instrument cleanup tracer to log weird volume removal flake"
This reverts commit d633824a95.

The issue has been fixed in commit 9a0c0b2eef and I have not seen it
since so remove this special case.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-04-11 15:12:33 +02:00
Paul Holzinger 0be44ccb20
test/system: add debug for healthcheck flake
Seen it a few times, the exit code differs but we didn't print the
command output so it hard to tell why podman errors out here.
This just adds the output and does not fix the flake.

https://api.cirrus-ci.com/v1/artifact/task/5368521426731008/html/sys-podman-fedora-41-rootless-host-boltdb.log.html

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-04-11 14:23:18 +02:00
Ygal Blum 0d4a148ee6 Quadlet - allow deleting the network when stopping the service
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-04-10 10:34:16 -04:00
openshift-merge-bot[bot] c2b5be1e8e
Merge pull request #25842 from ygalblum/quadlet-exec-reload
Quadlet - Add support for adding ExecReload command
2025-04-10 14:21:27 +00:00
Paul Holzinger 72fdc6476d
test/system: remove pasta conditional
Sinc v5.0 pasta is the default and if it would not be installed a ton of
tests would already fail. As such these conditional checks are
pointless and can be removed to simplify the tests.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-04-10 14:36:42 +02:00
Ygal Blum fe107ff0ce Quadlet - Add support for adding ExecReload command
Add tests
Update man page

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2025-04-09 14:40:41 -04:00
openshift-merge-bot[bot] 988e2910d5
Merge pull request #25823 from iphands/main
cmd: Fix help text. --config specifies a dir not a regular file
2025-04-09 17:47:03 +00:00
openshift-merge-bot[bot] 671b240236
Merge pull request #25831 from Luap99/test-doc
update hack/bats to not PASS NOP env and update test README with more system test info
2025-04-09 00:59:18 +00:00
Ian Page Hands 76a4fdc358 cmd: Fix help text. --config specifies a dir not a regular file
This `--config` option was initially added here:
4e4c3e3dbf

Under the hood this simply modifies env to set DOCKER_CONFIG=<passed
in string>

The DOCKER_CONFIG env var is used as a directory that contains
multiple config files... of which podman and container libs probably
only use `$DIR/config.json`.
See: https://docs.docker.com/reference/cli/docker/#environment-variables

The old CMD and help text was misleading... if we point the at a
regular file we can see errors like:
```
$ touch /tmp/foo/tmpcr9zrx71
$ /bin/podman --config /tmp/foo/tmpcr9zrx71 build -t foobar:latest
Error: creating build container: initializing source docker://quay.io/centos/centos:stream9: getting username and password: reading JSON file "/tmp/foo/tmpcr9zrx71/config.json": open /tmp/foo/tmpcr9zrx71/config.json: not a directory
```
^^ In this case we had created `/tmp/foo/tmpcr9zrx71` as a regular file.

Signed-off-by: Ian Page Hands <iphands@gmail.com>
2025-04-08 13:53:34 -07:00
openshift-merge-bot[bot] fd8ed0b2f2
Merge pull request #25796 from Luap99/kube-pod-empty
quadlet kube: consider empty pod as running
2025-04-08 14:07:42 +00:00
Paul Holzinger 85caf3fbb5
test: update README for system test
Clarify that system test specifc configuration must be done via config
files and not via ad hoc environment variables like in test/e2e.

Also not that we only run the tests with crun so other runtimes may not
work but we accept patches to make them work with runc, e.g. Suse folks
currently run them with runc and contribute patches for them.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-04-08 15:43:45 +02:00
openshift-merge-bot[bot] 62fe2e0f28
Merge pull request #25815 from giuseppe/fix-hostuser
libpod: --user works with  --hostuser entries
2025-04-08 13:42:24 +00:00