sigh, further status changes (#1371)

This commit is contained in:
Asim Aslam 2020-03-18 22:47:03 +00:00 committed by GitHub
parent 5ad7c36bd4
commit 40ff6ddfcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 6 deletions

View File

@ -152,6 +152,22 @@ func (k *kubernetes) getService(labels map[string]string) ([]*service, error) {
status = item.Status.Phase
}
// now try get a deeper status
state := item.Status.Containers[0].State
// set start time
if state.Running != nil {
svc.Metadata["started"] = state.Running.Started
}
// set status from waiting
if v := state.Waiting; v != nil {
if len(v.Reason) > 0 {
status = v.Reason
}
}
// TODO: set from terminated
svc.Metadata["status"] = status
}

View File

@ -14,6 +14,12 @@ type EnvVar struct {
Value string `json:"value,omitempty"`
}
type Condition struct {
Started string `json:"startedAt,omitempty"`
Reason string `json:"reason,omitempty"`
Message string `json:"message,omitempty"`
}
// Container defined container runtime values
type Container struct {
Name string `json:"name"`
@ -34,8 +40,8 @@ type DeploymentSpec struct {
// DeploymentCondition describes the state of deployment
type DeploymentCondition struct {
Type string `json:"type"`
Reason string `json:"reason,omitempty"`
Message string `json:"message,omitempty"`
reason string `json:"reason,omitempty"`
message string `json:"message,omitempty"`
}
// DeploymentStatus is returned when querying deployment
@ -103,10 +109,11 @@ type Pod struct {
// PodStatus
type PodStatus struct {
Conditions []PodCondition `json:"conditions,omitempty"`
PodIP string `json:"podIP"`
Phase string `json:"phase"`
Reason string `json:"reason"`
Conditions []PodCondition `json:"conditions,omitempty"`
Containers []ContainerStatus `json:"containerStatuses"`
PodIP string `json:"podIP"`
Phase string `json:"phase"`
Reason string `json:"reason"`
}
// PodCondition describes the state of pod
@ -116,6 +123,16 @@ type PodCondition struct {
Message string `json:"message,omitempty"`
}
type ContainerStatus struct {
State ContainerState `json:"state"`
}
type ContainerState struct {
Running *Condition `json:"running"`
Terminated *Condition `json:"terminated"`
Waiting *Condition `json:"waiting"`
}
// Resource is API resource
type Resource struct {
Name string