@@ -36,6 +36,8 @@ import (
36
36
k8ssync "github.com/haproxytech/kubernetes-ingress/pkg/k8s/sync"
37
37
"github.com/haproxytech/kubernetes-ingress/pkg/utils"
38
38
crdclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
39
+ "k8s.io/apimachinery/pkg/fields"
40
+
39
41
errGw "k8s.io/apimachinery/pkg/api/errors"
40
42
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
41
43
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -256,6 +258,20 @@ func (k k8s) runCRInformers(eventChan chan k8ssync.SyncDataEvent, stop chan stru
256
258
}
257
259
}
258
260
261
+ func (k k8s ) runConfigMapInformers (eventChan chan k8ssync.SyncDataEvent , stop chan struct {}, informersSynced * []cache.InformerSynced , configMap utils.NamespaceValue ) {
262
+ if configMap .Name != "" {
263
+ fieldSelector := fields .OneTermEqualSelector ("metadata.name" , configMap .Name ).String ()
264
+ factory := k8sinformers .NewSharedInformerFactoryWithOptions (k .builtInClient , k .cacheResyncPeriod , k8sinformers .WithNamespace (configMap .Namespace ),
265
+ k8sinformers .WithTweakListOptions (func (opts * metav1.ListOptions ) {
266
+ opts .FieldSelector = fieldSelector
267
+ }))
268
+
269
+ cmi := k .getConfigMapInformer (eventChan , factory )
270
+ go cmi .Run (stop )
271
+ * informersSynced = append (* informersSynced , cmi .HasSynced )
272
+ }
273
+ }
274
+
259
275
func (k k8s ) runInformers (eventChan chan k8ssync.SyncDataEvent , stop chan struct {}, namespace string , informersSynced * []cache.InformerSynced , osArgs utils.OSArgs ) {
260
276
factory := k8sinformers .NewSharedInformerFactoryWithOptions (k .builtInClient , k .cacheResyncPeriod , k8sinformers .WithNamespace (namespace ))
261
277
// Core.V1 Resources
@@ -265,10 +281,12 @@ func (k k8s) runInformers(eventChan chan k8ssync.SyncDataEvent, stop chan struct
265
281
go svci .Run (stop )
266
282
seci := k .getSecretInformer (eventChan , factory )
267
283
go seci .Run (stop )
268
- cmi := k .getConfigMapInformer (eventChan , factory )
269
- go cmi .Run (stop )
284
+ * informersSynced = append (* informersSynced , svci .HasSynced , nsi .HasSynced , seci .HasSynced )
270
285
271
- * informersSynced = append (* informersSynced , svci .HasSynced , nsi .HasSynced , seci .HasSynced , cmi .HasSynced )
286
+ k .runConfigMapInformers (eventChan , stop , informersSynced , osArgs .ConfigMap )
287
+ k .runConfigMapInformers (eventChan , stop , informersSynced , osArgs .ConfigMapTCPServices )
288
+ k .runConfigMapInformers (eventChan , stop , informersSynced , osArgs .ConfigMapErrorFiles )
289
+ k .runConfigMapInformers (eventChan , stop , informersSynced , osArgs .ConfigMapPatternFiles )
272
290
273
291
// Ingress and IngressClass Resources
274
292
ii , ici := k .getIngressInformers (eventChan , factory , osArgs )
0 commit comments