Commit Graph

4301 Commits

Author SHA1 Message Date
OpenShift Merge Robot
b231e73c20 Merge pull request #15633 from thediveo/events
Closes #15617: emit container labels for container exited and exec died events
2022-09-07 10:39:38 +02:00
OpenShift Merge Robot
db5ec4dcdc Merge pull request #15547 from vrothberg/RUN-1606
Support auto updates for Kubernetes workloads
2022-09-06 21:38:54 +02:00
Harald Albrecht
d759576ab3 emit container labels also for container exited and exec died events
- adds unit test for container labels on container die event
- implements #15617

Signed-off-by: Harald Albrecht <harald.albrecht@gmx.net>
2022-09-06 20:29:44 +02:00
OpenShift Merge Robot
cd09e3b6d0 Merge pull request #15644 from Luap99/event-format
fix podman events with custom format
2022-09-06 15:56:20 +02:00
OpenShift Merge Robot
46e9178ef6 Merge pull request #15639 from fj-tsubasa/system-test-proxy
system tests: fix some tests in proxy environment
2022-09-06 15:53:45 +02:00
OpenShift Merge Robot
4e06aa3771 Merge pull request #15584 from sstosh/generate-systemd-env
Add generate systemd -e/--env option
2022-09-06 15:40:55 +02:00
Paul Holzinger
77ab6125f2 remove SkipIfNotFedora() from events test
They should work on all distros.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-06 13:57:06 +02:00
Paul Holzinger
d22aeeec28 fix podman events with custom format
podman events --format {{.ID}} was not working since the template was
converted to a range but we only render each event individually.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-06 13:56:26 +02:00
Toshiki Sonoda
a9a411f8a8 Add generate systemd -e/--env option
-e/--env option sets environment variables to the systemd unit files.

Fixes: #15523

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-09-06 20:17:11 +09:00
Valentin Rothberg
274d34a25a kube play: support auto updates and rollbacks
Add auto-update support to `podman kube play`.  Auto-update policies can
be configured for:
 * the entire pod via the `io.containers.autoupdate` annotation
 * a specific container via the `io.containers.autoupdate/$name` annotation

To make use of rollbacks, the `io.containers.sdnotify` policy should be
set to `container` such that the workload running _inside_ the container
can send the READY message via the NOTIFY_SOCKET once ready.  For
further details on auto updates and rollbacks, please refer to the
specific article [1].

Since auto updates and rollbacks bases on Podman's systemd integration,
the k8s YAML must be executed in the `podman-kube@` systemd template.
For further details on how to run k8s YAML in systemd via Podman, please
refer to the specific article [2].

An examplary k8s YAML may look as follows:
```YAML
apiVersion: v1
kind: Pod
metadata:
  annotations:
      io.containers.autoupdate: "local"
      io.containers.autoupdate/b: "registry"
  labels:
    app: test
  name: test_pod
spec:
  containers:
  - command:
    - top
    image: alpine
    name: a
  - command:
    - top
    image: alpine
    name: b
```

[1] https://www.redhat.com/sysadmin/podman-auto-updates-rollbacks
[2] https://www.redhat.com/sysadmin/kubernetes-workloads-podman-systemd

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-06 08:56:55 +02:00
Tsubasa Watanabe
04f0ac2aab system tests: fix some tests in proxy environment
Some system tests in `255-auto-update.bats` and `500-networking.bats`
fail under proxy environment.
This PR fixes this problem.

Signed-off-by: Tsubasa Watanabe <w.tsubasa@fujitsu.com>
2022-09-06 14:22:31 +09:00
OpenShift Merge Robot
5c7f283361 Merge pull request #15618 from mheon/add_group_to_addtlgroups
Add container GID to additional groups
2022-09-05 00:16:51 +02:00
OpenShift Merge Robot
7cc2543433 Merge pull request #15605 from TomSweeneyRedHat/dev/tsweeney/adjusttest
Update test per comment in #15555
2022-09-04 14:24:00 +02:00
Matthew Heon
d82a41687e Add container GID to additional groups
Mitigates a potential permissions issue. Mirrors Buildah PR #4200
and CRI-O PR #6159.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-09-02 15:51:36 -04:00
OpenShift Merge Robot
c5da5e459a Merge pull request #15599 from umohnani8/gen-kube
Fix bind-mount-option annotation in gen/play kube
2022-09-02 20:12:25 +02:00
OpenShift Merge Robot
9ab6449e36 Merge pull request #15587 from edsantiago/skip_ubuntu_flake
CI: disable flaking test on ubuntu
2022-09-02 00:05:07 +02:00
tomsweeneyredhat
c05b6e5d3b Update test per comment in #15555
While backporting a test from main, @edsantiago asked that
the test be adjusted as noted here:
https://github.com/containers/podman/pull/15555#issuecomment-1232791752.

This PR brings those same changes to main for posterity sake.

Signed-off-by: tomsweeneyredhat <tsweeney@redhat.com>
2022-09-01 15:55:42 -04:00
Charlie Doern
050f3291b9 implement podman update
podman update allows users to change the cgroup configuration of an existing container using the already defined resource limits flags
from podman create/run. The supported flags in crun are:

this command is also now supported in the libpod api via the /libpod/containers/<CID>/update endpoint where
the resource limits are passed inthe request body and follow the OCI resource spec format

–memory
–cpus
–cpuset-cpus
–cpuset-mems
–memory-swap
–memory-reservation
–cpu-shares
–cpu-quota
–cpu-period
–blkio-weight
–cpu-rt-period
–cpu-rt-runtime
-device-read-bps
-device-write-bps
-device-read-iops
-device-write-iops
-memory-swappiness
-blkio-weight-device

resolves #15067

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-09-01 13:02:01 -04:00
Urvashi Mohnani
4a1acccf96 Fix bind-mount-option annotation in gen/play kube
The format used for setting the bind-mount-options annotations
in the kube yaml was incorrect and caused k8s to throw an error
when trying to play the generated kube yaml.
Fix the annotation format to match the rules of k8s.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-09-01 11:51:46 -04:00
Ed Santiago
64eb079415 CI: disable flaking test on ubuntu
See https://github.com/containers/conmon/pull/352

As of a few days ago, Ubuntu still hadn't built a fixed conmon.
Just skip the test until we get a fixed Ubuntu or until we
figure out a better solution to the test-something-RHEL8ish
problem.

UPDATE: WEIRD: this 'skip' triggered a baffling failure
on Ubuntu: the "Kubernetes only allows 63 characters"
warning message stopped appearing, on Ubuntu only, which
then caused the kube-generate tests to fail because they
actually checked for that. The message doesn't appear
because generate-kube is no longer spitting out a line
for org.opencontainers.image.base.digest/CONTAINER.
(Why this line is gone, I don't know, and choose not
to investigate). Solution: stop checking for the kube-63
warning. It's just not that important.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-09-01 09:27:21 -06:00
OpenShift Merge Robot
0085fbb488 Merge pull request #15571 from umohnani8/gen-kube
Set enableServiceLinks to false in generated yaml
2022-09-01 15:17:39 +02:00
OpenShift Merge Robot
72f4c77139 Merge pull request #15360 from m0duspwnens/api_compat_containers
api: return imageID instead of imageName, for "Image" when Podman api is queried
2022-09-01 10:58:33 +02:00
Urvashi Mohnani
84352a81c9 Set enableServiceLinks to false in generated yaml
Since podman doesn't set/use the needed service env
variable, always set enableServiceLinks to false in
the generated kube yaml.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-08-31 14:02:13 -04:00
OpenShift Merge Robot
8266dbe7a9 Merge pull request #15473 from umohnani8/empty-dir
Add emptyDir volume support to kube play
2022-08-31 09:36:04 -04:00
OpenShift Merge Robot
6bda96ab18 Merge pull request #15510 from vrothberg/fix-15485
podman rmi: emit untag events
2022-08-31 09:19:10 -04:00
Jason Ertel
368fa6074d Merge branch 'containers:main' into api_compat_containers 2022-08-30 14:12:01 -04:00
Urvashi Mohnani
98169c20dd Add emptyDir volume support to kube play
When a kube yaml has a volume set as empty dir, podman
will create an anonymous volume with the empty dir name and
attach it to the containers running in the pod. When the pod
is removed, the empy dir volume created is also removed.

Add tests and docs for this as well.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-08-30 10:34:45 -04:00
Giuseppe Scrivano
e015c9e3f7 podman: add uid and gid options to keep-id
add two new options to the keep-id user namespace option:

- uid: allow to override the UID used inside the container.
- gid: allow to override the GID used inside the container.

For example, the following command will map the rootless user (that
has UID=0 inside the rootless user namespace) to the UID=11 inside the
container user namespace:

$ podman run --userns=keep-id:uid=11 --rm -ti  fedora cat /proc/self/uid_map
         0          1         11
        11          0          1
        12         12      65525

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-08-30 14:39:27 +02:00
Ed Santiago
a240146a2d e2e tests: try to deflake 5000
We keep getting flakes in tests that use port 5000. Try to
find and fix, by switching ports where possible, and locking
5000 when not possible (or not easy) to switch.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-08-29 14:11:46 -06:00
Josh Patterson
0e53c8c735 Merge remote-tracking branch 'upstream/main' into api_compat_containers 2022-08-29 15:48:02 -04:00
Jason Ertel
08af95f635 updated apiv2 tests to reflect hash compat fix
Signed-off-by: Jason Ertel <jason.ertel@securityonionsolutions.com>
2022-08-29 14:10:33 -04:00
OpenShift Merge Robot
cf20e6ed39 Merge pull request #15481 from edsantiago/test_cleanup_apiv2
APIv2 test cleanup, part 2 of 2
2022-08-29 07:08:51 -04:00
OpenShift Merge Robot
e78363d24c Merge pull request #15516 from kubealex/handle-connected-network
Handle an already connected network in libpod API
2022-08-29 06:56:15 -04:00
Alessandro Rossi
78aec21302 Fix #15499 already connected network
Compat: Treat already attached networks as a no-op
Applies only to containers in created state. Maintain error in running state.

Co-authored-by: Alessandro Rossi <al.rossi87@gmail.com>
Co-authored-by: Brent Baude <bbaude@redhat.com>
Co-authored-by: Jason T. Greene <jason.greene@redhat.com>
Signed-off-by: Alessandro Rossi <al.rossi87@gmail.com>
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2022-08-27 20:03:40 -05:00
Valentin Rothberg
0ee9a3129b podman rmi: emit untag events
Emit untag events for each tag when removing an image.

Fixes: #15485
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-08-27 13:40:50 +02:00
Aditya R
e00272cd99 remote: fix implementation of build with --userns=auto for API
`podman-remote` and Libpod API does not supports build with
`--userns=auto` since `IDMappingOptions` were not implemented for API
and bindings, following PR implements passing `IDMappingOptions` via
bindings to API.

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

Signed-off-by: Aditya R <arajan@redhat.com>
2022-08-26 16:53:40 +05:30
OpenShift Merge Robot
339797c016 Merge pull request #15490 from rhatdan/codespell
Run codespell
2022-08-26 05:20:40 -04:00
Matthew Heon
c7fda06f66 Compat API image remove events now have 'delete' status
Change only the compat API, so we don't force a breaking change
on Libpod API users.

Partial fix for #15485

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2022-08-25 16:59:26 -04:00
Daniel J Walsh
9553f3bafa Run codespell
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-08-25 16:32:31 -04:00
Ed Santiago
e634470fae APIv2 test cleanup, part 2 of 2
This finishes the removal of curls and exits.

Please please please, everyone, if you see a 'curl' or 'exit'
in any new PR, reject the PR and tell me immediately so I can
help the developer do it the proper way.

Also, removed some very-very-wrong USER/UID code. Both are
reserved variables in bash. You cannot override them.

Also, added a cleanup to a system-connection test. I wasted
a lot of time because my podman-remote stopped working, all
because I had run this test as part of something unrelated.

Also, found and fixed dangerously-broken timeout code.
Implemented a new mechanism for requiring a timeout.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-08-25 11:07:11 -06:00
OpenShift Merge Robot
e652eec438 Merge pull request #15468 from edsantiago/test_cleanup_bats
System test cleanup
2022-08-25 10:29:33 -04:00
Valentin Rothberg
d122aa4935 Merge pull request #15469 from edsantiago/test_cleanup_apiv2
APIv2 test cleanup
2022-08-25 10:23:33 +02:00
Ed Santiago
010d495a34 APIv2 test cleanup
Whole slew of bugs that got introduced while I wasn't paying
attention. Most of them are of the form "let's use hand-crafted
curl commands and do our own error checking and exit uncleanly
on error and leave the system in an unstable state". To be
fair, those were done because there was no existing mechanism
for uploading JSON files or somesuch. So, add one.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-08-24 15:15:00 -06:00
Ed Santiago
a933269ba5 System test cleanup
Misspellings, broken code, missing tests

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-08-24 14:48:13 -06:00
Giuseppe Scrivano
35b4f26c70 test: use private instead of slave for the mount
using "slave" means that every mount operation on the host that
happens between the mount creation for `/host` and running `findmnt`
will be propagated to the container mount.  To prevent new mounts on
the host to appear in the container thus invalidating the test we
have, just create the mount as private and use `/sys` as source as it
has multiple mounts on the top but less likely to get new mounts once
it is configured.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-08-24 22:24:09 +02:00
Daniel J Walsh
46bfd3d0cf Merge pull request #15454 from vrothberg/bump-psgo
vendor containers/psgo@v1.7.3
2022-08-24 14:27:37 -04:00
OpenShift Merge Robot
361eb42619 Merge pull request #15434 from rhatdan/manifest1
Allow podman to run in an environment with keys containing spaces
2022-08-24 13:29:20 -04:00
Giuseppe Scrivano
ea67d84f5a test: fix comment
it is not a kernel bug.

Rootless users are not allowed to use non recursive bind mounts,
otherwise they would be able to uncover mounts that were not visible
before to them.

[CI:DOCS] it is just a comment fix.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-08-24 17:39:15 +02:00
Valentin Rothberg
88e4e4c82e vendor containers/psgo@v1.7.3
Add three new capabilities that would otherwise be reported as unknown.

Also add an e2e test making sure that `podman top` knows all
capabilities of the current kernel.  I refrained from adding a system
test since this may blow up in gating tests.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-08-24 17:13:58 +02:00
OpenShift Merge Robot
082388a159 Merge pull request #15439 from rhatdan/service
Fix documentation of use of tcp connections
2022-08-24 09:59:31 -04:00