Commit Graph

7089 Commits

Author SHA1 Message Date
Nalin Dahyabhai
279c592378 Build the dumpspec test helper for the buildah bud tests
Newer versions expect to use a new test helper.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2025-06-04 14:35:51 -04:00
Matthew Heon
61403afeaf 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>
(cherry picked from commit b276e7ef21)
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-04 11:40:00 +02:00
Jan Kaluza
ee2370bc26 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>
(cherry picked from commit 3a981915f0)
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-04 11:39:49 +02:00
Jan Rodák
d71fbe7ba8 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>
(cherry picked from commit e66ff395b7)
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-04 11:39:44 +02:00
Povilas Kanapickas
8e120c93bd specgen/generate: Fix log tag priority
Currently setting log_tag from containers.conf will override any value
set via --log-opt tag=value option. This commit fixes this.

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

Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
(cherry picked from commit a17f8afbbc)
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-04 11:37:08 +02:00
Paul Holzinger
c5ac361844 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>
(cherry picked from commit 415668c802)
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-04 11:37:02 +02:00
Paul Holzinger
8542247538 libpod: don't force only network search domains
We like to append the host servers in that case so that we do not only
force dns.podman.

Fixes: #24713
Fixes: https://issues.redhat.com/browse/RHEL-83787

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
(cherry picked from commit 75dc508e98)
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-04 11:36:26 +02:00
Paul Holzinger
04447cc322 test/system: check --dns-option behavior
We should fully replace the options, now that we vendored the
libnetwork/resolvconf changes into podman this just works.

Fixes: #22399

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
(cherry picked from commit 89b8e23385)
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2025-06-04 11:36:26 +02:00
Jan Kaluza
25e59c7dd2 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-28 14:38:56 +00:00
Cesar Goncalves
82a1a22711 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-05-06 20:24:36 +00:00
Giuseppe Scrivano
b85c312bc6 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-05-02 10:14:29 +00:00
Giuseppe Scrivano
1c82abd17b 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-05-02 10:14:29 +00:00
Giuseppe Scrivano
6bc2393df0 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-05-02 10:14:29 +00:00
flouthoc
58a934313f Added tests for inheritlabel fix
Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2025-04-28 17:38:19 +00:00
Paul Holzinger
7a9acf2d51 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 18:58:39 +00:00
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