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
a31ca0dc
Commit
a31ca0dc
authored
Apr 28, 2016
by
Maciej Szulik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
enable batch/v2alpha1 tests
parent
df11a51b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
76 additions
and
52 deletions
+76
-52
test-go.sh
hack/test-go.sh
+1
-1
testapi.go
pkg/api/testapi/testapi.go
+62
-44
master_test.go
pkg/master/master_test.go
+13
-7
No files found.
hack/test-go.sh
View file @
a31ca0dc
...
...
@@ -58,7 +58,7 @@ KUBE_GOVERALLS_BIN=${KUBE_GOVERALLS_BIN:-}
# Lists of API Versions of each groups that should be tested, groups are
# separated by comma, lists are separated by semicolon. e.g.,
# "v1,compute/v1alpha1,experimental/v1alpha2;v1,compute/v2,experimental/v1alpha3"
KUBE_TEST_API_VERSIONS
=
${
KUBE_TEST_API_VERSIONS
:-
"v1,extensions/v1beta1,metrics/v1alpha1,federation/v1alpha1;v1,autoscaling/v1,batch/v1,extensions/v1beta1,apps/v1alpha1,metrics/v1alpha1,federation/v1alpha1,policy/v1alpha1"
}
KUBE_TEST_API_VERSIONS
=
${
KUBE_TEST_API_VERSIONS
:-
"v1,extensions/v1beta1,metrics/v1alpha1,federation/v1alpha1;v1,autoscaling/v1,batch/v1,
batch/v2alpha1,
extensions/v1beta1,apps/v1alpha1,metrics/v1alpha1,federation/v1alpha1,policy/v1alpha1"
}
# once we have multiple group supports
# Run tests with the standard (registry) and a custom etcd prefix
# (kubernetes.io/registry).
...
...
pkg/api/testapi/testapi.go
View file @
a31ca0dc
...
...
@@ -60,9 +60,10 @@ var (
)
type
TestGroup
struct
{
externalGroupVersion
unversioned
.
GroupVersion
internalGroupVersion
unversioned
.
GroupVersion
internalTypes
map
[
string
]
reflect
.
Type
// the first element in the group is meant to be the preferred version
externalGroupVersions
[]
unversioned
.
GroupVersion
internalGroupVersion
unversioned
.
GroupVersion
internalTypes
map
[
string
]
reflect
.
Type
}
func
init
()
{
...
...
@@ -100,26 +101,31 @@ func init() {
}
internalGroupVersion
:=
unversioned
.
GroupVersion
{
Group
:
groupVersion
.
Group
,
Version
:
runtime
.
APIVersionInternal
}
Groups
[
groupVersion
.
Group
]
=
TestGroup
{
externalGroupVersion
:
groupVersion
,
internalGroupVersion
:
internalGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
internalGroupVersion
),
if
group
,
ok
:=
Groups
[
groupVersion
.
Group
];
!
ok
{
Groups
[
groupVersion
.
Group
]
=
TestGroup
{
externalGroupVersions
:
[]
unversioned
.
GroupVersion
{
groupVersion
},
internalGroupVersion
:
internalGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
internalGroupVersion
),
}
}
else
{
group
.
externalGroupVersions
=
append
(
group
.
externalGroupVersions
,
groupVersion
)
Groups
[
groupVersion
.
Group
]
=
group
}
}
}
if
_
,
ok
:=
Groups
[
api
.
GroupName
];
!
ok
{
Groups
[
api
.
GroupName
]
=
TestGroup
{
externalGroupVersion
:
unversioned
.
GroupVersion
{
Group
:
api
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
.
Version
},
internalGroupVersion
:
api
.
SchemeGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
api
.
SchemeGroupVersion
),
externalGroupVersion
s
:
[]
unversioned
.
GroupVersion
{{
Group
:
api
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
api
.
GroupName
)
.
GroupVersion
.
Version
}
},
internalGroupVersion
:
api
.
SchemeGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
api
.
SchemeGroupVersion
),
}
}
if
_
,
ok
:=
Groups
[
extensions
.
GroupName
];
!
ok
{
Groups
[
extensions
.
GroupName
]
=
TestGroup
{
externalGroupVersion
:
unversioned
.
GroupVersion
{
Group
:
extensions
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
extensions
.
GroupName
)
.
GroupVersion
.
Version
},
internalGroupVersion
:
extensions
.
SchemeGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
extensions
.
SchemeGroupVersion
),
externalGroupVersion
s
:
[]
unversioned
.
GroupVersion
{{
Group
:
extensions
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
extensions
.
GroupName
)
.
GroupVersion
.
Version
}
},
internalGroupVersion
:
extensions
.
SchemeGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
extensions
.
SchemeGroupVersion
),
}
}
if
_
,
ok
:=
Groups
[
autoscaling
.
GroupName
];
!
ok
{
...
...
@@ -131,9 +137,9 @@ func init() {
internalTypes
[
k
]
=
t
}
Groups
[
autoscaling
.
GroupName
]
=
TestGroup
{
externalGroupVersion
:
unversioned
.
GroupVersion
{
Group
:
autoscaling
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
autoscaling
.
GroupName
)
.
GroupVersion
.
Version
},
internalGroupVersion
:
extensions
.
SchemeGroupVersion
,
internalTypes
:
internalTypes
,
externalGroupVersion
s
:
[]
unversioned
.
GroupVersion
{{
Group
:
autoscaling
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
autoscaling
.
GroupName
)
.
GroupVersion
.
Version
}
},
internalGroupVersion
:
extensions
.
SchemeGroupVersion
,
internalTypes
:
internalTypes
,
}
}
if
_
,
ok
:=
Groups
[
autoscaling
.
GroupName
+
"IntraGroup"
];
!
ok
{
...
...
@@ -145,30 +151,34 @@ func init() {
}
}
Groups
[
autoscaling
.
GroupName
]
=
TestGroup
{
externalGroupVersion
:
unversioned
.
GroupVersion
{
Group
:
autoscaling
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
autoscaling
.
GroupName
)
.
GroupVersion
.
Version
},
internalGroupVersion
:
autoscaling
.
SchemeGroupVersion
,
internalTypes
:
internalTypes
,
externalGroupVersion
s
:
[]
unversioned
.
GroupVersion
{{
Group
:
autoscaling
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
autoscaling
.
GroupName
)
.
GroupVersion
.
Version
}
},
internalGroupVersion
:
autoscaling
.
SchemeGroupVersion
,
internalTypes
:
internalTypes
,
}
}
if
_
,
ok
:=
Groups
[
batch
.
GroupName
];
!
ok
{
var
gvs
[]
unversioned
.
GroupVersion
for
_
,
gv
:=
range
registered
.
GroupOrDie
(
batch
.
GroupName
)
.
GroupVersions
{
gvs
=
append
(
gvs
,
gv
)
}
Groups
[
batch
.
GroupName
]
=
TestGroup
{
externalGroupVersion
:
unversioned
.
GroupVersion
{
Group
:
batch
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
batch
.
GroupName
)
.
GroupVersion
.
Version
}
,
internalGroupVersion
:
batch
.
SchemeGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
batch
.
SchemeGroupVersion
),
externalGroupVersion
s
:
gvs
,
internalGroupVersion
:
batch
.
SchemeGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
batch
.
SchemeGroupVersion
),
}
}
if
_
,
ok
:=
Groups
[
apps
.
GroupName
];
!
ok
{
Groups
[
apps
.
GroupName
]
=
TestGroup
{
externalGroupVersion
:
unversioned
.
GroupVersion
{
Group
:
apps
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
apps
.
GroupName
)
.
GroupVersion
.
Version
},
internalGroupVersion
:
extensions
.
SchemeGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
extensions
.
SchemeGroupVersion
),
externalGroupVersion
s
:
[]
unversioned
.
GroupVersion
{{
Group
:
apps
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
apps
.
GroupName
)
.
GroupVersion
.
Version
}
},
internalGroupVersion
:
extensions
.
SchemeGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
extensions
.
SchemeGroupVersion
),
}
}
if
_
,
ok
:=
Groups
[
federation
.
GroupName
];
!
ok
{
Groups
[
federation
.
GroupName
]
=
TestGroup
{
externalGroupVersion
:
unversioned
.
GroupVersion
{
Group
:
federation
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
federation
.
GroupName
)
.
GroupVersion
.
Version
},
internalGroupVersion
:
federation
.
SchemeGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
federation
.
SchemeGroupVersion
),
externalGroupVersion
s
:
[]
unversioned
.
GroupVersion
{{
Group
:
federation
.
GroupName
,
Version
:
registered
.
GroupOrDie
(
federation
.
GroupName
)
.
GroupVersion
.
Version
}
},
internalGroupVersion
:
federation
.
SchemeGroupVersion
,
internalTypes
:
api
.
Scheme
.
KnownTypes
(
federation
.
SchemeGroupVersion
),
}
}
...
...
@@ -185,10 +195,14 @@ func (g TestGroup) ContentConfig() (string, *unversioned.GroupVersion, runtime.C
}
func
(
g
TestGroup
)
GroupVersion
()
*
unversioned
.
GroupVersion
{
copyOfGroupVersion
:=
g
.
externalGroupVersion
copyOfGroupVersion
:=
g
.
externalGroupVersion
s
[
0
]
return
&
copyOfGroupVersion
}
func
(
g
TestGroup
)
GroupVersions
()
[]
unversioned
.
GroupVersion
{
return
append
([]
unversioned
.
GroupVersion
{},
g
.
externalGroupVersions
...
)
}
// InternalGroupVersion returns the group,version used to identify the internal
// types for this API
func
(
g
TestGroup
)
InternalGroupVersion
()
unversioned
.
GroupVersion
{
...
...
@@ -204,9 +218,9 @@ func (g TestGroup) InternalTypes() map[string]reflect.Type {
// KUBE_TEST_API_TYPE env var.
func
(
g
TestGroup
)
Codec
()
runtime
.
Codec
{
if
serializer
.
Serializer
==
nil
{
return
api
.
Codecs
.
LegacyCodec
(
g
.
externalGroupVersion
)
return
api
.
Codecs
.
LegacyCodec
(
g
.
externalGroupVersion
s
[
0
]
)
}
return
api
.
Codecs
.
CodecForVersions
(
serializer
,
api
.
Codecs
.
UniversalDeserializer
(),
[]
unversioned
.
GroupVersion
{
g
.
externalGroupVersion
}
,
nil
)
return
api
.
Codecs
.
CodecForVersions
(
serializer
,
api
.
Codecs
.
UniversalDeserializer
(),
g
.
externalGroupVersions
,
nil
)
}
// NegotiatedSerializer returns the negotiated serializer for the server.
...
...
@@ -224,7 +238,7 @@ func (g TestGroup) StorageCodec() runtime.Codec {
s
:=
storageSerializer
.
Serializer
if
s
==
nil
{
return
api
.
Codecs
.
LegacyCodec
(
g
.
externalGroupVersion
)
return
api
.
Codecs
.
LegacyCodec
(
g
.
externalGroupVersion
s
[
0
]
)
}
// etcd2 only supports string data - we must wrap any result before returning
...
...
@@ -234,13 +248,13 @@ func (g TestGroup) StorageCodec() runtime.Codec {
}
ds
:=
recognizer
.
NewDecoder
(
s
,
api
.
Codecs
.
UniversalDeserializer
())
return
api
.
Codecs
.
CodecForVersions
(
s
,
ds
,
[]
unversioned
.
GroupVersion
{
g
.
externalGroupVersion
}
,
nil
)
return
api
.
Codecs
.
CodecForVersions
(
s
,
ds
,
g
.
externalGroupVersions
,
nil
)
}
// Converter returns the api.Scheme for the API version to test against, as set by the
// KUBE_TEST_API env var.
func
(
g
TestGroup
)
Converter
()
runtime
.
ObjectConvertor
{
interfaces
,
err
:=
registered
.
GroupOrDie
(
g
.
externalGroupVersion
.
Group
)
.
InterfacesFor
(
g
.
externalGroupVersion
)
interfaces
,
err
:=
registered
.
GroupOrDie
(
g
.
externalGroupVersion
s
[
0
]
.
Group
)
.
InterfacesFor
(
g
.
externalGroupVersions
[
0
]
)
if
err
!=
nil
{
panic
(
err
)
}
...
...
@@ -250,7 +264,7 @@ func (g TestGroup) Converter() runtime.ObjectConvertor {
// MetadataAccessor returns the MetadataAccessor for the API version to test against,
// as set by the KUBE_TEST_API env var.
func
(
g
TestGroup
)
MetadataAccessor
()
meta
.
MetadataAccessor
{
interfaces
,
err
:=
registered
.
GroupOrDie
(
g
.
externalGroupVersion
.
Group
)
.
InterfacesFor
(
g
.
externalGroupVersion
)
interfaces
,
err
:=
registered
.
GroupOrDie
(
g
.
externalGroupVersion
s
[
0
]
.
Group
)
.
InterfacesFor
(
g
.
externalGroupVersions
[
0
]
)
if
err
!=
nil
{
panic
(
err
)
}
...
...
@@ -261,18 +275,18 @@ func (g TestGroup) MetadataAccessor() meta.MetadataAccessor {
// 'resource' should be the resource path, e.g. "pods" for the Pod type. 'name' should be
// empty for lists.
func
(
g
TestGroup
)
SelfLink
(
resource
,
name
string
)
string
{
if
g
.
externalGroupVersion
.
Group
==
api
.
GroupName
{
if
g
.
externalGroupVersion
s
[
0
]
.
Group
==
api
.
GroupName
{
if
name
==
""
{
return
fmt
.
Sprintf
(
"/api/%s/%s"
,
g
.
externalGroupVersion
.
Version
,
resource
)
return
fmt
.
Sprintf
(
"/api/%s/%s"
,
g
.
externalGroupVersion
s
[
0
]
.
Version
,
resource
)
}
return
fmt
.
Sprintf
(
"/api/%s/%s/%s"
,
g
.
externalGroupVersion
.
Version
,
resource
,
name
)
return
fmt
.
Sprintf
(
"/api/%s/%s/%s"
,
g
.
externalGroupVersion
s
[
0
]
.
Version
,
resource
,
name
)
}
else
{
// TODO: will need a /apis prefix once we have proper multi-group
// support
if
name
==
""
{
return
fmt
.
Sprintf
(
"/apis/%s/%s/%s"
,
g
.
externalGroupVersion
.
Group
,
g
.
externalGroupVersion
.
Version
,
resource
)
return
fmt
.
Sprintf
(
"/apis/%s/%s/%s"
,
g
.
externalGroupVersion
s
[
0
]
.
Group
,
g
.
externalGroupVersions
[
0
]
.
Version
,
resource
)
}
return
fmt
.
Sprintf
(
"/apis/%s/%s/%s/%s"
,
g
.
externalGroupVersion
.
Group
,
g
.
externalGroupVersion
.
Version
,
resource
,
name
)
return
fmt
.
Sprintf
(
"/apis/%s/%s/%s/%s"
,
g
.
externalGroupVersion
s
[
0
]
.
Group
,
g
.
externalGroupVersions
[
0
]
.
Version
,
resource
,
name
)
}
}
...
...
@@ -281,12 +295,12 @@ func (g TestGroup) SelfLink(resource, name string) string {
// /api/v1/watch/namespaces/foo/pods/pod0 for v1.
func
(
g
TestGroup
)
ResourcePathWithPrefix
(
prefix
,
resource
,
namespace
,
name
string
)
string
{
var
path
string
if
g
.
externalGroupVersion
.
Group
==
api
.
GroupName
{
path
=
"/api/"
+
g
.
externalGroupVersion
.
Version
if
g
.
externalGroupVersion
s
[
0
]
.
Group
==
api
.
GroupName
{
path
=
"/api/"
+
g
.
externalGroupVersion
s
[
0
]
.
Version
}
else
{
// TODO: switch back once we have proper multiple group support
// path = "/apis/" + g.Group + "/" + Version(group...)
path
=
"/apis/"
+
g
.
externalGroupVersion
.
Group
+
"/"
+
g
.
externalGroupVersion
.
Version
path
=
"/apis/"
+
g
.
externalGroupVersion
s
[
0
]
.
Group
+
"/"
+
g
.
externalGroupVersions
[
0
]
.
Version
}
if
prefix
!=
""
{
...
...
@@ -355,5 +369,9 @@ func GetCodecForObject(obj runtime.Object) (runtime.Codec, error) {
}
func
NewTestGroup
(
external
,
internal
unversioned
.
GroupVersion
,
internalTypes
map
[
string
]
reflect
.
Type
)
TestGroup
{
return
TestGroup
{
external
,
internal
,
internalTypes
}
return
TestGroup
{
externalGroupVersions
:
[]
unversioned
.
GroupVersion
{
external
},
internalGroupVersion
:
internal
,
internalTypes
:
internalTypes
,
}
}
pkg/master/master_test.go
View file @
a31ca0dc
...
...
@@ -40,6 +40,7 @@ import (
autoscalingapiv1
"k8s.io/kubernetes/pkg/apis/autoscaling/v1"
"k8s.io/kubernetes/pkg/apis/batch"
batchapiv1
"k8s.io/kubernetes/pkg/apis/batch/v1"
batchapiv2alpha1
"k8s.io/kubernetes/pkg/apis/batch/v2alpha1"
"k8s.io/kubernetes/pkg/apis/extensions"
extensionsapiv1beta1
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/apiserver"
...
...
@@ -128,7 +129,9 @@ func newMaster(t *testing.T) (*Master, *etcdtesting.EtcdTestServer, Config, *ass
// limitedAPIResourceConfigSource only enables the core group, the extensions group, the batch group, and the autoscaling group.
func
limitedAPIResourceConfigSource
()
*
genericapiserver
.
ResourceConfig
{
ret
:=
genericapiserver
.
NewResourceConfig
()
ret
.
EnableVersions
(
apiv1
.
SchemeGroupVersion
,
extensionsapiv1beta1
.
SchemeGroupVersion
,
batchapiv1
.
SchemeGroupVersion
,
appsapi
.
SchemeGroupVersion
,
autoscalingapiv1
.
SchemeGroupVersion
)
ret
.
EnableVersions
(
apiv1
.
SchemeGroupVersion
,
extensionsapiv1beta1
.
SchemeGroupVersion
,
batchapiv1
.
SchemeGroupVersion
,
batchapiv2alpha1
.
SchemeGroupVersion
,
appsapi
.
SchemeGroupVersion
,
autoscalingapiv1
.
SchemeGroupVersion
)
return
ret
}
...
...
@@ -423,12 +426,6 @@ func TestDiscoveryAtAPIS(t *testing.T) {
Version
:
testapi
.
Autoscaling
.
GroupVersion
()
.
Version
,
},
},
batch
.
GroupName
:
{
{
GroupVersion
:
testapi
.
Batch
.
GroupVersion
()
.
String
(),
Version
:
testapi
.
Batch
.
GroupVersion
()
.
Version
,
},
},
apps
.
GroupName
:
{
{
GroupVersion
:
testapi
.
Apps
.
GroupVersion
()
.
String
(),
...
...
@@ -442,6 +439,15 @@ func TestDiscoveryAtAPIS(t *testing.T) {
},
},
}
var
batchVersions
[]
unversioned
.
GroupVersionForDiscovery
for
_
,
gv
:=
range
testapi
.
Batch
.
GroupVersions
()
{
batchVersions
=
append
(
batchVersions
,
unversioned
.
GroupVersionForDiscovery
{
GroupVersion
:
gv
.
String
(),
Version
:
gv
.
Version
,
})
}
expectVersions
[
batch
.
GroupName
]
=
batchVersions
expectPreferredVersion
:=
map
[
string
]
unversioned
.
GroupVersionForDiscovery
{
autoscaling
.
GroupName
:
{
GroupVersion
:
registered
.
GroupOrDie
(
autoscaling
.
GroupName
)
.
GroupVersion
.
String
(),
...
...
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