Commit Graph

3457 Commits

Author SHA1 Message Date
Alex Palaistras
6cb2f9b122 quadlet: Support healthy for Notify directives
This expands support for the (previously) boolean `Notify` directive, in
support of healthcheck determined SD-NOTIFY event emission, as
supported by Podman with the `--sdnotify=healthy` option.

Closes: #18189
Signed-off-by: Alex Palaistras <alex@deuill.org>
2023-11-21 18:08:48 +00:00
openshift-merge-bot[bot]
149d4f079a Merge pull request #20161 from edsantiago/ci_desired_storage
CI: test overlay and vfs
2023-11-18 20:59:17 +00:00
Miloslav Trmač
d0b32255e4 Add support for --compat-auth-file in login/logout
This mostly just inherits the c/common/pkg/auth implementation,
except that AuthFilePath and DockerCompatAuthFilePath can not be set
simultaneously, so don't unnecessarily explicitly set AuthFilePath.
c/common already handles that.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2023-11-17 16:44:06 +01:00
Miloslav Trmač
a3d5814e0e Update tests for a c/common error message change
Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2023-11-17 16:44:06 +01:00
Ed Santiago
a10b88cb2f CI: test overlay and vfs
We're only testing vfs in CI. That's bad. #18822 tried to
remedy that but that only worked on system tests, not e2e.

Here we introduce CI_DESIRED_STORAGE, to be set in .cirrus.yml
in the same vein as all the other CI_DESIRED_X. Since it's 2023
we default to overlay, testing vfs only in priorfedora.

Fixes required:
 - e2e tests:
   - in cleanup, umount ROOT/overlay to avoid leaking mounts

 - system tests:
   - fix a few badly-written tests that assumed/hardcoded overlay
   - buildx test: add weird exception to device-number test
   - mount tests: add special case code for vfs
   - unprivileged test: disable one section that is N/A on vfs

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-11-17 05:48:50 -07:00
Ed Santiago
d2a4ec867d Test fixes for debian
Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-11-16 15:14:36 -07:00
openshift-merge-bot[bot]
638199c495 Merge pull request #20671 from ygalblum/quadlet-uidmap
Quadlet - add support for UID and GID Mapping
2023-11-16 15:40:37 +00:00
Ygal Blum
e35fc92c02 Quadlet - add support for UID and GID Mapping
Support UIDMap, GIDMap, SubUIDMap and SubGIDMap
If any of them are set disregard the deprecated Remap keys
Add tests and man

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2023-11-15 12:10:22 +02:00
Ygal Blum
dc709e4d76 Quadlet - Allow using symlink on the base search paths
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2023-11-15 09:58:28 +02:00
Ed Santiago
047da19b5f (Temporary) Emergency CI fix: quay search is broken
Someone please revert this once quay search is fixed.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-11-13 06:52:10 -07:00
openshift-merge-bot[bot]
8e6fe99fdb Merge pull request #20662 from ygalblum/quadlet-mount-equal-sign
Quadlet test - add case for multi = sign in mount
2023-11-13 08:09:50 +00:00
Ygal Blum
bd375058cf Quadlet test - add case for multi = sign in mount
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2023-11-12 10:10:42 +02:00
Ed Santiago
6b5b399121 CI: e2e: fix a smattering of test bugs that slipped in
...while Ed was napping:
 - create/run based on remote image: was not actually testing anything
 - create/run --tls-verify: ditto
 - run --decryption-key: sort of testing but not really
 - Fail(), not Skip(), if we can't start registry.
 - never Skip() halfway through a test: emit a message, and return

The Skip-in-the-middle thing deserves to be shouted from the rooftops.
Let's please never do that again. Skip() says "this entire test was
skipped", which can be misleading to a spelunker trying to track
down a problem related to those tests.

Also, more minor:
 - reduce use of port 5000
 - rename a confusingly-named test

Ref: #11205, #12009

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-11-10 13:41:34 -07:00
openshift-merge-bot[bot]
7d107b9892 Merge pull request #19879 from rhatdan/ulimits
Support passing of Ulimits as -1 to mean max
2023-11-10 10:47:43 +00:00
Brent Baude
78798cab00 Automatic code cleanups - JetBrains
A bunch of cleanups as suggested by linters/etc in JetBrains IDE.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2023-11-07 14:05:15 -06:00
openshift-ci[bot]
b44d372b1b Merge pull request #20559 from edsantiago/ci_default_sqlite
CI: default to sqlite
2023-11-03 18:56:29 +00:00
Aditya R
607aff55fa remote,test: remove .dockerignore which is a symlink
It seems certain test infrastructure prevents cloning repo which
contains symlink outside of the repo itself, generate symlink for such
test by the testsuite itself just before running test and remove it when
test is completed.

Signed-off-by: Aditya R <arajan@redhat.com>
2023-11-03 20:39:02 +05:30
Ed Santiago
2a17baa29d CI: default to sqlite
Followup to #20318: now that sqlite is the podman default,
enforce that in CI as well. Test boltdb only in Prior Fedora.

In the process, discovered & cleaned up some duplication
and unused YAML anchors.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-11-02 13:17:21 -06:00
Daniel J Walsh
af0ef47f0c Add status messages to podman --remote commit
Fixes: https://github.com/containers/podman/issues/19947

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-11-01 14:31:09 -04:00
Daniel J Walsh
18d6bb40d5 Support passing of Ulimits as -1 to mean max
Docker allows the passing of -1 to indicate the maximum limit
allowed for the current process.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-11-01 08:46:55 -04:00
Matthew Heon
be7dd128ef Mask /sys/devices/virtual/powercap
I don't really like this solution because it can't be undone by
`--security-opt unmask=all` but I don't see another way to make
this retroactive. We can potentially change things up to do this
the right way with 5.0 (actually have it in the list of masked
paths, as opposed to adding at spec finalization as now).

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2023-10-26 18:24:25 -04:00
Ed Santiago
c841fa9e9a CI: e2e: safer GetPort()
Problem: frequent CI flakes of the form:

   Error: cannot listen on the TCP port: listen tcp4 :5355: bind: address already in use

Always 5355.

Cause: systemd-resolve listens on 5355, but not on 127.0.0.1. So
when GetPort() tries its is-it-in-use check by binding localhost,
it succeeds; but then podman binds * and fails.

Solution: GetPort(): test by binding 0.0.0.0.

Also, improve the failure message.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-10-26 05:52:02 -06:00
openshift-ci[bot]
0242a7439e Merge pull request #20470 from edsantiago/curl_port_flake_fix
CI: try to fix more networking flakes
2023-10-25 21:17:03 +00:00
Ed Santiago
c0fb8fe594 CI: try to fix more networking flakes
There's a whole slew of networking-related flakes whose common
element seems to be improper use of curl. Fix those by:

  * add --retry --retry-connrefused; and/or
  * add -S ("show errors". Plain -s silences everything!); and/or
  * test exit status from curl; and/or
  * add wait_for_port after "podman run -d", to avoid races
  * log commands, to make debugging easier

Important note: wait_for_port() was not working with rootless
podman ports. Trivial proof:

  $ podman run -d --name foo -p 8192:80 \
      quay.io/libpod/testimage:20221018 \
      /bin/busybox-extras httpd -f -p 80
  $ grep :2000 /proc/net/tcp
  [no results]

Solution: use ss tool; it seems to handle this just fine.
There may be a better solution.

Oh, also, add -t1 to a podman restart, to shave 18s from test run.

Fixes: #20335 and, I think, a handful of others

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-10-25 07:24:16 -06:00
Ygal Blum
76cca08f8a Quadlet - explicit support for read-only-tmpfs
Add Quadlet key and disconnect relationship withr read-only
Update and add tests
Update man with new key

Remove the reference to VolatileTmpfs in the man page to reduce its
usage, since the same functionality can be achieved using the Tmpfs key
while keeping its support to maintain backward compatibility

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2023-10-25 13:28:15 +03:00
openshift-ci[bot]
83d7c3849f Merge pull request #20464 from Luap99/libpod-remote
add !remote tag to packages that should not be included in the remote client + vendor c/common
2023-10-24 15:33:03 +00:00
Paul Holzinger
1b466ccbdc test/e2e: do not import buildah
We only care about the version so just import the define package for it,
the main buildah package causes big transitive imports which fail to
build with the remote tag (i.e. libimage)

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-10-24 13:52:15 +02:00
Ed Santiago
c3ba0221ec ginkgo setup: retry cache pulls
Because all registries flake.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-10-23 19:29:18 -06:00
Ed Santiago
85cc4092fc CI: stop using registry.k8s.io
It's flaky.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-10-23 11:50:41 -06:00
Paul Holzinger
29273cda10 lint: fix warnings found by perfsprint
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-10-20 16:27:46 +02:00
Urvashi Mohnani
936e30f68b Use node hostname in kube play when hostNetwork=true
When the hostNetwork option is set to true in the k8s yaml,
set the pod's hostname to the name of the machine/node as is
done in k8s. Also set the utsns to host.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2023-10-19 12:22:58 -04:00
Daniel J Walsh
285718915c Allow systemd specifiers in User and Group Quadlet keys
Replaces: https://github.com/containers/podman/pull/18262

Signed-off-by: Tom Mombourquette <tom@devnode.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-10-18 09:23:35 -04:00
openshift-ci[bot]
ef2392f21c Merge pull request #20381 from vrothberg/fix-20375
image history: fix walking layers
2023-10-18 10:37:48 +00:00
Valentin Rothberg
831844b596 image history: fix walking layers
libimage did not walk thte layers correctly which was probably
inherited by old Podman code.  Fix that by vendoring in the
corresponding changes in c/common.

Fixes: #20375
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-10-18 09:19:24 +02:00
openshift-ci[bot]
b0a45a905b Merge pull request #20366 from ygalblum/quadlet-kube-down-force
Quadlet - add support for KubeDownForce
2023-10-17 19:50:45 +00:00
Ygal Blum
5d5facbd79 Quadlet - add support for KubeDownForce
Allow users to set --force for Stop command
Add doc and tests

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2023-10-17 14:43:01 +03:00
Daniel J Walsh
9637fed2fd Fix output of podman --remote top
Allow users to specify

podman-remote top $cid -eo "pid comm"
or
podman-remote top $cid -eo pid,comm

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

didid#	new file:   test/system/085-top.bats

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-10-16 17:25:10 -04:00
Aditya R
331e47acb1 test: build with TMPDIR as relative
Test edge-case described here: https://github.com/containers/buildah/pull/5084
Test case in: RHEL-2598

Signed-off-by: Aditya R <arajan@redhat.com>
2023-10-16 14:02:31 +05:30
Brent Baude
29f5c563e4 Show client info even if remote connection fails
When people report issues, we often ask for the result of `podman info`.
However, if the problem is the remote connection, it will error out with
no information at all.  This PR at least will report client information
before disclosing the connection error.  For example on Windows:

> .\bin\windows\podman.exe info
client:
  OS: windows/amd64
  provider: hyperv
  version: 4.8.0-dev
  host: null

Satisfies: RUN-1720

Signed-off-by: Brent Baude <bbaude@redhat.com>
2023-10-13 08:53:56 -05:00
Ygal Blum
702f155288 Quadlet - support oneshot .kube files
Allow users to manually set the Service Type
Add test
Update README

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2023-10-11 18:56:29 +03:00
Paul Holzinger
29ae516006 use sqlite as default database
Use sqlite as default but for upgrades it will still use boltdb to avoid
breaking anyone. This is done by checking if the boltdb file already
exists and if it does then we have to use it.

I added a e2e test to check the new logic and removed the system test
for it, the problem with the system test is that we share the storage
dir there so all following commands without --db-backend would try to
use boltdb as a single --db-backend boltdb command will create the file
and then all folllwing commands will use it because of the backwards
compat. In e2e tests each test uses their own --root so it is not an
issue there.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-10-10 17:11:28 +02:00
openshift-ci[bot]
6e7e87503c Merge pull request #20253 from ygalblum/quadlet-command-args
Quadlet - add support for global arguments
2023-10-09 09:01:36 +00:00
Ygal Blum
d321d427dc Quadlet - add support for global arguments
Add support for adding podman level arguments before subcommand
Add specific key for Containers Conf Modules
Global arguments are added for both start and stop commands
Adjust testing environment
Add tests
Add to man page

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2023-10-08 10:14:06 +03:00
openshift-ci[bot]
3b39d4b082 Merge pull request #20132 from cgiradkar/Issue-17856
Change log level for health_check
2023-10-04 17:59:32 +00:00
Chetan Giradkar
7e6e267329 Filter health_check and exec events for logging in console
Podman server logs are mostly full of healthcheck output, making them hard to navigate. Hence, made healthcheck service to run with LogLevelMax=notice, this would remove the normal output, inclusive the started/stopped messages from systemd itself.

Fixes #17856

Signed-off-by: Chetan Giradkar <cgiradka@redhat.com>
2023-10-04 14:50:15 +01:00
Aditya R
b576b79329 test, manifest: test push retry
Test: https://github.com/containers/common/pull/1666

Signed-off-by: Aditya R <arajan@redhat.com>
2023-10-03 20:38:02 +05:30
openshift-ci[bot]
fe828d2238 Merge pull request #20192 from umohnani8/images
Fix broken podman images filters
2023-10-02 17:49:40 +00:00
OpenShift Merge Robot
bbd9590b47 Merge pull request #20194 from umohnani8/kube-mode
Add DefaultMode to kube play
2023-10-02 03:52:34 -04:00
Urvashi Mohnani
17cebb3ff8 Add DefaultMode to kube play
Add support for DefaultMode for configMaps and secrets.
This allows users to set the file permissions for files
created with their volume mounts. Adheres to k8s defaults.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2023-09-29 11:58:38 -04:00
Urvashi Mohnani
ba788c1bb8 Fix broken podman images filters
The id, digest, and intermediate filters were broken
for podman images. Fix to match on substrings instead of
the whole string for id and digest. Add the intermediate value
correctly when set.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2023-09-29 11:39:49 -04:00