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