Skip to content

Commit

Permalink
Merge pull request #88240 from soltysh/pod_conditions
Browse files Browse the repository at this point in the history
Present more concrete information about pod readiness
  • Loading branch information
k8s-ci-robot committed Mar 3, 2020
2 parents 62dc3ea + e77df88 commit bfb3fb5
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 2 deletions.
15 changes: 14 additions & 1 deletion pkg/printers/internalversion/printers.go
Original file line number Diff line number Diff line change
Expand Up @@ -767,7 +767,11 @@ func printPod(pod *api.Pod, options printers.GenerateOptions) ([]metav1.TableRow

// change pod status back to "Running" if there is at least one container still reporting as "Running" status
if reason == "Completed" && hasRunning {
reason = "Running"
if hasPodReadyCondition(pod.Status.Conditions) {
reason = "Running"
} else {
reason = "NotReady"
}
}
}

Expand Down Expand Up @@ -818,6 +822,15 @@ func printPod(pod *api.Pod, options printers.GenerateOptions) ([]metav1.TableRow
return []metav1.TableRow{row}, nil
}

func hasPodReadyCondition(conditions []api.PodCondition) bool {
for _, condition := range conditions {
if condition.Type == api.PodReady && condition.Status == api.ConditionTrue {
return true
}
}
return false
}

func printPodTemplate(obj *api.PodTemplate, options printers.GenerateOptions) ([]metav1.TableRow, error) {
row := metav1.TableRow{
Object: runtime.RawExtension{Object: obj},
Expand Down
21 changes: 20 additions & 1 deletion pkg/printers/internalversion/printers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1130,7 +1130,7 @@ func TestPrintPod(t *testing.T) {
[]metav1.TableRow{{Cells: []interface{}{"test5", "1/2", "podReason", int64(6), "<unknown>"}}},
},
{
// Test pod has 2 containers, one is running and the other is completed.
// Test pod has 2 containers, one is running and the other is completed, w/o ready condition
api.Pod{
ObjectMeta: metav1.ObjectMeta{Name: "test6"},
Spec: api.PodSpec{Containers: make([]api.Container, 2)},
Expand All @@ -1143,6 +1143,25 @@ func TestPrintPod(t *testing.T) {
},
},
},
[]metav1.TableRow{{Cells: []interface{}{"test6", "1/2", "NotReady", int64(6), "<unknown>"}}},
},
{
// Test pod has 2 containers, one is running and the other is completed, with ready condition
api.Pod{
ObjectMeta: metav1.ObjectMeta{Name: "test6"},
Spec: api.PodSpec{Containers: make([]api.Container, 2)},
Status: api.PodStatus{
Phase: "Running",
Reason: "",
ContainerStatuses: []api.ContainerStatus{
{Ready: true, RestartCount: 3, State: api.ContainerState{Terminated: &api.ContainerStateTerminated{Reason: "Completed", ExitCode: 0}}},
{Ready: true, RestartCount: 3, State: api.ContainerState{Running: &api.ContainerStateRunning{}}},
},
Conditions: []api.PodCondition{
{Type: api.PodReady, Status: api.ConditionTrue, LastProbeTime: metav1.Time{Time: time.Now()}},
},
},
},
[]metav1.TableRow{{Cells: []interface{}{"test6", "1/2", "Running", int64(6), "<unknown>"}}},
},
}
Expand Down

0 comments on commit bfb3fb5

Please sign in to comment.