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
cb604f75
Commit
cb604f75
authored
May 15, 2017
by
deads2k
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
start using customresourcedefinition.status
parent
f88c7725
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
286 additions
and
83 deletions
+286
-83
BUILD
staging/src/k8s.io/client-go/tools/cache/BUILD
+2
-0
noxu-resource-definition.yaml
...artifacts/customresource-01/noxu-resource-definition.yaml
+1
-1
BUILD
...io/kube-apiextensions-server/pkg/apis/apiextensions/BUILD
+1
-0
helpers.go
...be-apiextensions-server/pkg/apis/apiextensions/helpers.go
+78
-0
BUILD
.../src/k8s.io/kube-apiextensions-server/pkg/apiserver/BUILD
+1
-0
apiserver.go
...s.io/kube-apiextensions-server/pkg/apiserver/apiserver.go
+6
-1
customresource_discovery_controller.go
...rver/pkg/apiserver/customresource_discovery_controller.go
+24
-21
customresource_handler.go
...extensions-server/pkg/apiserver/customresource_handler.go
+52
-49
BUILD
....io/kube-apiextensions-server/pkg/controller/status/BUILD
+44
-0
naming_controller.go
...ensions-server/pkg/controller/status/naming_controller.go
+0
-0
naming_controller_test.go
...ns-server/pkg/controller/status/naming_controller_test.go
+0
-0
BUILD
...nsions-server/pkg/registry/customresourcedefinition/BUILD
+1
-0
etcd.go
...ions-server/pkg/registry/customresourcedefinition/etcd.go
+27
-0
strategy.go
...-server/pkg/registry/customresourcedefinition/strategy.go
+49
-11
No files found.
staging/src/k8s.io/client-go/tools/cache/BUILD
View file @
cb604f75
...
@@ -53,6 +53,7 @@ go_library(
...
@@ -53,6 +53,7 @@ go_library(
"index.go",
"index.go",
"listers.go",
"listers.go",
"listwatch.go",
"listwatch.go",
"mutation_cache.go",
"mutation_detector.go",
"mutation_detector.go",
"reflector.go",
"reflector.go",
"shared_informer.go",
"shared_informer.go",
...
@@ -63,6 +64,7 @@ go_library(
...
@@ -63,6 +64,7 @@ go_library(
tags = ["automanaged"],
tags = ["automanaged"],
deps = [
deps = [
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/hashicorp/golang-lru:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
...
...
staging/src/k8s.io/kube-apiextensions-server/artifacts/customresource-01/noxu-resource-definition.yaml
View file @
cb604f75
apiVersion
:
apiextensions.k8s.io/v1alpha1
apiVersion
:
apiextensions.k8s.io/v1alpha1
kind
:
CustomResource
kind
:
CustomResource
Definition
metadata
:
metadata
:
name
:
noxus.mygroup.example.com
name
:
noxus.mygroup.example.com
spec
:
spec
:
...
...
staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/BUILD
View file @
cb604f75
...
@@ -11,6 +11,7 @@ go_library(
...
@@ -11,6 +11,7 @@ go_library(
name = "go_default_library",
name = "go_default_library",
srcs = [
srcs = [
"doc.go",
"doc.go",
"helpers.go",
"register.go",
"register.go",
"types.go",
"types.go",
"zz_generated.deepcopy.go",
"zz_generated.deepcopy.go",
...
...
staging/src/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/helpers.go
0 → 100644
View file @
cb604f75
/*
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
apiextensions
// SetCRDCondition sets the status condition. It either overwrites the existing one or
// creates a new one
func
SetCRDCondition
(
customResourceDefinition
*
CustomResourceDefinition
,
newCondition
CustomResourceDefinitionCondition
)
{
existingCondition
:=
FindCRDCondition
(
customResourceDefinition
,
newCondition
.
Type
)
if
existingCondition
==
nil
{
customResourceDefinition
.
Status
.
Conditions
=
append
(
customResourceDefinition
.
Status
.
Conditions
,
newCondition
)
return
}
if
existingCondition
.
Status
!=
newCondition
.
Status
{
existingCondition
.
Status
=
newCondition
.
Status
existingCondition
.
LastTransitionTime
=
newCondition
.
LastTransitionTime
}
existingCondition
.
Reason
=
newCondition
.
Reason
existingCondition
.
Message
=
newCondition
.
Message
}
// FindCRDCondition returns the condition you're looking for or nil
func
FindCRDCondition
(
customResourceDefinition
*
CustomResourceDefinition
,
conditionType
CustomResourceDefinitionConditionType
)
*
CustomResourceDefinitionCondition
{
for
i
:=
range
customResourceDefinition
.
Status
.
Conditions
{
if
customResourceDefinition
.
Status
.
Conditions
[
i
]
.
Type
==
conditionType
{
return
&
customResourceDefinition
.
Status
.
Conditions
[
i
]
}
}
return
nil
}
// IsCRDConditionTrue indicates if the condition is present and strictly true
func
IsCRDConditionTrue
(
customResourceDefinition
*
CustomResourceDefinition
,
conditionType
CustomResourceDefinitionConditionType
)
bool
{
return
IsCRDConditionPresentAndEqual
(
customResourceDefinition
,
conditionType
,
ConditionTrue
)
}
// IsCRDConditionFalse indicates if the condition is present and false true
func
IsCRDConditionFalse
(
customResourceDefinition
*
CustomResourceDefinition
,
conditionType
CustomResourceDefinitionConditionType
)
bool
{
return
IsCRDConditionPresentAndEqual
(
customResourceDefinition
,
conditionType
,
ConditionFalse
)
}
// IsCRDConditionPresentAndEqual indicates if the condition is present and equal to the arg
func
IsCRDConditionPresentAndEqual
(
customResourceDefinition
*
CustomResourceDefinition
,
conditionType
CustomResourceDefinitionConditionType
,
status
ConditionStatus
)
bool
{
for
_
,
condition
:=
range
customResourceDefinition
.
Status
.
Conditions
{
if
condition
.
Type
==
conditionType
{
return
condition
.
Status
==
status
}
}
return
false
}
// IsCRDConditionEquivalent returns true if the lhs and rhs are equivalent except for times
func
IsCRDConditionEquivalent
(
lhs
,
rhs
*
CustomResourceDefinitionCondition
)
bool
{
if
lhs
==
nil
&&
rhs
==
nil
{
return
true
}
if
lhs
==
nil
||
rhs
==
nil
{
return
false
}
return
lhs
.
Message
==
rhs
.
Message
&&
lhs
.
Reason
==
rhs
.
Reason
&&
lhs
.
Status
==
rhs
.
Status
&&
lhs
.
Type
==
rhs
.
Type
}
staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/BUILD
View file @
cb604f75
...
@@ -54,6 +54,7 @@ go_library(
...
@@ -54,6 +54,7 @@ go_library(
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/controller/status:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/registry/customresource:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/registry/customresource:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition:go_default_library",
],
],
...
...
staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/apiserver.go
View file @
cb604f75
...
@@ -37,6 +37,7 @@ import (
...
@@ -37,6 +37,7 @@ import (
"k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1"
"k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/v1alpha1"
"k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset"
"k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset"
internalinformers
"k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion"
internalinformers
"k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion"
"k8s.io/kube-apiextensions-server/pkg/controller/status"
"k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition"
"k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition"
// make sure the generated client works
// make sure the generated client works
...
@@ -113,8 +114,10 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
...
@@ -113,8 +114,10 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
apiGroupInfo
:=
genericapiserver
.
NewDefaultAPIGroupInfo
(
apiextensions
.
GroupName
,
registry
,
Scheme
,
metav1
.
ParameterCodec
,
Codecs
)
apiGroupInfo
:=
genericapiserver
.
NewDefaultAPIGroupInfo
(
apiextensions
.
GroupName
,
registry
,
Scheme
,
metav1
.
ParameterCodec
,
Codecs
)
apiGroupInfo
.
GroupMeta
.
GroupVersion
=
v1alpha1
.
SchemeGroupVersion
apiGroupInfo
.
GroupMeta
.
GroupVersion
=
v1alpha1
.
SchemeGroupVersion
customResourceDefintionStorage
:=
customresourcedefinition
.
NewREST
(
Scheme
,
c
.
GenericConfig
.
RESTOptionsGetter
)
v1alpha1storage
:=
map
[
string
]
rest
.
Storage
{}
v1alpha1storage
:=
map
[
string
]
rest
.
Storage
{}
v1alpha1storage
[
"customresourcedefinitions"
]
=
customresourcedefinition
.
NewREST
(
Scheme
,
c
.
GenericConfig
.
RESTOptionsGetter
)
v1alpha1storage
[
"customresourcedefinitions"
]
=
customResourceDefintionStorage
v1alpha1storage
[
"customresourcedefinitions/status"
]
=
customresourcedefinition
.
NewStatusREST
(
Scheme
,
customResourceDefintionStorage
)
apiGroupInfo
.
VersionedResourcesStorageMap
[
"v1alpha1"
]
=
v1alpha1storage
apiGroupInfo
.
VersionedResourcesStorageMap
[
"v1alpha1"
]
=
v1alpha1storage
if
err
:=
s
.
GenericAPIServer
.
InstallAPIGroup
(
&
apiGroupInfo
);
err
!=
nil
{
if
err
:=
s
.
GenericAPIServer
.
InstallAPIGroup
(
&
apiGroupInfo
);
err
!=
nil
{
...
@@ -153,6 +156,7 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
...
@@ -153,6 +156,7 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
s
.
GenericAPIServer
.
Handler
.
PostGoRestfulMux
.
HandlePrefix
(
"/apis/"
,
customResourceDefinitionHandler
)
s
.
GenericAPIServer
.
Handler
.
PostGoRestfulMux
.
HandlePrefix
(
"/apis/"
,
customResourceDefinitionHandler
)
customResourceDefinitionController
:=
NewDiscoveryController
(
customResourceDefinitionInformers
.
Apiextensions
()
.
InternalVersion
()
.
CustomResourceDefinitions
(),
versionDiscoveryHandler
,
groupDiscoveryHandler
)
customResourceDefinitionController
:=
NewDiscoveryController
(
customResourceDefinitionInformers
.
Apiextensions
()
.
InternalVersion
()
.
CustomResourceDefinitions
(),
versionDiscoveryHandler
,
groupDiscoveryHandler
)
namingController
:=
status
.
NewNamingConditionController
(
customResourceDefinitionInformers
.
Apiextensions
()
.
InternalVersion
()
.
CustomResourceDefinitions
(),
customResourceDefinitionClient
)
s
.
GenericAPIServer
.
AddPostStartHook
(
"start-apiextensions-informers"
,
func
(
context
genericapiserver
.
PostStartHookContext
)
error
{
s
.
GenericAPIServer
.
AddPostStartHook
(
"start-apiextensions-informers"
,
func
(
context
genericapiserver
.
PostStartHookContext
)
error
{
customResourceDefinitionInformers
.
Start
(
context
.
StopCh
)
customResourceDefinitionInformers
.
Start
(
context
.
StopCh
)
...
@@ -160,6 +164,7 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
...
@@ -160,6 +164,7 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
})
})
s
.
GenericAPIServer
.
AddPostStartHook
(
"start-apiextensions-controllers"
,
func
(
context
genericapiserver
.
PostStartHookContext
)
error
{
s
.
GenericAPIServer
.
AddPostStartHook
(
"start-apiextensions-controllers"
,
func
(
context
genericapiserver
.
PostStartHookContext
)
error
{
go
customResourceDefinitionController
.
Run
(
context
.
StopCh
)
go
customResourceDefinitionController
.
Run
(
context
.
StopCh
)
go
namingController
.
Run
(
context
.
StopCh
)
return
nil
return
nil
})
})
...
...
staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/customresource_discovery_controller.go
View file @
cb604f75
...
@@ -40,8 +40,8 @@ type DiscoveryController struct {
...
@@ -40,8 +40,8 @@ type DiscoveryController struct {
versionHandler
*
versionDiscoveryHandler
versionHandler
*
versionDiscoveryHandler
groupHandler
*
groupDiscoveryHandler
groupHandler
*
groupDiscoveryHandler
c
ustomResourceDefinition
Lister
listers
.
CustomResourceDefinitionLister
c
rd
Lister
listers
.
CustomResourceDefinitionLister
c
ustomResourceDefinition
sSynced
cache
.
InformerSynced
c
rd
sSynced
cache
.
InformerSynced
// To allow injection for testing.
// To allow injection for testing.
syncFn
func
(
version
schema
.
GroupVersion
)
error
syncFn
func
(
version
schema
.
GroupVersion
)
error
...
@@ -49,17 +49,17 @@ type DiscoveryController struct {
...
@@ -49,17 +49,17 @@ type DiscoveryController struct {
queue
workqueue
.
RateLimitingInterface
queue
workqueue
.
RateLimitingInterface
}
}
func
NewDiscoveryController
(
c
ustomResourceDefinition
Informer
informers
.
CustomResourceDefinitionInformer
,
versionHandler
*
versionDiscoveryHandler
,
groupHandler
*
groupDiscoveryHandler
)
*
DiscoveryController
{
func
NewDiscoveryController
(
c
rd
Informer
informers
.
CustomResourceDefinitionInformer
,
versionHandler
*
versionDiscoveryHandler
,
groupHandler
*
groupDiscoveryHandler
)
*
DiscoveryController
{
c
:=
&
DiscoveryController
{
c
:=
&
DiscoveryController
{
versionHandler
:
versionHandler
,
versionHandler
:
versionHandler
,
groupHandler
:
groupHandler
,
groupHandler
:
groupHandler
,
c
ustomResourceDefinitionLister
:
customResourceDefinition
Informer
.
Lister
(),
c
rdLister
:
crd
Informer
.
Lister
(),
c
ustomResourceDefinitionsSynced
:
customResourceDefinition
Informer
.
Informer
()
.
HasSynced
,
c
rdsSynced
:
crd
Informer
.
Informer
()
.
HasSynced
,
queue
:
workqueue
.
NewNamedRateLimitingQueue
(
workqueue
.
DefaultControllerRateLimiter
(),
"DiscoveryController"
),
queue
:
workqueue
.
NewNamedRateLimitingQueue
(
workqueue
.
DefaultControllerRateLimiter
(),
"DiscoveryController"
),
}
}
c
ustomResourceDefinition
Informer
.
Informer
()
.
AddEventHandler
(
cache
.
ResourceEventHandlerFuncs
{
c
rd
Informer
.
Informer
()
.
AddEventHandler
(
cache
.
ResourceEventHandlerFuncs
{
AddFunc
:
c
.
addCustomResourceDefinition
,
AddFunc
:
c
.
addCustomResourceDefinition
,
UpdateFunc
:
c
.
updateCustomResourceDefinition
,
UpdateFunc
:
c
.
updateCustomResourceDefinition
,
DeleteFunc
:
c
.
deleteCustomResourceDefinition
,
DeleteFunc
:
c
.
deleteCustomResourceDefinition
,
...
@@ -75,36 +75,39 @@ func (c *DiscoveryController) sync(version schema.GroupVersion) error {
...
@@ -75,36 +75,39 @@ func (c *DiscoveryController) sync(version schema.GroupVersion) error {
apiVersionsForDiscovery
:=
[]
metav1
.
GroupVersionForDiscovery
{}
apiVersionsForDiscovery
:=
[]
metav1
.
GroupVersionForDiscovery
{}
apiResourcesForDiscovery
:=
[]
metav1
.
APIResource
{}
apiResourcesForDiscovery
:=
[]
metav1
.
APIResource
{}
c
ustomResourceDefinitions
,
err
:=
c
.
customResourceDefinition
Lister
.
List
(
labels
.
Everything
())
c
rds
,
err
:=
c
.
crd
Lister
.
List
(
labels
.
Everything
())
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
foundVersion
:=
false
foundVersion
:=
false
foundGroup
:=
false
foundGroup
:=
false
for
_
,
customResourceDefinition
:=
range
customResourceDefinitions
{
for
_
,
crd
:=
range
crds
{
// TODO add status checking
// if we can't definitively determine that our names are good, don't serve it
if
!
apiextensions
.
IsCRDConditionFalse
(
crd
,
apiextensions
.
NameConflict
)
{
continue
}
if
c
ustomResourceDefinition
.
Spec
.
Group
!=
version
.
Group
{
if
c
rd
.
Spec
.
Group
!=
version
.
Group
{
continue
continue
}
}
foundGroup
=
true
foundGroup
=
true
apiVersionsForDiscovery
=
append
(
apiVersionsForDiscovery
,
metav1
.
GroupVersionForDiscovery
{
apiVersionsForDiscovery
=
append
(
apiVersionsForDiscovery
,
metav1
.
GroupVersionForDiscovery
{
GroupVersion
:
c
ustomResourceDefinition
.
Spec
.
Group
+
"/"
+
customResourceDefinition
.
Spec
.
Version
,
GroupVersion
:
c
rd
.
Spec
.
Group
+
"/"
+
crd
.
Spec
.
Version
,
Version
:
c
ustomResourceDefinition
.
Spec
.
Version
,
Version
:
c
rd
.
Spec
.
Version
,
})
})
if
c
ustomResourceDefinition
.
Spec
.
Version
!=
version
.
Version
{
if
c
rd
.
Spec
.
Version
!=
version
.
Version
{
continue
continue
}
}
foundVersion
=
true
foundVersion
=
true
apiResourcesForDiscovery
=
append
(
apiResourcesForDiscovery
,
metav1
.
APIResource
{
apiResourcesForDiscovery
=
append
(
apiResourcesForDiscovery
,
metav1
.
APIResource
{
Name
:
c
ustomResourceDefinition
.
Spec
.
Names
.
Plural
,
Name
:
c
rd
.
Status
.
Accepted
Names
.
Plural
,
SingularName
:
c
ustomResourceDefinition
.
Spec
.
Names
.
Singular
,
SingularName
:
c
rd
.
Status
.
Accepted
Names
.
Singular
,
Namespaced
:
c
ustomResourceDefinition
.
Spec
.
Scope
==
apiextensions
.
NamespaceScoped
,
Namespaced
:
c
rd
.
Spec
.
Scope
==
apiextensions
.
NamespaceScoped
,
Kind
:
c
ustomResourceDefinition
.
Spec
.
Names
.
Kind
,
Kind
:
c
rd
.
Status
.
Accepted
Names
.
Kind
,
Verbs
:
metav1
.
Verbs
([]
string
{
"delete"
,
"deletecollection"
,
"get"
,
"list"
,
"patch"
,
"create"
,
"update"
,
"watch"
}),
Verbs
:
metav1
.
Verbs
([]
string
{
"delete"
,
"deletecollection"
,
"get"
,
"list"
,
"patch"
,
"create"
,
"update"
,
"watch"
}),
ShortNames
:
c
ustomResourceDefinition
.
Spec
.
Names
.
ShortNames
,
ShortNames
:
c
rd
.
Status
.
Accepted
Names
.
ShortNames
,
})
})
}
}
...
@@ -140,7 +143,7 @@ func (c *DiscoveryController) Run(stopCh <-chan struct{}) {
...
@@ -140,7 +143,7 @@ func (c *DiscoveryController) Run(stopCh <-chan struct{}) {
glog
.
Infof
(
"Starting DiscoveryController"
)
glog
.
Infof
(
"Starting DiscoveryController"
)
if
!
cache
.
WaitForCacheSync
(
stopCh
,
c
.
c
ustomResourceDefinition
sSynced
)
{
if
!
cache
.
WaitForCacheSync
(
stopCh
,
c
.
c
rd
sSynced
)
{
utilruntime
.
HandleError
(
fmt
.
Errorf
(
"timed out waiting for caches to sync"
))
utilruntime
.
HandleError
(
fmt
.
Errorf
(
"timed out waiting for caches to sync"
))
return
return
}
}
...
...
staging/src/k8s.io/kube-apiextensions-server/pkg/apiserver/customresource_handler.go
View file @
cb604f75
This diff is collapsed.
Click to expand it.
staging/src/k8s.io/kube-apiextensions-server/pkg/controller/status/BUILD
0 → 100644
View file @
cb604f75
package(default_visibility = ["//visibility:public"])
licenses(["notice"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
"go_test",
)
go_test(
name = "go_default_test",
srcs = ["naming_controller_test.go"],
library = ":go_default_library",
tags = ["automanaged"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/client-go/tools/cache:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion:go_default_library",
],
)
go_library(
name = "go_default_library",
srcs = ["naming_controller.go"],
tags = ["automanaged"],
deps = [
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//vendor/k8s.io/client-go/tools/cache:go_default_library",
"//vendor/k8s.io/client-go/util/workqueue:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/informers/internalversion/apiextensions/internalversion:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/client/listers/apiextensions/internalversion:go_default_library",
],
)
staging/src/k8s.io/kube-apiextensions-server/pkg/controller/status/naming_controller.go
0 → 100644
View file @
cb604f75
This diff is collapsed.
Click to expand it.
staging/src/k8s.io/kube-apiextensions-server/pkg/controller/status/naming_controller_test.go
0 → 100644
View file @
cb604f75
This diff is collapsed.
Click to expand it.
staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/BUILD
View file @
cb604f75
...
@@ -22,6 +22,7 @@ go_library(
...
@@ -22,6 +22,7 @@ go_library(
"//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
"//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
"//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library",
"//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library",
"//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library",
"//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library",
"//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library",
"//vendor/k8s.io/apiserver/pkg/storage:go_default_library",
"//vendor/k8s.io/apiserver/pkg/storage:go_default_library",
"//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library",
"//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions:go_default_library",
"//vendor/k8s.io/kube-apiextensions-server/pkg/apis/apiextensions:go_default_library",
...
...
staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/etcd.go
View file @
cb604f75
...
@@ -18,8 +18,10 @@ package customresourcedefinition
...
@@ -18,8 +18,10 @@ package customresourcedefinition
import
(
import
(
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/registry/generic"
"k8s.io/apiserver/pkg/registry/generic"
genericregistry
"k8s.io/apiserver/pkg/registry/generic/registry"
genericregistry
"k8s.io/apiserver/pkg/registry/generic/registry"
"k8s.io/apiserver/pkg/registry/rest"
"k8s.io/kube-apiextensions-server/pkg/apis/apiextensions"
"k8s.io/kube-apiextensions-server/pkg/apis/apiextensions"
)
)
...
@@ -52,3 +54,28 @@ func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST
...
@@ -52,3 +54,28 @@ func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST
}
}
return
&
REST
{
store
}
return
&
REST
{
store
}
}
}
// NewStatusREST makes a RESTStorage for status that has more limited options.
// It is based on the original REST so that we can share the same underlying store
func
NewStatusREST
(
scheme
*
runtime
.
Scheme
,
rest
*
REST
)
*
StatusREST
{
statusStore
:=
*
rest
.
Store
statusStore
.
CreateStrategy
=
nil
statusStore
.
DeleteStrategy
=
nil
statusStore
.
UpdateStrategy
=
NewStatusStrategy
(
scheme
)
return
&
StatusREST
{
store
:
&
statusStore
}
}
type
StatusREST
struct
{
store
*
genericregistry
.
Store
}
var
_
=
rest
.
Updater
(
&
StatusREST
{})
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
return
&
apiextensions
.
CustomResourceDefinition
{}
}
// Update alters the status subset of an object.
func
(
r
*
StatusREST
)
Update
(
ctx
genericapirequest
.
Context
,
name
string
,
objInfo
rest
.
UpdatedObjectInfo
)
(
runtime
.
Object
,
bool
,
error
)
{
return
r
.
store
.
Update
(
ctx
,
name
,
objInfo
)
}
staging/src/k8s.io/kube-apiextensions-server/pkg/registry/customresourcedefinition/strategy.go
View file @
cb604f75
...
@@ -32,44 +32,82 @@ import (
...
@@ -32,44 +32,82 @@ import (
"k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation"
"k8s.io/kube-apiextensions-server/pkg/apis/apiextensions/validation"
)
)
type
apiServerS
trategy
struct
{
type
s
trategy
struct
{
runtime
.
ObjectTyper
runtime
.
ObjectTyper
names
.
NameGenerator
names
.
NameGenerator
}
}
func
NewStrategy
(
typer
runtime
.
ObjectTyper
)
apiServerS
trategy
{
func
NewStrategy
(
typer
runtime
.
ObjectTyper
)
s
trategy
{
return
apiServerS
trategy
{
typer
,
names
.
SimpleNameGenerator
}
return
s
trategy
{
typer
,
names
.
SimpleNameGenerator
}
}
}
func
(
apiServerS
trategy
)
NamespaceScoped
()
bool
{
func
(
s
trategy
)
NamespaceScoped
()
bool
{
return
false
return
false
}
}
func
(
apiServerS
trategy
)
PrepareForCreate
(
ctx
genericapirequest
.
Context
,
obj
runtime
.
Object
)
{
func
(
s
trategy
)
PrepareForCreate
(
ctx
genericapirequest
.
Context
,
obj
runtime
.
Object
)
{
}
}
func
(
apiServerS
trategy
)
PrepareForUpdate
(
ctx
genericapirequest
.
Context
,
obj
,
old
runtime
.
Object
)
{
func
(
s
trategy
)
PrepareForUpdate
(
ctx
genericapirequest
.
Context
,
obj
,
old
runtime
.
Object
)
{
}
}
func
(
apiServerS
trategy
)
Validate
(
ctx
genericapirequest
.
Context
,
obj
runtime
.
Object
)
field
.
ErrorList
{
func
(
s
trategy
)
Validate
(
ctx
genericapirequest
.
Context
,
obj
runtime
.
Object
)
field
.
ErrorList
{
return
validation
.
ValidateCustomResourceDefinition
(
obj
.
(
*
apiextensions
.
CustomResourceDefinition
))
return
validation
.
ValidateCustomResourceDefinition
(
obj
.
(
*
apiextensions
.
CustomResourceDefinition
))
}
}
func
(
apiServerS
trategy
)
AllowCreateOnUpdate
()
bool
{
func
(
s
trategy
)
AllowCreateOnUpdate
()
bool
{
return
false
return
false
}
}
func
(
apiServerS
trategy
)
AllowUnconditionalUpdate
()
bool
{
func
(
s
trategy
)
AllowUnconditionalUpdate
()
bool
{
return
false
return
false
}
}
func
(
apiServerS
trategy
)
Canonicalize
(
obj
runtime
.
Object
)
{
func
(
s
trategy
)
Canonicalize
(
obj
runtime
.
Object
)
{
}
}
func
(
apiServerS
trategy
)
ValidateUpdate
(
ctx
genericapirequest
.
Context
,
obj
,
old
runtime
.
Object
)
field
.
ErrorList
{
func
(
s
trategy
)
ValidateUpdate
(
ctx
genericapirequest
.
Context
,
obj
,
old
runtime
.
Object
)
field
.
ErrorList
{
return
validation
.
ValidateCustomResourceDefinitionUpdate
(
obj
.
(
*
apiextensions
.
CustomResourceDefinition
),
old
.
(
*
apiextensions
.
CustomResourceDefinition
))
return
validation
.
ValidateCustomResourceDefinitionUpdate
(
obj
.
(
*
apiextensions
.
CustomResourceDefinition
),
old
.
(
*
apiextensions
.
CustomResourceDefinition
))
}
}
type
statusStrategy
struct
{
runtime
.
ObjectTyper
names
.
NameGenerator
}
func
NewStatusStrategy
(
typer
runtime
.
ObjectTyper
)
statusStrategy
{
return
statusStrategy
{
typer
,
names
.
SimpleNameGenerator
}
}
func
(
statusStrategy
)
NamespaceScoped
()
bool
{
return
false
}
func
(
statusStrategy
)
PrepareForUpdate
(
ctx
genericapirequest
.
Context
,
obj
,
old
runtime
.
Object
)
{
newObj
:=
obj
.
(
*
apiextensions
.
CustomResourceDefinition
)
oldObj
:=
old
.
(
*
apiextensions
.
CustomResourceDefinition
)
newObj
.
Spec
=
oldObj
.
Spec
newObj
.
Labels
=
oldObj
.
Labels
newObj
.
Annotations
=
oldObj
.
Annotations
newObj
.
Finalizers
=
oldObj
.
Finalizers
newObj
.
OwnerReferences
=
oldObj
.
OwnerReferences
}
func
(
statusStrategy
)
AllowCreateOnUpdate
()
bool
{
return
false
}
func
(
statusStrategy
)
AllowUnconditionalUpdate
()
bool
{
return
false
}
func
(
statusStrategy
)
Canonicalize
(
obj
runtime
.
Object
)
{
}
func
(
statusStrategy
)
ValidateUpdate
(
ctx
genericapirequest
.
Context
,
obj
,
old
runtime
.
Object
)
field
.
ErrorList
{
return
validation
.
ValidateUpdateCustomResourceDefinitionStatus
(
obj
.
(
*
apiextensions
.
CustomResourceDefinition
),
old
.
(
*
apiextensions
.
CustomResourceDefinition
))
}
func
GetAttrs
(
obj
runtime
.
Object
)
(
labels
.
Set
,
fields
.
Set
,
error
)
{
func
GetAttrs
(
obj
runtime
.
Object
)
(
labels
.
Set
,
fields
.
Set
,
error
)
{
apiserver
,
ok
:=
obj
.
(
*
apiextensions
.
CustomResourceDefinition
)
apiserver
,
ok
:=
obj
.
(
*
apiextensions
.
CustomResourceDefinition
)
if
!
ok
{
if
!
ok
{
...
...
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