mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-02 08:17:26 +00:00
move columns into wide option to make result more readable
This commit is contained in:
parent
ad36fc8ba5
commit
53d4b15b87
@ -363,8 +363,49 @@ func ExamplePrintReplicationControllerWithNamespace() {
|
|||||||
fmt.Printf("Unexpected error: %v", err)
|
fmt.Printf("Unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
// Output:
|
// Output:
|
||||||
// NAMESPACE CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS AGE
|
// NAMESPACE CONTROLLER REPLICAS AGE
|
||||||
// beep foo foo someimage foo=bar 1 10y
|
// beep foo 1 10y
|
||||||
|
}
|
||||||
|
|
||||||
|
func ExamplePrintReplicationControllerWithWide() {
|
||||||
|
f, tf, codec := NewAPIFactory()
|
||||||
|
tf.Printer = kubectl.NewHumanReadablePrinter(false, false, true, false, false, false, []string{})
|
||||||
|
tf.Client = &fake.RESTClient{
|
||||||
|
Codec: codec,
|
||||||
|
Client: nil,
|
||||||
|
}
|
||||||
|
cmd := NewCmdRun(f, os.Stdin, os.Stdout, os.Stderr)
|
||||||
|
ctrl := &api.ReplicationController{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "foo",
|
||||||
|
Labels: map[string]string{"foo": "bar"},
|
||||||
|
CreationTimestamp: unversioned.Time{Time: time.Now().AddDate(-10, 0, 0)},
|
||||||
|
},
|
||||||
|
Spec: api.ReplicationControllerSpec{
|
||||||
|
Replicas: 1,
|
||||||
|
Selector: map[string]string{"foo": "bar"},
|
||||||
|
Template: &api.PodTemplateSpec{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Labels: map[string]string{"foo": "bar"},
|
||||||
|
},
|
||||||
|
Spec: api.PodSpec{
|
||||||
|
Containers: []api.Container{
|
||||||
|
{
|
||||||
|
Name: "foo",
|
||||||
|
Image: "someimage",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
err := f.PrintObject(cmd, ctrl, os.Stdout)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("Unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
// Output:
|
||||||
|
// CONTROLLER REPLICAS AGE CONTAINER(S) IMAGE(S) SELECTOR
|
||||||
|
// foo 1 10y foo someimage foo=bar
|
||||||
}
|
}
|
||||||
|
|
||||||
func ExamplePrintPodWithWideFormat() {
|
func ExamplePrintPodWithWideFormat() {
|
||||||
@ -635,9 +676,9 @@ func ExamplePrintServiceWithNamespacesAndLabels() {
|
|||||||
fmt.Printf("Unexpected error: %v", err)
|
fmt.Printf("Unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
// Output:
|
// Output:
|
||||||
// |NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) SELECTOR AGE L1|
|
// |NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE L1|
|
||||||
// |ns1 svc1 10.1.1.1 unknown 53/UDP,53/TCP s=magic 10y value|
|
// |ns1 svc1 10.1.1.1 unknown 53/UDP,53/TCP 10y value|
|
||||||
// |ns2 svc2 10.1.1.2 unknown 80/TCP,8080/TCP s=kazam 10y dolla-bill-yall|
|
// |ns2 svc2 10.1.1.2 unknown 80/TCP,8080/TCP 10y dolla-bill-yall|
|
||||||
// ||
|
// ||
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -396,14 +396,14 @@ func (h *HumanReadablePrinter) HandledResources() []string {
|
|||||||
// pkg/kubectl/cmd/get.go to reflect the new resource type.
|
// pkg/kubectl/cmd/get.go to reflect the new resource type.
|
||||||
var podColumns = []string{"NAME", "READY", "STATUS", "RESTARTS", "AGE"}
|
var podColumns = []string{"NAME", "READY", "STATUS", "RESTARTS", "AGE"}
|
||||||
var podTemplateColumns = []string{"TEMPLATE", "CONTAINER(S)", "IMAGE(S)", "PODLABELS"}
|
var podTemplateColumns = []string{"TEMPLATE", "CONTAINER(S)", "IMAGE(S)", "PODLABELS"}
|
||||||
var replicationControllerColumns = []string{"CONTROLLER", "CONTAINER(S)", "IMAGE(S)", "SELECTOR", "REPLICAS", "AGE"}
|
var replicationControllerColumns = []string{"CONTROLLER", "REPLICAS", "AGE"}
|
||||||
var replicaSetColumns = []string{"CONTROLLER", "CONTAINER(S)", "IMAGE(S)", "SELECTOR", "REPLICAS", "AGE"}
|
var replicaSetColumns = []string{"CONTROLLER", "REPLICAS", "AGE"}
|
||||||
var jobColumns = []string{"JOB", "CONTAINER(S)", "IMAGE(S)", "SELECTOR", "SUCCESSFUL"}
|
var jobColumns = []string{"JOB", "SUCCESSFUL"}
|
||||||
var serviceColumns = []string{"NAME", "CLUSTER-IP", "EXTERNAL-IP", "PORT(S)", "SELECTOR", "AGE"}
|
var serviceColumns = []string{"NAME", "CLUSTER-IP", "EXTERNAL-IP", "PORT(S)", "AGE"}
|
||||||
var ingressColumns = []string{"NAME", "RULE", "BACKEND", "ADDRESS"}
|
var ingressColumns = []string{"NAME", "RULE", "BACKEND", "ADDRESS"}
|
||||||
var endpointColumns = []string{"NAME", "ENDPOINTS", "AGE"}
|
var endpointColumns = []string{"NAME", "ENDPOINTS", "AGE"}
|
||||||
var nodeColumns = []string{"NAME", "STATUS", "AGE"}
|
var nodeColumns = []string{"NAME", "STATUS", "AGE"}
|
||||||
var daemonSetColumns = []string{"NAME", "CONTAINER(S)", "IMAGE(S)", "SELECTOR", "NODE-SELECTOR"}
|
var daemonSetColumns = []string{"NAME", "NODE-SELECTOR"}
|
||||||
var eventColumns = []string{"FIRSTSEEN", "LASTSEEN", "COUNT", "NAME", "KIND", "SUBOBJECT", "TYPE", "REASON", "SOURCE", "MESSAGE"}
|
var eventColumns = []string{"FIRSTSEEN", "LASTSEEN", "COUNT", "NAME", "KIND", "SUBOBJECT", "TYPE", "REASON", "SOURCE", "MESSAGE"}
|
||||||
var limitRangeColumns = []string{"NAME", "AGE"}
|
var limitRangeColumns = []string{"NAME", "AGE"}
|
||||||
var resourceQuotaColumns = []string{"NAME", "AGE"}
|
var resourceQuotaColumns = []string{"NAME", "AGE"}
|
||||||
@ -703,16 +703,22 @@ func printReplicationController(controller *api.ReplicationController, w io.Writ
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%d\t%s",
|
if _, err := fmt.Fprintf(w, "%s\t%d\t%s",
|
||||||
name,
|
name,
|
||||||
firstContainer.Name,
|
|
||||||
firstContainer.Image,
|
|
||||||
labels.FormatLabels(controller.Spec.Selector),
|
|
||||||
controller.Spec.Replicas,
|
controller.Spec.Replicas,
|
||||||
translateTimestamp(controller.CreationTimestamp),
|
translateTimestamp(controller.CreationTimestamp),
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if options.Wide {
|
||||||
|
if _, err := fmt.Fprintf(w, "\t%s\t%s\t%s",
|
||||||
|
firstContainer.Name,
|
||||||
|
firstContainer.Image,
|
||||||
|
labels.FormatLabels(controller.Spec.Selector),
|
||||||
|
); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
if _, err := fmt.Fprint(w, appendLabels(controller.Labels, options.ColumnLabels)); err != nil {
|
if _, err := fmt.Fprint(w, appendLabels(controller.Labels, options.ColumnLabels)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -760,16 +766,22 @@ func printReplicaSet(rs *extensions.ReplicaSet, w io.Writer, options PrintOption
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%d\t%s",
|
if _, err := fmt.Fprintf(w, "%s\t%d\t%s",
|
||||||
name,
|
name,
|
||||||
firstContainer.Name,
|
|
||||||
firstContainer.Image,
|
|
||||||
unversioned.FormatLabelSelector(rs.Spec.Selector),
|
|
||||||
rs.Spec.Replicas,
|
rs.Spec.Replicas,
|
||||||
translateTimestamp(rs.CreationTimestamp),
|
translateTimestamp(rs.CreationTimestamp),
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if options.Wide {
|
||||||
|
if _, err := fmt.Fprintf(w, "\t%s\t%s\t%s",
|
||||||
|
firstContainer.Name,
|
||||||
|
firstContainer.Image,
|
||||||
|
unversioned.FormatLabelSelector(rs.Spec.Selector),
|
||||||
|
); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
if _, err := fmt.Fprint(w, appendLabels(rs.Labels, options.ColumnLabels)); err != nil {
|
if _, err := fmt.Fprint(w, appendLabels(rs.Labels, options.ColumnLabels)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -818,15 +830,21 @@ func printJob(job *extensions.Job, w io.Writer, options PrintOptions) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
selector, _ := unversioned.LabelSelectorAsSelector(job.Spec.Selector)
|
selector, _ := unversioned.LabelSelectorAsSelector(job.Spec.Selector)
|
||||||
_, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%d",
|
_, err := fmt.Fprintf(w, "%s\t%d",
|
||||||
name,
|
name,
|
||||||
firstContainer.Name,
|
|
||||||
firstContainer.Image,
|
|
||||||
selector.String(),
|
|
||||||
job.Status.Succeeded)
|
job.Status.Succeeded)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if options.Wide {
|
||||||
|
if _, err := fmt.Fprintf(w, "\t%s\t%s\t%s",
|
||||||
|
firstContainer.Name,
|
||||||
|
firstContainer.Image,
|
||||||
|
selector.String(),
|
||||||
|
); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
if _, err := fmt.Fprint(w, appendLabels(job.Labels, options.ColumnLabels)); err != nil {
|
if _, err := fmt.Fprint(w, appendLabels(job.Labels, options.ColumnLabels)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -916,16 +934,20 @@ func printService(svc *api.Service, w io.Writer, options PrintOptions) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\t%s",
|
if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s",
|
||||||
name,
|
name,
|
||||||
internalIP,
|
internalIP,
|
||||||
externalIP,
|
externalIP,
|
||||||
makePortString(svc.Spec.Ports),
|
makePortString(svc.Spec.Ports),
|
||||||
labels.FormatLabels(svc.Spec.Selector),
|
|
||||||
translateTimestamp(svc.CreationTimestamp),
|
translateTimestamp(svc.CreationTimestamp),
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if options.Wide {
|
||||||
|
if _, err := fmt.Fprintf(w, "\t%s", labels.FormatLabels(svc.Spec.Selector)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
if _, err := fmt.Fprint(w, appendLabels(svc.Labels, options.ColumnLabels)); err != nil {
|
if _, err := fmt.Fprint(w, appendLabels(svc.Labels, options.ColumnLabels)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -1031,15 +1053,21 @@ func printDaemonSet(ds *extensions.DaemonSet, w io.Writer, options PrintOptions)
|
|||||||
// this shouldn't happen if LabelSelector passed validation
|
// this shouldn't happen if LabelSelector passed validation
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s",
|
if _, err := fmt.Fprintf(w, "%s\t%s",
|
||||||
name,
|
name,
|
||||||
firstContainer.Name,
|
|
||||||
firstContainer.Image,
|
|
||||||
selector,
|
|
||||||
labels.FormatLabels(ds.Spec.Template.Spec.NodeSelector),
|
labels.FormatLabels(ds.Spec.Template.Spec.NodeSelector),
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if options.Wide {
|
||||||
|
if _, err := fmt.Fprintf(w, "\t%s\t%s\t%s",
|
||||||
|
firstContainer.Name,
|
||||||
|
firstContainer.Image,
|
||||||
|
selector,
|
||||||
|
); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
if _, err := fmt.Fprint(w, appendLabels(ds.Labels, options.ColumnLabels)); err != nil {
|
if _, err := fmt.Fprint(w, appendLabels(ds.Labels, options.ColumnLabels)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -1684,6 +1712,21 @@ func formatWideHeaders(wide bool, t reflect.Type) []string {
|
|||||||
if t.String() == "*api.Pod" || t.String() == "*api.PodList" {
|
if t.String() == "*api.Pod" || t.String() == "*api.PodList" {
|
||||||
return []string{"NODE"}
|
return []string{"NODE"}
|
||||||
}
|
}
|
||||||
|
if t.String() == "*api.ReplicationController" || t.String() == "*api.ReplicationControllerList" {
|
||||||
|
return []string{"CONTAINER(S)", "IMAGE(S)", "SELECTOR"}
|
||||||
|
}
|
||||||
|
if t.String() == "*extensions.Job" || t.String() == "*extensions.JobList" {
|
||||||
|
return []string{"CONTAINER(S)", "IMAGE(S)", "SELECTOR"}
|
||||||
|
}
|
||||||
|
if t.String() == "*api.Service" || t.String() == "*api.ServiceList" {
|
||||||
|
return []string{"SELECTOR"}
|
||||||
|
}
|
||||||
|
if t.String() == "*extensions.DaemonSet" || t.String() == "*extensions.DaemonSetList" {
|
||||||
|
return []string{"CONTAINER(S)", "IMAGE(S)", "SELECTOR"}
|
||||||
|
}
|
||||||
|
if t.String() == "*extensions.ReplicaSet" || t.String() == "*extensions.ReplicaSetList" {
|
||||||
|
return []string{"CONTAINER(S)", "IMAGE(S)", "SELECTOR"}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user