From 8d0826a031b7b0a7cad70c3735a3a5c4f7f3e0a7 Mon Sep 17 00:00:00 2001 From: Asim Aslam Date: Wed, 25 Mar 2020 19:32:41 +0000 Subject: [PATCH] Add check for k8s condition (#1412) --- runtime/kubernetes/kubernetes.go | 6 ++++++ util/kubernetes/client/types.go | 1 + 2 files changed, 7 insertions(+) diff --git a/runtime/kubernetes/kubernetes.go b/runtime/kubernetes/kubernetes.go index 9515878a..f8568dc1 100644 --- a/runtime/kubernetes/kubernetes.go +++ b/runtime/kubernetes/kubernetes.go @@ -129,6 +129,7 @@ func (k *kubernetes) getService(labels map[string]string) ([]*service, error) { // parse out deployment status and inject into service metadata if len(kdep.Status.Conditions) > 0 { svc.Metadata["status"] = kdep.Status.Conditions[0].Type + svc.Metadata["started"] = kdep.Status.Conditions[0].LastUpdate delete(svc.Metadata, "error") } else { svc.Metadata["status"] = "n/a" @@ -154,6 +155,11 @@ func (k *kubernetes) getService(labels map[string]string) ([]*service, error) { status = item.Status.Phase } + // skip if we can't get the container + if len(item.Status.Containers) == 0 { + continue + } + // now try get a deeper status state := item.Status.Containers[0].State diff --git a/util/kubernetes/client/types.go b/util/kubernetes/client/types.go index b8bcf383..deca24a0 100644 --- a/util/kubernetes/client/types.go +++ b/util/kubernetes/client/types.go @@ -39,6 +39,7 @@ type DeploymentSpec struct { // DeploymentCondition describes the state of deployment type DeploymentCondition struct { + LastUpdate string `json:lastUpdateTime` Type string `json:"type"` reason string `json:"reason,omitempty"` message string `json:"message,omitempty"`