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 {
genericConfig
:=
genericapiserver
.
NewConfig
(
s
.
ServerRunOptions
)
// TODO: Move the following to generic api server as well.
genericConfig
.
StorageFactory
=
storageFactory
genericConfig
.
Authenticator
=
apiAuthenticator
genericConfig
.
SupportsBasicAuth
=
len
(
s
.
BasicAuthFile
)
>
0
genericConfig
.
Authorizer
=
apiAuthorizer
...
...
@@ -311,7 +310,10 @@ func Run(s *options.APIServer) error {
genericConfig
.
EnableOpenAPISupport
=
true
config
:=
&
master
.
Config
{
Config
:
genericConfig
,
Config
:
genericConfig
,
StorageFactory
:
storageFactory
,
EnableWatchCache
:
s
.
EnableWatchCache
,
EnableCoreControllers
:
true
,
DeleteCollectionWorkers
:
s
.
DeleteCollectionWorkers
,
EventTTL
:
s
.
EventTTL
,
...
...
examples/apiserver/apiserver.go
View file @
f6882e84
...
...
@@ -30,6 +30,7 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/authorizer"
genericoptions
"k8s.io/kubernetes/pkg/genericapiserver/options"
genericvalidation
"k8s.io/kubernetes/pkg/genericapiserver/validation"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/storage/storagebackend"
// Install the testgroup API
...
...
@@ -87,7 +88,7 @@ func Run(serverOptions *genericoptions.ServerRunOptions) error {
}
restStorageMap
:=
map
[
string
]
rest
.
Storage
{
"testtypes"
:
testgroupetcd
.
NewREST
(
storageConfig
,
s
.
StorageDecorator
()
),
"testtypes"
:
testgroupetcd
.
NewREST
(
storageConfig
,
generic
.
UndecoratedStorage
),
}
apiGroupInfo
:=
genericapiserver
.
APIGroupInfo
{
GroupMeta
:
*
groupMeta
,
...
...
federation/cmd/federation-apiserver/app/core.go
View file @
f6882e84
...
...
@@ -40,11 +40,11 @@ import (
serviceetcd
"k8s.io/kubernetes/pkg/registry/core/service/etcd"
)
func
installCoreAPIs
(
s
*
options
.
ServerRunOptions
,
g
*
genericapiserver
.
GenericAPIServer
,
f
genericapiserver
.
Storage
Factory
)
{
serviceStore
,
serviceStatusStore
:=
serviceetcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
api
.
Resource
(
"service"
)))
namespaceStore
,
namespaceStatusStore
,
namespaceFinalizeStore
:=
namespaceetcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
api
.
Resource
(
"namespaces"
)))
secretStore
:=
secretetcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
api
.
Resource
(
"secrets"
)))
eventStore
:=
eventetcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
api
.
Resource
(
"events"
)),
uint64
(
s
.
EventTTL
.
Seconds
()))
func
installCoreAPIs
(
s
*
options
.
ServerRunOptions
,
g
*
genericapiserver
.
GenericAPIServer
,
restOptionsFactory
restOptions
Factory
)
{
serviceStore
,
serviceStatusStore
:=
serviceetcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
api
.
Resource
(
"service"
)))
namespaceStore
,
namespaceStatusStore
,
namespaceFinalizeStore
:=
namespaceetcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
api
.
Resource
(
"namespaces"
)))
secretStore
:=
secretetcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
api
.
Resource
(
"secrets"
)))
eventStore
:=
eventetcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
api
.
Resource
(
"events"
)),
uint64
(
s
.
EventTTL
.
Seconds
()))
coreResources
:=
map
[
string
]
rest
.
Storage
{
"secrets"
:
secretStore
,
"services"
:
serviceStore
,
...
...
federation/cmd/federation-apiserver/app/extensions.go
View file @
f6882e84
...
...
@@ -18,7 +18,6 @@ package app
import
(
"github.com/golang/glog"
"k8s.io/kubernetes/federation/cmd/federation-apiserver/app/options"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apimachinery/registered"
...
...
@@ -29,9 +28,9 @@ import (
replicasetetcd
"k8s.io/kubernetes/pkg/registry/extensions/replicaset/etcd"
)
func
installExtensionsAPIs
(
s
*
options
.
ServerRunOptions
,
g
*
genericapiserver
.
GenericAPIServer
,
f
genericapiserver
.
Storage
Factory
)
{
replicaSetStorage
:=
replicasetetcd
.
NewStorage
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
extensions
.
Resource
(
"replicasets"
)))
ingressStorage
,
ingressStatusStorage
:=
ingressetcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
extensions
.
Resource
(
"ingresses"
)))
func
installExtensionsAPIs
(
g
*
genericapiserver
.
GenericAPIServer
,
restOptionsFactory
restOptions
Factory
)
{
replicaSetStorage
:=
replicasetetcd
.
NewStorage
(
restOptionsFactory
.
NewFor
(
extensions
.
Resource
(
"replicasets"
)))
ingressStorage
,
ingressStatusStorage
:=
ingressetcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
extensions
.
Resource
(
"ingresses"
)))
extensionsResources
:=
map
[
string
]
rest
.
Storage
{
"replicasets"
:
replicaSetStorage
.
ReplicaSet
,
"replicasets/status"
:
replicaSetStorage
.
Status
,
...
...
federation/cmd/federation-apiserver/app/federation.go
View file @
f6882e84
...
...
@@ -20,7 +20,6 @@ import (
"github.com/golang/glog"
"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/rest"
"k8s.io/kubernetes/pkg/apimachinery/registered"
...
...
@@ -30,8 +29,8 @@ import (
clusteretcd
"k8s.io/kubernetes/federation/registry/cluster/etcd"
)
func
installFederationAPIs
(
s
*
options
.
ServerRunOptions
,
g
*
genericapiserver
.
GenericAPIServer
,
f
genericapiserver
.
Storage
Factory
)
{
clusterStorage
,
clusterStatusStorage
:=
clusteretcd
.
NewREST
(
createRESTOptionsOrDie
(
s
,
g
,
f
,
federation
.
Resource
(
"clusters"
)))
func
installFederationAPIs
(
g
*
genericapiserver
.
GenericAPIServer
,
restOptionsFactory
restOptions
Factory
)
{
clusterStorage
,
clusterStatusStorage
:=
clusteretcd
.
NewREST
(
restOptionsFactory
.
NewFor
(
federation
.
Resource
(
"clusters"
)))
federationResources
:=
map
[
string
]
rest
.
Storage
{
"clusters"
:
clusterStorage
,
"clusters/status"
:
clusterStatusStorage
,
...
...
federation/cmd/federation-apiserver/app/server.go
View file @
f6882e84
...
...
@@ -44,6 +44,7 @@ import (
genericvalidation
"k8s.io/kubernetes/pkg/genericapiserver/validation"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole"
clusterroleetcd
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding"
...
...
@@ -201,7 +202,6 @@ func Run(s *options.ServerRunOptions) error {
}
genericConfig
:=
genericapiserver
.
NewConfig
(
s
.
ServerRunOptions
)
// TODO: Move the following to generic api server as well.
genericConfig
.
StorageFactory
=
storageFactory
genericConfig
.
Authenticator
=
apiAuthenticator
genericConfig
.
SupportsBasicAuth
=
len
(
s
.
BasicAuthFile
)
>
0
genericConfig
.
Authorizer
=
apiAuthorizer
...
...
@@ -227,24 +227,40 @@ func Run(s *options.ServerRunOptions) error {
routes
.
UIRedirect
{}
.
Install
(
m
.
Mux
,
m
.
HandlerContainer
)
routes
.
Logs
{}
.
Install
(
m
.
Mux
,
m
.
HandlerContainer
)
installFederationAPIs
(
s
,
m
,
storageFactory
)
installCoreAPIs
(
s
,
m
,
storageFactory
)
installExtensionsAPIs
(
s
,
m
,
storageFactory
)
restOptionsFactory
:=
restOptionsFactory
{
storageFactory
:
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
)
m
.
Run
(
s
.
ServerRunOptions
)
return
nil
}
func
createRESTOptionsOrDie
(
s
*
options
.
ServerRunOptions
,
g
*
genericapiserver
.
GenericAPIServer
,
f
genericapiserver
.
StorageFactory
,
resource
unversioned
.
GroupResource
)
generic
.
RESTOptions
{
config
,
err
:=
f
.
NewConfig
(
resource
)
type
restOptionsFactory
struct
{
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
{
glog
.
Fatalf
(
"Unable to find storage config for %v, due to %v"
,
resource
,
err
.
Error
())
}
return
generic
.
RESTOptions
{
StorageConfig
:
config
,
Decorator
:
g
.
StorageDecorator
()
,
DeleteCollectionWorkers
:
s
.
D
eleteCollectionWorkers
,
ResourcePrefix
:
f
.
ResourcePrefix
(
resource
),
Decorator
:
f
.
storageDecorator
,
DeleteCollectionWorkers
:
f
.
d
eleteCollectionWorkers
,
ResourcePrefix
:
f
.
storageFactory
.
ResourcePrefix
(
resource
),
}
}
pkg/genericapiserver/config.go
View file @
f6882e84
...
...
@@ -46,8 +46,6 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/routes"
genericvalidation
"k8s.io/kubernetes/pkg/genericapiserver/validation"
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/util"
utilnet
"k8s.io/kubernetes/pkg/util/net"
...
...
@@ -55,8 +53,6 @@ import (
// Config is a structure used to configure a GenericAPIServer.
type
Config
struct
{
// The storage factory for other objects
StorageFactory
StorageFactory
AuditLogPath
string
AuditLogMaxAge
int
AuditLogMaxBackups
int
...
...
@@ -73,7 +69,6 @@ type Config struct {
EnableIndex
bool
EnableProfiling
bool
EnableVersion
bool
EnableWatchCache
bool
EnableGarbageCollection
bool
APIPrefix
string
APIGroupPrefix
string
...
...
@@ -179,7 +174,6 @@ func NewConfig(options *options.ServerRunOptions) *Config {
EnableSwaggerSupport
:
true
,
EnableSwaggerUI
:
options
.
EnableSwaggerUI
,
EnableVersion
:
true
,
EnableWatchCache
:
options
.
EnableWatchCache
,
ExternalHost
:
options
.
ExternalHost
,
KubernetesServiceNodePort
:
options
.
KubernetesServiceNodePort
,
MasterCount
:
options
.
MasterCount
,
...
...
@@ -315,12 +309,6 @@ func (c Config) New() (*GenericAPIServer, error) {
openAPIDefinitions
:
c
.
OpenAPIDefinitions
,
}
if
c
.
EnableWatchCache
{
s
.
storageDecorator
=
registry
.
StorageWithCacher
}
else
{
s
.
storageDecorator
=
generic
.
UndecoratedStorage
}
if
c
.
RestfulContainer
!=
nil
{
s
.
HandlerContainer
=
c
.
RestfulContainer
}
else
{
...
...
pkg/genericapiserver/genericapiserver.go
View file @
f6882e84
...
...
@@ -45,7 +45,6 @@ import (
"k8s.io/kubernetes/pkg/apiserver"
"k8s.io/kubernetes/pkg/genericapiserver/openapi"
"k8s.io/kubernetes/pkg/genericapiserver/options"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/runtime"
certutil
"k8s.io/kubernetes/pkg/util/cert"
utilnet
"k8s.io/kubernetes/pkg/util/net"
...
...
@@ -120,11 +119,6 @@ type GenericAPIServer struct {
// requestContextMapper provides a way to get the context for a request. It may be nil.
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
HandlerContainer
*
restful
.
Container
MasterCount
int
...
...
@@ -175,10 +169,6 @@ type GenericAPIServer struct {
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.
// TODO refactor third party resource storage
func
(
s
*
GenericAPIServer
)
RequestContextMapper
()
api
.
RequestContextMapper
{
...
...
@@ -551,7 +541,6 @@ func (s *GenericAPIServer) getSwaggerConfig() *swagger.Config {
// register their own web services into the Kubernetes mux prior to initialization
// of swagger, so that other resource types show up in the documentation.
func
(
s
*
GenericAPIServer
)
InstallSwaggerAPI
()
{
// Enable swagger UI and discovery API
swagger
.
RegisterSwaggerService
(
*
s
.
getSwaggerConfig
(),
s
.
HandlerContainer
)
}
...
...
pkg/master/master.go
View file @
f6882e84
...
...
@@ -83,6 +83,7 @@ import (
"k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresourcedata"
thirdpartyresourcedataetcd
"k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresourcedata/etcd"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/generic/registry"
rbacstorage
"k8s.io/kubernetes/pkg/registry/rbac/storage"
"k8s.io/kubernetes/pkg/routes"
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -103,6 +104,8 @@ const (
type
Config
struct
{
*
genericapiserver
.
Config
StorageFactory
genericapiserver
.
StorageFactory
EnableWatchCache
bool
EnableCoreControllers
bool
EndpointReconcilerConfig
EndpointReconcilerConfig
DeleteCollectionWorkers
int
...
...
@@ -155,6 +158,8 @@ type Master struct {
// Used to start and monitor tunneling
tunneler
genericapiserver
.
Tunneler
restOptionsFactory
restOptionsFactory
}
// thirdPartyEntry combines objects storage and API group into one struct
...
...
@@ -201,6 +206,18 @@ func New(c *Config) (*Master, error) {
tunneler
:
c
.
Tunneler
,
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.
...
...
@@ -287,7 +304,7 @@ func (m *Master) InstallAPIs(c *Config) {
}
restOptionsGetter
:=
func
(
resource
unversioned
.
GroupResource
)
generic
.
RESTOptions
{
return
m
.
GetRESTOptionsOrDie
(
c
,
resource
)
return
m
.
restOptionsFactory
.
NewFor
(
resource
)
}
// stabilize order.
...
...
@@ -338,7 +355,7 @@ func (m *Master) InstallAPIs(c *Config) {
func
(
m
*
Master
)
initV1ResourcesStorage
(
c
*
Config
)
{
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"
))
...
...
@@ -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
{
storageConfig
,
err
:=
c
.
StorageFactory
.
NewConfig
(
resource
)
type
restOptionsFactory
struct
{
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
{
glog
.
Fatalf
(
"Unable to find storage destination for %v, due to %v"
,
resource
,
err
.
Error
())
}
return
generic
.
RESTOptions
{
StorageConfig
:
storageConfig
,
Decorator
:
m
.
StorageDecorator
()
,
DeleteCollectionWorkers
:
m
.
deleteCollectionWorkers
,
EnableGarbageCollection
:
c
.
Config
.
E
nableGarbageCollection
,
ResourcePrefix
:
c
.
S
torageFactory
.
ResourcePrefix
(
resource
),
Decorator
:
f
.
storageDecorator
,
DeleteCollectionWorkers
:
f
.
deleteCollectionWorkers
,
EnableGarbageCollection
:
f
.
e
nableGarbageCollection
,
ResourcePrefix
:
f
.
s
torageFactory
.
ResourcePrefix
(
resource
),
}
}
...
...
test/integration/framework/master_utils.go
View file @
f6882e84
...
...
@@ -224,14 +224,12 @@ func NewMasterConfig() *master.Config {
return
&
master
.
Config
{
Config
:
&
genericapiserver
.
Config
{
StorageFactory
:
storageFactory
,
APIResourceConfigSource
:
master
.
DefaultAPIResourceConfigSource
(),
APIPrefix
:
"/api"
,
APIGroupPrefix
:
"/apis"
,
Authorizer
:
authorizer
.
NewAlwaysAllowAuthorizer
(),
AdmissionControl
:
admit
.
NewAlwaysAdmit
(),
Serializer
:
api
.
Codecs
,
EnableWatchCache
:
true
,
// Set those values to avoid annoying warnings in logs.
ServiceClusterIPRange
:
parseCIDROrDie
(
"10.0.0.0/24"
),
ServiceNodePortRange
:
utilnet
.
PortRange
{
Base
:
30000
,
Size
:
2768
},
...
...
@@ -239,7 +237,9 @@ func NewMasterConfig() *master.Config {
OpenAPIDefinitions
:
openapi
.
OpenAPIDefinitions
,
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