Commit graph

6464 commits

Author SHA1 Message Date
Toshiki Sonoda
27be5eaaf2 Fix swagger documentation
* ContainerKillLibpod "signal" query default is SIGKILL.
* ContainerStopLibpod "all" query doesn't exist.

[NO NEW TESTS NEEDED]

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-09-09 15:15:54 +09:00
Daniel J Walsh
1994f38232
Add --config for Docker compatibility
Fixes: https://github.com/containers/podman/issues/14767

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-09-08 16:20:30 -04:00
Giuseppe Scrivano
ad63aa20db
kube: plug HostUsers in the pod spec
map HostUsers=false to userns=auto.

One difference with the current implementation in the Kubelet is that
the podman default size is 1024 while the Kubelet uses 65536.

This is done on purpose, because 65536 is a problem for rootless as
the entire IDs space would be allocated to a single pod.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-09-08 22:08:50 +02:00
OpenShift Merge Robot
eb758c5f58
Merge pull request #15675 from Luap99/pod-inspect
fix podman pod inspect to support multiple pods
2022-09-08 16:36:08 +02:00
OpenShift Merge Robot
95eff1aa40
Merge pull request #15667 from dfr/freebsd-specgen
specgen/generate: Factor out setting resource limits from CompleteSpec
2022-09-08 14:37:14 +02:00
OpenShift Merge Robot
d117d086b7
Merge pull request #15665 from thediveo/data-race
fixes data race in system.Events and nil error logging
2022-09-08 14:34:47 +02:00
OpenShift Merge Robot
d729dd8c2e
Merge pull request #15610 from n1hility/release-workflow
Introduce a new signed Windows installer with automated build process
2022-09-08 12:26:50 +02:00
Paul Holzinger
d10e77e1bc
fix podman pod inspect to support multiple pods
Just like the other inspect commands `podman pod inspect p1 p2` should
return the json for both.

To correctly implement this we follow the container inspect logic, this
allows use to reuse the global inspect command.
Note: To not break the existing single pod output format for podman pod
inspect I added a pod-legacy inspect type. This is only used to make
sure we will print the pod as single json and not an array like for the
other commands. We cannot use the pod type since podman inspect --type
pod did return an array and we should not break that as well.

Fixes #15674

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-09-08 10:28:42 +02:00
Doug Rabson
911e4a1389 specgen/generate: Factor out setting resource limits from CompleteSpec
This avoids setting values in the spec which are not supported on
FreeBSD - including these values causes warning messages for the
unsupported features.

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-09-08 08:24:18 +01:00
Harald Albrecht
db33f06a95 fixes data race in system.Events and nil error logging
Signed-off-by: Harald Albrecht <harald.albrecht@gmx.net>
2022-09-07 20:57:18 +02:00
OpenShift Merge Robot
1da178a3e6
Merge pull request #15655 from n1hility/increase-pipe-wait
Fix intermittent issue with Compat API proxy startup on Windows
2022-09-07 10:42:11 +02:00
Jason T. Greene
ecb9f99b88 Add new windows installer and build
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2022-09-06 16:12:09 -05: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
Jason T. Greene
e0d5b4e3fb Change pipe wait to 20 seconds
[NO NEW TESTS NEEDED]

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2022-09-06 12:24:38 -05: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
OpenShift Merge Robot
34b0be6cff
Merge pull request #15638 from n1hility/stale-config-fix
(Windows) Drop stale config value resulting in asymmetric config
2022-09-06 15:13:04 +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
Jason T. Greene
6a3c28968e Drop stale config value resulting in asymmetric config
Fixes log follow operations since corresponding k8s-file backend was previously dropped

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2022-09-06 00:01:30 -05:00
Valentin Rothberg
bdfc4df1f2 pkg/autoupdate: allow updating multiple tasks per unit
Refactor the auto-update backend to allow for updating multiple
tasks/containers per unit.  This commit is merely doing the plumbing.
The actual integration comes in a following commit.

[NO NEW TESTS NEEDED] as behavior should not change and existing
tests are expected to continue to pass.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-05 16:23:06 +02:00
Doug Rabson
a5ee3cb790 pkg/util: Add no-op implementation of AddPrivilegedDevices on FreeBSD
[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-09-05 10:17:49 +01: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
8942a60bb0
Merge pull request #15582 from dfr/freebsd-bind
Add support for FreeBSD volume mounts in specgen
2022-09-04 13:34:41 +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
9476b78316
Merge pull request #15614 from sstosh/fix-swagger
Fix swagger documentation
2022-09-02 20:15:03 +02: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
4cbc4774f1
Merge pull request #15404 from arixmkii/win_compat2
Improved Windows compatibility for machine command
2022-09-02 12:49:58 +02:00
Toshiki Sonoda
875fd48580 Fix swagger documentation
* ContainerKillLibpod "signal" query default is SIGKILL.
* ContainerListLibpod "namespace" query is failed to show.
* SecretListLibpod parameters is duplicated.
* SecretList parameters is duplicated.

[NO NEW TESTS NEEDED]

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-09-02 19:21:20 +09: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
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
OpenShift Merge Robot
009afb50b3
Merge pull request #15560 from dfr/freebsd-specgen
Add FreeBSD support for pkg/specgen/generate
2022-09-01 10:47:47 +02: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
55710d8d55
Merge pull request #15411 from arixmkii/override_default_username
Allow to override default username via command line
2022-08-31 09:12:46 -04:00
OpenShift Merge Robot
9b4dac4c4d
Merge pull request #15389 from giuseppe/userns-map-user
podman: add uid and gid options to keep-id
2022-08-31 08:37:34 -04:00
OpenShift Merge Robot
7503c5544d
Merge pull request #15491 from marshall-lee/bindings-schema-ignore
Mark some of the option fields as ignored in pkg/bindings
2022-08-31 06:28:19 -04:00
Jason Ertel
368fa6074d
Merge branch 'containers:main' into api_compat_containers 2022-08-30 14:12:01 -04:00
Doug Rabson
da57065abd specgen: Use platform-specific mount type for volume mounts
[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-08-30 16:32:24 +01: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
OpenShift Merge Robot
40627e08a4
Merge pull request #15517 from tyler92/remove-libnetwork-dep
remove github.com/docker/libnetwork dependency
2022-08-30 10:29:36 -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
Giuseppe Scrivano
cd62606046
infra: remove dead code
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-08-30 14:39:27 +02:00
Arthur Sengileyev
08a2851bae Allow to override default username via command line
Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
2022-08-30 13:35:07 +03:00
Doug Rabson
4781bc7fe7 specgen/generate: Add support for FreeBSD
[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-08-30 11:24:57 +01:00
Doug Rabson
68f4dcf00a specgen/generate: Move specConfigNamespaces to namespace_linux.go and add stubs
Everthing except for hostname management is linux-specific.

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-08-30 11:24:38 +01:00
Doug Rabson
39880670cd specgen/generate: Move SpecGenToOCI, WeightDevices to oci_linux.go and add stubs.
Almost all of SpecGenToOCI deals with linux-specific aspects of the
runtime spec. Rather than try to factor this out piecemeal, I think it
is cleaner to move the whole function along with its implementation
helper functions. This also meams we don't need non-linux stubs for
functions called from oci_linux.go

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-08-30 11:23:58 +01:00
Josh Patterson
0e53c8c735 Merge remote-tracking branch 'upstream/main' into api_compat_containers 2022-08-29 15:48:02 -04:00
Arthur Sengileyev
c1480b39a9 Improved Windows compatibility for machine command
Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
2022-08-29 16:53:42 +03:00
Doug Rabson
0166feef2a specgen/generate: Move security.go to security_linux.go and add stubs
The security features (selinux, apparmor, capabilities) are linux
specific.

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-08-29 13:06:15 +01:00
Mikhail Khachayants
b4f5a246a2
remove github.com/docker/libnetwork dependency
Code from this dependency was replaced with a simple version. As a
result Podman's memory consumption has been reduced by ~10%.

[NO NEW TESTS NEEDED]

Signed-off-by: Mikhail Khachayants <tyler92@inbox.ru>
2022-08-27 21:46:10 +03:00