spiegel_podman/pkg
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
..
annotations fix a number of godot issues 2022-03-22 13:04:35 +01:00
api Fix swagger documentation 2022-09-02 19:21:20 +09:00
auth pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
autoupdate kube play: support auto updates and rollbacks 2022-09-06 08:56:55 +02:00
bindings implement podman update 2022-09-01 13:02:01 -04:00
channel pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
checkpoint pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
copy pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
criu Fix spelling of GetCriuVersion 2022-06-27 12:57:44 +01:00
ctime golangci-lint: enable nolintlint 2022-06-14 16:29:42 +02:00
domain kube play: support auto updates and rollbacks 2022-09-06 08:56:55 +02:00
env Allow podman to run in an environment with keys containing spaces 2022-08-23 14:44:23 -04:00
errorhandling libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
inspect pkg/inspect: remove unused ImageResult type 2022-05-24 16:07:39 +02:00
k8s.io Add emptyDir volume support to kube play 2022-08-30 10:34:45 -04:00
lookup enable gocritic linter 2022-04-26 18:12:22 +02:00
machine Merge pull request #15404 from arixmkii/win_compat2 2022-09-02 12:49:58 +02:00
namespaces podman: add uid and gid options to keep-id 2022-08-30 14:39:27 +02:00
parallel pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
ps libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
rootless Don't warn on '/' not being shared while in a container 2022-08-15 10:28:29 -04:00
rootlessport go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
seccomp pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
selinux Fix SELinux functions names to not be repetitive 2020-04-23 15:57:34 -04:00
servicereaper go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
signal Implement CatchAll and StopCatch in signal_common.go 2022-06-27 13:27:12 +01:00
specgen kube play: support auto updates and rollbacks 2022-09-06 08:56:55 +02:00
specgenutil implement podman update 2022-09-01 13:02:01 -04:00
systemd kube play: support auto updates and rollbacks 2022-09-06 08:56:55 +02:00
terminal podman ssh work, using new c/common interface 2022-08-09 14:00:58 -04:00
timetype enable gocritic linter 2022-04-26 18:12:22 +02:00
trust Preserve all unknown PolicyRequirement fields on (podman image trust set) 2022-08-25 01:52:59 +02:00
util podman: add uid and gid options to keep-id 2022-08-30 14:39:27 +02:00