Skip to content

Commit 8b8fc52

Browse files
author
Jim Ryan
authored
refactor configmap.go for extensability (nginx#6873)
1 parent 7e7535d commit 8b8fc52

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

internal/k8s/configmap.go

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,8 @@ func createConfigMapHandlers(lbc *LoadBalancerController, name string) cache.Res
5050
}
5151
}
5252

53-
// addConfigMapHandler adds the handler for config maps to the controller
54-
func (lbc *LoadBalancerController) addConfigMapHandler(handlers cache.ResourceEventHandlerFuncs, namespace string) {
55-
options := cache.InformerOptions{
53+
func (lbc *LoadBalancerController) getConfigMapHandlerOptions(handlers cache.ResourceEventHandlerFuncs, namespace string) cache.InformerOptions {
54+
return cache.InformerOptions{
5655
ListerWatcher: cache.NewListWatchFromClient(
5756
lbc.client.CoreV1().RESTClient(),
5857
"configmaps",
@@ -62,6 +61,12 @@ func (lbc *LoadBalancerController) addConfigMapHandler(handlers cache.ResourceEv
6261
ResyncPeriod: lbc.resync,
6362
Handler: handlers,
6463
}
64+
}
65+
66+
// addConfigMapHandler adds the handler for config maps to the controller
67+
func (lbc *LoadBalancerController) addConfigMapHandler(handlers cache.ResourceEventHandlerFuncs, namespace string) {
68+
options := lbc.getConfigMapHandlerOptions(handlers, namespace)
69+
6570
lbc.configMapLister.Store, lbc.configMapController = cache.NewInformerWithOptions(options)
6671
lbc.cacheSyncs = append(lbc.cacheSyncs, lbc.configMapController.HasSynced)
6772
}
@@ -75,14 +80,17 @@ func (lbc *LoadBalancerController) syncConfigMap(task task) {
7580
lbc.syncQueue.Requeue(task, err)
7681
return
7782
}
78-
if configExists {
79-
lbc.configMap = obj.(*v1.ConfigMap)
80-
externalStatusAddress, exists := lbc.configMap.Data["external-status-address"]
81-
if exists {
82-
lbc.statusUpdater.SaveStatusFromExternalStatus(externalStatusAddress)
83+
switch key {
84+
case lbc.nginxConfigMapName:
85+
if configExists {
86+
lbc.configMap = obj.(*v1.ConfigMap)
87+
externalStatusAddress, exists := lbc.configMap.Data["external-status-address"]
88+
if exists {
89+
lbc.statusUpdater.SaveStatusFromExternalStatus(externalStatusAddress)
90+
}
91+
} else {
92+
lbc.configMap = nil
8393
}
84-
} else {
85-
lbc.configMap = nil
8694
}
8795

8896
if !lbc.isNginxReady {

internal/k8s/controller.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ type LoadBalancerController struct {
171171
telemetryCollector *telemetry.Collector
172172
telemetryChan chan struct{}
173173
weightChangesDynamicReload bool
174+
nginxConfigMapName string
174175
}
175176

176177
var keyFunc = cache.DeletionHandlingMetaNamespaceKeyFunc
@@ -263,6 +264,7 @@ func NewLoadBalancerController(input NewLoadBalancerControllerInput) *LoadBalanc
263264
isLatencyMetricsEnabled: input.IsLatencyMetricsEnabled,
264265
isIPV6Disabled: input.IsIPV6Disabled,
265266
weightChangesDynamicReload: input.DynamicWeightChangesReload,
267+
nginxConfigMapName: input.ConfigMaps,
266268
}
267269

268270
lbc.syncQueue = newTaskQueue(lbc.Logger, lbc.sync)

0 commit comments

Comments
 (0)