@@ -56,6 +56,7 @@ import (
56
56
"k8s.io/klog/v2"
57
57
aggregatorapiserver "k8s.io/kube-aggregator/pkg/apiserver"
58
58
aggregatorscheme "k8s.io/kube-aggregator/pkg/apiserver/scheme"
59
+ controlplaneadmission "k8s.io/kubernetes/pkg/controlplane/apiserver/admission"
59
60
60
61
"k8s.io/kubernetes/cmd/kube-apiserver/app/options"
61
62
"k8s.io/kubernetes/pkg/api/legacyscheme"
@@ -221,8 +222,29 @@ func CreateKubeAPIServerConfig(opts options.CompletedOptions) (
221
222
generatedopenapi .GetOpenAPIDefinitions ,
222
223
)
223
224
if err != nil {
224
- return nil , nil , nil , err
225
+ return nil , nil , nil , fmt .Errorf ("failed to create generic config: %w" , err )
226
+ }
227
+
228
+ // generic controlplane admission initializers
229
+ controlPlaneAdmissionConfig := & controlplaneadmission.Config {
230
+ ExternalInformers : versionedInformers ,
231
+ LoopbackClientConfig : genericConfig .LoopbackClientConfig ,
232
+ }
233
+ serviceResolver := buildServiceResolver (opts .EnableAggregatorRouting , genericConfig .LoopbackClientConfig .Host , versionedInformers )
234
+ pluginInitializers , err := controlPlaneAdmissionConfig .New (proxyTransport , genericConfig .EgressSelector , serviceResolver , genericConfig .TracerProvider )
235
+ if err != nil {
236
+ return nil , nil , nil , fmt .Errorf ("failed to create admission plugin initializer: %w" , err )
237
+ }
238
+
239
+ // additional kube admission initializers
240
+ kubeAdmissionConfig := & kubeapiserveradmission.Config {
241
+ CloudConfigFile : opts .CloudProvider .CloudConfigFile ,
242
+ }
243
+ kubeInitializers , err := kubeAdmissionConfig .New ()
244
+ if err != nil {
245
+ return nil , nil , nil , fmt .Errorf ("failed to create admission plugin initializer: %w" , err )
225
246
}
247
+ pluginInitializers = append (pluginInitializers , kubeInitializers ... )
226
248
227
249
capabilities .Setup (opts .AllowPrivileged , opts .MaxConnectionBytesPerSec )
228
250
@@ -298,16 +320,6 @@ func CreateKubeAPIServerConfig(opts options.CompletedOptions) (
298
320
}
299
321
300
322
// setup admission
301
- admissionConfig := & kubeapiserveradmission.Config {
302
- ExternalInformers : versionedInformers ,
303
- LoopbackClientConfig : genericConfig .LoopbackClientConfig ,
304
- CloudConfigFile : opts .CloudProvider .CloudConfigFile ,
305
- }
306
- serviceResolver := buildServiceResolver (opts .EnableAggregatorRouting , genericConfig .LoopbackClientConfig .Host , versionedInformers )
307
- pluginInitializers , err := admissionConfig .New (proxyTransport , genericConfig .EgressSelector , serviceResolver , genericConfig .TracerProvider )
308
- if err != nil {
309
- return nil , nil , nil , fmt .Errorf ("failed to create admission plugin initializer: %v" , err )
310
- }
311
323
clientgoExternalClient , err := clientset .NewForConfig (genericConfig .LoopbackClientConfig )
312
324
if err != nil {
313
325
return nil , nil , nil , fmt .Errorf ("failed to create real client-go external client: %w" , err )
0 commit comments