@@ -15,6 +15,8 @@ import (
1515 operatorv1client "github.com/openshift/client-go/operator/clientset/versioned"
1616 operatorv1informers "github.com/openshift/client-go/operator/informers/externalversions"
1717 operatorcontrolplaneclient "github.com/openshift/client-go/operatorcontrolplane/clientset/versioned"
18+ securityclient "github.com/openshift/client-go/security/clientset/versioned"
19+ securityvnformers "github.com/openshift/client-go/security/informers/externalversions"
1820 "github.com/openshift/cluster-kube-apiserver-operator/bindata"
1921 "github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/boundsatokensignercontroller"
2022 "github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/certrotationcontroller"
@@ -28,6 +30,7 @@ import (
2830 "github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/operatorclient"
2931 "github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/podsecurityreadinesscontroller"
3032 "github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/resourcesynccontroller"
33+ "github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/sccreconcilecontroller"
3134 "github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/serviceaccountissuercontroller"
3235 "github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/startupmonitorreadiness"
3336 "github.com/openshift/cluster-kube-apiserver-operator/pkg/operator/targetconfigcontroller"
@@ -84,6 +87,10 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
8487 if err != nil {
8588 return err
8689 }
90+ securityClient , err := securityclient .NewForConfig (controllerContext .KubeConfig )
91+ if err != nil {
92+ return err
93+ }
8794 operatorcontrolplaneClient , err := operatorcontrolplaneclient .NewForConfig (controllerContext .KubeConfig )
8895 if err != nil {
8996 return err
@@ -113,6 +120,8 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
113120 return err
114121 }
115122
123+ securityInformers := securityvnformers .NewSharedInformerFactory (securityClient , 10 * time .Minute )
124+
116125 desiredVersion := status .VersionForOperatorFromEnv ()
117126 missingVersion := "0.0.1-snapshot"
118127
@@ -427,6 +436,12 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
427436 controllerContext .EventRecorder ,
428437 )
429438
439+ sccReconcileController , err := sccreconcilecontroller .NewSCCReconcileController (
440+ securityClient .SecurityV1 (),
441+ securityInformers .Security ().V1 ().SecurityContextConstraints (),
442+ controllerContext .EventRecorder ,
443+ )
444+
430445 podSecurityReadinessController , err := podsecurityreadinesscontroller .NewPodSecurityReadinessController (
431446 controllerContext .ProtoKubeConfig ,
432447 operatorClient ,
@@ -448,6 +463,7 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
448463 migrationInformer .Start (ctx .Done ())
449464 apiextensionsInformers .Start (ctx .Done ())
450465 operatorInformers .Start (ctx .Done ())
466+ securityInformers .Start (ctx .Done ())
451467
452468 go staticPodControllers .Start (ctx )
453469 go resourceSyncController .Run (ctx , 1 )
@@ -470,6 +486,7 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
470486 go webhookSupportabilityController .Run (ctx , 1 )
471487 go serviceAccountIssuerController .Run (ctx , 1 )
472488 go podSecurityReadinessController .Run (ctx , 1 )
489+ go sccReconcileController .Run (ctx , 1 )
473490
474491 <- ctx .Done ()
475492 return nil
0 commit comments