@@ -237,6 +237,11 @@ func createTargetConfig(ctx context.Context, c TargetConfigController, recorder
237
237
errors = append (errors , fmt .Errorf ("%q: %v" , "configmap/trusted-ca-bundle" , err ))
238
238
}
239
239
240
+ err = ensureKubeAPIServerExtensionAuthenticationCA (ctx , c .kubeClient .CoreV1 (), recorder )
241
+ if err != nil {
242
+ errors = append (errors , fmt .Errorf ("%q: %v" , "configmap/extension-apiserver-authentication" , err ))
243
+ }
244
+
240
245
err = ensureLocalhostRecoverySAToken (ctx , c .kubeClient .CoreV1 (), recorder )
241
246
if err != nil {
242
247
errors = append (errors , fmt .Errorf ("%q: %v" , "serviceaccount/localhost-recovery-client" , err ))
@@ -507,6 +512,41 @@ func ensureKubeAPIServerTrustedCA(ctx context.Context, client coreclientv1.CoreV
507
512
return err
508
513
}
509
514
515
+ func ensureKubeAPIServerExtensionAuthenticationCA (ctx context.Context , client coreclientv1.CoreV1Interface , recorder events.Recorder ) error {
516
+ required := resourceread .ReadConfigMapV1OrDie (bindata .MustAsset ("assets/kube-apiserver/extension-apiserver-authentication-cm.yaml" ))
517
+ cmClient := client .ConfigMaps ("kube-system" )
518
+
519
+ cm , err := cmClient .Get (ctx , "extension-apiserver-authentication" , metav1.GetOptions {})
520
+ if err != nil {
521
+ // kube-apiserver creates this CM; don't degrade while waiting.
522
+ if apierrors .IsNotFound (err ) {
523
+ return nil
524
+ }
525
+ return err
526
+ }
527
+
528
+ // Ensure that the config map is updated with the required annotations
529
+ modified := false
530
+ if cm .Annotations == nil {
531
+ cm .Annotations = make (map [string ]string )
532
+ }
533
+
534
+ for key , expected := range required .Annotations {
535
+ if actual , ok := cm .Annotations [key ]; ! ok || actual != expected {
536
+ cm .Annotations [key ] = expected
537
+ modified = true
538
+ }
539
+ }
540
+
541
+ if modified {
542
+ updatedCM , err := cmClient .Update (ctx , cm , metav1.UpdateOptions {})
543
+ resourcehelper .ReportUpdateEvent (recorder , updatedCM , err )
544
+ return err
545
+ }
546
+
547
+ return nil
548
+ }
549
+
510
550
func ensureLocalhostRecoverySAToken (ctx context.Context , client coreclientv1.CoreV1Interface , recorder events.Recorder ) error {
511
551
requiredSA := resourceread .ReadServiceAccountV1OrDie (bindata .MustAsset ("assets/kube-apiserver/localhost-recovery-sa.yaml" ))
512
552
requiredToken := resourceread .ReadSecretV1OrDie (bindata .MustAsset ("assets/kube-apiserver/localhost-recovery-token.yaml" ))
0 commit comments