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
55b00573
Commit
55b00573
authored
Jan 13, 2015
by
Daniel Smith
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #3441 from smarterclayton/fix_object_versioning_bug
Fix broken hack/cluster-validate.sh because output-versions were not locked
parents
f589ee98
30743b81
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
42 additions
and
18 deletions
+42
-18
test-cmd.sh
hack/test-cmd.sh
+20
-7
cmd.go
pkg/kubectl/cmd/cmd.go
+1
-9
get.go
pkg/kubectl/cmd/get.go
+18
-2
resource_printer.go
pkg/kubectl/resource_printer.go
+3
-0
No files found.
hack/test-cmd.sh
View file @
55b00573
...
@@ -94,29 +94,39 @@ kube_cmd=(
...
@@ -94,29 +94,39 @@ kube_cmd=(
"
${
KUBE_OUTPUT_HOSTBIN
}
/kubectl"
"
${
KUBE_OUTPUT_HOSTBIN
}
/kubectl"
)
)
kube_api_versions
=(
kube_api_versions
=(
""
v1beta1
v1beta1
v1beta2
v1beta2
v1beta3
v1beta3
)
)
for
version
in
"
${
kube_api_versions
[@]
}
"
;
do
for
version
in
"
${
kube_api_versions
[@]
}
"
;
do
kube_flags
=(
if
[[
-z
"
${
version
}
"
]]
;
then
-s
"http://127.0.0.1:
${
API_PORT
}
"
kube_flags
=(
--match-server-version
-s
"http://127.0.0.1:
${
API_PORT
}
"
--api-version
=
"
${
version
}
"
--match-server-version
)
)
[
"
$(
"
${
kube_cmd
[@]
}
"
get minions
-t
$'{{ .apiVersion }}'
"
${
kube_flags
[@]
}
"
)
"
==
"v1beta1"
]
else
kube_flags
=(
-s
"http://127.0.0.1:
${
API_PORT
}
"
--match-server-version
--api-version
=
"
${
version
}
"
)
[
"
$(
"
${
kube_cmd
[@]
}
"
get minions
-t
$'{{ .apiVersion }}'
"
${
kube_flags
[@]
}
"
)
"
==
"
${
version
}
"
]
fi
kube::log::status
"Testing kubectl(
${
version
}
:pods)"
kube::log::status
"Testing kubectl(
${
version
}
:pods)"
"
${
kube_cmd
[@]
}
"
get pods
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
get pods
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
create
-f
examples/guestbook/redis-master.json
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
create
-f
examples/guestbook/redis-master.json
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
get pods
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
get pods
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
get pod redis-master
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
get pod redis-master
"
${
kube_flags
[@]
}
"
[
[
"
$(
"
${
kube_cmd
[@]
}
"
get pod redis-master
-o
template
--output-version
=
v1beta1
-t
'{{ .id }}'
"
${
kube_flags
[@]
}
"
)
"
==
"redis-master"
]
]
[
"
$(
"
${
kube_cmd
[@]
}
"
get pod redis-master
-o
template
--output-version
=
v1beta1
-t
'{{ .id }}'
"
${
kube_flags
[@]
}
"
)
"
==
"redis-master"
]
output_pod
=
$(
"
${
kube_cmd
[@]
}
"
get pod redis-master
-o
json
--output-version
=
v1beta1
"
${
kube_flags
[@]
}
"
)
output_pod
=
$(
"
${
kube_cmd
[@]
}
"
get pod redis-master
-o
json
--output-version
=
v1beta1
"
${
kube_flags
[@]
}
"
)
"
${
kube_cmd
[@]
}
"
delete pod redis-master
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
delete pod redis-master
"
${
kube_flags
[@]
}
"
before
=
"
$(
"
${
kube_cmd
[@]
}
"
get pods
-o
template
-t
"{{ len .items }}"
"
${
kube_flags
[@]
}
"
)
"
before
=
"
$(
"
${
kube_cmd
[@]
}
"
get pods
-o
template
-t
"{{ len .items }}"
"
${
kube_flags
[@]
}
"
)
"
echo
$output_pod
|
"
${
kube_cmd
[@]
}
"
create
-f
-
"
${
kube_flags
[@]
}
"
echo
$output_pod
|
"
${
kube_cmd
[@]
}
"
create
-f
-
"
${
kube_flags
[@]
}
"
after
=
"
$(
"
${
kube_cmd
[@]
}
"
get pods
-o
template
-t
"{{ len .items }}"
"
${
kube_flags
[@]
}
"
)
"
after
=
"
$(
"
${
kube_cmd
[@]
}
"
get pods
-o
template
-t
"{{ len .items }}"
"
${
kube_flags
[@]
}
"
)
"
[
[
"
$((${
after
}
-
${
before
}))
"
-eq
1
]
]
[
"
$((${
after
}
-
${
before
}))
"
-eq
1
]
"
${
kube_cmd
[@]
}
"
get pods
-o
yaml
--output-version
=
v1beta1
"
${
kube_flags
[@]
}
"
|
grep
-q
"id: redis-master"
"
${
kube_cmd
[@]
}
"
get pods
-o
yaml
--output-version
=
v1beta1
"
${
kube_flags
[@]
}
"
|
grep
-q
"id: redis-master"
"
${
kube_cmd
[@]
}
"
describe pod redis-master
"
${
kube_flags
[@]
}
"
|
grep
-q
'Name:.*redis-master'
"
${
kube_cmd
[@]
}
"
describe pod redis-master
"
${
kube_flags
[@]
}
"
|
grep
-q
'Name:.*redis-master'
"
${
kube_cmd
[@]
}
"
delete
-f
examples/guestbook/redis-master.json
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
delete
-f
examples/guestbook/redis-master.json
"
${
kube_flags
[@]
}
"
...
@@ -142,6 +152,9 @@ for version in "${kube_api_versions[@]}"; do
...
@@ -142,6 +152,9 @@ for version in "${kube_api_versions[@]}"; do
kube::log::status
"Testing kubectl(
${
version
}
:minions)"
kube::log::status
"Testing kubectl(
${
version
}
:minions)"
"
${
kube_cmd
[@]
}
"
get minions
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
get minions
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
get minions 127.0.0.1
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
get minions 127.0.0.1
"
${
kube_flags
[@]
}
"
"
${
kube_cmd
[@]
}
"
get minions
-o
template
-t
$'{{range.items}}{{.id}}
\n
{{end}}'
"
${
kube_flags
[@]
}
"
# TODO: I should be a MinionList instead of List
[
"
$(
"
${
kube_cmd
[@]
}
"
get minions
-t
$'{{ .kind }}'
"
${
kube_flags
[@]
}
"
)
"
==
"List"
]
fi
fi
done
done
...
...
pkg/kubectl/cmd/cmd.go
View file @
55b00573
...
@@ -325,17 +325,9 @@ func (c *clientCache) ClientConfigForVersion(version string) (*client.Config, er
...
@@ -325,17 +325,9 @@ func (c *clientCache) ClientConfigForVersion(version string) (*client.Config, er
}
}
}
}
// TODO: remove when SetKubernetesDefaults gets added
if
len
(
version
)
==
0
{
version
=
c
.
defaultConfig
.
Version
}
// TODO: have a better config copy method
// TODO: have a better config copy method
config
:=
*
c
.
defaultConfig
config
:=
*
c
.
defaultConfig
client
.
SetKubernetesDefaults
(
&
config
)
// TODO: call new client.SetKubernetesDefaults method
// instead of doing this
config
.
Version
=
version
return
&
config
,
nil
return
&
config
,
nil
}
}
...
...
pkg/kubectl/cmd/get.go
View file @
55b00573
...
@@ -21,6 +21,7 @@ import (
...
@@ -21,6 +21,7 @@ import (
"io"
"io"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/resource"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/resource"
...
@@ -126,7 +127,15 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
...
@@ -126,7 +127,15 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
if
generic
{
if
generic
{
// the outermost object will be converted to the output-version
// the outermost object will be converted to the output-version
printer
=
kubectl
.
NewVersionedPrinter
(
printer
,
api
.
Scheme
,
outputVersion
(
cmd
))
version
:=
outputVersion
(
cmd
)
if
len
(
version
)
==
0
{
// TODO: add a new ResourceBuilder mode for Object() that attempts to ensure the objects
// are in the appropriate version if one exists (and if not, use the best effort).
// TODO: ensure api-version is set with the default preferred api version by the client
// builder on initialization
version
=
latest
.
Version
}
printer
=
kubectl
.
NewVersionedPrinter
(
printer
,
api
.
Scheme
,
version
)
obj
,
err
:=
b
.
Flatten
()
.
Do
()
.
Object
()
obj
,
err
:=
b
.
Flatten
()
.
Do
()
.
Object
()
checkErr
(
err
)
checkErr
(
err
)
...
@@ -174,7 +183,14 @@ func printerForMapping(f *Factory, cmd *cobra.Command, mapping *meta.RESTMapping
...
@@ -174,7 +183,14 @@ func printerForMapping(f *Factory, cmd *cobra.Command, mapping *meta.RESTMapping
return
nil
,
err
return
nil
,
err
}
}
if
ok
{
if
ok
{
printer
=
kubectl
.
NewVersionedPrinter
(
printer
,
mapping
.
ObjectConvertor
,
outputVersion
(
cmd
))
version
:=
outputVersion
(
cmd
)
if
len
(
version
)
==
0
{
version
=
mapping
.
APIVersion
}
if
len
(
version
)
==
0
{
return
nil
,
fmt
.
Errorf
(
"you must specify an output-version when using this output format"
)
}
printer
=
kubectl
.
NewVersionedPrinter
(
printer
,
mapping
.
ObjectConvertor
,
version
)
}
else
{
}
else
{
printer
,
err
=
f
.
Printer
(
cmd
,
mapping
,
GetFlagBool
(
cmd
,
"no-headers"
))
printer
,
err
=
f
.
Printer
(
cmd
,
mapping
,
GetFlagBool
(
cmd
,
"no-headers"
))
if
err
!=
nil
{
if
err
!=
nil
{
...
...
pkg/kubectl/resource_printer.go
View file @
55b00573
...
@@ -109,6 +109,9 @@ func NewVersionedPrinter(printer ResourcePrinter, convertor runtime.ObjectConver
...
@@ -109,6 +109,9 @@ func NewVersionedPrinter(printer ResourcePrinter, convertor runtime.ObjectConver
// PrintObj implements ResourcePrinter
// PrintObj implements ResourcePrinter
func
(
p
*
VersionedPrinter
)
PrintObj
(
obj
runtime
.
Object
,
w
io
.
Writer
)
error
{
func
(
p
*
VersionedPrinter
)
PrintObj
(
obj
runtime
.
Object
,
w
io
.
Writer
)
error
{
if
len
(
p
.
version
)
==
0
{
return
fmt
.
Errorf
(
"no version specified, object cannot be converted"
)
}
converted
,
err
:=
p
.
convertor
.
ConvertToVersion
(
obj
,
p
.
version
)
converted
,
err
:=
p
.
convertor
.
ConvertToVersion
(
obj
,
p
.
version
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
...
...
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