use pod phase/status (#1356)

This commit is contained in:
Asim Aslam 2020-03-16 23:47:34 +00:00 committed by GitHub
parent 5712aafba9
commit 03031a694d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 12 deletions

View File

@ -117,19 +117,22 @@ func (k *kubernetes) getService(labels map[string]string) ([]*service, error) {
}
// get the status from the pods
status := "unknown"
if len(podList.Items) > 0 {
switch podList.Items[0].Status.Conditions[0].Type {
case "PodScheduled":
status = "starting"
case "Initialized":
status = "starting"
case "Ready":
status = "ready"
case "ContainersReady":
status = "ready"
var status string
for _, item := range podList.Items {
switch item.Status.Phase {
case "Failed":
status = item.Status.Reason
default:
status = item.Status.Phase
}
}
// unknown status
if len(status) == 0 {
status = "n/a"
}
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
logger.Debugf("Runtime setting %s service deployment status: %v", name, status)
}

View File

@ -103,9 +103,10 @@ type Pod struct {
// PodStatus
type PodStatus struct {
Conditions []PodCondition `json:"conditions,omitempty"`
PodIP string `json:"podIP"`
Phase string `json:"phase"`
Conditions []PodCondition `json:"conditions,omitempty"`
Reason string `json:"reason"`
}
// PodCondition describes the state of pod