Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
94b3c95e
Commit
94b3c95e
authored
Feb 15, 2016
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #20557 from AdoHe/kubectl_update_wide
Auto commit by PR queue bot
parents
39a9043b
53d4b15b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
112 additions
and
28 deletions
+112
-28
cmd_test.go
pkg/kubectl/cmd/cmd_test.go
+46
-5
resource_printer.go
pkg/kubectl/resource_printer.go
+66
-23
No files found.
pkg/kubectl/cmd/cmd_test.go
View file @
94b3c95e
...
@@ -363,8 +363,49 @@ func ExamplePrintReplicationControllerWithNamespace() {
...
@@ -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() {
...
@@ -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|
// ||
// ||
}
}
...
...
pkg/kubectl/resource_printer.go
View file @
94b3c95e
...
@@ -396,14 +396,14 @@ func (h *HumanReadablePrinter) HandledResources() []string {
...
@@ -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
...
@@ -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
...
@@ -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 {
...
@@ -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 {
...
@@ -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)
...
@@ -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 {
...
@@ -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
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment