Merge pull request #33794 from nikhiljindal/describeRS

Automatic merge from submit-queue

Enable kubectl describe rs to work when apiserver does not support pods

Fixes https://github.com/kubernetes/kubernetes/issues/33309

Similar to https://github.com/kubernetes/kubernetes/pull/32823

Small fix for easy cherrypicking in 1.4.1.
Eventually we want to fix all describers: https://github.com/kubernetes/kubernetes/issues/32883

cc @kubernetes/sig-cluster-federation
This commit is contained in:
Kubernetes Submit Queue 2016-10-04 14:53:21 -07:00 committed by GitHub
commit ac535e2937

View File

@ -1193,20 +1193,17 @@ func (d *ReplicaSetDescriber) Describe(namespace, name string, describerSettings
return "", err
}
running, waiting, succeeded, failed, err := getPodStatusForController(pc, selector)
if err != nil {
return "", err
}
running, waiting, succeeded, failed, getPodErr := getPodStatusForController(pc, selector)
var events *api.EventList
if describerSettings.ShowEvents {
events, _ = d.Core().Events(namespace).Search(rs)
}
return describeReplicaSet(rs, events, running, waiting, succeeded, failed)
return describeReplicaSet(rs, events, running, waiting, succeeded, failed, getPodErr)
}
func describeReplicaSet(rs *extensions.ReplicaSet, events *api.EventList, running, waiting, succeeded, failed int) (string, error) {
func describeReplicaSet(rs *extensions.ReplicaSet, events *api.EventList, running, waiting, succeeded, failed int, getPodErr error) (string, error) {
return tabbedString(func(out io.Writer) error {
fmt.Fprintf(out, "Name:\t%s\n", rs.Name)
fmt.Fprintf(out, "Namespace:\t%s\n", rs.Namespace)
@ -1214,7 +1211,12 @@ func describeReplicaSet(rs *extensions.ReplicaSet, events *api.EventList, runnin
fmt.Fprintf(out, "Selector:\t%s\n", unversioned.FormatLabelSelector(rs.Spec.Selector))
printLabelsMultiline(out, "Labels", rs.Labels)
fmt.Fprintf(out, "Replicas:\t%d current / %d desired\n", rs.Status.Replicas, rs.Spec.Replicas)
fmt.Fprintf(out, "Pods Status:\t%d Running / %d Waiting / %d Succeeded / %d Failed\n", running, waiting, succeeded, failed)
fmt.Fprintf(out, "Pods Status:\t")
if getPodErr != nil {
fmt.Fprintf(out, "error in fetching pods: %s\n", getPodErr)
} else {
fmt.Fprintf(out, "%d Running / %d Waiting / %d Succeeded / %d Failed\n", running, waiting, succeeded, failed)
}
describeVolumes(rs.Spec.Template.Spec.Volumes, out, "")
if events != nil {
DescribeEvents(events, out)