mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-10 04:27:54 +00:00
wire in optional tokenGetter provider
This commit is contained in:
parent
d902351c99
commit
a15b22cd98
@ -132,6 +132,9 @@ type ServiceAccountAuthenticationOptions struct {
|
||||
JWKSURI string
|
||||
MaxExpiration time.Duration
|
||||
ExtendExpiration bool
|
||||
// OptionalTokenGetter is a function that returns a service account token getter.
|
||||
// If not set, the default token getter will be used.
|
||||
OptionalTokenGetter func(factory informers.SharedInformerFactory) serviceaccount.ServiceAccountTokenGetter
|
||||
}
|
||||
|
||||
// TokenFileAuthenticationOptions contains token file authentication options for API Server
|
||||
@ -207,7 +210,20 @@ func (o *BuiltInAuthenticationOptions) WithRequestHeader() *BuiltInAuthenticatio
|
||||
|
||||
// WithServiceAccounts set default value for service account authentication
|
||||
func (o *BuiltInAuthenticationOptions) WithServiceAccounts() *BuiltInAuthenticationOptions {
|
||||
o.ServiceAccounts = &ServiceAccountAuthenticationOptions{Lookup: true, ExtendExpiration: true}
|
||||
if o.ServiceAccounts == nil {
|
||||
o.ServiceAccounts = &ServiceAccountAuthenticationOptions{}
|
||||
}
|
||||
o.ServiceAccounts.Lookup = true
|
||||
o.ServiceAccounts.ExtendExpiration = true
|
||||
return o
|
||||
}
|
||||
|
||||
// WithTokenGetterFunction set optional service account token getter function
|
||||
func (o *BuiltInAuthenticationOptions) WithTokenGetterFunction(f func(factory informers.SharedInformerFactory) serviceaccount.ServiceAccountTokenGetter) *BuiltInAuthenticationOptions {
|
||||
if o.ServiceAccounts == nil {
|
||||
o.ServiceAccounts = &ServiceAccountAuthenticationOptions{}
|
||||
}
|
||||
o.ServiceAccounts.OptionalTokenGetter = f
|
||||
return o
|
||||
}
|
||||
|
||||
@ -673,6 +689,11 @@ func (o *BuiltInAuthenticationOptions) ApplyTo(
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.ServiceAccountTokenNodeBindingValidation) {
|
||||
nodeLister = versionedInformer.Core().V1().Nodes().Lister()
|
||||
}
|
||||
|
||||
// If the optional token getter function is set, use it. Otherwise, use the default token getter.
|
||||
if o.ServiceAccounts.OptionalTokenGetter != nil {
|
||||
authenticatorConfig.ServiceAccountTokenGetter = o.ServiceAccounts.OptionalTokenGetter(versionedInformer)
|
||||
} else {
|
||||
authenticatorConfig.ServiceAccountTokenGetter = serviceaccountcontroller.NewGetterFromClient(
|
||||
extclient,
|
||||
versionedInformer.Core().V1().Secrets().Lister(),
|
||||
@ -680,6 +701,7 @@ func (o *BuiltInAuthenticationOptions) ApplyTo(
|
||||
versionedInformer.Core().V1().Pods().Lister(),
|
||||
nodeLister,
|
||||
)
|
||||
}
|
||||
authenticatorConfig.SecretsWriter = extclient.CoreV1()
|
||||
|
||||
if authenticatorConfig.BootstrapToken {
|
||||
|
Loading…
Reference in New Issue
Block a user