1
16
17 package options
18
19
20
21
22 import (
23 validatingadmissionpolicy "k8s.io/apiserver/pkg/admission/plugin/policy/validating"
24
25 "k8s.io/kubernetes/plugin/pkg/admission/admit"
26 "k8s.io/kubernetes/plugin/pkg/admission/alwayspullimages"
27 "k8s.io/kubernetes/plugin/pkg/admission/antiaffinity"
28 certapproval "k8s.io/kubernetes/plugin/pkg/admission/certificates/approval"
29 "k8s.io/kubernetes/plugin/pkg/admission/certificates/ctbattest"
30 certsigning "k8s.io/kubernetes/plugin/pkg/admission/certificates/signing"
31 certsubjectrestriction "k8s.io/kubernetes/plugin/pkg/admission/certificates/subjectrestriction"
32 "k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds"
33 "k8s.io/kubernetes/plugin/pkg/admission/deny"
34 "k8s.io/kubernetes/plugin/pkg/admission/eventratelimit"
35 "k8s.io/kubernetes/plugin/pkg/admission/extendedresourcetoleration"
36 "k8s.io/kubernetes/plugin/pkg/admission/gc"
37 "k8s.io/kubernetes/plugin/pkg/admission/imagepolicy"
38 "k8s.io/kubernetes/plugin/pkg/admission/limitranger"
39 "k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision"
40 "k8s.io/kubernetes/plugin/pkg/admission/namespace/exists"
41 "k8s.io/kubernetes/plugin/pkg/admission/network/defaultingressclass"
42 "k8s.io/kubernetes/plugin/pkg/admission/network/denyserviceexternalips"
43 "k8s.io/kubernetes/plugin/pkg/admission/noderestriction"
44 "k8s.io/kubernetes/plugin/pkg/admission/nodetaint"
45 "k8s.io/kubernetes/plugin/pkg/admission/podnodeselector"
46 "k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction"
47 podpriority "k8s.io/kubernetes/plugin/pkg/admission/priority"
48 "k8s.io/kubernetes/plugin/pkg/admission/runtimeclass"
49 "k8s.io/kubernetes/plugin/pkg/admission/security/podsecurity"
50 "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount"
51 "k8s.io/kubernetes/plugin/pkg/admission/storage/persistentvolume/label"
52 "k8s.io/kubernetes/plugin/pkg/admission/storage/persistentvolume/resize"
53 "k8s.io/kubernetes/plugin/pkg/admission/storage/storageclass/setdefault"
54 "k8s.io/kubernetes/plugin/pkg/admission/storage/storageobjectinuseprotection"
55
56 "k8s.io/apimachinery/pkg/util/sets"
57 "k8s.io/apiserver/pkg/admission"
58 "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle"
59 "k8s.io/apiserver/pkg/admission/plugin/resourcequota"
60 mutatingwebhook "k8s.io/apiserver/pkg/admission/plugin/webhook/mutating"
61 validatingwebhook "k8s.io/apiserver/pkg/admission/plugin/webhook/validating"
62 )
63
64
65 var AllOrderedPlugins = []string{
66 admit.PluginName,
67 autoprovision.PluginName,
68 lifecycle.PluginName,
69 exists.PluginName,
70 antiaffinity.PluginName,
71 limitranger.PluginName,
72 serviceaccount.PluginName,
73 noderestriction.PluginName,
74 nodetaint.PluginName,
75 alwayspullimages.PluginName,
76 imagepolicy.PluginName,
77 podsecurity.PluginName,
78 podnodeselector.PluginName,
79 podpriority.PluginName,
80 defaulttolerationseconds.PluginName,
81 podtolerationrestriction.PluginName,
82 eventratelimit.PluginName,
83 extendedresourcetoleration.PluginName,
84 label.PluginName,
85 setdefault.PluginName,
86 storageobjectinuseprotection.PluginName,
87 gc.PluginName,
88 resize.PluginName,
89 runtimeclass.PluginName,
90 certapproval.PluginName,
91 certsigning.PluginName,
92 ctbattest.PluginName,
93 certsubjectrestriction.PluginName,
94 defaultingressclass.PluginName,
95 denyserviceexternalips.PluginName,
96
97
98
99
100 mutatingwebhook.PluginName,
101 validatingadmissionpolicy.PluginName,
102 validatingwebhook.PluginName,
103 resourcequota.PluginName,
104 deny.PluginName,
105 }
106
107
108
109 func RegisterAllAdmissionPlugins(plugins *admission.Plugins) {
110 admit.Register(plugins)
111 alwayspullimages.Register(plugins)
112 antiaffinity.Register(plugins)
113 defaulttolerationseconds.Register(plugins)
114 defaultingressclass.Register(plugins)
115 denyserviceexternalips.Register(plugins)
116 deny.Register(plugins)
117 eventratelimit.Register(plugins)
118 extendedresourcetoleration.Register(plugins)
119 gc.Register(plugins)
120 imagepolicy.Register(plugins)
121 limitranger.Register(plugins)
122 autoprovision.Register(plugins)
123 exists.Register(plugins)
124 noderestriction.Register(plugins)
125 nodetaint.Register(plugins)
126 label.Register(plugins)
127 podnodeselector.Register(plugins)
128 podtolerationrestriction.Register(plugins)
129 runtimeclass.Register(plugins)
130 resourcequota.Register(plugins)
131 podsecurity.Register(plugins)
132 podpriority.Register(plugins)
133 serviceaccount.Register(plugins)
134 setdefault.Register(plugins)
135 resize.Register(plugins)
136 storageobjectinuseprotection.Register(plugins)
137 certapproval.Register(plugins)
138 certsigning.Register(plugins)
139 ctbattest.Register(plugins)
140 certsubjectrestriction.Register(plugins)
141 }
142
143
144 func DefaultOffAdmissionPlugins() sets.String {
145 defaultOnPlugins := sets.NewString(
146 lifecycle.PluginName,
147 limitranger.PluginName,
148 serviceaccount.PluginName,
149 setdefault.PluginName,
150 resize.PluginName,
151 defaulttolerationseconds.PluginName,
152 mutatingwebhook.PluginName,
153 validatingwebhook.PluginName,
154 resourcequota.PluginName,
155 storageobjectinuseprotection.PluginName,
156 podpriority.PluginName,
157 nodetaint.PluginName,
158 runtimeclass.PluginName,
159 certapproval.PluginName,
160 certsigning.PluginName,
161 ctbattest.PluginName,
162 certsubjectrestriction.PluginName,
163 defaultingressclass.PluginName,
164 podsecurity.PluginName,
165 validatingadmissionpolicy.PluginName,
166 )
167
168 return sets.NewString(AllOrderedPlugins...).Difference(defaultOnPlugins)
169 }
170
View as plain text