Skip to content

Commit c12bd72

Browse files
committed
adapt: match ClientCARegistrationHook code with upstream
1 parent 0fa1c52 commit c12bd72

File tree

1 file changed

+31
-28
lines changed

1 file changed

+31
-28
lines changed

pkg/cmd/server/kubernetes/master/master_config.go

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@ func BuildKubeAPIserverOptions(masterConfig configapi.MasterConfig) (*kapiserver
124124
server.InsecureServing.BindPort = 0
125125

126126
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
127132

128133
server.Etcd.EnableGarbageCollection = false // disabled until we add the controller. MUST be in synced with the value in CMServer
129134
server.Etcd.StorageConfig.Type = "etcd2" // TODO(rebase): enable etcd3 as upstream
@@ -259,6 +264,27 @@ func buildUpstreamGenericConfig(s *kapiserveroptions.ServerRunOptions) (*apiserv
259264
return genericConfig, nil
260265
}
261266

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+
262288
func buildControllerManagerServer(masterConfig configapi.MasterConfig) (*cmapp.CMServer, cloudprovider.Interface, error) {
263289
podEvictionTimeout, err := time.ParseDuration(masterConfig.KubernetesMasterConfig.PodEvictionTimeout)
264290
if err != nil {
@@ -373,6 +399,11 @@ func buildKubeApiserverConfig(
373399
return nil, err
374400
}
375401

402+
clientCARegistrationHook, err := buildUpstreamClientCARegistrationHook(apiserverOptions)
403+
if err != nil {
404+
return nil, err
405+
}
406+
376407
// override config values
377408
kubeVersion := kversion.Get()
378409
genericConfig.Version = &kubeVersion
@@ -428,11 +459,6 @@ func buildKubeApiserverConfig(
428459
return nil, err
429460
}
430461

431-
clientCARegistrationHook, err := ClientCARegistrationHook(&masterConfig)
432-
if err != nil {
433-
return nil, err
434-
}
435-
436462
kubeApiserverConfig := &master.Config{
437463
GenericConfig: genericConfig,
438464
MasterCount: apiserverOptions.MasterCount,
@@ -577,29 +603,6 @@ func BuildKubernetesMasterConfig(
577603
return kmaster, nil
578604
}
579605

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-
603606
func DefaultOpenAPIConfig() *openapicommon.Config {
604607
return &openapicommon.Config{
605608
GetDefinitions: openapigenerated.GetOpenAPIDefinitions,

0 commit comments

Comments
 (0)