mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 19:01:49 +00:00
Merge pull request #84275 from liggitt/beta-gate-runtimeclass-informers
Feature-gate RuntimeClass informer starts
This commit is contained in:
commit
0c88c4893f
@ -55,8 +55,6 @@ import (
|
|||||||
"k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle"
|
"k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle"
|
||||||
mutatingwebhook "k8s.io/apiserver/pkg/admission/plugin/webhook/mutating"
|
mutatingwebhook "k8s.io/apiserver/pkg/admission/plugin/webhook/mutating"
|
||||||
validatingwebhook "k8s.io/apiserver/pkg/admission/plugin/webhook/validating"
|
validatingwebhook "k8s.io/apiserver/pkg/admission/plugin/webhook/validating"
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
|
||||||
"k8s.io/kubernetes/pkg/features"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// AllOrderedPlugins is the list of all the plugins in order.
|
// AllOrderedPlugins is the list of all the plugins in order.
|
||||||
@ -143,11 +141,8 @@ func DefaultOffAdmissionPlugins() sets.String {
|
|||||||
storageobjectinuseprotection.PluginName, //StorageObjectInUseProtection
|
storageobjectinuseprotection.PluginName, //StorageObjectInUseProtection
|
||||||
podpriority.PluginName, //PodPriority
|
podpriority.PluginName, //PodPriority
|
||||||
nodetaint.PluginName, //TaintNodesByCondition
|
nodetaint.PluginName, //TaintNodesByCondition
|
||||||
|
runtimeclass.PluginName, //RuntimeClass, gates internally on the feature
|
||||||
)
|
)
|
||||||
|
|
||||||
if utilfeature.DefaultFeatureGate.Enabled(features.RuntimeClass) {
|
|
||||||
defaultOnPlugins.Insert(runtimeclass.PluginName) //RuntimeClass
|
|
||||||
}
|
|
||||||
|
|
||||||
return sets.NewString(AllOrderedPlugins...).Difference(defaultOnPlugins)
|
return sets.NewString(AllOrderedPlugins...).Difference(defaultOnPlugins)
|
||||||
}
|
}
|
||||||
|
@ -67,6 +67,9 @@ var _ genericadmissioninitailizer.WantsExternalKubeInformerFactory = &RuntimeCla
|
|||||||
|
|
||||||
// SetExternalKubeInformerFactory implements the WantsExternalKubeInformerFactory interface.
|
// SetExternalKubeInformerFactory implements the WantsExternalKubeInformerFactory interface.
|
||||||
func (r *RuntimeClass) SetExternalKubeInformerFactory(f informers.SharedInformerFactory) {
|
func (r *RuntimeClass) SetExternalKubeInformerFactory(f informers.SharedInformerFactory) {
|
||||||
|
if !utilfeature.DefaultFeatureGate.Enabled(features.RuntimeClass) {
|
||||||
|
return
|
||||||
|
}
|
||||||
runtimeClassInformer := f.Node().V1beta1().RuntimeClasses()
|
runtimeClassInformer := f.Node().V1beta1().RuntimeClasses()
|
||||||
r.SetReadyFunc(runtimeClassInformer.Informer().HasSynced)
|
r.SetReadyFunc(runtimeClassInformer.Informer().HasSynced)
|
||||||
r.runtimeClassLister = runtimeClassInformer.Lister()
|
r.runtimeClassLister = runtimeClassInformer.Lister()
|
||||||
@ -74,6 +77,9 @@ func (r *RuntimeClass) SetExternalKubeInformerFactory(f informers.SharedInformer
|
|||||||
|
|
||||||
// ValidateInitialization implements the WantsExternalKubeInformerFactory interface.
|
// ValidateInitialization implements the WantsExternalKubeInformerFactory interface.
|
||||||
func (r *RuntimeClass) ValidateInitialization() error {
|
func (r *RuntimeClass) ValidateInitialization() error {
|
||||||
|
if !utilfeature.DefaultFeatureGate.Enabled(features.RuntimeClass) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
if r.runtimeClassLister == nil {
|
if r.runtimeClassLister == nil {
|
||||||
return fmt.Errorf("missing RuntimeClass lister")
|
return fmt.Errorf("missing RuntimeClass lister")
|
||||||
}
|
}
|
||||||
@ -110,6 +116,10 @@ func (r *RuntimeClass) Admit(ctx context.Context, attributes admission.Attribute
|
|||||||
|
|
||||||
// Validate makes sure that pod adhere's to RuntimeClass's definition
|
// Validate makes sure that pod adhere's to RuntimeClass's definition
|
||||||
func (r *RuntimeClass) Validate(ctx context.Context, attributes admission.Attributes, o admission.ObjectInterfaces) error {
|
func (r *RuntimeClass) Validate(ctx context.Context, attributes admission.Attributes, o admission.ObjectInterfaces) error {
|
||||||
|
if !utilfeature.DefaultFeatureGate.Enabled(features.RuntimeClass) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// Ignore all calls to subresources or resources other than pods.
|
// Ignore all calls to subresources or resources other than pods.
|
||||||
if shouldIgnore(attributes) {
|
if shouldIgnore(attributes) {
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user