podman/libpod
Valentin Rothberg aad29e759c health check: add on-failure actions
For systems that have extreme robustness requirements (edge devices,
particularly those in difficult to access environments), it is important
that applications continue running in all circumstances. When the
application fails, Podman must restart it automatically to provide this
robustness. Otherwise, these devices may require customer IT to
physically gain access to restart, which can be prohibitively difficult.

Add a new `--on-failure` flag that supports four actions:

- **none**: Take no action.

- **kill**: Kill the container.

- **restart**: Restart the container.  Do not combine the `restart`
               action with the `--restart` flag.  When running inside of
               a systemd unit, consider using the `kill` or `stop`
               action instead to make use of systemd's restart policy.

- **stop**: Stop the container.

To remain backwards compatible, **none** is the default action.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-09-09 13:02:05 +02:00
..
define health check: add on-failure actions 2022-09-09 13:02:05 +02:00
driver bump go module to version 4 2022-01-18 12:47:07 +01:00
events events: Add freebsd support for libpod/event 2022-08-22 10:14:12 +01:00
layers
linkmode go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
lock libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
logs libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
plugin Add support for containers.conf volume timeouts 2022-08-23 15:42:00 -04:00
shutdown libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
boltdb_state.go Fix #15499 already connected network 2022-08-27 20:03:40 -05:00
boltdb_state_freebsd.go libpod: Add definition of containerPlatformState for FreeBSD 2022-08-23 15:31:00 +01:00
boltdb_state_internal.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
boltdb_state_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
boltdb_state_unsupported.go libpod: Add definition of containerPlatformState for FreeBSD 2022-08-23 15:31:00 +01:00
common_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container.go libpod: Move networkDisable to container_linux.go 2022-09-05 10:12:12 +01:00
container_api.go implement podman update 2022-09-01 13:02:01 -04:00
container_commit.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_config.go health check: add on-failure actions 2022-09-09 13:02:05 +02:00
container_copy_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_copy_unsupported.go libpod: Add stubs for non-linux builds 2022-08-17 11:45:07 +01:00
container_exec.go use c/common code for resize and CopyDetachable 2022-07-06 16:57:07 +02:00
container_freebsd.go libpod: Move networkDisable to container_linux.go 2022-09-05 10:12:12 +01:00
container_graph.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_graph_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_inspect.go health check: add on-failure actions 2022-09-09 13:02:05 +02:00
container_internal.go implement podman update 2022-09-01 13:02:01 -04:00
container_internal_common.go libpod: Factor out setting volume atime to container_internal_linux.go 2022-09-05 10:20:50 +01:00
container_internal_freebsd.go libpod: Factor out setting volume atime to container_internal_linux.go 2022-09-05 10:20:50 +01:00
container_internal_linux.go podman: skip /sys/fs/cgroup/systemd if not present 2022-09-07 15:33:08 +02:00
container_internal_linux_test.go test: use `T.TempDir` to create temporary test directory 2022-05-05 21:09:41 +08:00
container_internal_test.go test: fix failing TestPostDeleteHooks 2022-05-05 21:39:46 +08:00
container_internal_unsupported.go libpod: Add FreeBSD implementation of container internals 2022-09-05 10:12:12 +01:00
container_linux.go libpod: Move networkDisable to container_linux.go 2022-09-05 10:12:12 +01:00
container_log.go fix goroutine leaks in events and logs backend 2022-07-20 12:55:34 +02:00
container_log_linux.go fix goroutine leaks in events and logs backend 2022-07-20 12:55:34 +02:00
container_log_unsupported.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_path_resolution.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_stat_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_stat_unsupported.go libpod: Add stubs for non-linux builds 2022-08-17 11:45:07 +01:00
container_top_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
container_top_unsupported.go libpod: Add stubs for non-linux builds 2022-08-17 11:45:07 +01:00
container_unsupported.go libpod: Add definition of containerPlatformState for FreeBSD 2022-08-23 15:31:00 +01:00
container_validate.go health check: add on-failure actions 2022-09-09 13:02:05 +02:00
diff.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
doc.go document that using libpod package directly is not supported 2022-03-23 19:05:29 +01:00
events.go emit container labels also for container exited and exec died events 2022-09-06 20:29:44 +02:00
healthcheck.go health check: add on-failure actions 2022-09-09 13:02:05 +02:00
healthcheck_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
healthcheck_unsupported.go libpod: Add stubs for non-linux builds 2022-08-17 11:45:07 +01:00
info.go libpod: Enable 'podman info' for FreeBSD 2022-08-24 10:55:52 +01:00
info_freebsd.go libpod: Enable 'podman info' for FreeBSD 2022-08-24 10:55:52 +01:00
info_linux.go libpod: Move getCPUUtilization to info_linux.go 2022-08-24 10:55:52 +01:00
info_test.go Robust whitespace split of cpu utilization line from /proc/stat 2022-05-14 00:34:56 +00:00
info_unsupported.go libpod: Enable 'podman info' for FreeBSD 2022-08-24 10:55:52 +01:00
kube.go Merge pull request #15607 from fpoirotte/main 2022-09-08 19:38:56 +02:00
mounts_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
networking_linux.go Fix #15499 already connected network 2022-08-27 20:03:40 -05:00
networking_linux_test.go enable unparam linter 2022-04-25 13:23:20 +02:00
networking_machine.go enable gocritic linter 2022-04-26 18:12:22 +02:00
networking_slirp4netns.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
networking_unsupported.go libpod: Factor out handling of slirp4netns and net=none 2022-09-05 10:20:50 +01:00
oci.go implement podman update 2022-09-01 13:02:01 -04:00
oci_conmon.go podman: add new cgroup mode split 2020-06-25 17:16:12 +02:00
oci_conmon_attach_common.go libpod: Filter out ENOTCONN errors when trying to close unix domain sockets 2022-09-07 07:58:39 +01:00
oci_conmon_attach_freebsd.go libpod: Build oci_conmon_common.go and oci_conmon_attach_common on FreeBSD 2022-08-18 08:07:30 +01:00
oci_conmon_attach_linux.go libpod: Move openUnixSocket to oci_conmon_attach_linux.go 2022-08-18 08:05:42 +01:00
oci_conmon_common.go libpod: Filter out ENOTCONN errors when trying to close unix domain sockets 2022-09-07 07:58:39 +01:00
oci_conmon_exec_common.go libpod: Filter out ENOTCONN errors when trying to close unix domain sockets 2022-09-07 07:58:39 +01:00
oci_conmon_exec_freebsd.go libpod: Factor out capabilites code from prepareProcessExec 2022-09-07 07:58:37 +01:00
oci_conmon_exec_linux.go libpod: Factor out capabilites code from prepareProcessExec 2022-09-07 07:58:37 +01:00
oci_conmon_freebsd.go libpod: Make sure writeConmonPipeData is called on FreeBSD 2022-08-29 13:04:04 +01:00
oci_conmon_linux.go libpod: Move moveConmonToCgroupAndSignal and GetLimits to oci_conmon_linux.go 2022-08-18 08:05:42 +01:00
oci_conmon_unsupported.go libpod: Build oci_conmon_common.go and oci_conmon_attach_common on FreeBSD 2022-08-18 08:07:30 +01:00
oci_missing.go implement podman update 2022-09-01 13:02:01 -04:00
oci_util.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
options.go health check: add on-failure actions 2022-09-09 13:02:05 +02:00
pod.go resource limits for pods 2022-07-21 14:50:01 -04:00
pod_api.go resource limits for pods 2022-07-21 14:50:01 -04:00
pod_internal.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
pod_status.go bump go module to version 4 2022-01-18 12:47:07 +01:00
pod_top_linux.go libpod/pod_top_linux.go: s/TODO/NOTE/ 2022-05-25 12:30:19 +02:00
pod_top_unsupported.go libpod: Add stubs for non-linux builds 2022-08-17 11:45:07 +01:00
reset.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
runtime.go libpod: Ensure that generated container names are random 2022-09-01 10:27:04 +01:00
runtime_cstorage.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_ctr.go fix Pod removal after OS hard shutdown 2022-09-06 20:41:10 +03:00
runtime_ctr_freebsd.go libpod: Don't mount /dev/shm in containers on FreeBSD 2022-09-05 10:20:50 +01:00
runtime_ctr_linux.go libpod: Don't mount /dev/shm in containers on FreeBSD 2022-09-05 10:20:50 +01:00
runtime_img.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_migrate.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_migrate_unsupported.go libpod: Add stubs for non-linux builds 2022-08-17 11:45:07 +01:00
runtime_pod.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_pod_linux.go Merge pull request #14976 from giuseppe/do-not-lock-containers-pod-rm 2022-07-22 19:27:48 +02:00
runtime_pod_unsupported.go libpod: Add stubs for non-linux builds 2022-08-17 11:45:07 +01:00
runtime_renumber.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_test.go libpod: Ensure that generated container names are random 2022-09-01 10:27:04 +01:00
runtime_volume.go libpod/runtime: switch to golang native error wrapping 2022-07-04 15:39:00 +02:00
runtime_volume_linux.go Add support for containers.conf volume timeouts 2022-08-23 15:42:00 -04:00
runtime_volume_unsupported.go libpod: Add stubs for non-linux builds 2022-08-17 11:45:07 +01:00
runtime_worker.go work queue: simplify and use a wait group 2022-05-25 10:17:46 +02:00
service.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
state.go libpod: fix wait and exit-code logic 2022-06-23 09:11:57 -04:00
state_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
stats.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
stats_unsupported.go libpod: Add stubs for non-linux builds 2022-08-17 11:45:07 +01:00
storage.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
util.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
util_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
util_linux_test.go Fix mismatch between log messages and behavior of libpod.LabelVolumePath. 2020-09-13 23:24:15 -04:00
util_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
util_unsupported.go libpod: Add stubs for non-linux builds 2022-08-17 11:45:07 +01:00
volume.go Add support for containers.conf volume timeouts 2022-08-23 15:42:00 -04:00
volume_inspect.go Add support for containers.conf volume timeouts 2022-08-23 15:42:00 -04:00
volume_internal.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
volume_internal_linux.go libpod: switch to golang native error wrapping 2022-07-05 16:06:32 +02:00
volume_internal_unsupported.go libpod: Add stubs for non-linux builds 2022-08-17 11:45:07 +01:00