From abf59a9c602a7150660f8ef652673be9781f4dbb Mon Sep 17 00:00:00 2001 From: Pranshu Srivastava Date: Sun, 8 Oct 2023 22:47:38 +0530 Subject: [PATCH] Revert "Merge pull request #2192 from rexagod/prep-v2.10.1" This reverts commit d68bad28235354a675705fbe532f4c1162ee1101, reversing changes made to 25fb4fa0767de7ee314500fcb7481ca7b3a55a35. --- CHANGELOG.md | 8 -------- Makefile | 2 +- README.md | 8 ++++---- VERSION | 2 +- examples/autosharding/cluster-role-binding.yaml | 2 +- examples/autosharding/cluster-role.yaml | 2 +- examples/autosharding/role-binding.yaml | 2 +- examples/autosharding/role.yaml | 2 +- examples/autosharding/service-account.yaml | 2 +- examples/autosharding/service.yaml | 2 +- examples/autosharding/statefulset.yaml | 6 +++--- examples/daemonsetsharding/cluster-role-binding.yaml | 2 +- examples/daemonsetsharding/cluster-role.yaml | 2 +- examples/daemonsetsharding/daemonset-service.yaml | 2 +- examples/daemonsetsharding/daemonset.yaml | 6 +++--- examples/daemonsetsharding/deployment-service.yaml | 2 +- examples/daemonsetsharding/deployment.yaml | 6 +++--- examples/daemonsetsharding/service-account.yaml | 2 +- examples/standard/cluster-role-binding.yaml | 2 +- examples/standard/cluster-role.yaml | 2 +- examples/standard/deployment.yaml | 6 +++--- examples/standard/service-account.yaml | 2 +- examples/standard/service.yaml | 2 +- internal/store/certificatesigningrequest.go | 4 +++- internal/store/clusterrole.go | 4 +++- internal/store/clusterrolebinding.go | 4 +++- internal/store/ingressclass.go | 4 +++- internal/store/mutatingwebhookconfiguration.go | 4 +++- internal/store/namespace.go | 4 +++- internal/store/node.go | 4 +++- internal/store/persistentvolume.go | 4 +++- internal/store/storageclass.go | 4 +++- internal/store/validatingwebhookconfiguration.go | 4 +++- 33 files changed, 63 insertions(+), 51 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18ef2cfeb9..41cd142fb4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,3 @@ -## v2.10.1 / 2023-09-13 - -### Note -- This release addresses a regression introduced in https://github.com/kubernetes/kube-state-metrics/pull/2105. - -* [BUGFIX] Remove FieldSelector from non-namespaced resources by @mrueg and @dgrisonnet in https://github.com/kubernetes/kube-state-metrics/pull/2190 -* [ENHANCEMENT] Bump Go to v1.20.8 - ## v2.10.0 / 2023-08-31 ### Note diff --git a/Makefile b/Makefile index db597b86df..38c8f9e5a3 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ OS ?= $(shell uname -s | tr A-Z a-z) ALL_ARCH = amd64 arm arm64 ppc64le s390x PKG = github.com/prometheus/common PROMETHEUS_VERSION = 2.46.0 -GO_VERSION = 1.20.8 +GO_VERSION = 1.20.7 IMAGE = $(REGISTRY)/kube-state-metrics MULTI_ARCH_IMG = $(IMAGE)-$(ARCH) USER ?= $(shell id -u -n) diff --git a/README.md b/README.md index 08d0a05bff..54ddc6b9e9 100644 --- a/README.md +++ b/README.md @@ -77,8 +77,8 @@ Generally, it is recommended to use the latest release of kube-state-metrics. If | **v2.7.0** | v1.25 | | **v2.8.2** | v1.26 | | **v2.9.2** | v1.26 | -| **v2.10.1** | v1.27 | -| **main** | v1.28 | +| **v2.10.0** | v1.27 | +| **main** | v1.27 | #### Resource group version compatibility @@ -90,8 +90,8 @@ release. #### Container Image The latest container image can be found at: -* `registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.1` (arch: `amd64`, `arm`, `arm64`, `ppc64le` and `s390x`) -* View all multi-architecture images at [here](https://explore.ggcr.dev/?image=registry.k8s.io%2Fkube-state-metrics%2Fkube-state-metrics:v2.10.1) +* `registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.0` (arch: `amd64`, `arm`, `arm64`, `ppc64le` and `s390x`) +* View all multi-architecture images at [here](https://explore.ggcr.dev/?image=registry.k8s.io%2Fkube-state-metrics%2Fkube-state-metrics:v2.10.0) ### Metrics Documentation diff --git a/VERSION b/VERSION index 8bbb6e406a..10c2c0c3d6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.10.1 +2.10.0 diff --git a/examples/autosharding/cluster-role-binding.yaml b/examples/autosharding/cluster-role-binding.yaml index 29645f249e..ac698e55b6 100644 --- a/examples/autosharding/cluster-role-binding.yaml +++ b/examples/autosharding/cluster-role-binding.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io diff --git a/examples/autosharding/cluster-role.yaml b/examples/autosharding/cluster-role.yaml index 6951d6481c..3171418165 100644 --- a/examples/autosharding/cluster-role.yaml +++ b/examples/autosharding/cluster-role.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics rules: - apiGroups: diff --git a/examples/autosharding/role-binding.yaml b/examples/autosharding/role-binding.yaml index c5c0dd4188..252f59598c 100644 --- a/examples/autosharding/role-binding.yaml +++ b/examples/autosharding/role-binding.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics namespace: kube-system roleRef: diff --git a/examples/autosharding/role.yaml b/examples/autosharding/role.yaml index dd15387b69..e4562c3732 100644 --- a/examples/autosharding/role.yaml +++ b/examples/autosharding/role.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics namespace: kube-system rules: diff --git a/examples/autosharding/service-account.yaml b/examples/autosharding/service-account.yaml index 206b746915..fa83a8e6e0 100644 --- a/examples/autosharding/service-account.yaml +++ b/examples/autosharding/service-account.yaml @@ -5,6 +5,6 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics namespace: kube-system diff --git a/examples/autosharding/service.yaml b/examples/autosharding/service.yaml index caada6028a..19aca0a936 100644 --- a/examples/autosharding/service.yaml +++ b/examples/autosharding/service.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics namespace: kube-system spec: diff --git a/examples/autosharding/statefulset.yaml b/examples/autosharding/statefulset.yaml index 978c998202..4cebb09b61 100644 --- a/examples/autosharding/statefulset.yaml +++ b/examples/autosharding/statefulset.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics namespace: kube-system spec: @@ -18,7 +18,7 @@ spec: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 spec: automountServiceAccountToken: true containers: @@ -34,7 +34,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.1 + image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.0 livenessProbe: httpGet: path: /healthz diff --git a/examples/daemonsetsharding/cluster-role-binding.yaml b/examples/daemonsetsharding/cluster-role-binding.yaml index 29645f249e..ac698e55b6 100644 --- a/examples/daemonsetsharding/cluster-role-binding.yaml +++ b/examples/daemonsetsharding/cluster-role-binding.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io diff --git a/examples/daemonsetsharding/cluster-role.yaml b/examples/daemonsetsharding/cluster-role.yaml index 6951d6481c..3171418165 100644 --- a/examples/daemonsetsharding/cluster-role.yaml +++ b/examples/daemonsetsharding/cluster-role.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics rules: - apiGroups: diff --git a/examples/daemonsetsharding/daemonset-service.yaml b/examples/daemonsetsharding/daemonset-service.yaml index 630d4d2bac..739889210a 100644 --- a/examples/daemonsetsharding/daemonset-service.yaml +++ b/examples/daemonsetsharding/daemonset-service.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics-shard - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics-shard namespace: kube-system spec: diff --git a/examples/daemonsetsharding/daemonset.yaml b/examples/daemonsetsharding/daemonset.yaml index 2d638ee080..3ae83cf6c4 100644 --- a/examples/daemonsetsharding/daemonset.yaml +++ b/examples/daemonsetsharding/daemonset.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics-shard - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics-shard namespace: kube-system spec: @@ -16,7 +16,7 @@ spec: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics-shard - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 spec: automountServiceAccountToken: true containers: @@ -29,7 +29,7 @@ spec: fieldRef: apiVersion: v1 fieldPath: spec.nodeName - image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.1 + image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.0 livenessProbe: httpGet: path: /healthz diff --git a/examples/daemonsetsharding/deployment-service.yaml b/examples/daemonsetsharding/deployment-service.yaml index caada6028a..19aca0a936 100644 --- a/examples/daemonsetsharding/deployment-service.yaml +++ b/examples/daemonsetsharding/deployment-service.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics namespace: kube-system spec: diff --git a/examples/daemonsetsharding/deployment.yaml b/examples/daemonsetsharding/deployment.yaml index c0457422b4..57a43aaa91 100644 --- a/examples/daemonsetsharding/deployment.yaml +++ b/examples/daemonsetsharding/deployment.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics namespace: kube-system spec: @@ -17,13 +17,13 @@ spec: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 spec: automountServiceAccountToken: true containers: - args: - --resources=certificatesigningrequests,configmaps,cronjobs,daemonsets,deployments,endpoints,horizontalpodautoscalers,ingresses,jobs,leases,limitranges,mutatingwebhookconfigurations,namespaces,networkpolicies,nodes,persistentvolumeclaims,persistentvolumes,poddisruptionbudgets,replicasets,replicationcontrollers,resourcequotas,secrets,services,statefulsets,storageclasses,validatingwebhookconfigurations,volumeattachments - image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.1 + image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.0 livenessProbe: httpGet: path: /healthz diff --git a/examples/daemonsetsharding/service-account.yaml b/examples/daemonsetsharding/service-account.yaml index 206b746915..fa83a8e6e0 100644 --- a/examples/daemonsetsharding/service-account.yaml +++ b/examples/daemonsetsharding/service-account.yaml @@ -5,6 +5,6 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics namespace: kube-system diff --git a/examples/standard/cluster-role-binding.yaml b/examples/standard/cluster-role-binding.yaml index 29645f249e..ac698e55b6 100644 --- a/examples/standard/cluster-role-binding.yaml +++ b/examples/standard/cluster-role-binding.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io diff --git a/examples/standard/cluster-role.yaml b/examples/standard/cluster-role.yaml index 6951d6481c..3171418165 100644 --- a/examples/standard/cluster-role.yaml +++ b/examples/standard/cluster-role.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics rules: - apiGroups: diff --git a/examples/standard/deployment.yaml b/examples/standard/deployment.yaml index 9249a20f51..471275b152 100644 --- a/examples/standard/deployment.yaml +++ b/examples/standard/deployment.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics namespace: kube-system spec: @@ -17,11 +17,11 @@ spec: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 spec: automountServiceAccountToken: true containers: - - image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.1 + - image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.0 livenessProbe: httpGet: path: /healthz diff --git a/examples/standard/service-account.yaml b/examples/standard/service-account.yaml index 206b746915..fa83a8e6e0 100644 --- a/examples/standard/service-account.yaml +++ b/examples/standard/service-account.yaml @@ -5,6 +5,6 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics namespace: kube-system diff --git a/examples/standard/service.yaml b/examples/standard/service.yaml index caada6028a..19aca0a936 100644 --- a/examples/standard/service.yaml +++ b/examples/standard/service.yaml @@ -4,7 +4,7 @@ metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/version: 2.10.1 + app.kubernetes.io/version: 2.10.0 name: kube-state-metrics namespace: kube-system spec: diff --git a/internal/store/certificatesigningrequest.go b/internal/store/certificatesigningrequest.go index ea287e1490..c70cf801bd 100644 --- a/internal/store/certificatesigningrequest.go +++ b/internal/store/certificatesigningrequest.go @@ -153,12 +153,14 @@ func wrapCSRFunc(f func(*certv1.CertificateSigningRequest) *metric.Family) func( } } -func createCSRListWatch(kubeClient clientset.Interface, _ string, _ string) cache.ListerWatcher { +func createCSRListWatch(kubeClient clientset.Interface, _ string, fieldSelector string) cache.ListerWatcher { return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + opts.FieldSelector = fieldSelector return kubeClient.CertificatesV1().CertificateSigningRequests().List(context.TODO(), opts) }, WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + opts.FieldSelector = fieldSelector return kubeClient.CertificatesV1().CertificateSigningRequests().Watch(context.TODO(), opts) }, } diff --git a/internal/store/clusterrole.go b/internal/store/clusterrole.go index 86642ab229..ee7a7384df 100644 --- a/internal/store/clusterrole.go +++ b/internal/store/clusterrole.go @@ -138,12 +138,14 @@ func clusterRoleMetricFamilies(allowAnnotationsList, allowLabelsList []string) [ } } -func createClusterRoleListWatch(kubeClient clientset.Interface, _ string, _ string) cache.ListerWatcher { +func createClusterRoleListWatch(kubeClient clientset.Interface, _ string, fieldSelector string) cache.ListerWatcher { return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + opts.FieldSelector = fieldSelector return kubeClient.RbacV1().ClusterRoles().List(context.TODO(), opts) }, WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + opts.FieldSelector = fieldSelector return kubeClient.RbacV1().ClusterRoles().Watch(context.TODO(), opts) }, } diff --git a/internal/store/clusterrolebinding.go b/internal/store/clusterrolebinding.go index 494095221e..c046008b23 100644 --- a/internal/store/clusterrolebinding.go +++ b/internal/store/clusterrolebinding.go @@ -140,12 +140,14 @@ func clusterRoleBindingMetricFamilies(allowAnnotationsList, allowLabelsList []st } } -func createClusterRoleBindingListWatch(kubeClient clientset.Interface, _ string, _ string) cache.ListerWatcher { +func createClusterRoleBindingListWatch(kubeClient clientset.Interface, _ string, fieldSelector string) cache.ListerWatcher { return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + opts.FieldSelector = fieldSelector return kubeClient.RbacV1().ClusterRoleBindings().List(context.TODO(), opts) }, WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + opts.FieldSelector = fieldSelector return kubeClient.RbacV1().ClusterRoleBindings().Watch(context.TODO(), opts) }, } diff --git a/internal/store/ingressclass.go b/internal/store/ingressclass.go index 0724c9110a..ec7a0f7d71 100644 --- a/internal/store/ingressclass.go +++ b/internal/store/ingressclass.go @@ -134,12 +134,14 @@ func wrapIngressClassFunc(f func(*networkingv1.IngressClass) *metric.Family) fun } } -func createIngressClassListWatch(kubeClient clientset.Interface, _ string, _ string) cache.ListerWatcher { +func createIngressClassListWatch(kubeClient clientset.Interface, _ string, fieldSelector string) cache.ListerWatcher { return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + opts.FieldSelector = fieldSelector return kubeClient.NetworkingV1().IngressClasses().List(context.TODO(), opts) }, WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + opts.FieldSelector = fieldSelector return kubeClient.NetworkingV1().IngressClasses().Watch(context.TODO(), opts) }, } diff --git a/internal/store/mutatingwebhookconfiguration.go b/internal/store/mutatingwebhookconfiguration.go index c09df4773f..1a003f490a 100644 --- a/internal/store/mutatingwebhookconfiguration.go +++ b/internal/store/mutatingwebhookconfiguration.go @@ -111,12 +111,14 @@ var ( } ) -func createMutatingWebhookConfigurationListWatch(kubeClient clientset.Interface, _ string, _ string) cache.ListerWatcher { +func createMutatingWebhookConfigurationListWatch(kubeClient clientset.Interface, _ string, fieldSelector string) cache.ListerWatcher { return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + opts.FieldSelector = fieldSelector return kubeClient.AdmissionregistrationV1().MutatingWebhookConfigurations().List(context.TODO(), opts) }, WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + opts.FieldSelector = fieldSelector return kubeClient.AdmissionregistrationV1().MutatingWebhookConfigurations().Watch(context.TODO(), opts) }, } diff --git a/internal/store/namespace.go b/internal/store/namespace.go index e46c73cf28..df3f1f0578 100644 --- a/internal/store/namespace.go +++ b/internal/store/namespace.go @@ -176,12 +176,14 @@ func wrapNamespaceFunc(f func(*v1.Namespace) *metric.Family) func(interface{}) * } } -func createNamespaceListWatch(kubeClient clientset.Interface, _ string, _ string) cache.ListerWatcher { +func createNamespaceListWatch(kubeClient clientset.Interface, _ string, fieldSelector string) cache.ListerWatcher { return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + opts.FieldSelector = fieldSelector return kubeClient.CoreV1().Namespaces().List(context.TODO(), opts) }, WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + opts.FieldSelector = fieldSelector return kubeClient.CoreV1().Namespaces().Watch(context.TODO(), opts) }, } diff --git a/internal/store/node.go b/internal/store/node.go index 1d4d6bee4f..fb577a0bec 100644 --- a/internal/store/node.go +++ b/internal/store/node.go @@ -495,12 +495,14 @@ func wrapNodeFunc(f func(*v1.Node) *metric.Family) func(interface{}) *metric.Fam } } -func createNodeListWatch(kubeClient clientset.Interface, _ string, _ string) cache.ListerWatcher { +func createNodeListWatch(kubeClient clientset.Interface, _ string, fieldSelector string) cache.ListerWatcher { return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + opts.FieldSelector = fieldSelector return kubeClient.CoreV1().Nodes().List(context.TODO(), opts) }, WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + opts.FieldSelector = fieldSelector return kubeClient.CoreV1().Nodes().Watch(context.TODO(), opts) }, } diff --git a/internal/store/persistentvolume.go b/internal/store/persistentvolume.go index bd534ea87b..18778e33a5 100644 --- a/internal/store/persistentvolume.go +++ b/internal/store/persistentvolume.go @@ -366,12 +366,14 @@ func wrapPersistentVolumeFunc(f func(*v1.PersistentVolume) *metric.Family) func( } } -func createPersistentVolumeListWatch(kubeClient clientset.Interface, _ string, _ string) cache.ListerWatcher { +func createPersistentVolumeListWatch(kubeClient clientset.Interface, _ string, fieldSelector string) cache.ListerWatcher { return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + opts.FieldSelector = fieldSelector return kubeClient.CoreV1().PersistentVolumes().List(context.TODO(), opts) }, WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + opts.FieldSelector = fieldSelector return kubeClient.CoreV1().PersistentVolumes().Watch(context.TODO(), opts) }, } diff --git a/internal/store/storageclass.go b/internal/store/storageclass.go index 15c76d7965..d5ed3bae1a 100644 --- a/internal/store/storageclass.go +++ b/internal/store/storageclass.go @@ -146,12 +146,14 @@ func wrapStorageClassFunc(f func(*storagev1.StorageClass) *metric.Family) func(i } } -func createStorageClassListWatch(kubeClient clientset.Interface, _ string, _ string) cache.ListerWatcher { +func createStorageClassListWatch(kubeClient clientset.Interface, _ string, fieldSelector string) cache.ListerWatcher { return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + opts.FieldSelector = fieldSelector return kubeClient.StorageV1().StorageClasses().List(context.TODO(), opts) }, WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + opts.FieldSelector = fieldSelector return kubeClient.StorageV1().StorageClasses().Watch(context.TODO(), opts) }, } diff --git a/internal/store/validatingwebhookconfiguration.go b/internal/store/validatingwebhookconfiguration.go index 5084e8dd3e..17996419ac 100644 --- a/internal/store/validatingwebhookconfiguration.go +++ b/internal/store/validatingwebhookconfiguration.go @@ -111,12 +111,14 @@ var ( } ) -func createValidatingWebhookConfigurationListWatch(kubeClient clientset.Interface, _ string, _ string) cache.ListerWatcher { +func createValidatingWebhookConfigurationListWatch(kubeClient clientset.Interface, _ string, fieldSelector string) cache.ListerWatcher { return &cache.ListWatch{ ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) { + opts.FieldSelector = fieldSelector return kubeClient.AdmissionregistrationV1().ValidatingWebhookConfigurations().List(context.TODO(), opts) }, WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) { + opts.FieldSelector = fieldSelector return kubeClient.AdmissionregistrationV1().ValidatingWebhookConfigurations().Watch(context.TODO(), opts) }, }