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
4927cec3
Commit
4927cec3
authored
Sep 28, 2015
by
Chao Xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix groups exposes at apis/
parent
f8a9943d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
67 additions
and
7 deletions
+67
-7
resourceListing.json
api/swagger-spec/resourceListing.json
+1
-1
v1.json
api/swagger-spec/v1.json
+0
-0
api_installer.go
pkg/apiserver/api_installer.go
+2
-1
apiserver.go
pkg/apiserver/apiserver.go
+4
-1
master.go
pkg/master/master.go
+4
-3
master_test.go
pkg/master/master_test.go
+56
-1
No files found.
api/swagger-spec/resourceListing.json
View file @
4927cec3
...
...
@@ -3,7 +3,7 @@
"apis"
:
[
{
"path"
:
"/api/v1"
,
"description"
:
"API at /api/v1
version v1
"
"description"
:
"API at /api/v1"
},
{
"path"
:
"/api"
,
...
...
api/swagger-spec/v1.json
View file @
4927cec3
This diff is collapsed.
Click to expand it.
pkg/apiserver/api_installer.go
View file @
4927cec3
...
...
@@ -90,7 +90,8 @@ func (a *APIInstaller) Install(ws *restful.WebService) (apiResources []api.APIRe
func
(
a
*
APIInstaller
)
NewWebService
()
*
restful
.
WebService
{
ws
:=
new
(
restful
.
WebService
)
ws
.
Path
(
a
.
prefix
)
ws
.
Doc
(
"API at "
+
a
.
prefix
+
" version "
+
a
.
group
.
Version
)
// a.prefix contains "prefix/group/version"
ws
.
Doc
(
"API at "
+
a
.
prefix
)
// TODO: change to restful.MIME_JSON when we set content type in client
ws
.
Consumes
(
"*/*"
)
ws
.
Produces
(
restful
.
MIME_JSON
)
...
...
pkg/apiserver/apiserver.go
View file @
4927cec3
...
...
@@ -78,13 +78,16 @@ type Mux interface {
type
APIGroupVersion
struct
{
Storage
map
[
string
]
rest
.
Storage
Root
string
Root
string
// TODO: caesarxuchao: Version actually contains "group/version", refactor it to avoid confusion.
Version
string
// ServerVersion controls the Kubernetes APIVersion used for common objects in the apiserver
// schema like api.Status, api.DeleteOptions, and api.ListOptions. Other implementors may
// define a version "v1beta1" but want to use the Kubernetes "v1" internal objects. If
// empty, defaults to Version.
// TODO: caesarxuchao: ServerVersion actually contains "group/version",
// refactor it to avoid confusion.
ServerVersion
string
Mapper
meta
.
RESTMapper
...
...
pkg/master/master.go
View file @
4927cec3
...
...
@@ -36,6 +36,7 @@ import (
"k8s.io/kubernetes/pkg/api/latest"
"k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/rest"
apiutil
"k8s.io/kubernetes/pkg/api/util"
"k8s.io/kubernetes/pkg/api/v1"
expapi
"k8s.io/kubernetes/pkg/apis/experimental"
"k8s.io/kubernetes/pkg/apiserver"
...
...
@@ -593,8 +594,8 @@ func (m *Master) init(c *Config) {
}
expAPIVersions
:=
[]
api
.
GroupVersion
{
{
GroupVersion
:
g
.
Group
+
"/"
+
expVersion
.
Version
,
Version
:
expVersion
.
Version
,
GroupVersion
:
expVersion
.
Version
,
Version
:
apiutil
.
GetVersion
(
expVersion
.
Version
)
,
},
}
storageVersion
,
found
:=
c
.
StorageVersions
[
g
.
Group
]
...
...
@@ -604,7 +605,7 @@ func (m *Master) init(c *Config) {
group
:=
api
.
APIGroup
{
Name
:
g
.
Group
,
Versions
:
expAPIVersions
,
PreferredVersion
:
api
.
GroupVersion
{
GroupVersion
:
g
.
Group
+
"/"
+
storageVersion
,
Version
:
storageVersion
},
PreferredVersion
:
api
.
GroupVersion
{
GroupVersion
:
storageVersion
,
Version
:
apiutil
.
GetVersion
(
storageVersion
)
},
}
apiserver
.
AddGroupWebService
(
m
.
handlerContainer
,
c
.
APIGroupPrefix
+
"/"
+
latest
.
GroupOrDie
(
"experimental"
)
.
Group
+
"/"
,
group
)
allGroups
=
append
(
allGroups
,
group
)
...
...
pkg/master/master_test.go
View file @
4927cec3
...
...
@@ -37,6 +37,7 @@ import (
"k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/api/unversioned"
apiutil
"k8s.io/kubernetes/pkg/api/util"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/apis/experimental"
"k8s.io/kubernetes/pkg/apiserver"
...
...
@@ -67,7 +68,7 @@ func setUp(t *testing.T) (Master, Config, *assert.Assertions) {
config
.
DatabaseStorage
=
etcdstorage
.
NewEtcdStorage
(
fakeClient
,
testapi
.
Default
.
Codec
(),
etcdtest
.
PathPrefix
())
storageVersions
[
""
]
=
testapi
.
Default
.
Version
()
config
.
ExpDatabaseStorage
=
etcdstorage
.
NewEtcdStorage
(
fakeClient
,
testapi
.
Experimental
.
Codec
(),
etcdtest
.
PathPrefix
())
storageVersions
[
"experimental"
]
=
testapi
.
Experimental
.
Version
()
storageVersions
[
"experimental"
]
=
testapi
.
Experimental
.
GroupAnd
Version
()
config
.
StorageVersions
=
storageVersions
master
.
nodeRegistry
=
registrytest
.
NewNodeRegistry
([]
string
{
"node1"
,
"node2"
},
api
.
NodeResources
{})
...
...
@@ -430,6 +431,60 @@ func TestGenerateSSHKey(t *testing.T) {
// TODO: testing error cases where the file can not be removed?
}
func
TestDiscoveryAtAPIS
(
t
*
testing
.
T
)
{
master
,
config
,
assert
:=
setUp
(
t
)
master
.
exp
=
true
// ================= preparation for master.init() ======================
portRange
:=
util
.
PortRange
{
Base
:
10
,
Size
:
10
}
master
.
serviceNodePortRange
=
portRange
_
,
ipnet
,
err
:=
net
.
ParseCIDR
(
"192.168.1.1/24"
)
if
!
assert
.
NoError
(
err
)
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
master
.
serviceClusterIPRange
=
ipnet
mh
:=
apiserver
.
MuxHelper
{
Mux
:
http
.
NewServeMux
()}
master
.
muxHelper
=
&
mh
master
.
rootWebService
=
new
(
restful
.
WebService
)
master
.
handlerContainer
=
restful
.
NewContainer
()
master
.
mux
=
http
.
NewServeMux
()
master
.
requestContextMapper
=
api
.
NewRequestContextMapper
()
// ======================= end of preparation ===========================
master
.
init
(
&
config
)
server
:=
httptest
.
NewServer
(
master
.
handlerContainer
.
ServeMux
)
resp
,
err
:=
http
.
Get
(
server
.
URL
+
"/apis"
)
if
!
assert
.
NoError
(
err
)
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
assert
.
Equal
(
http
.
StatusOK
,
resp
.
StatusCode
)
groupList
:=
api
.
APIGroupList
{}
assert
.
NoError
(
decodeResponse
(
resp
,
&
groupList
))
if
err
!=
nil
{
t
.
Fatalf
(
"unexpected error: %v"
,
err
)
}
expectGroupName
:=
"experimental"
expectVersions
:=
[]
api
.
GroupVersion
{
{
GroupVersion
:
testapi
.
Experimental
.
GroupAndVersion
(),
Version
:
testapi
.
Experimental
.
Version
(),
},
}
expectPreferredVersion
:=
api
.
GroupVersion
{
GroupVersion
:
config
.
StorageVersions
[
"experimental"
],
Version
:
apiutil
.
GetVersion
(
config
.
StorageVersions
[
"experimental"
]),
}
assert
.
Equal
(
expectGroupName
,
groupList
.
Groups
[
0
]
.
Name
)
assert
.
Equal
(
expectVersions
,
groupList
.
Groups
[
0
]
.
Versions
)
assert
.
Equal
(
expectPreferredVersion
,
groupList
.
Groups
[
0
]
.
PreferredVersion
)
}
var
versionsToTest
=
[]
string
{
"v1"
,
"v3"
}
type
Foo
struct
{
...
...
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