@@ -11,6 +11,7 @@ import (
11
11
networkingv1 "k8s.io/api/networking/v1"
12
12
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
13
13
"k8s.io/apimachinery/pkg/runtime"
14
+ kstatus "sigs.k8s.io/cli-utils/pkg/kstatus/status"
14
15
)
15
16
16
17
// Represents resource health status
@@ -64,9 +65,22 @@ func (hc *healthChecker) Check(obj unstructured.Unstructured) (HealthStatus, err
64
65
return checkService (obj )
65
66
}
66
67
67
- return HealthStatus {
68
- Status : HealthStatusUnknown ,
69
- }, nil
68
+ result , err := kstatus .Compute (& obj )
69
+ if err != nil {
70
+ err = fmt .Errorf ("computing kstatus for resource: %w" , err )
71
+ return HealthStatus {Status : HealthStatusUnknown , Message : err .Error ()}, err
72
+ }
73
+
74
+ status := HealthStatusUnknown
75
+ switch result .Status {
76
+ case kstatus .CurrentStatus :
77
+ status = HealthStatusHealthy
78
+ case kstatus .FailedStatus :
79
+ status = HealthStatusUnhealthy
80
+ case kstatus .InProgressStatus :
81
+ status = HealthStatusProgressing
82
+ }
83
+ return HealthStatus {Status : status , Message : result .Message }, nil
70
84
}
71
85
72
86
func checkDeployment (obj unstructured.Unstructured ) (HealthStatus , error ) {
0 commit comments