88
99 // kube
1010 corev1 "k8s.io/api/core/v1"
11+ rbacv1 "k8s.io/api/rbac/v1"
1112 apiextensionsclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
1213 apiexensionsinformers "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions"
1314 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -73,6 +74,18 @@ import (
7374 "github.com/openshift/library-go/pkg/operator/loglevel"
7475)
7576
77+ const (
78+ clusterRoleResource = "clusterroles"
79+ namespaceResource = "namespaces"
80+ configMapResource = "configmaps"
81+ consoleResource = "consoles"
82+ infrastructureResource = "infrastructures"
83+ proxyResource = "proxies"
84+ oauthResource = "oauths"
85+ oauthClientResource = "oauthclients"
86+ consolePluginResource = "consoleplugins"
87+ )
88+
7689func RunOperator (ctx context.Context , controllerContext * controllercmd.ControllerContext ) error {
7790
7891 kubeClient , err := kubernetes .NewForConfig (controllerContext .ProtoKubeConfig )
@@ -436,14 +449,19 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
436449 clusterOperatorStatus := status .NewClusterOperatorStatusController (
437450 api .ClusterOperatorName ,
438451 []configv1.ObjectReference {
439- {Group : operatorv1 .GroupName , Resource : "consoles" , Name : api .ConfigResourceName },
440- {Group : configv1 .GroupName , Resource : "consoles" , Name : api .ConfigResourceName },
441- {Group : configv1 .GroupName , Resource : "infrastructures" , Name : api .ConfigResourceName },
442- {Group : configv1 .GroupName , Resource : "proxies" , Name : api .ConfigResourceName },
443- {Group : configv1 .GroupName , Resource : "oauths" , Name : api .ConfigResourceName },
444- {Group : corev1 .GroupName , Resource : "namespaces" , Name : api .OpenShiftConsoleOperatorNamespace },
445- {Group : corev1 .GroupName , Resource : "namespaces" , Name : api .OpenShiftConsoleNamespace },
446- {Group : corev1 .GroupName , Resource : "configmaps" , Name : api .OpenShiftConsolePublicConfigMapName , Namespace : api .OpenShiftConfigManagedNamespace },
452+ {Group : operatorv1 .GroupName , Resource : consoleResource , Name : api .ConfigResourceName },
453+ {Group : configv1 .GroupName , Resource : consoleResource , Name : api .ConfigResourceName },
454+ {Group : configv1 .GroupName , Resource : infrastructureResource , Name : api .ConfigResourceName },
455+ {Group : configv1 .GroupName , Resource : proxyResource , Name : api .ConfigResourceName },
456+ {Group : configv1 .GroupName , Resource : oauthResource , Name : api .ConfigResourceName },
457+ {Group : corev1 .GroupName , Resource : namespaceResource , Name : api .OpenShiftConsoleOperatorNamespace },
458+ {Group : corev1 .GroupName , Resource : namespaceResource , Name : api .OpenShiftConsoleNamespace },
459+ {Group : corev1 .GroupName , Resource : configMapResource , Name : api .OpenShiftConsolePublicConfigMapName , Namespace : api .OpenShiftConfigManagedNamespace },
460+ {Group : rbacv1 .GroupName , Resource : clusterRoleResource , Name : api .OpenShiftConsoleOperator },
461+ {Group : rbacv1 .GroupName , Resource : clusterRoleResource , Name : api .OpenShiftConsoleName },
462+ {Group : rbacv1 .GroupName , Resource : clusterRoleResource , Name : api .HelmChartreposViewerRoleName },
463+ {Group : rbacv1 .GroupName , Resource : clusterRoleResource , Name : api .ProjectHelmChartrepositoryEditorRoleName },
464+ {Group : rbacv1 .GroupName , Resource : clusterRoleResource , Name : api .ConsoleExtensionsReaderRoleName },
447465 },
448466 // clusteroperator client
449467 configClient .ConfigV1 (),
@@ -469,22 +487,22 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
469487 for _ , plugin := range consolePlugins .Items {
470488 relatedObjects = append (relatedObjects , configv1.ObjectReference {
471489 Group : "console.openshift.io" ,
472- Resource : "consoleplugins" ,
490+ Resource : consolePluginResource ,
473491 Name : plugin .GetName (),
474492 })
475493 if plugin .Spec .Backend .Service != nil {
476494 ns := plugin .Spec .Backend .Service .Namespace
477495 relatedObjects = append (relatedObjects , configv1.ObjectReference {
478496 Group : corev1 .GroupName ,
479- Resource : "namespaces" ,
497+ Resource : namespaceResource ,
480498 Name : ns ,
481499 })
482500 }
483501 for _ , proxy := range plugin .Spec .Proxy {
484502 if proxy .Endpoint .Service != nil && proxy .Endpoint .Service .Namespace != "" {
485503 relatedObjects = append (relatedObjects , configv1.ObjectReference {
486504 Group : corev1 .GroupName ,
487- Resource : "namespaces" ,
505+ Resource : namespaceResource ,
488506 Name : proxy .Endpoint .Service .Namespace ,
489507 })
490508 }
@@ -499,7 +517,7 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
499517 case "" , configv1 .AuthenticationTypeIntegratedOAuth :
500518 relatedObjects = append (relatedObjects , configv1.ObjectReference {
501519 Group : oauth .GroupName ,
502- Resource : "oauthclients" ,
520+ Resource : oauthClientResource ,
503521 Name : api .OAuthClientName })
504522 }
505523
0 commit comments