Don't fail on single resource status error

Relates to #301
This commit is contained in:
Andrei Pohilko
2023-03-24 17:39:29 +00:00
parent 8826124f70
commit 80022c3ef8
3 changed files with 13 additions and 7 deletions

View File

@@ -56,12 +56,12 @@ func (h *KubeHandler) GetResourceInfo(c *gin.Context) {
return
}
EnhanceStatus(res)
EnhanceStatus(res, nil)
c.IndentedJSON(http.StatusOK, res)
}
func EnhanceStatus(res *v12.Carp) *v12.CarpStatus {
func EnhanceStatus(res *v12.Carp, err error) *v12.CarpStatus {
s := res.Status
if s.Conditions == nil {
s.Conditions = []v12.CarpCondition{}
@@ -75,7 +75,10 @@ func EnhanceStatus(res *v12.Carp) *v12.CarpStatus {
}
// custom logic to provide most meaningful status for the resource
if s.Phase == "Error" {
if err != nil {
c.Reason = "ErrorGettingStatus"
c.Message = err.Error()
} else if s.Phase == "Error" {
c.Status = Unhealthy
} else if slices.Contains([]string{"Available", "Active", "Established", "Bound", "Ready"}, string(s.Phase)) {
c.Status = Healthy