diff options
author | Valentin Rothberg <vrothberg@redhat.com> | 2022-09-07 11:45:30 +0200 |
---|---|---|
committer | Valentin Rothberg <vrothberg@redhat.com> | 2022-09-09 13:02:05 +0200 |
commit | aad29e759c78b415a3b0393d7aba2bddbbc0cd3e (patch) | |
tree | 86597d8d17a5bab7ee0417166c448249f86954eb /cmd | |
parent | 6d8bafe57a65970ead17a83cb1983629b3a2aedb (diff) | |
download | podman-aad29e759c78b415a3b0393d7aba2bddbbc0cd3e.tar.gz podman-aad29e759c78b415a3b0393d7aba2bddbbc0cd3e.tar.bz2 podman-aad29e759c78b415a3b0393d7aba2bddbbc0cd3e.zip |
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>
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/podman/common/completion.go | 5 | ||||
-rw-r--r-- | cmd/podman/common/create.go | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/cmd/podman/common/completion.go b/cmd/podman/common/completion.go index b3a816aa4..60d056aaa 100644 --- a/cmd/podman/common/completion.go +++ b/cmd/podman/common/completion.go @@ -1641,3 +1641,8 @@ func AutocompleteSSH(cmd *cobra.Command, args []string, toComplete string) ([]st } return []string{string(ssh.GolangMode), string(ssh.NativeMode)}, cobra.ShellCompDirectiveNoFileComp } + +// AutocompleteHealthOnFailure - action to take once the container turns unhealthy. +func AutocompleteHealthOnFailure(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { + return define.SupportedHealthCheckOnFailureActions, cobra.ShellCompDirectiveNoFileComp +} diff --git a/cmd/podman/common/create.go b/cmd/podman/common/create.go index a2bc45b9e..8fff03773 100644 --- a/cmd/podman/common/create.go +++ b/cmd/podman/common/create.go @@ -208,6 +208,14 @@ func DefineCreateFlags(cmd *cobra.Command, cf *entities.ContainerCreateOptions, ) _ = cmd.RegisterFlagCompletionFunc(healthTimeoutFlagName, completion.AutocompleteNone) + healthOnFailureFlagName := "health-on-failure" + createFlags.StringVar( + &cf.HealthOnFailure, + healthOnFailureFlagName, "none", + "action to take once the container turns unhealthy", + ) + _ = cmd.RegisterFlagCompletionFunc(healthOnFailureFlagName, AutocompleteHealthOnFailure) + createFlags.BoolVar( &cf.HTTPProxy, "http-proxy", containerConfig.Containers.HTTPProxy, |