@@ -124,6 +124,11 @@ func BuildKubeAPIserverOptions(masterConfig configapi.MasterConfig) (*kapiserver
124
124
server .InsecureServing .BindPort = 0
125
125
126
126
server .Authentication .ClientCert = & apiserveroptions.ClientCertAuthenticationOptions {masterConfig .ServingInfo .ClientCA }
127
+ server .Authentication .RequestHeader .ClientCAFile = masterConfig .AuthConfig .RequestHeader .ClientCA
128
+ server .Authentication .RequestHeader .UsernameHeaders = masterConfig .AuthConfig .RequestHeader .UsernameHeaders
129
+ server .Authentication .RequestHeader .GroupHeaders = masterConfig .AuthConfig .RequestHeader .GroupHeaders
130
+ server .Authentication .RequestHeader .ExtraHeaderPrefixes = masterConfig .AuthConfig .RequestHeader .ExtraHeaderPrefixes
131
+ server .Authentication .RequestHeader .AllowedNames = masterConfig .AuthConfig .RequestHeader .ClientCommonNames
127
132
128
133
server .Etcd .EnableGarbageCollection = false // disabled until we add the controller. MUST be in synced with the value in CMServer
129
134
server .Etcd .StorageConfig .Type = "etcd2" // TODO(rebase): enable etcd3 as upstream
@@ -259,6 +264,27 @@ func buildUpstreamGenericConfig(s *kapiserveroptions.ServerRunOptions) (*apiserv
259
264
return genericConfig , nil
260
265
}
261
266
267
+ // buildUpstreamClientCARegistrationHook copies the ClientCARegistrationHook code from k8s.io/kubernetes/cmd/kube-apiserver/app/server.go.
268
+ // ONLY COMMENT OUT CODE HERE, do not modify it. Do modifications outside of this function.
269
+ func buildUpstreamClientCARegistrationHook (s * kapiserveroptions.ServerRunOptions ) (* master.ClientCARegistrationHook , error ) {
270
+ clientCA , err := readCAorNil (s .Authentication .ClientCert .ClientCA )
271
+ if err != nil {
272
+ return nil , err
273
+ }
274
+ requestHeaderProxyCA , err := readCAorNil (s .Authentication .RequestHeader .ClientCAFile )
275
+ if err != nil {
276
+ return nil , err
277
+ }
278
+ return & master.ClientCARegistrationHook {
279
+ ClientCA : clientCA ,
280
+ RequestHeaderUsernameHeaders : s .Authentication .RequestHeader .UsernameHeaders ,
281
+ RequestHeaderGroupHeaders : s .Authentication .RequestHeader .GroupHeaders ,
282
+ RequestHeaderExtraHeaderPrefixes : s .Authentication .RequestHeader .ExtraHeaderPrefixes ,
283
+ RequestHeaderCA : requestHeaderProxyCA ,
284
+ RequestHeaderAllowedNames : s .Authentication .RequestHeader .AllowedNames ,
285
+ }, nil
286
+ }
287
+
262
288
func buildControllerManagerServer (masterConfig configapi.MasterConfig ) (* cmapp.CMServer , cloudprovider.Interface , error ) {
263
289
podEvictionTimeout , err := time .ParseDuration (masterConfig .KubernetesMasterConfig .PodEvictionTimeout )
264
290
if err != nil {
@@ -373,6 +399,11 @@ func buildKubeApiserverConfig(
373
399
return nil , err
374
400
}
375
401
402
+ clientCARegistrationHook , err := buildUpstreamClientCARegistrationHook (apiserverOptions )
403
+ if err != nil {
404
+ return nil , err
405
+ }
406
+
376
407
// override config values
377
408
kubeVersion := kversion .Get ()
378
409
genericConfig .Version = & kubeVersion
@@ -428,11 +459,6 @@ func buildKubeApiserverConfig(
428
459
return nil , err
429
460
}
430
461
431
- clientCARegistrationHook , err := ClientCARegistrationHook (& masterConfig )
432
- if err != nil {
433
- return nil , err
434
- }
435
-
436
462
kubeApiserverConfig := & master.Config {
437
463
GenericConfig : genericConfig ,
438
464
MasterCount : apiserverOptions .MasterCount ,
@@ -577,29 +603,6 @@ func BuildKubernetesMasterConfig(
577
603
return kmaster , nil
578
604
}
579
605
580
- func ClientCARegistrationHook (options * configapi.MasterConfig ) (* master.ClientCARegistrationHook , error ) {
581
- clientCA , err := readCAorNil (options .ServingInfo .ClientCA )
582
- if err != nil {
583
- return nil , err
584
- }
585
- ret := & master.ClientCARegistrationHook {ClientCA : clientCA }
586
-
587
- var requestHeaderProxyCA []byte
588
- if options .AuthConfig .RequestHeader != nil {
589
- requestHeaderProxyCA , err = readCAorNil (options .AuthConfig .RequestHeader .ClientCA )
590
- if err != nil {
591
- return nil , err
592
- }
593
- ret .RequestHeaderUsernameHeaders = options .AuthConfig .RequestHeader .UsernameHeaders
594
- ret .RequestHeaderGroupHeaders = options .AuthConfig .RequestHeader .GroupHeaders
595
- ret .RequestHeaderExtraHeaderPrefixes = options .AuthConfig .RequestHeader .ExtraHeaderPrefixes
596
- ret .RequestHeaderCA = requestHeaderProxyCA
597
- ret .RequestHeaderAllowedNames = options .AuthConfig .RequestHeader .ClientCommonNames
598
- }
599
-
600
- return ret , nil
601
- }
602
-
603
606
func DefaultOpenAPIConfig () * openapicommon.Config {
604
607
return & openapicommon.Config {
605
608
GetDefinitions : openapigenerated .GetOpenAPIDefinitions ,
0 commit comments