From 162ab5da954dda68b52fcdad245d1a20882a6fe8 Mon Sep 17 00:00:00 2001 From: bentito Date: Thu, 19 Feb 2026 14:32:09 -0500 Subject: [PATCH 1/3] Refactor get_coredns_config (NE-2449): Use DynamicClient and testify/suite --- pkg/toolsets/netedge/coredns.go | 35 ++++++++++++---------------- pkg/toolsets/netedge/coredns_test.go | 17 +++++++------- 2 files changed, 23 insertions(+), 29 deletions(-) diff --git a/pkg/toolsets/netedge/coredns.go b/pkg/toolsets/netedge/coredns.go index 267969977..6ade4bf2a 100644 --- a/pkg/toolsets/netedge/coredns.go +++ b/pkg/toolsets/netedge/coredns.go @@ -4,13 +4,11 @@ import ( "fmt" "github.com/containers/kubernetes-mcp-server/pkg/api" - "github.com/containers/kubernetes-mcp-server/pkg/kubernetes" "github.com/google/jsonschema-go/jsonschema" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/types" - "k8s.io/client-go/rest" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/client" ) func initCoreDNS() []api.ServerTool { @@ -34,30 +32,27 @@ func initCoreDNS() []api.ServerTool { } } -// newClientFunc is the function used to create a controller-runtime client. -// It is a variable to allow overriding in tests. -var newClientFunc = func(config *rest.Config, options client.Options) (client.Client, error) { - return client.New(config, options) -} - func getCoreDNSConfig(params api.ToolHandlerParams) (*api.ToolCallResult, error) { - cfg := params.RESTConfig() - if cfg == nil { - return api.NewToolCallResult("", fmt.Errorf("failed to get REST config")), nil + gvr := schema.GroupVersionResource{ + Group: "", + Version: "v1", + Resource: "configmaps", } - cl, err := newClientFunc(cfg, client.Options{Scheme: kubernetes.Scheme}) + cm, err := params.DynamicClient().Resource(gvr).Namespace("openshift-dns").Get(params.Context, "dns-default", metav1.GetOptions{}) if err != nil { - return api.NewToolCallResult("", fmt.Errorf("failed to create controller-runtime client: %w", err)), nil + return api.NewToolCallResult("", fmt.Errorf("failed to get dns-default ConfigMap: %w", err)), nil } - cm := &corev1.ConfigMap{} - err = cl.Get(params.Context, types.NamespacedName{Name: "dns-default", Namespace: "openshift-dns"}, cm) + data, found, err := unstructured.NestedStringMap(cm.Object, "data") if err != nil { - return api.NewToolCallResult("", fmt.Errorf("failed to get dns-default ConfigMap: %w", err)), nil + return api.NewToolCallResult("", fmt.Errorf("failed to parse ConfigMap data: %w", err)), nil + } + if !found { + return api.NewToolCallResult("", fmt.Errorf("ConfigMap has no data")), nil } - corefile, ok := cm.Data["Corefile"] + corefile, ok := data["Corefile"] if !ok { return api.NewToolCallResult("", fmt.Errorf("corefile not found in dns-default ConfigMap")), nil } diff --git a/pkg/toolsets/netedge/coredns_test.go b/pkg/toolsets/netedge/coredns_test.go index 89c10d7d6..d844aa6e0 100644 --- a/pkg/toolsets/netedge/coredns_test.go +++ b/pkg/toolsets/netedge/coredns_test.go @@ -4,9 +4,8 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/rest" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/client/fake" + "k8s.io/client-go/dynamic/fake" + clientgoscheme "k8s.io/client-go/kubernetes/scheme" ) func (s *NetEdgeTestSuite) TestGetCoreDNSConfig() { @@ -64,13 +63,13 @@ func (s *NetEdgeTestSuite) TestGetCoreDNSConfig() { objs = append(objs, tt.configMap) } - // Override newClientFunc to return fake client - originalNewClientFunc := newClientFunc - defer func() { newClientFunc = originalNewClientFunc }() + // Setup fake dynamic client + scheme := runtime.NewScheme() + _ = clientgoscheme.AddToScheme(scheme) - newClientFunc = func(config *rest.Config, options client.Options) (client.Client, error) { - return fake.NewClientBuilder().WithRuntimeObjects(objs...).Build(), nil - } + // Create a fake dynamic client with the objects + dynClient := fake.NewSimpleDynamicClient(scheme, objs...) + s.SetDynamicClient(dynClient) // Call handler using suite params result, err := getCoreDNSConfig(s.params) From 2dbcc9c39fe0a81fe38c20405a2603b7a93e868f Mon Sep 17 00:00:00 2001 From: bentito Date: Wed, 4 Mar 2026 12:20:36 -0500 Subject: [PATCH 2/3] tests(coredns): address review comments Add test case for missing ConfigMap 'data' map and ensure AddToScheme does not return an error in test setup. Signed-off-by: bentito --- pkg/toolsets/netedge/coredns_test.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/toolsets/netedge/coredns_test.go b/pkg/toolsets/netedge/coredns_test.go index d844aa6e0..35acdd15d 100644 --- a/pkg/toolsets/netedge/coredns_test.go +++ b/pkg/toolsets/netedge/coredns_test.go @@ -53,6 +53,18 @@ func (s *NetEdgeTestSuite) TestGetCoreDNSConfig() { expectError: true, errorContains: "corefile not found", }, + { + name: "failure - data not found", + configMap: &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: "dns-default", + Namespace: "openshift-dns", + }, + }, + expectedOutput: "", + expectError: true, + errorContains: "ConfigMap has no data", + }, } for _, tt := range tests { @@ -65,7 +77,8 @@ func (s *NetEdgeTestSuite) TestGetCoreDNSConfig() { // Setup fake dynamic client scheme := runtime.NewScheme() - _ = clientgoscheme.AddToScheme(scheme) + err := clientgoscheme.AddToScheme(scheme) + s.Require().NoError(err) // Create a fake dynamic client with the objects dynClient := fake.NewSimpleDynamicClient(scheme, objs...) From f6c39c911bad9d11404b92571582ce68e3e133ca Mon Sep 17 00:00:00 2001 From: Matthias Wessendorf Date: Mon, 16 Mar 2026 08:25:42 +0100 Subject: [PATCH 3/3] Running 'go mod vendor', since it was forgotten, after removing some 'controller-runtime' packages Signed-off-by: Matthias Wessendorf --- .../client-go/applyconfigurations/OWNERS | 6 - .../client-go/applyconfigurations/doc.go | 150 -- .../imagepolicy/v1alpha1/imagereview.go | 291 --- .../v1alpha1/imagereviewcontainerspec.go | 42 - .../imagepolicy/v1alpha1/imagereviewspec.go | 75 - .../imagepolicy/v1alpha1/imagereviewstatus.go | 73 - .../client-go/applyconfigurations/utils.go | 2004 ----------------- vendor/modules.txt | 6 - .../pkg/client/fake/client.go | 1720 -------------- .../controller-runtime/pkg/client/fake/doc.go | 38 - .../pkg/client/fake/typeconverter.go | 60 - .../pkg/client/fake/versioned_tracker.go | 368 --- .../pkg/client/interceptor/intercept.go | 183 -- .../pkg/internal/field/selector/utils.go | 37 - .../pkg/internal/objectutil/objectutil.go | 42 - 15 files changed, 5095 deletions(-) delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/OWNERS delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/doc.go delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereview.go delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewcontainerspec.go delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewspec.go delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewstatus.go delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/utils.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/client.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/doc.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/typeconverter.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/versioned_tracker.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/client/interceptor/intercept.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/internal/field/selector/utils.go delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/internal/objectutil/objectutil.go diff --git a/vendor/k8s.io/client-go/applyconfigurations/OWNERS b/vendor/k8s.io/client-go/applyconfigurations/OWNERS deleted file mode 100644 index de4067fd3..000000000 --- a/vendor/k8s.io/client-go/applyconfigurations/OWNERS +++ /dev/null @@ -1,6 +0,0 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -approvers: - - apelisse - - jpbetz - - api-approvers diff --git a/vendor/k8s.io/client-go/applyconfigurations/doc.go b/vendor/k8s.io/client-go/applyconfigurations/doc.go deleted file mode 100644 index a28b4c0ee..000000000 --- a/vendor/k8s.io/client-go/applyconfigurations/doc.go +++ /dev/null @@ -1,150 +0,0 @@ -/* -Copyright 2021 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/* -Package applyconfigurations provides typesafe go representations of the apply -configurations that are used to constructs Server-side Apply requests. - -# Basics - -The Apply functions in the typed client (see the k8s.io/client-go/kubernetes/typed packages) offer -a direct and typesafe way of calling Server-side Apply. Each Apply function takes an "apply -configuration" type as an argument, which is a structured representation of an Apply request. For -example: - - import ( - ... - v1ac "k8s.io/client-go/applyconfigurations/autoscaling/v1" - ) - hpaApplyConfig := v1ac.HorizontalPodAutoscaler(autoscalerName, ns). - WithSpec(v1ac.HorizontalPodAutoscalerSpec(). - WithMinReplicas(0) - ) - return hpav1client.Apply(ctx, hpaApplyConfig, metav1.ApplyOptions{FieldManager: "mycontroller", Force: true}) - -Note in this example that HorizontalPodAutoscaler is imported from an "applyconfigurations" -package. Each "apply configuration" type represents the same Kubernetes object kind as the -corresponding go struct, but where all fields are pointers to make them optional, allowing apply -requests to be accurately represented. For example, this when the apply configuration in the above -example is marshalled to YAML, it produces: - - apiVersion: autoscaling/v1 - kind: HorizontalPodAutoscaler - metadata: - name: myHPA - namespace: myNamespace - spec: - minReplicas: 0 - -To understand why this is needed, the above YAML cannot be produced by the -v1.HorizontalPodAutoscaler go struct. Take for example: - - hpa := v1.HorizontalPodAutoscaler{ - TypeMeta: metav1.TypeMeta{ - APIVersion: "autoscaling/v1", - Kind: "HorizontalPodAutoscaler", - }, - ObjectMeta: ObjectMeta{ - Namespace: ns, - Name: autoscalerName, - }, - Spec: v1.HorizontalPodAutoscalerSpec{ - MinReplicas: pointer.Int32Ptr(0), - }, - } - -The above code attempts to declare the same apply configuration as shown in the previous examples, -but when marshalled to YAML, produces: - - kind: HorizontalPodAutoscaler - apiVersion: autoscaling/v1 - metadata: - name: myHPA - namespace: myNamespace - spec: - scaleTargetRef: - kind: "" - name: "" - minReplicas: 0 - maxReplicas: 0 - -Which, among other things, contains spec.maxReplicas set to 0. This is almost certainly not what -the caller intended (the intended apply configuration says nothing about the maxReplicas field), -and could have serious consequences on a production system: it directs the autoscaler to downscale -to zero pods. The problem here originates from the fact that the go structs contain required fields -that are zero valued if not set explicitly. The go structs work as intended for create and update -operations, but are fundamentally incompatible with apply, which is why we have introduced the -generated "apply configuration" types. - -The "apply configurations" also have convenience With functions that make it easier to -build apply requests. This allows developers to set fields without having to deal with the fact that -all the fields in the "apply configuration" types are pointers, and are inconvenient to set using -go. For example "MinReplicas: &0" is not legal go code, so without the With functions, developers -would work around this problem by using a library, .e.g. "MinReplicas: pointer.Int32Ptr(0)", but -string enumerations like corev1.Protocol are still a problem since they cannot be supported by a -general purpose library. In addition to the convenience, the With functions also isolate -developers from the underlying representation, which makes it safer for the underlying -representation to be changed to support additional features in the future. - -# Controller Support - -The new client-go support makes it much easier to use Server-side Apply in controllers, by either of -two mechanisms. - -Mechanism 1: - -When authoring new controllers to use Server-side Apply, a good approach is to have the controller -recreate the apply configuration for an object each time it reconciles that object. This ensures -that the controller fully reconciles all the fields that it is responsible for. Controllers -typically should unconditionally set all the fields they own by setting "Force: true" in the -ApplyOptions. Controllers must also provide a FieldManager name that is unique to the -reconciliation loop that apply is called from. - -When upgrading existing controllers to use Server-side Apply the same approach often works -well--migrate the controllers to recreate the apply configuration each time it reconciles any -object. For cases where this does not work well, see Mechanism 2. - -Mechanism 2: - -When upgrading existing controllers to use Server-side Apply, the controller might have multiple -code paths that update different parts of an object depending on various conditions. Migrating a -controller like this to Server-side Apply can be risky because if the controller forgets to include -any fields in an apply configuration that is included in a previous apply request, a field can be -accidentally deleted. For such cases, an alternative to mechanism 1 is to replace any controller -reconciliation code that performs a "read/modify-in-place/update" (or patch) workflow with a -"extract/modify-in-place/apply" workflow. Here's an example of the new workflow: - - fieldMgr := "my-field-manager" - deploymentClient := clientset.AppsV1().Deployments("default") - // read, could also be read from a shared informer - deployment, err := deploymentClient.Get(ctx, "example-deployment", metav1.GetOptions{}) - if err != nil { - // handle error - } - // extract - deploymentApplyConfig, err := appsv1ac.ExtractDeployment(deployment, fieldMgr) - if err != nil { - // handle error - } - // modify-in-place - deploymentApplyConfig.Spec.Template.Spec.WithContainers(corev1ac.Container(). - WithName("modify-slice"). - WithImage("nginx:1.14.2"), - ) - // apply - applied, err := deploymentClient.Apply(ctx, extractedDeployment, metav1.ApplyOptions{FieldManager: fieldMgr}) -*/ -package applyconfigurations diff --git a/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereview.go b/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereview.go deleted file mode 100644 index f63c86ceb..000000000 --- a/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereview.go +++ /dev/null @@ -1,291 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - imagepolicyv1alpha1 "k8s.io/api/imagepolicy/v1alpha1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - managedfields "k8s.io/apimachinery/pkg/util/managedfields" - internal "k8s.io/client-go/applyconfigurations/internal" - v1 "k8s.io/client-go/applyconfigurations/meta/v1" -) - -// ImageReviewApplyConfiguration represents a declarative configuration of the ImageReview type for use -// with apply. -// -// ImageReview checks if the set of images in a pod are allowed. -type ImageReviewApplyConfiguration struct { - v1.TypeMetaApplyConfiguration `json:",inline"` - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - // Spec holds information about the pod being evaluated - Spec *ImageReviewSpecApplyConfiguration `json:"spec,omitempty"` - // Status is filled in by the backend and indicates whether the pod should be allowed. - Status *ImageReviewStatusApplyConfiguration `json:"status,omitempty"` -} - -// ImageReview constructs a declarative configuration of the ImageReview type for use with -// apply. -func ImageReview(name string) *ImageReviewApplyConfiguration { - b := &ImageReviewApplyConfiguration{} - b.WithName(name) - b.WithKind("ImageReview") - b.WithAPIVersion("imagepolicy.k8s.io/v1alpha1") - return b -} - -// ExtractImageReviewFrom extracts the applied configuration owned by fieldManager from -// imageReview for the specified subresource. Pass an empty string for subresource to extract -// the main resource. Common subresources include "status", "scale", etc. -// imageReview must be a unmodified ImageReview API object that was retrieved from the Kubernetes API. -// ExtractImageReviewFrom provides a way to perform a extract/modify-in-place/apply workflow. -// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously -// applied if another fieldManager has updated or force applied any of the previously applied fields. -func ExtractImageReviewFrom(imageReview *imagepolicyv1alpha1.ImageReview, fieldManager string, subresource string) (*ImageReviewApplyConfiguration, error) { - b := &ImageReviewApplyConfiguration{} - err := managedfields.ExtractInto(imageReview, internal.Parser().Type("io.k8s.api.imagepolicy.v1alpha1.ImageReview"), fieldManager, b, subresource) - if err != nil { - return nil, err - } - b.WithName(imageReview.Name) - - b.WithKind("ImageReview") - b.WithAPIVersion("imagepolicy.k8s.io/v1alpha1") - return b, nil -} - -// ExtractImageReview extracts the applied configuration owned by fieldManager from -// imageReview. If no managedFields are found in imageReview for fieldManager, a -// ImageReviewApplyConfiguration is returned with only the Name, Namespace (if applicable), -// APIVersion and Kind populated. It is possible that no managed fields were found for because other -// field managers have taken ownership of all the fields previously owned by fieldManager, or because -// the fieldManager never owned fields any fields. -// imageReview must be a unmodified ImageReview API object that was retrieved from the Kubernetes API. -// ExtractImageReview provides a way to perform a extract/modify-in-place/apply workflow. -// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously -// applied if another fieldManager has updated or force applied any of the previously applied fields. -func ExtractImageReview(imageReview *imagepolicyv1alpha1.ImageReview, fieldManager string) (*ImageReviewApplyConfiguration, error) { - return ExtractImageReviewFrom(imageReview, fieldManager, "") -} - -// ExtractImageReviewStatus extracts the applied configuration owned by fieldManager from -// imageReview for the status subresource. -func ExtractImageReviewStatus(imageReview *imagepolicyv1alpha1.ImageReview, fieldManager string) (*ImageReviewApplyConfiguration, error) { - return ExtractImageReviewFrom(imageReview, fieldManager, "status") -} - -func (b ImageReviewApplyConfiguration) IsApplyConfiguration() {} - -// WithKind sets the Kind field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Kind field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithKind(value string) *ImageReviewApplyConfiguration { - b.TypeMetaApplyConfiguration.Kind = &value - return b -} - -// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the APIVersion field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithAPIVersion(value string) *ImageReviewApplyConfiguration { - b.TypeMetaApplyConfiguration.APIVersion = &value - return b -} - -// WithName sets the Name field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Name field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithName(value string) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ObjectMetaApplyConfiguration.Name = &value - return b -} - -// WithGenerateName sets the GenerateName field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the GenerateName field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithGenerateName(value string) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ObjectMetaApplyConfiguration.GenerateName = &value - return b -} - -// WithNamespace sets the Namespace field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Namespace field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithNamespace(value string) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ObjectMetaApplyConfiguration.Namespace = &value - return b -} - -// WithUID sets the UID field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the UID field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithUID(value types.UID) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ObjectMetaApplyConfiguration.UID = &value - return b -} - -// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ResourceVersion field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithResourceVersion(value string) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ObjectMetaApplyConfiguration.ResourceVersion = &value - return b -} - -// WithGeneration sets the Generation field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Generation field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithGeneration(value int64) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ObjectMetaApplyConfiguration.Generation = &value - return b -} - -// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the CreationTimestamp field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ObjectMetaApplyConfiguration.CreationTimestamp = &value - return b -} - -// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the DeletionTimestamp field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ObjectMetaApplyConfiguration.DeletionTimestamp = &value - return b -} - -// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value - return b -} - -// WithLabels puts the entries into the Labels field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Labels field, -// overwriting an existing map entries in Labels field with the same key. -func (b *ImageReviewApplyConfiguration) WithLabels(entries map[string]string) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - if b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 { - b.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries)) - } - for k, v := range entries { - b.ObjectMetaApplyConfiguration.Labels[k] = v - } - return b -} - -// WithAnnotations puts the entries into the Annotations field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Annotations field, -// overwriting an existing map entries in Annotations field with the same key. -func (b *ImageReviewApplyConfiguration) WithAnnotations(entries map[string]string) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - if b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 { - b.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries)) - } - for k, v := range entries { - b.ObjectMetaApplyConfiguration.Annotations[k] = v - } - return b -} - -// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the OwnerReferences field. -func (b *ImageReviewApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - for i := range values { - if values[i] == nil { - panic("nil value passed to WithOwnerReferences") - } - b.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i]) - } - return b -} - -// WithFinalizers adds the given value to the Finalizers field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Finalizers field. -func (b *ImageReviewApplyConfiguration) WithFinalizers(values ...string) *ImageReviewApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - for i := range values { - b.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i]) - } - return b -} - -func (b *ImageReviewApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { - if b.ObjectMetaApplyConfiguration == nil { - b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} - } -} - -// WithSpec sets the Spec field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Spec field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithSpec(value *ImageReviewSpecApplyConfiguration) *ImageReviewApplyConfiguration { - b.Spec = value - return b -} - -// WithStatus sets the Status field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Status field is set to the value of the last call. -func (b *ImageReviewApplyConfiguration) WithStatus(value *ImageReviewStatusApplyConfiguration) *ImageReviewApplyConfiguration { - b.Status = value - return b -} - -// GetKind retrieves the value of the Kind field in the declarative configuration. -func (b *ImageReviewApplyConfiguration) GetKind() *string { - return b.TypeMetaApplyConfiguration.Kind -} - -// GetAPIVersion retrieves the value of the APIVersion field in the declarative configuration. -func (b *ImageReviewApplyConfiguration) GetAPIVersion() *string { - return b.TypeMetaApplyConfiguration.APIVersion -} - -// GetName retrieves the value of the Name field in the declarative configuration. -func (b *ImageReviewApplyConfiguration) GetName() *string { - b.ensureObjectMetaApplyConfigurationExists() - return b.ObjectMetaApplyConfiguration.Name -} - -// GetNamespace retrieves the value of the Namespace field in the declarative configuration. -func (b *ImageReviewApplyConfiguration) GetNamespace() *string { - b.ensureObjectMetaApplyConfigurationExists() - return b.ObjectMetaApplyConfiguration.Namespace -} diff --git a/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewcontainerspec.go b/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewcontainerspec.go deleted file mode 100644 index 1f0193f03..000000000 --- a/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewcontainerspec.go +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -// ImageReviewContainerSpecApplyConfiguration represents a declarative configuration of the ImageReviewContainerSpec type for use -// with apply. -// -// ImageReviewContainerSpec is a description of a container within the pod creation request. -type ImageReviewContainerSpecApplyConfiguration struct { - // This can be in the form image:tag or image@SHA:012345679abcdef. - Image *string `json:"image,omitempty"` -} - -// ImageReviewContainerSpecApplyConfiguration constructs a declarative configuration of the ImageReviewContainerSpec type for use with -// apply. -func ImageReviewContainerSpec() *ImageReviewContainerSpecApplyConfiguration { - return &ImageReviewContainerSpecApplyConfiguration{} -} - -// WithImage sets the Image field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Image field is set to the value of the last call. -func (b *ImageReviewContainerSpecApplyConfiguration) WithImage(value string) *ImageReviewContainerSpecApplyConfiguration { - b.Image = &value - return b -} diff --git a/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewspec.go b/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewspec.go deleted file mode 100644 index 14c6603f5..000000000 --- a/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewspec.go +++ /dev/null @@ -1,75 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -// ImageReviewSpecApplyConfiguration represents a declarative configuration of the ImageReviewSpec type for use -// with apply. -// -// ImageReviewSpec is a description of the pod creation request. -type ImageReviewSpecApplyConfiguration struct { - // Containers is a list of a subset of the information in each container of the Pod being created. - Containers []ImageReviewContainerSpecApplyConfiguration `json:"containers,omitempty"` - // Annotations is a list of key-value pairs extracted from the Pod's annotations. - // It only includes keys which match the pattern `*.image-policy.k8s.io/*`. - // It is up to each webhook backend to determine how to interpret these annotations, if at all. - Annotations map[string]string `json:"annotations,omitempty"` - // Namespace is the namespace the pod is being created in. - Namespace *string `json:"namespace,omitempty"` -} - -// ImageReviewSpecApplyConfiguration constructs a declarative configuration of the ImageReviewSpec type for use with -// apply. -func ImageReviewSpec() *ImageReviewSpecApplyConfiguration { - return &ImageReviewSpecApplyConfiguration{} -} - -// WithContainers adds the given value to the Containers field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Containers field. -func (b *ImageReviewSpecApplyConfiguration) WithContainers(values ...*ImageReviewContainerSpecApplyConfiguration) *ImageReviewSpecApplyConfiguration { - for i := range values { - if values[i] == nil { - panic("nil value passed to WithContainers") - } - b.Containers = append(b.Containers, *values[i]) - } - return b -} - -// WithAnnotations puts the entries into the Annotations field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Annotations field, -// overwriting an existing map entries in Annotations field with the same key. -func (b *ImageReviewSpecApplyConfiguration) WithAnnotations(entries map[string]string) *ImageReviewSpecApplyConfiguration { - if b.Annotations == nil && len(entries) > 0 { - b.Annotations = make(map[string]string, len(entries)) - } - for k, v := range entries { - b.Annotations[k] = v - } - return b -} - -// WithNamespace sets the Namespace field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Namespace field is set to the value of the last call. -func (b *ImageReviewSpecApplyConfiguration) WithNamespace(value string) *ImageReviewSpecApplyConfiguration { - b.Namespace = &value - return b -} diff --git a/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewstatus.go b/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewstatus.go deleted file mode 100644 index 52828a29c..000000000 --- a/vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewstatus.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -// ImageReviewStatusApplyConfiguration represents a declarative configuration of the ImageReviewStatus type for use -// with apply. -// -// ImageReviewStatus is the result of the review for the pod creation request. -type ImageReviewStatusApplyConfiguration struct { - // Allowed indicates that all images were allowed to be run. - Allowed *bool `json:"allowed,omitempty"` - // Reason should be empty unless Allowed is false in which case it - // may contain a short description of what is wrong. Kubernetes - // may truncate excessively long errors when displaying to the user. - Reason *string `json:"reason,omitempty"` - // AuditAnnotations will be added to the attributes object of the - // admission controller request using 'AddAnnotation'. The keys should - // be prefix-less (i.e., the admission controller will add an - // appropriate prefix). - AuditAnnotations map[string]string `json:"auditAnnotations,omitempty"` -} - -// ImageReviewStatusApplyConfiguration constructs a declarative configuration of the ImageReviewStatus type for use with -// apply. -func ImageReviewStatus() *ImageReviewStatusApplyConfiguration { - return &ImageReviewStatusApplyConfiguration{} -} - -// WithAllowed sets the Allowed field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Allowed field is set to the value of the last call. -func (b *ImageReviewStatusApplyConfiguration) WithAllowed(value bool) *ImageReviewStatusApplyConfiguration { - b.Allowed = &value - return b -} - -// WithReason sets the Reason field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Reason field is set to the value of the last call. -func (b *ImageReviewStatusApplyConfiguration) WithReason(value string) *ImageReviewStatusApplyConfiguration { - b.Reason = &value - return b -} - -// WithAuditAnnotations puts the entries into the AuditAnnotations field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the AuditAnnotations field, -// overwriting an existing map entries in AuditAnnotations field with the same key. -func (b *ImageReviewStatusApplyConfiguration) WithAuditAnnotations(entries map[string]string) *ImageReviewStatusApplyConfiguration { - if b.AuditAnnotations == nil && len(entries) > 0 { - b.AuditAnnotations = make(map[string]string, len(entries)) - } - for k, v := range entries { - b.AuditAnnotations[k] = v - } - return b -} diff --git a/vendor/k8s.io/client-go/applyconfigurations/utils.go b/vendor/k8s.io/client-go/applyconfigurations/utils.go deleted file mode 100644 index ef6f16e83..000000000 --- a/vendor/k8s.io/client-go/applyconfigurations/utils.go +++ /dev/null @@ -1,2004 +0,0 @@ -/* -Copyright The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package applyconfigurations - -import ( - v1 "k8s.io/api/admissionregistration/v1" - v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" - v1beta1 "k8s.io/api/admissionregistration/v1beta1" - apiserverinternalv1alpha1 "k8s.io/api/apiserverinternal/v1alpha1" - appsv1 "k8s.io/api/apps/v1" - appsv1beta1 "k8s.io/api/apps/v1beta1" - v1beta2 "k8s.io/api/apps/v1beta2" - autoscalingv1 "k8s.io/api/autoscaling/v1" - v2 "k8s.io/api/autoscaling/v2" - v2beta1 "k8s.io/api/autoscaling/v2beta1" - v2beta2 "k8s.io/api/autoscaling/v2beta2" - batchv1 "k8s.io/api/batch/v1" - batchv1beta1 "k8s.io/api/batch/v1beta1" - certificatesv1 "k8s.io/api/certificates/v1" - certificatesv1alpha1 "k8s.io/api/certificates/v1alpha1" - certificatesv1beta1 "k8s.io/api/certificates/v1beta1" - coordinationv1 "k8s.io/api/coordination/v1" - v1alpha2 "k8s.io/api/coordination/v1alpha2" - coordinationv1beta1 "k8s.io/api/coordination/v1beta1" - corev1 "k8s.io/api/core/v1" - discoveryv1 "k8s.io/api/discovery/v1" - discoveryv1beta1 "k8s.io/api/discovery/v1beta1" - eventsv1 "k8s.io/api/events/v1" - eventsv1beta1 "k8s.io/api/events/v1beta1" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" - flowcontrolv1 "k8s.io/api/flowcontrol/v1" - flowcontrolv1beta1 "k8s.io/api/flowcontrol/v1beta1" - flowcontrolv1beta2 "k8s.io/api/flowcontrol/v1beta2" - v1beta3 "k8s.io/api/flowcontrol/v1beta3" - imagepolicyv1alpha1 "k8s.io/api/imagepolicy/v1alpha1" - networkingv1 "k8s.io/api/networking/v1" - networkingv1beta1 "k8s.io/api/networking/v1beta1" - nodev1 "k8s.io/api/node/v1" - nodev1alpha1 "k8s.io/api/node/v1alpha1" - nodev1beta1 "k8s.io/api/node/v1beta1" - policyv1 "k8s.io/api/policy/v1" - policyv1beta1 "k8s.io/api/policy/v1beta1" - rbacv1 "k8s.io/api/rbac/v1" - rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" - rbacv1beta1 "k8s.io/api/rbac/v1beta1" - resourcev1 "k8s.io/api/resource/v1" - v1alpha3 "k8s.io/api/resource/v1alpha3" - resourcev1beta1 "k8s.io/api/resource/v1beta1" - resourcev1beta2 "k8s.io/api/resource/v1beta2" - schedulingv1 "k8s.io/api/scheduling/v1" - schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" - schedulingv1beta1 "k8s.io/api/scheduling/v1beta1" - storagev1 "k8s.io/api/storage/v1" - storagev1alpha1 "k8s.io/api/storage/v1alpha1" - storagev1beta1 "k8s.io/api/storage/v1beta1" - storagemigrationv1beta1 "k8s.io/api/storagemigration/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - schema "k8s.io/apimachinery/pkg/runtime/schema" - managedfields "k8s.io/apimachinery/pkg/util/managedfields" - admissionregistrationv1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1" - admissionregistrationv1alpha1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1" - admissionregistrationv1beta1 "k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1" - applyconfigurationsapiserverinternalv1alpha1 "k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1" - applyconfigurationsappsv1 "k8s.io/client-go/applyconfigurations/apps/v1" - applyconfigurationsappsv1beta1 "k8s.io/client-go/applyconfigurations/apps/v1beta1" - appsv1beta2 "k8s.io/client-go/applyconfigurations/apps/v1beta2" - applyconfigurationsautoscalingv1 "k8s.io/client-go/applyconfigurations/autoscaling/v1" - autoscalingv2 "k8s.io/client-go/applyconfigurations/autoscaling/v2" - autoscalingv2beta1 "k8s.io/client-go/applyconfigurations/autoscaling/v2beta1" - autoscalingv2beta2 "k8s.io/client-go/applyconfigurations/autoscaling/v2beta2" - applyconfigurationsbatchv1 "k8s.io/client-go/applyconfigurations/batch/v1" - applyconfigurationsbatchv1beta1 "k8s.io/client-go/applyconfigurations/batch/v1beta1" - applyconfigurationscertificatesv1 "k8s.io/client-go/applyconfigurations/certificates/v1" - applyconfigurationscertificatesv1alpha1 "k8s.io/client-go/applyconfigurations/certificates/v1alpha1" - applyconfigurationscertificatesv1beta1 "k8s.io/client-go/applyconfigurations/certificates/v1beta1" - applyconfigurationscoordinationv1 "k8s.io/client-go/applyconfigurations/coordination/v1" - coordinationv1alpha2 "k8s.io/client-go/applyconfigurations/coordination/v1alpha2" - applyconfigurationscoordinationv1beta1 "k8s.io/client-go/applyconfigurations/coordination/v1beta1" - applyconfigurationscorev1 "k8s.io/client-go/applyconfigurations/core/v1" - applyconfigurationsdiscoveryv1 "k8s.io/client-go/applyconfigurations/discovery/v1" - applyconfigurationsdiscoveryv1beta1 "k8s.io/client-go/applyconfigurations/discovery/v1beta1" - applyconfigurationseventsv1 "k8s.io/client-go/applyconfigurations/events/v1" - applyconfigurationseventsv1beta1 "k8s.io/client-go/applyconfigurations/events/v1beta1" - applyconfigurationsextensionsv1beta1 "k8s.io/client-go/applyconfigurations/extensions/v1beta1" - applyconfigurationsflowcontrolv1 "k8s.io/client-go/applyconfigurations/flowcontrol/v1" - applyconfigurationsflowcontrolv1beta1 "k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1" - applyconfigurationsflowcontrolv1beta2 "k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2" - flowcontrolv1beta3 "k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3" - applyconfigurationsimagepolicyv1alpha1 "k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1" - internal "k8s.io/client-go/applyconfigurations/internal" - applyconfigurationsmetav1 "k8s.io/client-go/applyconfigurations/meta/v1" - applyconfigurationsnetworkingv1 "k8s.io/client-go/applyconfigurations/networking/v1" - applyconfigurationsnetworkingv1beta1 "k8s.io/client-go/applyconfigurations/networking/v1beta1" - applyconfigurationsnodev1 "k8s.io/client-go/applyconfigurations/node/v1" - applyconfigurationsnodev1alpha1 "k8s.io/client-go/applyconfigurations/node/v1alpha1" - applyconfigurationsnodev1beta1 "k8s.io/client-go/applyconfigurations/node/v1beta1" - applyconfigurationspolicyv1 "k8s.io/client-go/applyconfigurations/policy/v1" - applyconfigurationspolicyv1beta1 "k8s.io/client-go/applyconfigurations/policy/v1beta1" - applyconfigurationsrbacv1 "k8s.io/client-go/applyconfigurations/rbac/v1" - applyconfigurationsrbacv1alpha1 "k8s.io/client-go/applyconfigurations/rbac/v1alpha1" - applyconfigurationsrbacv1beta1 "k8s.io/client-go/applyconfigurations/rbac/v1beta1" - applyconfigurationsresourcev1 "k8s.io/client-go/applyconfigurations/resource/v1" - resourcev1alpha3 "k8s.io/client-go/applyconfigurations/resource/v1alpha3" - applyconfigurationsresourcev1beta1 "k8s.io/client-go/applyconfigurations/resource/v1beta1" - applyconfigurationsresourcev1beta2 "k8s.io/client-go/applyconfigurations/resource/v1beta2" - applyconfigurationsschedulingv1 "k8s.io/client-go/applyconfigurations/scheduling/v1" - applyconfigurationsschedulingv1alpha1 "k8s.io/client-go/applyconfigurations/scheduling/v1alpha1" - applyconfigurationsschedulingv1beta1 "k8s.io/client-go/applyconfigurations/scheduling/v1beta1" - applyconfigurationsstoragev1 "k8s.io/client-go/applyconfigurations/storage/v1" - applyconfigurationsstoragev1alpha1 "k8s.io/client-go/applyconfigurations/storage/v1alpha1" - applyconfigurationsstoragev1beta1 "k8s.io/client-go/applyconfigurations/storage/v1beta1" - applyconfigurationsstoragemigrationv1beta1 "k8s.io/client-go/applyconfigurations/storagemigration/v1beta1" -) - -// ForKind returns an apply configuration type for the given GroupVersionKind, or nil if no -// apply configuration type exists for the given GroupVersionKind. -func ForKind(kind schema.GroupVersionKind) interface{} { - switch kind { - // Group=admissionregistration.k8s.io, Version=v1 - case v1.SchemeGroupVersion.WithKind("AuditAnnotation"): - return &admissionregistrationv1.AuditAnnotationApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("ExpressionWarning"): - return &admissionregistrationv1.ExpressionWarningApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("MatchCondition"): - return &admissionregistrationv1.MatchConditionApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("MatchResources"): - return &admissionregistrationv1.MatchResourcesApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("MutatingWebhook"): - return &admissionregistrationv1.MutatingWebhookApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("MutatingWebhookConfiguration"): - return &admissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("NamedRuleWithOperations"): - return &admissionregistrationv1.NamedRuleWithOperationsApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("ParamKind"): - return &admissionregistrationv1.ParamKindApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("ParamRef"): - return &admissionregistrationv1.ParamRefApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("Rule"): - return &admissionregistrationv1.RuleApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("RuleWithOperations"): - return &admissionregistrationv1.RuleWithOperationsApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("ServiceReference"): - return &admissionregistrationv1.ServiceReferenceApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("TypeChecking"): - return &admissionregistrationv1.TypeCheckingApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicy"): - return &admissionregistrationv1.ValidatingAdmissionPolicyApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicyBinding"): - return &admissionregistrationv1.ValidatingAdmissionPolicyBindingApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicyBindingSpec"): - return &admissionregistrationv1.ValidatingAdmissionPolicyBindingSpecApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicySpec"): - return &admissionregistrationv1.ValidatingAdmissionPolicySpecApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicyStatus"): - return &admissionregistrationv1.ValidatingAdmissionPolicyStatusApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("ValidatingWebhook"): - return &admissionregistrationv1.ValidatingWebhookApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("ValidatingWebhookConfiguration"): - return &admissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("Validation"): - return &admissionregistrationv1.ValidationApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("Variable"): - return &admissionregistrationv1.VariableApplyConfiguration{} - case v1.SchemeGroupVersion.WithKind("WebhookClientConfig"): - return &admissionregistrationv1.WebhookClientConfigApplyConfiguration{} - - // Group=admissionregistration.k8s.io, Version=v1alpha1 - case v1alpha1.SchemeGroupVersion.WithKind("ApplyConfiguration"): - return &admissionregistrationv1alpha1.ApplyConfigurationApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("AuditAnnotation"): - return &admissionregistrationv1alpha1.AuditAnnotationApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("ExpressionWarning"): - return &admissionregistrationv1alpha1.ExpressionWarningApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("JSONPatch"): - return &admissionregistrationv1alpha1.JSONPatchApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("MatchCondition"): - return &admissionregistrationv1alpha1.MatchConditionApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("MatchResources"): - return &admissionregistrationv1alpha1.MatchResourcesApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("MutatingAdmissionPolicy"): - return &admissionregistrationv1alpha1.MutatingAdmissionPolicyApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("MutatingAdmissionPolicyBinding"): - return &admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("MutatingAdmissionPolicyBindingSpec"): - return &admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingSpecApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("MutatingAdmissionPolicySpec"): - return &admissionregistrationv1alpha1.MutatingAdmissionPolicySpecApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("Mutation"): - return &admissionregistrationv1alpha1.MutationApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("NamedRuleWithOperations"): - return &admissionregistrationv1alpha1.NamedRuleWithOperationsApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("ParamKind"): - return &admissionregistrationv1alpha1.ParamKindApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("ParamRef"): - return &admissionregistrationv1alpha1.ParamRefApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("TypeChecking"): - return &admissionregistrationv1alpha1.TypeCheckingApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicy"): - return &admissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicyBinding"): - return &admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicyBindingSpec"): - return &admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingSpecApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicySpec"): - return &admissionregistrationv1alpha1.ValidatingAdmissionPolicySpecApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicyStatus"): - return &admissionregistrationv1alpha1.ValidatingAdmissionPolicyStatusApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("Validation"): - return &admissionregistrationv1alpha1.ValidationApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("Variable"): - return &admissionregistrationv1alpha1.VariableApplyConfiguration{} - - // Group=admissionregistration.k8s.io, Version=v1beta1 - case v1beta1.SchemeGroupVersion.WithKind("ApplyConfiguration"): - return &admissionregistrationv1beta1.ApplyConfigurationApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("AuditAnnotation"): - return &admissionregistrationv1beta1.AuditAnnotationApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("ExpressionWarning"): - return &admissionregistrationv1beta1.ExpressionWarningApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("JSONPatch"): - return &admissionregistrationv1beta1.JSONPatchApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("MatchCondition"): - return &admissionregistrationv1beta1.MatchConditionApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("MatchResources"): - return &admissionregistrationv1beta1.MatchResourcesApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("MutatingAdmissionPolicy"): - return &admissionregistrationv1beta1.MutatingAdmissionPolicyApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("MutatingAdmissionPolicyBinding"): - return &admissionregistrationv1beta1.MutatingAdmissionPolicyBindingApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("MutatingAdmissionPolicyBindingSpec"): - return &admissionregistrationv1beta1.MutatingAdmissionPolicyBindingSpecApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("MutatingAdmissionPolicySpec"): - return &admissionregistrationv1beta1.MutatingAdmissionPolicySpecApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("MutatingWebhook"): - return &admissionregistrationv1beta1.MutatingWebhookApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("MutatingWebhookConfiguration"): - return &admissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("Mutation"): - return &admissionregistrationv1beta1.MutationApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("NamedRuleWithOperations"): - return &admissionregistrationv1beta1.NamedRuleWithOperationsApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("ParamKind"): - return &admissionregistrationv1beta1.ParamKindApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("ParamRef"): - return &admissionregistrationv1beta1.ParamRefApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("ServiceReference"): - return &admissionregistrationv1beta1.ServiceReferenceApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("TypeChecking"): - return &admissionregistrationv1beta1.TypeCheckingApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicy"): - return &admissionregistrationv1beta1.ValidatingAdmissionPolicyApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicyBinding"): - return &admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicyBindingSpec"): - return &admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingSpecApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicySpec"): - return &admissionregistrationv1beta1.ValidatingAdmissionPolicySpecApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("ValidatingAdmissionPolicyStatus"): - return &admissionregistrationv1beta1.ValidatingAdmissionPolicyStatusApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("ValidatingWebhook"): - return &admissionregistrationv1beta1.ValidatingWebhookApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("ValidatingWebhookConfiguration"): - return &admissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("Validation"): - return &admissionregistrationv1beta1.ValidationApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("Variable"): - return &admissionregistrationv1beta1.VariableApplyConfiguration{} - case v1beta1.SchemeGroupVersion.WithKind("WebhookClientConfig"): - return &admissionregistrationv1beta1.WebhookClientConfigApplyConfiguration{} - - // Group=apps, Version=v1 - case appsv1.SchemeGroupVersion.WithKind("ControllerRevision"): - return &applyconfigurationsappsv1.ControllerRevisionApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("DaemonSet"): - return &applyconfigurationsappsv1.DaemonSetApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("DaemonSetCondition"): - return &applyconfigurationsappsv1.DaemonSetConditionApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("DaemonSetSpec"): - return &applyconfigurationsappsv1.DaemonSetSpecApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("DaemonSetStatus"): - return &applyconfigurationsappsv1.DaemonSetStatusApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("DaemonSetUpdateStrategy"): - return &applyconfigurationsappsv1.DaemonSetUpdateStrategyApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("Deployment"): - return &applyconfigurationsappsv1.DeploymentApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("DeploymentCondition"): - return &applyconfigurationsappsv1.DeploymentConditionApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("DeploymentSpec"): - return &applyconfigurationsappsv1.DeploymentSpecApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("DeploymentStatus"): - return &applyconfigurationsappsv1.DeploymentStatusApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("DeploymentStrategy"): - return &applyconfigurationsappsv1.DeploymentStrategyApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("ReplicaSet"): - return &applyconfigurationsappsv1.ReplicaSetApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("ReplicaSetCondition"): - return &applyconfigurationsappsv1.ReplicaSetConditionApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("ReplicaSetSpec"): - return &applyconfigurationsappsv1.ReplicaSetSpecApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("ReplicaSetStatus"): - return &applyconfigurationsappsv1.ReplicaSetStatusApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("RollingUpdateDaemonSet"): - return &applyconfigurationsappsv1.RollingUpdateDaemonSetApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("RollingUpdateDeployment"): - return &applyconfigurationsappsv1.RollingUpdateDeploymentApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("RollingUpdateStatefulSetStrategy"): - return &applyconfigurationsappsv1.RollingUpdateStatefulSetStrategyApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("StatefulSet"): - return &applyconfigurationsappsv1.StatefulSetApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("StatefulSetCondition"): - return &applyconfigurationsappsv1.StatefulSetConditionApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("StatefulSetOrdinals"): - return &applyconfigurationsappsv1.StatefulSetOrdinalsApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("StatefulSetPersistentVolumeClaimRetentionPolicy"): - return &applyconfigurationsappsv1.StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("StatefulSetSpec"): - return &applyconfigurationsappsv1.StatefulSetSpecApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("StatefulSetStatus"): - return &applyconfigurationsappsv1.StatefulSetStatusApplyConfiguration{} - case appsv1.SchemeGroupVersion.WithKind("StatefulSetUpdateStrategy"): - return &applyconfigurationsappsv1.StatefulSetUpdateStrategyApplyConfiguration{} - - // Group=apps, Version=v1beta1 - case appsv1beta1.SchemeGroupVersion.WithKind("ControllerRevision"): - return &applyconfigurationsappsv1beta1.ControllerRevisionApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("Deployment"): - return &applyconfigurationsappsv1beta1.DeploymentApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("DeploymentCondition"): - return &applyconfigurationsappsv1beta1.DeploymentConditionApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("DeploymentSpec"): - return &applyconfigurationsappsv1beta1.DeploymentSpecApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("DeploymentStatus"): - return &applyconfigurationsappsv1beta1.DeploymentStatusApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("DeploymentStrategy"): - return &applyconfigurationsappsv1beta1.DeploymentStrategyApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("RollbackConfig"): - return &applyconfigurationsappsv1beta1.RollbackConfigApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("RollingUpdateDeployment"): - return &applyconfigurationsappsv1beta1.RollingUpdateDeploymentApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("RollingUpdateStatefulSetStrategy"): - return &applyconfigurationsappsv1beta1.RollingUpdateStatefulSetStrategyApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("StatefulSet"): - return &applyconfigurationsappsv1beta1.StatefulSetApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("StatefulSetCondition"): - return &applyconfigurationsappsv1beta1.StatefulSetConditionApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("StatefulSetOrdinals"): - return &applyconfigurationsappsv1beta1.StatefulSetOrdinalsApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("StatefulSetPersistentVolumeClaimRetentionPolicy"): - return &applyconfigurationsappsv1beta1.StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("StatefulSetSpec"): - return &applyconfigurationsappsv1beta1.StatefulSetSpecApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("StatefulSetStatus"): - return &applyconfigurationsappsv1beta1.StatefulSetStatusApplyConfiguration{} - case appsv1beta1.SchemeGroupVersion.WithKind("StatefulSetUpdateStrategy"): - return &applyconfigurationsappsv1beta1.StatefulSetUpdateStrategyApplyConfiguration{} - - // Group=apps, Version=v1beta2 - case v1beta2.SchemeGroupVersion.WithKind("ControllerRevision"): - return &appsv1beta2.ControllerRevisionApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("DaemonSet"): - return &appsv1beta2.DaemonSetApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("DaemonSetCondition"): - return &appsv1beta2.DaemonSetConditionApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("DaemonSetSpec"): - return &appsv1beta2.DaemonSetSpecApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("DaemonSetStatus"): - return &appsv1beta2.DaemonSetStatusApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("DaemonSetUpdateStrategy"): - return &appsv1beta2.DaemonSetUpdateStrategyApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("Deployment"): - return &appsv1beta2.DeploymentApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("DeploymentCondition"): - return &appsv1beta2.DeploymentConditionApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("DeploymentSpec"): - return &appsv1beta2.DeploymentSpecApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("DeploymentStatus"): - return &appsv1beta2.DeploymentStatusApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("DeploymentStrategy"): - return &appsv1beta2.DeploymentStrategyApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("ReplicaSet"): - return &appsv1beta2.ReplicaSetApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("ReplicaSetCondition"): - return &appsv1beta2.ReplicaSetConditionApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("ReplicaSetSpec"): - return &appsv1beta2.ReplicaSetSpecApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("ReplicaSetStatus"): - return &appsv1beta2.ReplicaSetStatusApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("RollingUpdateDaemonSet"): - return &appsv1beta2.RollingUpdateDaemonSetApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("RollingUpdateDeployment"): - return &appsv1beta2.RollingUpdateDeploymentApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("RollingUpdateStatefulSetStrategy"): - return &appsv1beta2.RollingUpdateStatefulSetStrategyApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("Scale"): - return &appsv1beta2.ScaleApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("StatefulSet"): - return &appsv1beta2.StatefulSetApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("StatefulSetCondition"): - return &appsv1beta2.StatefulSetConditionApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("StatefulSetOrdinals"): - return &appsv1beta2.StatefulSetOrdinalsApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("StatefulSetPersistentVolumeClaimRetentionPolicy"): - return &appsv1beta2.StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("StatefulSetSpec"): - return &appsv1beta2.StatefulSetSpecApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("StatefulSetStatus"): - return &appsv1beta2.StatefulSetStatusApplyConfiguration{} - case v1beta2.SchemeGroupVersion.WithKind("StatefulSetUpdateStrategy"): - return &appsv1beta2.StatefulSetUpdateStrategyApplyConfiguration{} - - // Group=autoscaling, Version=v1 - case autoscalingv1.SchemeGroupVersion.WithKind("CrossVersionObjectReference"): - return &applyconfigurationsautoscalingv1.CrossVersionObjectReferenceApplyConfiguration{} - case autoscalingv1.SchemeGroupVersion.WithKind("HorizontalPodAutoscaler"): - return &applyconfigurationsautoscalingv1.HorizontalPodAutoscalerApplyConfiguration{} - case autoscalingv1.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerSpec"): - return &applyconfigurationsautoscalingv1.HorizontalPodAutoscalerSpecApplyConfiguration{} - case autoscalingv1.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerStatus"): - return &applyconfigurationsautoscalingv1.HorizontalPodAutoscalerStatusApplyConfiguration{} - case autoscalingv1.SchemeGroupVersion.WithKind("Scale"): - return &applyconfigurationsautoscalingv1.ScaleApplyConfiguration{} - case autoscalingv1.SchemeGroupVersion.WithKind("ScaleSpec"): - return &applyconfigurationsautoscalingv1.ScaleSpecApplyConfiguration{} - case autoscalingv1.SchemeGroupVersion.WithKind("ScaleStatus"): - return &applyconfigurationsautoscalingv1.ScaleStatusApplyConfiguration{} - - // Group=autoscaling, Version=v2 - case v2.SchemeGroupVersion.WithKind("ContainerResourceMetricSource"): - return &autoscalingv2.ContainerResourceMetricSourceApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("ContainerResourceMetricStatus"): - return &autoscalingv2.ContainerResourceMetricStatusApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("CrossVersionObjectReference"): - return &autoscalingv2.CrossVersionObjectReferenceApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("ExternalMetricSource"): - return &autoscalingv2.ExternalMetricSourceApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("ExternalMetricStatus"): - return &autoscalingv2.ExternalMetricStatusApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("HorizontalPodAutoscaler"): - return &autoscalingv2.HorizontalPodAutoscalerApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerBehavior"): - return &autoscalingv2.HorizontalPodAutoscalerBehaviorApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerCondition"): - return &autoscalingv2.HorizontalPodAutoscalerConditionApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerSpec"): - return &autoscalingv2.HorizontalPodAutoscalerSpecApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerStatus"): - return &autoscalingv2.HorizontalPodAutoscalerStatusApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("HPAScalingPolicy"): - return &autoscalingv2.HPAScalingPolicyApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("HPAScalingRules"): - return &autoscalingv2.HPAScalingRulesApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("MetricIdentifier"): - return &autoscalingv2.MetricIdentifierApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("MetricSpec"): - return &autoscalingv2.MetricSpecApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("MetricStatus"): - return &autoscalingv2.MetricStatusApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("MetricTarget"): - return &autoscalingv2.MetricTargetApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("MetricValueStatus"): - return &autoscalingv2.MetricValueStatusApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("ObjectMetricSource"): - return &autoscalingv2.ObjectMetricSourceApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("ObjectMetricStatus"): - return &autoscalingv2.ObjectMetricStatusApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("PodsMetricSource"): - return &autoscalingv2.PodsMetricSourceApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("PodsMetricStatus"): - return &autoscalingv2.PodsMetricStatusApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("ResourceMetricSource"): - return &autoscalingv2.ResourceMetricSourceApplyConfiguration{} - case v2.SchemeGroupVersion.WithKind("ResourceMetricStatus"): - return &autoscalingv2.ResourceMetricStatusApplyConfiguration{} - - // Group=autoscaling, Version=v2beta1 - case v2beta1.SchemeGroupVersion.WithKind("ContainerResourceMetricSource"): - return &autoscalingv2beta1.ContainerResourceMetricSourceApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("ContainerResourceMetricStatus"): - return &autoscalingv2beta1.ContainerResourceMetricStatusApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("CrossVersionObjectReference"): - return &autoscalingv2beta1.CrossVersionObjectReferenceApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("ExternalMetricSource"): - return &autoscalingv2beta1.ExternalMetricSourceApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("ExternalMetricStatus"): - return &autoscalingv2beta1.ExternalMetricStatusApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("HorizontalPodAutoscaler"): - return &autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerCondition"): - return &autoscalingv2beta1.HorizontalPodAutoscalerConditionApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerSpec"): - return &autoscalingv2beta1.HorizontalPodAutoscalerSpecApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerStatus"): - return &autoscalingv2beta1.HorizontalPodAutoscalerStatusApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("MetricSpec"): - return &autoscalingv2beta1.MetricSpecApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("MetricStatus"): - return &autoscalingv2beta1.MetricStatusApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("ObjectMetricSource"): - return &autoscalingv2beta1.ObjectMetricSourceApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("ObjectMetricStatus"): - return &autoscalingv2beta1.ObjectMetricStatusApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("PodsMetricSource"): - return &autoscalingv2beta1.PodsMetricSourceApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("PodsMetricStatus"): - return &autoscalingv2beta1.PodsMetricStatusApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("ResourceMetricSource"): - return &autoscalingv2beta1.ResourceMetricSourceApplyConfiguration{} - case v2beta1.SchemeGroupVersion.WithKind("ResourceMetricStatus"): - return &autoscalingv2beta1.ResourceMetricStatusApplyConfiguration{} - - // Group=autoscaling, Version=v2beta2 - case v2beta2.SchemeGroupVersion.WithKind("ContainerResourceMetricSource"): - return &autoscalingv2beta2.ContainerResourceMetricSourceApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("ContainerResourceMetricStatus"): - return &autoscalingv2beta2.ContainerResourceMetricStatusApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("CrossVersionObjectReference"): - return &autoscalingv2beta2.CrossVersionObjectReferenceApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("ExternalMetricSource"): - return &autoscalingv2beta2.ExternalMetricSourceApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("ExternalMetricStatus"): - return &autoscalingv2beta2.ExternalMetricStatusApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("HorizontalPodAutoscaler"): - return &autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerBehavior"): - return &autoscalingv2beta2.HorizontalPodAutoscalerBehaviorApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerCondition"): - return &autoscalingv2beta2.HorizontalPodAutoscalerConditionApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerSpec"): - return &autoscalingv2beta2.HorizontalPodAutoscalerSpecApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("HorizontalPodAutoscalerStatus"): - return &autoscalingv2beta2.HorizontalPodAutoscalerStatusApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("HPAScalingPolicy"): - return &autoscalingv2beta2.HPAScalingPolicyApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("HPAScalingRules"): - return &autoscalingv2beta2.HPAScalingRulesApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("MetricIdentifier"): - return &autoscalingv2beta2.MetricIdentifierApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("MetricSpec"): - return &autoscalingv2beta2.MetricSpecApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("MetricStatus"): - return &autoscalingv2beta2.MetricStatusApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("MetricTarget"): - return &autoscalingv2beta2.MetricTargetApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("MetricValueStatus"): - return &autoscalingv2beta2.MetricValueStatusApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("ObjectMetricSource"): - return &autoscalingv2beta2.ObjectMetricSourceApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("ObjectMetricStatus"): - return &autoscalingv2beta2.ObjectMetricStatusApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("PodsMetricSource"): - return &autoscalingv2beta2.PodsMetricSourceApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("PodsMetricStatus"): - return &autoscalingv2beta2.PodsMetricStatusApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("ResourceMetricSource"): - return &autoscalingv2beta2.ResourceMetricSourceApplyConfiguration{} - case v2beta2.SchemeGroupVersion.WithKind("ResourceMetricStatus"): - return &autoscalingv2beta2.ResourceMetricStatusApplyConfiguration{} - - // Group=batch, Version=v1 - case batchv1.SchemeGroupVersion.WithKind("CronJob"): - return &applyconfigurationsbatchv1.CronJobApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("CronJobSpec"): - return &applyconfigurationsbatchv1.CronJobSpecApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("CronJobStatus"): - return &applyconfigurationsbatchv1.CronJobStatusApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("Job"): - return &applyconfigurationsbatchv1.JobApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("JobCondition"): - return &applyconfigurationsbatchv1.JobConditionApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("JobSpec"): - return &applyconfigurationsbatchv1.JobSpecApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("JobStatus"): - return &applyconfigurationsbatchv1.JobStatusApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("JobTemplateSpec"): - return &applyconfigurationsbatchv1.JobTemplateSpecApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("PodFailurePolicy"): - return &applyconfigurationsbatchv1.PodFailurePolicyApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("PodFailurePolicyOnExitCodesRequirement"): - return &applyconfigurationsbatchv1.PodFailurePolicyOnExitCodesRequirementApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("PodFailurePolicyOnPodConditionsPattern"): - return &applyconfigurationsbatchv1.PodFailurePolicyOnPodConditionsPatternApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("PodFailurePolicyRule"): - return &applyconfigurationsbatchv1.PodFailurePolicyRuleApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("SuccessPolicy"): - return &applyconfigurationsbatchv1.SuccessPolicyApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("SuccessPolicyRule"): - return &applyconfigurationsbatchv1.SuccessPolicyRuleApplyConfiguration{} - case batchv1.SchemeGroupVersion.WithKind("UncountedTerminatedPods"): - return &applyconfigurationsbatchv1.UncountedTerminatedPodsApplyConfiguration{} - - // Group=batch, Version=v1beta1 - case batchv1beta1.SchemeGroupVersion.WithKind("CronJob"): - return &applyconfigurationsbatchv1beta1.CronJobApplyConfiguration{} - case batchv1beta1.SchemeGroupVersion.WithKind("CronJobSpec"): - return &applyconfigurationsbatchv1beta1.CronJobSpecApplyConfiguration{} - case batchv1beta1.SchemeGroupVersion.WithKind("CronJobStatus"): - return &applyconfigurationsbatchv1beta1.CronJobStatusApplyConfiguration{} - case batchv1beta1.SchemeGroupVersion.WithKind("JobTemplateSpec"): - return &applyconfigurationsbatchv1beta1.JobTemplateSpecApplyConfiguration{} - - // Group=certificates.k8s.io, Version=v1 - case certificatesv1.SchemeGroupVersion.WithKind("CertificateSigningRequest"): - return &applyconfigurationscertificatesv1.CertificateSigningRequestApplyConfiguration{} - case certificatesv1.SchemeGroupVersion.WithKind("CertificateSigningRequestCondition"): - return &applyconfigurationscertificatesv1.CertificateSigningRequestConditionApplyConfiguration{} - case certificatesv1.SchemeGroupVersion.WithKind("CertificateSigningRequestSpec"): - return &applyconfigurationscertificatesv1.CertificateSigningRequestSpecApplyConfiguration{} - case certificatesv1.SchemeGroupVersion.WithKind("CertificateSigningRequestStatus"): - return &applyconfigurationscertificatesv1.CertificateSigningRequestStatusApplyConfiguration{} - - // Group=certificates.k8s.io, Version=v1alpha1 - case certificatesv1alpha1.SchemeGroupVersion.WithKind("ClusterTrustBundle"): - return &applyconfigurationscertificatesv1alpha1.ClusterTrustBundleApplyConfiguration{} - case certificatesv1alpha1.SchemeGroupVersion.WithKind("ClusterTrustBundleSpec"): - return &applyconfigurationscertificatesv1alpha1.ClusterTrustBundleSpecApplyConfiguration{} - - // Group=certificates.k8s.io, Version=v1beta1 - case certificatesv1beta1.SchemeGroupVersion.WithKind("CertificateSigningRequest"): - return &applyconfigurationscertificatesv1beta1.CertificateSigningRequestApplyConfiguration{} - case certificatesv1beta1.SchemeGroupVersion.WithKind("CertificateSigningRequestCondition"): - return &applyconfigurationscertificatesv1beta1.CertificateSigningRequestConditionApplyConfiguration{} - case certificatesv1beta1.SchemeGroupVersion.WithKind("CertificateSigningRequestSpec"): - return &applyconfigurationscertificatesv1beta1.CertificateSigningRequestSpecApplyConfiguration{} - case certificatesv1beta1.SchemeGroupVersion.WithKind("CertificateSigningRequestStatus"): - return &applyconfigurationscertificatesv1beta1.CertificateSigningRequestStatusApplyConfiguration{} - case certificatesv1beta1.SchemeGroupVersion.WithKind("ClusterTrustBundle"): - return &applyconfigurationscertificatesv1beta1.ClusterTrustBundleApplyConfiguration{} - case certificatesv1beta1.SchemeGroupVersion.WithKind("ClusterTrustBundleSpec"): - return &applyconfigurationscertificatesv1beta1.ClusterTrustBundleSpecApplyConfiguration{} - case certificatesv1beta1.SchemeGroupVersion.WithKind("PodCertificateRequest"): - return &applyconfigurationscertificatesv1beta1.PodCertificateRequestApplyConfiguration{} - case certificatesv1beta1.SchemeGroupVersion.WithKind("PodCertificateRequestSpec"): - return &applyconfigurationscertificatesv1beta1.PodCertificateRequestSpecApplyConfiguration{} - case certificatesv1beta1.SchemeGroupVersion.WithKind("PodCertificateRequestStatus"): - return &applyconfigurationscertificatesv1beta1.PodCertificateRequestStatusApplyConfiguration{} - - // Group=coordination.k8s.io, Version=v1 - case coordinationv1.SchemeGroupVersion.WithKind("Lease"): - return &applyconfigurationscoordinationv1.LeaseApplyConfiguration{} - case coordinationv1.SchemeGroupVersion.WithKind("LeaseSpec"): - return &applyconfigurationscoordinationv1.LeaseSpecApplyConfiguration{} - - // Group=coordination.k8s.io, Version=v1alpha2 - case v1alpha2.SchemeGroupVersion.WithKind("LeaseCandidate"): - return &coordinationv1alpha2.LeaseCandidateApplyConfiguration{} - case v1alpha2.SchemeGroupVersion.WithKind("LeaseCandidateSpec"): - return &coordinationv1alpha2.LeaseCandidateSpecApplyConfiguration{} - - // Group=coordination.k8s.io, Version=v1beta1 - case coordinationv1beta1.SchemeGroupVersion.WithKind("Lease"): - return &applyconfigurationscoordinationv1beta1.LeaseApplyConfiguration{} - case coordinationv1beta1.SchemeGroupVersion.WithKind("LeaseCandidate"): - return &applyconfigurationscoordinationv1beta1.LeaseCandidateApplyConfiguration{} - case coordinationv1beta1.SchemeGroupVersion.WithKind("LeaseCandidateSpec"): - return &applyconfigurationscoordinationv1beta1.LeaseCandidateSpecApplyConfiguration{} - case coordinationv1beta1.SchemeGroupVersion.WithKind("LeaseSpec"): - return &applyconfigurationscoordinationv1beta1.LeaseSpecApplyConfiguration{} - - // Group=core, Version=v1 - case corev1.SchemeGroupVersion.WithKind("Affinity"): - return &applyconfigurationscorev1.AffinityApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("AppArmorProfile"): - return &applyconfigurationscorev1.AppArmorProfileApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("AttachedVolume"): - return &applyconfigurationscorev1.AttachedVolumeApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("AWSElasticBlockStoreVolumeSource"): - return &applyconfigurationscorev1.AWSElasticBlockStoreVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("AzureDiskVolumeSource"): - return &applyconfigurationscorev1.AzureDiskVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("AzureFilePersistentVolumeSource"): - return &applyconfigurationscorev1.AzureFilePersistentVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("AzureFileVolumeSource"): - return &applyconfigurationscorev1.AzureFileVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Capabilities"): - return &applyconfigurationscorev1.CapabilitiesApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("CephFSPersistentVolumeSource"): - return &applyconfigurationscorev1.CephFSPersistentVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("CephFSVolumeSource"): - return &applyconfigurationscorev1.CephFSVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("CinderPersistentVolumeSource"): - return &applyconfigurationscorev1.CinderPersistentVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("CinderVolumeSource"): - return &applyconfigurationscorev1.CinderVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ClientIPConfig"): - return &applyconfigurationscorev1.ClientIPConfigApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ClusterTrustBundleProjection"): - return &applyconfigurationscorev1.ClusterTrustBundleProjectionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ComponentCondition"): - return &applyconfigurationscorev1.ComponentConditionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ComponentStatus"): - return &applyconfigurationscorev1.ComponentStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ConfigMap"): - return &applyconfigurationscorev1.ConfigMapApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ConfigMapEnvSource"): - return &applyconfigurationscorev1.ConfigMapEnvSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ConfigMapKeySelector"): - return &applyconfigurationscorev1.ConfigMapKeySelectorApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ConfigMapNodeConfigSource"): - return &applyconfigurationscorev1.ConfigMapNodeConfigSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ConfigMapProjection"): - return &applyconfigurationscorev1.ConfigMapProjectionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ConfigMapVolumeSource"): - return &applyconfigurationscorev1.ConfigMapVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Container"): - return &applyconfigurationscorev1.ContainerApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerExtendedResourceRequest"): - return &applyconfigurationscorev1.ContainerExtendedResourceRequestApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerImage"): - return &applyconfigurationscorev1.ContainerImageApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerPort"): - return &applyconfigurationscorev1.ContainerPortApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerResizePolicy"): - return &applyconfigurationscorev1.ContainerResizePolicyApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerRestartRule"): - return &applyconfigurationscorev1.ContainerRestartRuleApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerRestartRuleOnExitCodes"): - return &applyconfigurationscorev1.ContainerRestartRuleOnExitCodesApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerState"): - return &applyconfigurationscorev1.ContainerStateApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerStateRunning"): - return &applyconfigurationscorev1.ContainerStateRunningApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerStateTerminated"): - return &applyconfigurationscorev1.ContainerStateTerminatedApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerStateWaiting"): - return &applyconfigurationscorev1.ContainerStateWaitingApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerStatus"): - return &applyconfigurationscorev1.ContainerStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ContainerUser"): - return &applyconfigurationscorev1.ContainerUserApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("CSIPersistentVolumeSource"): - return &applyconfigurationscorev1.CSIPersistentVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("CSIVolumeSource"): - return &applyconfigurationscorev1.CSIVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("DaemonEndpoint"): - return &applyconfigurationscorev1.DaemonEndpointApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("DownwardAPIProjection"): - return &applyconfigurationscorev1.DownwardAPIProjectionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("DownwardAPIVolumeFile"): - return &applyconfigurationscorev1.DownwardAPIVolumeFileApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("DownwardAPIVolumeSource"): - return &applyconfigurationscorev1.DownwardAPIVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EmptyDirVolumeSource"): - return &applyconfigurationscorev1.EmptyDirVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EndpointAddress"): - return &applyconfigurationscorev1.EndpointAddressApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EndpointPort"): - return &applyconfigurationscorev1.EndpointPortApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Endpoints"): - return &applyconfigurationscorev1.EndpointsApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EndpointSubset"): - return &applyconfigurationscorev1.EndpointSubsetApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EnvFromSource"): - return &applyconfigurationscorev1.EnvFromSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EnvVar"): - return &applyconfigurationscorev1.EnvVarApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EnvVarSource"): - return &applyconfigurationscorev1.EnvVarSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EphemeralContainer"): - return &applyconfigurationscorev1.EphemeralContainerApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EphemeralContainerCommon"): - return &applyconfigurationscorev1.EphemeralContainerCommonApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EphemeralVolumeSource"): - return &applyconfigurationscorev1.EphemeralVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Event"): - return &applyconfigurationscorev1.EventApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EventSeries"): - return &applyconfigurationscorev1.EventSeriesApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("EventSource"): - return &applyconfigurationscorev1.EventSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ExecAction"): - return &applyconfigurationscorev1.ExecActionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("FCVolumeSource"): - return &applyconfigurationscorev1.FCVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("FileKeySelector"): - return &applyconfigurationscorev1.FileKeySelectorApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("FlexPersistentVolumeSource"): - return &applyconfigurationscorev1.FlexPersistentVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("FlexVolumeSource"): - return &applyconfigurationscorev1.FlexVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("FlockerVolumeSource"): - return &applyconfigurationscorev1.FlockerVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("GCEPersistentDiskVolumeSource"): - return &applyconfigurationscorev1.GCEPersistentDiskVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("GitRepoVolumeSource"): - return &applyconfigurationscorev1.GitRepoVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("GlusterfsPersistentVolumeSource"): - return &applyconfigurationscorev1.GlusterfsPersistentVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("GlusterfsVolumeSource"): - return &applyconfigurationscorev1.GlusterfsVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("GRPCAction"): - return &applyconfigurationscorev1.GRPCActionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("HostAlias"): - return &applyconfigurationscorev1.HostAliasApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("HostIP"): - return &applyconfigurationscorev1.HostIPApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("HostPathVolumeSource"): - return &applyconfigurationscorev1.HostPathVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("HTTPGetAction"): - return &applyconfigurationscorev1.HTTPGetActionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("HTTPHeader"): - return &applyconfigurationscorev1.HTTPHeaderApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ImageVolumeSource"): - return &applyconfigurationscorev1.ImageVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ISCSIPersistentVolumeSource"): - return &applyconfigurationscorev1.ISCSIPersistentVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ISCSIVolumeSource"): - return &applyconfigurationscorev1.ISCSIVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("KeyToPath"): - return &applyconfigurationscorev1.KeyToPathApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Lifecycle"): - return &applyconfigurationscorev1.LifecycleApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("LifecycleHandler"): - return &applyconfigurationscorev1.LifecycleHandlerApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("LimitRange"): - return &applyconfigurationscorev1.LimitRangeApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("LimitRangeItem"): - return &applyconfigurationscorev1.LimitRangeItemApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("LimitRangeSpec"): - return &applyconfigurationscorev1.LimitRangeSpecApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("LinuxContainerUser"): - return &applyconfigurationscorev1.LinuxContainerUserApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("LoadBalancerIngress"): - return &applyconfigurationscorev1.LoadBalancerIngressApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("LoadBalancerStatus"): - return &applyconfigurationscorev1.LoadBalancerStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("LocalObjectReference"): - return &applyconfigurationscorev1.LocalObjectReferenceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("LocalVolumeSource"): - return &applyconfigurationscorev1.LocalVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ModifyVolumeStatus"): - return &applyconfigurationscorev1.ModifyVolumeStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Namespace"): - return &applyconfigurationscorev1.NamespaceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NamespaceCondition"): - return &applyconfigurationscorev1.NamespaceConditionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NamespaceSpec"): - return &applyconfigurationscorev1.NamespaceSpecApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NamespaceStatus"): - return &applyconfigurationscorev1.NamespaceStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NFSVolumeSource"): - return &applyconfigurationscorev1.NFSVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Node"): - return &applyconfigurationscorev1.NodeApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeAddress"): - return &applyconfigurationscorev1.NodeAddressApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeAffinity"): - return &applyconfigurationscorev1.NodeAffinityApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeCondition"): - return &applyconfigurationscorev1.NodeConditionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeConfigSource"): - return &applyconfigurationscorev1.NodeConfigSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeConfigStatus"): - return &applyconfigurationscorev1.NodeConfigStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeDaemonEndpoints"): - return &applyconfigurationscorev1.NodeDaemonEndpointsApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeFeatures"): - return &applyconfigurationscorev1.NodeFeaturesApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeRuntimeHandler"): - return &applyconfigurationscorev1.NodeRuntimeHandlerApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeRuntimeHandlerFeatures"): - return &applyconfigurationscorev1.NodeRuntimeHandlerFeaturesApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeSelector"): - return &applyconfigurationscorev1.NodeSelectorApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeSelectorRequirement"): - return &applyconfigurationscorev1.NodeSelectorRequirementApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeSelectorTerm"): - return &applyconfigurationscorev1.NodeSelectorTermApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeSpec"): - return &applyconfigurationscorev1.NodeSpecApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeStatus"): - return &applyconfigurationscorev1.NodeStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeSwapStatus"): - return &applyconfigurationscorev1.NodeSwapStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("NodeSystemInfo"): - return &applyconfigurationscorev1.NodeSystemInfoApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ObjectFieldSelector"): - return &applyconfigurationscorev1.ObjectFieldSelectorApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ObjectReference"): - return &applyconfigurationscorev1.ObjectReferenceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PersistentVolume"): - return &applyconfigurationscorev1.PersistentVolumeApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PersistentVolumeClaim"): - return &applyconfigurationscorev1.PersistentVolumeClaimApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PersistentVolumeClaimCondition"): - return &applyconfigurationscorev1.PersistentVolumeClaimConditionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PersistentVolumeClaimSpec"): - return &applyconfigurationscorev1.PersistentVolumeClaimSpecApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PersistentVolumeClaimStatus"): - return &applyconfigurationscorev1.PersistentVolumeClaimStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PersistentVolumeClaimTemplate"): - return &applyconfigurationscorev1.PersistentVolumeClaimTemplateApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PersistentVolumeClaimVolumeSource"): - return &applyconfigurationscorev1.PersistentVolumeClaimVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PersistentVolumeSource"): - return &applyconfigurationscorev1.PersistentVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PersistentVolumeSpec"): - return &applyconfigurationscorev1.PersistentVolumeSpecApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PersistentVolumeStatus"): - return &applyconfigurationscorev1.PersistentVolumeStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PhotonPersistentDiskVolumeSource"): - return &applyconfigurationscorev1.PhotonPersistentDiskVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Pod"): - return &applyconfigurationscorev1.PodApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodAffinity"): - return &applyconfigurationscorev1.PodAffinityApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodAffinityTerm"): - return &applyconfigurationscorev1.PodAffinityTermApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodAntiAffinity"): - return &applyconfigurationscorev1.PodAntiAffinityApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodCertificateProjection"): - return &applyconfigurationscorev1.PodCertificateProjectionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodCondition"): - return &applyconfigurationscorev1.PodConditionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodDNSConfig"): - return &applyconfigurationscorev1.PodDNSConfigApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodDNSConfigOption"): - return &applyconfigurationscorev1.PodDNSConfigOptionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodExtendedResourceClaimStatus"): - return &applyconfigurationscorev1.PodExtendedResourceClaimStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodIP"): - return &applyconfigurationscorev1.PodIPApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodOS"): - return &applyconfigurationscorev1.PodOSApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodReadinessGate"): - return &applyconfigurationscorev1.PodReadinessGateApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodResourceClaim"): - return &applyconfigurationscorev1.PodResourceClaimApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodResourceClaimStatus"): - return &applyconfigurationscorev1.PodResourceClaimStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodSchedulingGate"): - return &applyconfigurationscorev1.PodSchedulingGateApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodSecurityContext"): - return &applyconfigurationscorev1.PodSecurityContextApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodSpec"): - return &applyconfigurationscorev1.PodSpecApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodStatus"): - return &applyconfigurationscorev1.PodStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodTemplate"): - return &applyconfigurationscorev1.PodTemplateApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PodTemplateSpec"): - return &applyconfigurationscorev1.PodTemplateSpecApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PortStatus"): - return &applyconfigurationscorev1.PortStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PortworxVolumeSource"): - return &applyconfigurationscorev1.PortworxVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("PreferredSchedulingTerm"): - return &applyconfigurationscorev1.PreferredSchedulingTermApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Probe"): - return &applyconfigurationscorev1.ProbeApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ProbeHandler"): - return &applyconfigurationscorev1.ProbeHandlerApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ProjectedVolumeSource"): - return &applyconfigurationscorev1.ProjectedVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("QuobyteVolumeSource"): - return &applyconfigurationscorev1.QuobyteVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("RBDPersistentVolumeSource"): - return &applyconfigurationscorev1.RBDPersistentVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("RBDVolumeSource"): - return &applyconfigurationscorev1.RBDVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ReplicationController"): - return &applyconfigurationscorev1.ReplicationControllerApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ReplicationControllerCondition"): - return &applyconfigurationscorev1.ReplicationControllerConditionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ReplicationControllerSpec"): - return &applyconfigurationscorev1.ReplicationControllerSpecApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ReplicationControllerStatus"): - return &applyconfigurationscorev1.ReplicationControllerStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ResourceClaim"): - return &applyconfigurationscorev1.ResourceClaimApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ResourceFieldSelector"): - return &applyconfigurationscorev1.ResourceFieldSelectorApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ResourceHealth"): - return &applyconfigurationscorev1.ResourceHealthApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ResourceQuota"): - return &applyconfigurationscorev1.ResourceQuotaApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ResourceQuotaSpec"): - return &applyconfigurationscorev1.ResourceQuotaSpecApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ResourceQuotaStatus"): - return &applyconfigurationscorev1.ResourceQuotaStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ResourceRequirements"): - return &applyconfigurationscorev1.ResourceRequirementsApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ResourceStatus"): - return &applyconfigurationscorev1.ResourceStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ScaleIOPersistentVolumeSource"): - return &applyconfigurationscorev1.ScaleIOPersistentVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ScaleIOVolumeSource"): - return &applyconfigurationscorev1.ScaleIOVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ScopedResourceSelectorRequirement"): - return &applyconfigurationscorev1.ScopedResourceSelectorRequirementApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ScopeSelector"): - return &applyconfigurationscorev1.ScopeSelectorApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("SeccompProfile"): - return &applyconfigurationscorev1.SeccompProfileApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Secret"): - return &applyconfigurationscorev1.SecretApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("SecretEnvSource"): - return &applyconfigurationscorev1.SecretEnvSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("SecretKeySelector"): - return &applyconfigurationscorev1.SecretKeySelectorApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("SecretProjection"): - return &applyconfigurationscorev1.SecretProjectionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("SecretReference"): - return &applyconfigurationscorev1.SecretReferenceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("SecretVolumeSource"): - return &applyconfigurationscorev1.SecretVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("SecurityContext"): - return &applyconfigurationscorev1.SecurityContextApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("SELinuxOptions"): - return &applyconfigurationscorev1.SELinuxOptionsApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Service"): - return &applyconfigurationscorev1.ServiceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ServiceAccount"): - return &applyconfigurationscorev1.ServiceAccountApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ServiceAccountTokenProjection"): - return &applyconfigurationscorev1.ServiceAccountTokenProjectionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ServicePort"): - return &applyconfigurationscorev1.ServicePortApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ServiceSpec"): - return &applyconfigurationscorev1.ServiceSpecApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("ServiceStatus"): - return &applyconfigurationscorev1.ServiceStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("SessionAffinityConfig"): - return &applyconfigurationscorev1.SessionAffinityConfigApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("SleepAction"): - return &applyconfigurationscorev1.SleepActionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("StorageOSPersistentVolumeSource"): - return &applyconfigurationscorev1.StorageOSPersistentVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("StorageOSVolumeSource"): - return &applyconfigurationscorev1.StorageOSVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Sysctl"): - return &applyconfigurationscorev1.SysctlApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Taint"): - return &applyconfigurationscorev1.TaintApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("TCPSocketAction"): - return &applyconfigurationscorev1.TCPSocketActionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Toleration"): - return &applyconfigurationscorev1.TolerationApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("TopologySelectorLabelRequirement"): - return &applyconfigurationscorev1.TopologySelectorLabelRequirementApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("TopologySelectorTerm"): - return &applyconfigurationscorev1.TopologySelectorTermApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("TopologySpreadConstraint"): - return &applyconfigurationscorev1.TopologySpreadConstraintApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("TypedLocalObjectReference"): - return &applyconfigurationscorev1.TypedLocalObjectReferenceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("TypedObjectReference"): - return &applyconfigurationscorev1.TypedObjectReferenceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("Volume"): - return &applyconfigurationscorev1.VolumeApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("VolumeDevice"): - return &applyconfigurationscorev1.VolumeDeviceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("VolumeMount"): - return &applyconfigurationscorev1.VolumeMountApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("VolumeMountStatus"): - return &applyconfigurationscorev1.VolumeMountStatusApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("VolumeNodeAffinity"): - return &applyconfigurationscorev1.VolumeNodeAffinityApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("VolumeProjection"): - return &applyconfigurationscorev1.VolumeProjectionApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("VolumeResourceRequirements"): - return &applyconfigurationscorev1.VolumeResourceRequirementsApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("VolumeSource"): - return &applyconfigurationscorev1.VolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("VsphereVirtualDiskVolumeSource"): - return &applyconfigurationscorev1.VsphereVirtualDiskVolumeSourceApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("WeightedPodAffinityTerm"): - return &applyconfigurationscorev1.WeightedPodAffinityTermApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("WindowsSecurityContextOptions"): - return &applyconfigurationscorev1.WindowsSecurityContextOptionsApplyConfiguration{} - case corev1.SchemeGroupVersion.WithKind("WorkloadReference"): - return &applyconfigurationscorev1.WorkloadReferenceApplyConfiguration{} - - // Group=discovery.k8s.io, Version=v1 - case discoveryv1.SchemeGroupVersion.WithKind("Endpoint"): - return &applyconfigurationsdiscoveryv1.EndpointApplyConfiguration{} - case discoveryv1.SchemeGroupVersion.WithKind("EndpointConditions"): - return &applyconfigurationsdiscoveryv1.EndpointConditionsApplyConfiguration{} - case discoveryv1.SchemeGroupVersion.WithKind("EndpointHints"): - return &applyconfigurationsdiscoveryv1.EndpointHintsApplyConfiguration{} - case discoveryv1.SchemeGroupVersion.WithKind("EndpointPort"): - return &applyconfigurationsdiscoveryv1.EndpointPortApplyConfiguration{} - case discoveryv1.SchemeGroupVersion.WithKind("EndpointSlice"): - return &applyconfigurationsdiscoveryv1.EndpointSliceApplyConfiguration{} - case discoveryv1.SchemeGroupVersion.WithKind("ForNode"): - return &applyconfigurationsdiscoveryv1.ForNodeApplyConfiguration{} - case discoveryv1.SchemeGroupVersion.WithKind("ForZone"): - return &applyconfigurationsdiscoveryv1.ForZoneApplyConfiguration{} - - // Group=discovery.k8s.io, Version=v1beta1 - case discoveryv1beta1.SchemeGroupVersion.WithKind("Endpoint"): - return &applyconfigurationsdiscoveryv1beta1.EndpointApplyConfiguration{} - case discoveryv1beta1.SchemeGroupVersion.WithKind("EndpointConditions"): - return &applyconfigurationsdiscoveryv1beta1.EndpointConditionsApplyConfiguration{} - case discoveryv1beta1.SchemeGroupVersion.WithKind("EndpointHints"): - return &applyconfigurationsdiscoveryv1beta1.EndpointHintsApplyConfiguration{} - case discoveryv1beta1.SchemeGroupVersion.WithKind("EndpointPort"): - return &applyconfigurationsdiscoveryv1beta1.EndpointPortApplyConfiguration{} - case discoveryv1beta1.SchemeGroupVersion.WithKind("EndpointSlice"): - return &applyconfigurationsdiscoveryv1beta1.EndpointSliceApplyConfiguration{} - case discoveryv1beta1.SchemeGroupVersion.WithKind("ForNode"): - return &applyconfigurationsdiscoveryv1beta1.ForNodeApplyConfiguration{} - case discoveryv1beta1.SchemeGroupVersion.WithKind("ForZone"): - return &applyconfigurationsdiscoveryv1beta1.ForZoneApplyConfiguration{} - - // Group=events.k8s.io, Version=v1 - case eventsv1.SchemeGroupVersion.WithKind("Event"): - return &applyconfigurationseventsv1.EventApplyConfiguration{} - case eventsv1.SchemeGroupVersion.WithKind("EventSeries"): - return &applyconfigurationseventsv1.EventSeriesApplyConfiguration{} - - // Group=events.k8s.io, Version=v1beta1 - case eventsv1beta1.SchemeGroupVersion.WithKind("Event"): - return &applyconfigurationseventsv1beta1.EventApplyConfiguration{} - case eventsv1beta1.SchemeGroupVersion.WithKind("EventSeries"): - return &applyconfigurationseventsv1beta1.EventSeriesApplyConfiguration{} - - // Group=extensions, Version=v1beta1 - case extensionsv1beta1.SchemeGroupVersion.WithKind("DaemonSet"): - return &applyconfigurationsextensionsv1beta1.DaemonSetApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("DaemonSetCondition"): - return &applyconfigurationsextensionsv1beta1.DaemonSetConditionApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("DaemonSetSpec"): - return &applyconfigurationsextensionsv1beta1.DaemonSetSpecApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("DaemonSetStatus"): - return &applyconfigurationsextensionsv1beta1.DaemonSetStatusApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("DaemonSetUpdateStrategy"): - return &applyconfigurationsextensionsv1beta1.DaemonSetUpdateStrategyApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("Deployment"): - return &applyconfigurationsextensionsv1beta1.DeploymentApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("DeploymentCondition"): - return &applyconfigurationsextensionsv1beta1.DeploymentConditionApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("DeploymentSpec"): - return &applyconfigurationsextensionsv1beta1.DeploymentSpecApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("DeploymentStatus"): - return &applyconfigurationsextensionsv1beta1.DeploymentStatusApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("DeploymentStrategy"): - return &applyconfigurationsextensionsv1beta1.DeploymentStrategyApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("HTTPIngressPath"): - return &applyconfigurationsextensionsv1beta1.HTTPIngressPathApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("HTTPIngressRuleValue"): - return &applyconfigurationsextensionsv1beta1.HTTPIngressRuleValueApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("Ingress"): - return &applyconfigurationsextensionsv1beta1.IngressApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("IngressBackend"): - return &applyconfigurationsextensionsv1beta1.IngressBackendApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("IngressLoadBalancerIngress"): - return &applyconfigurationsextensionsv1beta1.IngressLoadBalancerIngressApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("IngressLoadBalancerStatus"): - return &applyconfigurationsextensionsv1beta1.IngressLoadBalancerStatusApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("IngressPortStatus"): - return &applyconfigurationsextensionsv1beta1.IngressPortStatusApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("IngressRule"): - return &applyconfigurationsextensionsv1beta1.IngressRuleApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("IngressRuleValue"): - return &applyconfigurationsextensionsv1beta1.IngressRuleValueApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("IngressSpec"): - return &applyconfigurationsextensionsv1beta1.IngressSpecApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("IngressStatus"): - return &applyconfigurationsextensionsv1beta1.IngressStatusApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("IngressTLS"): - return &applyconfigurationsextensionsv1beta1.IngressTLSApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("IPBlock"): - return &applyconfigurationsextensionsv1beta1.IPBlockApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("NetworkPolicy"): - return &applyconfigurationsextensionsv1beta1.NetworkPolicyApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("NetworkPolicyEgressRule"): - return &applyconfigurationsextensionsv1beta1.NetworkPolicyEgressRuleApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("NetworkPolicyIngressRule"): - return &applyconfigurationsextensionsv1beta1.NetworkPolicyIngressRuleApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("NetworkPolicyPeer"): - return &applyconfigurationsextensionsv1beta1.NetworkPolicyPeerApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("NetworkPolicyPort"): - return &applyconfigurationsextensionsv1beta1.NetworkPolicyPortApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("NetworkPolicySpec"): - return &applyconfigurationsextensionsv1beta1.NetworkPolicySpecApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("ReplicaSet"): - return &applyconfigurationsextensionsv1beta1.ReplicaSetApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("ReplicaSetCondition"): - return &applyconfigurationsextensionsv1beta1.ReplicaSetConditionApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("ReplicaSetSpec"): - return &applyconfigurationsextensionsv1beta1.ReplicaSetSpecApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("ReplicaSetStatus"): - return &applyconfigurationsextensionsv1beta1.ReplicaSetStatusApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("RollbackConfig"): - return &applyconfigurationsextensionsv1beta1.RollbackConfigApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("RollingUpdateDaemonSet"): - return &applyconfigurationsextensionsv1beta1.RollingUpdateDaemonSetApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("RollingUpdateDeployment"): - return &applyconfigurationsextensionsv1beta1.RollingUpdateDeploymentApplyConfiguration{} - case extensionsv1beta1.SchemeGroupVersion.WithKind("Scale"): - return &applyconfigurationsextensionsv1beta1.ScaleApplyConfiguration{} - - // Group=flowcontrol.apiserver.k8s.io, Version=v1 - case flowcontrolv1.SchemeGroupVersion.WithKind("ExemptPriorityLevelConfiguration"): - return &applyconfigurationsflowcontrolv1.ExemptPriorityLevelConfigurationApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("FlowDistinguisherMethod"): - return &applyconfigurationsflowcontrolv1.FlowDistinguisherMethodApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("FlowSchema"): - return &applyconfigurationsflowcontrolv1.FlowSchemaApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("FlowSchemaCondition"): - return &applyconfigurationsflowcontrolv1.FlowSchemaConditionApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("FlowSchemaSpec"): - return &applyconfigurationsflowcontrolv1.FlowSchemaSpecApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("FlowSchemaStatus"): - return &applyconfigurationsflowcontrolv1.FlowSchemaStatusApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("GroupSubject"): - return &applyconfigurationsflowcontrolv1.GroupSubjectApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("LimitedPriorityLevelConfiguration"): - return &applyconfigurationsflowcontrolv1.LimitedPriorityLevelConfigurationApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("LimitResponse"): - return &applyconfigurationsflowcontrolv1.LimitResponseApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("NonResourcePolicyRule"): - return &applyconfigurationsflowcontrolv1.NonResourcePolicyRuleApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("PolicyRulesWithSubjects"): - return &applyconfigurationsflowcontrolv1.PolicyRulesWithSubjectsApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("PriorityLevelConfiguration"): - return &applyconfigurationsflowcontrolv1.PriorityLevelConfigurationApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("PriorityLevelConfigurationCondition"): - return &applyconfigurationsflowcontrolv1.PriorityLevelConfigurationConditionApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("PriorityLevelConfigurationReference"): - return &applyconfigurationsflowcontrolv1.PriorityLevelConfigurationReferenceApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("PriorityLevelConfigurationSpec"): - return &applyconfigurationsflowcontrolv1.PriorityLevelConfigurationSpecApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("PriorityLevelConfigurationStatus"): - return &applyconfigurationsflowcontrolv1.PriorityLevelConfigurationStatusApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("QueuingConfiguration"): - return &applyconfigurationsflowcontrolv1.QueuingConfigurationApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("ResourcePolicyRule"): - return &applyconfigurationsflowcontrolv1.ResourcePolicyRuleApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("ServiceAccountSubject"): - return &applyconfigurationsflowcontrolv1.ServiceAccountSubjectApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("Subject"): - return &applyconfigurationsflowcontrolv1.SubjectApplyConfiguration{} - case flowcontrolv1.SchemeGroupVersion.WithKind("UserSubject"): - return &applyconfigurationsflowcontrolv1.UserSubjectApplyConfiguration{} - - // Group=flowcontrol.apiserver.k8s.io, Version=v1beta1 - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("ExemptPriorityLevelConfiguration"): - return &applyconfigurationsflowcontrolv1beta1.ExemptPriorityLevelConfigurationApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("FlowDistinguisherMethod"): - return &applyconfigurationsflowcontrolv1beta1.FlowDistinguisherMethodApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("FlowSchema"): - return &applyconfigurationsflowcontrolv1beta1.FlowSchemaApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("FlowSchemaCondition"): - return &applyconfigurationsflowcontrolv1beta1.FlowSchemaConditionApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("FlowSchemaSpec"): - return &applyconfigurationsflowcontrolv1beta1.FlowSchemaSpecApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("FlowSchemaStatus"): - return &applyconfigurationsflowcontrolv1beta1.FlowSchemaStatusApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("GroupSubject"): - return &applyconfigurationsflowcontrolv1beta1.GroupSubjectApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("LimitedPriorityLevelConfiguration"): - return &applyconfigurationsflowcontrolv1beta1.LimitedPriorityLevelConfigurationApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("LimitResponse"): - return &applyconfigurationsflowcontrolv1beta1.LimitResponseApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("NonResourcePolicyRule"): - return &applyconfigurationsflowcontrolv1beta1.NonResourcePolicyRuleApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("PolicyRulesWithSubjects"): - return &applyconfigurationsflowcontrolv1beta1.PolicyRulesWithSubjectsApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("PriorityLevelConfiguration"): - return &applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("PriorityLevelConfigurationCondition"): - return &applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationConditionApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("PriorityLevelConfigurationReference"): - return &applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationReferenceApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("PriorityLevelConfigurationSpec"): - return &applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationSpecApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("PriorityLevelConfigurationStatus"): - return &applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationStatusApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("QueuingConfiguration"): - return &applyconfigurationsflowcontrolv1beta1.QueuingConfigurationApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("ResourcePolicyRule"): - return &applyconfigurationsflowcontrolv1beta1.ResourcePolicyRuleApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("ServiceAccountSubject"): - return &applyconfigurationsflowcontrolv1beta1.ServiceAccountSubjectApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("Subject"): - return &applyconfigurationsflowcontrolv1beta1.SubjectApplyConfiguration{} - case flowcontrolv1beta1.SchemeGroupVersion.WithKind("UserSubject"): - return &applyconfigurationsflowcontrolv1beta1.UserSubjectApplyConfiguration{} - - // Group=flowcontrol.apiserver.k8s.io, Version=v1beta2 - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("ExemptPriorityLevelConfiguration"): - return &applyconfigurationsflowcontrolv1beta2.ExemptPriorityLevelConfigurationApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("FlowDistinguisherMethod"): - return &applyconfigurationsflowcontrolv1beta2.FlowDistinguisherMethodApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("FlowSchema"): - return &applyconfigurationsflowcontrolv1beta2.FlowSchemaApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("FlowSchemaCondition"): - return &applyconfigurationsflowcontrolv1beta2.FlowSchemaConditionApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("FlowSchemaSpec"): - return &applyconfigurationsflowcontrolv1beta2.FlowSchemaSpecApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("FlowSchemaStatus"): - return &applyconfigurationsflowcontrolv1beta2.FlowSchemaStatusApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("GroupSubject"): - return &applyconfigurationsflowcontrolv1beta2.GroupSubjectApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("LimitedPriorityLevelConfiguration"): - return &applyconfigurationsflowcontrolv1beta2.LimitedPriorityLevelConfigurationApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("LimitResponse"): - return &applyconfigurationsflowcontrolv1beta2.LimitResponseApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("NonResourcePolicyRule"): - return &applyconfigurationsflowcontrolv1beta2.NonResourcePolicyRuleApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("PolicyRulesWithSubjects"): - return &applyconfigurationsflowcontrolv1beta2.PolicyRulesWithSubjectsApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("PriorityLevelConfiguration"): - return &applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("PriorityLevelConfigurationCondition"): - return &applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationConditionApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("PriorityLevelConfigurationReference"): - return &applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationReferenceApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("PriorityLevelConfigurationSpec"): - return &applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationSpecApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("PriorityLevelConfigurationStatus"): - return &applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationStatusApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("QueuingConfiguration"): - return &applyconfigurationsflowcontrolv1beta2.QueuingConfigurationApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("ResourcePolicyRule"): - return &applyconfigurationsflowcontrolv1beta2.ResourcePolicyRuleApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("ServiceAccountSubject"): - return &applyconfigurationsflowcontrolv1beta2.ServiceAccountSubjectApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("Subject"): - return &applyconfigurationsflowcontrolv1beta2.SubjectApplyConfiguration{} - case flowcontrolv1beta2.SchemeGroupVersion.WithKind("UserSubject"): - return &applyconfigurationsflowcontrolv1beta2.UserSubjectApplyConfiguration{} - - // Group=flowcontrol.apiserver.k8s.io, Version=v1beta3 - case v1beta3.SchemeGroupVersion.WithKind("ExemptPriorityLevelConfiguration"): - return &flowcontrolv1beta3.ExemptPriorityLevelConfigurationApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("FlowDistinguisherMethod"): - return &flowcontrolv1beta3.FlowDistinguisherMethodApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("FlowSchema"): - return &flowcontrolv1beta3.FlowSchemaApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("FlowSchemaCondition"): - return &flowcontrolv1beta3.FlowSchemaConditionApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("FlowSchemaSpec"): - return &flowcontrolv1beta3.FlowSchemaSpecApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("FlowSchemaStatus"): - return &flowcontrolv1beta3.FlowSchemaStatusApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("GroupSubject"): - return &flowcontrolv1beta3.GroupSubjectApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("LimitedPriorityLevelConfiguration"): - return &flowcontrolv1beta3.LimitedPriorityLevelConfigurationApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("LimitResponse"): - return &flowcontrolv1beta3.LimitResponseApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("NonResourcePolicyRule"): - return &flowcontrolv1beta3.NonResourcePolicyRuleApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("PolicyRulesWithSubjects"): - return &flowcontrolv1beta3.PolicyRulesWithSubjectsApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("PriorityLevelConfiguration"): - return &flowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("PriorityLevelConfigurationCondition"): - return &flowcontrolv1beta3.PriorityLevelConfigurationConditionApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("PriorityLevelConfigurationReference"): - return &flowcontrolv1beta3.PriorityLevelConfigurationReferenceApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("PriorityLevelConfigurationSpec"): - return &flowcontrolv1beta3.PriorityLevelConfigurationSpecApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("PriorityLevelConfigurationStatus"): - return &flowcontrolv1beta3.PriorityLevelConfigurationStatusApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("QueuingConfiguration"): - return &flowcontrolv1beta3.QueuingConfigurationApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("ResourcePolicyRule"): - return &flowcontrolv1beta3.ResourcePolicyRuleApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("ServiceAccountSubject"): - return &flowcontrolv1beta3.ServiceAccountSubjectApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("Subject"): - return &flowcontrolv1beta3.SubjectApplyConfiguration{} - case v1beta3.SchemeGroupVersion.WithKind("UserSubject"): - return &flowcontrolv1beta3.UserSubjectApplyConfiguration{} - - // Group=imagepolicy.k8s.io, Version=v1alpha1 - case imagepolicyv1alpha1.SchemeGroupVersion.WithKind("ImageReview"): - return &applyconfigurationsimagepolicyv1alpha1.ImageReviewApplyConfiguration{} - case imagepolicyv1alpha1.SchemeGroupVersion.WithKind("ImageReviewContainerSpec"): - return &applyconfigurationsimagepolicyv1alpha1.ImageReviewContainerSpecApplyConfiguration{} - case imagepolicyv1alpha1.SchemeGroupVersion.WithKind("ImageReviewSpec"): - return &applyconfigurationsimagepolicyv1alpha1.ImageReviewSpecApplyConfiguration{} - case imagepolicyv1alpha1.SchemeGroupVersion.WithKind("ImageReviewStatus"): - return &applyconfigurationsimagepolicyv1alpha1.ImageReviewStatusApplyConfiguration{} - - // Group=internal.apiserver.k8s.io, Version=v1alpha1 - case apiserverinternalv1alpha1.SchemeGroupVersion.WithKind("ServerStorageVersion"): - return &applyconfigurationsapiserverinternalv1alpha1.ServerStorageVersionApplyConfiguration{} - case apiserverinternalv1alpha1.SchemeGroupVersion.WithKind("StorageVersion"): - return &applyconfigurationsapiserverinternalv1alpha1.StorageVersionApplyConfiguration{} - case apiserverinternalv1alpha1.SchemeGroupVersion.WithKind("StorageVersionCondition"): - return &applyconfigurationsapiserverinternalv1alpha1.StorageVersionConditionApplyConfiguration{} - case apiserverinternalv1alpha1.SchemeGroupVersion.WithKind("StorageVersionStatus"): - return &applyconfigurationsapiserverinternalv1alpha1.StorageVersionStatusApplyConfiguration{} - - // Group=meta.k8s.io, Version=v1 - case metav1.SchemeGroupVersion.WithKind("Condition"): - return &applyconfigurationsmetav1.ConditionApplyConfiguration{} - case metav1.SchemeGroupVersion.WithKind("DeleteOptions"): - return &applyconfigurationsmetav1.DeleteOptionsApplyConfiguration{} - case metav1.SchemeGroupVersion.WithKind("GroupResource"): - return &applyconfigurationsmetav1.GroupResourceApplyConfiguration{} - case metav1.SchemeGroupVersion.WithKind("LabelSelector"): - return &applyconfigurationsmetav1.LabelSelectorApplyConfiguration{} - case metav1.SchemeGroupVersion.WithKind("LabelSelectorRequirement"): - return &applyconfigurationsmetav1.LabelSelectorRequirementApplyConfiguration{} - case metav1.SchemeGroupVersion.WithKind("ManagedFieldsEntry"): - return &applyconfigurationsmetav1.ManagedFieldsEntryApplyConfiguration{} - case metav1.SchemeGroupVersion.WithKind("ObjectMeta"): - return &applyconfigurationsmetav1.ObjectMetaApplyConfiguration{} - case metav1.SchemeGroupVersion.WithKind("OwnerReference"): - return &applyconfigurationsmetav1.OwnerReferenceApplyConfiguration{} - case metav1.SchemeGroupVersion.WithKind("Preconditions"): - return &applyconfigurationsmetav1.PreconditionsApplyConfiguration{} - case metav1.SchemeGroupVersion.WithKind("TypeMeta"): - return &applyconfigurationsmetav1.TypeMetaApplyConfiguration{} - - // Group=networking.k8s.io, Version=v1 - case networkingv1.SchemeGroupVersion.WithKind("HTTPIngressPath"): - return &applyconfigurationsnetworkingv1.HTTPIngressPathApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("HTTPIngressRuleValue"): - return &applyconfigurationsnetworkingv1.HTTPIngressRuleValueApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("Ingress"): - return &applyconfigurationsnetworkingv1.IngressApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressBackend"): - return &applyconfigurationsnetworkingv1.IngressBackendApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressClass"): - return &applyconfigurationsnetworkingv1.IngressClassApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressClassParametersReference"): - return &applyconfigurationsnetworkingv1.IngressClassParametersReferenceApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressClassSpec"): - return &applyconfigurationsnetworkingv1.IngressClassSpecApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressLoadBalancerIngress"): - return &applyconfigurationsnetworkingv1.IngressLoadBalancerIngressApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressLoadBalancerStatus"): - return &applyconfigurationsnetworkingv1.IngressLoadBalancerStatusApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressPortStatus"): - return &applyconfigurationsnetworkingv1.IngressPortStatusApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressRule"): - return &applyconfigurationsnetworkingv1.IngressRuleApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressRuleValue"): - return &applyconfigurationsnetworkingv1.IngressRuleValueApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressServiceBackend"): - return &applyconfigurationsnetworkingv1.IngressServiceBackendApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressSpec"): - return &applyconfigurationsnetworkingv1.IngressSpecApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressStatus"): - return &applyconfigurationsnetworkingv1.IngressStatusApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IngressTLS"): - return &applyconfigurationsnetworkingv1.IngressTLSApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IPAddress"): - return &applyconfigurationsnetworkingv1.IPAddressApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IPAddressSpec"): - return &applyconfigurationsnetworkingv1.IPAddressSpecApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("IPBlock"): - return &applyconfigurationsnetworkingv1.IPBlockApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("NetworkPolicy"): - return &applyconfigurationsnetworkingv1.NetworkPolicyApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("NetworkPolicyEgressRule"): - return &applyconfigurationsnetworkingv1.NetworkPolicyEgressRuleApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("NetworkPolicyIngressRule"): - return &applyconfigurationsnetworkingv1.NetworkPolicyIngressRuleApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("NetworkPolicyPeer"): - return &applyconfigurationsnetworkingv1.NetworkPolicyPeerApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("NetworkPolicyPort"): - return &applyconfigurationsnetworkingv1.NetworkPolicyPortApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("NetworkPolicySpec"): - return &applyconfigurationsnetworkingv1.NetworkPolicySpecApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("ParentReference"): - return &applyconfigurationsnetworkingv1.ParentReferenceApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("ServiceBackendPort"): - return &applyconfigurationsnetworkingv1.ServiceBackendPortApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("ServiceCIDR"): - return &applyconfigurationsnetworkingv1.ServiceCIDRApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("ServiceCIDRSpec"): - return &applyconfigurationsnetworkingv1.ServiceCIDRSpecApplyConfiguration{} - case networkingv1.SchemeGroupVersion.WithKind("ServiceCIDRStatus"): - return &applyconfigurationsnetworkingv1.ServiceCIDRStatusApplyConfiguration{} - - // Group=networking.k8s.io, Version=v1beta1 - case networkingv1beta1.SchemeGroupVersion.WithKind("HTTPIngressPath"): - return &applyconfigurationsnetworkingv1beta1.HTTPIngressPathApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("HTTPIngressRuleValue"): - return &applyconfigurationsnetworkingv1beta1.HTTPIngressRuleValueApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("Ingress"): - return &applyconfigurationsnetworkingv1beta1.IngressApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressBackend"): - return &applyconfigurationsnetworkingv1beta1.IngressBackendApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressClass"): - return &applyconfigurationsnetworkingv1beta1.IngressClassApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressClassParametersReference"): - return &applyconfigurationsnetworkingv1beta1.IngressClassParametersReferenceApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressClassSpec"): - return &applyconfigurationsnetworkingv1beta1.IngressClassSpecApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressLoadBalancerIngress"): - return &applyconfigurationsnetworkingv1beta1.IngressLoadBalancerIngressApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressLoadBalancerStatus"): - return &applyconfigurationsnetworkingv1beta1.IngressLoadBalancerStatusApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressPortStatus"): - return &applyconfigurationsnetworkingv1beta1.IngressPortStatusApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressRule"): - return &applyconfigurationsnetworkingv1beta1.IngressRuleApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressRuleValue"): - return &applyconfigurationsnetworkingv1beta1.IngressRuleValueApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressSpec"): - return &applyconfigurationsnetworkingv1beta1.IngressSpecApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressStatus"): - return &applyconfigurationsnetworkingv1beta1.IngressStatusApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IngressTLS"): - return &applyconfigurationsnetworkingv1beta1.IngressTLSApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IPAddress"): - return &applyconfigurationsnetworkingv1beta1.IPAddressApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("IPAddressSpec"): - return &applyconfigurationsnetworkingv1beta1.IPAddressSpecApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("ParentReference"): - return &applyconfigurationsnetworkingv1beta1.ParentReferenceApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("ServiceCIDR"): - return &applyconfigurationsnetworkingv1beta1.ServiceCIDRApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("ServiceCIDRSpec"): - return &applyconfigurationsnetworkingv1beta1.ServiceCIDRSpecApplyConfiguration{} - case networkingv1beta1.SchemeGroupVersion.WithKind("ServiceCIDRStatus"): - return &applyconfigurationsnetworkingv1beta1.ServiceCIDRStatusApplyConfiguration{} - - // Group=node.k8s.io, Version=v1 - case nodev1.SchemeGroupVersion.WithKind("Overhead"): - return &applyconfigurationsnodev1.OverheadApplyConfiguration{} - case nodev1.SchemeGroupVersion.WithKind("RuntimeClass"): - return &applyconfigurationsnodev1.RuntimeClassApplyConfiguration{} - case nodev1.SchemeGroupVersion.WithKind("Scheduling"): - return &applyconfigurationsnodev1.SchedulingApplyConfiguration{} - - // Group=node.k8s.io, Version=v1alpha1 - case nodev1alpha1.SchemeGroupVersion.WithKind("Overhead"): - return &applyconfigurationsnodev1alpha1.OverheadApplyConfiguration{} - case nodev1alpha1.SchemeGroupVersion.WithKind("RuntimeClass"): - return &applyconfigurationsnodev1alpha1.RuntimeClassApplyConfiguration{} - case nodev1alpha1.SchemeGroupVersion.WithKind("RuntimeClassSpec"): - return &applyconfigurationsnodev1alpha1.RuntimeClassSpecApplyConfiguration{} - case nodev1alpha1.SchemeGroupVersion.WithKind("Scheduling"): - return &applyconfigurationsnodev1alpha1.SchedulingApplyConfiguration{} - - // Group=node.k8s.io, Version=v1beta1 - case nodev1beta1.SchemeGroupVersion.WithKind("Overhead"): - return &applyconfigurationsnodev1beta1.OverheadApplyConfiguration{} - case nodev1beta1.SchemeGroupVersion.WithKind("RuntimeClass"): - return &applyconfigurationsnodev1beta1.RuntimeClassApplyConfiguration{} - case nodev1beta1.SchemeGroupVersion.WithKind("Scheduling"): - return &applyconfigurationsnodev1beta1.SchedulingApplyConfiguration{} - - // Group=policy, Version=v1 - case policyv1.SchemeGroupVersion.WithKind("Eviction"): - return &applyconfigurationspolicyv1.EvictionApplyConfiguration{} - case policyv1.SchemeGroupVersion.WithKind("PodDisruptionBudget"): - return &applyconfigurationspolicyv1.PodDisruptionBudgetApplyConfiguration{} - case policyv1.SchemeGroupVersion.WithKind("PodDisruptionBudgetSpec"): - return &applyconfigurationspolicyv1.PodDisruptionBudgetSpecApplyConfiguration{} - case policyv1.SchemeGroupVersion.WithKind("PodDisruptionBudgetStatus"): - return &applyconfigurationspolicyv1.PodDisruptionBudgetStatusApplyConfiguration{} - - // Group=policy, Version=v1beta1 - case policyv1beta1.SchemeGroupVersion.WithKind("Eviction"): - return &applyconfigurationspolicyv1beta1.EvictionApplyConfiguration{} - case policyv1beta1.SchemeGroupVersion.WithKind("PodDisruptionBudget"): - return &applyconfigurationspolicyv1beta1.PodDisruptionBudgetApplyConfiguration{} - case policyv1beta1.SchemeGroupVersion.WithKind("PodDisruptionBudgetSpec"): - return &applyconfigurationspolicyv1beta1.PodDisruptionBudgetSpecApplyConfiguration{} - case policyv1beta1.SchemeGroupVersion.WithKind("PodDisruptionBudgetStatus"): - return &applyconfigurationspolicyv1beta1.PodDisruptionBudgetStatusApplyConfiguration{} - - // Group=rbac.authorization.k8s.io, Version=v1 - case rbacv1.SchemeGroupVersion.WithKind("AggregationRule"): - return &applyconfigurationsrbacv1.AggregationRuleApplyConfiguration{} - case rbacv1.SchemeGroupVersion.WithKind("ClusterRole"): - return &applyconfigurationsrbacv1.ClusterRoleApplyConfiguration{} - case rbacv1.SchemeGroupVersion.WithKind("ClusterRoleBinding"): - return &applyconfigurationsrbacv1.ClusterRoleBindingApplyConfiguration{} - case rbacv1.SchemeGroupVersion.WithKind("PolicyRule"): - return &applyconfigurationsrbacv1.PolicyRuleApplyConfiguration{} - case rbacv1.SchemeGroupVersion.WithKind("Role"): - return &applyconfigurationsrbacv1.RoleApplyConfiguration{} - case rbacv1.SchemeGroupVersion.WithKind("RoleBinding"): - return &applyconfigurationsrbacv1.RoleBindingApplyConfiguration{} - case rbacv1.SchemeGroupVersion.WithKind("RoleRef"): - return &applyconfigurationsrbacv1.RoleRefApplyConfiguration{} - case rbacv1.SchemeGroupVersion.WithKind("Subject"): - return &applyconfigurationsrbacv1.SubjectApplyConfiguration{} - - // Group=rbac.authorization.k8s.io, Version=v1alpha1 - case rbacv1alpha1.SchemeGroupVersion.WithKind("AggregationRule"): - return &applyconfigurationsrbacv1alpha1.AggregationRuleApplyConfiguration{} - case rbacv1alpha1.SchemeGroupVersion.WithKind("ClusterRole"): - return &applyconfigurationsrbacv1alpha1.ClusterRoleApplyConfiguration{} - case rbacv1alpha1.SchemeGroupVersion.WithKind("ClusterRoleBinding"): - return &applyconfigurationsrbacv1alpha1.ClusterRoleBindingApplyConfiguration{} - case rbacv1alpha1.SchemeGroupVersion.WithKind("PolicyRule"): - return &applyconfigurationsrbacv1alpha1.PolicyRuleApplyConfiguration{} - case rbacv1alpha1.SchemeGroupVersion.WithKind("Role"): - return &applyconfigurationsrbacv1alpha1.RoleApplyConfiguration{} - case rbacv1alpha1.SchemeGroupVersion.WithKind("RoleBinding"): - return &applyconfigurationsrbacv1alpha1.RoleBindingApplyConfiguration{} - case rbacv1alpha1.SchemeGroupVersion.WithKind("RoleRef"): - return &applyconfigurationsrbacv1alpha1.RoleRefApplyConfiguration{} - case rbacv1alpha1.SchemeGroupVersion.WithKind("Subject"): - return &applyconfigurationsrbacv1alpha1.SubjectApplyConfiguration{} - - // Group=rbac.authorization.k8s.io, Version=v1beta1 - case rbacv1beta1.SchemeGroupVersion.WithKind("AggregationRule"): - return &applyconfigurationsrbacv1beta1.AggregationRuleApplyConfiguration{} - case rbacv1beta1.SchemeGroupVersion.WithKind("ClusterRole"): - return &applyconfigurationsrbacv1beta1.ClusterRoleApplyConfiguration{} - case rbacv1beta1.SchemeGroupVersion.WithKind("ClusterRoleBinding"): - return &applyconfigurationsrbacv1beta1.ClusterRoleBindingApplyConfiguration{} - case rbacv1beta1.SchemeGroupVersion.WithKind("PolicyRule"): - return &applyconfigurationsrbacv1beta1.PolicyRuleApplyConfiguration{} - case rbacv1beta1.SchemeGroupVersion.WithKind("Role"): - return &applyconfigurationsrbacv1beta1.RoleApplyConfiguration{} - case rbacv1beta1.SchemeGroupVersion.WithKind("RoleBinding"): - return &applyconfigurationsrbacv1beta1.RoleBindingApplyConfiguration{} - case rbacv1beta1.SchemeGroupVersion.WithKind("RoleRef"): - return &applyconfigurationsrbacv1beta1.RoleRefApplyConfiguration{} - case rbacv1beta1.SchemeGroupVersion.WithKind("Subject"): - return &applyconfigurationsrbacv1beta1.SubjectApplyConfiguration{} - - // Group=resource.k8s.io, Version=v1 - case resourcev1.SchemeGroupVersion.WithKind("AllocatedDeviceStatus"): - return &applyconfigurationsresourcev1.AllocatedDeviceStatusApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("AllocationResult"): - return &applyconfigurationsresourcev1.AllocationResultApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("CapacityRequestPolicy"): - return &applyconfigurationsresourcev1.CapacityRequestPolicyApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("CapacityRequestPolicyRange"): - return &applyconfigurationsresourcev1.CapacityRequestPolicyRangeApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("CapacityRequirements"): - return &applyconfigurationsresourcev1.CapacityRequirementsApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("CELDeviceSelector"): - return &applyconfigurationsresourcev1.CELDeviceSelectorApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("Counter"): - return &applyconfigurationsresourcev1.CounterApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("CounterSet"): - return &applyconfigurationsresourcev1.CounterSetApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("Device"): - return &applyconfigurationsresourcev1.DeviceApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceAllocationConfiguration"): - return &applyconfigurationsresourcev1.DeviceAllocationConfigurationApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceAllocationResult"): - return &applyconfigurationsresourcev1.DeviceAllocationResultApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceAttribute"): - return &applyconfigurationsresourcev1.DeviceAttributeApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceCapacity"): - return &applyconfigurationsresourcev1.DeviceCapacityApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceClaim"): - return &applyconfigurationsresourcev1.DeviceClaimApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceClaimConfiguration"): - return &applyconfigurationsresourcev1.DeviceClaimConfigurationApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceClass"): - return &applyconfigurationsresourcev1.DeviceClassApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceClassConfiguration"): - return &applyconfigurationsresourcev1.DeviceClassConfigurationApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceClassSpec"): - return &applyconfigurationsresourcev1.DeviceClassSpecApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceConfiguration"): - return &applyconfigurationsresourcev1.DeviceConfigurationApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceConstraint"): - return &applyconfigurationsresourcev1.DeviceConstraintApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceCounterConsumption"): - return &applyconfigurationsresourcev1.DeviceCounterConsumptionApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceRequest"): - return &applyconfigurationsresourcev1.DeviceRequestApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceRequestAllocationResult"): - return &applyconfigurationsresourcev1.DeviceRequestAllocationResultApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceSelector"): - return &applyconfigurationsresourcev1.DeviceSelectorApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceSubRequest"): - return &applyconfigurationsresourcev1.DeviceSubRequestApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceTaint"): - return &applyconfigurationsresourcev1.DeviceTaintApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("DeviceToleration"): - return &applyconfigurationsresourcev1.DeviceTolerationApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("ExactDeviceRequest"): - return &applyconfigurationsresourcev1.ExactDeviceRequestApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("NetworkDeviceData"): - return &applyconfigurationsresourcev1.NetworkDeviceDataApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("OpaqueDeviceConfiguration"): - return &applyconfigurationsresourcev1.OpaqueDeviceConfigurationApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("ResourceClaim"): - return &applyconfigurationsresourcev1.ResourceClaimApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("ResourceClaimConsumerReference"): - return &applyconfigurationsresourcev1.ResourceClaimConsumerReferenceApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("ResourceClaimSpec"): - return &applyconfigurationsresourcev1.ResourceClaimSpecApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("ResourceClaimStatus"): - return &applyconfigurationsresourcev1.ResourceClaimStatusApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("ResourceClaimTemplate"): - return &applyconfigurationsresourcev1.ResourceClaimTemplateApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("ResourceClaimTemplateSpec"): - return &applyconfigurationsresourcev1.ResourceClaimTemplateSpecApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("ResourcePool"): - return &applyconfigurationsresourcev1.ResourcePoolApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("ResourceSlice"): - return &applyconfigurationsresourcev1.ResourceSliceApplyConfiguration{} - case resourcev1.SchemeGroupVersion.WithKind("ResourceSliceSpec"): - return &applyconfigurationsresourcev1.ResourceSliceSpecApplyConfiguration{} - - // Group=resource.k8s.io, Version=v1alpha3 - case v1alpha3.SchemeGroupVersion.WithKind("DeviceTaint"): - return &resourcev1alpha3.DeviceTaintApplyConfiguration{} - case v1alpha3.SchemeGroupVersion.WithKind("DeviceTaintRule"): - return &resourcev1alpha3.DeviceTaintRuleApplyConfiguration{} - case v1alpha3.SchemeGroupVersion.WithKind("DeviceTaintRuleSpec"): - return &resourcev1alpha3.DeviceTaintRuleSpecApplyConfiguration{} - case v1alpha3.SchemeGroupVersion.WithKind("DeviceTaintRuleStatus"): - return &resourcev1alpha3.DeviceTaintRuleStatusApplyConfiguration{} - case v1alpha3.SchemeGroupVersion.WithKind("DeviceTaintSelector"): - return &resourcev1alpha3.DeviceTaintSelectorApplyConfiguration{} - - // Group=resource.k8s.io, Version=v1beta1 - case resourcev1beta1.SchemeGroupVersion.WithKind("AllocatedDeviceStatus"): - return &applyconfigurationsresourcev1beta1.AllocatedDeviceStatusApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("AllocationResult"): - return &applyconfigurationsresourcev1beta1.AllocationResultApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("BasicDevice"): - return &applyconfigurationsresourcev1beta1.BasicDeviceApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("CapacityRequestPolicy"): - return &applyconfigurationsresourcev1beta1.CapacityRequestPolicyApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("CapacityRequestPolicyRange"): - return &applyconfigurationsresourcev1beta1.CapacityRequestPolicyRangeApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("CapacityRequirements"): - return &applyconfigurationsresourcev1beta1.CapacityRequirementsApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("CELDeviceSelector"): - return &applyconfigurationsresourcev1beta1.CELDeviceSelectorApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("Counter"): - return &applyconfigurationsresourcev1beta1.CounterApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("CounterSet"): - return &applyconfigurationsresourcev1beta1.CounterSetApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("Device"): - return &applyconfigurationsresourcev1beta1.DeviceApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceAllocationConfiguration"): - return &applyconfigurationsresourcev1beta1.DeviceAllocationConfigurationApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceAllocationResult"): - return &applyconfigurationsresourcev1beta1.DeviceAllocationResultApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceAttribute"): - return &applyconfigurationsresourcev1beta1.DeviceAttributeApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceCapacity"): - return &applyconfigurationsresourcev1beta1.DeviceCapacityApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceClaim"): - return &applyconfigurationsresourcev1beta1.DeviceClaimApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceClaimConfiguration"): - return &applyconfigurationsresourcev1beta1.DeviceClaimConfigurationApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceClass"): - return &applyconfigurationsresourcev1beta1.DeviceClassApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceClassConfiguration"): - return &applyconfigurationsresourcev1beta1.DeviceClassConfigurationApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceClassSpec"): - return &applyconfigurationsresourcev1beta1.DeviceClassSpecApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceConfiguration"): - return &applyconfigurationsresourcev1beta1.DeviceConfigurationApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceConstraint"): - return &applyconfigurationsresourcev1beta1.DeviceConstraintApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceCounterConsumption"): - return &applyconfigurationsresourcev1beta1.DeviceCounterConsumptionApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceRequest"): - return &applyconfigurationsresourcev1beta1.DeviceRequestApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceRequestAllocationResult"): - return &applyconfigurationsresourcev1beta1.DeviceRequestAllocationResultApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceSelector"): - return &applyconfigurationsresourcev1beta1.DeviceSelectorApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceSubRequest"): - return &applyconfigurationsresourcev1beta1.DeviceSubRequestApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceTaint"): - return &applyconfigurationsresourcev1beta1.DeviceTaintApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("DeviceToleration"): - return &applyconfigurationsresourcev1beta1.DeviceTolerationApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("NetworkDeviceData"): - return &applyconfigurationsresourcev1beta1.NetworkDeviceDataApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("OpaqueDeviceConfiguration"): - return &applyconfigurationsresourcev1beta1.OpaqueDeviceConfigurationApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("ResourceClaim"): - return &applyconfigurationsresourcev1beta1.ResourceClaimApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("ResourceClaimConsumerReference"): - return &applyconfigurationsresourcev1beta1.ResourceClaimConsumerReferenceApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("ResourceClaimSpec"): - return &applyconfigurationsresourcev1beta1.ResourceClaimSpecApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("ResourceClaimStatus"): - return &applyconfigurationsresourcev1beta1.ResourceClaimStatusApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("ResourceClaimTemplate"): - return &applyconfigurationsresourcev1beta1.ResourceClaimTemplateApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("ResourceClaimTemplateSpec"): - return &applyconfigurationsresourcev1beta1.ResourceClaimTemplateSpecApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("ResourcePool"): - return &applyconfigurationsresourcev1beta1.ResourcePoolApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("ResourceSlice"): - return &applyconfigurationsresourcev1beta1.ResourceSliceApplyConfiguration{} - case resourcev1beta1.SchemeGroupVersion.WithKind("ResourceSliceSpec"): - return &applyconfigurationsresourcev1beta1.ResourceSliceSpecApplyConfiguration{} - - // Group=resource.k8s.io, Version=v1beta2 - case resourcev1beta2.SchemeGroupVersion.WithKind("AllocatedDeviceStatus"): - return &applyconfigurationsresourcev1beta2.AllocatedDeviceStatusApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("AllocationResult"): - return &applyconfigurationsresourcev1beta2.AllocationResultApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("CapacityRequestPolicy"): - return &applyconfigurationsresourcev1beta2.CapacityRequestPolicyApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("CapacityRequestPolicyRange"): - return &applyconfigurationsresourcev1beta2.CapacityRequestPolicyRangeApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("CapacityRequirements"): - return &applyconfigurationsresourcev1beta2.CapacityRequirementsApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("CELDeviceSelector"): - return &applyconfigurationsresourcev1beta2.CELDeviceSelectorApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("Counter"): - return &applyconfigurationsresourcev1beta2.CounterApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("CounterSet"): - return &applyconfigurationsresourcev1beta2.CounterSetApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("Device"): - return &applyconfigurationsresourcev1beta2.DeviceApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceAllocationConfiguration"): - return &applyconfigurationsresourcev1beta2.DeviceAllocationConfigurationApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceAllocationResult"): - return &applyconfigurationsresourcev1beta2.DeviceAllocationResultApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceAttribute"): - return &applyconfigurationsresourcev1beta2.DeviceAttributeApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceCapacity"): - return &applyconfigurationsresourcev1beta2.DeviceCapacityApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceClaim"): - return &applyconfigurationsresourcev1beta2.DeviceClaimApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceClaimConfiguration"): - return &applyconfigurationsresourcev1beta2.DeviceClaimConfigurationApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceClass"): - return &applyconfigurationsresourcev1beta2.DeviceClassApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceClassConfiguration"): - return &applyconfigurationsresourcev1beta2.DeviceClassConfigurationApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceClassSpec"): - return &applyconfigurationsresourcev1beta2.DeviceClassSpecApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceConfiguration"): - return &applyconfigurationsresourcev1beta2.DeviceConfigurationApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceConstraint"): - return &applyconfigurationsresourcev1beta2.DeviceConstraintApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceCounterConsumption"): - return &applyconfigurationsresourcev1beta2.DeviceCounterConsumptionApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceRequest"): - return &applyconfigurationsresourcev1beta2.DeviceRequestApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceRequestAllocationResult"): - return &applyconfigurationsresourcev1beta2.DeviceRequestAllocationResultApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceSelector"): - return &applyconfigurationsresourcev1beta2.DeviceSelectorApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceSubRequest"): - return &applyconfigurationsresourcev1beta2.DeviceSubRequestApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceTaint"): - return &applyconfigurationsresourcev1beta2.DeviceTaintApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("DeviceToleration"): - return &applyconfigurationsresourcev1beta2.DeviceTolerationApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("ExactDeviceRequest"): - return &applyconfigurationsresourcev1beta2.ExactDeviceRequestApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("NetworkDeviceData"): - return &applyconfigurationsresourcev1beta2.NetworkDeviceDataApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("OpaqueDeviceConfiguration"): - return &applyconfigurationsresourcev1beta2.OpaqueDeviceConfigurationApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("ResourceClaim"): - return &applyconfigurationsresourcev1beta2.ResourceClaimApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("ResourceClaimConsumerReference"): - return &applyconfigurationsresourcev1beta2.ResourceClaimConsumerReferenceApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("ResourceClaimSpec"): - return &applyconfigurationsresourcev1beta2.ResourceClaimSpecApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("ResourceClaimStatus"): - return &applyconfigurationsresourcev1beta2.ResourceClaimStatusApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("ResourceClaimTemplate"): - return &applyconfigurationsresourcev1beta2.ResourceClaimTemplateApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("ResourceClaimTemplateSpec"): - return &applyconfigurationsresourcev1beta2.ResourceClaimTemplateSpecApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("ResourcePool"): - return &applyconfigurationsresourcev1beta2.ResourcePoolApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("ResourceSlice"): - return &applyconfigurationsresourcev1beta2.ResourceSliceApplyConfiguration{} - case resourcev1beta2.SchemeGroupVersion.WithKind("ResourceSliceSpec"): - return &applyconfigurationsresourcev1beta2.ResourceSliceSpecApplyConfiguration{} - - // Group=scheduling.k8s.io, Version=v1 - case schedulingv1.SchemeGroupVersion.WithKind("PriorityClass"): - return &applyconfigurationsschedulingv1.PriorityClassApplyConfiguration{} - - // Group=scheduling.k8s.io, Version=v1alpha1 - case schedulingv1alpha1.SchemeGroupVersion.WithKind("GangSchedulingPolicy"): - return &applyconfigurationsschedulingv1alpha1.GangSchedulingPolicyApplyConfiguration{} - case schedulingv1alpha1.SchemeGroupVersion.WithKind("PodGroup"): - return &applyconfigurationsschedulingv1alpha1.PodGroupApplyConfiguration{} - case schedulingv1alpha1.SchemeGroupVersion.WithKind("PodGroupPolicy"): - return &applyconfigurationsschedulingv1alpha1.PodGroupPolicyApplyConfiguration{} - case schedulingv1alpha1.SchemeGroupVersion.WithKind("PriorityClass"): - return &applyconfigurationsschedulingv1alpha1.PriorityClassApplyConfiguration{} - case schedulingv1alpha1.SchemeGroupVersion.WithKind("TypedLocalObjectReference"): - return &applyconfigurationsschedulingv1alpha1.TypedLocalObjectReferenceApplyConfiguration{} - case schedulingv1alpha1.SchemeGroupVersion.WithKind("Workload"): - return &applyconfigurationsschedulingv1alpha1.WorkloadApplyConfiguration{} - case schedulingv1alpha1.SchemeGroupVersion.WithKind("WorkloadSpec"): - return &applyconfigurationsschedulingv1alpha1.WorkloadSpecApplyConfiguration{} - - // Group=scheduling.k8s.io, Version=v1beta1 - case schedulingv1beta1.SchemeGroupVersion.WithKind("PriorityClass"): - return &applyconfigurationsschedulingv1beta1.PriorityClassApplyConfiguration{} - - // Group=storage.k8s.io, Version=v1 - case storagev1.SchemeGroupVersion.WithKind("CSIDriver"): - return &applyconfigurationsstoragev1.CSIDriverApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("CSIDriverSpec"): - return &applyconfigurationsstoragev1.CSIDriverSpecApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("CSINode"): - return &applyconfigurationsstoragev1.CSINodeApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("CSINodeDriver"): - return &applyconfigurationsstoragev1.CSINodeDriverApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("CSINodeSpec"): - return &applyconfigurationsstoragev1.CSINodeSpecApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("CSIStorageCapacity"): - return &applyconfigurationsstoragev1.CSIStorageCapacityApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("StorageClass"): - return &applyconfigurationsstoragev1.StorageClassApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("TokenRequest"): - return &applyconfigurationsstoragev1.TokenRequestApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("VolumeAttachment"): - return &applyconfigurationsstoragev1.VolumeAttachmentApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("VolumeAttachmentSource"): - return &applyconfigurationsstoragev1.VolumeAttachmentSourceApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("VolumeAttachmentSpec"): - return &applyconfigurationsstoragev1.VolumeAttachmentSpecApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("VolumeAttachmentStatus"): - return &applyconfigurationsstoragev1.VolumeAttachmentStatusApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("VolumeAttributesClass"): - return &applyconfigurationsstoragev1.VolumeAttributesClassApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("VolumeError"): - return &applyconfigurationsstoragev1.VolumeErrorApplyConfiguration{} - case storagev1.SchemeGroupVersion.WithKind("VolumeNodeResources"): - return &applyconfigurationsstoragev1.VolumeNodeResourcesApplyConfiguration{} - - // Group=storage.k8s.io, Version=v1alpha1 - case storagev1alpha1.SchemeGroupVersion.WithKind("CSIStorageCapacity"): - return &applyconfigurationsstoragev1alpha1.CSIStorageCapacityApplyConfiguration{} - case storagev1alpha1.SchemeGroupVersion.WithKind("VolumeAttachment"): - return &applyconfigurationsstoragev1alpha1.VolumeAttachmentApplyConfiguration{} - case storagev1alpha1.SchemeGroupVersion.WithKind("VolumeAttachmentSource"): - return &applyconfigurationsstoragev1alpha1.VolumeAttachmentSourceApplyConfiguration{} - case storagev1alpha1.SchemeGroupVersion.WithKind("VolumeAttachmentSpec"): - return &applyconfigurationsstoragev1alpha1.VolumeAttachmentSpecApplyConfiguration{} - case storagev1alpha1.SchemeGroupVersion.WithKind("VolumeAttachmentStatus"): - return &applyconfigurationsstoragev1alpha1.VolumeAttachmentStatusApplyConfiguration{} - case storagev1alpha1.SchemeGroupVersion.WithKind("VolumeAttributesClass"): - return &applyconfigurationsstoragev1alpha1.VolumeAttributesClassApplyConfiguration{} - case storagev1alpha1.SchemeGroupVersion.WithKind("VolumeError"): - return &applyconfigurationsstoragev1alpha1.VolumeErrorApplyConfiguration{} - - // Group=storage.k8s.io, Version=v1beta1 - case storagev1beta1.SchemeGroupVersion.WithKind("CSIDriver"): - return &applyconfigurationsstoragev1beta1.CSIDriverApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("CSIDriverSpec"): - return &applyconfigurationsstoragev1beta1.CSIDriverSpecApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("CSINode"): - return &applyconfigurationsstoragev1beta1.CSINodeApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("CSINodeDriver"): - return &applyconfigurationsstoragev1beta1.CSINodeDriverApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("CSINodeSpec"): - return &applyconfigurationsstoragev1beta1.CSINodeSpecApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("CSIStorageCapacity"): - return &applyconfigurationsstoragev1beta1.CSIStorageCapacityApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("StorageClass"): - return &applyconfigurationsstoragev1beta1.StorageClassApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("TokenRequest"): - return &applyconfigurationsstoragev1beta1.TokenRequestApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("VolumeAttachment"): - return &applyconfigurationsstoragev1beta1.VolumeAttachmentApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("VolumeAttachmentSource"): - return &applyconfigurationsstoragev1beta1.VolumeAttachmentSourceApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("VolumeAttachmentSpec"): - return &applyconfigurationsstoragev1beta1.VolumeAttachmentSpecApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("VolumeAttachmentStatus"): - return &applyconfigurationsstoragev1beta1.VolumeAttachmentStatusApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("VolumeAttributesClass"): - return &applyconfigurationsstoragev1beta1.VolumeAttributesClassApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("VolumeError"): - return &applyconfigurationsstoragev1beta1.VolumeErrorApplyConfiguration{} - case storagev1beta1.SchemeGroupVersion.WithKind("VolumeNodeResources"): - return &applyconfigurationsstoragev1beta1.VolumeNodeResourcesApplyConfiguration{} - - // Group=storagemigration.k8s.io, Version=v1beta1 - case storagemigrationv1beta1.SchemeGroupVersion.WithKind("StorageVersionMigration"): - return &applyconfigurationsstoragemigrationv1beta1.StorageVersionMigrationApplyConfiguration{} - case storagemigrationv1beta1.SchemeGroupVersion.WithKind("StorageVersionMigrationSpec"): - return &applyconfigurationsstoragemigrationv1beta1.StorageVersionMigrationSpecApplyConfiguration{} - case storagemigrationv1beta1.SchemeGroupVersion.WithKind("StorageVersionMigrationStatus"): - return &applyconfigurationsstoragemigrationv1beta1.StorageVersionMigrationStatusApplyConfiguration{} - - } - return nil -} - -func NewTypeConverter(scheme *runtime.Scheme) managedfields.TypeConverter { - return managedfields.NewSchemeTypeConverter(scheme, internal.Parser()) -} diff --git a/vendor/modules.txt b/vendor/modules.txt index a08888d5d..0375ca748 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -890,7 +890,6 @@ k8s.io/cli-runtime/pkg/printers k8s.io/cli-runtime/pkg/resource # k8s.io/client-go v0.35.2 ## explicit; go 1.25.0 -k8s.io/client-go/applyconfigurations k8s.io/client-go/applyconfigurations/admissionregistration/v1 k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1 k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1 @@ -920,7 +919,6 @@ k8s.io/client-go/applyconfigurations/flowcontrol/v1 k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1 k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2 k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3 -k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1 k8s.io/client-go/applyconfigurations/internal k8s.io/client-go/applyconfigurations/meta/v1 k8s.io/client-go/applyconfigurations/networking/v1 @@ -1277,14 +1275,10 @@ oras.land/oras-go/v2/registry/remote/retry sigs.k8s.io/controller-runtime/pkg/client sigs.k8s.io/controller-runtime/pkg/client/apiutil sigs.k8s.io/controller-runtime/pkg/client/config -sigs.k8s.io/controller-runtime/pkg/client/fake -sigs.k8s.io/controller-runtime/pkg/client/interceptor sigs.k8s.io/controller-runtime/pkg/conversion sigs.k8s.io/controller-runtime/pkg/envtest -sigs.k8s.io/controller-runtime/pkg/internal/field/selector sigs.k8s.io/controller-runtime/pkg/internal/flock sigs.k8s.io/controller-runtime/pkg/internal/log -sigs.k8s.io/controller-runtime/pkg/internal/objectutil sigs.k8s.io/controller-runtime/pkg/internal/testing/addr sigs.k8s.io/controller-runtime/pkg/internal/testing/certs sigs.k8s.io/controller-runtime/pkg/internal/testing/controlplane diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/client.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/client.go deleted file mode 100644 index 2a07bd40b..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/client.go +++ /dev/null @@ -1,1720 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package fake - -import ( - "context" - "errors" - "fmt" - "reflect" - "slices" - "strings" - "sync" - "time" - - /* - Stick with gopkg.in/evanphx/json-patch.v4 here to match - upstream Kubernetes code and avoid breaking changes introduced in v5. - - Kubernetes itself remains on json-patch v4 to avoid compatibility issues - tied to v5’s stricter RFC6902 compliance. - - The fake client code is adapted from client-go’s testing fixture, which also - relies on json-patch v4. - See: - https://github.com/kubernetes/kubernetes/pull/91622 (discussion of why K8s - stays on v4) - https://github.com/kubernetes/kubernetes/pull/120326 (v5.6.0+incompatible - missing a critical fix) - */ - - jsonpatch "gopkg.in/evanphx/json-patch.v4" - appsv1 "k8s.io/api/apps/v1" - authenticationv1 "k8s.io/api/authentication/v1" - autoscalingv1 "k8s.io/api/autoscaling/v1" - corev1 "k8s.io/api/core/v1" - policyv1 "k8s.io/api/policy/v1" - policyv1beta1 "k8s.io/api/policy/v1beta1" - apierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/api/meta" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/apis/meta/v1/validation" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/json" - "k8s.io/apimachinery/pkg/util/managedfields" - utilrand "k8s.io/apimachinery/pkg/util/rand" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/strategicpatch" - "k8s.io/apimachinery/pkg/watch" - clientgoapplyconfigurations "k8s.io/client-go/applyconfigurations" - "k8s.io/client-go/kubernetes/scheme" - "k8s.io/client-go/testing" - "k8s.io/utils/ptr" - - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/client/apiutil" - "sigs.k8s.io/controller-runtime/pkg/client/interceptor" - "sigs.k8s.io/controller-runtime/pkg/internal/field/selector" - "sigs.k8s.io/controller-runtime/pkg/internal/objectutil" -) - -type fakeClient struct { - // trackerWriteLock must be acquired before writing to - // the tracker or performing reads that affect a following - // write. - trackerWriteLock sync.Mutex - tracker versionedTracker - - schemeLock sync.RWMutex - scheme *runtime.Scheme - - restMapper meta.RESTMapper - withStatusSubresource sets.Set[schema.GroupVersionKind] - - // indexes maps each GroupVersionKind (GVK) to the indexes registered for that GVK. - // The inner map maps from index name to IndexerFunc. - indexes map[schema.GroupVersionKind]map[string]client.IndexerFunc - // indexesLock must be held when accessing indexes. - indexesLock sync.RWMutex - - returnManagedFields bool -} - -var _ client.WithWatch = &fakeClient{} - -const ( - maxNameLength = 63 - randomLength = 5 - maxGeneratedNameLength = maxNameLength - randomLength - - subResourceScale = "scale" -) - -// NewFakeClient creates a new fake client for testing. -// You can choose to initialize it with a slice of runtime.Object. -func NewFakeClient(initObjs ...runtime.Object) client.WithWatch { - return NewClientBuilder().WithRuntimeObjects(initObjs...).Build() -} - -// NewClientBuilder returns a new builder to create a fake client. -func NewClientBuilder() *ClientBuilder { - return &ClientBuilder{} -} - -// ClientBuilder builds a fake client. -type ClientBuilder struct { - scheme *runtime.Scheme - restMapper meta.RESTMapper - initObject []client.Object - initLists []client.ObjectList - initRuntimeObjects []runtime.Object - withStatusSubresource []client.Object - objectTracker testing.ObjectTracker - interceptorFuncs *interceptor.Funcs - typeConverters []managedfields.TypeConverter - returnManagedFields bool - isBuilt bool - - // indexes maps each GroupVersionKind (GVK) to the indexes registered for that GVK. - // The inner map maps from index name to IndexerFunc. - indexes map[schema.GroupVersionKind]map[string]client.IndexerFunc -} - -// WithScheme sets this builder's internal scheme. -// If not set, defaults to client-go's global scheme.Scheme. -func (f *ClientBuilder) WithScheme(scheme *runtime.Scheme) *ClientBuilder { - f.scheme = scheme - return f -} - -// WithRESTMapper sets this builder's restMapper. -// The restMapper is directly set as mapper in the Client. This can be used for example -// with a meta.DefaultRESTMapper to provide a static rest mapping. -// If not set, defaults to an empty meta.DefaultRESTMapper. -func (f *ClientBuilder) WithRESTMapper(restMapper meta.RESTMapper) *ClientBuilder { - f.restMapper = restMapper - return f -} - -// WithObjects can be optionally used to initialize this fake client with client.Object(s). -func (f *ClientBuilder) WithObjects(initObjs ...client.Object) *ClientBuilder { - f.initObject = append(f.initObject, initObjs...) - return f -} - -// WithLists can be optionally used to initialize this fake client with client.ObjectList(s). -func (f *ClientBuilder) WithLists(initLists ...client.ObjectList) *ClientBuilder { - f.initLists = append(f.initLists, initLists...) - return f -} - -// WithRuntimeObjects can be optionally used to initialize this fake client with runtime.Object(s). -func (f *ClientBuilder) WithRuntimeObjects(initRuntimeObjs ...runtime.Object) *ClientBuilder { - f.initRuntimeObjects = append(f.initRuntimeObjects, initRuntimeObjs...) - return f -} - -// WithObjectTracker can be optionally used to initialize this fake client with testing.ObjectTracker. -// Setting this is incompatible with setting WithTypeConverters, as they are a setting on the -// tracker. -func (f *ClientBuilder) WithObjectTracker(ot testing.ObjectTracker) *ClientBuilder { - f.objectTracker = ot - return f -} - -// WithIndex can be optionally used to register an index with name `field` and indexer `extractValue` -// for API objects of the same GroupVersionKind (GVK) as `obj` in the fake client. -// It can be invoked multiple times, both with objects of the same GVK or different ones. -// Invoking WithIndex twice with the same `field` and GVK (via `obj`) arguments will panic. -// WithIndex retrieves the GVK of `obj` using the scheme registered via WithScheme if -// WithScheme was previously invoked, the default scheme otherwise. -func (f *ClientBuilder) WithIndex(obj runtime.Object, field string, extractValue client.IndexerFunc) *ClientBuilder { - objScheme := f.scheme - if objScheme == nil { - objScheme = scheme.Scheme - } - - gvk, err := apiutil.GVKForObject(obj, objScheme) - if err != nil { - panic(err) - } - - // If this is the first index being registered, we initialize the map storing all the indexes. - if f.indexes == nil { - f.indexes = make(map[schema.GroupVersionKind]map[string]client.IndexerFunc) - } - - // If this is the first index being registered for the GroupVersionKind of `obj`, we initialize - // the map storing the indexes for that GroupVersionKind. - if f.indexes[gvk] == nil { - f.indexes[gvk] = make(map[string]client.IndexerFunc) - } - - if _, fieldAlreadyIndexed := f.indexes[gvk][field]; fieldAlreadyIndexed { - panic(fmt.Errorf("indexer conflict: field %s for GroupVersionKind %v is already indexed", - field, gvk)) - } - - f.indexes[gvk][field] = extractValue - - return f -} - -// WithStatusSubresource configures the passed object with a status subresource, which means -// calls to Update and Patch will not alter its status. -func (f *ClientBuilder) WithStatusSubresource(o ...client.Object) *ClientBuilder { - f.withStatusSubresource = append(f.withStatusSubresource, o...) - return f -} - -// WithInterceptorFuncs configures the client methods to be intercepted using the provided interceptor.Funcs. -func (f *ClientBuilder) WithInterceptorFuncs(interceptorFuncs interceptor.Funcs) *ClientBuilder { - f.interceptorFuncs = &interceptorFuncs - return f -} - -// WithTypeConverters sets the type converters for the fake client. The list is ordered and the first -// non-erroring converter is used. A type converter must be provided for all types the client is used -// for, otherwise it will error. -// -// This setting is incompatible with WithObjectTracker, as the type converters are a setting on the tracker. -// -// If unset, this defaults to: -// * clientgoapplyconfigurations.NewTypeConverter(scheme.Scheme), -// * managedfields.NewDeducedTypeConverter(), -// -// Be aware that the behavior of the `NewDeducedTypeConverter` might not match the behavior of the -// Kubernetes APIServer, it is recommended to provide a type converter for your types. TypeConverters -// are generated along with ApplyConfigurations. -func (f *ClientBuilder) WithTypeConverters(typeConverters ...managedfields.TypeConverter) *ClientBuilder { - f.typeConverters = append(f.typeConverters, typeConverters...) - return f -} - -// WithReturnManagedFields configures the fake client to return managedFields -// on objects. -func (f *ClientBuilder) WithReturnManagedFields() *ClientBuilder { - f.returnManagedFields = true - return f -} - -// Build builds and returns a new fake client. -func (f *ClientBuilder) Build() client.WithWatch { - if f.isBuilt { - panic("Build() must not be called multiple times when creating a ClientBuilder") - } - if f.scheme == nil { - f.scheme = scheme.Scheme - } - if f.restMapper == nil { - f.restMapper = meta.NewDefaultRESTMapper([]schema.GroupVersion{}) - } - - withStatusSubResource := sets.New(inTreeResourcesWithStatus()...) - for _, o := range f.withStatusSubresource { - gvk, err := apiutil.GVKForObject(o, f.scheme) - if err != nil { - panic(fmt.Errorf("failed to get gvk for object %T: %w", withStatusSubResource, err)) - } - withStatusSubResource.Insert(gvk) - } - - if f.objectTracker != nil && len(f.typeConverters) > 0 { - panic(errors.New("WithObjectTracker and WithTypeConverters are incompatible")) - } - - var usesFieldManagedObjectTracker bool - if f.objectTracker == nil { - if len(f.typeConverters) == 0 { - // Use corresponding scheme to ensure the converter error - // for types it can't handle. - clientGoScheme := runtime.NewScheme() - if err := scheme.AddToScheme(clientGoScheme); err != nil { - panic(fmt.Sprintf("failed to construct client-go scheme: %v", err)) - } - f.typeConverters = []managedfields.TypeConverter{ - clientgoapplyconfigurations.NewTypeConverter(clientGoScheme), - managedfields.NewDeducedTypeConverter(), - } - } - f.objectTracker = testing.NewFieldManagedObjectTracker( - f.scheme, - serializer.NewCodecFactory(f.scheme).UniversalDecoder(), - multiTypeConverter{upstream: f.typeConverters}, - ) - usesFieldManagedObjectTracker = true - } - tracker := versionedTracker{ - upstream: f.objectTracker, - scheme: f.scheme, - withStatusSubresource: withStatusSubResource, - usesFieldManagedObjectTracker: usesFieldManagedObjectTracker, - } - - for _, obj := range f.initObject { - if err := tracker.Add(obj); err != nil { - panic(fmt.Errorf("failed to add object %v to fake client: %w", obj, err)) - } - } - for _, obj := range f.initLists { - if err := tracker.Add(obj); err != nil { - panic(fmt.Errorf("failed to add list %v to fake client: %w", obj, err)) - } - } - for _, obj := range f.initRuntimeObjects { - if err := tracker.Add(obj); err != nil { - panic(fmt.Errorf("failed to add runtime object %v to fake client: %w", obj, err)) - } - } - - var result client.WithWatch = &fakeClient{ - tracker: tracker, - scheme: f.scheme, - restMapper: f.restMapper, - indexes: f.indexes, - withStatusSubresource: withStatusSubResource, - returnManagedFields: f.returnManagedFields, - } - - if f.interceptorFuncs != nil { - result = interceptor.NewClient(result, *f.interceptorFuncs) - } - - f.isBuilt = true - return result -} - -const trackerAddResourceVersion = "999" - -// convertFromUnstructuredIfNecessary will convert runtime.Unstructured for a GVK that is recognized -// by the schema into the whatever the schema produces with New() for said GVK. -// This is required because the tracker unconditionally saves on manipulations, but its List() implementation -// tries to assign whatever it finds into a ListType it gets from schema.New() - Thus we have to ensure -// we save as the very same type, otherwise subsequent List requests will fail. -func convertFromUnstructuredIfNecessary(s *runtime.Scheme, o runtime.Object) (runtime.Object, error) { - u, isUnstructured := o.(runtime.Unstructured) - if !isUnstructured { - return o, nil - } - gvk := o.GetObjectKind().GroupVersionKind() - if !s.Recognizes(gvk) { - return o, nil - } - - typed, err := s.New(gvk) - if err != nil { - return nil, fmt.Errorf("scheme recognizes %s but failed to produce an object for it: %w", gvk, err) - } - if _, isTypedUnstructured := typed.(runtime.Unstructured); isTypedUnstructured { - return o, nil - } - - unstructuredSerialized, err := json.Marshal(u) - if err != nil { - return nil, fmt.Errorf("failed to serialize %T: %w", unstructuredSerialized, err) - } - if err := json.Unmarshal(unstructuredSerialized, typed); err != nil { - return nil, fmt.Errorf("failed to unmarshal the content of %T into %T: %w", u, typed, err) - } - - return typed, nil -} - -func (c *fakeClient) Get(ctx context.Context, key client.ObjectKey, obj client.Object, opts ...client.GetOption) error { - if err := c.addToSchemeIfUnknownAndUnstructuredOrPartial(obj); err != nil { - return err - } - - c.schemeLock.RLock() - defer c.schemeLock.RUnlock() - gvr, err := getGVRFromObject(obj, c.scheme) - if err != nil { - return err - } - gvk, err := apiutil.GVKForObject(obj, c.scheme) - if err != nil { - return err - } - o, err := c.tracker.Get(gvr, key.Namespace, key.Name) - if err != nil { - return err - } - - ta, err := meta.TypeAccessor(o) - if err != nil { - return err - } - - // If the final object is unstructuctured, the json - // representation must contain GVK or the apimachinery - // json serializer will error out. - ta.SetAPIVersion(gvk.GroupVersion().String()) - ta.SetKind(gvk.Kind) - - j, err := json.Marshal(o) - if err != nil { - return err - } - zero(obj) - if err := json.Unmarshal(j, obj); err != nil { - return err - } - - if !c.returnManagedFields { - obj.SetManagedFields(nil) - } - - return ensureTypeMeta(obj, gvk) -} - -func (c *fakeClient) Watch(ctx context.Context, list client.ObjectList, opts ...client.ListOption) (watch.Interface, error) { - if err := c.addToSchemeIfUnknownAndUnstructuredOrPartial(list); err != nil { - return nil, err - } - - c.schemeLock.RLock() - defer c.schemeLock.RUnlock() - - gvk, err := apiutil.GVKForObject(list, c.scheme) - if err != nil { - return nil, err - } - - gvk.Kind = strings.TrimSuffix(gvk.Kind, "List") - - listOpts := client.ListOptions{} - listOpts.ApplyOptions(opts) - - gvr, _ := meta.UnsafeGuessKindToResource(gvk) - return c.tracker.Watch(gvr, listOpts.Namespace) -} - -func (c *fakeClient) List(ctx context.Context, obj client.ObjectList, opts ...client.ListOption) error { - if err := c.addToSchemeIfUnknownAndUnstructuredOrPartial(obj); err != nil { - return err - } - - c.schemeLock.RLock() - defer c.schemeLock.RUnlock() - gvk, err := apiutil.GVKForObject(obj, c.scheme) - if err != nil { - return err - } - - originalGVK := gvk - gvk.Kind = strings.TrimSuffix(gvk.Kind, "List") - listGVK := gvk - listGVK.Kind += "List" - - if _, isUnstructuredList := obj.(runtime.Unstructured); isUnstructuredList && !c.scheme.Recognizes(listGVK) { - // We need to register the ListKind with UnstructuredList: - // https://github.com/kubernetes/kubernetes/blob/7b2776b89fb1be28d4e9203bdeec079be903c103/staging/src/k8s.io/client-go/dynamic/fake/simple.go#L44-L51 - c.schemeLock.RUnlock() - c.schemeLock.Lock() - c.scheme.AddKnownTypeWithName(gvk.GroupVersion().WithKind(gvk.Kind+"List"), &unstructured.UnstructuredList{}) - c.schemeLock.Unlock() - c.schemeLock.RLock() - } - - listOpts := client.ListOptions{} - listOpts.ApplyOptions(opts) - - gvr, _ := meta.UnsafeGuessKindToResource(gvk) - o, err := c.tracker.List(gvr, gvk, listOpts.Namespace) - if err != nil { - return err - } - - j, err := json.Marshal(o) - if err != nil { - return err - } - zero(obj) - if err := ensureTypeMeta(obj, originalGVK); err != nil { - return err - } - objCopy := obj.DeepCopyObject().(client.ObjectList) - if err := json.Unmarshal(j, objCopy); err != nil { - return err - } - - objs, err := meta.ExtractList(objCopy) - if err != nil { - return err - } - - for _, o := range objs { - if err := ensureTypeMeta(o, gvk); err != nil { - return err - } - - if !c.returnManagedFields { - o.(metav1.Object).SetManagedFields(nil) - } - } - - if listOpts.LabelSelector == nil && listOpts.FieldSelector == nil { - return meta.SetList(obj, objs) - } - - // If we're here, either a label or field selector are specified (or both), so before we return - // the list we must filter it. If both selectors are set, they are ANDed. - filteredList, err := c.filterList(objs, gvk, listOpts.LabelSelector, listOpts.FieldSelector) - if err != nil { - return err - } - - return meta.SetList(obj, filteredList) -} - -func (c *fakeClient) filterList(list []runtime.Object, gvk schema.GroupVersionKind, ls labels.Selector, fs fields.Selector) ([]runtime.Object, error) { - // Filter the objects with the label selector - filteredList := list - if ls != nil { - objsFilteredByLabel, err := objectutil.FilterWithLabels(list, ls) - if err != nil { - return nil, err - } - filteredList = objsFilteredByLabel - } - - // Filter the result of the previous pass with the field selector - if fs != nil { - objsFilteredByField, err := c.filterWithFields(filteredList, gvk, fs) - if err != nil { - return nil, err - } - filteredList = objsFilteredByField - } - - return filteredList, nil -} - -func (c *fakeClient) filterWithFields(list []runtime.Object, gvk schema.GroupVersionKind, fs fields.Selector) ([]runtime.Object, error) { - requiresExact := selector.RequiresExactMatch(fs) - if !requiresExact { - return nil, fmt.Errorf(`field selector %s is not in one of the two supported forms "key==val" or "key=val"`, fs) - } - - c.indexesLock.RLock() - defer c.indexesLock.RUnlock() - // Field selection is mimicked via indexes, so there's no sane answer this function can give - // if there are no indexes registered for the GroupVersionKind of the objects in the list. - indexes := c.indexes[gvk] - for _, req := range fs.Requirements() { - if len(indexes) == 0 || indexes[req.Field] == nil { - return nil, fmt.Errorf("List on GroupVersionKind %v specifies selector on field %s, but no "+ - "index with name %s has been registered for GroupVersionKind %v", gvk, req.Field, req.Field, gvk) - } - } - - filteredList := make([]runtime.Object, 0, len(list)) - for _, obj := range list { - matches := true - for _, req := range fs.Requirements() { - indexExtractor := indexes[req.Field] - if !c.objMatchesFieldSelector(obj, indexExtractor, req.Value) { - matches = false - break - } - } - if matches { - filteredList = append(filteredList, obj) - } - } - return filteredList, nil -} - -func (c *fakeClient) objMatchesFieldSelector(o runtime.Object, extractIndex client.IndexerFunc, val string) bool { - obj, isClientObject := o.(client.Object) - if !isClientObject { - panic(fmt.Errorf("expected object %v to be of type client.Object, but it's not", o)) - } - - return slices.Contains(extractIndex(obj), val) -} - -func (c *fakeClient) Scheme() *runtime.Scheme { - return c.scheme -} - -func (c *fakeClient) RESTMapper() meta.RESTMapper { - return c.restMapper -} - -// GroupVersionKindFor returns the GroupVersionKind for the given object. -func (c *fakeClient) GroupVersionKindFor(obj runtime.Object) (schema.GroupVersionKind, error) { - return apiutil.GVKForObject(obj, c.scheme) -} - -// IsObjectNamespaced returns true if the GroupVersionKind of the object is namespaced. -func (c *fakeClient) IsObjectNamespaced(obj runtime.Object) (bool, error) { - return apiutil.IsObjectNamespaced(obj, c.scheme, c.restMapper) -} - -func (c *fakeClient) Create(ctx context.Context, obj client.Object, opts ...client.CreateOption) error { - if err := c.addToSchemeIfUnknownAndUnstructuredOrPartial(obj); err != nil { - return err - } - - c.schemeLock.RLock() - defer c.schemeLock.RUnlock() - - createOptions := &client.CreateOptions{} - createOptions.ApplyOptions(opts) - - if slices.Contains(createOptions.DryRun, metav1.DryRunAll) { - return nil - } - - gvr, err := getGVRFromObject(obj, c.scheme) - if err != nil { - return err - } - accessor, err := meta.Accessor(obj) - if err != nil { - return err - } - - if accessor.GetName() == "" && accessor.GetGenerateName() != "" { - base := accessor.GetGenerateName() - if len(base) > maxGeneratedNameLength { - base = base[:maxGeneratedNameLength] - } - accessor.SetName(fmt.Sprintf("%s%s", base, utilrand.String(randomLength))) - } - // Ignore attempts to set deletion timestamp - if !accessor.GetDeletionTimestamp().IsZero() { - accessor.SetDeletionTimestamp(nil) - } - - gvk, err := apiutil.GVKForObject(obj, c.scheme) - if err != nil { - return err - } - - c.trackerWriteLock.Lock() - defer c.trackerWriteLock.Unlock() - - if err := c.tracker.Create(gvr, obj, accessor.GetNamespace(), *createOptions.AsCreateOptions()); err != nil { - // The managed fields tracker sets gvk even on errors - _ = ensureTypeMeta(obj, gvk) - return err - } - - if !c.returnManagedFields { - obj.SetManagedFields(nil) - } - - return ensureTypeMeta(obj, gvk) -} - -func (c *fakeClient) Delete(ctx context.Context, obj client.Object, opts ...client.DeleteOption) error { - if err := c.addToSchemeIfUnknownAndUnstructuredOrPartial(obj); err != nil { - return err - } - - c.schemeLock.RLock() - defer c.schemeLock.RUnlock() - - gvr, err := getGVRFromObject(obj, c.scheme) - if err != nil { - return err - } - accessor, err := meta.Accessor(obj) - if err != nil { - return err - } - delOptions := client.DeleteOptions{} - delOptions.ApplyOptions(opts) - - if slices.Contains(delOptions.DryRun, metav1.DryRunAll) { - return nil - } - - c.trackerWriteLock.Lock() - defer c.trackerWriteLock.Unlock() - // Check the ResourceVersion if that Precondition was specified. - if delOptions.Preconditions != nil && delOptions.Preconditions.ResourceVersion != nil { - name := accessor.GetName() - dbObj, err := c.tracker.Get(gvr, accessor.GetNamespace(), name) - if err != nil { - return err - } - oldAccessor, err := meta.Accessor(dbObj) - if err != nil { - return err - } - actualRV := oldAccessor.GetResourceVersion() - expectRV := *delOptions.Preconditions.ResourceVersion - if actualRV != expectRV { - msg := fmt.Sprintf( - "the ResourceVersion in the precondition (%s) does not match the ResourceVersion in record (%s). "+ - "The object might have been modified", - expectRV, actualRV) - return apierrors.NewConflict(gvr.GroupResource(), name, errors.New(msg)) - } - } - - return c.deleteObjectLocked(gvr, accessor) -} - -func (c *fakeClient) DeleteAllOf(ctx context.Context, obj client.Object, opts ...client.DeleteAllOfOption) error { - if err := c.addToSchemeIfUnknownAndUnstructuredOrPartial(obj); err != nil { - return err - } - - c.schemeLock.RLock() - defer c.schemeLock.RUnlock() - - gvk, err := apiutil.GVKForObject(obj, c.scheme) - if err != nil { - return err - } - - dcOptions := client.DeleteAllOfOptions{} - dcOptions.ApplyOptions(opts) - - if slices.Contains(dcOptions.DryRun, metav1.DryRunAll) { - return nil - } - - c.trackerWriteLock.Lock() - defer c.trackerWriteLock.Unlock() - - gvr, _ := meta.UnsafeGuessKindToResource(gvk) - o, err := c.tracker.List(gvr, gvk, dcOptions.Namespace) - if err != nil { - return err - } - - objs, err := meta.ExtractList(o) - if err != nil { - return err - } - filteredObjs, err := objectutil.FilterWithLabels(objs, dcOptions.LabelSelector) - if err != nil { - return err - } - for _, o := range filteredObjs { - accessor, err := meta.Accessor(o) - if err != nil { - return err - } - err = c.deleteObjectLocked(gvr, accessor) - if err != nil { - return err - } - } - return nil -} - -func (c *fakeClient) Update(ctx context.Context, obj client.Object, opts ...client.UpdateOption) error { - return c.update(obj, false, opts...) -} - -func (c *fakeClient) update(obj client.Object, isStatus bool, opts ...client.UpdateOption) error { - if err := c.addToSchemeIfUnknownAndUnstructuredOrPartial(obj); err != nil { - return err - } - - c.schemeLock.RLock() - defer c.schemeLock.RUnlock() - - updateOptions := &client.UpdateOptions{} - updateOptions.ApplyOptions(opts) - - if slices.Contains(updateOptions.DryRun, metav1.DryRunAll) { - return nil - } - - gvr, err := getGVRFromObject(obj, c.scheme) - if err != nil { - return err - } - gvk, err := apiutil.GVKForObject(obj, c.scheme) - if err != nil { - return err - } - accessor, err := meta.Accessor(obj) - if err != nil { - return err - } - - c.trackerWriteLock.Lock() - defer c.trackerWriteLock.Unlock() - - // Retain managed fields - // We can ignore all errors here since update will fail if we encounter an error. - obj.SetManagedFields(nil) - current, _ := c.tracker.Get(gvr, accessor.GetNamespace(), accessor.GetName()) - if currentMetaObj, ok := current.(metav1.Object); ok { - obj.SetManagedFields(currentMetaObj.GetManagedFields()) - } - - if err := c.tracker.update(gvr, obj, accessor.GetNamespace(), isStatus, false, *updateOptions.AsUpdateOptions()); err != nil { - return err - } - - if !c.returnManagedFields { - obj.SetManagedFields(nil) - } - - return ensureTypeMeta(obj, gvk) -} - -func (c *fakeClient) Patch(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.PatchOption) error { - return c.patch(obj, patch, opts...) -} - -func (c *fakeClient) Apply(ctx context.Context, obj runtime.ApplyConfiguration, opts ...client.ApplyOption) error { - applyOpts := &client.ApplyOptions{} - applyOpts.ApplyOptions(opts) - - data, err := json.Marshal(obj) - if err != nil { - return fmt.Errorf("failed to marshal apply configuration: %w", err) - } - - u := &unstructured.Unstructured{} - if err := json.Unmarshal(data, u); err != nil { - return fmt.Errorf("failed to unmarshal apply configuration: %w", err) - } - - applyPatch := &fakeApplyPatch{} - - patchOpts := &client.PatchOptions{} - patchOpts.Raw = applyOpts.AsPatchOptions() - - if err := c.patch(u, applyPatch, patchOpts); err != nil { - return err - } - - acJSON, err := json.Marshal(u) - if err != nil { - return fmt.Errorf("failed to marshal patched object: %w", err) - } - - // We have to zero the object in case it contained a status and there is a - // status subresource. If its the private `unstructuredApplyConfiguration` - // we can not zero all of it, as that will cause the embedded Unstructured - // to be nil which then causes a NPD in the json.Unmarshal below. - switch reflect.TypeOf(obj).String() { - case "*client.unstructuredApplyConfiguration": - zero(reflect.ValueOf(obj).Elem().FieldByName("Unstructured").Interface()) - default: - zero(obj) - } - if err := json.Unmarshal(acJSON, obj); err != nil { - return fmt.Errorf("failed to unmarshal patched object: %w", err) - } - - return nil -} - -type fakeApplyPatch struct{} - -func (p *fakeApplyPatch) Type() types.PatchType { - return types.ApplyPatchType -} - -func (p *fakeApplyPatch) Data(obj client.Object) ([]byte, error) { - return json.Marshal(obj) -} - -func (c *fakeClient) patch(obj client.Object, patch client.Patch, opts ...client.PatchOption) error { - if err := c.addToSchemeIfUnknownAndUnstructuredOrPartial(obj); err != nil { - return err - } - - patchOptions := &client.PatchOptions{} - patchOptions.ApplyOptions(opts) - - if errs := validation.ValidatePatchOptions(patchOptions.AsPatchOptions(), patch.Type()); len(errs) > 0 { - return apierrors.NewInvalid(schema.GroupKind{Group: "meta.k8s.io", Kind: "PatchOptions"}, "", errs) - } - - c.schemeLock.RLock() - defer c.schemeLock.RUnlock() - - if slices.Contains(patchOptions.DryRun, metav1.DryRunAll) { - return nil - } - - gvr, err := getGVRFromObject(obj, c.scheme) - if err != nil { - return err - } - gvk, err := apiutil.GVKForObject(obj, c.scheme) - if err != nil { - return err - } - accessor, err := meta.Accessor(obj) - if err != nil { - return err - } - - var isApplyCreate bool - c.trackerWriteLock.Lock() - defer c.trackerWriteLock.Unlock() - oldObj, err := c.tracker.Get(gvr, accessor.GetNamespace(), accessor.GetName()) - if err != nil { - if !apierrors.IsNotFound(err) || patch.Type() != types.ApplyPatchType { - return err - } - oldObj = &unstructured.Unstructured{} - isApplyCreate = true - } - oldAccessor, err := meta.Accessor(oldObj) - if err != nil { - return err - } - - if patch.Type() == types.ApplyPatchType { - if isApplyCreate { - // Overwrite it unconditionally, this matches the apiserver behavior - // which allows to set it on create, but will then ignore it. - obj.SetResourceVersion("1") - } else { - // SSA deletionTimestamp updates are silently ignored - obj.SetDeletionTimestamp(oldAccessor.GetDeletionTimestamp()) - } - } - - data, err := patch.Data(obj) - if err != nil { - return err - } - - action := testing.NewPatchActionWithOptions( - gvr, - accessor.GetNamespace(), - accessor.GetName(), - patch.Type(), - data, - *patchOptions.AsPatchOptions(), - ) - - // Apply is implemented in the tracker and calling it has side-effects - // such as bumping RV and updating managedFields timestamps, hence we - // can not dry-run it. Luckily, the only validation we use it for - // doesn't apply to SSA - Creating objects with non-nil deletionTimestamp - // through SSA is possible and updating the deletionTimestamp is valid, - // but has no effect. - if patch.Type() != types.ApplyPatchType { - // Apply patch without updating object. - // To remain in accordance with the behavior of k8s api behavior, - // a patch must not allow for changes to the deletionTimestamp of an object. - // The reaction() function applies the patch to the object and calls Update(), - // whereas dryPatch() replicates this behavior but skips the call to Update(). - // This ensures that the patch may be rejected if a deletionTimestamp is modified, prior - // to updating the object. - o, err := dryPatch(action, c.tracker) - if err != nil { - return err - } - newObj, err := meta.Accessor(o) - if err != nil { - return err - } - - // Validate that deletionTimestamp has not been changed - if !deletionTimestampEqual(newObj, oldAccessor) { - return fmt.Errorf("rejected patch, metadata.deletionTimestamp immutable") - } - } - - reaction := testing.ObjectReaction(c.tracker) - handled, o, err := reaction(action) - if err != nil { - // The reaction calls tracker.Get after tracker.Apply to return the object, - // but we may have deleted it in tracker.Apply if there was no finalizer - // left. - if apierrors.IsNotFound(err) && - patch.Type() == types.ApplyPatchType && - oldAccessor.GetDeletionTimestamp() != nil && - len(obj.GetFinalizers()) == 0 { - return nil - } - return err - } - if !handled { - panic("tracker could not handle patch method") - } - - ta, err := meta.TypeAccessor(o) - if err != nil { - return err - } - - ta.SetAPIVersion(gvk.GroupVersion().String()) - ta.SetKind(gvk.Kind) - - j, err := json.Marshal(o) - if err != nil { - return err - } - zero(obj) - if err := json.Unmarshal(j, obj); err != nil { - return err - } - - if !c.returnManagedFields { - obj.SetManagedFields(nil) - } - - return ensureTypeMeta(obj, gvk) -} - -// Applying a patch results in a deletionTimestamp that is truncated to the nearest second. -// Check that the diff between a new and old deletion timestamp is within a reasonable threshold -// to be considered unchanged. -func deletionTimestampEqual(newObj metav1.Object, obj metav1.Object) bool { - newTime := newObj.GetDeletionTimestamp() - oldTime := obj.GetDeletionTimestamp() - - if newTime == nil || oldTime == nil { - return newTime == oldTime - } - return newTime.Time.Sub(oldTime.Time).Abs() < time.Second -} - -// The behavior of applying the patch is pulled out into dryPatch(), -// which applies the patch and returns an object, but does not Update() the object. -// This function returns a patched runtime object that may then be validated before a call to Update() is executed. -// This results in some code duplication, but was found to be a cleaner alternative than unmarshalling and introspecting the patch data -// and easier than refactoring the k8s client-go method upstream. -// Duplicate of upstream: https://github.com/kubernetes/client-go/blob/783d0d33626e59d55d52bfd7696b775851f92107/testing/fixture.go#L146-L194 -func dryPatch(action testing.PatchActionImpl, tracker testing.ObjectTracker) (runtime.Object, error) { - ns := action.GetNamespace() - gvr := action.GetResource() - - obj, err := tracker.Get(gvr, ns, action.GetName()) - if err != nil { - if apierrors.IsNotFound(err) && action.GetPatchType() == types.ApplyPatchType { - return &unstructured.Unstructured{}, nil - } - return nil, err - } - - old, err := json.Marshal(obj) - if err != nil { - return nil, err - } - - // reset the object in preparation to unmarshal, since unmarshal does not guarantee that fields - // in obj that are removed by patch are cleared - value := reflect.ValueOf(obj) - value.Elem().Set(reflect.New(value.Type().Elem()).Elem()) - - switch action.GetPatchType() { - case types.JSONPatchType: - patch, err := jsonpatch.DecodePatch(action.GetPatch()) - if err != nil { - return nil, err - } - modified, err := patch.Apply(old) - if err != nil { - return nil, err - } - - if err = json.Unmarshal(modified, obj); err != nil { - return nil, err - } - case types.MergePatchType: - modified, err := jsonpatch.MergePatch(old, action.GetPatch()) - if err != nil { - return nil, err - } - - if err := json.Unmarshal(modified, obj); err != nil { - return nil, err - } - case types.StrategicMergePatchType: - mergedByte, err := strategicpatch.StrategicMergePatch(old, action.GetPatch(), obj) - if err != nil { - return nil, err - } - if err = json.Unmarshal(mergedByte, obj); err != nil { - return nil, err - } - case types.ApplyCBORPatchType: - return nil, errors.New("apply CBOR patches are not supported in the fake client") - case types.ApplyPatchType: - return nil, errors.New("bug in controller-runtime: should not end up in dryPatch for SSA") - default: - return nil, fmt.Errorf("%s PatchType is not supported", action.GetPatchType()) - } - return obj, nil -} - -// copyStatusFrom copies the status from old into new -func copyStatusFrom(old, n runtime.Object) error { - oldMapStringAny, err := toMapStringAny(old) - if err != nil { - return fmt.Errorf("failed to convert old to *unstructured.Unstructured: %w", err) - } - newMapStringAny, err := toMapStringAny(n) - if err != nil { - return fmt.Errorf("failed to convert new to *unststructured.Unstructured: %w", err) - } - - newMapStringAny["status"] = oldMapStringAny["status"] - - if err := fromMapStringAny(newMapStringAny, n); err != nil { - return fmt.Errorf("failed to convert back from map[string]any: %w", err) - } - - return nil -} - -// copyFrom copies from old into new -func copyFrom(old, n runtime.Object) error { - oldMapStringAny, err := toMapStringAny(old) - if err != nil { - return fmt.Errorf("failed to convert old to *unstructured.Unstructured: %w", err) - } - if err := fromMapStringAny(oldMapStringAny, n); err != nil { - return fmt.Errorf("failed to convert back from map[string]any: %w", err) - } - - return nil -} - -func toMapStringAny(obj runtime.Object) (map[string]any, error) { - if unstructured, isUnstructured := obj.(*unstructured.Unstructured); isUnstructured { - return unstructured.Object, nil - } - - serialized, err := json.Marshal(obj) - if err != nil { - return nil, err - } - - u := map[string]any{} - return u, json.Unmarshal(serialized, &u) -} - -func fromMapStringAny(u map[string]any, target runtime.Object) error { - if targetUnstructured, isUnstructured := target.(*unstructured.Unstructured); isUnstructured { - targetUnstructured.Object = u - return nil - } - - serialized, err := json.Marshal(u) - if err != nil { - return fmt.Errorf("failed to serialize: %w", err) - } - - zero(target) - if err := json.Unmarshal(serialized, &target); err != nil { - return fmt.Errorf("failed to deserialize: %w", err) - } - - return nil -} - -func (c *fakeClient) Status() client.SubResourceWriter { - return c.SubResource("status") -} - -func (c *fakeClient) SubResource(subResource string) client.SubResourceClient { - return &fakeSubResourceClient{client: c, subResource: subResource} -} - -func (c *fakeClient) deleteObjectLocked(gvr schema.GroupVersionResource, accessor metav1.Object) error { - old, err := c.tracker.Get(gvr, accessor.GetNamespace(), accessor.GetName()) - if err == nil { - oldAccessor, err := meta.Accessor(old) - if err == nil { - if len(oldAccessor.GetFinalizers()) > 0 { - now := metav1.Now() - oldAccessor.SetDeletionTimestamp(&now) - // Call update directly with mutability parameter set to true to allow - // changes to deletionTimestamp - return c.tracker.update(gvr, old, accessor.GetNamespace(), false, true, metav1.UpdateOptions{}) - } - } - } - - // TODO: implement propagation - return c.tracker.Delete(gvr, accessor.GetNamespace(), accessor.GetName()) -} - -func getGVRFromObject(obj runtime.Object, scheme *runtime.Scheme) (schema.GroupVersionResource, error) { - gvk, err := apiutil.GVKForObject(obj, scheme) - if err != nil { - return schema.GroupVersionResource{}, err - } - gvr, _ := meta.UnsafeGuessKindToResource(gvk) - return gvr, nil -} - -type fakeSubResourceClient struct { - client *fakeClient - subResource string -} - -func (sw *fakeSubResourceClient) Get(ctx context.Context, obj, subResource client.Object, opts ...client.SubResourceGetOption) error { - switch sw.subResource { - case subResourceScale: - // Actual client looks up resource, then extracts the scale sub-resource: - // https://github.com/kubernetes/kubernetes/blob/fb6bbc9781d11a87688c398778525c4e1dcb0f08/pkg/registry/apps/deployment/storage/storage.go#L307 - if err := sw.client.Get(ctx, client.ObjectKeyFromObject(obj), obj); err != nil { - return err - } - scale, isScale := subResource.(*autoscalingv1.Scale) - if !isScale { - return apierrors.NewBadRequest(fmt.Sprintf("expected Scale, got %T", subResource)) - } - scaleOut, err := extractScale(obj) - if err != nil { - return err - } - *scale = *scaleOut - return nil - default: - return fmt.Errorf("fakeSubResourceClient does not support get for %s", sw.subResource) - } -} - -func (sw *fakeSubResourceClient) Create(ctx context.Context, obj client.Object, subResource client.Object, opts ...client.SubResourceCreateOption) error { - switch sw.subResource { - case "eviction": - _, isEviction := subResource.(*policyv1beta1.Eviction) - if !isEviction { - _, isEviction = subResource.(*policyv1.Eviction) - } - if !isEviction { - return apierrors.NewBadRequest(fmt.Sprintf("got invalid type %T, expected Eviction", subResource)) - } - if _, isPod := obj.(*corev1.Pod); !isPod { - return apierrors.NewNotFound(schema.GroupResource{}, "") - } - - return sw.client.Delete(ctx, obj) - case "token": - tokenRequest, isTokenRequest := subResource.(*authenticationv1.TokenRequest) - if !isTokenRequest { - return apierrors.NewBadRequest(fmt.Sprintf("got invalid type %T, expected TokenRequest", subResource)) - } - if _, isServiceAccount := obj.(*corev1.ServiceAccount); !isServiceAccount { - return apierrors.NewNotFound(schema.GroupResource{}, "") - } - - tokenRequest.Status.Token = "fake-token" - tokenRequest.Status.ExpirationTimestamp = metav1.Date(6041, 1, 1, 0, 0, 0, 0, time.UTC) - - return sw.client.Get(ctx, client.ObjectKeyFromObject(obj), obj) - default: - return fmt.Errorf("fakeSubResourceWriter does not support create for %s", sw.subResource) - } -} - -func (sw *fakeSubResourceClient) Update(ctx context.Context, obj client.Object, opts ...client.SubResourceUpdateOption) error { - updateOptions := client.SubResourceUpdateOptions{} - updateOptions.ApplyOptions(opts) - - switch sw.subResource { - case subResourceScale: - if err := sw.client.Get(ctx, client.ObjectKeyFromObject(obj), obj.DeepCopyObject().(client.Object)); err != nil { - return err - } - if updateOptions.SubResourceBody == nil { - return apierrors.NewBadRequest("missing SubResourceBody") - } - - scale, isScale := updateOptions.SubResourceBody.(*autoscalingv1.Scale) - if !isScale { - return apierrors.NewBadRequest(fmt.Sprintf("expected Scale, got %T", updateOptions.SubResourceBody)) - } - if err := applyScale(obj, scale); err != nil { - return err - } - return sw.client.update(obj, false, &updateOptions.UpdateOptions) - default: - body := obj - if updateOptions.SubResourceBody != nil { - body = updateOptions.SubResourceBody - } - return sw.client.update(body, true, &updateOptions.UpdateOptions) - } -} - -func (sw *fakeSubResourceClient) Patch(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.SubResourcePatchOption) error { - patchOptions := client.SubResourcePatchOptions{} - patchOptions.ApplyOptions(opts) - - body := obj - if patchOptions.SubResourceBody != nil { - body = patchOptions.SubResourceBody - } - - // this is necessary to identify that last call was made for status patch, through stack trace. - if sw.subResource == "status" { - return sw.statusPatch(body, patch, patchOptions) - } - - return sw.client.patch(body, patch, &patchOptions.PatchOptions) -} - -func (sw *fakeSubResourceClient) statusPatch(body client.Object, patch client.Patch, patchOptions client.SubResourcePatchOptions) error { - return sw.client.patch(body, patch, &patchOptions.PatchOptions) -} - -func (sw *fakeSubResourceClient) Apply(ctx context.Context, obj runtime.ApplyConfiguration, opts ...client.SubResourceApplyOption) error { - if sw.subResource != "status" { - return errors.New("fakeSubResourceClient currently only supports Apply for status subresource") - } - - applyOpts := &client.SubResourceApplyOptions{} - applyOpts.ApplyOpts(opts) - - data, err := json.Marshal(obj) - if err != nil { - return fmt.Errorf("failed to marshal apply configuration: %w", err) - } - - u := &unstructured.Unstructured{} - if err := json.Unmarshal(data, u); err != nil { - return fmt.Errorf("failed to unmarshal apply configuration: %w", err) - } - - patchOpts := &client.SubResourcePatchOptions{} - patchOpts.Raw = applyOpts.AsPatchOptions() - - if applyOpts.SubResourceBody != nil { - subResourceBodySerialized, err := json.Marshal(applyOpts.SubResourceBody) - if err != nil { - return fmt.Errorf("failed to serialize subresource body: %w", err) - } - subResourceBody := &unstructured.Unstructured{} - if err := json.Unmarshal(subResourceBodySerialized, subResourceBody); err != nil { - return fmt.Errorf("failed to unmarshal subresource body: %w", err) - } - patchOpts.SubResourceBody = subResourceBody - } - - return sw.Patch(ctx, u, &fakeApplyPatch{}, patchOpts) -} - -func allowsUnconditionalUpdate(gvk schema.GroupVersionKind) bool { - switch gvk.Group { - case "apps": - switch gvk.Kind { - case "ControllerRevision", "DaemonSet", "Deployment", "ReplicaSet", "StatefulSet": - return true - } - case "autoscaling": - switch gvk.Kind { - case "HorizontalPodAutoscaler": - return true - } - case "batch": - switch gvk.Kind { - case "CronJob", "Job": - return true - } - case "certificates": - switch gvk.Kind { - case "Certificates": - return true - } - case "flowcontrol": - switch gvk.Kind { - case "FlowSchema", "PriorityLevelConfiguration": - return true - } - case "networking": - switch gvk.Kind { - case "Ingress", "IngressClass", "NetworkPolicy": - return true - } - case "policy": - switch gvk.Kind { - case "PodSecurityPolicy": - return true - } - case "rbac.authorization.k8s.io": - switch gvk.Kind { - case "ClusterRole", "ClusterRoleBinding", "Role", "RoleBinding": - return true - } - case "scheduling": - switch gvk.Kind { - case "PriorityClass": - return true - } - case "settings": - switch gvk.Kind { - case "PodPreset": - return true - } - case "storage": - switch gvk.Kind { - case "StorageClass": - return true - } - case "": - switch gvk.Kind { - case "ConfigMap", "Endpoint", "Event", "LimitRange", "Namespace", "Node", - "PersistentVolume", "PersistentVolumeClaim", "Pod", "PodTemplate", - "ReplicationController", "ResourceQuota", "Secret", "Service", - "ServiceAccount", "EndpointSlice": - return true - } - } - - return false -} - -func allowsCreateOnUpdate(gvk schema.GroupVersionKind) bool { - switch gvk.Group { - case "coordination": - switch gvk.Kind { - case "Lease": - return true - } - case "node": - switch gvk.Kind { - case "RuntimeClass": - return true - } - case "rbac": - switch gvk.Kind { - case "ClusterRole", "ClusterRoleBinding", "Role", "RoleBinding": - return true - } - case "": - switch gvk.Kind { - case "Endpoint", "Event", "LimitRange", "Service": - return true - } - } - - return false -} - -func inTreeResourcesWithStatus() []schema.GroupVersionKind { - return []schema.GroupVersionKind{ - {Version: "v1", Kind: "Namespace"}, - {Version: "v1", Kind: "Node"}, - {Version: "v1", Kind: "PersistentVolumeClaim"}, - {Version: "v1", Kind: "PersistentVolume"}, - {Version: "v1", Kind: "Pod"}, - {Version: "v1", Kind: "ReplicationController"}, - {Version: "v1", Kind: "Service"}, - - {Group: "apps", Version: "v1", Kind: "Deployment"}, - {Group: "apps", Version: "v1", Kind: "DaemonSet"}, - {Group: "apps", Version: "v1", Kind: "ReplicaSet"}, - {Group: "apps", Version: "v1", Kind: "StatefulSet"}, - - {Group: "autoscaling", Version: "v1", Kind: "HorizontalPodAutoscaler"}, - - {Group: "batch", Version: "v1", Kind: "CronJob"}, - {Group: "batch", Version: "v1", Kind: "Job"}, - - {Group: "certificates.k8s.io", Version: "v1", Kind: "CertificateSigningRequest"}, - - {Group: "networking.k8s.io", Version: "v1", Kind: "Ingress"}, - {Group: "networking.k8s.io", Version: "v1", Kind: "NetworkPolicy"}, - - {Group: "policy", Version: "v1", Kind: "PodDisruptionBudget"}, - - {Group: "storage.k8s.io", Version: "v1", Kind: "VolumeAttachment"}, - - {Group: "apiextensions.k8s.io", Version: "v1", Kind: "CustomResourceDefinition"}, - - {Group: "flowcontrol.apiserver.k8s.io", Version: "v1beta2", Kind: "FlowSchema"}, - {Group: "flowcontrol.apiserver.k8s.io", Version: "v1beta2", Kind: "PriorityLevelConfiguration"}, - {Group: "flowcontrol.apiserver.k8s.io", Version: "v1", Kind: "FlowSchema"}, - {Group: "flowcontrol.apiserver.k8s.io", Version: "v1", Kind: "PriorityLevelConfiguration"}, - } -} - -// zero zeros the value of a pointer. -func zero(x any) { - if x == nil { - return - } - res := reflect.ValueOf(x).Elem() - res.Set(reflect.Zero(res.Type())) -} - -// getSingleOrZeroOptions returns the single options value in the slice, its -// zero value if the slice is empty, or an error if the slice contains more than -// one option value. -func getSingleOrZeroOptions[T any](opts []T) (opt T, err error) { - switch len(opts) { - case 0: - case 1: - opt = opts[0] - default: - err = fmt.Errorf("expected single or no options value, got %d values", len(opts)) - } - return -} - -func extractScale(obj client.Object) (*autoscalingv1.Scale, error) { - switch obj := obj.(type) { - case *appsv1.Deployment: - var replicas int32 = 1 - if obj.Spec.Replicas != nil { - replicas = *obj.Spec.Replicas - } - var selector string - if obj.Spec.Selector != nil { - selector = obj.Spec.Selector.String() - } - return &autoscalingv1.Scale{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: obj.Namespace, - Name: obj.Name, - UID: obj.UID, - ResourceVersion: obj.ResourceVersion, - CreationTimestamp: obj.CreationTimestamp, - }, - Spec: autoscalingv1.ScaleSpec{ - Replicas: replicas, - }, - Status: autoscalingv1.ScaleStatus{ - Replicas: obj.Status.Replicas, - Selector: selector, - }, - }, nil - case *appsv1.ReplicaSet: - var replicas int32 = 1 - if obj.Spec.Replicas != nil { - replicas = *obj.Spec.Replicas - } - var selector string - if obj.Spec.Selector != nil { - selector = obj.Spec.Selector.String() - } - return &autoscalingv1.Scale{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: obj.Namespace, - Name: obj.Name, - UID: obj.UID, - ResourceVersion: obj.ResourceVersion, - CreationTimestamp: obj.CreationTimestamp, - }, - Spec: autoscalingv1.ScaleSpec{ - Replicas: replicas, - }, - Status: autoscalingv1.ScaleStatus{ - Replicas: obj.Status.Replicas, - Selector: selector, - }, - }, nil - case *corev1.ReplicationController: - var replicas int32 = 1 - if obj.Spec.Replicas != nil { - replicas = *obj.Spec.Replicas - } - return &autoscalingv1.Scale{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: obj.Namespace, - Name: obj.Name, - UID: obj.UID, - ResourceVersion: obj.ResourceVersion, - CreationTimestamp: obj.CreationTimestamp, - }, - Spec: autoscalingv1.ScaleSpec{ - Replicas: replicas, - }, - Status: autoscalingv1.ScaleStatus{ - Replicas: obj.Status.Replicas, - Selector: labels.Set(obj.Spec.Selector).String(), - }, - }, nil - case *appsv1.StatefulSet: - var replicas int32 = 1 - if obj.Spec.Replicas != nil { - replicas = *obj.Spec.Replicas - } - var selector string - if obj.Spec.Selector != nil { - selector = obj.Spec.Selector.String() - } - return &autoscalingv1.Scale{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: obj.Namespace, - Name: obj.Name, - UID: obj.UID, - ResourceVersion: obj.ResourceVersion, - CreationTimestamp: obj.CreationTimestamp, - }, - Spec: autoscalingv1.ScaleSpec{ - Replicas: replicas, - }, - Status: autoscalingv1.ScaleStatus{ - Replicas: obj.Status.Replicas, - Selector: selector, - }, - }, nil - default: - // TODO: CRDs https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#scale-subresource - return nil, fmt.Errorf("unimplemented scale subresource for resource %T", obj) - } -} - -func applyScale(obj client.Object, scale *autoscalingv1.Scale) error { - switch obj := obj.(type) { - case *appsv1.Deployment: - obj.Spec.Replicas = ptr.To(scale.Spec.Replicas) - case *appsv1.ReplicaSet: - obj.Spec.Replicas = ptr.To(scale.Spec.Replicas) - case *corev1.ReplicationController: - obj.Spec.Replicas = ptr.To(scale.Spec.Replicas) - case *appsv1.StatefulSet: - obj.Spec.Replicas = ptr.To(scale.Spec.Replicas) - default: - // TODO: CRDs https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#scale-subresource - return fmt.Errorf("unimplemented scale subresource for resource %T", obj) - } - return nil -} - -// AddIndex adds an index to a fake client. It will panic if used with a client that is not a fake client. -// It will error if there is already an index for given object with the same name as field. -// -// It can be used to test code that adds indexes to the cache at runtime. -func AddIndex(c client.Client, obj runtime.Object, field string, extractValue client.IndexerFunc) error { - fakeClient, isFakeClient := c.(*fakeClient) - if !isFakeClient { - panic("AddIndex can only be used with a fake client") - } - fakeClient.indexesLock.Lock() - defer fakeClient.indexesLock.Unlock() - - if fakeClient.indexes == nil { - fakeClient.indexes = make(map[schema.GroupVersionKind]map[string]client.IndexerFunc, 1) - } - - gvk, err := apiutil.GVKForObject(obj, fakeClient.scheme) - if err != nil { - return fmt.Errorf("failed to get gvk for %T: %w", obj, err) - } - - if fakeClient.indexes[gvk] == nil { - fakeClient.indexes[gvk] = make(map[string]client.IndexerFunc, 1) - } - - if fakeClient.indexes[gvk][field] != nil { - return fmt.Errorf("index %s already exists", field) - } - - fakeClient.indexes[gvk][field] = extractValue - - return nil -} - -func (c *fakeClient) addToSchemeIfUnknownAndUnstructuredOrPartial(obj runtime.Object) error { - c.schemeLock.Lock() - defer c.schemeLock.Unlock() - - _, isUnstructured := obj.(*unstructured.Unstructured) - _, isUnstructuredList := obj.(*unstructured.UnstructuredList) - _, isPartial := obj.(*metav1.PartialObjectMetadata) - _, isPartialList := obj.(*metav1.PartialObjectMetadataList) - if !isUnstructured && !isUnstructuredList && !isPartial && !isPartialList { - return nil - } - - gvk, err := apiutil.GVKForObject(obj, c.scheme) - if err != nil { - return err - } - - if isUnstructuredList || isPartialList { - if !strings.HasSuffix(gvk.Kind, "List") { - gvk.Kind += "List" - } - } - - if !c.scheme.Recognizes(gvk) { - c.scheme.AddKnownTypeWithName(gvk, obj) - } - - return nil -} - -func ensureTypeMeta(obj runtime.Object, gvk schema.GroupVersionKind) error { - ta, err := meta.TypeAccessor(obj) - if err != nil { - return err - } - _, isUnstructured := obj.(runtime.Unstructured) - _, isPartialObject := obj.(*metav1.PartialObjectMetadata) - _, isPartialObjectList := obj.(*metav1.PartialObjectMetadataList) - if !isUnstructured && !isPartialObject && !isPartialObjectList { - ta.SetKind("") - ta.SetAPIVersion("") - return nil - } - - ta.SetKind(gvk.Kind) - ta.SetAPIVersion(gvk.GroupVersion().String()) - - return nil -} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/doc.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/doc.go deleted file mode 100644 index 47cad3980..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/doc.go +++ /dev/null @@ -1,38 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/* -Package fake provides a fake client for testing. - -A fake client is backed by its simple object store indexed by GroupVersionResource. -You can create a fake client with optional objects. - - client := NewClientBuilder().WithScheme(scheme).WithObjects(initObjs...).Build() - -You can invoke the methods defined in the Client interface. - -When in doubt, it's almost always better not to use this package and instead use -envtest.Environment with a real client and API server. - -WARNING: ⚠️ Current Limitations / Known Issues with the fake Client ⚠️ - - This client does not have a way to inject specific errors to test handled vs. unhandled errors. - - There is some support for sub resources which can cause issues with tests if you're trying to update - e.g. metadata and status in the same reconcile. - - No OpenAPI validation is performed when creating or updating objects. - - ObjectMeta's `Generation` and `ResourceVersion` don't behave properly, Patch or Update - operations that rely on these fields will fail, or give false positives. -*/ -package fake diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/typeconverter.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/typeconverter.go deleted file mode 100644 index 3cb3a0dc7..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/typeconverter.go +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright 2025 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package fake - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/runtime" - kerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/managedfields" - "sigs.k8s.io/structured-merge-diff/v6/typed" -) - -type multiTypeConverter struct { - upstream []managedfields.TypeConverter -} - -func (m multiTypeConverter) ObjectToTyped(r runtime.Object, o ...typed.ValidationOptions) (*typed.TypedValue, error) { - var errs []error - for _, u := range m.upstream { - res, err := u.ObjectToTyped(r, o...) - if err != nil { - errs = append(errs, err) - continue - } - - return res, nil - } - - return nil, fmt.Errorf("failed to convert Object to TypedValue: %w", kerrors.NewAggregate(errs)) -} - -func (m multiTypeConverter) TypedToObject(v *typed.TypedValue) (runtime.Object, error) { - var errs []error - for _, u := range m.upstream { - res, err := u.TypedToObject(v) - if err != nil { - errs = append(errs, err) - continue - } - - return res, nil - } - - return nil, fmt.Errorf("failed to convert TypedValue to Object: %w", kerrors.NewAggregate(errs)) -} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/versioned_tracker.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/versioned_tracker.go deleted file mode 100644 index 62ccac2be..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/fake/versioned_tracker.go +++ /dev/null @@ -1,368 +0,0 @@ -/* -Copyright 2025 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package fake - -import ( - "bytes" - "errors" - "fmt" - "runtime/debug" - "strconv" - - apierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/api/meta" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/managedfields" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/testing" - "sigs.k8s.io/controller-runtime/pkg/client/apiutil" -) - -var _ testing.ObjectTracker = (*versionedTracker)(nil) - -type versionedTracker struct { - upstream testing.ObjectTracker - scheme *runtime.Scheme - withStatusSubresource sets.Set[schema.GroupVersionKind] - usesFieldManagedObjectTracker bool -} - -func (t versionedTracker) Add(obj runtime.Object) error { - var objects []runtime.Object - if meta.IsListType(obj) { - var err error - objects, err = meta.ExtractList(obj) - if err != nil { - return err - } - } else { - objects = []runtime.Object{obj} - } - for _, obj := range objects { - accessor, err := meta.Accessor(obj) - if err != nil { - return fmt.Errorf("failed to get accessor for object: %w", err) - } - if accessor.GetDeletionTimestamp() != nil && len(accessor.GetFinalizers()) == 0 { - return fmt.Errorf("refusing to create obj %s with metadata.deletionTimestamp but no finalizers", accessor.GetName()) - } - if accessor.GetResourceVersion() == "" { - // We use a "magic" value of 999 here because this field - // is parsed as uint and and 0 is already used in Update. - // As we can't go lower, go very high instead so this can - // be recognized - accessor.SetResourceVersion(trackerAddResourceVersion) - } - - obj, err = convertFromUnstructuredIfNecessary(t.scheme, obj) - if err != nil { - return err - } - - // If the fieldManager can not decode fields, it will just silently clear them. This is pretty - // much guaranteed not to be what someone that initializes a fake client with objects that - // have them set wants, so validate them here. - // Ref https://github.com/kubernetes/kubernetes/blob/a956ef4862993b825bcd524a19260192ff1da72d/staging/src/k8s.io/apimachinery/pkg/util/managedfields/internal/fieldmanager.go#L105 - if t.usesFieldManagedObjectTracker { - if err := managedfields.ValidateManagedFields(accessor.GetManagedFields()); err != nil { - return fmt.Errorf("invalid managedFields on %T: %w", obj, err) - } - } - if err := t.upstream.Add(obj); err != nil { - return err - } - } - - return nil -} - -func (t versionedTracker) Create(gvr schema.GroupVersionResource, obj runtime.Object, ns string, opts ...metav1.CreateOptions) error { - accessor, err := meta.Accessor(obj) - if err != nil { - return fmt.Errorf("failed to get accessor for object: %w", err) - } - if accessor.GetName() == "" { - gvk, _ := apiutil.GVKForObject(obj, t.scheme) - return apierrors.NewInvalid( - gvk.GroupKind(), - accessor.GetName(), - field.ErrorList{field.Required(field.NewPath("metadata.name"), "name is required")}) - } - if accessor.GetResourceVersion() != "" { - return apierrors.NewBadRequest("resourceVersion can not be set for Create requests") - } - accessor.SetResourceVersion("1") - obj, err = convertFromUnstructuredIfNecessary(t.scheme, obj) - if err != nil { - return err - } - if err := t.upstream.Create(gvr, obj, ns, opts...); err != nil { - accessor.SetResourceVersion("") - return err - } - - return nil -} - -func (t versionedTracker) Update(gvr schema.GroupVersionResource, obj runtime.Object, ns string, opts ...metav1.UpdateOptions) error { - updateOpts, err := getSingleOrZeroOptions(opts) - if err != nil { - return err - } - - return t.update(gvr, obj, ns, false, false, updateOpts) -} - -func (t versionedTracker) update(gvr schema.GroupVersionResource, obj runtime.Object, ns string, isStatus, deleting bool, opts metav1.UpdateOptions) error { - gvk, err := apiutil.GVKForObject(obj, t.scheme) - if err != nil { - return err - } - obj, needsCreate, err := t.updateObject(gvr, gvk, obj, ns, isStatus, deleting, allowsCreateOnUpdate(gvk), opts.DryRun) - if err != nil { - return err - } - - if needsCreate { - opts := metav1.CreateOptions{DryRun: opts.DryRun, FieldManager: opts.FieldManager} - return t.Create(gvr, obj, ns, opts) - } - - if obj == nil { // Object was deleted in updateObject - return nil - } - - if u, unstructured := obj.(*unstructured.Unstructured); unstructured { - u.SetGroupVersionKind(gvk) - } - - return t.upstream.Update(gvr, obj, ns, opts) -} - -func (t versionedTracker) Patch(gvr schema.GroupVersionResource, obj runtime.Object, ns string, opts ...metav1.PatchOptions) error { - patchOptions, err := getSingleOrZeroOptions(opts) - if err != nil { - return err - } - - gvk, err := apiutil.GVKForObject(obj, t.scheme) - if err != nil { - return err - } - - // We apply patches using a client-go reaction that ends up calling the trackers Patch. As we can't change - // that reaction, we use the callstack to figure out if this originated from the status client. - isStatus := bytes.Contains(debug.Stack(), []byte("sigs.k8s.io/controller-runtime/pkg/client/fake.(*fakeSubResourceClient).statusPatch")) - - obj, needsCreate, err := t.updateObject(gvr, gvk, obj, ns, isStatus, false, allowsCreateOnUpdate(gvk), patchOptions.DryRun) - if err != nil { - return err - } - if needsCreate { - opts := metav1.CreateOptions{DryRun: patchOptions.DryRun, FieldManager: patchOptions.FieldManager} - return t.Create(gvr, obj, ns, opts) - } - - if obj == nil { // Object was deleted in updateObject - return nil - } - - return t.upstream.Patch(gvr, obj, ns, patchOptions) -} - -// updateObject performs a number of validations and changes related to -// object updates, such as checking and updating the resourceVersion. -func (t versionedTracker) updateObject( - gvr schema.GroupVersionResource, - gvk schema.GroupVersionKind, - obj runtime.Object, - ns string, - isStatus bool, - deleting bool, - allowCreateOnUpdate bool, - dryRun []string, -) (result runtime.Object, needsCreate bool, _ error) { - accessor, err := meta.Accessor(obj) - if err != nil { - return nil, false, fmt.Errorf("failed to get accessor for object: %w", err) - } - - if accessor.GetName() == "" { - return nil, false, apierrors.NewInvalid( - gvk.GroupKind(), - accessor.GetName(), - field.ErrorList{field.Required(field.NewPath("metadata.name"), "name is required")}) - } - - oldObject, err := t.Get(gvr, ns, accessor.GetName()) - if err != nil { - // If the resource is not found and the resource allows create on update, issue a - // create instead. - if apierrors.IsNotFound(err) && allowCreateOnUpdate { - // Pass this info to the caller rather than create, because in the SSA case it - // must be created by calling Apply in the upstream tracker, not Create. - // This is because SSA considers Apply and Non-Apply operations to be different - // even when they use the same fieldManager. This behavior is also observable - // with a real Kubernetes apiserver. - // - // Ref https://kubernetes.slack.com/archives/C0EG7JC6T/p1757868204458989?thread_ts=1757808656.002569&cid=C0EG7JC6T - return obj, true, nil - } - return obj, false, err - } - - if t.withStatusSubresource.Has(gvk) { - if isStatus { // copy everything but status, managedFields and metadata.ResourceVersion from original object - if err := copyStatusFrom(obj, oldObject); err != nil { - return nil, false, fmt.Errorf("failed to copy non-status field for object with status subresouce: %w", err) - } - passedRV := accessor.GetResourceVersion() - passedManagedFields := accessor.GetManagedFields() - if err := copyFrom(oldObject, obj); err != nil { - return nil, false, fmt.Errorf("failed to restore non-status fields: %w", err) - } - accessor.SetResourceVersion(passedRV) - accessor.SetManagedFields(passedManagedFields) - } else { // copy status from original object - if err := copyStatusFrom(oldObject, obj); err != nil { - return nil, false, fmt.Errorf("failed to copy the status for object with status subresource: %w", err) - } - } - } else if isStatus { - return nil, false, apierrors.NewNotFound(gvr.GroupResource(), accessor.GetName()) - } - - oldAccessor, err := meta.Accessor(oldObject) - if err != nil { - return nil, false, err - } - - // If the new object does not have the resource version set and it allows unconditional update, - // default it to the resource version of the existing resource - if accessor.GetResourceVersion() == "" { - switch { - case allowsUnconditionalUpdate(gvk): - accessor.SetResourceVersion(oldAccessor.GetResourceVersion()) - // This is needed because if the patch explicitly sets the RV to null, the client-go reaction we use - // to apply it and whose output we process here will have it unset. It is not clear why the Kubernetes - // apiserver accepts such a patch, but it does so we just copy that behavior. - // Kubernetes apiserver behavior can be checked like this: - // `kubectl patch configmap foo --patch '{"metadata":{"annotations":{"foo":"bar"},"resourceVersion":null}}' -v=9` - case bytes.Contains(debug.Stack(), []byte("sigs.k8s.io/controller-runtime/pkg/client/fake.(*fakeClient).Patch")), - bytes.Contains(debug.Stack(), []byte("sigs.k8s.io/controller-runtime/pkg/client/fake.(*fakeSubResourceClient).Patch")): - // We apply patches using a client-go reaction that ends up calling the trackers Update. As we can't change - // that reaction, we use the callstack to figure out if this originated from the "fake[SubResource]Client.Patch" func. - accessor.SetResourceVersion(oldAccessor.GetResourceVersion()) - case bytes.Contains(debug.Stack(), []byte("sigs.k8s.io/controller-runtime/pkg/client/fake.(*fakeClient).Apply")), - bytes.Contains(debug.Stack(), []byte("sigs.k8s.io/controller-runtime/pkg/client/fake.(*fakeSubResourceClient).Apply")): - // We apply patches using a client-go reaction that ends up calling the trackers Update. As we can't change - // that reaction, we use the callstack to figure out if this originated from the "fake[SubResource]Client.Apply" func. - accessor.SetResourceVersion(oldAccessor.GetResourceVersion()) - } - } - - if accessor.GetResourceVersion() != oldAccessor.GetResourceVersion() { - return nil, false, apierrors.NewConflict(gvr.GroupResource(), accessor.GetName(), errors.New("object was modified")) - } - if oldAccessor.GetResourceVersion() == "" { - oldAccessor.SetResourceVersion("0") - } - intResourceVersion, err := strconv.ParseUint(oldAccessor.GetResourceVersion(), 10, 64) - if err != nil { - return nil, false, fmt.Errorf("can not convert resourceVersion %q to int: %w", oldAccessor.GetResourceVersion(), err) - } - intResourceVersion++ - accessor.SetResourceVersion(strconv.FormatUint(intResourceVersion, 10)) - - if !deleting && !deletionTimestampEqual(accessor, oldAccessor) { - return nil, false, fmt.Errorf("error: Unable to edit %s: metadata.deletionTimestamp field is immutable", accessor.GetName()) - } - - if !accessor.GetDeletionTimestamp().IsZero() && len(accessor.GetFinalizers()) == 0 { - return nil, false, t.Delete(gvr, accessor.GetNamespace(), accessor.GetName(), metav1.DeleteOptions{DryRun: dryRun}) - } - - obj, err = convertFromUnstructuredIfNecessary(t.scheme, obj) - return obj, false, err -} - -func (t versionedTracker) Apply(gvr schema.GroupVersionResource, applyConfiguration runtime.Object, ns string, opts ...metav1.PatchOptions) error { - patchOptions, err := getSingleOrZeroOptions(opts) - if err != nil { - return err - } - gvk, err := apiutil.GVKForObject(applyConfiguration, t.scheme) - if err != nil { - return err - } - isStatus := bytes.Contains(debug.Stack(), []byte("sigs.k8s.io/controller-runtime/pkg/client/fake.(*fakeSubResourceClient).statusPatch")) - - applyConfiguration, needsCreate, err := t.updateObject(gvr, gvk, applyConfiguration, ns, isStatus, false, true, patchOptions.DryRun) - if err != nil { - return err - } - - if needsCreate { - // https://github.com/kubernetes/kubernetes/blob/81affffa1b8d8079836f4cac713ea8d1b2bbf10f/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go#L606 - accessor, err := meta.Accessor(applyConfiguration) - if err != nil { - return fmt.Errorf("failed to get accessor for object: %w", err) - } - if accessor.GetUID() != "" { - return apierrors.NewConflict(gvr.GroupResource(), accessor.GetName(), fmt.Errorf("uid mismatch: the provided object specified uid %s, and no existing object was found", accessor.GetUID())) - } - - if t.withStatusSubresource.Has(gvk) { - // Clear out status for create, for update this is handled in updateObject - if err := copyStatusFrom(&unstructured.Unstructured{}, applyConfiguration); err != nil { - return err - } - } - } - - if applyConfiguration == nil { // Object was deleted in updateObject - return nil - } - - if isStatus { - // We restore everything but status from the tracker where we don't put GVK - // into the object but it must be set for the ManagedFieldsObjectTracker - applyConfiguration.GetObjectKind().SetGroupVersionKind(gvk) - } - return t.upstream.Apply(gvr, applyConfiguration, ns, opts...) -} - -func (t versionedTracker) Delete(gvr schema.GroupVersionResource, ns, name string, opts ...metav1.DeleteOptions) error { - return t.upstream.Delete(gvr, ns, name, opts...) -} - -func (t versionedTracker) Get(gvr schema.GroupVersionResource, ns, name string, opts ...metav1.GetOptions) (runtime.Object, error) { - return t.upstream.Get(gvr, ns, name, opts...) -} - -func (t versionedTracker) List(gvr schema.GroupVersionResource, gvk schema.GroupVersionKind, ns string, opts ...metav1.ListOptions) (runtime.Object, error) { - return t.upstream.List(gvr, gvk, ns, opts...) -} - -func (t versionedTracker) Watch(gvr schema.GroupVersionResource, ns string, opts ...metav1.ListOptions) (watch.Interface, error) { - return t.upstream.Watch(gvr, ns, opts...) -} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/client/interceptor/intercept.go b/vendor/sigs.k8s.io/controller-runtime/pkg/client/interceptor/intercept.go deleted file mode 100644 index b98af1a69..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/client/interceptor/intercept.go +++ /dev/null @@ -1,183 +0,0 @@ -package interceptor - -import ( - "context" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/watch" - "sigs.k8s.io/controller-runtime/pkg/client" -) - -// Funcs contains functions that are called instead of the underlying client's methods. -type Funcs struct { - Get func(ctx context.Context, client client.WithWatch, key client.ObjectKey, obj client.Object, opts ...client.GetOption) error - List func(ctx context.Context, client client.WithWatch, list client.ObjectList, opts ...client.ListOption) error - Create func(ctx context.Context, client client.WithWatch, obj client.Object, opts ...client.CreateOption) error - Delete func(ctx context.Context, client client.WithWatch, obj client.Object, opts ...client.DeleteOption) error - DeleteAllOf func(ctx context.Context, client client.WithWatch, obj client.Object, opts ...client.DeleteAllOfOption) error - Update func(ctx context.Context, client client.WithWatch, obj client.Object, opts ...client.UpdateOption) error - Patch func(ctx context.Context, client client.WithWatch, obj client.Object, patch client.Patch, opts ...client.PatchOption) error - Apply func(ctx context.Context, client client.WithWatch, obj runtime.ApplyConfiguration, opts ...client.ApplyOption) error - Watch func(ctx context.Context, client client.WithWatch, obj client.ObjectList, opts ...client.ListOption) (watch.Interface, error) - SubResource func(client client.WithWatch, subResource string) client.SubResourceClient - SubResourceGet func(ctx context.Context, client client.Client, subResourceName string, obj client.Object, subResource client.Object, opts ...client.SubResourceGetOption) error - SubResourceCreate func(ctx context.Context, client client.Client, subResourceName string, obj client.Object, subResource client.Object, opts ...client.SubResourceCreateOption) error - SubResourceUpdate func(ctx context.Context, client client.Client, subResourceName string, obj client.Object, opts ...client.SubResourceUpdateOption) error - SubResourcePatch func(ctx context.Context, client client.Client, subResourceName string, obj client.Object, patch client.Patch, opts ...client.SubResourcePatchOption) error - SubResourceApply func(ctx context.Context, client client.Client, subResourceName string, obj runtime.ApplyConfiguration, opts ...client.SubResourceApplyOption) error -} - -// NewClient returns a new interceptor client that calls the functions in funcs instead of the underlying client's methods, if they are not nil. -func NewClient(interceptedClient client.WithWatch, funcs Funcs) client.WithWatch { - return interceptor{ - client: interceptedClient, - funcs: funcs, - } -} - -type interceptor struct { - client client.WithWatch - funcs Funcs -} - -var _ client.WithWatch = &interceptor{} - -func (c interceptor) GroupVersionKindFor(obj runtime.Object) (schema.GroupVersionKind, error) { - return c.client.GroupVersionKindFor(obj) -} - -func (c interceptor) IsObjectNamespaced(obj runtime.Object) (bool, error) { - return c.client.IsObjectNamespaced(obj) -} - -func (c interceptor) Get(ctx context.Context, key client.ObjectKey, obj client.Object, opts ...client.GetOption) error { - if c.funcs.Get != nil { - return c.funcs.Get(ctx, c.client, key, obj, opts...) - } - return c.client.Get(ctx, key, obj, opts...) -} - -func (c interceptor) List(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error { - if c.funcs.List != nil { - return c.funcs.List(ctx, c.client, list, opts...) - } - return c.client.List(ctx, list, opts...) -} - -func (c interceptor) Create(ctx context.Context, obj client.Object, opts ...client.CreateOption) error { - if c.funcs.Create != nil { - return c.funcs.Create(ctx, c.client, obj, opts...) - } - return c.client.Create(ctx, obj, opts...) -} - -func (c interceptor) Delete(ctx context.Context, obj client.Object, opts ...client.DeleteOption) error { - if c.funcs.Delete != nil { - return c.funcs.Delete(ctx, c.client, obj, opts...) - } - return c.client.Delete(ctx, obj, opts...) -} - -func (c interceptor) Update(ctx context.Context, obj client.Object, opts ...client.UpdateOption) error { - if c.funcs.Update != nil { - return c.funcs.Update(ctx, c.client, obj, opts...) - } - return c.client.Update(ctx, obj, opts...) -} - -func (c interceptor) Patch(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.PatchOption) error { - if c.funcs.Patch != nil { - return c.funcs.Patch(ctx, c.client, obj, patch, opts...) - } - return c.client.Patch(ctx, obj, patch, opts...) -} - -func (c interceptor) Apply(ctx context.Context, obj runtime.ApplyConfiguration, opts ...client.ApplyOption) error { - if c.funcs.Apply != nil { - return c.funcs.Apply(ctx, c.client, obj, opts...) - } - - return c.client.Apply(ctx, obj, opts...) -} - -func (c interceptor) DeleteAllOf(ctx context.Context, obj client.Object, opts ...client.DeleteAllOfOption) error { - if c.funcs.DeleteAllOf != nil { - return c.funcs.DeleteAllOf(ctx, c.client, obj, opts...) - } - return c.client.DeleteAllOf(ctx, obj, opts...) -} - -func (c interceptor) Status() client.SubResourceWriter { - return c.SubResource("status") -} - -func (c interceptor) SubResource(subResource string) client.SubResourceClient { - if c.funcs.SubResource != nil { - return c.funcs.SubResource(c.client, subResource) - } - return subResourceInterceptor{ - subResourceName: subResource, - client: c.client, - funcs: c.funcs, - } -} - -func (c interceptor) Scheme() *runtime.Scheme { - return c.client.Scheme() -} - -func (c interceptor) RESTMapper() meta.RESTMapper { - return c.client.RESTMapper() -} - -func (c interceptor) Watch(ctx context.Context, obj client.ObjectList, opts ...client.ListOption) (watch.Interface, error) { - if c.funcs.Watch != nil { - return c.funcs.Watch(ctx, c.client, obj, opts...) - } - return c.client.Watch(ctx, obj, opts...) -} - -type subResourceInterceptor struct { - subResourceName string - client client.Client - funcs Funcs -} - -var _ client.SubResourceClient = &subResourceInterceptor{} - -func (s subResourceInterceptor) Get(ctx context.Context, obj client.Object, subResource client.Object, opts ...client.SubResourceGetOption) error { - if s.funcs.SubResourceGet != nil { - return s.funcs.SubResourceGet(ctx, s.client, s.subResourceName, obj, subResource, opts...) - } - return s.client.SubResource(s.subResourceName).Get(ctx, obj, subResource, opts...) -} - -func (s subResourceInterceptor) Create(ctx context.Context, obj client.Object, subResource client.Object, opts ...client.SubResourceCreateOption) error { - if s.funcs.SubResourceCreate != nil { - return s.funcs.SubResourceCreate(ctx, s.client, s.subResourceName, obj, subResource, opts...) - } - return s.client.SubResource(s.subResourceName).Create(ctx, obj, subResource, opts...) -} - -func (s subResourceInterceptor) Update(ctx context.Context, obj client.Object, opts ...client.SubResourceUpdateOption) error { - if s.funcs.SubResourceUpdate != nil { - return s.funcs.SubResourceUpdate(ctx, s.client, s.subResourceName, obj, opts...) - } - return s.client.SubResource(s.subResourceName).Update(ctx, obj, opts...) -} - -func (s subResourceInterceptor) Patch(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.SubResourcePatchOption) error { - if s.funcs.SubResourcePatch != nil { - return s.funcs.SubResourcePatch(ctx, s.client, s.subResourceName, obj, patch, opts...) - } - return s.client.SubResource(s.subResourceName).Patch(ctx, obj, patch, opts...) -} - -func (s subResourceInterceptor) Apply(ctx context.Context, obj runtime.ApplyConfiguration, opts ...client.SubResourceApplyOption) error { - if s.funcs.SubResourceApply != nil { - return s.funcs.SubResourceApply(ctx, s.client, s.subResourceName, obj, opts...) - } - return s.client.SubResource(s.subResourceName).Apply(ctx, obj, opts...) -} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/internal/field/selector/utils.go b/vendor/sigs.k8s.io/controller-runtime/pkg/internal/field/selector/utils.go deleted file mode 100644 index 8f6dc71ed..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/internal/field/selector/utils.go +++ /dev/null @@ -1,37 +0,0 @@ -/* -Copyright 2022 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package selector - -import ( - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/selection" -) - -// RequiresExactMatch checks if the given field selector is of the form `k=v` or `k==v`. -func RequiresExactMatch(sel fields.Selector) bool { - reqs := sel.Requirements() - if len(reqs) == 0 { - return false - } - - for _, req := range reqs { - if req.Operator != selection.Equals && req.Operator != selection.DoubleEquals { - return false - } - } - return true -} diff --git a/vendor/sigs.k8s.io/controller-runtime/pkg/internal/objectutil/objectutil.go b/vendor/sigs.k8s.io/controller-runtime/pkg/internal/objectutil/objectutil.go deleted file mode 100644 index 0189c0432..000000000 --- a/vendor/sigs.k8s.io/controller-runtime/pkg/internal/objectutil/objectutil.go +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package objectutil - -import ( - apimeta "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" -) - -// FilterWithLabels returns a copy of the items in objs matching labelSel. -func FilterWithLabels(objs []runtime.Object, labelSel labels.Selector) ([]runtime.Object, error) { - outItems := make([]runtime.Object, 0, len(objs)) - for _, obj := range objs { - meta, err := apimeta.Accessor(obj) - if err != nil { - return nil, err - } - if labelSel != nil { - lbls := labels.Set(meta.GetLabels()) - if !labelSel.Matches(lbls) { - continue - } - } - outItems = append(outItems, obj.DeepCopyObject()) - } - return outItems, nil -}