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
f6882e84
Commit
f6882e84
authored
Sep 19, 2016
by
deads2k
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove storage related fields from genericapiserver
parent
47e3d23a
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
76 additions
and
58 deletions
+76
-58
server.go
cmd/kube-apiserver/app/server.go
+4
-2
apiserver.go
examples/apiserver/apiserver.go
+2
-1
core.go
federation/cmd/federation-apiserver/app/core.go
+5
-5
extensions.go
federation/cmd/federation-apiserver/app/extensions.go
+3
-4
federation.go
federation/cmd/federation-apiserver/app/federation.go
+2
-3
server.go
federation/cmd/federation-apiserver/app/server.go
+25
-9
config.go
pkg/genericapiserver/config.go
+0
-12
genericapiserver.go
pkg/genericapiserver/genericapiserver.go
+0
-11
master.go
pkg/master/master.go
+32
-8
master_utils.go
test/integration/framework/master_utils.go
+3
-3
No files found.
cmd/kube-apiserver/app/server.go
View file @
f6882e84
...
@@ -295,7 +295,6 @@ func Run(s *options.APIServer) error {
...
@@ -295,7 +295,6 @@ func Run(s *options.APIServer) error {
genericConfig
:=
genericapiserver
.
NewConfig
(
s
.
ServerRunOptions
)
genericConfig
:=
genericapiserver
.
NewConfig
(
s
.
ServerRunOptions
)
// TODO: Move the following to generic api server as well.
// TODO: Move the following to generic api server as well.
genericConfig
.
StorageFactory
=
storageFactory
genericConfig
.
Authenticator
=
apiAuthenticator
genericConfig
.
Authenticator
=
apiAuthenticator
genericConfig
.
SupportsBasicAuth
=
len
(
s
.
BasicAuthFile
)
>
0
genericConfig
.
SupportsBasicAuth
=
len
(
s
.
BasicAuthFile
)
>
0
genericConfig
.
Authorizer
=
apiAuthorizer
genericConfig
.
Authorizer
=
apiAuthorizer
...
@@ -311,7 +310,10 @@ func Run(s *options.APIServer) error {
...
@@ -311,7 +310,10 @@ func Run(s *options.APIServer) error {
genericConfig
.
EnableOpenAPISupport
=
true
genericConfig
.
EnableOpenAPISupport
=
true
config
:=
&
master
.
Config
{
config
:=
&
master
.
Config
{
Config
:
genericConfig
,
Config
:
genericConfig
,
StorageFactory
:
storageFactory
,
EnableWatchCache
:
s
.
EnableWatchCache
,
EnableCoreControllers
:
true
,
EnableCoreControllers
:
true
,
DeleteCollectionWorkers
:
s
.
DeleteCollectionWorkers
,
DeleteCollectionWorkers
:
s
.
DeleteCollectionWorkers
,
EventTTL
:
s
.
EventTTL
,
EventTTL
:
s
.
EventTTL
,
...
...
examples/apiserver/apiserver.go
View file @
f6882e84
...
@@ -30,6 +30,7 @@ import (
...
@@ -30,6 +30,7 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/authorizer"
"k8s.io/kubernetes/pkg/genericapiserver/authorizer"
genericoptions
"k8s.io/kubernetes/pkg/genericapiserver/options"
genericoptions
"k8s.io/kubernetes/pkg/genericapiserver/options"
genericvalidation
"k8s.io/kubernetes/pkg/genericapiserver/validation"
genericvalidation
"k8s.io/kubernetes/pkg/genericapiserver/validation"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/storage/storagebackend"
"k8s.io/kubernetes/pkg/storage/storagebackend"
// Install the testgroup API
// Install the testgroup API
...
@@ -87,7 +88,7 @@ func Run(serverOptions *genericoptions.ServerRunOptions) error {
...
@@ -87,7 +88,7 @@ func Run(serverOptions *genericoptions.ServerRunOptions) error {
}
}
restStorageMap
:=
map
[
string
]
rest
.
Storage
{
restStorageMap
:=
map
[
string
]
rest
.
Storage
{
"testtypes"
:
testgroupetcd
.
NewREST
(
storageConfig
,
s
.
StorageDecorator
()
),
"testtypes"
:
testgroupetcd
.
NewREST
(
storageConfig
,
generic
.
UndecoratedStorage
),
}
}
apiGroupInfo
:=
genericapiserver
.
APIGroupInfo
{
apiGroupInfo
:=
genericapiserver
.
APIGroupInfo
{
GroupMeta
:
*
groupMeta
,
GroupMeta
:
*
groupMeta
,
...
...
federation/cmd/federation-apiserver/app/core.go
View file @
f6882e84
...
@@ -40,11 +40,11 @@ import (
...
@@ -40,11 +40,11 @@ import (
serviceetcd
"k8s.io/kubernetes/pkg/registry/core/service/etcd"
serviceetcd
"k8s.io/kubernetes/pkg/registry/core/service/etcd"
)
)
func
installCoreAPIs
(
s
*
options
.
ServerRunOptions
,
g
*
genericapiserver
.
GenericAPIServer
,
f
genericapiserver
.
Storage
Factory
)
{
func
installCoreAPIs
(
s
*
options
.
ServerRunOptions
,
g
*
genericapiserver
.
GenericAPIServer
,
restOptionsFactory
restOptions
Factory
)
{
serviceStore
,
serviceStatusStore
:=
serviceetcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
api
.
Resource
(
"service"
)))
serviceStore
,
serviceStatusStore
:=
serviceetcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
api
.
Resource
(
"service"
)))
namespaceStore
,
namespaceStatusStore
,
namespaceFinalizeStore
:=
namespaceetcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
api
.
Resource
(
"namespaces"
)))
namespaceStore
,
namespaceStatusStore
,
namespaceFinalizeStore
:=
namespaceetcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
api
.
Resource
(
"namespaces"
)))
secretStore
:=
secretetcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
api
.
Resource
(
"secrets"
)))
secretStore
:=
secretetcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
api
.
Resource
(
"secrets"
)))
eventStore
:=
eventetcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
api
.
Resource
(
"events"
)),
uint64
(
s
.
EventTTL
.
Seconds
()))
eventStore
:=
eventetcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
api
.
Resource
(
"events"
)),
uint64
(
s
.
EventTTL
.
Seconds
()))
coreResources
:=
map
[
string
]
rest
.
Storage
{
coreResources
:=
map
[
string
]
rest
.
Storage
{
"secrets"
:
secretStore
,
"secrets"
:
secretStore
,
"services"
:
serviceStore
,
"services"
:
serviceStore
,
...
...
federation/cmd/federation-apiserver/app/extensions.go
View file @
f6882e84
...
@@ -18,7 +18,6 @@ package app
...
@@ -18,7 +18,6 @@ package app
import
(
import
(
"github.com/golang/glog"
"github.com/golang/glog"
"k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/apimachinery/registered"
...
@@ -29,9 +28,9 @@ import (
...
@@ -29,9 +28,9 @@ import (
replicasetetcd
"k8s.io/kubernetes/pkg/registry/extensions/replicaset/etcd"
replicasetetcd
"k8s.io/kubernetes/pkg/registry/extensions/replicaset/etcd"
)
)
func
installExtensionsAPIs
(
s
*
options
.
ServerRunOptions
,
g
*
genericapiserver
.
GenericAPIServer
,
f
genericapiserver
.
Storage
Factory
)
{
func
installExtensionsAPIs
(
g
*
genericapiserver
.
GenericAPIServer
,
restOptionsFactory
restOptions
Factory
)
{
replicaSetStorage
:=
replicasetetcd
.
NewStorage
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
extensions
.
Resource
(
"replicasets"
)))
replicaSetStorage
:=
replicasetetcd
.
NewStorage
(
restOptionsFactory
.
NewFor
(
extensions
.
Resource
(
"replicasets"
)))
ingressStorage
,
ingressStatusStorage
:=
ingressetcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
extensions
.
Resource
(
"ingresses"
)))
ingressStorage
,
ingressStatusStorage
:=
ingressetcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
extensions
.
Resource
(
"ingresses"
)))
extensionsResources
:=
map
[
string
]
rest
.
Storage
{
extensionsResources
:=
map
[
string
]
rest
.
Storage
{
"replicasets"
:
replicaSetStorage
.
ReplicaSet
,
"replicasets"
:
replicaSetStorage
.
ReplicaSet
,
"replicasets/status"
:
replicaSetStorage
.
Status
,
"replicasets/status"
:
replicaSetStorage
.
Status
,
...
...
federation/cmd/federation-apiserver/app/federation.go
View file @
f6882e84
...
@@ -20,7 +20,6 @@ import (
...
@@ -20,7 +20,6 @@ import (
"github.com/golang/glog"
"github.com/golang/glog"
"k8s.io/kubernetes/federation/apis/federation"
"k8s.io/kubernetes/federation/apis/federation"
"k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/apimachinery/registered"
...
@@ -30,8 +29,8 @@ import (
...
@@ -30,8 +29,8 @@ import (
clusteretcd
"k8s.io/kubernetes/federation/registry/cluster/etcd"
clusteretcd
"k8s.io/kubernetes/federation/registry/cluster/etcd"
)
)
func
installFederationAPIs
(
s
*
options
.
ServerRunOptions
,
g
*
genericapiserver
.
GenericAPIServer
,
f
genericapiserver
.
Storage
Factory
)
{
func
installFederationAPIs
(
g
*
genericapiserver
.
GenericAPIServer
,
restOptionsFactory
restOptions
Factory
)
{
clusterStorage
,
clusterStatusStorage
:=
clusteretcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
federation
.
Resource
(
"clusters"
)))
clusterStorage
,
clusterStatusStorage
:=
clusteretcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
federation
.
Resource
(
"clusters"
)))
federationResources
:=
map
[
string
]
rest
.
Storage
{
federationResources
:=
map
[
string
]
rest
.
Storage
{
"clusters"
:
clusterStorage
,
"clusters"
:
clusterStorage
,
"clusters/status"
:
clusterStatusStorage
,
"clusters/status"
:
clusterStatusStorage
,
...
...
federation/cmd/federation-apiserver/app/server.go
View file @
f6882e84
...
@@ -44,6 +44,7 @@ import (
...
@@ -44,6 +44,7 @@ import (
genericvalidation
"k8s.io/kubernetes/pkg/genericapiserver/validation"
genericvalidation
"k8s.io/kubernetes/pkg/genericapiserver/validation"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole"
clusterroleetcd
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole/etcd"
clusterroleetcd
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding"
...
@@ -201,7 +202,6 @@ func Run(s *options.ServerRunOptions) error {
...
@@ -201,7 +202,6 @@ func Run(s *options.ServerRunOptions) error {
}
}
genericConfig
:=
genericapiserver
.
NewConfig
(
s
.
ServerRunOptions
)
genericConfig
:=
genericapiserver
.
NewConfig
(
s
.
ServerRunOptions
)
// TODO: Move the following to generic api server as well.
// TODO: Move the following to generic api server as well.
genericConfig
.
StorageFactory
=
storageFactory
genericConfig
.
Authenticator
=
apiAuthenticator
genericConfig
.
Authenticator
=
apiAuthenticator
genericConfig
.
SupportsBasicAuth
=
len
(
s
.
BasicAuthFile
)
>
0
genericConfig
.
SupportsBasicAuth
=
len
(
s
.
BasicAuthFile
)
>
0
genericConfig
.
Authorizer
=
apiAuthorizer
genericConfig
.
Authorizer
=
apiAuthorizer
...
@@ -227,24 +227,40 @@ func Run(s *options.ServerRunOptions) error {
...
@@ -227,24 +227,40 @@ func Run(s *options.ServerRunOptions) error {
routes
.
UIRedirect
{}
.
Install
(
m
.
Mux
,
m
.
HandlerContainer
)
routes
.
UIRedirect
{}
.
Install
(
m
.
Mux
,
m
.
HandlerContainer
)
routes
.
Logs
{}
.
Install
(
m
.
Mux
,
m
.
HandlerContainer
)
routes
.
Logs
{}
.
Install
(
m
.
Mux
,
m
.
HandlerContainer
)
installFederationAPIs
(
s
,
m
,
storageFactory
)
restOptionsFactory
:=
restOptionsFactory
{
installCoreAPIs
(
s
,
m
,
storageFactory
)
storageFactory
:
storageFactory
,
installExtensionsAPIs
(
s
,
m
,
storageFactory
)
deleteCollectionWorkers
:
s
.
DeleteCollectionWorkers
,
}
if
s
.
EnableWatchCache
{
restOptionsFactory
.
storageDecorator
=
registry
.
StorageWithCacher
}
else
{
restOptionsFactory
.
storageDecorator
=
generic
.
UndecoratedStorage
}
installFederationAPIs
(
m
,
restOptionsFactory
)
installCoreAPIs
(
s
,
m
,
restOptionsFactory
)
installExtensionsAPIs
(
m
,
restOptionsFactory
)
sharedInformers
.
Start
(
wait
.
NeverStop
)
sharedInformers
.
Start
(
wait
.
NeverStop
)
m
.
Run
(
s
.
ServerRunOptions
)
m
.
Run
(
s
.
ServerRunOptions
)
return
nil
return
nil
}
}
func
createRESTOptionsOrDie
(
s
*
options
.
ServerRunOptions
,
g
*
genericapiserver
.
GenericAPIServer
,
f
genericapiserver
.
StorageFactory
,
resource
unversioned
.
GroupResource
)
generic
.
RESTOptions
{
type
restOptionsFactory
struct
{
config
,
err
:=
f
.
NewConfig
(
resource
)
storageFactory
genericapiserver
.
StorageFactory
storageDecorator
generic
.
StorageDecorator
deleteCollectionWorkers
int
}
func
(
f
restOptionsFactory
)
NewFor
(
resource
unversioned
.
GroupResource
)
generic
.
RESTOptions
{
config
,
err
:=
f
.
storageFactory
.
NewConfig
(
resource
)
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Fatalf
(
"Unable to find storage config for %v, due to %v"
,
resource
,
err
.
Error
())
glog
.
Fatalf
(
"Unable to find storage config for %v, due to %v"
,
resource
,
err
.
Error
())
}
}
return
generic
.
RESTOptions
{
return
generic
.
RESTOptions
{
StorageConfig
:
config
,
StorageConfig
:
config
,
Decorator
:
g
.
StorageDecorator
()
,
Decorator
:
f
.
storageDecorator
,
DeleteCollectionWorkers
:
s
.
D
eleteCollectionWorkers
,
DeleteCollectionWorkers
:
f
.
d
eleteCollectionWorkers
,
ResourcePrefix
:
f
.
ResourcePrefix
(
resource
),
ResourcePrefix
:
f
.
storageFactory
.
ResourcePrefix
(
resource
),
}
}
}
}
pkg/genericapiserver/config.go
View file @
f6882e84
...
@@ -46,8 +46,6 @@ import (
...
@@ -46,8 +46,6 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/routes"
"k8s.io/kubernetes/pkg/genericapiserver/routes"
genericvalidation
"k8s.io/kubernetes/pkg/genericapiserver/validation"
genericvalidation
"k8s.io/kubernetes/pkg/genericapiserver/validation"
ipallocator
"k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
ipallocator
"k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util"
utilnet
"k8s.io/kubernetes/pkg/util/net"
utilnet
"k8s.io/kubernetes/pkg/util/net"
...
@@ -55,8 +53,6 @@ import (
...
@@ -55,8 +53,6 @@ import (
// Config is a structure used to configure a GenericAPIServer.
// Config is a structure used to configure a GenericAPIServer.
type
Config
struct
{
type
Config
struct
{
// The storage factory for other objects
StorageFactory
StorageFactory
AuditLogPath
string
AuditLogPath
string
AuditLogMaxAge
int
AuditLogMaxAge
int
AuditLogMaxBackups
int
AuditLogMaxBackups
int
...
@@ -73,7 +69,6 @@ type Config struct {
...
@@ -73,7 +69,6 @@ type Config struct {
EnableIndex
bool
EnableIndex
bool
EnableProfiling
bool
EnableProfiling
bool
EnableVersion
bool
EnableVersion
bool
EnableWatchCache
bool
EnableGarbageCollection
bool
EnableGarbageCollection
bool
APIPrefix
string
APIPrefix
string
APIGroupPrefix
string
APIGroupPrefix
string
...
@@ -179,7 +174,6 @@ func NewConfig(options *options.ServerRunOptions) *Config {
...
@@ -179,7 +174,6 @@ func NewConfig(options *options.ServerRunOptions) *Config {
EnableSwaggerSupport
:
true
,
EnableSwaggerSupport
:
true
,
EnableSwaggerUI
:
options
.
EnableSwaggerUI
,
EnableSwaggerUI
:
options
.
EnableSwaggerUI
,
EnableVersion
:
true
,
EnableVersion
:
true
,
EnableWatchCache
:
options
.
EnableWatchCache
,
ExternalHost
:
options
.
ExternalHost
,
ExternalHost
:
options
.
ExternalHost
,
KubernetesServiceNodePort
:
options
.
KubernetesServiceNodePort
,
KubernetesServiceNodePort
:
options
.
KubernetesServiceNodePort
,
MasterCount
:
options
.
MasterCount
,
MasterCount
:
options
.
MasterCount
,
...
@@ -315,12 +309,6 @@ func (c Config) New() (*GenericAPIServer, error) {
...
@@ -315,12 +309,6 @@ func (c Config) New() (*GenericAPIServer, error) {
openAPIDefinitions
:
c
.
OpenAPIDefinitions
,
openAPIDefinitions
:
c
.
OpenAPIDefinitions
,
}
}
if
c
.
EnableWatchCache
{
s
.
storageDecorator
=
registry
.
StorageWithCacher
}
else
{
s
.
storageDecorator
=
generic
.
UndecoratedStorage
}
if
c
.
RestfulContainer
!=
nil
{
if
c
.
RestfulContainer
!=
nil
{
s
.
HandlerContainer
=
c
.
RestfulContainer
s
.
HandlerContainer
=
c
.
RestfulContainer
}
else
{
}
else
{
...
...
pkg/genericapiserver/genericapiserver.go
View file @
f6882e84
...
@@ -45,7 +45,6 @@ import (
...
@@ -45,7 +45,6 @@ import (
"k8s.io/kubernetes/pkg/apiserver"
"k8s.io/kubernetes/pkg/apiserver"
"k8s.io/kubernetes/pkg/genericapiserver/openapi"
"k8s.io/kubernetes/pkg/genericapiserver/openapi"
"k8s.io/kubernetes/pkg/genericapiserver/options"
"k8s.io/kubernetes/pkg/genericapiserver/options"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime"
certutil
"k8s.io/kubernetes/pkg/util/cert"
certutil
"k8s.io/kubernetes/pkg/util/cert"
utilnet
"k8s.io/kubernetes/pkg/util/net"
utilnet
"k8s.io/kubernetes/pkg/util/net"
...
@@ -120,11 +119,6 @@ type GenericAPIServer struct {
...
@@ -120,11 +119,6 @@ type GenericAPIServer struct {
// requestContextMapper provides a way to get the context for a request. It may be nil.
// requestContextMapper provides a way to get the context for a request. It may be nil.
requestContextMapper
api
.
RequestContextMapper
requestContextMapper
api
.
RequestContextMapper
// storageDecorator provides a decoration function for storage. It will never be nil.
// TODO: this may be an abstraction at the wrong layer. It doesn't seem like a genericAPIServer
// should be determining the backing storage for the RESTStorage interfaces
storageDecorator
generic
.
StorageDecorator
Mux
*
apiserver
.
PathRecorderMux
Mux
*
apiserver
.
PathRecorderMux
HandlerContainer
*
restful
.
Container
HandlerContainer
*
restful
.
Container
MasterCount
int
MasterCount
int
...
@@ -175,10 +169,6 @@ type GenericAPIServer struct {
...
@@ -175,10 +169,6 @@ type GenericAPIServer struct {
openAPIDefinitions
*
common
.
OpenAPIDefinitions
openAPIDefinitions
*
common
.
OpenAPIDefinitions
}
}
func
(
s
*
GenericAPIServer
)
StorageDecorator
()
generic
.
StorageDecorator
{
return
s
.
storageDecorator
}
// RequestContextMapper is exposed so that third party resource storage can be build in a different location.
// RequestContextMapper is exposed so that third party resource storage can be build in a different location.
// TODO refactor third party resource storage
// TODO refactor third party resource storage
func
(
s
*
GenericAPIServer
)
RequestContextMapper
()
api
.
RequestContextMapper
{
func
(
s
*
GenericAPIServer
)
RequestContextMapper
()
api
.
RequestContextMapper
{
...
@@ -551,7 +541,6 @@ func (s *GenericAPIServer) getSwaggerConfig() *swagger.Config {
...
@@ -551,7 +541,6 @@ func (s *GenericAPIServer) getSwaggerConfig() *swagger.Config {
// register their own web services into the Kubernetes mux prior to initialization
// register their own web services into the Kubernetes mux prior to initialization
// of swagger, so that other resource types show up in the documentation.
// of swagger, so that other resource types show up in the documentation.
func
(
s
*
GenericAPIServer
)
InstallSwaggerAPI
()
{
func
(
s
*
GenericAPIServer
)
InstallSwaggerAPI
()
{
// Enable swagger UI and discovery API
// Enable swagger UI and discovery API
swagger
.
RegisterSwaggerService
(
*
s
.
getSwaggerConfig
(),
s
.
HandlerContainer
)
swagger
.
RegisterSwaggerService
(
*
s
.
getSwaggerConfig
(),
s
.
HandlerContainer
)
}
}
...
...
pkg/master/master.go
View file @
f6882e84
...
@@ -83,6 +83,7 @@ import (
...
@@ -83,6 +83,7 @@ import (
"k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresourcedata"
"k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresourcedata"
thirdpartyresourcedataetcd
"k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresourcedata/etcd"
thirdpartyresourcedataetcd
"k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresourcedata/etcd"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/generic/registry"
rbacstorage
"k8s.io/kubernetes/pkg/registry/rbac/storage"
rbacstorage
"k8s.io/kubernetes/pkg/registry/rbac/storage"
"k8s.io/kubernetes/pkg/routes"
"k8s.io/kubernetes/pkg/routes"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime"
...
@@ -103,6 +104,8 @@ const (
...
@@ -103,6 +104,8 @@ const (
type
Config
struct
{
type
Config
struct
{
*
genericapiserver
.
Config
*
genericapiserver
.
Config
StorageFactory
genericapiserver
.
StorageFactory
EnableWatchCache
bool
EnableCoreControllers
bool
EnableCoreControllers
bool
EndpointReconcilerConfig
EndpointReconcilerConfig
EndpointReconcilerConfig
EndpointReconcilerConfig
DeleteCollectionWorkers
int
DeleteCollectionWorkers
int
...
@@ -155,6 +158,8 @@ type Master struct {
...
@@ -155,6 +158,8 @@ type Master struct {
// Used to start and monitor tunneling
// Used to start and monitor tunneling
tunneler
genericapiserver
.
Tunneler
tunneler
genericapiserver
.
Tunneler
restOptionsFactory
restOptionsFactory
}
}
// thirdPartyEntry combines objects storage and API group into one struct
// thirdPartyEntry combines objects storage and API group into one struct
...
@@ -201,6 +206,18 @@ func New(c *Config) (*Master, error) {
...
@@ -201,6 +206,18 @@ func New(c *Config) (*Master, error) {
tunneler
:
c
.
Tunneler
,
tunneler
:
c
.
Tunneler
,
disableThirdPartyControllerForTesting
:
c
.
disableThirdPartyControllerForTesting
,
disableThirdPartyControllerForTesting
:
c
.
disableThirdPartyControllerForTesting
,
restOptionsFactory
:
restOptionsFactory
{
deleteCollectionWorkers
:
c
.
DeleteCollectionWorkers
,
enableGarbageCollection
:
c
.
EnableGarbageCollection
,
storageFactory
:
c
.
StorageFactory
,
},
}
if
c
.
EnableWatchCache
{
m
.
restOptionsFactory
.
storageDecorator
=
registry
.
StorageWithCacher
}
else
{
m
.
restOptionsFactory
.
storageDecorator
=
generic
.
UndecoratedStorage
}
}
// Add some hardcoded storage for now. Append to the map.
// Add some hardcoded storage for now. Append to the map.
...
@@ -287,7 +304,7 @@ func (m *Master) InstallAPIs(c *Config) {
...
@@ -287,7 +304,7 @@ func (m *Master) InstallAPIs(c *Config) {
}
}
restOptionsGetter
:=
func
(
resource
unversioned
.
GroupResource
)
generic
.
RESTOptions
{
restOptionsGetter
:=
func
(
resource
unversioned
.
GroupResource
)
generic
.
RESTOptions
{
return
m
.
GetRESTOptionsOrDie
(
c
,
resource
)
return
m
.
restOptionsFactory
.
NewFor
(
resource
)
}
}
// stabilize order.
// stabilize order.
...
@@ -338,7 +355,7 @@ func (m *Master) InstallAPIs(c *Config) {
...
@@ -338,7 +355,7 @@ func (m *Master) InstallAPIs(c *Config) {
func
(
m
*
Master
)
initV1ResourcesStorage
(
c
*
Config
)
{
func
(
m
*
Master
)
initV1ResourcesStorage
(
c
*
Config
)
{
restOptions
:=
func
(
resource
string
)
generic
.
RESTOptions
{
restOptions
:=
func
(
resource
string
)
generic
.
RESTOptions
{
return
m
.
GetRESTOptionsOrDie
(
c
,
api
.
Resource
(
resource
))
return
m
.
restOptionsFactory
.
NewFor
(
api
.
Resource
(
resource
))
}
}
podTemplateStorage
:=
podtemplateetcd
.
NewREST
(
restOptions
(
"podTemplates"
))
podTemplateStorage
:=
podtemplateetcd
.
NewREST
(
restOptions
(
"podTemplates"
))
...
@@ -778,18 +795,25 @@ func (m *Master) thirdpartyapi(group, kind, version, pluralResource string) *api
...
@@ -778,18 +795,25 @@ func (m *Master) thirdpartyapi(group, kind, version, pluralResource string) *api
}
}
}
}
func
(
m
*
Master
)
GetRESTOptionsOrDie
(
c
*
Config
,
resource
unversioned
.
GroupResource
)
generic
.
RESTOptions
{
type
restOptionsFactory
struct
{
storageConfig
,
err
:=
c
.
StorageFactory
.
NewConfig
(
resource
)
deleteCollectionWorkers
int
enableGarbageCollection
bool
storageFactory
genericapiserver
.
StorageFactory
storageDecorator
generic
.
StorageDecorator
}
func
(
f
restOptionsFactory
)
NewFor
(
resource
unversioned
.
GroupResource
)
generic
.
RESTOptions
{
storageConfig
,
err
:=
f
.
storageFactory
.
NewConfig
(
resource
)
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
Fatalf
(
"Unable to find storage destination for %v, due to %v"
,
resource
,
err
.
Error
())
glog
.
Fatalf
(
"Unable to find storage destination for %v, due to %v"
,
resource
,
err
.
Error
())
}
}
return
generic
.
RESTOptions
{
return
generic
.
RESTOptions
{
StorageConfig
:
storageConfig
,
StorageConfig
:
storageConfig
,
Decorator
:
m
.
StorageDecorator
()
,
Decorator
:
f
.
storageDecorator
,
DeleteCollectionWorkers
:
m
.
deleteCollectionWorkers
,
DeleteCollectionWorkers
:
f
.
deleteCollectionWorkers
,
EnableGarbageCollection
:
c
.
Config
.
E
nableGarbageCollection
,
EnableGarbageCollection
:
f
.
e
nableGarbageCollection
,
ResourcePrefix
:
c
.
S
torageFactory
.
ResourcePrefix
(
resource
),
ResourcePrefix
:
f
.
s
torageFactory
.
ResourcePrefix
(
resource
),
}
}
}
}
...
...
test/integration/framework/master_utils.go
View file @
f6882e84
...
@@ -224,14 +224,12 @@ func NewMasterConfig() *master.Config {
...
@@ -224,14 +224,12 @@ func NewMasterConfig() *master.Config {
return
&
master
.
Config
{
return
&
master
.
Config
{
Config
:
&
genericapiserver
.
Config
{
Config
:
&
genericapiserver
.
Config
{
StorageFactory
:
storageFactory
,
APIResourceConfigSource
:
master
.
DefaultAPIResourceConfigSource
(),
APIResourceConfigSource
:
master
.
DefaultAPIResourceConfigSource
(),
APIPrefix
:
"/api"
,
APIPrefix
:
"/api"
,
APIGroupPrefix
:
"/apis"
,
APIGroupPrefix
:
"/apis"
,
Authorizer
:
authorizer
.
NewAlwaysAllowAuthorizer
(),
Authorizer
:
authorizer
.
NewAlwaysAllowAuthorizer
(),
AdmissionControl
:
admit
.
NewAlwaysAdmit
(),
AdmissionControl
:
admit
.
NewAlwaysAdmit
(),
Serializer
:
api
.
Codecs
,
Serializer
:
api
.
Codecs
,
EnableWatchCache
:
true
,
// Set those values to avoid annoying warnings in logs.
// Set those values to avoid annoying warnings in logs.
ServiceClusterIPRange
:
parseCIDROrDie
(
"10.0.0.0/24"
),
ServiceClusterIPRange
:
parseCIDROrDie
(
"10.0.0.0/24"
),
ServiceNodePortRange
:
utilnet
.
PortRange
{
Base
:
30000
,
Size
:
2768
},
ServiceNodePortRange
:
utilnet
.
PortRange
{
Base
:
30000
,
Size
:
2768
},
...
@@ -239,7 +237,9 @@ func NewMasterConfig() *master.Config {
...
@@ -239,7 +237,9 @@ func NewMasterConfig() *master.Config {
OpenAPIDefinitions
:
openapi
.
OpenAPIDefinitions
,
OpenAPIDefinitions
:
openapi
.
OpenAPIDefinitions
,
EnableOpenAPISupport
:
true
,
EnableOpenAPISupport
:
true
,
},
},
KubeletClient
:
kubeletclient
.
FakeKubeletClient
{},
StorageFactory
:
storageFactory
,
EnableWatchCache
:
true
,
KubeletClient
:
kubeletclient
.
FakeKubeletClient
{},
}
}
}
}
...
...
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