Commit Graph

6223 Commits

Author SHA1 Message Date
Ed Santiago
80c3a22440 ExitWithError() - more low-hanging fruit
Followup to #22270: wherever possible/practical, extend command
error checks to include explicit exit status codes and error strings.

More low-hanging fruit: small reviewable chunks

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-24 07:11:40 -06:00
openshift-merge-bot[bot]
318437f7b5 Merge pull request #22455 from edsantiago/e2e-stop-littering
e2e tests: stop littering
2024-04-22 14:31:09 +00:00
openshift-merge-bot[bot]
6d347927a6 Merge pull request #22443 from Luap99/podman-healthcheck-events
add containers.conf healthcheck_events support
2024-04-22 13:49:52 +00:00
Ed Santiago
ac04cb4ac5 e2e tests: stop littering
"tmpdir + string" does not do what you think it does.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-22 06:43:19 -06:00
openshift-merge-bot[bot]
c2cadfb5c5 Merge pull request #22322 from mheon/update_the_config
Make `podman update` changes persistent
2024-04-22 07:50:48 +00:00
Paul Holzinger
2ae6d0d4dd add containers.conf healthcheck_events support
When the field is set to false we should never log healthcheck events.

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

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-19 17:29:48 +02:00
Giuseppe Scrivano
1991990d5a pkg/specgen: use fileutils.(Le|E)xists
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-19 09:52:14 +02:00
Giuseppe Scrivano
598fc516a6 vendor: update containers/{buildah,common,image,storage}
The change in healthcheck_run_test.go, depends on the
containers/image change:

commit b6afa8ca7b324aca8fd5a7b5b206fc05c0c04874
Author: Mikhail Sokolov <msokolov@evolution.com>
Date:   Fri Mar 15 13:37:44 2024 +0200

    Add support for Docker HealthConfig.StartInterval (v25.0.0+)

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-19 09:52:13 +02:00
Paul Holzinger
b1736c472a test/compose: remove compose v1 code
Now that we only test compose v2 remove the special cases from the test
code to simply the tests.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-18 14:48:37 +02:00
Evgeni Golov
7b3456b5d9 add list as an alias to list networks
this makes it consistent with other commands,
but also makes the example actually work

Signed-off-by: Evgeni Golov <evgeni@golov.de>
2024-04-17 17:10:22 +02:00
Matt Heon
482ef7bfcf Add support for updating restart policy
This is something Docker does, and we did not do until now. Most
difficult/annoying part was the REST API, where I did not really
want to modify the struct being sent, so I made the new restart
policy parameters query parameters instead.

Testing was also a bit annoying, because testing restart policy
always is.

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-04-17 08:23:51 -04:00
Matt Heon
ddea30e40e Add Compat API for Update
The Docker endpoint here is kind of a nightmare - accepts a full
Resources block, including a large number of scary things like
devices. But it only documents (and seems to use) a small subset
of those. This implements support for that subset. We can always
extend things to implement more later if we have a need.

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-04-17 08:23:51 -04:00
Matt Heon
be3f075402 Make podman update changes persistent
The logic here is more complex than I would like, largely due to
the behavior of `podman inspect` for running containers. When a
container is running, `podman inspect` will source as much as
possible from the OCI spec used to run that container, to grab
up-to-date information on things like devices. We don't want to
change this, it's definitely the right behavior, but it does make
updating a running container inconvenient: we have to rewrite the
OCI spec as part of the update to make sure that `podman inspect`
will read the correct resource limits.

Also, make update emit events. Docker does it, we should as well.

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-04-17 08:23:50 -04:00
Ed Santiago
7ef0290a1d Emergency fix (well, skip) for failing bud tests
nixery registry has been down all day. Disable test.

Someone will need to fix this on the buildah end.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-16 17:21:04 -06:00
renovate[bot]
3dc69a01e3 chore(deps): update module golang.org/x/crypto to v0.17.0 [security]
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 17:41:53 +00:00
openshift-merge-bot[bot]
2364b90736 Merge pull request #22357 from Luap99/swagger
fix api swagger docs
2024-04-15 17:40:39 +00:00
renovate[bot]
0e291ce760 chore(deps): update dependency setuptools to ~=69.5.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-13 17:31:33 +00:00
Paul Holzinger
5e9725983d install swagger from source
First of all this removes the need for a network connection, second
renovate can update the version as it is tracked in go.mod.

However the real important part is that the binary downloads are
broken[1]. For some reason the swagger created with them does not
include all the type information for the examples. However when building
from source the same thing works fine.

[1] https://github.com/go-swagger/go-swagger/issues/2842

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-12 15:26:34 +02:00
openshift-merge-bot[bot]
b8a684b64d Merge pull request #22347 from rhatdan/exec
podman exec CID without command should exit 125
2024-04-12 12:51:35 +00:00
Daniel J Walsh
5e68fbd132 podman exec CID without command should exit 125
Fixes: https://github.com/containers/podman/issues/22329

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2024-04-12 07:44:22 -04:00
openshift-merge-bot[bot]
e1ec17a569 Merge pull request #22352 from edsantiago/systest-prefetch
(minor) prefetch systemd image before use
2024-04-12 10:52:54 +00:00
openshift-merge-bot[bot]
4b2c7f272e Merge pull request #22319 from Luap99/exposed-ports-ps
podman ps: show exposed ports under PORTS as well
2024-04-12 10:11:43 +00:00
Ed Santiago
df69b36ee5 (minor) prefetch systemd image before use
Two system tests were relying on $SYSTEMD_IMAGE but were not
running _prefetch. This led to baffling flakes that wasted
my time. (Quay flakes, of course. New manifestation.)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-11 13:48:27 -06:00
openshift-merge-bot[bot]
d65f3996dd Merge pull request #21889 from containers/renovate/pytest-8.x
chore(deps): update dependency pytest to v8
2024-04-11 15:09:50 +00:00
openshift-merge-bot[bot]
8a7c3ea2f5 Merge pull request #22266 from baude/run2077
Add os, arch, and ismanifest to libpod image list
2024-04-11 15:01:32 +00:00
Brent Baude
08a49389c8 Add os, arch, and ismanifest to libpod image list
when listing images through the restful service, consumers want to know
if the image they are listing is a manifest or not because the libpod
endpoint returns both images and manifest lists.

in addition, we now add `arch` and `os` as fields in the libpod endpoint
for image listing as well.

Fixes: #22184
Fixes: #22185

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-04-11 08:46:37 -05:00
Ed Santiago
67c6d7ec80 vendor ginkgo 2.17.1 into test/tools
...to match the version in root dir, to get rid of the mismatch
warning on every ginkgo run.

The last bump was done by renovatebot; I don't know why bot didn't
do it this time.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-10 15:18:42 -06:00
Paul Holzinger
999d6c0750 fix "concurrent map writes" in network ls compat endpoint
Not sure why this only triggers now but this code was broken for a
while. It is racy as reported on the issue but because it changes the
actual map part of the network backend it means it can also alter the
behavior of the network which is very bad.

Fixes #22330

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-10 18:41:20 +02:00
renovate[bot]
26f866b5df chore(deps): update dependency pytest to v8
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 12:39:09 +00:00
Ed Santiago
2d9159821a e2e: redefine ExitWithError() to require exit code
...and an optional error-message string, to be checked
against stderr.

This is a starting point and baby-steps progress toward #18188.
There are 249 ExitWithError() checks in test/e2e. It will take
weeks to fix them all. This commit enables new functionality:

    Expect(ExitWithError(125, "expected substring"))

...while also allowing the current empty-args form. Once
all 249 empty-args uses are modernized, the matcher code
will be cleaned up.

I expect it will take several months of light effort to get
all e2e tests transitioned to the new form. I am choosing to
do so in pieces, for (relative) ease of review. This PR:

  1) makes the initial changes described above; and
  2) updates a small subset of e2e _test.go files such that:
     a) ExitWithError() is given an exit code and error string; and
     b) Exit(Nonzero) is changed to ExitWithError(Nonzero, "string")
        (when possible)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-10 06:35:52 -06:00
Paul Holzinger
0bedf7f1d2 podman ps: show exposed ports under PORTS as well
Docker shows exposed ports as just PORT/PROTO so match that behavior. It
is not clear to me why someone needs that information in ps as "expose"
doesn't effect anything networking related.

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

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-10 14:24:23 +02:00
openshift-merge-bot[bot]
9fc46dfb67 Merge pull request #22314 from edsantiago/blow-a-fuse
e2e tests: remove requirement for fuse-overlayfs
2024-04-09 19:33:40 +00:00
renovate[bot]
266801bf2d fix(deps): update module golang.org/x/tools to v0.20.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 11:42:31 +00:00
Ed Santiago
847ca1f9ea e2e tests: remove requirement for fuse-overlayfs
As of April 2024, it's no longer included in rawhide by default.
We could force-install it, but it's 2024 and it seems likely
that all systems on which Podman 5 will run will have kernels
that support native overlay.

I also added two debugging printfs to the 'podman info' test
that initially failed on an (unpublished) rawhide VM. Without
these printfs it was impossible to diagnose the failure.

Updating docs is left as a future exercise.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-09 05:25:20 -06:00
openshift-merge-bot[bot]
447d3e2a44 Merge pull request #22277 from Luap99/runroot
podman --runroot: remove 50 char length restriction
2024-04-06 11:12:07 +00:00
openshift-merge-bot[bot]
19600fa5e3 Merge pull request #22265 from containers/renovate/requests-mock-1.x
Update dependency requests-mock to ~=1.12.1
2024-04-05 16:27:27 +00:00
Paul Holzinger
fcf9327773 podman --runroot: remove 50 char length restriction
This was added ages ago in commit c65b3599cc, however in the meantime
both podman and conmon can support longer socket paths as they use a
workaround to open the path via /proc/self/fd, see openUnixSocket() in
libpod/oci_conmon_attach_linux.go

Thus this restriction is not needed anymore and we can drop a workaround
in the tests.

Fixes #22272

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-05 14:41:50 +02:00
renovate[bot]
beb4fd1b4a Update dependency requests-mock to ~=1.12.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-04 18:37:25 +00:00
Paul Holzinger
f2c365c6f6 rm --force work for more than one arg
When we remove with --force we do not return a error if the input does
not exists, however if we get more than on input we must try to remove
all and not just NOP out and not remove anything just because one arg
did not exists.

Also make the code simpler for commands that do have the --ignore option
and just make --force imply --ignore which reduces the ugly error
handling.

Fixes #21529

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-04 17:47:28 +02:00
openshift-merge-bot[bot]
8ab4bc9250 Merge pull request #22243 from Luap99/rootless-netns
vendor latest c/common to fix rootless-netns issues
2024-04-04 11:40:35 +00:00
openshift-merge-bot[bot]
0106e5929d Merge pull request #22245 from giuseppe/do-not-chown-again-with-U
container: do not chown to dest target with U
2024-04-03 15:33:34 +00:00
openshift-merge-bot[bot]
6b9b85e011 Merge pull request #22175 from edsantiago/skip_if_no_slirp
systests: conditionalize slirp4netns tests
2024-04-03 13:32:19 +00:00
Paul Holzinger
a61ae8c0a9 test/system: add rootless-netns test for setup errors
This is a test for #22168.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-03 15:01:51 +02:00
Giuseppe Scrivano
519a66c6a9 container: do not chown to dest target with U
if the 'U' option is provided, do not chown the destination target to
the existing target in the image.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-03 14:41:33 +02:00
Ed Santiago
d27313ad10 systests: conditionalize slirp4netns tests
As of podman 5.0, slirp4netns is a soft dependency. It might
not be installed on a host (and, in gating tests, is not).
Deal with it.

Use podman itself, not 'which', to tell us if slirp4netns
is available. We don't want to duplicate podman's path-check
logic. Since this check is expensive, cache the result.

(Change the has_pasta check similarly)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-03 05:49:21 -06:00
Ed Santiago
e697631af9 CI: systests: instrument flaky tests
Three infrequent flakes. Add debug code to help track
down if/when they happen again.

And, one of them, fix a logic bug that will save us 8-10s
on system tests runs.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-03 05:26:51 -06:00
Giuseppe Scrivano
7d68362cf5 test: do not skip tests under rootless
there are no overlay mounts in the "podman run with --volume and U
flag" tests so no need to skip them.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-04-03 11:02:16 +02:00
openshift-merge-bot[bot]
e1f49529fa Merge pull request #22229 from giuseppe/fix-idmap-existing-volume
libpod: use original IDs if idmap is provided
2024-04-01 19:08:29 +00:00
Giuseppe Scrivano
d81319eb71 libpod: use original IDs if idmap is provided
if the volume is mounted with "idmap", there should not be any mapping
using the user namespace mappings since this is done at runtime using
the "idmap" kernel feature.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-03-31 23:46:17 +02:00
Ed Santiago
aab4674feb CI: Bump VMs to 2024-03-28
Emergency update to get pasta 03-26. Also gives us crun 1.14.4.

One unexplained difference: fc39 and rawhide now create:

    /run/log/journal/SOMETHING/system.journal

...and the SOMETHING is o-rwx. This triggers journalctl to spit out a warning:

    Hint: You are currently not seeing messages from the system.
          Users in groups 'adm', 'systemd-journal', 'wheel' can see all messages.
          Pass -q to turn off this notice.

...which in turn causes ExitCleanly() to fail.

It is not clear who/what is creating this journal directory, or
why it allofasudden started just now. Workaround is to add -q
to journalctl in one test.

One more difference, another test now requires SYSLOG capability.

VM package info:
    https://github.com/containers/automation_images/pull/342

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-03-28 08:35:29 -06:00