From d46d7ab1da532e16ad1bf3882904304b9acbb46e Mon Sep 17 00:00:00 2001 From: Andrei Pohilko Date: Thu, 3 Aug 2023 18:05:33 +0100 Subject: [PATCH] refactoring --- pkg/dashboard/handlers/kubeHandlers.go | 78 ++++++++++++++------------ 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/pkg/dashboard/handlers/kubeHandlers.go b/pkg/dashboard/handlers/kubeHandlers.go index 9efbeb2..cc9966a 100644 --- a/pkg/dashboard/handlers/kubeHandlers.go +++ b/pkg/dashboard/handlers/kubeHandlers.go @@ -84,43 +84,7 @@ func EnhanceStatus(res *v12.Carp, err error) *v12.CarpStatus { c.Status = Healthy c.Reason = "Exists" //since there is no condition to check here, we can set reason as exists. } else if s.Phase == "" && len(s.Conditions) > 0 { - for _, cond := range s.Conditions { - if cond.Type == "Progressing" { // https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ - if cond.Status == "False" { - c.Status = Unhealthy - c.Reason = cond.Reason - c.Message = cond.Message - } else if cond.Reason != "NewReplicaSetAvailable" { - c.Status = Progressing - c.Reason = cond.Reason - c.Message = cond.Message - } - } else if cond.Type == "Available" && c.Status == Unknown { - if cond.Status == "False" { - c.Status = Unhealthy - } else { - c.Status = Healthy - } - c.Reason = cond.Reason - c.Message = cond.Message - } else if cond.Type == "DisruptionAllowed" && c.Status == Unknown { //condition for PodDisruptionBudget - if cond.Status == "False" { - c.Status = Unhealthy - } else { - c.Status = Healthy - } - c.Reason = cond.Reason - c.Message = cond.Message - } else if (cond.Type == "Established" || cond.Type == "NamesAccepted") && (c.Status == Unknown || c.Status == Healthy) { //condition for CRD - if cond.Status == "False" { - c.Status = Unhealthy - } else { - c.Status = Healthy - } - c.Reason = cond.Reason - c.Message = cond.Message - } - } + applyCustomConditions(&s, &c) } else if s.Phase == "Pending" { c.Status = Progressing c.Reason = string(s.Phase) @@ -136,6 +100,46 @@ func EnhanceStatus(res *v12.Carp, err error) *v12.CarpStatus { return &s } +func applyCustomConditions(s *v12.CarpStatus, c *v12.CarpCondition) { + for _, cond := range s.Conditions { + if cond.Type == "Progressing" { // https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ + if cond.Status == "False" { + c.Status = Unhealthy + c.Reason = cond.Reason + c.Message = cond.Message + } else if cond.Reason != "NewReplicaSetAvailable" { + c.Status = Progressing + c.Reason = cond.Reason + c.Message = cond.Message + } + } else if cond.Type == "Available" && c.Status == Unknown { + if cond.Status == "False" { + c.Status = Unhealthy + } else { + c.Status = Healthy + } + c.Reason = cond.Reason + c.Message = cond.Message + } else if cond.Type == "DisruptionAllowed" && c.Status == Unknown { //condition for PodDisruptionBudget + if cond.Status == "False" { + c.Status = Unhealthy + } else { + c.Status = Healthy + } + c.Reason = cond.Reason + c.Message = cond.Message + } else if (cond.Type == "Established" || cond.Type == "NamesAccepted") && (c.Status == Unknown || c.Status == Healthy) { //condition for CRD + if cond.Status == "False" { + c.Status = Unhealthy + } else { + c.Status = Healthy + } + c.Reason = cond.Reason + c.Message = cond.Message + } + } +} + func (h *KubeHandler) Describe(c *gin.Context) { qp, err := utils.GetQueryProps(c) if err != nil {