Skip to content

Commit efe7822

Browse files
Merge pull request #901 from jhadvig/CONSOLE-4047_2
CONSOLE-4047: Console-operator should be internally using listers for fetching data
2 parents 94215c0 + 9ed8d8d commit efe7822

File tree

9 files changed

+149
-181
lines changed

9 files changed

+149
-181
lines changed

pkg/console/controllers/clidownloads/controller.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,14 @@ import (
2727
// informers
2828
configclientv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
2929
configinformer "github.com/openshift/client-go/config/informers/externalversions"
30+
configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
3031
consoleinformersv1 "github.com/openshift/client-go/console/informers/externalversions/console/v1"
3132
operatorinformersv1 "github.com/openshift/client-go/operator/informers/externalversions/operator/v1"
3233
routesinformersv1 "github.com/openshift/client-go/route/informers/externalversions/route/v1"
34+
routev1listers "github.com/openshift/client-go/route/listers/route/v1"
3335

3436
// clients
3537
consoleclientv1 "github.com/openshift/client-go/console/clientset/versioned/typed/console/v1"
36-
routeclientv1 "github.com/openshift/client-go/route/clientset/versioned/typed/route/v1"
3738

3839
// operator
3940
"github.com/openshift/console-operator/pkg/api"
@@ -47,8 +48,8 @@ type CLIDownloadsSyncController struct {
4748
// clients
4849
operatorClient v1helpers.OperatorClient
4950
consoleCliDownloadsClient consoleclientv1.ConsoleCLIDownloadInterface
50-
ingressClient configclientv1.IngressInterface
51-
routeClient routeclientv1.RoutesGetter
51+
routeLister routev1listers.RouteLister
52+
ingressConfigLister configlistersv1.IngressLister
5253
operatorConfigLister operatorv1listers.ConsoleLister
5354
}
5455

@@ -58,7 +59,6 @@ func NewCLIDownloadsSyncController(
5859
// clients
5960
operatorClient v1helpers.OperatorClient,
6061
cliDownloadsInterface consoleclientv1.ConsoleCLIDownloadInterface,
61-
routeClient routeclientv1.RoutesGetter,
6262
// informers
6363
operatorConfigInformer operatorinformersv1.ConsoleInformer,
6464
configInformer configinformer.SharedInformerFactory,
@@ -72,8 +72,8 @@ func NewCLIDownloadsSyncController(
7272
// clients
7373
operatorClient: operatorClient,
7474
consoleCliDownloadsClient: cliDownloadsInterface,
75-
ingressClient: configClient.Ingresses(),
76-
routeClient: routeClient,
75+
routeLister: routeInformer.Lister(),
76+
ingressConfigLister: configInformer.Config().V1().Ingresses().Lister(),
7777
operatorConfigLister: operatorConfigInformer.Lister(),
7878
}
7979

@@ -114,7 +114,7 @@ func (c *CLIDownloadsSyncController) Sync(ctx context.Context, controllerContext
114114
}
115115

116116
statusHandler := status.NewStatusHandler(c.operatorClient)
117-
ingressConfig, err := c.ingressClient.Get(ctx, api.ConfigResourceName, metav1.GetOptions{})
117+
ingressConfig, err := c.ingressConfigLister.Get(api.ConfigResourceName)
118118
if err != nil {
119119
return statusHandler.FlushAndReturn(err)
120120
}
@@ -125,7 +125,7 @@ func (c *CLIDownloadsSyncController) Sync(ctx context.Context, controllerContext
125125
activeRouteName = api.OpenshiftDownloadsCustomRouteName
126126
}
127127

128-
downloadsRoute, downloadsRouteErr := c.routeClient.Routes(api.TargetNamespace).Get(ctx, activeRouteName, metav1.GetOptions{})
128+
downloadsRoute, downloadsRouteErr := c.routeLister.Routes(api.TargetNamespace).Get(activeRouteName)
129129
if downloadsRouteErr != nil {
130130
return downloadsRouteErr
131131
}

pkg/console/controllers/healthcheck/controller.go

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ import (
1010

1111
// k8s
1212

13-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1413
coreinformersv1 "k8s.io/client-go/informers/core/v1"
15-
coreclientv1 "k8s.io/client-go/kubernetes/typed/core/v1"
14+
corev1listers "k8s.io/client-go/listers/core/v1"
1615
"k8s.io/client-go/util/retry"
1716
"k8s.io/klog/v2"
1817

@@ -22,10 +21,11 @@ import (
2221
routev1 "github.com/openshift/api/route/v1"
2322
configclientv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
2423
configinformer "github.com/openshift/client-go/config/informers/externalversions"
24+
configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
2525
v1 "github.com/openshift/client-go/operator/informers/externalversions/operator/v1"
2626
operatorv1listers "github.com/openshift/client-go/operator/listers/operator/v1"
27-
routeclientv1 "github.com/openshift/client-go/route/clientset/versioned/typed/route/v1"
2827
routesinformersv1 "github.com/openshift/client-go/route/informers/externalversions/route/v1"
28+
routev1listers "github.com/openshift/client-go/route/listers/route/v1"
2929
"github.com/openshift/library-go/pkg/controller/factory"
3030
"github.com/openshift/library-go/pkg/operator/events"
3131
"github.com/openshift/library-go/pkg/operator/v1helpers"
@@ -40,21 +40,19 @@ import (
4040

4141
type HealthCheckController struct {
4242
// clients
43-
operatorClient v1helpers.OperatorClient
44-
operatorConfigLister operatorv1listers.ConsoleLister
45-
infrastructureClient configclientv1.InfrastructureInterface
46-
ingressClient configclientv1.IngressInterface
47-
routeClient routeclientv1.RoutesGetter
48-
configMapClient coreclientv1.ConfigMapsGetter
43+
operatorClient v1helpers.OperatorClient
44+
infrastructureConfigLister configlistersv1.InfrastructureLister
45+
configMapLister corev1listers.ConfigMapLister
46+
routeLister routev1listers.RouteLister
47+
ingressConfigLister configlistersv1.IngressLister
48+
operatorConfigLister operatorv1listers.ConsoleLister
4949
}
5050

5151
func NewHealthCheckController(
5252
// top level config
5353
configClient configclientv1.ConfigV1Interface,
5454
// clients
5555
operatorClient v1helpers.OperatorClient,
56-
routev1Client routeclientv1.RoutesGetter,
57-
configMapClient coreclientv1.ConfigMapsGetter,
5856
// informers
5957
operatorConfigInformer v1.ConsoleInformer,
6058
configInformer configinformer.SharedInformerFactory,
@@ -64,12 +62,12 @@ func NewHealthCheckController(
6462
recorder events.Recorder,
6563
) factory.Controller {
6664
ctrl := &HealthCheckController{
67-
operatorClient: operatorClient,
68-
operatorConfigLister: operatorConfigInformer.Lister(),
69-
infrastructureClient: configClient.Infrastructures(),
70-
ingressClient: configClient.Ingresses(),
71-
routeClient: routev1Client,
72-
configMapClient: configMapClient,
65+
operatorClient: operatorClient,
66+
operatorConfigLister: operatorConfigInformer.Lister(),
67+
infrastructureConfigLister: configInformer.Config().V1().Infrastructures().Lister(),
68+
ingressConfigLister: configInformer.Config().V1().Ingresses().Lister(),
69+
routeLister: routeInformer.Lister(),
70+
configMapLister: coreInformer.ConfigMaps().Lister(),
7371
}
7472

7573
configMapInformer := coreInformer.ConfigMaps()
@@ -113,12 +111,12 @@ func (c *HealthCheckController) Sync(ctx context.Context, controllerContext fact
113111
default:
114112
return fmt.Errorf("unknown state: %v", updatedOperatorConfig.Spec.ManagementState)
115113
}
116-
ingressConfig, err := c.ingressClient.Get(ctx, api.ConfigResourceName, metav1.GetOptions{})
114+
ingressConfig, err := c.ingressConfigLister.Get(api.ConfigResourceName)
117115
if err != nil {
118116
klog.Errorf("ingress config error: %v", err)
119117
return statusHandler.FlushAndReturn(err)
120118
}
121-
infrastructureConfig, err := c.infrastructureClient.Get(ctx, api.ConfigResourceName, metav1.GetOptions{})
119+
infrastructureConfig, err := c.infrastructureConfigLister.Get(api.ConfigResourceName)
122120
if err != nil {
123121
klog.Errorf("infrastructure config error: %v", err)
124122
return statusHandler.FlushAndReturn(err)
@@ -136,7 +134,7 @@ func (c *HealthCheckController) Sync(ctx context.Context, controllerContext fact
136134
activeRouteName = api.OpenshiftConsoleCustomRouteName
137135
}
138136

139-
activeRoute, activeRouteErr := c.routeClient.Routes(api.OpenShiftConsoleNamespace).Get(ctx, activeRouteName, metav1.GetOptions{})
137+
activeRoute, activeRouteErr := c.routeLister.Routes(api.OpenShiftConsoleNamespace).Get(activeRouteName)
140138
statusHandler.AddConditions(status.HandleProgressingOrDegraded("RouteHealth", "FailedRouteGet", activeRouteErr))
141139
if activeRouteErr != nil {
142140
return statusHandler.FlushAndReturn(activeRouteErr)
@@ -201,7 +199,7 @@ func (c *HealthCheckController) getCA(ctx context.Context, tls *routev1.TLSConfi
201199
}
202200

203201
for _, cmName := range []string{api.TrustedCAConfigMapName, api.DefaultIngressCertConfigMapName} {
204-
cm, err := c.configMapClient.ConfigMaps(api.OpenShiftConsoleNamespace).Get(ctx, cmName, metav1.GetOptions{})
202+
cm, err := c.configMapLister.ConfigMaps(api.OpenShiftConsoleNamespace).Get(cmName)
205203
if err != nil {
206204
klog.V(4).Infof("failed to GET configmap %s / %s ", api.OpenShiftConsoleNamespace, cmName)
207205
return nil, err

pkg/console/controllers/route/controller.go

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ import (
1111
apierrors "k8s.io/apimachinery/pkg/api/errors"
1212
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1313
coreinformersv1 "k8s.io/client-go/informers/core/v1"
14-
coreclientv1 "k8s.io/client-go/kubernetes/typed/core/v1"
14+
corev1listers "k8s.io/client-go/listers/core/v1"
1515
"k8s.io/klog/v2"
1616

1717
// openshift
1818
configv1 "github.com/openshift/api/config/v1"
1919
operatorsv1 "github.com/openshift/api/operator/v1"
2020
routev1 "github.com/openshift/api/route/v1"
21-
configclientv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
2221
configinformer "github.com/openshift/client-go/config/informers/externalversions"
22+
configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
2323
v1 "github.com/openshift/client-go/operator/informers/externalversions/operator/v1"
2424
operatorv1listers "github.com/openshift/client-go/operator/listers/operator/v1"
2525
routeclientv1 "github.com/openshift/client-go/route/clientset/versioned/typed/route/v1"
@@ -41,22 +41,20 @@ type RouteSyncController struct {
4141
isHealthCheckEnabled bool
4242
// clients
4343
operatorClient v1helpers.OperatorClient
44-
operatorConfigLister operatorv1listers.ConsoleLister
45-
ingressClient configclientv1.IngressInterface
4644
routeClient routeclientv1.RoutesGetter
47-
secretClient coreclientv1.SecretsGetter
45+
operatorConfigLister operatorv1listers.ConsoleLister
46+
ingressConfigLister configlistersv1.IngressLister
47+
secretLister corev1listers.SecretLister
4848
}
4949

5050
func NewRouteSyncController(
5151
routeName string,
5252
isHealthCheckEnabled bool,
5353
// top level config
54-
configClient configclientv1.ConfigV1Interface,
5554
configInformer configinformer.SharedInformerFactory,
5655
// clients
5756
operatorClient v1helpers.OperatorClient,
5857
routev1Client routeclientv1.RoutesGetter,
59-
secretClient coreclientv1.SecretsGetter,
6058
// informers
6159
operatorConfigInformer v1.ConsoleInformer,
6260
secretInformer coreinformersv1.SecretInformer,
@@ -69,9 +67,9 @@ func NewRouteSyncController(
6967
isHealthCheckEnabled: isHealthCheckEnabled,
7068
operatorClient: operatorClient,
7169
operatorConfigLister: operatorConfigInformer.Lister(),
72-
ingressClient: configClient.Ingresses(),
70+
ingressConfigLister: configInformer.Config().V1().Ingresses().Lister(),
7371
routeClient: routev1Client,
74-
secretClient: secretClient,
72+
secretLister: secretInformer.Lister(),
7573
}
7674

7775
configV1Informers := configInformer.Config().V1()
@@ -116,7 +114,7 @@ func (c *RouteSyncController) Sync(ctx context.Context, controllerContext factor
116114

117115
statusHandler := status.NewStatusHandler(c.operatorClient)
118116

119-
ingressConfig, err := c.ingressClient.Get(ctx, api.ConfigResourceName, metav1.GetOptions{})
117+
ingressConfig, err := c.ingressConfigLister.Get(api.ConfigResourceName)
120118
if err != nil {
121119
return statusHandler.FlushAndReturn(err)
122120
}
@@ -226,7 +224,7 @@ func (c *RouteSyncController) SyncCustomRoute(ctx context.Context, routeConfig *
226224

227225
func (c *RouteSyncController) GetCustomRouteTLSSecret(ctx context.Context, routeConfig *routesub.RouteConfig) (*corev1.Secret, error) {
228226
if routeConfig.IsCustomTLSSecretSet() {
229-
customTLSSecret, customTLSSecretErr := c.secretClient.Secrets(api.OpenShiftConfigNamespace).Get(ctx, routeConfig.GetCustomTLSSecretName(), metav1.GetOptions{})
227+
customTLSSecret, customTLSSecretErr := c.secretLister.Secrets(api.OpenShiftConfigNamespace).Get(routeConfig.GetCustomTLSSecretName())
230228
if customTLSSecretErr != nil {
231229
return nil, fmt.Errorf("failed to GET custom route TLS secret: %s", customTLSSecretErr)
232230
}
@@ -246,7 +244,7 @@ func (c *RouteSyncController) GetDefaultRouteTLSSecret(ctx context.Context, rout
246244
return nil, nil
247245
}
248246

249-
secret, secretErr := c.secretClient.Secrets(api.OpenShiftConfigNamespace).Get(ctx, routeConfig.GetDefaultTLSSecretName(), metav1.GetOptions{})
247+
secret, secretErr := c.secretLister.Secrets(api.OpenShiftConfigNamespace).Get(routeConfig.GetDefaultTLSSecretName())
250248
if secretErr != nil {
251249
return nil, fmt.Errorf("failed to GET default route TLS secret: %s", secretErr)
252250
}

pkg/console/controllers/service/controller.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
operatorsv1 "github.com/openshift/api/operator/v1"
1616
configclientv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
1717
configinformer "github.com/openshift/client-go/config/informers/externalversions"
18+
configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
1819
operatorinformersv1 "github.com/openshift/client-go/operator/informers/externalversions/operator/v1"
1920
operatorv1listers "github.com/openshift/client-go/operator/listers/operator/v1"
2021
"github.com/openshift/console-operator/bindata"
@@ -33,12 +34,12 @@ import (
3334
// the informers will automatically notify it of changes
3435
// and kick the sync loop
3536
type ServiceSyncController struct {
36-
serviceName string
37-
operatorClient v1helpers.OperatorClient
37+
serviceName string
38+
operatorClient v1helpers.OperatorClient
39+
serviceClient coreclientv1.ServicesGetter
40+
3841
operatorConfigLister operatorv1listers.ConsoleLister
39-
ingressClient configclientv1.IngressInterface
40-
// live clients, we dont need listers w/caches
41-
serviceClient coreclientv1.ServicesGetter
42+
ingressConfigLister configlistersv1.IngressLister
4243
}
4344

4445
// factory func needs clients and informers
@@ -62,7 +63,7 @@ func NewServiceSyncController(
6263
serviceName: serviceName,
6364
operatorClient: operatorClient,
6465
operatorConfigLister: operatorConfigInformer.Lister(),
65-
ingressClient: configClient.Ingresses(),
66+
ingressConfigLister: configInformer.Config().V1().Ingresses().Lister(),
6667
serviceClient: corev1Client,
6768
}
6869

@@ -105,7 +106,7 @@ func (c *ServiceSyncController) Sync(ctx context.Context, controllerContext fact
105106

106107
statusHandler := status.NewStatusHandler(c.operatorClient)
107108

108-
ingressConfig, err := c.ingressClient.Get(ctx, api.ConfigResourceName, metav1.GetOptions{})
109+
ingressConfig, err := c.ingressConfigLister.Get(api.ConfigResourceName)
109110
if err != nil {
110111
return statusHandler.FlushAndReturn(err)
111112
}

pkg/console/controllers/upgradenotification/controller.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
v1 "github.com/openshift/api/config/v1"
1313
consolev1 "github.com/openshift/api/console/v1"
1414
operatorsv1 "github.com/openshift/api/operator/v1"
15-
configclientv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
1615
configinformer "github.com/openshift/client-go/config/informers/externalversions"
1716
configlistersv1 "github.com/openshift/client-go/config/listers/config/v1"
1817
consoleclientv1 "github.com/openshift/client-go/console/clientset/versioned/typed/console/v1"
@@ -43,7 +42,6 @@ type UpgradeNotificationController struct {
4342
// informers to start them up, clients to pass
4443
func NewUpgradeNotificationController(
4544
// top level config
46-
configClient configclientv1.ConfigV1Interface,
4745
configInformer configinformer.SharedInformerFactory,
4846
// clients
4947
operatorClient v1helpers.OperatorClient,

pkg/console/operator/operator.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ type consoleOperator struct {
7575
configMapClient coreclientv1.ConfigMapsGetter
7676
targetNSConfigMapLister corev1listers.ConfigMapLister // for openshift-console namespace
7777
managedNSConfigMapLister corev1listers.ConfigMapLister // for openshift-config-managed namespace
78-
serviceClient coreclientv1.ServicesGetter
79-
nodeClient coreclientv1.NodesGetter
78+
nodeLister corev1listers.NodeLister
8079
deploymentClient appsclientv1.DeploymentsGetter
8180
// openshift
8281
operatorNSConfigMapLister corev1listers.ConfigMapLister //for openshift-console-operator namespace
@@ -118,7 +117,6 @@ func NewConsoleOperator(
118117
// oauth API
119118
oauthClientSwitchedInformer *util.InformerWithSwitch,
120119
// routes
121-
routev1Client routeclientv1.RoutesGetter,
122120
routeInformer routesinformersv1.RouteInformer,
123121
// plugins
124122
consolePluginInformer consoleinformersv1.ConsolePluginInformer,
@@ -169,13 +167,11 @@ func NewConsoleOperator(
169167
configNSConfigMapLister: configNSConfigMapInformer.Lister(),
170168
managedNSConfigMapLister: managedNSConfigMapInformer.Lister(),
171169

172-
serviceClient: corev1Client,
173-
nodeClient: corev1Client,
170+
nodeLister: nodeInformer.Lister(),
174171
deploymentClient: deploymentClient,
175172
dynamicClient: dynamicClient,
176173
// openshift
177174
oauthClientLister: oauthClientSwitchedInformer.Lister(),
178-
routeClient: routev1Client,
179175
routeLister: routeInformer.Lister(),
180176
versionGetter: versionGetter,
181177
// plugins

pkg/console/operator/sync_v400.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
apierrors "k8s.io/apimachinery/pkg/api/errors"
1414
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1515
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
16+
"k8s.io/apimachinery/pkg/labels"
1617
"k8s.io/apimachinery/pkg/runtime/schema"
1718
"k8s.io/apimachinery/pkg/util/sets"
1819
"k8s.io/klog/v2"
@@ -333,8 +334,7 @@ func (co *consoleOperator) SyncConfigMap(
333334
}
334335
managedConfig = &corev1.ConfigMap{}
335336
}
336-
337-
nodeList, nodeListErr := co.nodeClient.Nodes().List(ctx, metav1.ListOptions{})
337+
nodeList, nodeListErr := co.nodeLister.List(labels.Everything())
338338
if nodeListErr != nil {
339339
return nil, false, "FailedListNodes", nodeListErr
340340
}
@@ -630,10 +630,10 @@ func (co *consoleOperator) GetAvailablePlugins(enabledPluginsNames []string) []*
630630
return availablePlugins
631631
}
632632

633-
func getNodeComputeEnvironments(nodes *corev1.NodeList) ([]string, []string) {
633+
func getNodeComputeEnvironments(nodes []*corev1.Node) ([]string, []string) {
634634
nodeArchitecturesSet := sets.NewString()
635635
nodeOperatingSystemSet := sets.NewString()
636-
for _, node := range nodes.Items {
636+
for _, node := range nodes {
637637
nodeArch := node.Labels[api.NodeArchitectureLabel]
638638
if nodeArch == "" {
639639
klog.Warningf("Missing architecture label %q on node %q.", api.NodeArchitectureLabel, node.GetName())

0 commit comments

Comments
 (0)