From 5b27c3e352701819f1d0449df9acf706040f1f13 Mon Sep 17 00:00:00 2001 From: Jesang Myung Date: Mon, 20 Nov 2023 22:01:04 +0900 Subject: [PATCH] fix: cover more error reason messages (#759) * fix: cover more error reasons (#758) Signed-off-by: Jesang Myung * fix: refactoring for simplify conditions Signed-off-by: Jesang Myung --------- Signed-off-by: Jesang Myung --- pkg/analyzer/pod.go | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/pkg/analyzer/pod.go b/pkg/analyzer/pod.go index e271c650db..392076791d 100644 --- a/pkg/analyzer/pod.go +++ b/pkg/analyzer/pod.go @@ -59,15 +59,16 @@ func (PodAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { // Check through container status to check for crashes or unready for _, containerStatus := range pod.Status.ContainerStatuses { + if containerStatus.State.Waiting != nil { - if containerStatus.State.Waiting.Reason == "CrashLoopBackOff" || containerStatus.State.Waiting.Reason == "ImagePullBackOff" || containerStatus.State.Waiting.Reason == "CreateContainerConfigError" { - if containerStatus.State.Waiting.Message != "" { - failures = append(failures, common.Failure{ - Text: containerStatus.State.Waiting.Message, - Sensitive: []common.Sensitive{}, - }) - } + + if isErrorReason(containerStatus.State.Waiting.Reason) && containerStatus.State.Waiting.Message != "" { + failures = append(failures, common.Failure{ + Text: containerStatus.State.Waiting.Message, + Sensitive: []common.Sensitive{}, + }) } + // This represents a container that is still being created or blocked due to conditions such as OOMKilled if containerStatus.State.Waiting.Reason == "ContainerCreating" && pod.Status.Phase == "Pending" { @@ -125,3 +126,16 @@ func (PodAnalyzer) Analyze(a common.Analyzer) ([]common.Result, error) { return a.Results, nil } + +func isErrorReason(reason string) bool { + failureReasons := []string{ + "CrashLoopBackOff", "ImagePullBackOff", "CreateContainerConfigError", "PreCreateHookError", "CreateContainerError", "PreStartHookError", "RunContainerError", "ImageInspectError", "ErrImagePull", "ErrImageNeverPull", "InvalidImageName", + } + + for _, r := range failureReasons { + if r == reason { + return true + } + } + return false +}