1
0
mirror of https://github.com/kubernetes-sigs/descheduler.git synced 2026-01-26 05:14:13 +01:00

Merge pull request #1164 from a7i/podlifetime-CrashLoopBackOff

PodLifeTime: support CrashLoopBackOff container state
This commit is contained in:
Kubernetes Prow Robot
2023-06-07 10:46:13 -07:00
committed by GitHub
2 changed files with 13 additions and 2 deletions

View File

@@ -44,12 +44,14 @@ func ValidatePodLifeTimeArgs(obj runtime.Object) error {
}
}
podLifeTimeAllowedStates := sets.New(
// Pod phase reasons
string(v1.PodRunning),
string(v1.PodPending),
// Container state reasons: https://github.com/kubernetes/kubernetes/blob/release-1.24/pkg/kubelet/kubelet_pods.go#L76-L79
// Container state reasons
"PodInitializing",
"ContainerCreating",
"CrashLoopBackOff",
)
if !podLifeTimeAllowedStates.HasAll(args.States...) {

View File

@@ -20,6 +20,7 @@ import (
"testing"
v1 "k8s.io/api/core/v1"
utilpointer "k8s.io/utils/pointer"
)
func TestValidateRemovePodLifeTimeArgs(t *testing.T) {
@@ -31,7 +32,7 @@ func TestValidateRemovePodLifeTimeArgs(t *testing.T) {
{
description: "valid arg, no errors",
args: &PodLifeTimeArgs{
MaxPodLifeTimeSeconds: func(i uint) *uint { return &i }(1),
MaxPodLifeTimeSeconds: utilpointer.Uint(1),
States: []string{string(v1.PodRunning)},
},
expectError: false,
@@ -50,6 +51,14 @@ func TestValidateRemovePodLifeTimeArgs(t *testing.T) {
},
expectError: true,
},
{
description: "allows CrashLoopBackOff state",
args: &PodLifeTimeArgs{
MaxPodLifeTimeSeconds: utilpointer.Uint(1),
States: []string{"CrashLoopBackOff"},
},
expectError: false,
},
}
for _, tc := range testCases {