Skip to content

Commit 72c6daf

Browse files
committed
pkg/operator: check error from AddEventHandler calls
1 parent 6e4e4b9 commit 72c6daf

File tree

8 files changed

+96
-39
lines changed

8 files changed

+96
-39
lines changed

pkg/operator/azurestackcloud.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,19 @@ type AzureStackCloudController struct {
3434
func NewAzureStackCloudController(
3535
operatorClient v1helpers.OperatorClient,
3636
openshiftConfigInformer corev1informers.ConfigMapInformer,
37-
) *AzureStackCloudController {
37+
) (*AzureStackCloudController, error) {
3838
c := &AzureStackCloudController{
3939
operatorClient: operatorClient,
4040
openshiftConfigLister: openshiftConfigInformer.Lister().ConfigMaps(defaults.OpenShiftConfigNamespace),
4141
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "AzureStackCloudController"),
4242
}
4343

44-
openshiftConfigInformer.Informer().AddEventHandler(c.eventHandler())
44+
if _, err := openshiftConfigInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
45+
return nil, err
46+
}
4547
c.cachesToSync = append(c.cachesToSync, openshiftConfigInformer.Informer().HasSynced)
4648

47-
return c
49+
return c, nil
4850
}
4951

5052
func (c *AzureStackCloudController) eventHandler() cache.ResourceEventHandler {

pkg/operator/clusteroperator.go

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func NewClusterOperatorStatusController(
4343
imageRegistryConfigInformer imageregistryv1informers.ConfigInformer,
4444
imagePrunerInformer imageregistryv1informers.ImagePrunerInformer,
4545
deploymentInformer appsv1informers.DeploymentInformer,
46-
) *ClusterOperatorStatusController {
46+
) (*ClusterOperatorStatusController, error) {
4747
c := &ClusterOperatorStatusController{
4848
relatedObjects: relatedObjects,
4949
clusterOperatorClient: configClient,
@@ -54,19 +54,27 @@ func NewClusterOperatorStatusController(
5454
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "ClusterOperatorStatusController"),
5555
}
5656

57-
clusterOperatorInformer.Informer().AddEventHandler(c.eventHandler())
57+
if _, err := clusterOperatorInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
58+
return nil, err
59+
}
5860
c.cachesToSync = append(c.cachesToSync, clusterOperatorInformer.Informer().HasSynced)
5961

60-
imageRegistryConfigInformer.Informer().AddEventHandler(c.eventHandler())
62+
if _, err := imageRegistryConfigInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
63+
return nil, err
64+
}
6165
c.cachesToSync = append(c.cachesToSync, imageRegistryConfigInformer.Informer().HasSynced)
6266

63-
imagePrunerInformer.Informer().AddEventHandler(c.eventHandler())
67+
if _, err := imagePrunerInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
68+
return nil, err
69+
}
6470
c.cachesToSync = append(c.cachesToSync, imagePrunerInformer.Informer().HasSynced)
6571

66-
deploymentInformer.Informer().AddEventHandler(c.eventHandler())
72+
if _, err := deploymentInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
73+
return nil, err
74+
}
6775
c.cachesToSync = append(c.cachesToSync, deploymentInformer.Informer().HasSynced)
6876

69-
return c
77+
return c, nil
7078
}
7179

7280
func (c *ClusterOperatorStatusController) eventHandler() cache.ResourceEventHandler {

pkg/operator/controller.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func NewController(
7878
configInformerFactory configinformers.SharedInformerFactory,
7979
regopInformerFactory imageregistryinformers.SharedInformerFactory,
8080
routeInformerFactory routeinformers.SharedInformerFactory,
81-
) *Controller {
81+
) (*Controller, error) {
8282
listers := &regopclient.Listers{}
8383
clients := &regopclient.Clients{}
8484
c := &Controller{
@@ -174,11 +174,13 @@ func NewController(
174174
},
175175
} {
176176
informer := ctor()
177-
informer.AddEventHandler(c.handler())
177+
if _, err := informer.AddEventHandler(c.handler()); err != nil {
178+
return nil, err
179+
}
178180
c.cachesToSync = append(c.cachesToSync, informer.HasSynced)
179181
}
180182

181-
return c
183+
return c, nil
182184
}
183185

184186
// Controller keeps track of openshift image registry components.

pkg/operator/controllerimagepruner.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func NewImagePrunerController(
5252
kubeInformerFactory kubeinformers.SharedInformerFactory,
5353
regopInformerFactory imageregistryinformers.SharedInformerFactory,
5454
imageConfigInformer configv1informers.ImageInformer,
55-
) *ImagePrunerController {
55+
) (*ImagePrunerController, error) {
5656
listers := &regopclient.ImagePrunerControllerListers{}
5757
clients := &regopclient.Clients{}
5858
c := &ImagePrunerController{
@@ -119,11 +119,13 @@ func NewImagePrunerController(
119119
},
120120
} {
121121
informer := ctor()
122-
informer.AddEventHandler(c.handler())
122+
if _, err := informer.AddEventHandler(c.handler()); err != nil {
123+
return nil, err
124+
}
123125
c.cachesToSync = append(c.cachesToSync, informer.HasSynced)
124126
}
125127

126-
return c
128+
return c, nil
127129
}
128130

129131
// ImagePrunerController keeps track of openshift image pruner components.

pkg/operator/imageconfig.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func NewImageConfigController(
4949
operatorClient v1helpers.OperatorClient,
5050
routeInformer routev1informers.RouteInformer,
5151
serviceInformer corev1informers.ServiceInformer,
52-
) *ImageConfigController {
52+
) (*ImageConfigController, error) {
5353
icc := &ImageConfigController{
5454
configClient: configClient,
5555
operatorClient: operatorClient,
@@ -58,13 +58,17 @@ func NewImageConfigController(
5858
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "ImageConfigController"),
5959
}
6060

61-
serviceInformer.Informer().AddEventHandler(icc.eventHandler())
61+
if _, err := serviceInformer.Informer().AddEventHandler(icc.eventHandler()); err != nil {
62+
return nil, err
63+
}
6264
icc.cachesToSync = append(icc.cachesToSync, serviceInformer.Informer().HasSynced)
6365

64-
routeInformer.Informer().AddEventHandler(icc.eventHandler())
66+
if _, err := routeInformer.Informer().AddEventHandler(icc.eventHandler()); err != nil {
67+
return nil, err
68+
}
6569
icc.cachesToSync = append(icc.cachesToSync, routeInformer.Informer().HasSynced)
6670

67-
return icc
71+
return icc, nil
6872
}
6973

7074
func (icc *ImageConfigController) eventHandler() cache.ResourceEventHandler {

pkg/operator/imageregistrycertificates.go

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func NewImageRegistryCertificatesController(
5454
openshiftConfigInformer corev1informers.ConfigMapInformer,
5555
openshiftConfigManagedInformer corev1informers.ConfigMapInformer,
5656
imageRegistryConfigInformer imageregistryv1informers.ConfigInformer,
57-
) *ImageRegistryCertificatesController {
57+
) (*ImageRegistryCertificatesController, error) {
5858
c := &ImageRegistryCertificatesController{
5959
kubeconfig: kubeconfig,
6060
coreClient: coreClient,
@@ -67,25 +67,39 @@ func NewImageRegistryCertificatesController(
6767
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "ImageRegistryCertificatesController"),
6868
}
6969

70-
configMapInformer.Informer().AddEventHandler(c.eventHandler())
70+
if _, err := configMapInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
71+
return nil, err
72+
}
7173
c.cachesToSync = append(c.cachesToSync, configMapInformer.Informer().HasSynced)
7274

73-
secretInformer.Informer().AddEventHandler(c.eventHandler())
75+
if _, err := secretInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
76+
return nil, err
77+
}
7478
c.cachesToSync = append(c.cachesToSync, secretInformer.Informer().HasSynced)
7579

76-
serviceInformer.Informer().AddEventHandler(c.eventHandler())
80+
if _, err := serviceInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
81+
return nil, err
82+
}
7783
c.cachesToSync = append(c.cachesToSync, serviceInformer.Informer().HasSynced)
7884

79-
imageConfigInformer.Informer().AddEventHandler(c.eventHandler())
85+
if _, err := imageConfigInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
86+
return nil, err
87+
}
8088
c.cachesToSync = append(c.cachesToSync, imageConfigInformer.Informer().HasSynced)
8189

82-
infrastructureInformer.Informer().AddEventHandler(c.eventHandler())
90+
if _, err := infrastructureInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
91+
return nil, err
92+
}
8393
c.cachesToSync = append(c.cachesToSync, infrastructureInformer.Informer().HasSynced)
8494

85-
openshiftConfigInformer.Informer().AddEventHandler(c.eventHandler())
95+
if _, err := openshiftConfigInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
96+
return nil, err
97+
}
8698
c.cachesToSync = append(c.cachesToSync, openshiftConfigInformer.Informer().HasSynced)
8799

88-
openshiftConfigManagedInformer.Informer().AddEventHandler(c.eventHandler())
100+
if _, err := openshiftConfigManagedInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
101+
return nil, err
102+
}
89103
c.cachesToSync = append(c.cachesToSync, openshiftConfigManagedInformer.Informer().HasSynced)
90104

91105
c.storageListers = client.NewStorageListers(
@@ -95,7 +109,7 @@ func NewImageRegistryCertificatesController(
95109
secretInformer.Lister().Secrets(defaults.ImageRegistryOperatorNamespace),
96110
)
97111

98-
return c
112+
return c, nil
99113
}
100114

101115
func (c *ImageRegistryCertificatesController) eventHandler() cache.ResourceEventHandler {

pkg/operator/nodecadaemon.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func NewNodeCADaemonController(
4444
operatorClient v1helpers.OperatorClient,
4545
daemonSetInformer appsv1informers.DaemonSetInformer,
4646
serviceInformer corev1informers.ServiceInformer,
47-
) *NodeCADaemonController {
47+
) (*NodeCADaemonController, error) {
4848
c := &NodeCADaemonController{
4949
eventRecorder: eventRecorder,
5050
appsClient: appsClient,
@@ -54,13 +54,17 @@ func NewNodeCADaemonController(
5454
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "NodeCADaemonController"),
5555
}
5656

57-
daemonSetInformer.Informer().AddEventHandler(c.eventHandler())
57+
if _, err := daemonSetInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
58+
return nil, err
59+
}
5860
c.cachesToSync = append(c.cachesToSync, daemonSetInformer.Informer().HasSynced)
5961

60-
serviceInformer.Informer().AddEventHandler(c.eventHandler())
62+
if _, err := serviceInformer.Informer().AddEventHandler(c.eventHandler()); err != nil {
63+
return nil, err
64+
}
6165
c.cachesToSync = append(c.cachesToSync, serviceInformer.Informer().HasSynced)
6266

63-
return c
67+
return c, nil
6468
}
6569

6670
func (c *NodeCADaemonController) eventHandler() cache.ResourceEventHandler {

pkg/operator/starter.go

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func RunOperator(ctx context.Context, kubeconfig *restclient.Config) error {
6868
}
6969
eventRecorder := events.NewKubeRecorder(kubeClient.CoreV1().Events(defaults.ImageRegistryOperatorNamespace), "image-registry-operator", controllerRef)
7070

71-
controller := NewController(
71+
controller, err := NewController(
7272
eventRecorder,
7373
kubeconfig,
7474
kubeClient,
@@ -83,15 +83,21 @@ func RunOperator(ctx context.Context, kubeconfig *restclient.Config) error {
8383
imageregistryInformers,
8484
routeInformers,
8585
)
86+
if err != nil {
87+
return err
88+
}
8689

87-
imageConfigStatusController := NewImageConfigController(
90+
imageConfigStatusController, err := NewImageConfigController(
8891
configClient.ConfigV1(),
8992
configOperatorClient,
9093
routeInformers.Route().V1().Routes(),
9194
kubeInformers.Core().V1().Services(),
9295
)
96+
if err != nil {
97+
return err
98+
}
9399

94-
clusterOperatorStatusController := NewClusterOperatorStatusController(
100+
clusterOperatorStatusController, err := NewClusterOperatorStatusController(
95101
[]configv1.ObjectReference{
96102
{Group: "imageregistry.operator.openshift.io", Resource: "configs", Name: "cluster"},
97103
{Group: "imageregistry.operator.openshift.io", Resource: "imagepruners", Name: "cluster"},
@@ -106,8 +112,11 @@ func RunOperator(ctx context.Context, kubeconfig *restclient.Config) error {
106112
imageregistryInformers.Imageregistry().V1().ImagePruners(),
107113
kubeInformers.Apps().V1().Deployments(),
108114
)
115+
if err != nil {
116+
return err
117+
}
109118

110-
imageRegistryCertificatesController := NewImageRegistryCertificatesController(
119+
imageRegistryCertificatesController, err := NewImageRegistryCertificatesController(
111120
kubeconfig,
112121
kubeClient.CoreV1(),
113122
configOperatorClient,
@@ -120,32 +129,44 @@ func RunOperator(ctx context.Context, kubeconfig *restclient.Config) error {
120129
kubeInformersForOpenShiftConfigManaged.Core().V1().ConfigMaps(),
121130
imageregistryInformers.Imageregistry().V1().Configs(),
122131
)
132+
if err != nil {
133+
return err
134+
}
123135

124-
nodeCADaemonController := NewNodeCADaemonController(
136+
nodeCADaemonController, err := NewNodeCADaemonController(
125137
eventRecorder,
126138
kubeClient.AppsV1(),
127139
configOperatorClient,
128140
kubeInformers.Apps().V1().DaemonSets(),
129141
kubeInformers.Core().V1().Services(),
130142
)
143+
if err != nil {
144+
return err
145+
}
131146

132-
imagePrunerController := NewImagePrunerController(
147+
imagePrunerController, err := NewImagePrunerController(
133148
kubeClient,
134149
imageregistryClient,
135150
kubeInformers,
136151
imageregistryInformers,
137152
configInformers.Config().V1().Images(),
138153
)
154+
if err != nil {
155+
return err
156+
}
139157

140158
loggingController := loglevel.NewClusterOperatorLoggingController(
141159
configOperatorClient,
142160
eventRecorder,
143161
)
144162

145-
azureStackCloudController := NewAzureStackCloudController(
163+
azureStackCloudController, err := NewAzureStackCloudController(
146164
configOperatorClient,
147165
kubeInformersForOpenShiftConfig.Core().V1().ConfigMaps(),
148166
)
167+
if err != nil {
168+
return err
169+
}
149170

150171
metricsController := NewMetricsController(imageInformers.Image().V1().ImageStreams())
151172

0 commit comments

Comments
 (0)