diff --git a/pkg/printers/internalversion/describe.go b/pkg/printers/internalversion/describe.go index ef79f5e05cb..80efd2734d7 100644 --- a/pkg/printers/internalversion/describe.go +++ b/pkg/printers/internalversion/describe.go @@ -679,6 +679,21 @@ func describePod(pod *api.Pod, events *api.EventList) (string, error) { describeContainers("Init Containers", pod.Spec.InitContainers, pod.Status.InitContainerStatuses, EnvValueRetriever(pod), w, "") } describeContainers("Containers", pod.Spec.Containers, pod.Status.ContainerStatuses, EnvValueRetriever(pod), w, "") + if len(pod.Spec.ReadinessGates) > 0 { + w.Write(LEVEL_0, "Readiness Gates:\n Type\tStatus\n") + for _, g := range pod.Spec.ReadinessGates { + status := "" + for _, c := range pod.Status.Conditions { + if c.Type == g.ConditionType { + status = fmt.Sprintf("%v", c.Status) + break + } + } + w.Write(LEVEL_1, "%v \t%v \n", + g.ConditionType, + status) + } + } if len(pod.Status.Conditions) > 0 { w.Write(LEVEL_0, "Conditions:\n Type\tStatus\n") for _, c := range pod.Status.Conditions { diff --git a/pkg/printers/internalversion/describe_test.go b/pkg/printers/internalversion/describe_test.go index ceded030e41..5e37d7c3d7f 100644 --- a/pkg/printers/internalversion/describe_test.go +++ b/pkg/printers/internalversion/describe_test.go @@ -55,6 +55,8 @@ type describeClient struct { func TestDescribePod(t *testing.T) { deletionTimestamp := metav1.Time{Time: time.Now().UTC().AddDate(10, 0, 0)} gracePeriod := int64(1234) + condition1 := api.PodConditionType("condition1") + condition2 := api.PodConditionType("condition2") fake := fake.NewSimpleClientset(&api.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: "bar", @@ -62,6 +64,24 @@ func TestDescribePod(t *testing.T) { DeletionTimestamp: &deletionTimestamp, DeletionGracePeriodSeconds: &gracePeriod, }, + Spec: api.PodSpec{ + ReadinessGates: []api.PodReadinessGate{ + { + ConditionType: condition1, + }, + { + ConditionType: condition2, + }, + }, + }, + Status: api.PodStatus{ + Conditions: []api.PodCondition{ + { + Type: condition1, + Status: api.ConditionTrue, + }, + }, + }, }) c := &describeClient{T: t, Namespace: "foo", Interface: fake} d := PodDescriber{c}