From d206ac607592b8be985b987419a4884f918ecdb7 Mon Sep 17 00:00:00 2001 From: Alexander Lais Date: Thu, 23 Jul 2026 10:41:53 +0200 Subject: [PATCH] refactor(envtestutils): migrate from deprecated client.Apply Patch to typed Apply MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit controller-runtime v0.23 deprecates the client.Apply Patch pattern in favor of Client.Apply() with a typed apply configuration. The only Apply call site in this repo targets corev1.Service (a built-in Kubernetes type), so the upstream k8s.io/client-go/applyconfigurations/core/v1 constructors are used directly — no in-repo applyconfiguration generation is needed. Signed-off-by: Alexander Lais --- envtestutils/envtestutils.go | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/envtestutils/envtestutils.go b/envtestutils/envtestutils.go index 079b0bc..0f31408 100644 --- a/envtestutils/envtestutils.go +++ b/envtestutils/envtestutils.go @@ -22,6 +22,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/wait" + corev1ac "k8s.io/client-go/applyconfigurations/core/v1" "k8s.io/client-go/rest" apiregistrationv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1" "k8s.io/utils/ptr" @@ -157,21 +158,12 @@ func (o *APIServiceInstallOptions) generateService(cfg *rest.Config) (namespace, name = "aggregated-apiserver" } - service := &corev1.Service{ - TypeMeta: metav1.TypeMeta{ - APIVersion: corev1.SchemeGroupVersion.String(), - Kind: "Service", - }, - ObjectMeta: metav1.ObjectMeta{ - Namespace: namespace, - Name: name, - }, - Spec: corev1.ServiceSpec{ - Type: corev1.ServiceTypeExternalName, - ExternalName: host, - }, - } - if err := c.Patch(ctx, service, client.Apply, client.ForceOwnership, fieldOwner); err != nil { + serviceAC := corev1ac.Service(name, namespace). + WithSpec(corev1ac.ServiceSpec(). + WithType(corev1.ServiceTypeExternalName). + WithExternalName(host), + ) + if err := c.Apply(ctx, serviceAC, client.ForceOwnership, fieldOwner); err != nil { return "", "", fmt.Errorf("error applying service: %w", err) }