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
a2a64235
Commit
a2a64235
authored
Sep 15, 2016
by
deads2k
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
separate RESTStorage by API group
parent
1070a518
Hide whitespace changes
Inline
Side-by-side
Showing
39 changed files
with
130 additions
and
97 deletions
+130
-97
server.go
cmd/kube-apiserver/app/server.go
+8
-8
server.go
federation/cmd/federation-apiserver/app/server.go
+8
-8
.linted_packages
hack/.linted_packages
+4
-0
authz.go
pkg/genericapiserver/authorizer/authz.go
+4
-4
hooks.go
pkg/genericapiserver/hooks.go
+5
-0
reststorage_interfaces.go
pkg/genericapiserver/reststorage_interfaces.go
+28
-0
master.go
pkg/master/master.go
+6
-10
storage_apps.go
pkg/master/storage_apps.go
+3
-3
storage_authentication.go
pkg/master/storage_authentication.go
+3
-3
storage_authorization.go
pkg/master/storage_authorization.go
+3
-3
storage_autoscaling.go
pkg/master/storage_autoscaling.go
+3
-3
storage_batch.go
pkg/master/storage_batch.go
+4
-4
storage_certificates.go
pkg/master/storage_certificates.go
+3
-3
storage_extensions.go
pkg/master/storage_extensions.go
+3
-3
storage_policy.go
pkg/master/storage_policy.go
+3
-3
storage_storage.go
pkg/master/storage_storage.go
+3
-3
doc.go
pkg/registry/rbac/clusterrole/doc.go
+1
-1
etcd.go
pkg/registry/rbac/clusterrole/etcd/etcd.go
+1
-1
storage.go
pkg/registry/rbac/clusterrole/policybased/storage.go
+0
-0
registry.go
pkg/registry/rbac/clusterrole/registry.go
+0
-0
strategy.go
pkg/registry/rbac/clusterrole/strategy.go
+0
-0
doc.go
pkg/registry/rbac/clusterrolebinding/doc.go
+1
-1
etcd.go
pkg/registry/rbac/clusterrolebinding/etcd/etcd.go
+1
-1
storage.go
pkg/registry/rbac/clusterrolebinding/policybased/storage.go
+0
-0
registry.go
pkg/registry/rbac/clusterrolebinding/registry.go
+0
-0
strategy.go
pkg/registry/rbac/clusterrolebinding/strategy.go
+0
-0
doc.go
pkg/registry/rbac/role/doc.go
+1
-1
etcd.go
pkg/registry/rbac/role/etcd/etcd.go
+1
-1
storage.go
pkg/registry/rbac/role/policybased/storage.go
+0
-0
registry.go
pkg/registry/rbac/role/registry.go
+0
-0
strategy.go
pkg/registry/rbac/role/strategy.go
+0
-0
doc.go
pkg/registry/rbac/rolebinding/doc.go
+1
-1
etcd.go
pkg/registry/rbac/rolebinding/etcd/etcd.go
+1
-1
storage.go
pkg/registry/rbac/rolebinding/policybased/storage.go
+0
-0
registry.go
pkg/registry/rbac/rolebinding/registry.go
+0
-0
strategy.go
pkg/registry/rbac/rolebinding/strategy.go
+0
-0
storage_rbac.go
pkg/registry/rbac/storage/storage_rbac.go
+19
-19
rbac.go
plugin/pkg/auth/authorizer/rbac/rbac.go
+4
-4
rbac_test.go
test/integration/auth/rbac_test.go
+8
-8
No files found.
cmd/kube-apiserver/app/server.go
View file @
a2a64235
...
...
@@ -52,15 +52,15 @@ import (
kubeletclient
"k8s.io/kubernetes/pkg/kubelet/client"
"k8s.io/kubernetes/pkg/master"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/clusterrole"
clusterroleetcd
"k8s.io/kubernetes/pkg/registry/clusterrole/etcd"
"k8s.io/kubernetes/pkg/registry/clusterrolebinding"
clusterrolebindingetcd
"k8s.io/kubernetes/pkg/registry/clusterrolebinding/etcd"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/role"
roleetcd
"k8s.io/kubernetes/pkg/registry/role/etcd"
"k8s.io/kubernetes/pkg/registry/rolebinding"
rolebindingetcd
"k8s.io/kubernetes/pkg/registry/rolebinding/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole"
clusterroleetcd
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding"
clusterrolebindingetcd
"k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/role"
roleetcd
"k8s.io/kubernetes/pkg/registry/rbac/role/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/rolebinding"
rolebindingetcd
"k8s.io/kubernetes/pkg/registry/rbac/rolebinding/etcd"
"k8s.io/kubernetes/pkg/serviceaccount"
"k8s.io/kubernetes/pkg/util/wait"
)
...
...
federation/cmd/federation-apiserver/app/server.go
View file @
a2a64235
...
...
@@ -39,15 +39,15 @@ import (
genericoptions
"k8s.io/kubernetes/pkg/genericapiserver/options"
genericvalidation
"k8s.io/kubernetes/pkg/genericapiserver/validation"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/clusterrole"
clusterroleetcd
"k8s.io/kubernetes/pkg/registry/clusterrole/etcd"
"k8s.io/kubernetes/pkg/registry/clusterrolebinding"
clusterrolebindingetcd
"k8s.io/kubernetes/pkg/registry/clusterrolebinding/etcd"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/role"
roleetcd
"k8s.io/kubernetes/pkg/registry/role/etcd"
"k8s.io/kubernetes/pkg/registry/rolebinding"
rolebindingetcd
"k8s.io/kubernetes/pkg/registry/rolebinding/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole"
clusterroleetcd
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding"
clusterrolebindingetcd
"k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/role"
roleetcd
"k8s.io/kubernetes/pkg/registry/rbac/role/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/rolebinding"
rolebindingetcd
"k8s.io/kubernetes/pkg/registry/rbac/rolebinding/etcd"
"k8s.io/kubernetes/pkg/routes"
"k8s.io/kubernetes/pkg/util/wait"
)
...
...
hack/.linted_packages
View file @
a2a64235
...
...
@@ -134,6 +134,10 @@ pkg/registry/node/rest
pkg/registry/pod/etcd
pkg/registry/podsecuritypolicy/etcd
pkg/registry/rangeallocation
pkg/registry/rbac/clusterrole/etcd
pkg/registry/rbac/clusterrolebinding/etcd
pkg/registry/rbac/role/etcd
pkg/registry/rbac/rolebinding/etcd
pkg/registry/role/etcd
pkg/registry/rolebinding/etcd
pkg/registry/service/ipallocator/controller
...
...
pkg/genericapiserver/authorizer/authz.go
View file @
a2a64235
...
...
@@ -25,10 +25,10 @@ import (
"k8s.io/kubernetes/pkg/auth/authorizer/abac"
"k8s.io/kubernetes/pkg/auth/authorizer/union"
"k8s.io/kubernetes/pkg/genericapiserver/options"
"k8s.io/kubernetes/pkg/registry/clusterrole"
"k8s.io/kubernetes/pkg/registry/clusterrolebinding"
"k8s.io/kubernetes/pkg/registry/role"
"k8s.io/kubernetes/pkg/registry/rolebinding"
"k8s.io/kubernetes/pkg/registry/
rbac/
clusterrole"
"k8s.io/kubernetes/pkg/registry/
rbac/
clusterrolebinding"
"k8s.io/kubernetes/pkg/registry/r
bac/r
ole"
"k8s.io/kubernetes/pkg/registry/r
bac/r
olebinding"
"k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac"
"k8s.io/kubernetes/plugin/pkg/auth/authorizer/webhook"
)
...
...
pkg/genericapiserver/hooks.go
View file @
a2a64235
...
...
@@ -41,6 +41,11 @@ type PostStartHookContext struct {
// to this API server. That client config doesn't exist yet.
}
// PostStartHookProvider is an interface in addition to provide a post start hook for the api server
type
PostStartHookProvider
interface
{
PostStartHook
()
(
string
,
PostStartHookFunc
,
error
)
}
// AddPostStartHook allows you to add a PostStartHook.
func
(
s
*
GenericAPIServer
)
AddPostStartHook
(
name
string
,
hook
PostStartHookFunc
)
error
{
if
len
(
name
)
==
0
{
...
...
pkg/genericapiserver/reststorage_interfaces.go
0 → 100644
View file @
a2a64235
/*
Copyright 2016 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
genericapiserver
import
(
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/registry/generic"
)
type
RESTOptionsGetter
func
(
resource
unversioned
.
GroupResource
)
generic
.
RESTOptions
type
RESTStorageProvider
interface
{
NewRESTStorage
(
apiResourceConfigSource
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
APIGroupInfo
,
bool
)
}
pkg/master/master.go
View file @
a2a64235
...
...
@@ -72,6 +72,7 @@ import (
podetcd
"k8s.io/kubernetes/pkg/registry/pod/etcd"
podtemplateetcd
"k8s.io/kubernetes/pkg/registry/podtemplate/etcd"
"k8s.io/kubernetes/pkg/registry/rangeallocation"
rbacstorage
"k8s.io/kubernetes/pkg/registry/rbac/storage"
resourcequotaetcd
"k8s.io/kubernetes/pkg/registry/resourcequota/etcd"
secretetcd
"k8s.io/kubernetes/pkg/registry/secret/etcd"
"k8s.io/kubernetes/pkg/registry/service"
...
...
@@ -107,8 +108,8 @@ type Config struct {
DeleteCollectionWorkers
int
EventTTL
time
.
Duration
KubeletClient
kubeletclient
.
KubeletClient
// RESTStorageProviders provides RESTStorage building methods keyed by groupName
RESTStorageProviders
map
[
string
]
RESTStorageProvider
//
genericapiserver.
RESTStorageProviders provides RESTStorage building methods keyed by groupName
RESTStorageProviders
map
[
string
]
genericapiserver
.
RESTStorageProvider
// Used to start and monitor tunneling
Tunneler
genericapiserver
.
Tunneler
EnableUISupport
bool
...
...
@@ -170,11 +171,6 @@ type RESTStorageProvider interface {
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
groupInfo
genericapiserver
.
APIGroupInfo
,
enabled
bool
)
}
// PostStartHookProvider is an interface in addition to provide a post start hook for the api server
type
PostStartHookProvider
interface
{
PostStartHook
()
(
string
,
genericapiserver
.
PostStartHookFunc
,
error
)
}
// New returns a new instance of Master from the given config.
// Certain config fields will be set to a default value if unset.
// Certain config fields must be specified, including:
...
...
@@ -209,7 +205,7 @@ func New(c *Config) (*Master, error) {
// Add some hardcoded storage for now. Append to the map.
if
c
.
RESTStorageProviders
==
nil
{
c
.
RESTStorageProviders
=
map
[
string
]
RESTStorageProvider
{}
c
.
RESTStorageProviders
=
map
[
string
]
genericapiserver
.
RESTStorageProvider
{}
}
c
.
RESTStorageProviders
[
appsapi
.
GroupName
]
=
AppsRESTStorageProvider
{}
c
.
RESTStorageProviders
[
autoscaling
.
GroupName
]
=
AutoscalingRESTStorageProvider
{}
...
...
@@ -220,7 +216,7 @@ func New(c *Config) (*Master, error) {
DisableThirdPartyControllerForTesting
:
m
.
disableThirdPartyControllerForTesting
,
}
c
.
RESTStorageProviders
[
policy
.
GroupName
]
=
PolicyRESTStorageProvider
{}
c
.
RESTStorageProviders
[
rbac
.
GroupName
]
=
&
RBAC
RESTStorageProvider
{
AuthorizerRBACSuperUser
:
c
.
AuthorizerRBACSuperUser
}
c
.
RESTStorageProviders
[
rbac
.
GroupName
]
=
&
rbacstorage
.
RESTStorageProvider
{
AuthorizerRBACSuperUser
:
c
.
AuthorizerRBACSuperUser
}
c
.
RESTStorageProviders
[
storage
.
GroupName
]
=
StorageRESTStorageProvider
{}
c
.
RESTStorageProviders
[
authenticationv1beta1
.
GroupName
]
=
AuthenticationRESTStorageProvider
{
Authenticator
:
c
.
Authenticator
}
c
.
RESTStorageProviders
[
authorization
.
GroupName
]
=
AuthorizationRESTStorageProvider
{
Authorizer
:
c
.
Authorizer
}
...
...
@@ -309,7 +305,7 @@ func (m *Master) InstallAPIs(c *Config) {
}
glog
.
V
(
1
)
.
Infof
(
"Enabling API group %q."
,
group
)
if
postHookProvider
,
ok
:=
restStorageBuilder
.
(
PostStartHookProvider
);
ok
{
if
postHookProvider
,
ok
:=
restStorageBuilder
.
(
genericapiserver
.
PostStartHookProvider
);
ok
{
name
,
hook
,
err
:=
postHookProvider
.
PostStartHook
()
if
err
!=
nil
{
glog
.
Fatalf
(
"Error building PostStartHook: %v"
,
err
)
...
...
pkg/master/storage_apps.go
View file @
a2a64235
...
...
@@ -26,9 +26,9 @@ import (
type
AppsRESTStorageProvider
struct
{}
var
_
RESTStorageProvider
=
&
AppsRESTStorageProvider
{}
var
_
genericapiserver
.
RESTStorageProvider
=
&
AppsRESTStorageProvider
{}
func
(
p
AppsRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
func
(
p
AppsRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
apiGroupInfo
:=
genericapiserver
.
NewDefaultAPIGroupInfo
(
apps
.
GroupName
)
if
apiResourceConfigSource
.
AnyResourcesForVersionEnabled
(
appsapiv1alpha1
.
SchemeGroupVersion
)
{
...
...
@@ -39,7 +39,7 @@ func (p AppsRESTStorageProvider) NewRESTStorage(apiResourceConfigSource generica
return
apiGroupInfo
,
true
}
func
(
p
AppsRESTStorageProvider
)
v1alpha1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
func
(
p
AppsRESTStorageProvider
)
v1alpha1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
version
:=
appsapiv1alpha1
.
SchemeGroupVersion
storage
:=
map
[
string
]
rest
.
Storage
{}
...
...
pkg/master/storage_authentication.go
View file @
a2a64235
...
...
@@ -29,9 +29,9 @@ type AuthenticationRESTStorageProvider struct {
Authenticator
authenticator
.
Request
}
var
_
RESTStorageProvider
=
&
AuthenticationRESTStorageProvider
{}
var
_
genericapiserver
.
RESTStorageProvider
=
&
AuthenticationRESTStorageProvider
{}
func
(
p
AuthenticationRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
func
(
p
AuthenticationRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
// TODO figure out how to make the swagger generation stable, while allowing this endpoint to be disabled.
// if p.Authenticator == nil {
// return genericapiserver.APIGroupInfo{}, false
...
...
@@ -47,7 +47,7 @@ func (p AuthenticationRESTStorageProvider) NewRESTStorage(apiResourceConfigSourc
return
apiGroupInfo
,
true
}
func
(
p
AuthenticationRESTStorageProvider
)
v1beta1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
func
(
p
AuthenticationRESTStorageProvider
)
v1beta1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
version
:=
authenticationv1beta1
.
SchemeGroupVersion
storage
:=
map
[
string
]
rest
.
Storage
{}
...
...
pkg/master/storage_authorization.go
View file @
a2a64235
...
...
@@ -31,9 +31,9 @@ type AuthorizationRESTStorageProvider struct {
Authorizer
authorizer
.
Authorizer
}
var
_
RESTStorageProvider
=
&
AuthorizationRESTStorageProvider
{}
var
_
genericapiserver
.
RESTStorageProvider
=
&
AuthorizationRESTStorageProvider
{}
func
(
p
AuthorizationRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
func
(
p
AuthorizationRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
if
p
.
Authorizer
==
nil
{
return
genericapiserver
.
APIGroupInfo
{},
false
}
...
...
@@ -48,7 +48,7 @@ func (p AuthorizationRESTStorageProvider) NewRESTStorage(apiResourceConfigSource
return
apiGroupInfo
,
true
}
func
(
p
AuthorizationRESTStorageProvider
)
v1beta1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
func
(
p
AuthorizationRESTStorageProvider
)
v1beta1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
version
:=
authorizationv1beta1
.
SchemeGroupVersion
storage
:=
map
[
string
]
rest
.
Storage
{}
...
...
pkg/master/storage_autoscaling.go
View file @
a2a64235
...
...
@@ -26,9 +26,9 @@ import (
type
AutoscalingRESTStorageProvider
struct
{}
var
_
RESTStorageProvider
=
&
AutoscalingRESTStorageProvider
{}
var
_
genericapiserver
.
RESTStorageProvider
=
&
AutoscalingRESTStorageProvider
{}
func
(
p
AutoscalingRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
func
(
p
AutoscalingRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
apiGroupInfo
:=
genericapiserver
.
NewDefaultAPIGroupInfo
(
autoscaling
.
GroupName
)
if
apiResourceConfigSource
.
AnyResourcesForVersionEnabled
(
autoscalingapiv1
.
SchemeGroupVersion
)
{
...
...
@@ -39,7 +39,7 @@ func (p AutoscalingRESTStorageProvider) NewRESTStorage(apiResourceConfigSource g
return
apiGroupInfo
,
true
}
func
(
p
AutoscalingRESTStorageProvider
)
v1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
func
(
p
AutoscalingRESTStorageProvider
)
v1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
version
:=
autoscalingapiv1
.
SchemeGroupVersion
storage
:=
map
[
string
]
rest
.
Storage
{}
...
...
pkg/master/storage_batch.go
View file @
a2a64235
...
...
@@ -28,9 +28,9 @@ import (
type
BatchRESTStorageProvider
struct
{}
var
_
RESTStorageProvider
=
&
BatchRESTStorageProvider
{}
var
_
genericapiserver
.
RESTStorageProvider
=
&
BatchRESTStorageProvider
{}
func
(
p
BatchRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
func
(
p
BatchRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
apiGroupInfo
:=
genericapiserver
.
NewDefaultAPIGroupInfo
(
batch
.
GroupName
)
if
apiResourceConfigSource
.
AnyResourcesForVersionEnabled
(
batchapiv2alpha1
.
SchemeGroupVersion
)
{
...
...
@@ -45,7 +45,7 @@ func (p BatchRESTStorageProvider) NewRESTStorage(apiResourceConfigSource generic
return
apiGroupInfo
,
true
}
func
(
p
BatchRESTStorageProvider
)
v1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
func
(
p
BatchRESTStorageProvider
)
v1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
version
:=
batchapiv1
.
SchemeGroupVersion
storage
:=
map
[
string
]
rest
.
Storage
{}
...
...
@@ -57,7 +57,7 @@ func (p BatchRESTStorageProvider) v1Storage(apiResourceConfigSource genericapise
return
storage
}
func
(
p
BatchRESTStorageProvider
)
v2alpha1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
func
(
p
BatchRESTStorageProvider
)
v2alpha1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
version
:=
batchapiv2alpha1
.
SchemeGroupVersion
storage
:=
map
[
string
]
rest
.
Storage
{}
...
...
pkg/master/storage_certificates.go
View file @
a2a64235
...
...
@@ -26,9 +26,9 @@ import (
type
CertificatesRESTStorageProvider
struct
{}
var
_
RESTStorageProvider
=
&
CertificatesRESTStorageProvider
{}
var
_
genericapiserver
.
RESTStorageProvider
=
&
CertificatesRESTStorageProvider
{}
func
(
p
CertificatesRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
func
(
p
CertificatesRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
apiGroupInfo
:=
genericapiserver
.
NewDefaultAPIGroupInfo
(
certificates
.
GroupName
)
if
apiResourceConfigSource
.
AnyResourcesForVersionEnabled
(
certificatesapiv1alpha1
.
SchemeGroupVersion
)
{
...
...
@@ -39,7 +39,7 @@ func (p CertificatesRESTStorageProvider) NewRESTStorage(apiResourceConfigSource
return
apiGroupInfo
,
true
}
func
(
p
CertificatesRESTStorageProvider
)
v1alpha1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
func
(
p
CertificatesRESTStorageProvider
)
v1alpha1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
version
:=
certificatesapiv1alpha1
.
SchemeGroupVersion
storage
:=
map
[
string
]
rest
.
Storage
{}
...
...
pkg/master/storage_extensions.go
View file @
a2a64235
...
...
@@ -44,9 +44,9 @@ type ExtensionsRESTStorageProvider struct {
DisableThirdPartyControllerForTesting
bool
}
var
_
RESTStorageProvider
=
&
ExtensionsRESTStorageProvider
{}
var
_
genericapiserver
.
RESTStorageProvider
=
&
ExtensionsRESTStorageProvider
{}
func
(
p
ExtensionsRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
func
(
p
ExtensionsRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
apiGroupInfo
:=
genericapiserver
.
NewDefaultAPIGroupInfo
(
extensions
.
GroupName
)
if
apiResourceConfigSource
.
AnyResourcesForVersionEnabled
(
extensionsapiv1beta1
.
SchemeGroupVersion
)
{
...
...
@@ -57,7 +57,7 @@ func (p ExtensionsRESTStorageProvider) NewRESTStorage(apiResourceConfigSource ge
return
apiGroupInfo
,
true
}
func
(
p
ExtensionsRESTStorageProvider
)
v1beta1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
func
(
p
ExtensionsRESTStorageProvider
)
v1beta1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
version
:=
extensionsapiv1beta1
.
SchemeGroupVersion
storage
:=
map
[
string
]
rest
.
Storage
{}
...
...
pkg/master/storage_policy.go
View file @
a2a64235
...
...
@@ -26,9 +26,9 @@ import (
type
PolicyRESTStorageProvider
struct
{}
var
_
RESTStorageProvider
=
&
PolicyRESTStorageProvider
{}
var
_
genericapiserver
.
RESTStorageProvider
=
&
PolicyRESTStorageProvider
{}
func
(
p
PolicyRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
func
(
p
PolicyRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
apiGroupInfo
:=
genericapiserver
.
NewDefaultAPIGroupInfo
(
policy
.
GroupName
)
if
apiResourceConfigSource
.
AnyResourcesForVersionEnabled
(
policyapiv1alpha1
.
SchemeGroupVersion
)
{
...
...
@@ -39,7 +39,7 @@ func (p PolicyRESTStorageProvider) NewRESTStorage(apiResourceConfigSource generi
return
apiGroupInfo
,
true
}
func
(
p
PolicyRESTStorageProvider
)
v1alpha1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
func
(
p
PolicyRESTStorageProvider
)
v1alpha1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
version
:=
policyapiv1alpha1
.
SchemeGroupVersion
storage
:=
map
[
string
]
rest
.
Storage
{}
...
...
pkg/master/storage_storage.go
View file @
a2a64235
...
...
@@ -27,9 +27,9 @@ import (
type
StorageRESTStorageProvider
struct
{
}
var
_
RESTStorageProvider
=
&
StorageRESTStorageProvider
{}
var
_
genericapiserver
.
RESTStorageProvider
=
&
StorageRESTStorageProvider
{}
func
(
p
StorageRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
func
(
p
StorageRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
apiGroupInfo
:=
genericapiserver
.
NewDefaultAPIGroupInfo
(
storageapi
.
GroupName
)
if
apiResourceConfigSource
.
AnyResourcesForVersionEnabled
(
storageapiv1beta1
.
SchemeGroupVersion
)
{
...
...
@@ -40,7 +40,7 @@ func (p StorageRESTStorageProvider) NewRESTStorage(apiResourceConfigSource gener
return
apiGroupInfo
,
true
}
func
(
p
StorageRESTStorageProvider
)
v1beta1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
func
(
p
StorageRESTStorageProvider
)
v1beta1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
version
:=
storageapiv1beta1
.
SchemeGroupVersion
storage
:=
map
[
string
]
rest
.
Storage
{}
...
...
pkg/registry/clusterrole/doc.go
→
pkg/registry/
rbac/
clusterrole/doc.go
View file @
a2a64235
...
...
@@ -16,4 +16,4 @@ limitations under the License.
// Package certificates provides Registry interface and its RESTStorage
// implementation for storing ClusterRole objects.
package
clusterrole
// import "k8s.io/kubernetes/pkg/registry/clusterrole"
package
clusterrole
// import "k8s.io/kubernetes/pkg/registry/
rbac/
clusterrole"
pkg/registry/clusterrole/etcd/etcd.go
→
pkg/registry/
rbac/
clusterrole/etcd/etcd.go
View file @
a2a64235
...
...
@@ -20,9 +20,9 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/rbac"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/clusterrole"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
)
...
...
pkg/registry/clusterrole/policybased/storage.go
→
pkg/registry/
rbac/
clusterrole/policybased/storage.go
View file @
a2a64235
File moved
pkg/registry/clusterrole/registry.go
→
pkg/registry/
rbac/
clusterrole/registry.go
View file @
a2a64235
File moved
pkg/registry/clusterrole/strategy.go
→
pkg/registry/
rbac/
clusterrole/strategy.go
View file @
a2a64235
File moved
pkg/registry/clusterrolebinding/doc.go
→
pkg/registry/
rbac/
clusterrolebinding/doc.go
View file @
a2a64235
...
...
@@ -16,4 +16,4 @@ limitations under the License.
// Package certificates provides Registry interface and its RESTStorage
// implementation for storing ClusterRoleBinding objects.
package
clusterrolebinding
// import "k8s.io/kubernetes/pkg/registry/clusterrolebinding"
package
clusterrolebinding
// import "k8s.io/kubernetes/pkg/registry/
rbac/
clusterrolebinding"
pkg/registry/clusterrolebinding/etcd/etcd.go
→
pkg/registry/
rbac/
clusterrolebinding/etcd/etcd.go
View file @
a2a64235
...
...
@@ -20,9 +20,9 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/rbac"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/clusterrolebinding"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
)
...
...
pkg/registry/clusterrolebinding/policybased/storage.go
→
pkg/registry/
rbac/
clusterrolebinding/policybased/storage.go
View file @
a2a64235
File moved
pkg/registry/clusterrolebinding/registry.go
→
pkg/registry/
rbac/
clusterrolebinding/registry.go
View file @
a2a64235
File moved
pkg/registry/clusterrolebinding/strategy.go
→
pkg/registry/
rbac/
clusterrolebinding/strategy.go
View file @
a2a64235
File moved
pkg/registry/role/doc.go
→
pkg/registry/r
bac/r
ole/doc.go
View file @
a2a64235
...
...
@@ -16,4 +16,4 @@ limitations under the License.
// Package certificates provides Registry interface and its RESTStorage
// implementation for storing Role objects.
package
role
// import "k8s.io/kubernetes/pkg/registry/role"
package
role
// import "k8s.io/kubernetes/pkg/registry/r
bac/r
ole"
pkg/registry/role/etcd/etcd.go
→
pkg/registry/r
bac/r
ole/etcd/etcd.go
View file @
a2a64235
...
...
@@ -22,7 +22,7 @@ import (
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/role"
"k8s.io/kubernetes/pkg/registry/r
bac/r
ole"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
)
...
...
pkg/registry/role/policybased/storage.go
→
pkg/registry/r
bac/r
ole/policybased/storage.go
View file @
a2a64235
File moved
pkg/registry/role/registry.go
→
pkg/registry/r
bac/r
ole/registry.go
View file @
a2a64235
File moved
pkg/registry/role/strategy.go
→
pkg/registry/r
bac/r
ole/strategy.go
View file @
a2a64235
File moved
pkg/registry/rolebinding/doc.go
→
pkg/registry/r
bac/r
olebinding/doc.go
View file @
a2a64235
...
...
@@ -16,4 +16,4 @@ limitations under the License.
// Package certificates provides Registry interface and its RESTStorage
// implementation for storing RoleBinding objects.
package
rolebinding
// import "k8s.io/kubernetes/pkg/registry/rolebinding"
package
rolebinding
// import "k8s.io/kubernetes/pkg/registry/r
bac/r
olebinding"
pkg/registry/rolebinding/etcd/etcd.go
→
pkg/registry/r
bac/r
olebinding/etcd/etcd.go
View file @
a2a64235
...
...
@@ -22,7 +22,7 @@ import (
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/rolebinding"
"k8s.io/kubernetes/pkg/registry/r
bac/r
olebinding"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
)
...
...
pkg/registry/rolebinding/policybased/storage.go
→
pkg/registry/r
bac/r
olebinding/policybased/storage.go
View file @
a2a64235
File moved
pkg/registry/rolebinding/registry.go
→
pkg/registry/r
bac/r
olebinding/registry.go
View file @
a2a64235
File moved
pkg/registry/rolebinding/strategy.go
→
pkg/registry/r
bac/r
olebinding/strategy.go
View file @
a2a64235
File moved
pkg/
master
/storage_rbac.go
→
pkg/
registry/rbac/storage
/storage_rbac.go
View file @
a2a64235
...
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package
master
package
storage
import
(
"fmt"
...
...
@@ -28,32 +28,32 @@ import (
rbacapiv1alpha1
"k8s.io/kubernetes/pkg/apis/rbac/v1alpha1"
rbacvalidation
"k8s.io/kubernetes/pkg/apis/rbac/validation"
"k8s.io/kubernetes/pkg/genericapiserver"
"k8s.io/kubernetes/pkg/registry/clusterrole"
clusterroleetcd
"k8s.io/kubernetes/pkg/registry/clusterrole/etcd"
clusterrolepolicybased
"k8s.io/kubernetes/pkg/registry/clusterrole/policybased"
"k8s.io/kubernetes/pkg/registry/clusterrolebinding"
clusterrolebindingetcd
"k8s.io/kubernetes/pkg/registry/clusterrolebinding/etcd"
clusterrolebindingpolicybased
"k8s.io/kubernetes/pkg/registry/clusterrolebinding/policybased"
"k8s.io/kubernetes/pkg/registry/role"
roleetcd
"k8s.io/kubernetes/pkg/registry/role/etcd"
rolepolicybased
"k8s.io/kubernetes/pkg/registry/role/policybased"
"k8s.io/kubernetes/pkg/registry/rolebinding"
rolebindingetcd
"k8s.io/kubernetes/pkg/registry/rolebinding/etcd"
rolebindingpolicybased
"k8s.io/kubernetes/pkg/registry/rolebinding/policybased"
"k8s.io/kubernetes/pkg/registry/
rbac/
clusterrole"
clusterroleetcd
"k8s.io/kubernetes/pkg/registry/
rbac/
clusterrole/etcd"
clusterrolepolicybased
"k8s.io/kubernetes/pkg/registry/
rbac/
clusterrole/policybased"
"k8s.io/kubernetes/pkg/registry/
rbac/
clusterrolebinding"
clusterrolebindingetcd
"k8s.io/kubernetes/pkg/registry/
rbac/
clusterrolebinding/etcd"
clusterrolebindingpolicybased
"k8s.io/kubernetes/pkg/registry/
rbac/
clusterrolebinding/policybased"
"k8s.io/kubernetes/pkg/registry/r
bac/r
ole"
roleetcd
"k8s.io/kubernetes/pkg/registry/r
bac/r
ole/etcd"
rolepolicybased
"k8s.io/kubernetes/pkg/registry/r
bac/r
ole/policybased"
"k8s.io/kubernetes/pkg/registry/r
bac/r
olebinding"
rolebindingetcd
"k8s.io/kubernetes/pkg/registry/r
bac/r
olebinding/etcd"
rolebindingpolicybased
"k8s.io/kubernetes/pkg/registry/r
bac/r
olebinding/policybased"
utilruntime
"k8s.io/kubernetes/pkg/util/runtime"
"k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy"
)
type
R
BACR
ESTStorageProvider
struct
{
type
RESTStorageProvider
struct
{
AuthorizerRBACSuperUser
string
postStartHook
genericapiserver
.
PostStartHookFunc
}
var
_
RESTStorageProvider
=
&
RBAC
RESTStorageProvider
{}
var
_
PostStartHookProvider
=
&
RBAC
RESTStorageProvider
{}
var
_
genericapiserver
.
RESTStorageProvider
=
&
RESTStorageProvider
{}
var
_
genericapiserver
.
PostStartHookProvider
=
&
RESTStorageProvider
{}
func
(
p
*
R
BACRESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
func
(
p
*
R
ESTStorageProvider
)
NewRESTStorage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
(
genericapiserver
.
APIGroupInfo
,
bool
)
{
apiGroupInfo
:=
genericapiserver
.
NewDefaultAPIGroupInfo
(
rbac
.
GroupName
)
if
apiResourceConfigSource
.
AnyResourcesForVersionEnabled
(
rbacapiv1alpha1
.
SchemeGroupVersion
)
{
...
...
@@ -64,7 +64,7 @@ func (p *RBACRESTStorageProvider) NewRESTStorage(apiResourceConfigSource generic
return
apiGroupInfo
,
true
}
func
(
p
*
R
BACRESTStorageProvider
)
v1alpha1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
func
(
p
*
R
ESTStorageProvider
)
v1alpha1Storage
(
apiResourceConfigSource
genericapiserver
.
APIResourceConfigSource
,
restOptionsGetter
genericapiserver
.
RESTOptionsGetter
)
map
[
string
]
rest
.
Storage
{
version
:=
rbacapiv1alpha1
.
SchemeGroupVersion
once
:=
new
(
sync
.
Once
)
...
...
@@ -103,7 +103,7 @@ func (p *RBACRESTStorageProvider) v1alpha1Storage(apiResourceConfigSource generi
return
storage
}
func
(
p
*
R
BACR
ESTStorageProvider
)
PostStartHook
()
(
string
,
genericapiserver
.
PostStartHookFunc
,
error
)
{
func
(
p
*
RESTStorageProvider
)
PostStartHook
()
(
string
,
genericapiserver
.
PostStartHookFunc
,
error
)
{
return
"rbac/bootstrap-roles"
,
p
.
postStartHook
,
nil
}
...
...
plugin/pkg/auth/authorizer/rbac/rbac.go
View file @
a2a64235
...
...
@@ -22,10 +22,10 @@ import (
"k8s.io/kubernetes/pkg/apis/rbac/validation"
"k8s.io/kubernetes/pkg/auth/authorizer"
"k8s.io/kubernetes/pkg/auth/user"
"k8s.io/kubernetes/pkg/registry/clusterrole"
"k8s.io/kubernetes/pkg/registry/clusterrolebinding"
"k8s.io/kubernetes/pkg/registry/role"
"k8s.io/kubernetes/pkg/registry/rolebinding"
"k8s.io/kubernetes/pkg/registry/
rbac/
clusterrole"
"k8s.io/kubernetes/pkg/registry/
rbac/
clusterrolebinding"
"k8s.io/kubernetes/pkg/registry/r
bac/r
ole"
"k8s.io/kubernetes/pkg/registry/r
bac/r
olebinding"
)
type
RequestToRuleMapper
interface
{
...
...
test/integration/auth/rbac_test.go
View file @
a2a64235
...
...
@@ -47,15 +47,15 @@ import (
"k8s.io/kubernetes/pkg/client/restclient"
"k8s.io/kubernetes/pkg/client/transport"
"k8s.io/kubernetes/pkg/master"
"k8s.io/kubernetes/pkg/registry/clusterrole"
clusterroleetcd
"k8s.io/kubernetes/pkg/registry/clusterrole/etcd"
"k8s.io/kubernetes/pkg/registry/clusterrolebinding"
clusterrolebindingetcd
"k8s.io/kubernetes/pkg/registry/clusterrolebinding/etcd"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/role"
roleetcd
"k8s.io/kubernetes/pkg/registry/role/etcd"
"k8s.io/kubernetes/pkg/registry/rolebinding"
rolebindingetcd
"k8s.io/kubernetes/pkg/registry/rolebinding/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole"
clusterroleetcd
"k8s.io/kubernetes/pkg/registry/rbac/clusterrole/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding"
clusterrolebindingetcd
"k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/role"
roleetcd
"k8s.io/kubernetes/pkg/registry/rbac/role/etcd"
"k8s.io/kubernetes/pkg/registry/rbac/rolebinding"
rolebindingetcd
"k8s.io/kubernetes/pkg/registry/rbac/rolebinding/etcd"
"k8s.io/kubernetes/pkg/watch"
"k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac"
"k8s.io/kubernetes/test/integration/framework"
...
...
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