Skip to content

Commit 35fa693

Browse files
committed
targetconfigcontroller: make sure extension-apiserver-authentication has necessary annotations
configmap kube-system/extension-apiserver-authentication is created by kube-apiserver, but it doesn't have ownership metadata. This commit updates target config controller to set necessary metadata (ownership and description)
1 parent 0bec046 commit 35fa693

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: extension-apiserver-authentication
5+
namespace: kube-system
6+
annotations:
7+
"openshift.io/owning-component": "kube-apiserver"
8+
"openshift.io/description": "CA holding the root certificate bundle to use to verify client certificates on incoming requests"

pkg/operator/targetconfigcontroller/targetconfigcontroller.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"context"
66
"encoding/json"
77
"fmt"
8+
"reflect"
89
"sort"
910
"strconv"
1011
"strings"
@@ -237,6 +238,11 @@ func createTargetConfig(ctx context.Context, c TargetConfigController, recorder
237238
errors = append(errors, fmt.Errorf("%q: %v", "configmap/trusted-ca-bundle", err))
238239
}
239240

241+
err = ensureKubeAPIServerExtensionAuthenticationCA(ctx, c.kubeClient.CoreV1(), recorder)
242+
if err != nil {
243+
errors = append(errors, fmt.Errorf("%q: %v", "configmap/extension-apiserver-authentication", err))
244+
}
245+
240246
err = ensureLocalhostRecoverySAToken(ctx, c.kubeClient.CoreV1(), recorder)
241247
if err != nil {
242248
errors = append(errors, fmt.Errorf("%q: %v", "serviceaccount/localhost-recovery-client", err))
@@ -507,6 +513,25 @@ func ensureKubeAPIServerTrustedCA(ctx context.Context, client coreclientv1.CoreV
507513
return err
508514
}
509515

516+
func ensureKubeAPIServerExtensionAuthenticationCA(ctx context.Context, client coreclientv1.CoreV1Interface, recorder events.Recorder) error {
517+
required := resourceread.ReadConfigMapV1OrDie(bindata.MustAsset("assets/kube-apiserver/extension-apiserver-authentication-cm.yaml"))
518+
cmCLient := client.ConfigMaps("kube-system")
519+
520+
cm, err := cmCLient.Get(ctx, "extension-apiserver-authentication", metav1.GetOptions{})
521+
if err != nil {
522+
return err
523+
}
524+
525+
// update if annotations modified by the user
526+
if !reflect.DeepEqual(cm.Annotations, required.Annotations) {
527+
cm.Annotations = required.Annotations
528+
_, err = cmCLient.Update(ctx, cm, metav1.UpdateOptions{})
529+
return err
530+
}
531+
532+
return err
533+
}
534+
510535
func ensureLocalhostRecoverySAToken(ctx context.Context, client coreclientv1.CoreV1Interface, recorder events.Recorder) error {
511536
requiredSA := resourceread.ReadServiceAccountV1OrDie(bindata.MustAsset("assets/kube-apiserver/localhost-recovery-sa.yaml"))
512537
requiredToken := resourceread.ReadSecretV1OrDie(bindata.MustAsset("assets/kube-apiserver/localhost-recovery-token.yaml"))

0 commit comments

Comments
 (0)