@@ -3,6 +3,7 @@ package scylladbcluster
3
3
import (
4
4
"context"
5
5
"fmt"
6
+ corev1informers "k8s.io/client-go/informers/core/v1"
6
7
"sync"
7
8
"time"
8
9
@@ -54,6 +55,8 @@ type Controller struct {
54
55
55
56
scyllaDBClusterLister scyllav1alpha1listers.ScyllaDBClusterLister
56
57
scyllaOperatorConfigLister scyllav1alpha1listers.ScyllaOperatorConfigLister
58
+ configMapLister corev1listers.ConfigMapLister
59
+ secretLister corev1listers.SecretLister
57
60
58
61
remoteRemoteOwnerLister remotelister.GenericClusterLister [scyllav1alpha1listers.RemoteOwnerLister ]
59
62
remoteScyllaDBDatacenterLister remotelister.GenericClusterLister [scyllav1alpha1listers.ScyllaDBDatacenterLister ]
@@ -62,6 +65,8 @@ type Controller struct {
62
65
remoteEndpointSliceLister remotelister.GenericClusterLister [discoveryv1listers.EndpointSliceLister ]
63
66
remoteEndpointsLister remotelister.GenericClusterLister [corev1listers.EndpointsLister ]
64
67
remotePodLister remotelister.GenericClusterLister [corev1listers.PodLister ]
68
+ remoteConfigMapLister remotelister.GenericClusterLister [corev1listers.ConfigMapLister ]
69
+ remoteSecretLister remotelister.GenericClusterLister [corev1listers.SecretLister ]
65
70
66
71
cachesToSync []cache.InformerSynced
67
72
@@ -78,13 +83,17 @@ func NewController(
78
83
scyllaRemoteClient remoteclient.ClusterClientInterface [scyllaclient.Interface ],
79
84
scyllaDBClusterInformer scyllav1alpha1informers.ScyllaDBClusterInformer ,
80
85
scyllaOperatorConfigInformer scyllav1alpha1informers.ScyllaOperatorConfigInformer ,
86
+ configMapInformer corev1informers.ConfigMapInformer ,
87
+ secretInformer corev1informers.SecretInformer ,
81
88
remoteRemoteOwnerInformer remoteinformers.GenericClusterInformer ,
82
89
remoteScyllaDBDatacenterInformer remoteinformers.GenericClusterInformer ,
83
90
remoteNamespaceInformer remoteinformers.GenericClusterInformer ,
84
91
remoteServiceInformer remoteinformers.GenericClusterInformer ,
85
92
remoteEndpointSliceInformer remoteinformers.GenericClusterInformer ,
86
93
remoteEndpointsInformer remoteinformers.GenericClusterInformer ,
87
94
remotePodInformer remoteinformers.GenericClusterInformer ,
95
+ remoteConfigMapInformer remoteinformers.GenericClusterInformer ,
96
+ remoteSecretInformer remoteinformers.GenericClusterInformer ,
88
97
) (* Controller , error ) {
89
98
eventBroadcaster := record .NewBroadcaster ()
90
99
eventBroadcaster .StartStructuredLogging (0 )
@@ -98,6 +107,8 @@ func NewController(
98
107
99
108
scyllaDBClusterLister : scyllaDBClusterInformer .Lister (),
100
109
scyllaOperatorConfigLister : scyllaOperatorConfigInformer .Lister (),
110
+ configMapLister : configMapInformer .Lister (),
111
+ secretLister : secretInformer .Lister (),
101
112
102
113
remoteRemoteOwnerLister : remotelister .NewClusterLister (scyllav1alpha1listers .NewRemoteOwnerLister , remoteRemoteOwnerInformer .Indexer ().Cluster ),
103
114
remoteScyllaDBDatacenterLister : remotelister .NewClusterLister (scyllav1alpha1listers .NewScyllaDBDatacenterLister , remoteScyllaDBDatacenterInformer .Indexer ().Cluster ),
@@ -106,16 +117,23 @@ func NewController(
106
117
remoteEndpointSliceLister : remotelister .NewClusterLister (discoveryv1listers .NewEndpointSliceLister , remoteEndpointSliceInformer .Indexer ().Cluster ),
107
118
remoteEndpointsLister : remotelister .NewClusterLister (corev1listers .NewEndpointsLister , remoteEndpointsInformer .Indexer ().Cluster ),
108
119
remotePodLister : remotelister .NewClusterLister (corev1listers .NewPodLister , remotePodInformer .Indexer ().Cluster ),
120
+ remoteConfigMapLister : remotelister .NewClusterLister (corev1listers .NewConfigMapLister , remoteConfigMapInformer .Indexer ().Cluster ),
121
+ remoteSecretLister : remotelister .NewClusterLister (corev1listers .NewSecretLister , remoteSecretInformer .Indexer ().Cluster ),
109
122
110
123
cachesToSync : []cache.InformerSynced {
111
124
scyllaDBClusterInformer .Informer ().HasSynced ,
125
+ scyllaOperatorConfigInformer .Informer ().HasSynced ,
126
+ configMapInformer .Informer ().HasSynced ,
127
+ secretInformer .Informer ().HasSynced ,
112
128
remoteRemoteOwnerInformer .Informer ().HasSynced ,
113
129
remoteScyllaDBDatacenterInformer .Informer ().HasSynced ,
114
130
remoteNamespaceInformer .Informer ().HasSynced ,
115
131
remoteServiceInformer .Informer ().HasSynced ,
116
132
remoteEndpointSliceInformer .Informer ().HasSynced ,
117
133
remoteEndpointsInformer .Informer ().HasSynced ,
118
134
remotePodInformer .Informer ().HasSynced ,
135
+ remoteConfigMapInformer .Informer ().HasSynced ,
136
+ remoteSecretInformer .Informer ().HasSynced ,
119
137
},
120
138
121
139
eventRecorder : eventBroadcaster .NewRecorder (scheme .Scheme , corev1.EventSource {Component : "scylladbcluster-controller" }),
@@ -211,6 +229,22 @@ func NewController(
211
229
},
212
230
)
213
231
232
+ remoteConfigMapInformer .Informer ().AddEventHandler (
233
+ cache.ResourceEventHandlerFuncs {
234
+ AddFunc : scc .addRemoteConfigMap ,
235
+ UpdateFunc : scc .updateRemoteConfigMap ,
236
+ DeleteFunc : scc .deleteRemoteConfigMap ,
237
+ },
238
+ )
239
+
240
+ remoteSecretInformer .Informer ().AddEventHandler (
241
+ cache.ResourceEventHandlerFuncs {
242
+ AddFunc : scc .addRemoteSecret ,
243
+ UpdateFunc : scc .updateRemoteSecret ,
244
+ DeleteFunc : scc .deleteRemoteSecret ,
245
+ },
246
+ )
247
+
214
248
err = utilerrors .NewAggregate (errs )
215
249
if err != nil {
216
250
return nil , fmt .Errorf ("can't register event handlers: %w" , err )
@@ -540,3 +574,49 @@ func (scc *Controller) deleteRemotePod(obj interface{}) {
540
574
scc .enqueueThroughParentLabel ,
541
575
)
542
576
}
577
+
578
+ func (scc * Controller ) addRemoteConfigMap (obj interface {}) {
579
+ scc .handlers .HandleAdd (
580
+ obj .(* corev1.ConfigMap ),
581
+ scc .enqueueThroughParentLabel ,
582
+ )
583
+ }
584
+
585
+ func (scc * Controller ) updateRemoteConfigMap (old , cur interface {}) {
586
+ scc .handlers .HandleUpdate (
587
+ old .(* corev1.ConfigMap ),
588
+ cur .(* corev1.ConfigMap ),
589
+ scc .enqueueThroughParentLabel ,
590
+ scc .deleteRemoteConfigMap ,
591
+ )
592
+ }
593
+
594
+ func (scc * Controller ) deleteRemoteConfigMap (obj interface {}) {
595
+ scc .handlers .HandleDelete (
596
+ obj ,
597
+ scc .enqueueThroughParentLabel ,
598
+ )
599
+ }
600
+
601
+ func (scc * Controller ) addRemoteSecret (obj interface {}) {
602
+ scc .handlers .HandleAdd (
603
+ obj .(* corev1.Secret ),
604
+ scc .enqueueThroughParentLabel ,
605
+ )
606
+ }
607
+
608
+ func (scc * Controller ) updateRemoteSecret (old , cur interface {}) {
609
+ scc .handlers .HandleUpdate (
610
+ old .(* corev1.Secret ),
611
+ cur .(* corev1.Secret ),
612
+ scc .enqueueThroughParentLabel ,
613
+ scc .deleteRemoteSecret ,
614
+ )
615
+ }
616
+
617
+ func (scc * Controller ) deleteRemoteSecret (obj interface {}) {
618
+ scc .handlers .HandleDelete (
619
+ obj ,
620
+ scc .enqueueThroughParentLabel ,
621
+ )
622
+ }
0 commit comments