From 7aeaea3e006396aa529180f10d05c18e6be73004 Mon Sep 17 00:00:00 2001 From: Adrian Moisey Date: Sun, 26 Oct 2025 17:15:17 +0200 Subject: [PATCH 1/5] Switch to modern k8s.io/utils/ptr util --- vertical-pod-autoscaler/e2e/utils/webhook.go | 12 +++++------- vertical-pod-autoscaler/e2e/v1/actuation.go | 4 ++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/vertical-pod-autoscaler/e2e/utils/webhook.go b/vertical-pod-autoscaler/e2e/utils/webhook.go index 3abe00fb59dc..c1d2f70ac033 100644 --- a/vertical-pod-autoscaler/e2e/utils/webhook.go +++ b/vertical-pod-autoscaler/e2e/utils/webhook.go @@ -37,7 +37,7 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/test/e2e/framework" e2edeploy "k8s.io/kubernetes/test/e2e/framework/deployment" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" ) const ( @@ -49,8 +49,6 @@ const ( deploymentName = "sample-webhook-deployment" ) -func strPtr(s string) *string { return &s } - // LabelNamespace applies unique label to the namespace. func LabelNamespace(f *framework.Framework, namespace string) { client := f.ClientSet @@ -107,8 +105,8 @@ func RegisterMutatingWebhookForPod(f *framework.Framework, configName string, ce Service: &admissionregistrationv1.ServiceReference{ Namespace: namespace, Name: WebhookServiceName, - Path: strPtr("/mutating-pods-sidecar"), - Port: pointer.Int32Ptr(servicePort), + Path: ptr.To("/mutating-pods-sidecar"), + Port: ptr.To(servicePort), }, CABundle: certContext.signingCert, }, @@ -167,8 +165,8 @@ func newMutatingIsReadyWebhookFixture(f *framework.Framework, certContext *certC Service: &admissionregistrationv1.ServiceReference{ Namespace: f.Namespace.Name, Name: WebhookServiceName, - Path: strPtr("/always-deny"), - Port: pointer.Int32Ptr(servicePort), + Path: ptr.To("/always-deny"), + Port: ptr.To(servicePort), }, CABundle: certContext.signingCert, }, diff --git a/vertical-pod-autoscaler/e2e/v1/actuation.go b/vertical-pod-autoscaler/e2e/v1/actuation.go index 71178315fca8..c1bbebcf2062 100644 --- a/vertical-pod-autoscaler/e2e/v1/actuation.go +++ b/vertical-pod-autoscaler/e2e/v1/actuation.go @@ -22,7 +22,7 @@ import ( "time" "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/utils/test" - "k8s.io/utils/pointer" + "k8s.io/utils/ptr" appsv1 "k8s.io/api/apps/v1" autoscaling "k8s.io/api/autoscaling/v1" @@ -884,7 +884,7 @@ func testEvictsSingletonPodWhenConfigured(f *framework.Framework, controller *au WithName("hamster-vpa"). WithNamespace(f.Namespace.Name). WithTargetRef(controller). - WithMinReplicas(pointer.Int32(1)). + WithMinReplicas(ptr.To(int32(1))). WithContainer(containerName). AppendRecommendation( test.Recommendation(). From d66b25482b6d73fa695a26cdcd468fae8a9e4172 Mon Sep 17 00:00:00 2001 From: Adrian Moisey Date: Sun, 26 Oct 2025 17:15:36 +0200 Subject: [PATCH 2/5] Remove unused function --- vertical-pod-autoscaler/e2e/v1/actuation.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/vertical-pod-autoscaler/e2e/v1/actuation.go b/vertical-pod-autoscaler/e2e/v1/actuation.go index c1bbebcf2062..4e7d8bcc5133 100644 --- a/vertical-pod-autoscaler/e2e/v1/actuation.go +++ b/vertical-pod-autoscaler/e2e/v1/actuation.go @@ -1003,12 +1003,6 @@ func setupPDB(f *framework.Framework, name string, maxUnavailable int) *policyv1 return pdb } -func getCurrentPodSetForDeployment(c clientset.Interface, d *appsv1.Deployment) PodSet { - podList, err := framework_deployment.GetPodsForDeployment(context.TODO(), c, d) - gomega.Expect(err).NotTo(gomega.HaveOccurred()) - return MakePodSet(podList) -} - func createReplicaSetWithRetries(c clientset.Interface, namespace string, obj *appsv1.ReplicaSet) error { if obj == nil { return fmt.Errorf("object provided to create is empty") From b74a58e250efb5ef071ca64167e11a22567faf99 Mon Sep 17 00:00:00 2001 From: Adrian Moisey Date: Sun, 26 Oct 2025 17:16:29 +0200 Subject: [PATCH 3/5] Stop using deprecated ioutils --- vertical-pod-autoscaler/e2e/utils/certs.go | 15 +++++++-------- vertical-pod-autoscaler/e2e/v1/e2e.go | 4 ++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/vertical-pod-autoscaler/e2e/utils/certs.go b/vertical-pod-autoscaler/e2e/utils/certs.go index d57be1269104..5d32a66a5844 100644 --- a/vertical-pod-autoscaler/e2e/utils/certs.go +++ b/vertical-pod-autoscaler/e2e/utils/certs.go @@ -20,7 +20,6 @@ package utils import ( "crypto/x509" - "io/ioutil" "os" "k8s.io/client-go/util/cert" @@ -38,7 +37,7 @@ type certContext struct { // SetupWebhookCert sets up the server cert. For example, user, apiservers and admission webhooks // can use the cert to prove their identity to the kube-apiserver. func SetupWebhookCert(namespaceName string) *certContext { - certDir, err := ioutil.TempDir("", "test-e2e-server-cert") + certDir, err := os.MkdirTemp("", "test-e2e-server-cert") if err != nil { framework.Failf("Failed to create a temp dir for cert generation %v", err) } @@ -51,11 +50,11 @@ func SetupWebhookCert(namespaceName string) *certContext { if err != nil { framework.Failf("Failed to create CA cert for apiserver %v", err) } - caCertFile, err := ioutil.TempFile(certDir, "ca.crt") + caCertFile, err := os.CreateTemp(certDir, "ca.crt") if err != nil { framework.Failf("Failed to create a temp file for ca cert generation %v", err) } - if err := ioutil.WriteFile(caCertFile.Name(), utils.EncodeCertPEM(signingCert), 0644); err != nil { + if err := os.WriteFile(caCertFile.Name(), utils.EncodeCertPEM(signingCert), 0644); err != nil { framework.Failf("Failed to write CA cert %v", err) } key, err := utils.NewPrivateKey() @@ -73,22 +72,22 @@ func SetupWebhookCert(namespaceName string) *certContext { if err != nil { framework.Failf("Failed to create cert%v", err) } - certFile, err := ioutil.TempFile(certDir, "server.crt") + certFile, err := os.CreateTemp(certDir, "server.crt") if err != nil { framework.Failf("Failed to create a temp file for cert generation %v", err) } - keyFile, err := ioutil.TempFile(certDir, "server.key") + keyFile, err := os.CreateTemp(certDir, "server.key") if err != nil { framework.Failf("Failed to create a temp file for key generation %v", err) } - if err = ioutil.WriteFile(certFile.Name(), utils.EncodeCertPEM(signedCert), 0600); err != nil { + if err = os.WriteFile(certFile.Name(), utils.EncodeCertPEM(signedCert), 0600); err != nil { framework.Failf("Failed to write cert file %v", err) } privateKeyPEM, err := keyutil.MarshalPrivateKeyToPEM(key) if err != nil { framework.Failf("Failed to marshal key %v", err) } - if err = ioutil.WriteFile(keyFile.Name(), privateKeyPEM, 0644); err != nil { + if err = os.WriteFile(keyFile.Name(), privateKeyPEM, 0644); err != nil { framework.Failf("Failed to write key file %v", err) } return &certContext{ diff --git a/vertical-pod-autoscaler/e2e/v1/e2e.go b/vertical-pod-autoscaler/e2e/v1/e2e.go index b6124fcb2144..d15b1e8f03cf 100644 --- a/vertical-pod-autoscaler/e2e/v1/e2e.go +++ b/vertical-pod-autoscaler/e2e/v1/e2e.go @@ -21,7 +21,7 @@ package autoscaling import ( "context" "fmt" - "io/ioutil" + "os" "path" "testing" "time" @@ -334,7 +334,7 @@ func gatherTestSuiteMetrics() error { metricsJSON := metricsForE2E.PrintJSON() if framework.TestContext.ReportDir != "" { filePath := path.Join(framework.TestContext.ReportDir, "MetricsForE2ESuite_"+time.Now().Format(time.RFC3339)+".json") - if err := ioutil.WriteFile(filePath, []byte(metricsJSON), 0644); err != nil { + if err := os.WriteFile(filePath, []byte(metricsJSON), 0644); err != nil { return fmt.Errorf("error writing to %q: %v", filePath, err) } } else { From c58f21d020ddc3206b95a2c679584b011a61acf3 Mon Sep 17 00:00:00 2001 From: Adrian Moisey Date: Sun, 26 Oct 2025 17:17:30 +0200 Subject: [PATCH 4/5] Remove unneeded seed See https://tip.golang.org/doc/go1.20#mathrandpkgmathrand --- vertical-pod-autoscaler/e2e/v1/e2e_test.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/vertical-pod-autoscaler/e2e/v1/e2e_test.go b/vertical-pod-autoscaler/e2e/v1/e2e_test.go index 98819575c43a..1a3839534abd 100644 --- a/vertical-pod-autoscaler/e2e/v1/e2e_test.go +++ b/vertical-pod-autoscaler/e2e/v1/e2e_test.go @@ -19,10 +19,8 @@ package autoscaling import ( "flag" "fmt" - "math/rand" "os" "testing" - "time" // Never, ever remove the line with "/ginkgo". Without it, // the ginkgo test runner will not detect that this @@ -68,7 +66,6 @@ func TestMain(m *testing.M) { testfiles.AddFileSource(testfiles.RootFileSource{Root: framework.TestContext.RepoRoot}) } - rand.Seed(time.Now().UnixNano()) os.Exit(m.Run()) } From 124fd102eb16a0538201e1255c13fcb4551e3b5e Mon Sep 17 00:00:00 2001 From: Adrian Moisey Date: Sun, 26 Oct 2025 17:17:39 +0200 Subject: [PATCH 5/5] Remove unused const --- vertical-pod-autoscaler/e2e/v1/e2e_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/vertical-pod-autoscaler/e2e/v1/e2e_test.go b/vertical-pod-autoscaler/e2e/v1/e2e_test.go index 1a3839534abd..1900ead751cc 100644 --- a/vertical-pod-autoscaler/e2e/v1/e2e_test.go +++ b/vertical-pod-autoscaler/e2e/v1/e2e_test.go @@ -34,8 +34,6 @@ import ( "k8s.io/kubernetes/test/utils/image" ) -var viperConfig = flag.String("viper-config", "", "The name of a viper config file (https://github.com/spf13/viper#what-is-viper). All e2e command line parameters can also be configured in such a file. May contain a path and may or may not contain the file suffix. The default is to look for an optional file with `e2e` as base name. If a file is specified explicitly, it must be present.") - // handleFlags sets up all flags and parses the command line. func handleFlags() { config.CopyFlags(config.Flags, flag.CommandLine)