kubevirt/0011-Fix-Aggregated-Discovery.patch
Vasily Ulyanov 6c544d0c84 Accepting request 1104204 from home:vulyanov:branches:Virtualization
- Bump client-go (fix possible panic in discovery)
  0011-Fix-Aggregated-Discovery.patch
- Wait for new hotplug attachment pod to be ready
  0012-Wait-for-new-hotplug-attachment-pod-to-be-ready.patch
- Adapt the storage tests to the new populators flow
  0013-Adapt-e2e-tests-to-CDI-1.57.0.patch

OBS-URL: https://build.opensuse.org/request/show/1104204
OBS-URL: https://build.opensuse.org/package/show/Virtualization/kubevirt?expand=0&rev=130
2023-08-16 15:02:36 +00:00

752 lines
37 KiB
Diff

From 22a734153b37c3706069cb7a0a8eb92167040b9e Mon Sep 17 00:00:00 2001
From: Luboslav Pivarc <lpivarc@redhat.com>
Date: Wed, 9 Aug 2023 11:51:10 +0200
Subject: [PATCH] Fix Aggregated Discovery
Bump client-go dependency to update bug
with Aggregated Discovery
Signed-off-by: Luboslav Pivarc <lpivarc@redhat.com>
---
go.mod | 52 +++----
go.sum | 32 ++---
staging/src/kubevirt.io/client-go/go.mod | 50 +++----
staging/src/kubevirt.io/client-go/go.sum | 24 ++--
.../discovery/aggregated_discovery.go | 58 +++++---
.../client-go/tools/cache/controller.go | 22 +--
.../client-go/tools/cache/delta_fifo.go | 135 ++++++++++++------
.../client-go/tools/cache/shared_informer.go | 8 +-
vendor/modules.txt | 60 ++++----
9 files changed, 241 insertions(+), 200 deletions(-)
diff --git a/go.mod b/go.mod
index 64a39278f..8bc66a1c5 100644
--- a/go.mod
+++ b/go.mod
@@ -65,11 +65,11 @@ require (
gopkg.in/cheggaaa/pb.v1 v1.0.28
gopkg.in/yaml.v2 v2.4.0
k8s.io/api v0.27.1
- k8s.io/apiextensions-apiserver v0.26.3
+ k8s.io/apiextensions-apiserver v0.26.4
k8s.io/apimachinery v0.27.1
k8s.io/client-go v12.0.0+incompatible
k8s.io/klog/v2 v2.90.1
- k8s.io/kube-aggregator v0.26.3
+ k8s.io/kube-aggregator v0.26.4
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f
k8s.io/kubectl v0.0.0-00010101000000-000000000000
k8s.io/utils v0.0.0-20230505201702-9f6742963106
@@ -165,32 +165,32 @@ replace (
github.com/openshift/client-go => github.com/openshift/client-go v0.0.0-20210112165513-ebc401615f47
github.com/operator-framework/operator-lifecycle-manager => github.com/operator-framework/operator-lifecycle-manager v0.0.0-20190128024246-5eb7ae5bdb7a
- k8s.io/api => k8s.io/api v0.26.3
- k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.26.3
- k8s.io/apimachinery => k8s.io/apimachinery v0.26.3
- k8s.io/apiserver => k8s.io/apiserver v0.26.3
- k8s.io/cli-runtime => k8s.io/cli-runtime v0.26.3
- k8s.io/client-go => k8s.io/client-go v0.26.3
- k8s.io/cloud-provider => k8s.io/cloud-provider v0.26.3
- k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.26.3
- k8s.io/code-generator => k8s.io/code-generator v0.26.3
- k8s.io/component-base => k8s.io/component-base v0.26.3
- k8s.io/cri-api => k8s.io/cri-api v0.26.3
- k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.26.3
+ k8s.io/api => k8s.io/api v0.26.4
+ k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.26.4
+ k8s.io/apimachinery => k8s.io/apimachinery v0.26.4
+ k8s.io/apiserver => k8s.io/apiserver v0.26.4
+ k8s.io/cli-runtime => k8s.io/cli-runtime v0.26.4
+ k8s.io/client-go => k8s.io/client-go v0.26.4
+ k8s.io/cloud-provider => k8s.io/cloud-provider v0.26.4
+ k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.26.4
+ k8s.io/code-generator => k8s.io/code-generator v0.26.4
+ k8s.io/component-base => k8s.io/component-base v0.26.4
+ k8s.io/cri-api => k8s.io/cri-api v0.26.4
+ k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.26.4
k8s.io/klog => k8s.io/klog v0.4.0
- k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.26.3
- k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.26.3
+ k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.26.4
+ k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.26.4
k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280
- k8s.io/kube-proxy => k8s.io/kube-proxy v0.26.3
- k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.26.3
- k8s.io/kubectl => k8s.io/kubectl v0.26.3
- k8s.io/kubelet => k8s.io/kubelet v0.26.3
- k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.26.3
- k8s.io/metrics => k8s.io/metrics v0.26.3
- k8s.io/node-api => k8s.io/node-api v0.26.3
- k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.26.3
- k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.26.3
- k8s.io/sample-controller => k8s.io/sample-controller v0.26.3
+ k8s.io/kube-proxy => k8s.io/kube-proxy v0.26.4
+ k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.26.4
+ k8s.io/kubectl => k8s.io/kubectl v0.26.4
+ k8s.io/kubelet => k8s.io/kubelet v0.26.4
+ k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.26.4
+ k8s.io/metrics => k8s.io/metrics v0.26.4
+ k8s.io/node-api => k8s.io/node-api v0.26.4
+ k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.26.4
+ k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.26.4
+ k8s.io/sample-controller => k8s.io/sample-controller v0.26.4
kubevirt.io/api => ./staging/src/kubevirt.io/api
kubevirt.io/client-go => ./staging/src/kubevirt.io/client-go
diff --git a/go.sum b/go.sum
index fdd556ec6..3f7fe3ce3 100644
--- a/go.sum
+++ b/go.sum
@@ -1927,17 +1927,17 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0=
-k8s.io/api v0.26.3 h1:emf74GIQMTik01Aum9dPP0gAypL8JTLl/lHa4V9RFSU=
-k8s.io/api v0.26.3/go.mod h1:PXsqwPMXBSBcL1lJ9CYDKy7kIReUydukS5JiRlxC3qE=
-k8s.io/apiextensions-apiserver v0.26.3 h1:5PGMm3oEzdB1W/FTMgGIDmm100vn7IaUP5er36dB+YE=
-k8s.io/apiextensions-apiserver v0.26.3/go.mod h1:jdA5MdjNWGP+njw1EKMZc64xAT5fIhN6VJrElV3sfpQ=
-k8s.io/apimachinery v0.26.3 h1:dQx6PNETJ7nODU3XPtrwkfuubs6w7sX0M8n61zHIV/k=
-k8s.io/apimachinery v0.26.3/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I=
-k8s.io/apiserver v0.26.3/go.mod h1:CJe/VoQNcXdhm67EvaVjYXxR3QyfwpceKPuPaeLibTA=
-k8s.io/client-go v0.26.3 h1:k1UY+KXfkxV2ScEL3gilKcF7761xkYsSD6BC9szIu8s=
-k8s.io/client-go v0.26.3/go.mod h1:ZPNu9lm8/dbRIPAgteN30RSXea6vrCpFvq+MateTUuQ=
-k8s.io/code-generator v0.26.3/go.mod h1:ryaiIKwfxEJEaywEzx3dhWOydpVctKYbqLajJf0O8dI=
-k8s.io/component-base v0.26.3/go.mod h1:5kj1kZYwSC6ZstHJN7oHBqcJC6yyn41eR+Sqa/mQc8E=
+k8s.io/api v0.26.4 h1:qSG2PmtcD23BkYiWfoYAcak870eF/hE7NNYBYavTT94=
+k8s.io/api v0.26.4/go.mod h1:WwKEXU3R1rgCZ77AYa7DFksd9/BAIKyOmRlbVxgvjCk=
+k8s.io/apiextensions-apiserver v0.26.4 h1:9D2RTxYGxrG5uYg6D7QZRcykXvavBvcA59j5kTaedQI=
+k8s.io/apiextensions-apiserver v0.26.4/go.mod h1:cd4uGFGIgzEqUghWpRsr9KE8j2KNTjY8Ji8pnMMazyw=
+k8s.io/apimachinery v0.26.4 h1:rZccKdBLg9vP6J09JD+z8Yr99Ce8gk3Lbi9TCx05Jzs=
+k8s.io/apimachinery v0.26.4/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I=
+k8s.io/apiserver v0.26.4/go.mod h1:yAY3O1vBM4/0OIGAGeWcdfzQvgdwJ188VirLcuSAVnw=
+k8s.io/client-go v0.26.4 h1:/7P/IbGBuT73A+G97trf44NTPSNqvuBREpOfdLbHvD4=
+k8s.io/client-go v0.26.4/go.mod h1:6qOItWm3EwxJdl/8p5t7FWtWUOwyMdA8N9ekbW4idpI=
+k8s.io/code-generator v0.26.4/go.mod h1:ryaiIKwfxEJEaywEzx3dhWOydpVctKYbqLajJf0O8dI=
+k8s.io/component-base v0.26.4/go.mod h1:lTuWL1Xz/a4e80gmIC3YZG2JCO4xNwtKWHJWeJmsq20=
k8s.io/gengo v0.0.0-20181113154421-fd15ee9cc2f7/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
@@ -1949,13 +1949,13 @@ k8s.io/klog/v2 v2.40.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/kms v0.26.3/go.mod h1:69qGnf1NsFOQP07fBYqNLZklqEHSJF024JqYCaeVxHg=
-k8s.io/kube-aggregator v0.26.3 h1:nc4H5ymGkWPU3c9U9UM468JcmNENY/s/mDYVW3t3uRo=
-k8s.io/kube-aggregator v0.26.3/go.mod h1:SgBESB/+PfZAyceTPIanfQ7GtX9G/+mjfUbTHg3Twbo=
+k8s.io/kms v0.26.4/go.mod h1:69qGnf1NsFOQP07fBYqNLZklqEHSJF024JqYCaeVxHg=
+k8s.io/kube-aggregator v0.26.4 h1:iGljhq5exQkbuc3bnkwUx95RPCBDExg7DkX9XaYhg6w=
+k8s.io/kube-aggregator v0.26.4/go.mod h1:eWfg4tU0+l57ebWiS5THOANIJUrKRxudSVDJ+63bqvQ=
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E=
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4=
-k8s.io/kubectl v0.26.3 h1:bZ5SgFyeEXw6XTc1Qji0iNdtqAC76lmeIIQULg2wNXM=
-k8s.io/kubectl v0.26.3/go.mod h1:02+gv7Qn4dupzN3fi/9OvqqdW+uG/4Zi56vc4Zmsp1g=
+k8s.io/kubectl v0.26.4 h1:A0Oa0u/po4KxXnXsNCOwLojAe9cQR3TJNJabEIf7U1w=
+k8s.io/kubectl v0.26.4/go.mod h1:cWtp/+I4p+h5En3s2zO1zCry9v3/6h37EQ2tF3jNRnM=
k8s.io/kubernetes v1.11.8-beta.0.0.20190124204751-3a10094374f2/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
k8s.io/utils v0.0.0-20191114200735-6ca3b61696b6/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
diff --git a/staging/src/kubevirt.io/client-go/go.mod b/staging/src/kubevirt.io/client-go/go.mod
index b8b0074df..2c8edf077 100644
--- a/staging/src/kubevirt.io/client-go/go.mod
+++ b/staging/src/kubevirt.io/client-go/go.mod
@@ -16,7 +16,7 @@ require (
github.com/openshift/client-go v0.0.0-20210112165513-ebc401615f47
github.com/spf13/pflag v1.0.5
k8s.io/api v0.27.1
- k8s.io/apiextensions-apiserver v0.26.3
+ k8s.io/apiextensions-apiserver v0.26.4
k8s.io/apimachinery v0.27.1
k8s.io/client-go v12.0.0+incompatible
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f
@@ -71,32 +71,32 @@ require (
replace (
github.com/openshift/api => github.com/openshift/api v0.0.0-20210105115604-44119421ec6b
- k8s.io/api => k8s.io/api v0.26.3
- k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.26.3
- k8s.io/apimachinery => k8s.io/apimachinery v0.26.3
- k8s.io/apiserver => k8s.io/apiserver v0.26.3
- k8s.io/cli-runtime => k8s.io/cli-runtime v0.26.3
- k8s.io/client-go => k8s.io/client-go v0.26.3
- k8s.io/cloud-provider => k8s.io/cloud-provider v0.26.3
- k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.26.3
- k8s.io/code-generator => k8s.io/code-generator v0.26.3
- k8s.io/component-base => k8s.io/component-base v0.26.3
- k8s.io/cri-api => k8s.io/cri-api v0.26.3
- k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.26.3
+ k8s.io/api => k8s.io/api v0.26.4
+ k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.26.4
+ k8s.io/apimachinery => k8s.io/apimachinery v0.26.4
+ k8s.io/apiserver => k8s.io/apiserver v0.26.4
+ k8s.io/cli-runtime => k8s.io/cli-runtime v0.26.4
+ k8s.io/client-go => k8s.io/client-go v0.26.4
+ k8s.io/cloud-provider => k8s.io/cloud-provider v0.26.4
+ k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.26.4
+ k8s.io/code-generator => k8s.io/code-generator v0.26.4
+ k8s.io/component-base => k8s.io/component-base v0.26.4
+ k8s.io/cri-api => k8s.io/cri-api v0.26.4
+ k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.26.4
k8s.io/klog => k8s.io/klog v0.4.0
- k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.26.3
- k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.26.3
+ k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.26.4
+ k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.26.4
k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280
- k8s.io/kube-proxy => k8s.io/kube-proxy v0.26.3
- k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.26.3
- k8s.io/kubectl => k8s.io/kubectl v0.26.3
- k8s.io/kubelet => k8s.io/kubelet v0.26.3
- k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.26.3
- k8s.io/metrics => k8s.io/metrics v0.26.3
- k8s.io/node-api => k8s.io/node-api v0.26.3
- k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.26.3
- k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.26.3
- k8s.io/sample-controller => k8s.io/sample-controller v0.26.3
+ k8s.io/kube-proxy => k8s.io/kube-proxy v0.26.4
+ k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.26.4
+ k8s.io/kubectl => k8s.io/kubectl v0.26.4
+ k8s.io/kubelet => k8s.io/kubelet v0.26.4
+ k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.26.4
+ k8s.io/metrics => k8s.io/metrics v0.26.4
+ k8s.io/node-api => k8s.io/node-api v0.26.4
+ k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.26.4
+ k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.26.4
+ k8s.io/sample-controller => k8s.io/sample-controller v0.26.4
kubevirt.io/api => ../api
)
diff --git a/staging/src/kubevirt.io/client-go/go.sum b/staging/src/kubevirt.io/client-go/go.sum
index 3fcf63dc1..89daf9285 100644
--- a/staging/src/kubevirt.io/client-go/go.sum
+++ b/staging/src/kubevirt.io/client-go/go.sum
@@ -1668,17 +1668,17 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0=
-k8s.io/api v0.26.3 h1:emf74GIQMTik01Aum9dPP0gAypL8JTLl/lHa4V9RFSU=
-k8s.io/api v0.26.3/go.mod h1:PXsqwPMXBSBcL1lJ9CYDKy7kIReUydukS5JiRlxC3qE=
-k8s.io/apiextensions-apiserver v0.26.3 h1:5PGMm3oEzdB1W/FTMgGIDmm100vn7IaUP5er36dB+YE=
-k8s.io/apiextensions-apiserver v0.26.3/go.mod h1:jdA5MdjNWGP+njw1EKMZc64xAT5fIhN6VJrElV3sfpQ=
-k8s.io/apimachinery v0.26.3 h1:dQx6PNETJ7nODU3XPtrwkfuubs6w7sX0M8n61zHIV/k=
-k8s.io/apimachinery v0.26.3/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I=
-k8s.io/apiserver v0.26.3/go.mod h1:CJe/VoQNcXdhm67EvaVjYXxR3QyfwpceKPuPaeLibTA=
-k8s.io/client-go v0.26.3 h1:k1UY+KXfkxV2ScEL3gilKcF7761xkYsSD6BC9szIu8s=
-k8s.io/client-go v0.26.3/go.mod h1:ZPNu9lm8/dbRIPAgteN30RSXea6vrCpFvq+MateTUuQ=
-k8s.io/code-generator v0.26.3/go.mod h1:ryaiIKwfxEJEaywEzx3dhWOydpVctKYbqLajJf0O8dI=
-k8s.io/component-base v0.26.3/go.mod h1:5kj1kZYwSC6ZstHJN7oHBqcJC6yyn41eR+Sqa/mQc8E=
+k8s.io/api v0.26.4 h1:qSG2PmtcD23BkYiWfoYAcak870eF/hE7NNYBYavTT94=
+k8s.io/api v0.26.4/go.mod h1:WwKEXU3R1rgCZ77AYa7DFksd9/BAIKyOmRlbVxgvjCk=
+k8s.io/apiextensions-apiserver v0.26.4 h1:9D2RTxYGxrG5uYg6D7QZRcykXvavBvcA59j5kTaedQI=
+k8s.io/apiextensions-apiserver v0.26.4/go.mod h1:cd4uGFGIgzEqUghWpRsr9KE8j2KNTjY8Ji8pnMMazyw=
+k8s.io/apimachinery v0.26.4 h1:rZccKdBLg9vP6J09JD+z8Yr99Ce8gk3Lbi9TCx05Jzs=
+k8s.io/apimachinery v0.26.4/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I=
+k8s.io/apiserver v0.26.4/go.mod h1:yAY3O1vBM4/0OIGAGeWcdfzQvgdwJ188VirLcuSAVnw=
+k8s.io/client-go v0.26.4 h1:/7P/IbGBuT73A+G97trf44NTPSNqvuBREpOfdLbHvD4=
+k8s.io/client-go v0.26.4/go.mod h1:6qOItWm3EwxJdl/8p5t7FWtWUOwyMdA8N9ekbW4idpI=
+k8s.io/code-generator v0.26.4/go.mod h1:ryaiIKwfxEJEaywEzx3dhWOydpVctKYbqLajJf0O8dI=
+k8s.io/component-base v0.26.4/go.mod h1:lTuWL1Xz/a4e80gmIC3YZG2JCO4xNwtKWHJWeJmsq20=
k8s.io/gengo v0.0.0-20190907103519-ebc107f98eab/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
@@ -1692,7 +1692,7 @@ k8s.io/klog/v2 v2.40.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/kms v0.26.3/go.mod h1:69qGnf1NsFOQP07fBYqNLZklqEHSJF024JqYCaeVxHg=
+k8s.io/kms v0.26.4/go.mod h1:69qGnf1NsFOQP07fBYqNLZklqEHSJF024JqYCaeVxHg=
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E=
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4=
k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
diff --git a/vendor/k8s.io/client-go/discovery/aggregated_discovery.go b/vendor/k8s.io/client-go/discovery/aggregated_discovery.go
index 758b0a3ac..7470259dc 100644
--- a/vendor/k8s.io/client-go/discovery/aggregated_discovery.go
+++ b/vendor/k8s.io/client-go/discovery/aggregated_discovery.go
@@ -92,12 +92,18 @@ func convertAPIGroup(g apidiscovery.APIGroupDiscovery) (
resourceList := &metav1.APIResourceList{}
resourceList.GroupVersion = gv.String()
for _, r := range v.Resources {
- resource := convertAPIResource(r)
- resourceList.APIResources = append(resourceList.APIResources, resource)
+ resource, err := convertAPIResource(r)
+ if err == nil {
+ resourceList.APIResources = append(resourceList.APIResources, resource)
+ }
// Subresources field in new format get transformed into full APIResources.
+ // It is possible a partial result with an error was returned to be used
+ // as the parent resource for the subresource.
for _, subresource := range r.Subresources {
- sr := convertAPISubresource(resource, subresource)
- resourceList.APIResources = append(resourceList.APIResources, sr)
+ sr, err := convertAPISubresource(resource, subresource)
+ if err == nil {
+ resourceList.APIResources = append(resourceList.APIResources, sr)
+ }
}
}
gvResources[gv] = resourceList
@@ -105,30 +111,44 @@ func convertAPIGroup(g apidiscovery.APIGroupDiscovery) (
return group, gvResources, failedGVs
}
-// convertAPIResource tranforms a APIResourceDiscovery to an APIResource.
-func convertAPIResource(in apidiscovery.APIResourceDiscovery) metav1.APIResource {
- return metav1.APIResource{
+// convertAPIResource tranforms a APIResourceDiscovery to an APIResource. We are
+// resilient to missing GVK, since this resource might be the parent resource
+// for a subresource. If the parent is missing a GVK, it is not returned in
+// discovery, and the subresource MUST have the GVK.
+func convertAPIResource(in apidiscovery.APIResourceDiscovery) (metav1.APIResource, error) {
+ result := metav1.APIResource{
Name: in.Resource,
SingularName: in.SingularResource,
Namespaced: in.Scope == apidiscovery.ScopeNamespace,
- Group: in.ResponseKind.Group,
- Version: in.ResponseKind.Version,
- Kind: in.ResponseKind.Kind,
Verbs: in.Verbs,
ShortNames: in.ShortNames,
Categories: in.Categories,
}
+ var err error
+ if in.ResponseKind != nil {
+ result.Group = in.ResponseKind.Group
+ result.Version = in.ResponseKind.Version
+ result.Kind = in.ResponseKind.Kind
+ } else {
+ err = fmt.Errorf("discovery resource %s missing GVK", in.Resource)
+ }
+ // Can return partial result with error, which can be the parent for a
+ // subresource. Do not add this result to the returned discovery resources.
+ return result, err
}
// convertAPISubresource tranforms a APISubresourceDiscovery to an APIResource.
-func convertAPISubresource(parent metav1.APIResource, in apidiscovery.APISubresourceDiscovery) metav1.APIResource {
- return metav1.APIResource{
- Name: fmt.Sprintf("%s/%s", parent.Name, in.Subresource),
- SingularName: parent.SingularName,
- Namespaced: parent.Namespaced,
- Group: in.ResponseKind.Group,
- Version: in.ResponseKind.Version,
- Kind: in.ResponseKind.Kind,
- Verbs: in.Verbs,
+func convertAPISubresource(parent metav1.APIResource, in apidiscovery.APISubresourceDiscovery) (metav1.APIResource, error) {
+ result := metav1.APIResource{}
+ if in.ResponseKind == nil {
+ return result, fmt.Errorf("subresource %s/%s missing GVK", parent.Name, in.Subresource)
}
+ result.Name = fmt.Sprintf("%s/%s", parent.Name, in.Subresource)
+ result.SingularName = parent.SingularName
+ result.Namespaced = parent.Namespaced
+ result.Group = in.ResponseKind.Group
+ result.Version = in.ResponseKind.Version
+ result.Kind = in.ResponseKind.Kind
+ result.Verbs = in.Verbs
+ return result, nil
}
diff --git a/vendor/k8s.io/client-go/tools/cache/controller.go b/vendor/k8s.io/client-go/tools/cache/controller.go
index 0762da3be..96005ff58 100644
--- a/vendor/k8s.io/client-go/tools/cache/controller.go
+++ b/vendor/k8s.io/client-go/tools/cache/controller.go
@@ -353,17 +353,6 @@ func NewIndexerInformer(
return clientState, newInformer(lw, objType, resyncPeriod, h, clientState, nil)
}
-// TransformFunc allows for transforming an object before it will be processed
-// and put into the controller cache and before the corresponding handlers will
-// be called on it.
-// TransformFunc (similarly to ResourceEventHandler functions) should be able
-// to correctly handle the tombstone of type cache.DeletedFinalStateUnknown
-//
-// The most common usage pattern is to clean-up some parts of the object to
-// reduce component memory usage if a given component doesn't care about them.
-// given controller doesn't care for them
-type TransformFunc func(interface{}) (interface{}, error)
-
// NewTransformingInformer returns a Store and a controller for populating
// the store while also providing event notifications. You should only used
// the returned Store for Get/List operations; Add/Modify/Deletes will cause
@@ -411,19 +400,11 @@ func processDeltas(
// Object which receives event notifications from the given deltas
handler ResourceEventHandler,
clientState Store,
- transformer TransformFunc,
deltas Deltas,
) error {
// from oldest to newest
for _, d := range deltas {
obj := d.Object
- if transformer != nil {
- var err error
- obj, err = transformer(obj)
- if err != nil {
- return err
- }
- }
switch d.Type {
case Sync, Replaced, Added, Updated:
@@ -475,6 +456,7 @@ func newInformer(
fifo := NewDeltaFIFOWithOptions(DeltaFIFOOptions{
KnownObjects: clientState,
EmitDeltaTypeReplaced: true,
+ Transformer: transformer,
})
cfg := &Config{
@@ -486,7 +468,7 @@ func newInformer(
Process: func(obj interface{}) error {
if deltas, ok := obj.(Deltas); ok {
- return processDeltas(h, clientState, transformer, deltas)
+ return processDeltas(h, clientState, deltas)
}
return errors.New("object given as Process argument is not Deltas")
},
diff --git a/vendor/k8s.io/client-go/tools/cache/delta_fifo.go b/vendor/k8s.io/client-go/tools/cache/delta_fifo.go
index 0c13a41f0..84f3ab9ca 100644
--- a/vendor/k8s.io/client-go/tools/cache/delta_fifo.go
+++ b/vendor/k8s.io/client-go/tools/cache/delta_fifo.go
@@ -51,6 +51,10 @@ type DeltaFIFOOptions struct {
// When true, `Replaced` events will be sent for items passed to a Replace() call.
// When false, `Sync` events will be sent instead.
EmitDeltaTypeReplaced bool
+
+ // If set, will be called for objects before enqueueing them. Please
+ // see the comment on TransformFunc for details.
+ Transformer TransformFunc
}
// DeltaFIFO is like FIFO, but differs in two ways. One is that the
@@ -129,8 +133,32 @@ type DeltaFIFO struct {
// emitDeltaTypeReplaced is whether to emit the Replaced or Sync
// DeltaType when Replace() is called (to preserve backwards compat).
emitDeltaTypeReplaced bool
+
+ // Called with every object if non-nil.
+ transformer TransformFunc
}
+// TransformFunc allows for transforming an object before it will be processed.
+// TransformFunc (similarly to ResourceEventHandler functions) should be able
+// to correctly handle the tombstone of type cache.DeletedFinalStateUnknown.
+//
+// New in v1.27: In such cases, the contained object will already have gone
+// through the transform object separately (when it was added / updated prior
+// to the delete), so the TransformFunc can likely safely ignore such objects
+// (i.e., just return the input object).
+//
+// The most common usage pattern is to clean-up some parts of the object to
+// reduce component memory usage if a given component doesn't care about them.
+//
+// New in v1.27: unless the object is a DeletedFinalStateUnknown, TransformFunc
+// sees the object before any other actor, and it is now safe to mutate the
+// object in place instead of making a copy.
+//
+// Note that TransformFunc is called while inserting objects into the
+// notification queue and is therefore extremely performance sensitive; please
+// do not do anything that will take a long time.
+type TransformFunc func(interface{}) (interface{}, error)
+
// DeltaType is the type of a change (addition, deletion, etc)
type DeltaType string
@@ -227,6 +255,7 @@ func NewDeltaFIFOWithOptions(opts DeltaFIFOOptions) *DeltaFIFO {
knownObjects: opts.KnownObjects,
emitDeltaTypeReplaced: opts.EmitDeltaTypeReplaced,
+ transformer: opts.Transformer,
}
f.cond.L = &f.lock
return f
@@ -411,6 +440,21 @@ func (f *DeltaFIFO) queueActionLocked(actionType DeltaType, obj interface{}) err
if err != nil {
return KeyError{obj, err}
}
+
+ // Every object comes through this code path once, so this is a good
+ // place to call the transform func. If obj is a
+ // DeletedFinalStateUnknown tombstone, then the containted inner object
+ // will already have gone through the transformer, but we document that
+ // this can happen. In cases involving Replace(), such an object can
+ // come through multiple times.
+ if f.transformer != nil {
+ var err error
+ obj, err = f.transformer(obj)
+ if err != nil {
+ return err
+ }
+ }
+
oldDeltas := f.items[id]
newDeltas := append(oldDeltas, Delta{actionType, obj})
newDeltas = dedupDeltas(newDeltas)
@@ -566,12 +610,11 @@ func (f *DeltaFIFO) Pop(process PopProcessFunc) (interface{}, error) {
// using the Sync or Replace DeltaType and then (2) it does some deletions.
// In particular: for every pre-existing key K that is not the key of
// an object in `list` there is the effect of
-// `Delete(DeletedFinalStateUnknown{K, O})` where O is current object
-// of K. If `f.knownObjects == nil` then the pre-existing keys are
-// those in `f.items` and the current object of K is the `.Newest()`
-// of the Deltas associated with K. Otherwise the pre-existing keys
-// are those listed by `f.knownObjects` and the current object of K is
-// what `f.knownObjects.GetByKey(K)` returns.
+// `Delete(DeletedFinalStateUnknown{K, O})` where O is the latest known
+// object of K. The pre-existing keys are those in the union set of the keys in
+// `f.items` and `f.knownObjects` (if not nil). The last known object for key K is
+// the one present in the last delta in `f.items`. If there is no delta for K
+// in `f.items`, it is the object in `f.knownObjects`
func (f *DeltaFIFO) Replace(list []interface{}, _ string) error {
f.lock.Lock()
defer f.lock.Unlock()
@@ -595,51 +638,23 @@ func (f *DeltaFIFO) Replace(list []interface{}, _ string) error {
}
}
- if f.knownObjects == nil {
- // Do deletion detection against our own list.
- queuedDeletions := 0
- for k, oldItem := range f.items {
- if keys.Has(k) {
- continue
- }
- // Delete pre-existing items not in the new list.
- // This could happen if watch deletion event was missed while
- // disconnected from apiserver.
- var deletedObj interface{}
- if n := oldItem.Newest(); n != nil {
- deletedObj = n.Object
- }
- queuedDeletions++
- if err := f.queueActionLocked(Deleted, DeletedFinalStateUnknown{k, deletedObj}); err != nil {
- return err
- }
- }
-
- if !f.populated {
- f.populated = true
- // While there shouldn't be any queued deletions in the initial
- // population of the queue, it's better to be on the safe side.
- f.initialPopulationCount = keys.Len() + queuedDeletions
- }
-
- return nil
- }
-
- // Detect deletions not already in the queue.
- knownKeys := f.knownObjects.ListKeys()
+ // Do deletion detection against objects in the queue
queuedDeletions := 0
- for _, k := range knownKeys {
+ for k, oldItem := range f.items {
if keys.Has(k) {
continue
}
-
- deletedObj, exists, err := f.knownObjects.GetByKey(k)
- if err != nil {
- deletedObj = nil
- klog.Errorf("Unexpected error %v during lookup of key %v, placing DeleteFinalStateUnknown marker without object", err, k)
- } else if !exists {
- deletedObj = nil
- klog.Infof("Key %v does not exist in known objects store, placing DeleteFinalStateUnknown marker without object", k)
+ // Delete pre-existing items not in the new list.
+ // This could happen if watch deletion event was missed while
+ // disconnected from apiserver.
+ var deletedObj interface{}
+ if n := oldItem.Newest(); n != nil {
+ deletedObj = n.Object
+
+ // if the previous object is a DeletedFinalStateUnknown, we have to extract the actual Object
+ if d, ok := deletedObj.(DeletedFinalStateUnknown); ok {
+ deletedObj = d.Obj
+ }
}
queuedDeletions++
if err := f.queueActionLocked(Deleted, DeletedFinalStateUnknown{k, deletedObj}); err != nil {
@@ -647,6 +662,32 @@ func (f *DeltaFIFO) Replace(list []interface{}, _ string) error {
}
}
+ if f.knownObjects != nil {
+ // Detect deletions for objects not present in the queue, but present in KnownObjects
+ knownKeys := f.knownObjects.ListKeys()
+ for _, k := range knownKeys {
+ if keys.Has(k) {
+ continue
+ }
+ if len(f.items[k]) > 0 {
+ continue
+ }
+
+ deletedObj, exists, err := f.knownObjects.GetByKey(k)
+ if err != nil {
+ deletedObj = nil
+ klog.Errorf("Unexpected error %v during lookup of key %v, placing DeleteFinalStateUnknown marker without object", err, k)
+ } else if !exists {
+ deletedObj = nil
+ klog.Infof("Key %v does not exist in known objects store, placing DeleteFinalStateUnknown marker without object", k)
+ }
+ queuedDeletions++
+ if err := f.queueActionLocked(Deleted, DeletedFinalStateUnknown{k, deletedObj}); err != nil {
+ return err
+ }
+ }
+ }
+
if !f.populated {
f.populated = true
f.initialPopulationCount = keys.Len() + queuedDeletions
diff --git a/vendor/k8s.io/client-go/tools/cache/shared_informer.go b/vendor/k8s.io/client-go/tools/cache/shared_informer.go
index f5c7316a1..4979642ce 100644
--- a/vendor/k8s.io/client-go/tools/cache/shared_informer.go
+++ b/vendor/k8s.io/client-go/tools/cache/shared_informer.go
@@ -198,10 +198,7 @@ type SharedInformer interface {
//
// Must be set before starting the informer.
//
- // Note: Since the object given to the handler may be already shared with
- // other goroutines, it is advisable to copy the object being
- // transform before mutating it at all and returning the copy to prevent
- // data races.
+ // Please see the comment on TransformFunc for more details.
SetTransform(handler TransformFunc) error
// IsStopped reports whether the informer has already been stopped.
@@ -422,6 +419,7 @@ func (s *sharedIndexInformer) Run(stopCh <-chan struct{}) {
fifo := NewDeltaFIFOWithOptions(DeltaFIFOOptions{
KnownObjects: s.indexer,
EmitDeltaTypeReplaced: true,
+ Transformer: s.transform,
})
cfg := &Config{
@@ -585,7 +583,7 @@ func (s *sharedIndexInformer) HandleDeltas(obj interface{}) error {
defer s.blockDeltas.Unlock()
if deltas, ok := obj.(Deltas); ok {
- return processDeltas(s, s.indexer, s.transform, deltas)
+ return processDeltas(s, s.indexer, deltas)
}
return errors.New("object given as Process argument is not Deltas")
}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 2806f50a8..a863ab45f 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -658,7 +658,7 @@ gopkg.in/yaml.v2
# gopkg.in/yaml.v3 v3.0.1
## explicit
gopkg.in/yaml.v3
-# k8s.io/api v0.27.1 => k8s.io/api v0.26.3
+# k8s.io/api v0.27.1 => k8s.io/api v0.26.4
## explicit; go 1.19
k8s.io/api/admission/v1
k8s.io/api/admissionregistration/v1
@@ -712,7 +712,7 @@ k8s.io/api/scheduling/v1beta1
k8s.io/api/storage/v1
k8s.io/api/storage/v1alpha1
k8s.io/api/storage/v1beta1
-# k8s.io/apiextensions-apiserver v0.26.3 => k8s.io/apiextensions-apiserver v0.26.3
+# k8s.io/apiextensions-apiserver v0.26.4 => k8s.io/apiextensions-apiserver v0.26.4
## explicit; go 1.19
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1
@@ -724,7 +724,7 @@ k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextension
k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1/fake
k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1
k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake
-# k8s.io/apimachinery v0.27.1 => k8s.io/apimachinery v0.26.3
+# k8s.io/apimachinery v0.27.1 => k8s.io/apimachinery v0.26.4
## explicit; go 1.19
k8s.io/apimachinery/pkg/api/equality
k8s.io/apimachinery/pkg/api/errors
@@ -777,7 +777,7 @@ k8s.io/apimachinery/pkg/watch
k8s.io/apimachinery/third_party/forked/golang/json
k8s.io/apimachinery/third_party/forked/golang/netutil
k8s.io/apimachinery/third_party/forked/golang/reflect
-# k8s.io/client-go v12.0.0+incompatible => k8s.io/client-go v0.26.3
+# k8s.io/client-go v12.0.0+incompatible => k8s.io/client-go v0.26.4
## explicit; go 1.19
k8s.io/client-go/applyconfigurations/admissionregistration/v1
k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1
@@ -1096,7 +1096,7 @@ k8s.io/klog/v2/internal/clock
k8s.io/klog/v2/internal/dbg
k8s.io/klog/v2/internal/serialize
k8s.io/klog/v2/internal/severity
-# k8s.io/kube-aggregator v0.26.3 => k8s.io/kube-aggregator v0.26.3
+# k8s.io/kube-aggregator v0.26.4 => k8s.io/kube-aggregator v0.26.4
## explicit; go 1.19
k8s.io/kube-aggregator/pkg/apis/apiregistration
k8s.io/kube-aggregator/pkg/apis/apiregistration/v1
@@ -1124,7 +1124,7 @@ k8s.io/kube-openapi/pkg/util
k8s.io/kube-openapi/pkg/util/proto
k8s.io/kube-openapi/pkg/validation/errors
k8s.io/kube-openapi/pkg/validation/spec
-# k8s.io/kubectl v0.0.0-00010101000000-000000000000 => k8s.io/kubectl v0.26.3
+# k8s.io/kubectl v0.0.0-00010101000000-000000000000 => k8s.io/kubectl v0.26.4
## explicit; go 1.19
k8s.io/kubectl/pkg/cmd/util/podcmd
# k8s.io/utils v0.0.0-20230505201702-9f6742963106
@@ -1253,32 +1253,32 @@ sigs.k8s.io/yaml
# github.com/openshift/api => github.com/openshift/api v0.0.0-20191219222812-2987a591a72c
# github.com/openshift/client-go => github.com/openshift/client-go v0.0.0-20210112165513-ebc401615f47
# github.com/operator-framework/operator-lifecycle-manager => github.com/operator-framework/operator-lifecycle-manager v0.0.0-20190128024246-5eb7ae5bdb7a
-# k8s.io/api => k8s.io/api v0.26.3
-# k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.26.3
-# k8s.io/apimachinery => k8s.io/apimachinery v0.26.3
-# k8s.io/apiserver => k8s.io/apiserver v0.26.3
-# k8s.io/cli-runtime => k8s.io/cli-runtime v0.26.3
-# k8s.io/client-go => k8s.io/client-go v0.26.3
-# k8s.io/cloud-provider => k8s.io/cloud-provider v0.26.3
-# k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.26.3
-# k8s.io/code-generator => k8s.io/code-generator v0.26.3
-# k8s.io/component-base => k8s.io/component-base v0.26.3
-# k8s.io/cri-api => k8s.io/cri-api v0.26.3
-# k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.26.3
+# k8s.io/api => k8s.io/api v0.26.4
+# k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.26.4
+# k8s.io/apimachinery => k8s.io/apimachinery v0.26.4
+# k8s.io/apiserver => k8s.io/apiserver v0.26.4
+# k8s.io/cli-runtime => k8s.io/cli-runtime v0.26.4
+# k8s.io/client-go => k8s.io/client-go v0.26.4
+# k8s.io/cloud-provider => k8s.io/cloud-provider v0.26.4
+# k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.26.4
+# k8s.io/code-generator => k8s.io/code-generator v0.26.4
+# k8s.io/component-base => k8s.io/component-base v0.26.4
+# k8s.io/cri-api => k8s.io/cri-api v0.26.4
+# k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.26.4
# k8s.io/klog => k8s.io/klog v0.4.0
-# k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.26.3
-# k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.26.3
+# k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.26.4
+# k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.26.4
# k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280
-# k8s.io/kube-proxy => k8s.io/kube-proxy v0.26.3
-# k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.26.3
-# k8s.io/kubectl => k8s.io/kubectl v0.26.3
-# k8s.io/kubelet => k8s.io/kubelet v0.26.3
-# k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.26.3
-# k8s.io/metrics => k8s.io/metrics v0.26.3
-# k8s.io/node-api => k8s.io/node-api v0.26.3
-# k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.26.3
-# k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.26.3
-# k8s.io/sample-controller => k8s.io/sample-controller v0.26.3
+# k8s.io/kube-proxy => k8s.io/kube-proxy v0.26.4
+# k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.26.4
+# k8s.io/kubectl => k8s.io/kubectl v0.26.4
+# k8s.io/kubelet => k8s.io/kubelet v0.26.4
+# k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.26.4
+# k8s.io/metrics => k8s.io/metrics v0.26.4
+# k8s.io/node-api => k8s.io/node-api v0.26.4
+# k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.26.4
+# k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.26.4
+# k8s.io/sample-controller => k8s.io/sample-controller v0.26.4
# kubevirt.io/api => ./staging/src/kubevirt.io/api
# kubevirt.io/client-go => ./staging/src/kubevirt.io/client-go
# sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.6.2
--
2.41.0