Skip to content

Commit b74d01d

Browse files
authored
Merge pull request #1937 from kube-logging/fix/cache-overwrite
fix: cache overwrite
2 parents 15cdfcc + 972f825 commit b74d01d

File tree

1 file changed

+27
-62
lines changed

1 file changed

+27
-62
lines changed

main.go

Lines changed: 27 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -342,10 +342,11 @@ func setupCustomCache(mgrOptions *ctrl.Options, syncPeriod string, namespace str
342342
var labelSelector labels.Selector
343343
if namespace != "" {
344344
namespaceSelector = fields.Set{"metadata.namespace": namespace}.AsSelector()
345-
mgrOptions.Cache.DefaultNamespaces = map[string]cache.Config{
346-
namespace: {
347-
FieldSelector: namespaceSelector,
348-
},
345+
if mgrOptions.Cache.DefaultNamespaces == nil {
346+
mgrOptions.Cache.DefaultNamespaces = make(map[string]cache.Config)
347+
}
348+
mgrOptions.Cache.DefaultNamespaces[namespace] = cache.Config{
349+
FieldSelector: namespaceSelector,
349350
}
350351
}
351352
if loggingRef != "" {
@@ -358,70 +359,34 @@ func setupCustomCache(mgrOptions *ctrl.Options, syncPeriod string, namespace str
358359
// It would be much better to watch for a common label, but we don't have that yet.
359360
// Adding a new label would recreate statefulsets and daemonsets which would be undesirable.
360361
// Let's see how this works in the wild. We can optimize in a subsequent iteration.
361-
req, err := labels.NewRequirement("app.kubernetes.io/name", selection.In, []string{
362-
"fluentd", "syslog-ng", "fluentbit",
363-
})
362+
req, err := labels.NewRequirement("app.kubernetes.io/name", selection.In, []string{"fluentd", "syslog-ng", "fluentbit"})
364363
if err != nil {
365364
return nil, err
366365
}
367366
labelSelector = labelSelector.Add(*req)
368367
}
369368

370-
mgrOptions.Cache = cache.Options{
371-
ByObject: map[client.Object]cache.ByObject{
372-
&corev1.Pod{}: {
373-
Field: namespaceSelector,
374-
Label: labelSelector,
375-
},
376-
&batchv1.Job{}: {
377-
Field: namespaceSelector,
378-
Label: labelSelector,
379-
},
380-
&corev1.Service{}: {
381-
Field: namespaceSelector,
382-
Label: labelSelector,
383-
},
384-
&rbacv1.Role{}: {
385-
Field: namespaceSelector,
386-
Label: labelSelector,
387-
},
388-
&rbacv1.ClusterRole{}: {
389-
Field: namespaceSelector,
390-
Label: labelSelector,
391-
},
392-
&rbacv1.RoleBinding{}: {
393-
Field: namespaceSelector,
394-
Label: labelSelector,
395-
},
396-
&rbacv1.ClusterRoleBinding{}: {
397-
Field: namespaceSelector,
398-
Label: labelSelector,
399-
},
400-
&corev1.ServiceAccount{}: {
401-
Field: namespaceSelector,
402-
Label: labelSelector,
403-
},
404-
&appsv1.DaemonSet{}: {
405-
Field: namespaceSelector,
406-
Label: labelSelector,
407-
},
408-
&appsv1.StatefulSet{}: {
409-
Field: namespaceSelector,
410-
Label: labelSelector,
411-
},
412-
&appsv1.Deployment{}: {
413-
Field: namespaceSelector,
414-
Label: labelSelector,
415-
},
416-
&corev1.PersistentVolumeClaim{}: {
417-
Field: namespaceSelector,
418-
Label: labelSelector,
419-
},
420-
&corev1.ConfigMap{}: {
421-
Field: namespaceSelector,
422-
Label: labelSelector,
423-
},
424-
},
369+
if mgrOptions.Cache.ByObject == nil {
370+
mgrOptions.Cache.ByObject = make(map[client.Object]cache.ByObject)
371+
}
372+
objectsToWatch := map[client.Object]cache.ByObject{
373+
&corev1.Pod{}: {Field: namespaceSelector, Label: labelSelector},
374+
&batchv1.Job{}: {Field: namespaceSelector, Label: labelSelector},
375+
&corev1.Service{}: {Field: namespaceSelector, Label: labelSelector},
376+
&rbacv1.Role{}: {Field: namespaceSelector, Label: labelSelector},
377+
&rbacv1.ClusterRole{}: {Field: namespaceSelector, Label: labelSelector},
378+
&rbacv1.RoleBinding{}: {Field: namespaceSelector, Label: labelSelector},
379+
&rbacv1.ClusterRoleBinding{}: {Field: namespaceSelector, Label: labelSelector},
380+
&corev1.ServiceAccount{}: {Field: namespaceSelector, Label: labelSelector},
381+
&appsv1.DaemonSet{}: {Field: namespaceSelector, Label: labelSelector},
382+
&appsv1.StatefulSet{}: {Field: namespaceSelector, Label: labelSelector},
383+
&appsv1.Deployment{}: {Field: namespaceSelector, Label: labelSelector},
384+
&corev1.PersistentVolumeClaim{}: {Field: namespaceSelector, Label: labelSelector},
385+
&corev1.ConfigMap{}: {Field: namespaceSelector, Label: labelSelector},
386+
}
387+
388+
for obj, config := range objectsToWatch {
389+
mgrOptions.Cache.ByObject[obj] = config
425390
}
426391
}
427392

0 commit comments

Comments
 (0)