package define import "fmt" // KubeExitCodePropagation defines an exit policy of kube workloads. type KubeExitCodePropagation int const ( // Invalid exit policy for a proper type system. KubeExitCodePropagationInvalid KubeExitCodePropagation = iota // Exit 0 regardless of any failed containers. KubeExitCodePropagationNone // Exit non-zero if all containers failed. KubeExitCodePropagationAll // Exit non-zero if any container failed. KubeExitCodePropagationAny // String representations. strKubeECPInvalid = "invalid" strKubeECPNone = "none" strKubeECPAll = "all" strKubeECPAny = "any" ) // Parse the specified kube exit-code propagation. Return an error if an // unsupported value is specified. func ParseKubeExitCodePropagation(value string) (KubeExitCodePropagation, error) { switch value { case strKubeECPNone, "": return KubeExitCodePropagationNone, nil case strKubeECPAll: return KubeExitCodePropagationAll, nil case strKubeECPAny: return KubeExitCodePropagationAny, nil default: return KubeExitCodePropagationInvalid, fmt.Errorf("unsupported exit-code propagation %q", value) } } // Return the string representation of the KubeExitCodePropagation. func (k KubeExitCodePropagation) String() string { switch k { case KubeExitCodePropagationNone: return strKubeECPNone case KubeExitCodePropagationAll: return strKubeECPAll case KubeExitCodePropagationAny: return strKubeECPAny case KubeExitCodePropagationInvalid: return strKubeECPInvalid default: return "unknown value" } }