From 93d7feb8a248ab9135f2e4a12d3cc62012c5c757 Mon Sep 17 00:00:00 2001 From: wojtekt Date: Mon, 15 Jul 2019 11:49:53 +0200 Subject: [PATCH] Fix kubelet watches to propagate all options --- pkg/kubelet/kubeletconfig/BUILD | 2 -- pkg/kubelet/kubeletconfig/checkpoint/BUILD | 1 - .../kubeletconfig/checkpoint/download.go | 17 ++--------------- pkg/kubelet/kubeletconfig/watch.go | 18 ++---------------- 4 files changed, 4 insertions(+), 34 deletions(-) diff --git a/pkg/kubelet/kubeletconfig/BUILD b/pkg/kubelet/kubeletconfig/BUILD index 55383942ff0..483c295725a 100644 --- a/pkg/kubelet/kubeletconfig/BUILD +++ b/pkg/kubelet/kubeletconfig/BUILD @@ -23,10 +23,8 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//staging/src/k8s.io/client-go/tools/cache:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/checkpoint/BUILD b/pkg/kubelet/kubeletconfig/checkpoint/BUILD index 3522940498b..0d6581955fb 100644 --- a/pkg/kubelet/kubeletconfig/checkpoint/BUILD +++ b/pkg/kubelet/kubeletconfig/checkpoint/BUILD @@ -43,7 +43,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//staging/src/k8s.io/kubelet/config/v1beta1:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/checkpoint/download.go b/pkg/kubelet/kubeletconfig/checkpoint/download.go index 8c4f258006c..b501b670870 100644 --- a/pkg/kubelet/kubeletconfig/checkpoint/download.go +++ b/pkg/kubelet/kubeletconfig/checkpoint/download.go @@ -26,7 +26,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/watch" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cache" kubeletconfigv1beta1 "k8s.io/kubelet/config/v1beta1" @@ -212,26 +211,14 @@ func (r *remoteConfigMap) Download(client clientset.Interface, store cache.Store func (r *remoteConfigMap) Informer(client clientset.Interface, handler cache.ResourceEventHandlerFuncs) cache.SharedInformer { // select ConfigMap by name - fieldselector := fields.OneTermEqualSelector("metadata.name", r.source.ConfigMap.Name) + fieldSelector := fields.OneTermEqualSelector("metadata.name", r.source.ConfigMap.Name) // add some randomness to resync period, which can help avoid controllers falling into lock-step minResyncPeriod := 15 * time.Minute factor := rand.Float64() + 1 resyncPeriod := time.Duration(float64(minResyncPeriod.Nanoseconds()) * factor) - lw := &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - return client.CoreV1().ConfigMaps(r.source.ConfigMap.Namespace).List(metav1.ListOptions{ - FieldSelector: fieldselector.String(), - }) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return client.CoreV1().ConfigMaps(r.source.ConfigMap.Namespace).Watch(metav1.ListOptions{ - FieldSelector: fieldselector.String(), - ResourceVersion: options.ResourceVersion, - }) - }, - } + lw := cache.NewListWatchFromClient(client.CoreV1().RESTClient(), "configmaps", r.source.ConfigMap.Namespace, fieldSelector) informer := cache.NewSharedInformer(lw, &apiv1.ConfigMap{}, resyncPeriod) informer.AddEventHandler(handler) diff --git a/pkg/kubelet/kubeletconfig/watch.go b/pkg/kubelet/kubeletconfig/watch.go index 879fb747c7c..bc247962ea7 100644 --- a/pkg/kubelet/kubeletconfig/watch.go +++ b/pkg/kubelet/kubeletconfig/watch.go @@ -24,8 +24,6 @@ import ( apiequality "k8s.io/apimachinery/pkg/api/equality" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" - kuberuntime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/watch" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cache" utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" @@ -38,26 +36,14 @@ func newSharedNodeInformer(client clientset.Interface, nodeName string, updateFunc func(oldObj interface{}, newObj interface{}), deleteFunc func(deletedObj interface{})) cache.SharedInformer { // select nodes by name - fieldselector := fields.OneTermEqualSelector("metadata.name", nodeName) + fieldSelector := fields.OneTermEqualSelector("metadata.name", nodeName) // add some randomness to resync period, which can help avoid controllers falling into lock-step minResyncPeriod := 15 * time.Minute factor := rand.Float64() + 1 resyncPeriod := time.Duration(float64(minResyncPeriod.Nanoseconds()) * factor) - lw := &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (kuberuntime.Object, error) { - return client.CoreV1().Nodes().List(metav1.ListOptions{ - FieldSelector: fieldselector.String(), - }) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - return client.CoreV1().Nodes().Watch(metav1.ListOptions{ - FieldSelector: fieldselector.String(), - ResourceVersion: options.ResourceVersion, - }) - }, - } + lw := cache.NewListWatchFromClient(client.CoreV1().RESTClient(), "nodes", metav1.NamespaceAll, fieldSelector) handler := cache.ResourceEventHandlerFuncs{ AddFunc: addFunc,