refactor(health): reduce cyclomatic complexity in applyCustomConditions

Extract repeated healthy/unhealthy logic into applyHealthFromCondition helper
and convert if/else chain to switch statement (complexity 29 → 16).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Andrei Pohilko
2026-03-17 09:48:25 +00:00
parent f857f8dfdc
commit 5d2a61c2ff

View File

@@ -101,9 +101,20 @@ func EnhanceStatus(res *v12.Carp, err error) *v12.CarpStatus {
return &s return &s
} }
func applyHealthFromCondition(c *v12.CarpCondition, cond v12.CarpCondition) {
if cond.Status == "False" {
c.Status = Unhealthy
} else {
c.Status = Healthy
}
c.Reason = cond.Reason
c.Message = cond.Message
}
func applyCustomConditions(s *v12.CarpStatus, c *v12.CarpCondition) { func applyCustomConditions(s *v12.CarpStatus, c *v12.CarpCondition) {
for _, cond := range s.Conditions { for _, cond := range s.Conditions {
if cond.Type == "Progressing" { // https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ switch cond.Type {
case "Progressing": // https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
if cond.Status == "False" { if cond.Status == "False" {
c.Status = Unhealthy c.Status = Unhealthy
c.Reason = cond.Reason c.Reason = cond.Reason
@@ -113,58 +124,26 @@ func applyCustomConditions(s *v12.CarpStatus, c *v12.CarpCondition) {
c.Reason = cond.Reason c.Reason = cond.Reason
c.Message = cond.Message c.Message = cond.Message
} }
} else if cond.Type == "Available" && c.Status == Unknown { case "Complete": // condition for Job
if cond.Status == "False" { if c.Status == Unknown && cond.Status == "True" {
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
} else if cond.Type == "Ready" && c.Status == Unknown { // condition for ExternalSecret
if cond.Status == "False" {
c.Status = Unhealthy
} else {
c.Status = Healthy
}
c.Reason = cond.Reason
c.Message = cond.Message
} else if cond.Type == "Complete" && c.Status == Unknown { // condition for Job
if cond.Status == "True" {
c.Status = Healthy c.Status = Healthy
c.Reason = cond.Reason c.Reason = cond.Reason
c.Message = cond.Message c.Message = cond.Message
} }
} else if cond.Type == "Failed" && c.Status == Unknown { // condition for Job case "Failed": // condition for Job
if cond.Status == "True" { if c.Status == Unknown && cond.Status == "True" {
c.Status = Unhealthy c.Status = Unhealthy
c.Reason = cond.Reason c.Reason = cond.Reason
c.Message = cond.Message c.Message = cond.Message
} }
} else if (cond.Type == "AbleToScale" || cond.Type == "ScalingActive") && c.Status == Unknown { // condition for HorizontalPodAutoscaler case "Available", "DisruptionAllowed", "Ready", "AbleToScale", "ScalingActive":
if cond.Status == "False" { if c.Status == Unknown {
c.Status = Unhealthy applyHealthFromCondition(c, cond)
} else { }
c.Status = Healthy case "Established", "NamesAccepted": // condition for CRD
if c.Status == Unknown || c.Status == Healthy {
applyHealthFromCondition(c, cond)
} }
c.Reason = cond.Reason
c.Message = cond.Message
} }
} }
} }