mirror of
https://github.com/rancher/norman.git
synced 2025-09-23 03:59:29 +00:00
59 lines
2.2 KiB
Go
59 lines
2.2 KiB
Go
![]() |
/*
|
||
|
Copyright 2014 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 options
|
||
|
|
||
|
// This file exists to force the desired plugin implementations to be linked.
|
||
|
// This should probably be part of some configuration fed into the build for a
|
||
|
// given binary target.
|
||
|
import (
|
||
|
// Admission policies
|
||
|
"k8s.io/kubernetes/plugin/pkg/admission/serviceaccount"
|
||
|
"k8s.io/kubernetes/plugin/pkg/admission/storage/storageclass/setdefault"
|
||
|
"k8s.io/kubernetes/plugin/pkg/admission/storage/storageobjectinuseprotection"
|
||
|
|
||
|
"k8s.io/apimachinery/pkg/util/sets"
|
||
|
"k8s.io/apiserver/pkg/admission"
|
||
|
"k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle"
|
||
|
)
|
||
|
|
||
|
// AllOrderedPlugins is the list of all the plugins in order.
|
||
|
var AllOrderedPlugins = []string{
|
||
|
lifecycle.PluginName, // NamespaceLifecycle
|
||
|
serviceaccount.PluginName, // ServiceAccount
|
||
|
setdefault.PluginName, // DefaultStorageClass
|
||
|
storageobjectinuseprotection.PluginName, // StorageObjectInUseProtection
|
||
|
}
|
||
|
|
||
|
// RegisterAllAdmissionPlugins registers all admission plugins and
|
||
|
// sets the recommended plugins order.
|
||
|
func RegisterAllAdmissionPlugins(plugins *admission.Plugins) {
|
||
|
serviceaccount.Register(plugins)
|
||
|
setdefault.Register(plugins)
|
||
|
storageobjectinuseprotection.Register(plugins)
|
||
|
}
|
||
|
|
||
|
// DefaultOffAdmissionPlugins get admission plugins off by default for kube-apiserver.
|
||
|
func DefaultOffAdmissionPlugins() sets.String {
|
||
|
defaultOnPlugins := sets.NewString(
|
||
|
lifecycle.PluginName, //NamespaceLifecycle
|
||
|
serviceaccount.PluginName, //ServiceAccount
|
||
|
setdefault.PluginName, //DefaultStorageClass
|
||
|
)
|
||
|
|
||
|
return sets.NewString(AllOrderedPlugins...).Difference(defaultOnPlugins)
|
||
|
}
|