automation-tests/pkg/specgen/generate
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
..
kube kube play: support auto updates and rollbacks 2022-09-06 08:56:55 +02:00
config_linux.go pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
config_linux_cgo.go pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
config_linux_nocgo.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
config_linux_test.go Add filepath glob support to --security-opt unmask 2021-05-04 14:40:43 -04:00
container.go implement podman update 2022-09-01 13:02:01 -04:00
container_create.go implement podman update 2022-09-01 13:02:01 -04:00
namespaces.go Merge pull request #15560 from dfr/freebsd-specgen 2022-09-01 10:47:47 +02:00
namespaces_freebsd.go specgen/generate: Add support for FreeBSD 2022-08-30 11:24:57 +01:00
namespaces_linux.go specgen/generate: Move specConfigNamespaces to namespace_linux.go and add stubs 2022-08-30 11:24:38 +01:00
namespaces_unsupported.go specgen/generate: Add support for FreeBSD 2022-08-30 11:24:57 +01:00
oci.go specgen/generate: Move SpecGenToOCI, WeightDevices to oci_linux.go and add stubs. 2022-08-30 11:23:58 +01:00
oci_freebsd.go specgen/generate: Add support for FreeBSD 2022-08-30 11:24:57 +01:00
oci_linux.go specgen/generate: Move SpecGenToOCI, WeightDevices to oci_linux.go and add stubs. 2022-08-30 11:23:58 +01:00
oci_unsupported.go specgen/generate: Add support for FreeBSD 2022-08-30 11:24:57 +01:00
pause_image.go [BZ #2083997] pod: build pause image in custom user NS 2022-05-13 15:41:28 +02:00
pod_create.go implement podman update 2022-09-01 13:02:01 -04:00
ports.go pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
ports_bench_test.go fix a number of errcheck issues 2022-03-22 13:15:28 +01:00
ports_test.go use libnetwork from c/common 2022-01-12 17:07:30 +01:00
rlimit_int64.go pkg/specgen: Add stubs for non-linux builds 2022-08-15 10:45:23 +01:00
rlimit_uint64.go pkg/specgen: Add stubs for non-linux builds 2022-08-15 10:45:23 +01:00
security_freebsd.go specgen/generate: Add support for FreeBSD 2022-08-30 11:24:57 +01:00
security_linux.go specgen/generate: Move security.go to security_linux.go and add stubs 2022-08-29 13:06:15 +01:00
security_unsupported.go specgen/generate: Add support for FreeBSD 2022-08-30 11:24:57 +01:00
storage.go pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
validate.go Warning messages are printed and ignored if we use an unsupported option 2022-08-23 11:54:31 +09:00