summaryrefslogtreecommitdiff
path: root/vendor/github.com
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2022-05-02 11:53:30 -0400
committerGitHub <noreply@github.com>2022-05-02 11:53:30 -0400
commitc3d871a3f6cc7a94c5e86782ba63e05cd1d2faeb (patch)
tree589ce895fa6ab9ab7a605ea5016307d9915c74a2 /vendor/github.com
parentadf6ee671ff8111b3b1d1819a65fcc05e44589ef (diff)
parent4eff0c8cf284a6007122aec731e4d97059750166 (diff)
downloadpodman-c3d871a3f6cc7a94c5e86782ba63e05cd1d2faeb.tar.gz
podman-c3d871a3f6cc7a94c5e86782ba63e05cd1d2faeb.tar.bz2
podman-c3d871a3f6cc7a94c5e86782ba63e05cd1d2faeb.zip
Merge pull request #13859 from vrothberg/fix-13464
pod: add exit policies
Diffstat (limited to 'vendor/github.com')
-rw-r--r--vendor/github.com/containers/common/pkg/config/config.go3
-rw-r--r--vendor/github.com/containers/common/pkg/config/containers.conf3
-rw-r--r--vendor/github.com/containers/common/pkg/config/default.go2
-rw-r--r--vendor/github.com/containers/common/pkg/config/pod_exit_policy.go36
4 files changed, 44 insertions, 0 deletions
diff --git a/vendor/github.com/containers/common/pkg/config/config.go b/vendor/github.com/containers/common/pkg/config/config.go
index d362495e3..a86eca88e 100644
--- a/vendor/github.com/containers/common/pkg/config/config.go
+++ b/vendor/github.com/containers/common/pkg/config/config.go
@@ -349,6 +349,9 @@ type EngineConfig struct {
// OCIRuntimes are the set of configured OCI runtimes (default is runc).
OCIRuntimes map[string][]string `toml:"runtimes,omitempty"`
+ // PodExitPolicy determines the behaviour when the last container of a pod exits.
+ PodExitPolicy PodExitPolicy `toml:"pod_exit_policy,omitempty"`
+
// PullPolicy determines whether to pull image before creating or running a container
// default is "missing"
PullPolicy string `toml:"pull_policy,omitempty"`
diff --git a/vendor/github.com/containers/common/pkg/config/containers.conf b/vendor/github.com/containers/common/pkg/config/containers.conf
index 2b250753e..a4e755a66 100644
--- a/vendor/github.com/containers/common/pkg/config/containers.conf
+++ b/vendor/github.com/containers/common/pkg/config/containers.conf
@@ -506,6 +506,9 @@ default_sysctls = [
#
#num_locks = 2048
+# Set the exit policy of the pod when the last container exits.
+#pod_exit_policy = "continue"
+
# Whether to pull new image before running a container
#
#pull_policy = "missing"
diff --git a/vendor/github.com/containers/common/pkg/config/default.go b/vendor/github.com/containers/common/pkg/config/default.go
index 62b348d6e..8979a406b 100644
--- a/vendor/github.com/containers/common/pkg/config/default.go
+++ b/vendor/github.com/containers/common/pkg/config/default.go
@@ -388,6 +388,8 @@ func defaultConfigFromMemory() (*EngineConfig, error) {
c.MachineEnabled = false
c.ChownCopiedFiles = true
+ c.PodExitPolicy = defaultPodExitPolicy
+
return c, nil
}
diff --git a/vendor/github.com/containers/common/pkg/config/pod_exit_policy.go b/vendor/github.com/containers/common/pkg/config/pod_exit_policy.go
new file mode 100644
index 000000000..f0f983077
--- /dev/null
+++ b/vendor/github.com/containers/common/pkg/config/pod_exit_policy.go
@@ -0,0 +1,36 @@
+package config
+
+import "fmt"
+
+// PodExitPolicies includes the supported pod exit policies.
+var PodExitPolicies = []string{string(PodExitPolicyContinue), string(PodExitPolicyStop)}
+
+// PodExitPolicy determines a pod's exit and stop behaviour.
+type PodExitPolicy string
+
+const (
+ // PodExitPolicyContinue instructs the pod to continue running when the
+ // last container has exited.
+ PodExitPolicyContinue PodExitPolicy = "continue"
+ // PodExitPolicyStop instructs the pod to stop when the last container
+ // has exited.
+ PodExitPolicyStop = "stop"
+ // PodExitPolicyUnsupported implies an internal error.
+ // Negative for backwards compat.
+ PodExitPolicyUnsupported = "invalid"
+
+ defaultPodExitPolicy = PodExitPolicyContinue
+)
+
+// ParsePodExitPolicy parses the specified policy and returns an error if it is
+// invalid.
+func ParsePodExitPolicy(policy string) (PodExitPolicy, error) {
+ switch policy {
+ case "", string(PodExitPolicyContinue):
+ return PodExitPolicyContinue, nil
+ case string(PodExitPolicyStop):
+ return PodExitPolicyStop, nil
+ default:
+ return PodExitPolicyUnsupported, fmt.Errorf("invalid pod exit policy: %q", policy)
+ }
+}