mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Fix kubelet watches to propagate all options
This commit is contained in:
		@@ -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",
 | 
			
		||||
 
 | 
			
		||||
@@ -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",
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user