Skip to content

Commit

Permalink
sigh, further status changes (micro#1371)
Browse files Browse the repository at this point in the history
  • Loading branch information
asim committed Mar 18, 2020
1 parent 5ad7c36 commit 40ff6dd
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 6 deletions.
16 changes: 16 additions & 0 deletions runtime/kubernetes/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down
29 changes: 23 additions & 6 deletions util/kubernetes/client/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"`
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down

0 comments on commit 40ff6dd

Please sign in to comment.