diff --git a/Makefile b/Makefile index b5cf84d4304d..f7915f21cffb 100644 --- a/Makefile +++ b/Makefile @@ -23,8 +23,8 @@ SHELL:=/usr/bin/env bash # # Go. # -GO_VERSION ?= 1.24.7 -GO_DIRECTIVE_VERSION ?= 1.24.0 +GO_VERSION ?= 1.25.3 +GO_DIRECTIVE_VERSION ?= 1.23.0 GO_CONTAINER_IMAGE ?= docker.io/library/golang:$(GO_VERSION) # Ensure correct toolchain is used @@ -554,6 +554,7 @@ generate-go-openapi: $(OPENAPI_GEN) ## Generate openapi go code for runtime SDK .PHONY: generate-modules generate-modules: ## Run go mod tidy to ensure modules are up to date go mod tidy + cd ./api/core; go mod tidy cd $(TOOLS_DIR); go mod tidy cd $(TEST_DIR); go mod tidy diff --git a/Tiltfile b/Tiltfile index 6652c8f4c6cb..ae6631eecb54 100644 --- a/Tiltfile +++ b/Tiltfile @@ -172,9 +172,9 @@ def load_provider_tilt_files(): tilt_helper_dockerfile_header = """ # Tilt image -FROM golang:1.24.7 as tilt-helper +FROM golang:1.25.3 as tilt-helper # Install delve. Note this should be kept in step with the Go release minor version. -RUN go install github.com/go-delve/delve/cmd/dlv@v1.24 +RUN go install github.com/go-delve/delve/cmd/dlv@v1.25 # Support live reloading with Tilt RUN wget --output-document /restart.sh --quiet https://raw.githubusercontent.com/tilt-dev/rerun-process-wrapper/master/restart.sh && \ wget --output-document /start.sh --quiet https://raw.githubusercontent.com/tilt-dev/rerun-process-wrapper/master/start.sh && \ @@ -183,7 +183,7 @@ RUN wget --output-document /restart.sh --quiet https://raw.githubusercontent.com """ tilt_dockerfile_header = """ -FROM golang:1.24.7 as tilt +FROM golang:1.25.3 as tilt WORKDIR / COPY --from=tilt-helper /process.txt . COPY --from=tilt-helper /start.sh . diff --git a/api/addons/v1beta1/conversion.go b/api/addons/v1beta1/conversion.go deleted file mode 100644 index 727ce9b2a105..000000000000 --- a/api/addons/v1beta1/conversion.go +++ /dev/null @@ -1,154 +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 v1beta1 - -import ( - "reflect" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta2" - clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" -) - -func (src *ClusterResourceSet) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*addonsv1.ClusterResourceSet) - - return Convert_v1beta1_ClusterResourceSet_To_v1beta2_ClusterResourceSet(src, dst, nil) -} - -func (dst *ClusterResourceSet) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*addonsv1.ClusterResourceSet) - - return Convert_v1beta2_ClusterResourceSet_To_v1beta1_ClusterResourceSet(src, dst, nil) -} - -func (src *ClusterResourceSetBinding) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*addonsv1.ClusterResourceSetBinding) - - return Convert_v1beta1_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(src, dst, nil) -} - -func (dst *ClusterResourceSetBinding) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*addonsv1.ClusterResourceSetBinding) - - return Convert_v1beta2_ClusterResourceSetBinding_To_v1beta1_ClusterResourceSetBinding(src, dst, nil) -} - -func Convert_v1beta2_ClusterResourceSetStatus_To_v1beta1_ClusterResourceSetStatus(in *addonsv1.ClusterResourceSetStatus, out *ClusterResourceSetStatus, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_ClusterResourceSetStatus_To_v1beta1_ClusterResourceSetStatus(in, out, s); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1beta1). - out.Conditions = nil - - // Retrieve legacy conditions (v1beta1) from the deprecated field. - if in.Deprecated != nil && in.Deprecated.V1Beta1 != nil { - if in.Deprecated.V1Beta1.Conditions != nil { - clusterv1beta1.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1beta1_Conditions(&in.Deprecated.V1Beta1.Conditions, &out.Conditions) - } - } - - // Move new conditions (v1beta2) to the v1beta2 field. - if in.Conditions == nil { - return nil - } - out.V1Beta2 = &ClusterResourceSetV1Beta2Status{} - out.V1Beta2.Conditions = in.Conditions - return nil -} - -func Convert_v1beta1_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(in *ClusterResourceSetStatus, out *addonsv1.ClusterResourceSetStatus, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta1_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(in, out, s); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta1 conditions should not be automatically be converted into v1beta2 conditions. - out.Conditions = nil - - // Retrieve new conditions (v1beta2) from the v1beta2 field. - if in.V1Beta2 != nil { - out.Conditions = in.V1Beta2.Conditions - } - - // Move legacy conditions (v1beta1) to the deprecated field. - if in.Conditions == nil { - return nil - } - - if out.Deprecated == nil { - out.Deprecated = &addonsv1.ClusterResourceSetDeprecatedStatus{} - } - if out.Deprecated.V1Beta1 == nil { - out.Deprecated.V1Beta1 = &addonsv1.ClusterResourceSetV1Beta1DeprecatedStatus{} - } - if in.Conditions != nil { - clusterv1beta1.Convert_v1beta1_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&in.Conditions, &out.Deprecated.V1Beta1.Conditions) - } - return nil -} - -func Convert_Pointer_v1beta1_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in **ResourceSetBinding, out *addonsv1.ResourceSetBinding, s apimachineryconversion.Scope) error { - if in == nil || *in == nil { - return nil - } - return autoConvert_v1beta1_ResourceSetBinding_To_v1beta2_ResourceSetBinding(*in, out, s) -} - -func Convert_v1beta2_ResourceSetBinding_To_Pointer_v1beta1_ResourceSetBinding(in *addonsv1.ResourceSetBinding, out **ResourceSetBinding, s apimachineryconversion.Scope) error { - if in == nil || reflect.DeepEqual(*in, addonsv1.ResourceSetBinding{}) { - return nil - } - *out = &ResourceSetBinding{} - return autoConvert_v1beta2_ResourceSetBinding_To_v1beta1_ResourceSetBinding(in, *out, s) -} - -func Convert_v1beta1_ResourceBinding_To_v1beta2_ResourceBinding(in *ResourceBinding, out *addonsv1.ResourceBinding, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta1_ResourceBinding_To_v1beta2_ResourceBinding(in, out, s); err != nil { - return err - } - if in.LastAppliedTime != nil && !reflect.DeepEqual(in.LastAppliedTime, &metav1.Time{}) { - out.LastAppliedTime = *in.LastAppliedTime - } - return nil -} - -func Convert_v1beta2_ResourceBinding_To_v1beta1_ResourceBinding(in *addonsv1.ResourceBinding, out *ResourceBinding, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_ResourceBinding_To_v1beta1_ResourceBinding(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.LastAppliedTime, metav1.Time{}) { - out.LastAppliedTime = ptr.To(in.LastAppliedTime) - } - return nil -} - -// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94) - -func Convert_v1_Condition_To_v1beta1_Condition(in *metav1.Condition, out *clusterv1beta1.Condition, s apimachineryconversion.Scope) error { - return clusterv1beta1.Convert_v1_Condition_To_v1beta1_Condition(in, out, s) -} - -func Convert_v1beta1_Condition_To_v1_Condition(in *clusterv1beta1.Condition, out *metav1.Condition, s apimachineryconversion.Scope) error { - return clusterv1beta1.Convert_v1beta1_Condition_To_v1_Condition(in, out, s) -} diff --git a/api/addons/v1beta1/conversion_test.go b/api/addons/v1beta1/conversion_test.go deleted file mode 100644 index 62c96656d99b..000000000000 --- a/api/addons/v1beta1/conversion_test.go +++ /dev/null @@ -1,108 +0,0 @@ -//go:build !race - -/* -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 v1beta1 - -import ( - "reflect" - "testing" - - "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/utils/ptr" - "sigs.k8s.io/randfill" - - addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta2" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -// Test is disabled when the race detector is enabled (via "//go:build !race" above) because otherwise the fuzz tests would just time out. - -func TestFuzzyConversion(t *testing.T) { - t.Run("for ClusterResourceSet", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &addonsv1.ClusterResourceSet{}, - Spoke: &ClusterResourceSet{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{ClusterResourceSetFuzzFuncs}, - })) - t.Run("for ClusterResourceSetBinding", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &addonsv1.ClusterResourceSetBinding{}, - Spoke: &ClusterResourceSetBinding{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{ClusterResourceSetBindingFuzzFuncs}, - })) -} - -func ClusterResourceSetFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - hubClusterResourceSetStatus, - spokeClusterResourceSetStatus, - } -} - -func hubClusterResourceSetStatus(in *addonsv1.ClusterResourceSetStatus, c randfill.Continue) { - c.FillNoCustom(in) - // Drop empty structs with only omit empty fields. - if in.Deprecated != nil { - if in.Deprecated.V1Beta1 == nil || reflect.DeepEqual(in.Deprecated.V1Beta1, &addonsv1.ClusterResourceSetV1Beta1DeprecatedStatus{}) { - in.Deprecated = nil - } - } -} - -func spokeClusterResourceSetStatus(in *ClusterResourceSetStatus, c randfill.Continue) { - c.FillNoCustom(in) - // Drop empty structs with only omit empty fields. - if in.V1Beta2 != nil { - if reflect.DeepEqual(in.V1Beta2, &ClusterResourceSetV1Beta2Status{}) { - in.V1Beta2 = nil - } - } -} - -func ClusterResourceSetBindingFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - hubResourceBinding, - hubClusterResourceSetStatus, - spokeClusterResourceSetBindingSpec, - } -} - -func hubResourceBinding(in *addonsv1.ResourceBinding, c randfill.Continue) { - c.FillNoCustom(in) - - if in.Applied == nil { - in.Applied = ptr.To(false) // Applied is a required field and nil does not round trip - } -} - -func spokeClusterResourceSetBindingSpec(in *ClusterResourceSetBindingSpec, c randfill.Continue) { - c.FillNoCustom(in) - - for i, b := range in.Bindings { - if b != nil && reflect.DeepEqual(*b, ResourceSetBinding{}) { - in.Bindings[i] = nil - } - if in.Bindings[i] != nil { - for j, r := range in.Bindings[i].Resources { - if reflect.DeepEqual(r.LastAppliedTime, &metav1.Time{}) { - in.Bindings[i].Resources[j].LastAppliedTime = nil - } - } - } - } -} diff --git a/api/addons/v1beta1/zz_generated.conversion.go b/api/addons/v1beta1/zz_generated.conversion.go deleted file mode 100644 index 6eb8628721de..000000000000 --- a/api/addons/v1beta1/zz_generated.conversion.go +++ /dev/null @@ -1,492 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -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 conversion-gen. DO NOT EDIT. - -package v1beta1 - -import ( - unsafe "unsafe" - - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - v1beta2 "sigs.k8s.io/cluster-api/api/addons/v1beta2" - corev1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*ClusterResourceSet)(nil), (*v1beta2.ClusterResourceSet)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_ClusterResourceSet_To_v1beta2_ClusterResourceSet(a.(*ClusterResourceSet), b.(*v1beta2.ClusterResourceSet), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSet)(nil), (*ClusterResourceSet)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSet_To_v1beta1_ClusterResourceSet(a.(*v1beta2.ClusterResourceSet), b.(*ClusterResourceSet), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetBinding)(nil), (*v1beta2.ClusterResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(a.(*ClusterResourceSetBinding), b.(*v1beta2.ClusterResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetBinding)(nil), (*ClusterResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetBinding_To_v1beta1_ClusterResourceSetBinding(a.(*v1beta2.ClusterResourceSetBinding), b.(*ClusterResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetBindingList)(nil), (*v1beta2.ClusterResourceSetBindingList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(a.(*ClusterResourceSetBindingList), b.(*v1beta2.ClusterResourceSetBindingList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetBindingList)(nil), (*ClusterResourceSetBindingList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetBindingList_To_v1beta1_ClusterResourceSetBindingList(a.(*v1beta2.ClusterResourceSetBindingList), b.(*ClusterResourceSetBindingList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetBindingSpec)(nil), (*v1beta2.ClusterResourceSetBindingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(a.(*ClusterResourceSetBindingSpec), b.(*v1beta2.ClusterResourceSetBindingSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetBindingSpec)(nil), (*ClusterResourceSetBindingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1beta1_ClusterResourceSetBindingSpec(a.(*v1beta2.ClusterResourceSetBindingSpec), b.(*ClusterResourceSetBindingSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetList)(nil), (*v1beta2.ClusterResourceSetList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(a.(*ClusterResourceSetList), b.(*v1beta2.ClusterResourceSetList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetList)(nil), (*ClusterResourceSetList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetList_To_v1beta1_ClusterResourceSetList(a.(*v1beta2.ClusterResourceSetList), b.(*ClusterResourceSetList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetSpec)(nil), (*v1beta2.ClusterResourceSetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(a.(*ClusterResourceSetSpec), b.(*v1beta2.ClusterResourceSetSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetSpec)(nil), (*ClusterResourceSetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetSpec_To_v1beta1_ClusterResourceSetSpec(a.(*v1beta2.ClusterResourceSetSpec), b.(*ClusterResourceSetSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ResourceRef)(nil), (*v1beta2.ResourceRef)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_ResourceRef_To_v1beta2_ResourceRef(a.(*ResourceRef), b.(*v1beta2.ResourceRef), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ResourceRef)(nil), (*ResourceRef)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceRef_To_v1beta1_ResourceRef(a.(*v1beta2.ResourceRef), b.(*ResourceRef), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ResourceSetBinding)(nil), (*v1beta2.ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_ResourceSetBinding_To_v1beta2_ResourceSetBinding(a.(*ResourceSetBinding), b.(*v1beta2.ResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ResourceSetBinding)(nil), (*ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceSetBinding_To_v1beta1_ResourceSetBinding(a.(*v1beta2.ResourceSetBinding), b.(*ResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((**ResourceSetBinding)(nil), (*v1beta2.ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_Pointer_v1beta1_ResourceSetBinding_To_v1beta2_ResourceSetBinding(a.(**ResourceSetBinding), b.(*v1beta2.ResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1.Condition)(nil), (*corev1beta1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_Condition_To_v1beta1_Condition(a.(*v1.Condition), b.(*corev1beta1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ClusterResourceSetStatus)(nil), (*v1beta2.ClusterResourceSetStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(a.(*ClusterResourceSetStatus), b.(*v1beta2.ClusterResourceSetStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*corev1beta1.Condition)(nil), (*v1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_Condition_To_v1_Condition(a.(*corev1beta1.Condition), b.(*v1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ResourceBinding)(nil), (*v1beta2.ResourceBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_ResourceBinding_To_v1beta2_ResourceBinding(a.(*ResourceBinding), b.(*v1beta2.ResourceBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterResourceSetStatus)(nil), (*ClusterResourceSetStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetStatus_To_v1beta1_ClusterResourceSetStatus(a.(*v1beta2.ClusterResourceSetStatus), b.(*ClusterResourceSetStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ResourceBinding)(nil), (*ResourceBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceBinding_To_v1beta1_ResourceBinding(a.(*v1beta2.ResourceBinding), b.(*ResourceBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ResourceSetBinding)(nil), (**ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceSetBinding_To_Pointer_v1beta1_ResourceSetBinding(a.(*v1beta2.ResourceSetBinding), b.(**ResourceSetBinding), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1beta1_ClusterResourceSet_To_v1beta2_ClusterResourceSet(in *ClusterResourceSet, out *v1beta2.ClusterResourceSet, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta1_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta1_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta1_ClusterResourceSet_To_v1beta2_ClusterResourceSet is an autogenerated conversion function. -func Convert_v1beta1_ClusterResourceSet_To_v1beta2_ClusterResourceSet(in *ClusterResourceSet, out *v1beta2.ClusterResourceSet, s conversion.Scope) error { - return autoConvert_v1beta1_ClusterResourceSet_To_v1beta2_ClusterResourceSet(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSet_To_v1beta1_ClusterResourceSet(in *v1beta2.ClusterResourceSet, out *ClusterResourceSet, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_ClusterResourceSetSpec_To_v1beta1_ClusterResourceSetSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_ClusterResourceSetStatus_To_v1beta1_ClusterResourceSetStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_ClusterResourceSet_To_v1beta1_ClusterResourceSet is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSet_To_v1beta1_ClusterResourceSet(in *v1beta2.ClusterResourceSet, out *ClusterResourceSet, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSet_To_v1beta1_ClusterResourceSet(in, out, s) -} - -func autoConvert_v1beta1_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(in *ClusterResourceSetBinding, out *v1beta2.ClusterResourceSetBinding, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta1_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta1_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding is an autogenerated conversion function. -func Convert_v1beta1_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(in *ClusterResourceSetBinding, out *v1beta2.ClusterResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1beta1_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetBinding_To_v1beta1_ClusterResourceSetBinding(in *v1beta2.ClusterResourceSetBinding, out *ClusterResourceSetBinding, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1beta1_ClusterResourceSetBindingSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_ClusterResourceSetBinding_To_v1beta1_ClusterResourceSetBinding is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetBinding_To_v1beta1_ClusterResourceSetBinding(in *v1beta2.ClusterResourceSetBinding, out *ClusterResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetBinding_To_v1beta1_ClusterResourceSetBinding(in, out, s) -} - -func autoConvert_v1beta1_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(in *ClusterResourceSetBindingList, out *v1beta2.ClusterResourceSetBindingList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.ClusterResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_v1beta1_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta1_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList is an autogenerated conversion function. -func Convert_v1beta1_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(in *ClusterResourceSetBindingList, out *v1beta2.ClusterResourceSetBindingList, s conversion.Scope) error { - return autoConvert_v1beta1_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetBindingList_To_v1beta1_ClusterResourceSetBindingList(in *v1beta2.ClusterResourceSetBindingList, out *ClusterResourceSetBindingList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ClusterResourceSetBinding_To_v1beta1_ClusterResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_ClusterResourceSetBindingList_To_v1beta1_ClusterResourceSetBindingList is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetBindingList_To_v1beta1_ClusterResourceSetBindingList(in *v1beta2.ClusterResourceSetBindingList, out *ClusterResourceSetBindingList, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetBindingList_To_v1beta1_ClusterResourceSetBindingList(in, out, s) -} - -func autoConvert_v1beta1_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(in *ClusterResourceSetBindingSpec, out *v1beta2.ClusterResourceSetBindingSpec, s conversion.Scope) error { - if in.Bindings != nil { - in, out := &in.Bindings, &out.Bindings - *out = make([]v1beta2.ResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_Pointer_v1beta1_ResourceSetBinding_To_v1beta2_ResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Bindings = nil - } - out.ClusterName = in.ClusterName - return nil -} - -// Convert_v1beta1_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec is an autogenerated conversion function. -func Convert_v1beta1_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(in *ClusterResourceSetBindingSpec, out *v1beta2.ClusterResourceSetBindingSpec, s conversion.Scope) error { - return autoConvert_v1beta1_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetBindingSpec_To_v1beta1_ClusterResourceSetBindingSpec(in *v1beta2.ClusterResourceSetBindingSpec, out *ClusterResourceSetBindingSpec, s conversion.Scope) error { - if in.Bindings != nil { - in, out := &in.Bindings, &out.Bindings - *out = make([]*ResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ResourceSetBinding_To_Pointer_v1beta1_ResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Bindings = nil - } - out.ClusterName = in.ClusterName - return nil -} - -// Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1beta1_ClusterResourceSetBindingSpec is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1beta1_ClusterResourceSetBindingSpec(in *v1beta2.ClusterResourceSetBindingSpec, out *ClusterResourceSetBindingSpec, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetBindingSpec_To_v1beta1_ClusterResourceSetBindingSpec(in, out, s) -} - -func autoConvert_v1beta1_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(in *ClusterResourceSetList, out *v1beta2.ClusterResourceSetList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.ClusterResourceSet, len(*in)) - for i := range *in { - if err := Convert_v1beta1_ClusterResourceSet_To_v1beta2_ClusterResourceSet(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta1_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList is an autogenerated conversion function. -func Convert_v1beta1_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(in *ClusterResourceSetList, out *v1beta2.ClusterResourceSetList, s conversion.Scope) error { - return autoConvert_v1beta1_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetList_To_v1beta1_ClusterResourceSetList(in *v1beta2.ClusterResourceSetList, out *ClusterResourceSetList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterResourceSet, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ClusterResourceSet_To_v1beta1_ClusterResourceSet(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_ClusterResourceSetList_To_v1beta1_ClusterResourceSetList is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetList_To_v1beta1_ClusterResourceSetList(in *v1beta2.ClusterResourceSetList, out *ClusterResourceSetList, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetList_To_v1beta1_ClusterResourceSetList(in, out, s) -} - -func autoConvert_v1beta1_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(in *ClusterResourceSetSpec, out *v1beta2.ClusterResourceSetSpec, s conversion.Scope) error { - out.ClusterSelector = in.ClusterSelector - out.Resources = *(*[]v1beta2.ResourceRef)(unsafe.Pointer(&in.Resources)) - out.Strategy = in.Strategy - return nil -} - -// Convert_v1beta1_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec is an autogenerated conversion function. -func Convert_v1beta1_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(in *ClusterResourceSetSpec, out *v1beta2.ClusterResourceSetSpec, s conversion.Scope) error { - return autoConvert_v1beta1_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetSpec_To_v1beta1_ClusterResourceSetSpec(in *v1beta2.ClusterResourceSetSpec, out *ClusterResourceSetSpec, s conversion.Scope) error { - out.ClusterSelector = in.ClusterSelector - out.Resources = *(*[]ResourceRef)(unsafe.Pointer(&in.Resources)) - out.Strategy = in.Strategy - return nil -} - -// Convert_v1beta2_ClusterResourceSetSpec_To_v1beta1_ClusterResourceSetSpec is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetSpec_To_v1beta1_ClusterResourceSetSpec(in *v1beta2.ClusterResourceSetSpec, out *ClusterResourceSetSpec, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetSpec_To_v1beta1_ClusterResourceSetSpec(in, out, s) -} - -func autoConvert_v1beta1_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(in *ClusterResourceSetStatus, out *v1beta2.ClusterResourceSetStatus, s conversion.Scope) error { - out.ObservedGeneration = in.ObservedGeneration - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1beta1_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - // WARNING: in.V1Beta2 requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_ClusterResourceSetStatus_To_v1beta1_ClusterResourceSetStatus(in *v1beta2.ClusterResourceSetStatus, out *ClusterResourceSetStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(corev1beta1.Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1beta1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta1_ResourceBinding_To_v1beta2_ResourceBinding(in *ResourceBinding, out *v1beta2.ResourceBinding, s conversion.Scope) error { - if err := Convert_v1beta1_ResourceRef_To_v1beta2_ResourceRef(&in.ResourceRef, &out.ResourceRef, s); err != nil { - return err - } - out.Hash = in.Hash - // WARNING: in.LastAppliedTime requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.Time vs k8s.io/apimachinery/pkg/apis/meta/v1.Time) - if err := v1.Convert_bool_To_Pointer_bool(&in.Applied, &out.Applied, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1beta2_ResourceBinding_To_v1beta1_ResourceBinding(in *v1beta2.ResourceBinding, out *ResourceBinding, s conversion.Scope) error { - if err := Convert_v1beta2_ResourceRef_To_v1beta1_ResourceRef(&in.ResourceRef, &out.ResourceRef, s); err != nil { - return err - } - out.Hash = in.Hash - // WARNING: in.LastAppliedTime requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/apis/meta/v1.Time vs *k8s.io/apimachinery/pkg/apis/meta/v1.Time) - if err := v1.Convert_Pointer_bool_To_bool(&in.Applied, &out.Applied, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1beta1_ResourceRef_To_v1beta2_ResourceRef(in *ResourceRef, out *v1beta2.ResourceRef, s conversion.Scope) error { - out.Name = in.Name - out.Kind = in.Kind - return nil -} - -// Convert_v1beta1_ResourceRef_To_v1beta2_ResourceRef is an autogenerated conversion function. -func Convert_v1beta1_ResourceRef_To_v1beta2_ResourceRef(in *ResourceRef, out *v1beta2.ResourceRef, s conversion.Scope) error { - return autoConvert_v1beta1_ResourceRef_To_v1beta2_ResourceRef(in, out, s) -} - -func autoConvert_v1beta2_ResourceRef_To_v1beta1_ResourceRef(in *v1beta2.ResourceRef, out *ResourceRef, s conversion.Scope) error { - out.Name = in.Name - out.Kind = in.Kind - return nil -} - -// Convert_v1beta2_ResourceRef_To_v1beta1_ResourceRef is an autogenerated conversion function. -func Convert_v1beta2_ResourceRef_To_v1beta1_ResourceRef(in *v1beta2.ResourceRef, out *ResourceRef, s conversion.Scope) error { - return autoConvert_v1beta2_ResourceRef_To_v1beta1_ResourceRef(in, out, s) -} - -func autoConvert_v1beta1_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in *ResourceSetBinding, out *v1beta2.ResourceSetBinding, s conversion.Scope) error { - out.ClusterResourceSetName = in.ClusterResourceSetName - if in.Resources != nil { - in, out := &in.Resources, &out.Resources - *out = make([]v1beta2.ResourceBinding, len(*in)) - for i := range *in { - if err := Convert_v1beta1_ResourceBinding_To_v1beta2_ResourceBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Resources = nil - } - return nil -} - -// Convert_v1beta1_ResourceSetBinding_To_v1beta2_ResourceSetBinding is an autogenerated conversion function. -func Convert_v1beta1_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in *ResourceSetBinding, out *v1beta2.ResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1beta1_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in, out, s) -} - -func autoConvert_v1beta2_ResourceSetBinding_To_v1beta1_ResourceSetBinding(in *v1beta2.ResourceSetBinding, out *ResourceSetBinding, s conversion.Scope) error { - out.ClusterResourceSetName = in.ClusterResourceSetName - if in.Resources != nil { - in, out := &in.Resources, &out.Resources - *out = make([]ResourceBinding, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ResourceBinding_To_v1beta1_ResourceBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Resources = nil - } - return nil -} - -// Convert_v1beta2_ResourceSetBinding_To_v1beta1_ResourceSetBinding is an autogenerated conversion function. -func Convert_v1beta2_ResourceSetBinding_To_v1beta1_ResourceSetBinding(in *v1beta2.ResourceSetBinding, out *ResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1beta2_ResourceSetBinding_To_v1beta1_ResourceSetBinding(in, out, s) -} diff --git a/api/addons/v1beta2/conversion.go b/api/addons/v1beta2/conversion.go deleted file mode 100644 index 02f3b10a17b8..000000000000 --- a/api/addons/v1beta2/conversion.go +++ /dev/null @@ -1,20 +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 v1beta2 - -func (*ClusterResourceSet) Hub() {} -func (*ClusterResourceSetBinding) Hub() {} diff --git a/api/controlplane/kubeadm/v1beta1/kubeadm_control_plane_types.go b/api/controlplane/kubeadm/v1beta1/kubeadm_control_plane_types.go index b8dd22f194b3..3e1bc718f450 100644 --- a/api/controlplane/kubeadm/v1beta1/kubeadm_control_plane_types.go +++ b/api/controlplane/kubeadm/v1beta1/kubeadm_control_plane_types.go @@ -24,8 +24,8 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" bootstrapv1beta1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta1" + "sigs.k8s.io/cluster-api/api/core/errors" clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" - "sigs.k8s.io/cluster-api/errors" ) // RolloutStrategyType defines the rollout strategies for a KubeadmControlPlane. diff --git a/api/controlplane/kubeadm/v1beta2/kubeadm_control_plane_types.go b/api/controlplane/kubeadm/v1beta2/kubeadm_control_plane_types.go index e3622270b490..7a695c4e03fb 100644 --- a/api/controlplane/kubeadm/v1beta2/kubeadm_control_plane_types.go +++ b/api/controlplane/kubeadm/v1beta2/kubeadm_control_plane_types.go @@ -21,8 +21,8 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" bootstrapv1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" + "sigs.k8s.io/cluster-api/api/core/errors" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/errors" ) // KubeadmControlPlaneRolloutStrategyType defines the rollout strategies for a KubeadmControlPlane. diff --git a/errors/clusters.go b/api/core/errors/clusters.go similarity index 100% rename from errors/clusters.go rename to api/core/errors/clusters.go diff --git a/errors/consts.go b/api/core/errors/consts.go similarity index 100% rename from errors/consts.go rename to api/core/errors/consts.go diff --git a/errors/doc.go b/api/core/errors/doc.go similarity index 100% rename from errors/doc.go rename to api/core/errors/doc.go diff --git a/errors/kubeadmcontrolplane.go b/api/core/errors/kubeadmcontrolplane.go similarity index 100% rename from errors/kubeadmcontrolplane.go rename to api/core/errors/kubeadmcontrolplane.go diff --git a/errors/machines.go b/api/core/errors/machines.go similarity index 100% rename from errors/machines.go rename to api/core/errors/machines.go diff --git a/errors/pointer.go b/api/core/errors/pointer.go similarity index 100% rename from errors/pointer.go rename to api/core/errors/pointer.go diff --git a/api/core/go.mod b/api/core/go.mod new file mode 100644 index 000000000000..e11c7f8596f5 --- /dev/null +++ b/api/core/go.mod @@ -0,0 +1,39 @@ +module sigs.k8s.io/cluster-api/api/core + +go 1.25.0 + +require ( + k8s.io/api v0.34.1 + k8s.io/apiextensions-apiserver v0.34.1 + k8s.io/apimachinery v0.34.1 + k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 +) + +require ( + github.com/emicklei/go-restful/v3 v3.12.2 // indirect + github.com/fxamacker/cbor/v2 v2.9.0 // indirect + github.com/go-logr/logr v1.4.3 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect + github.com/go-openapi/swag v0.23.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/google/gnostic-models v0.7.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect + github.com/x448/float16 v0.8.4 // indirect + go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/net v0.43.0 // indirect + golang.org/x/text v0.28.0 // indirect + google.golang.org/protobuf v1.36.7 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/klog/v2 v2.130.1 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/randfill v1.0.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect +) diff --git a/api/core/go.sum b/api/core/go.sum new file mode 100644 index 000000000000..3953d1af424d --- /dev/null +++ b/api/core/go.sum @@ -0,0 +1,128 @@ +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU= +github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= +github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= +github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8= +github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= +go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= +golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= +golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A= +google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM= +k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk= +k8s.io/apiextensions-apiserver v0.34.1 h1:NNPBva8FNAPt1iSVwIE0FsdrVriRXMsaWFMqJbII2CI= +k8s.io/apiextensions-apiserver v0.34.1/go.mod h1:hP9Rld3zF5Ay2Of3BeEpLAToP+l4s5UlxiHfqRaRcMc= +k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4= +k8s.io/apimachinery v0.34.1/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/api/core/v1beta1/cluster_types.go b/api/core/v1beta1/cluster_types.go index 5d6d69a9b36d..71f193acf9fb 100644 --- a/api/core/v1beta1/cluster_types.go +++ b/api/core/v1beta1/cluster_types.go @@ -18,18 +18,18 @@ package v1beta1 import ( "cmp" + "errors" "fmt" "net" "strings" - "github.com/pkg/errors" corev1 "k8s.io/api/core/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/utils/ptr" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/api/core/v1beta1/cluster_types_test.go b/api/core/v1beta1/cluster_types_test.go deleted file mode 100644 index 089ed5eebd89..000000000000 --- a/api/core/v1beta1/cluster_types_test.go +++ /dev/null @@ -1,197 +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 v1beta1 - -import ( - "testing" - - . "github.com/onsi/gomega" -) - -func TestClusterIPFamily(t *testing.T) { - clusterWithNetwork := func(podCIDRs, serviceCIDRs []string) *Cluster { - return &Cluster{ - Spec: ClusterSpec{ - ClusterNetwork: &ClusterNetwork{ - Pods: &NetworkRanges{ - CIDRBlocks: podCIDRs, - }, - Services: &NetworkRanges{ - CIDRBlocks: serviceCIDRs, - }, - }, - }, - } - } - - validAndUnambiguous := []struct { - name string - expectRes ClusterIPFamily - c *Cluster - }{ - { - name: "pods: ipv4, services: ipv4", - expectRes: IPv4IPFamily, - c: clusterWithNetwork([]string{"192.168.0.0/16"}, []string{"10.128.0.0/12"}), - }, - { - name: "pods: ipv4, services: nil", - expectRes: IPv4IPFamily, - c: clusterWithNetwork([]string{"192.168.0.0/16"}, nil), - }, - { - name: "pods: ipv6, services: nil", - expectRes: IPv6IPFamily, - c: clusterWithNetwork([]string{"fd00:100:96::/48"}, nil), - }, - { - name: "pods: ipv6, services: ipv6", - expectRes: IPv6IPFamily, - c: clusterWithNetwork([]string{"fd00:100:96::/48"}, []string{"fd00:100:64::/108"}), - }, - { - name: "pods: dual-stack, services: nil", - expectRes: DualStackIPFamily, - c: clusterWithNetwork([]string{"192.168.0.0/16", "fd00:100:96::/48"}, nil), - }, - { - name: "pods: dual-stack, services: ipv4", - expectRes: DualStackIPFamily, - c: clusterWithNetwork([]string{"192.168.0.0/16", "fd00:100:96::/48"}, []string{"10.128.0.0/12"}), - }, - { - name: "pods: dual-stack, services: ipv6", - expectRes: DualStackIPFamily, - c: clusterWithNetwork([]string{"192.168.0.0/16", "fd00:100:96::/48"}, []string{"fd00:100:64::/108"}), - }, - { - name: "pods: dual-stack, services: dual-stack", - expectRes: DualStackIPFamily, - c: clusterWithNetwork([]string{"192.168.0.0/16", "fd00:100:96::/48"}, []string{"10.128.0.0/12", "fd00:100:64::/108"}), - }, - { - name: "pods: nil, services: dual-stack", - expectRes: DualStackIPFamily, - c: clusterWithNetwork(nil, []string{"10.128.0.0/12", "fd00:100:64::/108"}), - }, - } - - for _, tt := range validAndUnambiguous { - t.Run(tt.name, func(t *testing.T) { - g := NewWithT(t) - ipFamily, err := tt.c.GetIPFamily() - g.Expect(ipFamily).To(Equal(tt.expectRes)) - g.Expect(err).ToNot(HaveOccurred()) - }) - } - - validButAmbiguous := []struct { - name string - expectRes ClusterIPFamily - c *Cluster - }{ - { - name: "pods: nil, services: nil", - // this could be ipv4, ipv6, or dual-stack; assume ipv4 for now though - expectRes: IPv4IPFamily, - c: clusterWithNetwork(nil, nil), - }, - { - name: "pods: nil, services: ipv4", - // this could be a dual-stack; assume ipv4 for now though - expectRes: IPv4IPFamily, - c: clusterWithNetwork(nil, []string{"10.128.0.0/12"}), - }, - { - name: "pods: nil, services: ipv6", - // this could be dual-stack; assume ipv6 for now though - expectRes: IPv6IPFamily, - c: clusterWithNetwork(nil, []string{"fd00:100:64::/108"}), - }, - } - - for _, tt := range validButAmbiguous { - t.Run(tt.name, func(t *testing.T) { - g := NewWithT(t) - ipFamily, err := tt.c.GetIPFamily() - g.Expect(ipFamily).To(Equal(tt.expectRes)) - g.Expect(err).ToNot(HaveOccurred()) - }) - } - - invalid := []struct { - name string - expectErr string - c *Cluster - }{ - { - name: "pods: ipv4, services: ipv6", - expectErr: "pods and services IP family mismatch", - c: clusterWithNetwork([]string{"192.168.0.0/16"}, []string{"fd00:100:64::/108"}), - }, - { - name: "pods: ipv6, services: ipv4", - expectErr: "pods and services IP family mismatch", - c: clusterWithNetwork([]string{"fd00:100:96::/48"}, []string{"10.128.0.0/12"}), - }, - { - name: "pods: ipv6, services: dual-stack", - expectErr: "pods and services IP family mismatch", - c: clusterWithNetwork([]string{"fd00:100:96::/48"}, []string{"10.128.0.0/12", "fd00:100:64::/108"}), - }, - { - name: "pods: ipv4, services: dual-stack", - expectErr: "pods and services IP family mismatch", - c: clusterWithNetwork([]string{"192.168.0.0/16"}, []string{"10.128.0.0/12", "fd00:100:64::/108"}), - }, - { - name: "pods: ipv4, services: dual-stack", - expectErr: "pods and services IP family mismatch", - c: clusterWithNetwork([]string{"192.168.0.0/16"}, []string{"10.128.0.0/12", "fd00:100:64::/108"}), - }, - { - name: "pods: bad cidr", - expectErr: "pods: could not parse CIDR", - c: clusterWithNetwork([]string{"foo"}, nil), - }, - { - name: "services: bad cidr", - expectErr: "services: could not parse CIDR", - c: clusterWithNetwork([]string{"192.168.0.0/16"}, []string{"foo"}), - }, - { - name: "pods: too many cidrs", - expectErr: "pods: too many CIDRs specified", - c: clusterWithNetwork([]string{"192.168.0.0/16", "fd00:100:96::/48", "10.128.0.0/12"}, nil), - }, - { - name: "services: too many cidrs", - expectErr: "services: too many CIDRs specified", - c: clusterWithNetwork(nil, []string{"192.168.0.0/16", "fd00:100:96::/48", "10.128.0.0/12"}), - }, - } - - for _, tt := range invalid { - t.Run(tt.name, func(t *testing.T) { - g := NewWithT(t) - ipFamily, err := tt.c.GetIPFamily() - g.Expect(err).To(HaveOccurred()) - g.Expect(err).To(MatchError(ContainSubstring(tt.expectErr))) - g.Expect(ipFamily).To(Equal(InvalidIPFamily)) - }) - } -} diff --git a/api/core/v1beta1/conversion.go b/api/core/v1beta1/conversion.go index 9f67740c47ac..4bb2d3dc4cbf 100644 --- a/api/core/v1beta1/conversion.go +++ b/api/core/v1beta1/conversion.go @@ -17,8 +17,6 @@ limitations under the License. package v1beta1 import ( - "errors" - "fmt" "maps" "reflect" "slices" @@ -28,571 +26,11 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" ) -var apiVersionGetter = func(_ schema.GroupKind) (string, error) { - return "", errors.New("apiVersionGetter not set") -} - -func SetAPIVersionGetter(f func(gk schema.GroupKind) (string, error)) { - apiVersionGetter = f -} - -func (src *Cluster) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.Cluster) - - if err := Convert_v1beta1_Cluster_To_v1beta2_Cluster(src, dst, nil); err != nil { - return err - } - - if src.Spec.InfrastructureRef != nil { - infraRef, err := convertToContractVersionedObjectReference(src.Spec.InfrastructureRef) - if err != nil { - return err - } - dst.Spec.InfrastructureRef = infraRef - } - - if src.Spec.ControlPlaneRef != nil { - controlPlaneRef, err := convertToContractVersionedObjectReference(src.Spec.ControlPlaneRef) - if err != nil { - return err - } - dst.Spec.ControlPlaneRef = controlPlaneRef - } - - restored := &clusterv1.Cluster{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - clusterv1.Convert_bool_To_Pointer_bool(src.Spec.Paused, ok, restored.Spec.Paused, &dst.Spec.Paused) - - initialization := clusterv1.ClusterInitializationStatus{} - restoredControlPlaneInitialized := restored.Status.Initialization.ControlPlaneInitialized - restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned - clusterv1.Convert_bool_To_Pointer_bool(src.Status.ControlPlaneReady, ok, restoredControlPlaneInitialized, &initialization.ControlPlaneInitialized) - clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) - if !reflect.DeepEqual(initialization, clusterv1.ClusterInitializationStatus{}) { - dst.Status.Initialization = initialization - } - return nil -} - -func (dst *Cluster) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.Cluster) - if err := Convert_v1beta2_Cluster_To_v1beta1_Cluster(src, dst, nil); err != nil { - return err - } - - if src.Spec.InfrastructureRef.IsDefined() { - infraRef, err := convertToObjectReference(src.Spec.InfrastructureRef, src.Namespace) - if err != nil { - return err - } - dst.Spec.InfrastructureRef = infraRef - } - - if src.Spec.ControlPlaneRef.IsDefined() { - controlPlaneRef, err := convertToObjectReference(src.Spec.ControlPlaneRef, src.Namespace) - if err != nil { - return err - } - dst.Spec.ControlPlaneRef = controlPlaneRef - } - - if dst.Spec.ClusterNetwork != nil && dst.Spec.ClusterNetwork.APIServerPort != nil && - *dst.Spec.ClusterNetwork.APIServerPort == 0 { - dst.Spec.ClusterNetwork.APIServerPort = nil - } - - if dst.Spec.Topology != nil { - if dst.Spec.Topology.ControlPlane.MachineHealthCheck != nil && dst.Spec.Topology.ControlPlane.MachineHealthCheck.RemediationTemplate != nil { - dst.Spec.Topology.ControlPlane.MachineHealthCheck.RemediationTemplate.Namespace = dst.Namespace - } - if dst.Spec.Topology.Workers != nil { - for _, md := range dst.Spec.Topology.Workers.MachineDeployments { - if md.MachineHealthCheck != nil && md.MachineHealthCheck.RemediationTemplate != nil { - md.MachineHealthCheck.RemediationTemplate.Namespace = dst.Namespace - } - } - } - } - - dropEmptyStringsCluster(dst) - - return utilconversion.MarshalData(src, dst) -} - -func (src *ClusterClass) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.ClusterClass) - - if err := Convert_v1beta1_ClusterClass_To_v1beta2_ClusterClass(src, dst, nil); err != nil { - return err - } - - restored := &clusterv1.ClusterClass{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - for i, patch := range dst.Spec.Patches { - for j, definition := range patch.Definitions { - var srcDefinition = &PatchDefinition{} - for _, p := range src.Spec.Patches { - if p.Name == patch.Name { - if len(p.Definitions) == len(patch.Definitions) { - srcDefinition = &p.Definitions[j] - } - break - } - } - if srcDefinition == nil { - return fmt.Errorf("definition %d for patch %s not found in source data", j, patch.Name) - } - var restoredPatchMatchControlPlane, restoredPatchMatchInfrastructureCluster *bool - for _, p := range restored.Spec.Patches { - if p.Name == patch.Name { - if len(p.Definitions) == len(patch.Definitions) { - restoredPatchMatchInfrastructureCluster = p.Definitions[j].Selector.MatchResources.InfrastructureCluster - restoredPatchMatchControlPlane = p.Definitions[j].Selector.MatchResources.ControlPlane - } - break - } - } - clusterv1.Convert_bool_To_Pointer_bool(srcDefinition.Selector.MatchResources.InfrastructureCluster, ok, restoredPatchMatchInfrastructureCluster, &definition.Selector.MatchResources.InfrastructureCluster) - clusterv1.Convert_bool_To_Pointer_bool(srcDefinition.Selector.MatchResources.ControlPlane, ok, restoredPatchMatchControlPlane, &definition.Selector.MatchResources.ControlPlane) - dst.Spec.Patches[i].Definitions[j] = definition - } - } - - for i, variable := range dst.Spec.Variables { - var srcVariable *ClusterClassVariable - for _, v := range src.Spec.Variables { - if v.Name == variable.Name { - srcVariable = &v - break - } - } - if srcVariable == nil { - return fmt.Errorf("variable %q not found in source data", variable.Name) - } - var restoredVariableOpenAPIV3Schema *clusterv1.JSONSchemaProps - for _, v := range restored.Spec.Variables { - if v.Name == variable.Name { - restoredVariableOpenAPIV3Schema = &v.Schema.OpenAPIV3Schema - break - } - } - if err := restoreBoolIntentJSONSchemaProps(&srcVariable.Schema.OpenAPIV3Schema, &variable.Schema.OpenAPIV3Schema, ok, restoredVariableOpenAPIV3Schema); err != nil { - return err - } - dst.Spec.Variables[i] = variable - } - - for i, variable := range dst.Status.Variables { - var srcVariable *ClusterClassStatusVariable - for _, v := range src.Status.Variables { - if v.Name == variable.Name { - srcVariable = &v - break - } - } - if srcVariable == nil { - return fmt.Errorf("variable %q not found in source data", variable.Name) - } - var restoredVariable *clusterv1.ClusterClassStatusVariable - var restoredVariableDefinitionsConflict *bool - for _, v := range restored.Status.Variables { - if v.Name == variable.Name { - restoredVariable = &v - restoredVariableDefinitionsConflict = v.DefinitionsConflict - break - } - } - clusterv1.Convert_bool_To_Pointer_bool(srcVariable.DefinitionsConflict, ok, restoredVariableDefinitionsConflict, &variable.DefinitionsConflict) - - for j, definition := range variable.Definitions { - var srcDefinition *ClusterClassStatusVariableDefinition - for _, d := range srcVariable.Definitions { - if d.From == definition.From { - srcDefinition = &d - } - } - if srcDefinition == nil { - return fmt.Errorf("definition %d for variable %s not found in source data", j, variable.Name) - } - var restoredVariableOpenAPIV3Schema *clusterv1.JSONSchemaProps - if restoredVariable != nil { - for _, d := range restoredVariable.Definitions { - if d.From == definition.From { - restoredVariableOpenAPIV3Schema = &d.Schema.OpenAPIV3Schema - } - } - } - if err := restoreBoolIntentJSONSchemaProps(&srcDefinition.Schema.OpenAPIV3Schema, &definition.Schema.OpenAPIV3Schema, ok, restoredVariableOpenAPIV3Schema); err != nil { - return err - } - variable.Definitions[j] = definition - } - dst.Status.Variables[i] = variable - } - - dst.Spec.KubernetesVersions = restored.Spec.KubernetesVersions - - dst.Spec.Upgrade.External.GenerateUpgradePlanExtension = restored.Spec.Upgrade.External.GenerateUpgradePlanExtension - - return nil -} - -func restoreBoolIntentJSONSchemaProps(src *JSONSchemaProps, dst *clusterv1.JSONSchemaProps, hasRestored bool, restored *clusterv1.JSONSchemaProps) error { - var restoredUniqueItems, restoreExclusiveMaximum, restoredExclusiveMinimum, restoreXPreserveUnknownFields, restoredXIntOrString *bool - if restored != nil { - restoredUniqueItems = restored.UniqueItems - restoreExclusiveMaximum = restored.ExclusiveMaximum - restoredExclusiveMinimum = restored.ExclusiveMinimum - restoreXPreserveUnknownFields = restored.XPreserveUnknownFields - restoredXIntOrString = restored.XIntOrString - } - clusterv1.Convert_bool_To_Pointer_bool(src.UniqueItems, hasRestored, restoredUniqueItems, &dst.UniqueItems) - clusterv1.Convert_bool_To_Pointer_bool(src.ExclusiveMaximum, hasRestored, restoreExclusiveMaximum, &dst.ExclusiveMaximum) - clusterv1.Convert_bool_To_Pointer_bool(src.ExclusiveMinimum, hasRestored, restoredExclusiveMinimum, &dst.ExclusiveMinimum) - clusterv1.Convert_bool_To_Pointer_bool(src.XPreserveUnknownFields, hasRestored, restoreXPreserveUnknownFields, &dst.XPreserveUnknownFields) - clusterv1.Convert_bool_To_Pointer_bool(src.XIntOrString, hasRestored, restoredXIntOrString, &dst.XIntOrString) - - for name, property := range dst.Properties { - srcProperty, ok := src.Properties[name] - if !ok { - return fmt.Errorf("property %s not found in source data", name) - } - var restoredPropertyOpenAPIV3Schema *clusterv1.JSONSchemaProps - if restored != nil { - if v, ok := restored.Properties[name]; ok { - restoredPropertyOpenAPIV3Schema = &v - } - } - if err := restoreBoolIntentJSONSchemaProps(&srcProperty, &property, hasRestored, restoredPropertyOpenAPIV3Schema); err != nil { - return err - } - dst.Properties[name] = property - } - if src.AdditionalProperties != nil { - var restoredAdditionalPropertiesOpenAPIV3Schema *clusterv1.JSONSchemaProps - if restored != nil { - restoredAdditionalPropertiesOpenAPIV3Schema = restored.AdditionalProperties - } - if err := restoreBoolIntentJSONSchemaProps(src.AdditionalProperties, dst.AdditionalProperties, hasRestored, restoredAdditionalPropertiesOpenAPIV3Schema); err != nil { - return err - } - } - if src.Items != nil { - var restoreItemsOpenAPIV3Schema *clusterv1.JSONSchemaProps - if restored != nil { - restoreItemsOpenAPIV3Schema = restored.Items - } - if err := restoreBoolIntentJSONSchemaProps(src.Items, dst.Items, hasRestored, restoreItemsOpenAPIV3Schema); err != nil { - return err - } - } - for i, value := range dst.AllOf { - srcValue := src.AllOf[i] - var restoredValueOpenAPIV3Schema *clusterv1.JSONSchemaProps - if restored != nil && len(src.AllOf) == len(dst.AllOf) { - restoredValueOpenAPIV3Schema = &restored.AllOf[i] - } - if err := restoreBoolIntentJSONSchemaProps(&srcValue, &value, hasRestored, restoredValueOpenAPIV3Schema); err != nil { - return err - } - dst.AllOf[i] = value - } - for i, value := range dst.OneOf { - srcValue := src.OneOf[i] - var restoredValueOpenAPIV3Schema *clusterv1.JSONSchemaProps - if restored != nil && len(src.OneOf) == len(dst.OneOf) { - restoredValueOpenAPIV3Schema = &restored.OneOf[i] - } - if err := restoreBoolIntentJSONSchemaProps(&srcValue, &value, hasRestored, restoredValueOpenAPIV3Schema); err != nil { - return err - } - dst.OneOf[i] = value - } - for i, value := range dst.AnyOf { - srcValue := src.AnyOf[i] - var restoredValueOpenAPIV3Schema *clusterv1.JSONSchemaProps - if restored != nil && len(src.AnyOf) == len(dst.AnyOf) { - restoredValueOpenAPIV3Schema = &restored.AnyOf[i] - } - if err := restoreBoolIntentJSONSchemaProps(&srcValue, &value, hasRestored, restoredValueOpenAPIV3Schema); err != nil { - return err - } - dst.AnyOf[i] = value - } - if src.Not != nil { - var restoredNotOpenAPIV3Schema *clusterv1.JSONSchemaProps - if restored != nil { - restoredNotOpenAPIV3Schema = restored.Not - } - if err := restoreBoolIntentJSONSchemaProps(src.Not, dst.Not, hasRestored, restoredNotOpenAPIV3Schema); err != nil { - return err - } - } - return nil -} - -func (dst *ClusterClass) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.ClusterClass) - if err := Convert_v1beta2_ClusterClass_To_v1beta1_ClusterClass(src, dst, nil); err != nil { - return err - } - - if dst.Spec.ControlPlane.MachineHealthCheck != nil && dst.Spec.ControlPlane.MachineHealthCheck.RemediationTemplate != nil { - dst.Spec.ControlPlane.MachineHealthCheck.RemediationTemplate.Namespace = dst.Namespace - } - for _, md := range dst.Spec.Workers.MachineDeployments { - if md.MachineHealthCheck != nil && md.MachineHealthCheck.RemediationTemplate != nil { - md.MachineHealthCheck.RemediationTemplate.Namespace = dst.Namespace - } - } - dropEmptyStringsClusterClass(dst) - - return utilconversion.MarshalData(src, dst) -} - -func (src *Machine) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.Machine) - - if err := Convert_v1beta1_Machine_To_v1beta2_Machine(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec, &dst.Spec); err != nil { - return err - } - - restored := &clusterv1.Machine{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - initialization := clusterv1.MachineInitializationStatus{} - restoredBootstrapDataSecretCreated := restored.Status.Initialization.BootstrapDataSecretCreated - restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned - clusterv1.Convert_bool_To_Pointer_bool(src.Status.BootstrapReady, ok, restoredBootstrapDataSecretCreated, &initialization.BootstrapDataSecretCreated) - clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) - if !reflect.DeepEqual(initialization, clusterv1.MachineInitializationStatus{}) { - dst.Status.Initialization = initialization - } - - // Recover other values. - if ok { - dst.Spec.MinReadySeconds = restored.Spec.MinReadySeconds - } - - return nil -} - -func (dst *Machine) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.Machine) - - if err := Convert_v1beta2_Machine_To_v1beta1_Machine(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec, &dst.Spec, src.Namespace); err != nil { - return err - } - - dropEmptyStringsMachineSpec(&dst.Spec) - - return utilconversion.MarshalData(src, dst) -} - -func (src *MachineSet) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachineSet) - - if err := Convert_v1beta1_MachineSet_To_v1beta2_MachineSet(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { - return err - } - - if src.Spec.MinReadySeconds == 0 { - dst.Spec.Template.Spec.MinReadySeconds = nil - } else { - dst.Spec.Template.Spec.MinReadySeconds = &src.Spec.MinReadySeconds - } - - return nil -} - -func (dst *MachineSet) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachineSet) - - if err := Convert_v1beta2_MachineSet_To_v1beta1_MachineSet(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { - return err - } - - dst.Spec.MinReadySeconds = ptr.Deref(src.Spec.Template.Spec.MinReadySeconds, 0) - - dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) - return nil -} - -func (src *MachineDeployment) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachineDeployment) - - if err := Convert_v1beta1_MachineDeployment_To_v1beta2_MachineDeployment(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { - return err - } - - dst.Spec.Template.Spec.MinReadySeconds = src.Spec.MinReadySeconds - - restored := &clusterv1.MachineDeployment{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - clusterv1.Convert_bool_To_Pointer_bool(src.Spec.Paused, ok, restored.Spec.Paused, &dst.Spec.Paused) - - return nil -} - -func (dst *MachineDeployment) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachineDeployment) - - if err := Convert_v1beta2_MachineDeployment_To_v1beta1_MachineDeployment(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { - return err - } - - dst.Spec.MinReadySeconds = src.Spec.Template.Spec.MinReadySeconds - - dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) - - return utilconversion.MarshalData(src, dst) -} - -func (src *MachineHealthCheck) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachineHealthCheck) - - if err := Convert_v1beta1_MachineHealthCheck_To_v1beta2_MachineHealthCheck(src, dst, nil); err != nil { - return err - } - - // Manually restore data. - restored := &clusterv1.MachineHealthCheck{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - clusterv1.Convert_int32_To_Pointer_int32(src.Status.ExpectedMachines, ok, restored.Status.ExpectedMachines, &dst.Status.ExpectedMachines) - clusterv1.Convert_int32_To_Pointer_int32(src.Status.CurrentHealthy, ok, restored.Status.CurrentHealthy, &dst.Status.CurrentHealthy) - clusterv1.Convert_int32_To_Pointer_int32(src.Status.RemediationsAllowed, ok, restored.Status.RemediationsAllowed, &dst.Status.RemediationsAllowed) - - return nil -} - -func (dst *MachineHealthCheck) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachineHealthCheck) - if err := Convert_v1beta2_MachineHealthCheck_To_v1beta1_MachineHealthCheck(src, dst, nil); err != nil { - return err - } - - if dst.Spec.RemediationTemplate != nil { - dst.Spec.RemediationTemplate.Namespace = src.Namespace - } - - return utilconversion.MarshalData(src, dst) -} - -func (src *MachinePool) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachinePool) - - if err := Convert_v1beta1_MachinePool_To_v1beta2_MachinePool(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { - return err - } - - dst.Spec.Template.Spec.MinReadySeconds = src.Spec.MinReadySeconds - - restored := &clusterv1.MachinePool{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - initialization := clusterv1.MachinePoolInitializationStatus{} - restoredBootstrapDataSecretCreated := restored.Status.Initialization.BootstrapDataSecretCreated - restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned - clusterv1.Convert_bool_To_Pointer_bool(src.Status.BootstrapReady, ok, restoredBootstrapDataSecretCreated, &initialization.BootstrapDataSecretCreated) - clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) - if !reflect.DeepEqual(initialization, clusterv1.MachinePoolInitializationStatus{}) { - dst.Status.Initialization = initialization - } - - return nil -} - -func (dst *MachinePool) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachinePool) - - if err := Convert_v1beta2_MachinePool_To_v1beta1_MachinePool(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { - return err - } - - dst.Spec.MinReadySeconds = src.Spec.Template.Spec.MinReadySeconds - - dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) - - return utilconversion.MarshalData(src, dst) -} - -func (src *MachineDrainRule) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachineDrainRule) - return Convert_v1beta1_MachineDrainRule_To_v1beta2_MachineDrainRule(src, dst, nil) -} - -func (dst *MachineDrainRule) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachineDrainRule) - return Convert_v1beta2_MachineDrainRule_To_v1beta1_MachineDrainRule(src, dst, nil) -} - func Convert_v1beta2_ClusterClass_To_v1beta1_ClusterClass(in *clusterv1.ClusterClass, out *ClusterClass, s apimachineryconversion.Scope) error { if err := autoConvert_v1beta2_ClusterClass_To_v1beta1_ClusterClass(in, out, s); err != nil { return err @@ -2218,76 +1656,6 @@ func Convert_v1beta2_Bootstrap_To_v1beta1_Bootstrap(in *clusterv1.Bootstrap, out return nil } -func convertMachineSpecToContractVersionedObjectReference(src *MachineSpec, dst *clusterv1.MachineSpec) error { - infraRef, err := convertToContractVersionedObjectReference(&src.InfrastructureRef) - if err != nil { - return err - } - dst.InfrastructureRef = infraRef - - if src.Bootstrap.ConfigRef != nil { - bootstrapRef, err := convertToContractVersionedObjectReference(src.Bootstrap.ConfigRef) - if err != nil { - return err - } - dst.Bootstrap.ConfigRef = bootstrapRef - } - - return nil -} - -func convertMachineSpecToObjectReference(src *clusterv1.MachineSpec, dst *MachineSpec, namespace string) error { - if src.InfrastructureRef.IsDefined() { - infraRef, err := convertToObjectReference(src.InfrastructureRef, namespace) - if err != nil { - return err - } - dst.InfrastructureRef = *infraRef - } - - if src.Bootstrap.ConfigRef.IsDefined() { - bootstrapRef, err := convertToObjectReference(src.Bootstrap.ConfigRef, namespace) - if err != nil { - return err - } - dst.Bootstrap.ConfigRef = bootstrapRef - } - - return nil -} - -func convertToContractVersionedObjectReference(ref *corev1.ObjectReference) (clusterv1.ContractVersionedObjectReference, error) { - var apiGroup string - if ref.APIVersion != "" { - gv, err := schema.ParseGroupVersion(ref.APIVersion) - if err != nil { - return clusterv1.ContractVersionedObjectReference{}, fmt.Errorf("failed to convert object: failed to parse apiVersion: %v", err) - } - apiGroup = gv.Group - } - return clusterv1.ContractVersionedObjectReference{ - APIGroup: apiGroup, - Kind: ref.Kind, - Name: ref.Name, - }, nil -} - -func convertToObjectReference(ref clusterv1.ContractVersionedObjectReference, namespace string) (*corev1.ObjectReference, error) { - apiVersion, err := apiVersionGetter(schema.GroupKind{ - Group: ref.APIGroup, - Kind: ref.Kind, - }) - if err != nil { - return nil, fmt.Errorf("failed to convert object: %v", err) - } - return &corev1.ObjectReference{ - APIVersion: apiVersion, - Kind: ref.Kind, - Namespace: namespace, - Name: ref.Name, - }, nil -} - func Convert_v1beta1_JSONSchemaProps_To_v1beta2_JSONSchemaProps(in *JSONSchemaProps, out *clusterv1.JSONSchemaProps, s apimachineryconversion.Scope) error { if err := autoConvert_v1beta1_JSONSchemaProps_To_v1beta2_JSONSchemaProps(in, out, s); err != nil { return err @@ -2313,77 +1681,6 @@ func Convert_v1beta2_JSONSchemaProps_To_v1beta1_JSONSchemaProps(in *clusterv1.JS return nil } -func dropEmptyStringsCluster(dst *Cluster) { - if dst.Spec.Topology != nil { - if dst.Spec.Topology.Workers != nil { - for i, md := range dst.Spec.Topology.Workers.MachineDeployments { - dropEmptyString(&md.FailureDomain) - dst.Spec.Topology.Workers.MachineDeployments[i] = md - } - } - } -} - -func dropEmptyStringsClusterClass(dst *ClusterClass) { - if dst.Spec.InfrastructureNamingStrategy != nil { - dropEmptyString(&dst.Spec.InfrastructureNamingStrategy.Template) - } - - if dst.Spec.ControlPlane.NamingStrategy != nil { - dropEmptyString(&dst.Spec.ControlPlane.NamingStrategy.Template) - } - - for i, md := range dst.Spec.Workers.MachineDeployments { - if md.NamingStrategy != nil { - dropEmptyString(&md.NamingStrategy.Template) - } - dropEmptyString(&md.FailureDomain) - dst.Spec.Workers.MachineDeployments[i] = md - } - - for i, mp := range dst.Spec.Workers.MachinePools { - if mp.NamingStrategy != nil { - dropEmptyString(&mp.NamingStrategy.Template) - } - - dst.Spec.Workers.MachinePools[i] = mp - } - - for i, p := range dst.Spec.Patches { - dropEmptyString(&p.EnabledIf) - if p.External != nil { - dropEmptyString(&p.External.GenerateExtension) - dropEmptyString(&p.External.ValidateExtension) - dropEmptyString(&p.External.DiscoverVariablesExtension) - } - - for j, d := range p.Definitions { - for k, jp := range d.JSONPatches { - if jp.ValueFrom != nil { - dropEmptyString(&jp.ValueFrom.Variable) - dropEmptyString(&jp.ValueFrom.Template) - } - d.JSONPatches[k] = jp - } - p.Definitions[j] = d - } - - dst.Spec.Patches[i] = p - } -} - -func dropEmptyStringsMachineSpec(spec *MachineSpec) { - dropEmptyString(&spec.Version) - dropEmptyString(&spec.ProviderID) - dropEmptyString(&spec.FailureDomain) -} - -func dropEmptyString(s **string) { - if *s != nil && **s == "" { - *s = nil - } -} - func Convert_v1beta1_MachineDeletionStatus_To_v1beta2_MachineDeletionStatus(in *MachineDeletionStatus, out *clusterv1.MachineDeletionStatus, _ apimachineryconversion.Scope) error { if in.NodeDrainStartTime != nil && !reflect.DeepEqual(in.NodeDrainStartTime, &metav1.Time{}) { out.NodeDrainStartTime = *in.NodeDrainStartTime diff --git a/api/core/v1beta1/machine_types.go b/api/core/v1beta1/machine_types.go index 9665953dd4d0..2614a8bfdba2 100644 --- a/api/core/v1beta1/machine_types.go +++ b/api/core/v1beta1/machine_types.go @@ -20,7 +20,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/api/core/v1beta1/machinepool_types.go b/api/core/v1beta1/machinepool_types.go index 5ecd8fa227c9..07c61dc5608d 100644 --- a/api/core/v1beta1/machinepool_types.go +++ b/api/core/v1beta1/machinepool_types.go @@ -20,7 +20,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/api/core/v1beta1/machineset_types.go b/api/core/v1beta1/machineset_types.go index e302d020d3ec..a31b5f72faeb 100644 --- a/api/core/v1beta1/machineset_types.go +++ b/api/core/v1beta1/machineset_types.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/validation/field" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/api/core/v1beta1/zz_generated.deepcopy.go b/api/core/v1beta1/zz_generated.deepcopy.go index a1b090669cb4..636e3f556c79 100644 --- a/api/core/v1beta1/zz_generated.deepcopy.go +++ b/api/core/v1beta1/zz_generated.deepcopy.go @@ -26,7 +26,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "sigs.k8s.io/cluster-api/errors" + "sigs.k8s.io/cluster-api/api/core/errors" ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. diff --git a/api/core/v1beta2/cluster_types.go b/api/core/v1beta2/cluster_types.go index af0969853155..e7f89f637589 100644 --- a/api/core/v1beta2/cluster_types.go +++ b/api/core/v1beta2/cluster_types.go @@ -28,7 +28,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/api/core/v1beta2/conversion.go b/api/core/v1beta2/conversion.go index ad42bde84bec..4f510d3151f0 100644 --- a/api/core/v1beta2/conversion.go +++ b/api/core/v1beta2/conversion.go @@ -24,15 +24,6 @@ import ( "k8s.io/utils/ptr" ) -func (*Cluster) Hub() {} -func (*ClusterClass) Hub() {} -func (*Machine) Hub() {} -func (*MachineSet) Hub() {} -func (*MachineDeployment) Hub() {} -func (*MachineHealthCheck) Hub() {} -func (*MachinePool) Hub() {} -func (*MachineDrainRule) Hub() {} - // ConvertToSeconds takes *metav1.Duration and returns a *int32. // Durations longer than MaxInt32 are capped. // NOTE: this is a util function intended only for usage in API conversions. diff --git a/api/core/v1beta2/conversion_test.go b/api/core/v1beta2/conversion_test.go deleted file mode 100644 index 73b285d78aa2..000000000000 --- a/api/core/v1beta2/conversion_test.go +++ /dev/null @@ -1,259 +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 v1beta2 - -import ( - "math" - "testing" - "time" - - . "github.com/onsi/gomega" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/utils/ptr" -) - -func TestConvertSeconds(t *testing.T) { - g := NewWithT(t) - - seconds := ptr.To[int32](100) - duration := ConvertFromSeconds(seconds) - g.Expect(ConvertToSeconds(duration)).To(Equal(seconds)) - - seconds = nil - duration = ConvertFromSeconds(seconds) - g.Expect(ConvertToSeconds(duration)).To(Equal(seconds)) - - // Durations longer than MaxInt32 are capped. - duration = ptr.To(metav1.Duration{Duration: (math.MaxInt32 + 1) * time.Second}) - g.Expect(ConvertToSeconds(duration)).To(Equal(ptr.To[int32](math.MaxInt32))) -} - -func TestConvert_bool_To_Pointer_bool(t *testing.T) { - testCases := []struct { - name string - in bool - hasRestored bool - restored *bool - wantOut *bool - }{ - { - name: "when applying v1beta1, false should be converted to nil", - in: false, - wantOut: nil, - }, - { - name: "when applying v1beta1, true should be converted to *true", - in: true, - wantOut: ptr.To(true), - }, - { - name: "when doing round trip, false should be converted to nil if not previously explicitly set to false (previously set to nil)", - in: false, - hasRestored: true, - restored: nil, - wantOut: nil, - }, - { - name: "when doing round trip, false should be converted to nil if not previously explicitly set to false (previously set to true)", - in: false, - hasRestored: true, - restored: ptr.To(true), - wantOut: nil, - }, - { - name: "when doing round trip, false should be converted to false if previously explicitly set to false", - in: false, - hasRestored: true, - restored: ptr.To(false), - wantOut: ptr.To(false), - }, - { - name: "when doing round trip, true should be converted to *true (no matter of restored value is nil)", - in: true, - hasRestored: true, - restored: nil, - wantOut: ptr.To(true), - }, - { - name: "when doing round trip, true should be converted to *true (no matter of restored value is true)", - in: true, - hasRestored: true, - restored: ptr.To(true), - wantOut: ptr.To(true), - }, - { - name: "when doing round trip, true should be converted to *true (no matter of restored value is false)", - in: true, - hasRestored: true, - restored: ptr.To(false), - wantOut: ptr.To(true), - }, - } - for _, tt := range testCases { - t.Run(tt.name, func(t *testing.T) { - g := NewWithT(t) - - var out *bool - Convert_bool_To_Pointer_bool(tt.in, tt.hasRestored, tt.restored, &out) - g.Expect(out).To(Equal(tt.wantOut)) - }) - } -} - -func TestConvert_int32_To_Pointer_int32(t *testing.T) { - testCases := []struct { - name string - in int32 - hasRestored bool - restored *int32 - wantOut *int32 - }{ - { - name: "when applying v1beta1, 0 should be converted to nil", - in: 0, - wantOut: nil, - }, - { - name: "when applying v1beta1, value!=0 should be converted to *value", - in: 1, - wantOut: ptr.To[int32](1), - }, - { - name: "when doing round trip, 0 should be converted to nil if not previously explicitly set to 0 (previously set to nil)", - in: 0, - hasRestored: true, - restored: nil, - wantOut: nil, - }, - { - name: "when doing round trip, 0 should be converted to nil if not previously explicitly set to 0 (previously set to another value)", - in: 0, - hasRestored: true, - restored: ptr.To[int32](1), - wantOut: nil, - }, - { - name: "when doing round trip, 0 should be converted to 0 if previously explicitly set to 0", - in: 0, - hasRestored: true, - restored: ptr.To[int32](0), - wantOut: ptr.To[int32](0), - }, - { - name: "when doing round trip, value should be converted to *value (no matter of restored value is nil)", - in: 1, - hasRestored: true, - restored: nil, - wantOut: ptr.To[int32](1), - }, - { - name: "when doing round trip, value should be converted to *value (no matter of restored value is not 0)", - in: 1, - hasRestored: true, - restored: ptr.To[int32](2), - wantOut: ptr.To[int32](1), - }, - { - name: "when doing round trip, value should be converted to *value (no matter of restored value is 0)", - in: 1, - hasRestored: true, - restored: ptr.To[int32](0), - wantOut: ptr.To[int32](1), - }, - } - for _, tt := range testCases { - t.Run(tt.name, func(t *testing.T) { - g := NewWithT(t) - - var out *int32 - Convert_int32_To_Pointer_int32(tt.in, tt.hasRestored, tt.restored, &out) - g.Expect(out).To(Equal(tt.wantOut)) - }) - } -} - -func TestConvert_Duration_To_Pointer_int32(t *testing.T) { - testCases := []struct { - name string - in metav1.Duration - hasRestored bool - restored *int32 - wantOut *int32 - }{ - { - name: "when applying v1beta1, 0s should be converted to nil", - in: metav1.Duration{}, - wantOut: nil, - }, - { - name: "when applying v1beta1, value!=0s should be converted to *value", - in: metav1.Duration{Duration: 1 * time.Second}, - wantOut: ptr.To[int32](1), - }, - { - name: "when doing round trip, 0s should be converted to nil if not previously explicitly set to 0s (previously set to nil)", - in: metav1.Duration{}, - hasRestored: true, - restored: nil, - wantOut: nil, - }, - { - name: "when doing round trip, 0s should be converted to nil if not previously explicitly set to 0s (previously set to another value)", - in: metav1.Duration{}, - hasRestored: true, - restored: ptr.To[int32](1), - wantOut: nil, - }, - { - name: "when doing round trip, 0s should be converted to 0s if previously explicitly set to 0s", - in: metav1.Duration{}, - hasRestored: true, - restored: ptr.To[int32](0), - wantOut: ptr.To[int32](0), - }, - { - name: "when doing round trip, value should be converted to *value (no matter of restored value is nil)", - in: metav1.Duration{Duration: 1 * time.Second}, - hasRestored: true, - restored: nil, - wantOut: ptr.To[int32](1), - }, - { - name: "when doing round trip, value should be converted to *value (no matter of restored value is not 0s)", - in: metav1.Duration{Duration: 1 * time.Second}, - hasRestored: true, - restored: ptr.To[int32](2), - wantOut: ptr.To[int32](1), - }, - { - name: "when doing round trip, value should be converted to *value (no matter of restored value is 0s)", - in: metav1.Duration{Duration: 1 * time.Second}, - hasRestored: true, - restored: ptr.To[int32](0), - wantOut: ptr.To[int32](1), - }, - } - for _, tt := range testCases { - t.Run(tt.name, func(t *testing.T) { - g := NewWithT(t) - - var out *int32 - Convert_Duration_To_Pointer_int32(tt.in, tt.hasRestored, tt.restored, &out) - g.Expect(out).To(Equal(tt.wantOut)) - }) - } -} diff --git a/api/core/v1beta2/machine_types.go b/api/core/v1beta2/machine_types.go index a60f736ba21c..0b1506c87f4c 100644 --- a/api/core/v1beta2/machine_types.go +++ b/api/core/v1beta2/machine_types.go @@ -20,7 +20,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/api/core/v1beta2/machinepool_types.go b/api/core/v1beta2/machinepool_types.go index a6d16aff1467..f01ec55fcd15 100644 --- a/api/core/v1beta2/machinepool_types.go +++ b/api/core/v1beta2/machinepool_types.go @@ -20,7 +20,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/api/core/v1beta2/machineset_types.go b/api/core/v1beta2/machineset_types.go index 8a5a92db7d1b..66bb304e1ebe 100644 --- a/api/core/v1beta2/machineset_types.go +++ b/api/core/v1beta2/machineset_types.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/validation/field" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/api/core/v1beta2/zz_generated.deepcopy.go b/api/core/v1beta2/zz_generated.deepcopy.go index 0c5ee6208d3c..28fd6232be24 100644 --- a/api/core/v1beta2/zz_generated.deepcopy.go +++ b/api/core/v1beta2/zz_generated.deepcopy.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "sigs.k8s.io/cluster-api/errors" + "sigs.k8s.io/cluster-api/api/core/errors" ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. diff --git a/api/ipam/v1alpha1/conversion.go b/api/ipam/v1alpha1/conversion.go deleted file mode 100644 index b4a72b6cb822..000000000000 --- a/api/ipam/v1alpha1/conversion.go +++ /dev/null @@ -1,144 +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 v1alpha1 - -import ( - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" - clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - ipamv1 "sigs.k8s.io/cluster-api/api/ipam/v1beta2" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -func (src *IPAddress) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*ipamv1.IPAddress) - - return Convert_v1alpha1_IPAddress_To_v1beta2_IPAddress(src, dst, nil) -} - -func (dst *IPAddress) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*ipamv1.IPAddress) - - return Convert_v1beta2_IPAddress_To_v1alpha1_IPAddress(src, dst, nil) -} - -func (src *IPAddressClaim) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*ipamv1.IPAddressClaim) - - if err := Convert_v1alpha1_IPAddressClaim_To_v1beta2_IPAddressClaim(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta1 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1beta1) to the deprecated field. - if src.Status.Conditions != nil { - dst.Status.Deprecated = &ipamv1.IPAddressClaimDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &ipamv1.IPAddressClaimV1Beta1DeprecatedStatus{} - clusterv1beta1.Convert_v1beta1_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - - if src.Labels != nil { - dst.Spec.ClusterName = src.Labels[clusterv1.ClusterNameLabel] - if dst.Annotations != nil { - if clusterNameLabelWasSet, ok := dst.Annotations["conversion.cluster.x-k8s.io/cluster-name-label-set"]; ok { - if clusterNameLabelWasSet == "false" { - delete(dst.Labels, clusterv1.ClusterNameLabel) - } - delete(dst.Annotations, "conversion.cluster.x-k8s.io/cluster-name-label-set") - } - } - } - - // Manually restore data. - restored := &ipamv1.IPAddressClaim{} - if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok { - return err - } - dst.Status.Conditions = restored.Status.Conditions - - return nil -} - -func (dst *IPAddressClaim) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*ipamv1.IPAddressClaim) - - if err := Convert_v1beta2_IPAddressClaim_To_v1alpha1_IPAddressClaim(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1beta1). - dst.Status.Conditions = nil - - // Retrieve legacy conditions (v1beta1) from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - clusterv1beta1.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1beta1_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - } - } - - if src.Spec.ClusterName != "" { - if dst.Labels == nil { - dst.Labels = map[string]string{} - } - if _, ok := dst.Labels[clusterv1.ClusterNameLabel]; !ok { - if dst.Annotations == nil { - dst.Annotations = map[string]string{} - } - dst.Annotations["conversion.cluster.x-k8s.io/cluster-name-label-set"] = "false" - } - dst.Labels[clusterv1.ClusterNameLabel] = src.Spec.ClusterName - } - - // Preserve Hub data on down-conversion except for metadata - if err := utilconversion.MarshalData(src, dst); err != nil { - return err - } - return nil -} - -func Convert_v1alpha1_IPAddressSpec_To_v1beta2_IPAddressSpec(in *IPAddressSpec, out *ipamv1.IPAddressSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha1_IPAddressSpec_To_v1beta2_IPAddressSpec(in, out, s); err != nil { - return err - } - out.Prefix = ptr.To(int32(in.Prefix)) - return nil -} - -func Convert_v1beta2_IPAddressSpec_To_v1alpha1_IPAddressSpec(in *ipamv1.IPAddressSpec, out *IPAddressSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_IPAddressSpec_To_v1alpha1_IPAddressSpec(in, out, s); err != nil { - return err - } - out.Prefix = int(ptr.Deref(in.Prefix, 0)) - return nil -} - -func Convert_v1beta2_IPAddressClaimSpec_To_v1alpha1_IPAddressClaimSpec(from *ipamv1.IPAddressClaimSpec, to *IPAddressClaimSpec, scope apimachineryconversion.Scope) error { - return autoConvert_v1beta2_IPAddressClaimSpec_To_v1alpha1_IPAddressClaimSpec(from, to, scope) -} - -func Convert_v1beta2_IPAddressClaimStatus_To_v1alpha1_IPAddressClaimStatus(from *ipamv1.IPAddressClaimStatus, to *IPAddressClaimStatus, scope apimachineryconversion.Scope) error { - return autoConvert_v1beta2_IPAddressClaimStatus_To_v1alpha1_IPAddressClaimStatus(from, to, scope) -} diff --git a/api/ipam/v1alpha1/conversion_test.go b/api/ipam/v1alpha1/conversion_test.go deleted file mode 100644 index 4c8d656af258..000000000000 --- a/api/ipam/v1alpha1/conversion_test.go +++ /dev/null @@ -1,87 +0,0 @@ -//go:build !race - -/* -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 v1alpha1 - -import ( - "reflect" - "testing" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" - runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/utils/ptr" - "sigs.k8s.io/randfill" - - ipamv1 "sigs.k8s.io/cluster-api/api/ipam/v1beta2" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -// Test is disabled when the race detector is enabled (via "//go:build !race" above) because otherwise the fuzz tests would just time out. - -func TestFuzzyConversion(t *testing.T) { - t.Run("for IPAddress", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &ipamv1.IPAddress{}, - Spoke: &IPAddress{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{IPAddressFuzzFuncs}, - })) - t.Run("for IPAddressClaim", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &ipamv1.IPAddressClaim{}, - Spoke: &IPAddressClaim{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{IPAddressClaimFuzzFuncs}, - })) -} - -func IPAddressFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - hubIPAddressSpec, - spokeTypedLocalObjectReference, - } -} - -func hubIPAddressSpec(in *ipamv1.IPAddressSpec, c randfill.Continue) { - c.FillNoCustom(in) - - if in.Prefix == nil { - in.Prefix = ptr.To(int32(0)) // Prefix is a required field and nil does not round trip - } -} - -func spokeTypedLocalObjectReference(in *corev1.TypedLocalObjectReference, c randfill.Continue) { - c.FillNoCustom(in) - if in.APIGroup != nil && *in.APIGroup == "" { - in.APIGroup = nil - } -} - -func IPAddressClaimFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - hubIPAddressClaimStatus, - spokeTypedLocalObjectReference, - } -} - -func hubIPAddressClaimStatus(in *ipamv1.IPAddressClaimStatus, c randfill.Continue) { - c.FillNoCustom(in) - // Drop empty structs with only omit empty fields. - if in.Deprecated != nil { - if in.Deprecated.V1Beta1 == nil || reflect.DeepEqual(in.Deprecated.V1Beta1, &ipamv1.IPAddressClaimV1Beta1DeprecatedStatus{}) { - in.Deprecated = nil - } - } -} diff --git a/api/ipam/v1alpha1/zz_generated.conversion.go b/api/ipam/v1alpha1/zz_generated.conversion.go deleted file mode 100644 index e1322e4e67ee..000000000000 --- a/api/ipam/v1alpha1/zz_generated.conversion.go +++ /dev/null @@ -1,341 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -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 conversion-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - corev1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" - v1beta1 "sigs.k8s.io/cluster-api/api/ipam/v1beta1" - v1beta2 "sigs.k8s.io/cluster-api/api/ipam/v1beta2" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*IPAddress)(nil), (*v1beta2.IPAddress)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_IPAddress_To_v1beta2_IPAddress(a.(*IPAddress), b.(*v1beta2.IPAddress), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.IPAddress)(nil), (*IPAddress)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddress_To_v1alpha1_IPAddress(a.(*v1beta2.IPAddress), b.(*IPAddress), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*IPAddressClaim)(nil), (*v1beta2.IPAddressClaim)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_IPAddressClaim_To_v1beta2_IPAddressClaim(a.(*IPAddressClaim), b.(*v1beta2.IPAddressClaim), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.IPAddressClaim)(nil), (*IPAddressClaim)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressClaim_To_v1alpha1_IPAddressClaim(a.(*v1beta2.IPAddressClaim), b.(*IPAddressClaim), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*IPAddressClaimList)(nil), (*v1beta2.IPAddressClaimList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_IPAddressClaimList_To_v1beta2_IPAddressClaimList(a.(*IPAddressClaimList), b.(*v1beta2.IPAddressClaimList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.IPAddressClaimList)(nil), (*IPAddressClaimList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressClaimList_To_v1alpha1_IPAddressClaimList(a.(*v1beta2.IPAddressClaimList), b.(*IPAddressClaimList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*IPAddressClaimSpec)(nil), (*v1beta2.IPAddressClaimSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec(a.(*IPAddressClaimSpec), b.(*v1beta2.IPAddressClaimSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*IPAddressClaimStatus)(nil), (*v1beta2.IPAddressClaimStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_IPAddressClaimStatus_To_v1beta2_IPAddressClaimStatus(a.(*IPAddressClaimStatus), b.(*v1beta2.IPAddressClaimStatus), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*IPAddressList)(nil), (*v1beta2.IPAddressList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_IPAddressList_To_v1beta2_IPAddressList(a.(*IPAddressList), b.(*v1beta2.IPAddressList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.IPAddressList)(nil), (*IPAddressList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressList_To_v1alpha1_IPAddressList(a.(*v1beta2.IPAddressList), b.(*IPAddressList), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*IPAddressSpec)(nil), (*v1beta2.IPAddressSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_IPAddressSpec_To_v1beta2_IPAddressSpec(a.(*IPAddressSpec), b.(*v1beta2.IPAddressSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.IPAddressClaimSpec)(nil), (*IPAddressClaimSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressClaimSpec_To_v1alpha1_IPAddressClaimSpec(a.(*v1beta2.IPAddressClaimSpec), b.(*IPAddressClaimSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.IPAddressClaimStatus)(nil), (*IPAddressClaimStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressClaimStatus_To_v1alpha1_IPAddressClaimStatus(a.(*v1beta2.IPAddressClaimStatus), b.(*IPAddressClaimStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.IPAddressSpec)(nil), (*IPAddressSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressSpec_To_v1alpha1_IPAddressSpec(a.(*v1beta2.IPAddressSpec), b.(*IPAddressSpec), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha1_IPAddress_To_v1beta2_IPAddress(in *IPAddress, out *v1beta2.IPAddress, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha1_IPAddressSpec_To_v1beta2_IPAddressSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha1_IPAddress_To_v1beta2_IPAddress is an autogenerated conversion function. -func Convert_v1alpha1_IPAddress_To_v1beta2_IPAddress(in *IPAddress, out *v1beta2.IPAddress, s conversion.Scope) error { - return autoConvert_v1alpha1_IPAddress_To_v1beta2_IPAddress(in, out, s) -} - -func autoConvert_v1beta2_IPAddress_To_v1alpha1_IPAddress(in *v1beta2.IPAddress, out *IPAddress, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_IPAddressSpec_To_v1alpha1_IPAddressSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_IPAddress_To_v1alpha1_IPAddress is an autogenerated conversion function. -func Convert_v1beta2_IPAddress_To_v1alpha1_IPAddress(in *v1beta2.IPAddress, out *IPAddress, s conversion.Scope) error { - return autoConvert_v1beta2_IPAddress_To_v1alpha1_IPAddress(in, out, s) -} - -func autoConvert_v1alpha1_IPAddressClaim_To_v1beta2_IPAddressClaim(in *IPAddressClaim, out *v1beta2.IPAddressClaim, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha1_IPAddressClaimStatus_To_v1beta2_IPAddressClaimStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha1_IPAddressClaim_To_v1beta2_IPAddressClaim is an autogenerated conversion function. -func Convert_v1alpha1_IPAddressClaim_To_v1beta2_IPAddressClaim(in *IPAddressClaim, out *v1beta2.IPAddressClaim, s conversion.Scope) error { - return autoConvert_v1alpha1_IPAddressClaim_To_v1beta2_IPAddressClaim(in, out, s) -} - -func autoConvert_v1beta2_IPAddressClaim_To_v1alpha1_IPAddressClaim(in *v1beta2.IPAddressClaim, out *IPAddressClaim, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_IPAddressClaimSpec_To_v1alpha1_IPAddressClaimSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_IPAddressClaimStatus_To_v1alpha1_IPAddressClaimStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_IPAddressClaim_To_v1alpha1_IPAddressClaim is an autogenerated conversion function. -func Convert_v1beta2_IPAddressClaim_To_v1alpha1_IPAddressClaim(in *v1beta2.IPAddressClaim, out *IPAddressClaim, s conversion.Scope) error { - return autoConvert_v1beta2_IPAddressClaim_To_v1alpha1_IPAddressClaim(in, out, s) -} - -func autoConvert_v1alpha1_IPAddressClaimList_To_v1beta2_IPAddressClaimList(in *IPAddressClaimList, out *v1beta2.IPAddressClaimList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.IPAddressClaim, len(*in)) - for i := range *in { - if err := Convert_v1alpha1_IPAddressClaim_To_v1beta2_IPAddressClaim(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha1_IPAddressClaimList_To_v1beta2_IPAddressClaimList is an autogenerated conversion function. -func Convert_v1alpha1_IPAddressClaimList_To_v1beta2_IPAddressClaimList(in *IPAddressClaimList, out *v1beta2.IPAddressClaimList, s conversion.Scope) error { - return autoConvert_v1alpha1_IPAddressClaimList_To_v1beta2_IPAddressClaimList(in, out, s) -} - -func autoConvert_v1beta2_IPAddressClaimList_To_v1alpha1_IPAddressClaimList(in *v1beta2.IPAddressClaimList, out *IPAddressClaimList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]IPAddressClaim, len(*in)) - for i := range *in { - if err := Convert_v1beta2_IPAddressClaim_To_v1alpha1_IPAddressClaim(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_IPAddressClaimList_To_v1alpha1_IPAddressClaimList is an autogenerated conversion function. -func Convert_v1beta2_IPAddressClaimList_To_v1alpha1_IPAddressClaimList(in *v1beta2.IPAddressClaimList, out *IPAddressClaimList, s conversion.Scope) error { - return autoConvert_v1beta2_IPAddressClaimList_To_v1alpha1_IPAddressClaimList(in, out, s) -} - -func autoConvert_v1alpha1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec(in *IPAddressClaimSpec, out *v1beta2.IPAddressClaimSpec, s conversion.Scope) error { - if err := v1beta1.Convert_v1_TypedLocalObjectReference_To_v1beta2_IPPoolReference(&in.PoolRef, &out.PoolRef, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec is an autogenerated conversion function. -func Convert_v1alpha1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec(in *IPAddressClaimSpec, out *v1beta2.IPAddressClaimSpec, s conversion.Scope) error { - return autoConvert_v1alpha1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec(in, out, s) -} - -func autoConvert_v1beta2_IPAddressClaimSpec_To_v1alpha1_IPAddressClaimSpec(in *v1beta2.IPAddressClaimSpec, out *IPAddressClaimSpec, s conversion.Scope) error { - // WARNING: in.ClusterName requires manual conversion: does not exist in peer-type - if err := v1beta1.Convert_v1beta2_IPPoolReference_To_v1_TypedLocalObjectReference(&in.PoolRef, &out.PoolRef, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha1_IPAddressClaimStatus_To_v1beta2_IPAddressClaimStatus(in *IPAddressClaimStatus, out *v1beta2.IPAddressClaimStatus, s conversion.Scope) error { - if err := v1beta1.Convert_v1_LocalObjectReference_To_v1beta2_IPAddressReference(&in.AddressRef, &out.AddressRef, s); err != nil { - return err - } - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := v1beta1.Convert_v1beta1_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -// Convert_v1alpha1_IPAddressClaimStatus_To_v1beta2_IPAddressClaimStatus is an autogenerated conversion function. -func Convert_v1alpha1_IPAddressClaimStatus_To_v1beta2_IPAddressClaimStatus(in *IPAddressClaimStatus, out *v1beta2.IPAddressClaimStatus, s conversion.Scope) error { - return autoConvert_v1alpha1_IPAddressClaimStatus_To_v1beta2_IPAddressClaimStatus(in, out, s) -} - -func autoConvert_v1beta2_IPAddressClaimStatus_To_v1alpha1_IPAddressClaimStatus(in *v1beta2.IPAddressClaimStatus, out *IPAddressClaimStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(corev1beta1.Conditions, len(*in)) - for i := range *in { - if err := v1beta1.Convert_v1_Condition_To_v1beta1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - if err := v1beta1.Convert_v1beta2_IPAddressReference_To_v1_LocalObjectReference(&in.AddressRef, &out.AddressRef, s); err != nil { - return err - } - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha1_IPAddressList_To_v1beta2_IPAddressList(in *IPAddressList, out *v1beta2.IPAddressList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.IPAddress, len(*in)) - for i := range *in { - if err := Convert_v1alpha1_IPAddress_To_v1beta2_IPAddress(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha1_IPAddressList_To_v1beta2_IPAddressList is an autogenerated conversion function. -func Convert_v1alpha1_IPAddressList_To_v1beta2_IPAddressList(in *IPAddressList, out *v1beta2.IPAddressList, s conversion.Scope) error { - return autoConvert_v1alpha1_IPAddressList_To_v1beta2_IPAddressList(in, out, s) -} - -func autoConvert_v1beta2_IPAddressList_To_v1alpha1_IPAddressList(in *v1beta2.IPAddressList, out *IPAddressList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]IPAddress, len(*in)) - for i := range *in { - if err := Convert_v1beta2_IPAddress_To_v1alpha1_IPAddress(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_IPAddressList_To_v1alpha1_IPAddressList is an autogenerated conversion function. -func Convert_v1beta2_IPAddressList_To_v1alpha1_IPAddressList(in *v1beta2.IPAddressList, out *IPAddressList, s conversion.Scope) error { - return autoConvert_v1beta2_IPAddressList_To_v1alpha1_IPAddressList(in, out, s) -} - -func autoConvert_v1alpha1_IPAddressSpec_To_v1beta2_IPAddressSpec(in *IPAddressSpec, out *v1beta2.IPAddressSpec, s conversion.Scope) error { - if err := v1beta1.Convert_v1_LocalObjectReference_To_v1beta2_IPAddressClaimReference(&in.ClaimRef, &out.ClaimRef, s); err != nil { - return err - } - if err := v1beta1.Convert_v1_TypedLocalObjectReference_To_v1beta2_IPPoolReference(&in.PoolRef, &out.PoolRef, s); err != nil { - return err - } - out.Address = in.Address - // WARNING: in.Prefix requires manual conversion: inconvertible types (int vs *int32) - out.Gateway = in.Gateway - return nil -} - -func autoConvert_v1beta2_IPAddressSpec_To_v1alpha1_IPAddressSpec(in *v1beta2.IPAddressSpec, out *IPAddressSpec, s conversion.Scope) error { - if err := v1beta1.Convert_v1beta2_IPAddressClaimReference_To_v1_LocalObjectReference(&in.ClaimRef, &out.ClaimRef, s); err != nil { - return err - } - if err := v1beta1.Convert_v1beta2_IPPoolReference_To_v1_TypedLocalObjectReference(&in.PoolRef, &out.PoolRef, s); err != nil { - return err - } - out.Address = in.Address - // WARNING: in.Prefix requires manual conversion: inconvertible types (*int32 vs int) - out.Gateway = in.Gateway - return nil -} diff --git a/api/ipam/v1beta1/conversion.go b/api/ipam/v1beta1/conversion.go deleted file mode 100644 index 3ea24dff0944..000000000000 --- a/api/ipam/v1beta1/conversion.go +++ /dev/null @@ -1,169 +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 v1beta1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" - ipamv1 "sigs.k8s.io/cluster-api/api/ipam/v1beta2" -) - -func (src *IPAddress) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*ipamv1.IPAddress) - - return Convert_v1beta1_IPAddress_To_v1beta2_IPAddress(src, dst, nil) -} - -func (dst *IPAddress) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*ipamv1.IPAddress) - - return Convert_v1beta2_IPAddress_To_v1beta1_IPAddress(src, dst, nil) -} - -func (src *IPAddressClaim) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*ipamv1.IPAddressClaim) - - return Convert_v1beta1_IPAddressClaim_To_v1beta2_IPAddressClaim(src, dst, nil) -} - -func (dst *IPAddressClaim) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*ipamv1.IPAddressClaim) - - return Convert_v1beta2_IPAddressClaim_To_v1beta1_IPAddressClaim(src, dst, nil) -} - -func Convert_v1beta2_IPAddressClaimStatus_To_v1beta1_IPAddressClaimStatus(in *ipamv1.IPAddressClaimStatus, out *IPAddressClaimStatus, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_IPAddressClaimStatus_To_v1beta1_IPAddressClaimStatus(in, out, s); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1beta1). - out.Conditions = nil - - // Retrieve legacy conditions (v1beta1) from the deprecated field. - if in.Deprecated != nil && in.Deprecated.V1Beta1 != nil { - if in.Deprecated.V1Beta1.Conditions != nil { - clusterv1beta1.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1beta1_Conditions(&in.Deprecated.V1Beta1.Conditions, &out.Conditions) - } - } - - // Move new conditions (v1beta2) to the v1beta2 field. - if in.Conditions == nil { - return nil - } - out.V1Beta2 = &IPAddressClaimV1Beta2Status{} - out.V1Beta2.Conditions = in.Conditions - return nil -} - -func Convert_v1beta1_IPAddressClaimStatus_To_v1beta2_IPAddressClaimStatus(in *IPAddressClaimStatus, out *ipamv1.IPAddressClaimStatus, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta1_IPAddressClaimStatus_To_v1beta2_IPAddressClaimStatus(in, out, s); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta1 conditions should not be automatically be converted into v1beta2 conditions. - out.Conditions = nil - - // Retrieve new conditions (v1beta2) from the v1beta2 field. - if in.V1Beta2 != nil { - out.Conditions = in.V1Beta2.Conditions - } - - // Move legacy conditions (v1beta1) to the deprecated field. - if in.Conditions == nil { - return nil - } - if out.Deprecated == nil { - out.Deprecated = &ipamv1.IPAddressClaimDeprecatedStatus{} - } - if out.Deprecated.V1Beta1 == nil { - out.Deprecated.V1Beta1 = &ipamv1.IPAddressClaimV1Beta1DeprecatedStatus{} - } - if in.Conditions != nil { - clusterv1beta1.Convert_v1beta1_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&in.Conditions, &out.Deprecated.V1Beta1.Conditions) - } - return nil -} - -func Convert_v1_TypedLocalObjectReference_To_v1beta2_IPPoolReference(in *corev1.TypedLocalObjectReference, out *ipamv1.IPPoolReference, _ apimachineryconversion.Scope) error { - out.Kind = in.Kind - out.Name = in.Name - out.APIGroup = ptr.Deref(in.APIGroup, "") - return nil -} - -func Convert_v1beta2_IPPoolReference_To_v1_TypedLocalObjectReference(in *ipamv1.IPPoolReference, out *corev1.TypedLocalObjectReference, _ apimachineryconversion.Scope) error { - out.Kind = in.Kind - out.Name = in.Name - if in.APIGroup != "" { - out.APIGroup = ptr.To(in.APIGroup) - } - return nil -} - -func Convert_v1_LocalObjectReference_To_v1beta2_IPAddressReference(in *corev1.LocalObjectReference, out *ipamv1.IPAddressReference, _ apimachineryconversion.Scope) error { - out.Name = in.Name - return nil -} - -func Convert_v1beta2_IPAddressReference_To_v1_LocalObjectReference(in *ipamv1.IPAddressReference, out *corev1.LocalObjectReference, _ apimachineryconversion.Scope) error { - out.Name = in.Name - return nil -} - -func Convert_v1_LocalObjectReference_To_v1beta2_IPAddressClaimReference(in *corev1.LocalObjectReference, out *ipamv1.IPAddressClaimReference, _ apimachineryconversion.Scope) error { - out.Name = in.Name - return nil -} - -func Convert_v1beta2_IPAddressClaimReference_To_v1_LocalObjectReference(in *ipamv1.IPAddressClaimReference, out *corev1.LocalObjectReference, _ apimachineryconversion.Scope) error { - out.Name = in.Name - return nil -} - -func Convert_v1beta1_IPAddressSpec_To_v1beta2_IPAddressSpec(in *IPAddressSpec, out *ipamv1.IPAddressSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta1_IPAddressSpec_To_v1beta2_IPAddressSpec(in, out, s); err != nil { - return err - } - out.Prefix = ptr.To(int32(in.Prefix)) - return nil -} - -func Convert_v1beta2_IPAddressSpec_To_v1beta1_IPAddressSpec(in *ipamv1.IPAddressSpec, out *IPAddressSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_IPAddressSpec_To_v1beta1_IPAddressSpec(in, out, s); err != nil { - return err - } - out.Prefix = int(ptr.Deref(in.Prefix, 0)) - return nil -} - -// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94) - -func Convert_v1_Condition_To_v1beta1_Condition(in *metav1.Condition, out *clusterv1beta1.Condition, s apimachineryconversion.Scope) error { - return clusterv1beta1.Convert_v1_Condition_To_v1beta1_Condition(in, out, s) -} - -func Convert_v1beta1_Condition_To_v1_Condition(in *clusterv1beta1.Condition, out *metav1.Condition, s apimachineryconversion.Scope) error { - return clusterv1beta1.Convert_v1beta1_Condition_To_v1_Condition(in, out, s) -} diff --git a/api/ipam/v1beta1/conversion_test.go b/api/ipam/v1beta1/conversion_test.go deleted file mode 100644 index 5dc10bf54728..000000000000 --- a/api/ipam/v1beta1/conversion_test.go +++ /dev/null @@ -1,98 +0,0 @@ -//go:build !race - -/* -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 v1beta1 - -import ( - "reflect" - "testing" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" - runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/utils/ptr" - "sigs.k8s.io/randfill" - - ipamv1 "sigs.k8s.io/cluster-api/api/ipam/v1beta2" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -// Test is disabled when the race detector is enabled (via "//go:build !race" above) because otherwise the fuzz tests would just time out. - -func TestFuzzyConversion(t *testing.T) { - t.Run("for IPAddress", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &ipamv1.IPAddress{}, - Spoke: &IPAddress{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{IPAddressFuzzFuncs}, - })) - t.Run("for IPAddressClaim", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &ipamv1.IPAddressClaim{}, - Spoke: &IPAddressClaim{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{IPAddressClaimFuzzFuncs}, - })) -} - -func IPAddressFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - hubIPAddressSpec, - spokeTypedLocalObjectReference, - } -} - -func hubIPAddressSpec(in *ipamv1.IPAddressSpec, c randfill.Continue) { - c.FillNoCustom(in) - - if in.Prefix == nil { - in.Prefix = ptr.To(int32(0)) // Prefix is a required field and nil does not round trip - } -} - -func spokeTypedLocalObjectReference(in *corev1.TypedLocalObjectReference, c randfill.Continue) { - c.FillNoCustom(in) - if in.APIGroup != nil && *in.APIGroup == "" { - in.APIGroup = nil - } -} - -func IPAddressClaimFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - hubIPAddressClaimStatus, - spokeIPAddressClaimStatus, - spokeTypedLocalObjectReference, - } -} - -func hubIPAddressClaimStatus(in *ipamv1.IPAddressClaimStatus, c randfill.Continue) { - c.FillNoCustom(in) - // Drop empty structs with only omit empty fields. - if in.Deprecated != nil { - if in.Deprecated.V1Beta1 == nil || reflect.DeepEqual(in.Deprecated.V1Beta1, &ipamv1.IPAddressClaimV1Beta1DeprecatedStatus{}) { - in.Deprecated = nil - } - } -} - -func spokeIPAddressClaimStatus(in *IPAddressClaimStatus, c randfill.Continue) { - c.FillNoCustom(in) - // Drop empty structs with only omit empty fields. - if in.V1Beta2 != nil { - if reflect.DeepEqual(in.V1Beta2, &IPAddressClaimV1Beta2Status{}) { - in.V1Beta2 = nil - } - } -} diff --git a/api/ipam/v1beta1/zz_generated.conversion.go b/api/ipam/v1beta1/zz_generated.conversion.go deleted file mode 100644 index c777ace2be72..000000000000 --- a/api/ipam/v1beta1/zz_generated.conversion.go +++ /dev/null @@ -1,383 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -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 conversion-gen. DO NOT EDIT. - -package v1beta1 - -import ( - corev1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - corev1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" - v1beta2 "sigs.k8s.io/cluster-api/api/ipam/v1beta2" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*IPAddress)(nil), (*v1beta2.IPAddress)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_IPAddress_To_v1beta2_IPAddress(a.(*IPAddress), b.(*v1beta2.IPAddress), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.IPAddress)(nil), (*IPAddress)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddress_To_v1beta1_IPAddress(a.(*v1beta2.IPAddress), b.(*IPAddress), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*IPAddressClaim)(nil), (*v1beta2.IPAddressClaim)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_IPAddressClaim_To_v1beta2_IPAddressClaim(a.(*IPAddressClaim), b.(*v1beta2.IPAddressClaim), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.IPAddressClaim)(nil), (*IPAddressClaim)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressClaim_To_v1beta1_IPAddressClaim(a.(*v1beta2.IPAddressClaim), b.(*IPAddressClaim), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*IPAddressClaimList)(nil), (*v1beta2.IPAddressClaimList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_IPAddressClaimList_To_v1beta2_IPAddressClaimList(a.(*IPAddressClaimList), b.(*v1beta2.IPAddressClaimList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.IPAddressClaimList)(nil), (*IPAddressClaimList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressClaimList_To_v1beta1_IPAddressClaimList(a.(*v1beta2.IPAddressClaimList), b.(*IPAddressClaimList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*IPAddressClaimSpec)(nil), (*v1beta2.IPAddressClaimSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec(a.(*IPAddressClaimSpec), b.(*v1beta2.IPAddressClaimSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.IPAddressClaimSpec)(nil), (*IPAddressClaimSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressClaimSpec_To_v1beta1_IPAddressClaimSpec(a.(*v1beta2.IPAddressClaimSpec), b.(*IPAddressClaimSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*IPAddressList)(nil), (*v1beta2.IPAddressList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_IPAddressList_To_v1beta2_IPAddressList(a.(*IPAddressList), b.(*v1beta2.IPAddressList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.IPAddressList)(nil), (*IPAddressList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressList_To_v1beta1_IPAddressList(a.(*v1beta2.IPAddressList), b.(*IPAddressList), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1.Condition)(nil), (*corev1beta1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_Condition_To_v1beta1_Condition(a.(*v1.Condition), b.(*corev1beta1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*corev1.LocalObjectReference)(nil), (*v1beta2.IPAddressClaimReference)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_LocalObjectReference_To_v1beta2_IPAddressClaimReference(a.(*corev1.LocalObjectReference), b.(*v1beta2.IPAddressClaimReference), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*corev1.LocalObjectReference)(nil), (*v1beta2.IPAddressReference)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_LocalObjectReference_To_v1beta2_IPAddressReference(a.(*corev1.LocalObjectReference), b.(*v1beta2.IPAddressReference), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*corev1.TypedLocalObjectReference)(nil), (*v1beta2.IPPoolReference)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_TypedLocalObjectReference_To_v1beta2_IPPoolReference(a.(*corev1.TypedLocalObjectReference), b.(*v1beta2.IPPoolReference), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*corev1beta1.Condition)(nil), (*v1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_Condition_To_v1_Condition(a.(*corev1beta1.Condition), b.(*v1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*IPAddressClaimStatus)(nil), (*v1beta2.IPAddressClaimStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_IPAddressClaimStatus_To_v1beta2_IPAddressClaimStatus(a.(*IPAddressClaimStatus), b.(*v1beta2.IPAddressClaimStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*IPAddressSpec)(nil), (*v1beta2.IPAddressSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_IPAddressSpec_To_v1beta2_IPAddressSpec(a.(*IPAddressSpec), b.(*v1beta2.IPAddressSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.IPAddressClaimReference)(nil), (*corev1.LocalObjectReference)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressClaimReference_To_v1_LocalObjectReference(a.(*v1beta2.IPAddressClaimReference), b.(*corev1.LocalObjectReference), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.IPAddressClaimStatus)(nil), (*IPAddressClaimStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressClaimStatus_To_v1beta1_IPAddressClaimStatus(a.(*v1beta2.IPAddressClaimStatus), b.(*IPAddressClaimStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.IPAddressReference)(nil), (*corev1.LocalObjectReference)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressReference_To_v1_LocalObjectReference(a.(*v1beta2.IPAddressReference), b.(*corev1.LocalObjectReference), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.IPAddressSpec)(nil), (*IPAddressSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPAddressSpec_To_v1beta1_IPAddressSpec(a.(*v1beta2.IPAddressSpec), b.(*IPAddressSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.IPPoolReference)(nil), (*corev1.TypedLocalObjectReference)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_IPPoolReference_To_v1_TypedLocalObjectReference(a.(*v1beta2.IPPoolReference), b.(*corev1.TypedLocalObjectReference), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1beta1_IPAddress_To_v1beta2_IPAddress(in *IPAddress, out *v1beta2.IPAddress, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta1_IPAddressSpec_To_v1beta2_IPAddressSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta1_IPAddress_To_v1beta2_IPAddress is an autogenerated conversion function. -func Convert_v1beta1_IPAddress_To_v1beta2_IPAddress(in *IPAddress, out *v1beta2.IPAddress, s conversion.Scope) error { - return autoConvert_v1beta1_IPAddress_To_v1beta2_IPAddress(in, out, s) -} - -func autoConvert_v1beta2_IPAddress_To_v1beta1_IPAddress(in *v1beta2.IPAddress, out *IPAddress, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_IPAddressSpec_To_v1beta1_IPAddressSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_IPAddress_To_v1beta1_IPAddress is an autogenerated conversion function. -func Convert_v1beta2_IPAddress_To_v1beta1_IPAddress(in *v1beta2.IPAddress, out *IPAddress, s conversion.Scope) error { - return autoConvert_v1beta2_IPAddress_To_v1beta1_IPAddress(in, out, s) -} - -func autoConvert_v1beta1_IPAddressClaim_To_v1beta2_IPAddressClaim(in *IPAddressClaim, out *v1beta2.IPAddressClaim, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta1_IPAddressClaimStatus_To_v1beta2_IPAddressClaimStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta1_IPAddressClaim_To_v1beta2_IPAddressClaim is an autogenerated conversion function. -func Convert_v1beta1_IPAddressClaim_To_v1beta2_IPAddressClaim(in *IPAddressClaim, out *v1beta2.IPAddressClaim, s conversion.Scope) error { - return autoConvert_v1beta1_IPAddressClaim_To_v1beta2_IPAddressClaim(in, out, s) -} - -func autoConvert_v1beta2_IPAddressClaim_To_v1beta1_IPAddressClaim(in *v1beta2.IPAddressClaim, out *IPAddressClaim, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_IPAddressClaimSpec_To_v1beta1_IPAddressClaimSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_IPAddressClaimStatus_To_v1beta1_IPAddressClaimStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_IPAddressClaim_To_v1beta1_IPAddressClaim is an autogenerated conversion function. -func Convert_v1beta2_IPAddressClaim_To_v1beta1_IPAddressClaim(in *v1beta2.IPAddressClaim, out *IPAddressClaim, s conversion.Scope) error { - return autoConvert_v1beta2_IPAddressClaim_To_v1beta1_IPAddressClaim(in, out, s) -} - -func autoConvert_v1beta1_IPAddressClaimList_To_v1beta2_IPAddressClaimList(in *IPAddressClaimList, out *v1beta2.IPAddressClaimList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.IPAddressClaim, len(*in)) - for i := range *in { - if err := Convert_v1beta1_IPAddressClaim_To_v1beta2_IPAddressClaim(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta1_IPAddressClaimList_To_v1beta2_IPAddressClaimList is an autogenerated conversion function. -func Convert_v1beta1_IPAddressClaimList_To_v1beta2_IPAddressClaimList(in *IPAddressClaimList, out *v1beta2.IPAddressClaimList, s conversion.Scope) error { - return autoConvert_v1beta1_IPAddressClaimList_To_v1beta2_IPAddressClaimList(in, out, s) -} - -func autoConvert_v1beta2_IPAddressClaimList_To_v1beta1_IPAddressClaimList(in *v1beta2.IPAddressClaimList, out *IPAddressClaimList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]IPAddressClaim, len(*in)) - for i := range *in { - if err := Convert_v1beta2_IPAddressClaim_To_v1beta1_IPAddressClaim(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_IPAddressClaimList_To_v1beta1_IPAddressClaimList is an autogenerated conversion function. -func Convert_v1beta2_IPAddressClaimList_To_v1beta1_IPAddressClaimList(in *v1beta2.IPAddressClaimList, out *IPAddressClaimList, s conversion.Scope) error { - return autoConvert_v1beta2_IPAddressClaimList_To_v1beta1_IPAddressClaimList(in, out, s) -} - -func autoConvert_v1beta1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec(in *IPAddressClaimSpec, out *v1beta2.IPAddressClaimSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - if err := Convert_v1_TypedLocalObjectReference_To_v1beta2_IPPoolReference(&in.PoolRef, &out.PoolRef, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec is an autogenerated conversion function. -func Convert_v1beta1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec(in *IPAddressClaimSpec, out *v1beta2.IPAddressClaimSpec, s conversion.Scope) error { - return autoConvert_v1beta1_IPAddressClaimSpec_To_v1beta2_IPAddressClaimSpec(in, out, s) -} - -func autoConvert_v1beta2_IPAddressClaimSpec_To_v1beta1_IPAddressClaimSpec(in *v1beta2.IPAddressClaimSpec, out *IPAddressClaimSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - if err := Convert_v1beta2_IPPoolReference_To_v1_TypedLocalObjectReference(&in.PoolRef, &out.PoolRef, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_IPAddressClaimSpec_To_v1beta1_IPAddressClaimSpec is an autogenerated conversion function. -func Convert_v1beta2_IPAddressClaimSpec_To_v1beta1_IPAddressClaimSpec(in *v1beta2.IPAddressClaimSpec, out *IPAddressClaimSpec, s conversion.Scope) error { - return autoConvert_v1beta2_IPAddressClaimSpec_To_v1beta1_IPAddressClaimSpec(in, out, s) -} - -func autoConvert_v1beta1_IPAddressClaimStatus_To_v1beta2_IPAddressClaimStatus(in *IPAddressClaimStatus, out *v1beta2.IPAddressClaimStatus, s conversion.Scope) error { - if err := Convert_v1_LocalObjectReference_To_v1beta2_IPAddressReference(&in.AddressRef, &out.AddressRef, s); err != nil { - return err - } - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1beta1_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - // WARNING: in.V1Beta2 requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_IPAddressClaimStatus_To_v1beta1_IPAddressClaimStatus(in *v1beta2.IPAddressClaimStatus, out *IPAddressClaimStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(corev1beta1.Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1beta1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - if err := Convert_v1beta2_IPAddressReference_To_v1_LocalObjectReference(&in.AddressRef, &out.AddressRef, s); err != nil { - return err - } - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta1_IPAddressList_To_v1beta2_IPAddressList(in *IPAddressList, out *v1beta2.IPAddressList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.IPAddress, len(*in)) - for i := range *in { - if err := Convert_v1beta1_IPAddress_To_v1beta2_IPAddress(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta1_IPAddressList_To_v1beta2_IPAddressList is an autogenerated conversion function. -func Convert_v1beta1_IPAddressList_To_v1beta2_IPAddressList(in *IPAddressList, out *v1beta2.IPAddressList, s conversion.Scope) error { - return autoConvert_v1beta1_IPAddressList_To_v1beta2_IPAddressList(in, out, s) -} - -func autoConvert_v1beta2_IPAddressList_To_v1beta1_IPAddressList(in *v1beta2.IPAddressList, out *IPAddressList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]IPAddress, len(*in)) - for i := range *in { - if err := Convert_v1beta2_IPAddress_To_v1beta1_IPAddress(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_IPAddressList_To_v1beta1_IPAddressList is an autogenerated conversion function. -func Convert_v1beta2_IPAddressList_To_v1beta1_IPAddressList(in *v1beta2.IPAddressList, out *IPAddressList, s conversion.Scope) error { - return autoConvert_v1beta2_IPAddressList_To_v1beta1_IPAddressList(in, out, s) -} - -func autoConvert_v1beta1_IPAddressSpec_To_v1beta2_IPAddressSpec(in *IPAddressSpec, out *v1beta2.IPAddressSpec, s conversion.Scope) error { - if err := Convert_v1_LocalObjectReference_To_v1beta2_IPAddressClaimReference(&in.ClaimRef, &out.ClaimRef, s); err != nil { - return err - } - if err := Convert_v1_TypedLocalObjectReference_To_v1beta2_IPPoolReference(&in.PoolRef, &out.PoolRef, s); err != nil { - return err - } - out.Address = in.Address - // WARNING: in.Prefix requires manual conversion: inconvertible types (int vs *int32) - out.Gateway = in.Gateway - return nil -} - -func autoConvert_v1beta2_IPAddressSpec_To_v1beta1_IPAddressSpec(in *v1beta2.IPAddressSpec, out *IPAddressSpec, s conversion.Scope) error { - if err := Convert_v1beta2_IPAddressClaimReference_To_v1_LocalObjectReference(&in.ClaimRef, &out.ClaimRef, s); err != nil { - return err - } - if err := Convert_v1beta2_IPPoolReference_To_v1_TypedLocalObjectReference(&in.PoolRef, &out.PoolRef, s); err != nil { - return err - } - out.Address = in.Address - // WARNING: in.Prefix requires manual conversion: inconvertible types (*int32 vs int) - out.Gateway = in.Gateway - return nil -} diff --git a/api/ipam/v1beta2/conversion.go b/api/ipam/v1beta2/conversion.go deleted file mode 100644 index c743eabcec9c..000000000000 --- a/api/ipam/v1beta2/conversion.go +++ /dev/null @@ -1,20 +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 v1beta2 - -func (*IPAddress) Hub() {} -func (*IPAddressClaim) Hub() {} diff --git a/api/runtime/v1alpha1/.import-restrictions b/api/runtime/v1alpha1/.import-restrictions deleted file mode 100644 index f6f10b3ff544..000000000000 --- a/api/runtime/v1alpha1/.import-restrictions +++ /dev/null @@ -1,5 +0,0 @@ -rules: - - selectorRegexp: sigs[.]k8s[.]io/controller-runtime - allowedPrefixes: - - "sigs.k8s.io/controller-runtime/pkg/conversion" - forbiddenPrefixes: [] diff --git a/api/runtime/v1alpha1/conversion.go b/api/runtime/v1alpha1/conversion.go deleted file mode 100644 index 8b39e5bc0078..000000000000 --- a/api/runtime/v1alpha1/conversion.go +++ /dev/null @@ -1,178 +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 v1alpha1 - -import ( - "reflect" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" - runtimev1 "sigs.k8s.io/cluster-api/api/runtime/v1beta2" -) - -func (src *ExtensionConfig) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*runtimev1.ExtensionConfig) - - return Convert_v1alpha1_ExtensionConfig_To_v1beta2_ExtensionConfig(src, dst, nil) -} - -func (dst *ExtensionConfig) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*runtimev1.ExtensionConfig) - - if err := Convert_v1beta2_ExtensionConfig_To_v1alpha1_ExtensionConfig(src, dst, nil); err != nil { - return err - } - - dropEmptyStringsExtensionConfig(dst) - for i, h := range dst.Status.Handlers { - if h.TimeoutSeconds != nil && *h.TimeoutSeconds == 0 { - h.TimeoutSeconds = nil - } - dst.Status.Handlers[i] = h - } - return nil -} - -func Convert_v1beta2_ExtensionConfigStatus_To_v1alpha1_ExtensionConfigStatus(in *runtimev1.ExtensionConfigStatus, out *ExtensionConfigStatus, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_ExtensionConfigStatus_To_v1alpha1_ExtensionConfigStatus(in, out, s); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1beta1). - out.Conditions = nil - - // Retrieve legacy conditions (v1beta1) from the deprecated field. - if in.Deprecated != nil && in.Deprecated.V1Beta1 != nil { - if in.Deprecated.V1Beta1.Conditions != nil { - clusterv1beta1.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1beta1_Conditions(&in.Deprecated.V1Beta1.Conditions, &out.Conditions) - } - } - - // Move new conditions (v1beta2) to the v1beta2 field. - if in.Conditions == nil { - return nil - } - out.V1Beta2 = &ExtensionConfigV1Beta2Status{} - out.V1Beta2.Conditions = in.Conditions - return nil -} - -func Convert_v1alpha1_ExtensionConfigStatus_To_v1beta2_ExtensionConfigStatus(in *ExtensionConfigStatus, out *runtimev1.ExtensionConfigStatus, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha1_ExtensionConfigStatus_To_v1beta2_ExtensionConfigStatus(in, out, s); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta1 conditions should not be automatically be converted into v1beta2 conditions. - out.Conditions = nil - - // Retrieve new conditions (v1beta2) from the v1beta2 field. - if in.V1Beta2 != nil { - out.Conditions = in.V1Beta2.Conditions - } - - // Move legacy conditions (v1beta1) to the deprecated field. - if in.Conditions == nil { - return nil - } - - if out.Deprecated == nil { - out.Deprecated = &runtimev1.ExtensionConfigDeprecatedStatus{} - } - if out.Deprecated.V1Beta1 == nil { - out.Deprecated.V1Beta1 = &runtimev1.ExtensionConfigV1Beta1DeprecatedStatus{} - } - if in.Conditions != nil { - clusterv1beta1.Convert_v1beta1_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&in.Conditions, &out.Deprecated.V1Beta1.Conditions) - } - return nil -} - -func Convert_v1_Condition_To_v1beta1_Condition(in *metav1.Condition, out *clusterv1beta1.Condition, s apimachineryconversion.Scope) error { - return clusterv1beta1.Convert_v1_Condition_To_v1beta1_Condition(in, out, s) -} - -func Convert_v1beta1_Condition_To_v1_Condition(in *clusterv1beta1.Condition, out *metav1.Condition, s apimachineryconversion.Scope) error { - return clusterv1beta1.Convert_v1beta1_Condition_To_v1_Condition(in, out, s) -} - -func Convert_v1alpha1_ExtensionHandler_To_v1beta2_ExtensionHandler(in *ExtensionHandler, out *runtimev1.ExtensionHandler, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha1_ExtensionHandler_To_v1beta2_ExtensionHandler(in, out, s); err != nil { - return err - } - - if in.FailurePolicy != nil { - out.FailurePolicy = runtimev1.FailurePolicy(*in.FailurePolicy) - } - return nil -} - -func Convert_v1beta2_ExtensionHandler_To_v1alpha1_ExtensionHandler(in *runtimev1.ExtensionHandler, out *ExtensionHandler, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_ExtensionHandler_To_v1alpha1_ExtensionHandler(in, out, s); err != nil { - return err - } - - if in.FailurePolicy != "" { - out.FailurePolicy = ptr.To(FailurePolicy(in.FailurePolicy)) - } - return nil -} - -func Convert_v1alpha1_ClientConfig_To_v1beta2_ClientConfig(in *ClientConfig, out *runtimev1.ClientConfig, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha1_ClientConfig_To_v1beta2_ClientConfig(in, out, s); err != nil { - return err - } - - if in.Service != nil { - if err := Convert_v1alpha1_ServiceReference_To_v1beta2_ServiceReference(in.Service, &out.Service, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_ClientConfig_To_v1alpha1_ClientConfig(in *runtimev1.ClientConfig, out *ClientConfig, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_ClientConfig_To_v1alpha1_ClientConfig(in, out, s); err != nil { - return err - } - - if !reflect.DeepEqual(in.Service, runtimev1.ServiceReference{}) { - out.Service = &ServiceReference{} - if err := Convert_v1beta2_ServiceReference_To_v1alpha1_ServiceReference(&in.Service, out.Service, s); err != nil { - return err - } - } - return nil -} - -func dropEmptyStringsExtensionConfig(dst *ExtensionConfig) { - dropEmptyString(&dst.Spec.ClientConfig.URL) - if dst.Spec.ClientConfig.Service != nil { - dropEmptyString(&dst.Spec.ClientConfig.Service.Path) - } -} - -func dropEmptyString(s **string) { - if *s != nil && **s == "" { - *s = nil - } -} diff --git a/api/runtime/v1alpha1/conversion_test.go b/api/runtime/v1alpha1/conversion_test.go deleted file mode 100644 index 00dd0b56ff56..000000000000 --- a/api/runtime/v1alpha1/conversion_test.go +++ /dev/null @@ -1,87 +0,0 @@ -//go:build !race - -/* -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 v1alpha1 - -import ( - "reflect" - "testing" - - "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" - runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - "sigs.k8s.io/randfill" - - runtimev1 "sigs.k8s.io/cluster-api/api/runtime/v1beta2" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -// Test is disabled when the race detector is enabled (via "//go:build !race" above) because otherwise the fuzz tests would just time out. - -func TestFuzzyConversion(t *testing.T) { - t.Run("for ExtensionConfig", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &runtimev1.ExtensionConfig{}, - Spoke: &ExtensionConfig{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{ExtensionConfigFuzzFuncs}, - })) -} - -func ExtensionConfigFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - hubExtensionConfigStatus, - spokeExtensionConfig, - spokeExtensionConfigStatus, - } -} - -func hubExtensionConfigStatus(in *runtimev1.ExtensionConfigStatus, c randfill.Continue) { - c.FillNoCustom(in) - // Drop empty structs with only omit empty fields. - if in.Deprecated != nil { - if in.Deprecated.V1Beta1 == nil || reflect.DeepEqual(in.Deprecated.V1Beta1, &runtimev1.ExtensionConfigV1Beta1DeprecatedStatus{}) { - in.Deprecated = nil - } - } -} - -func spokeExtensionConfig(in *ExtensionConfig, c randfill.Continue) { - c.FillNoCustom(in) - - dropEmptyStringsExtensionConfig(in) - - if in.Spec.ClientConfig.Service != nil && reflect.DeepEqual(in.Spec.ClientConfig.Service, &ServiceReference{}) { - in.Spec.ClientConfig.Service = nil - } -} - -func spokeExtensionConfigStatus(in *ExtensionConfigStatus, c randfill.Continue) { - c.FillNoCustom(in) - // Drop empty structs with only omit empty fields. - if in.V1Beta2 != nil { - if reflect.DeepEqual(in.V1Beta2, &ExtensionConfigV1Beta2Status{}) { - in.V1Beta2 = nil - } - } - - for i, h := range in.Handlers { - if h.FailurePolicy != nil && *h.FailurePolicy == "" { - // &"" Is not a valid value for FailurePolicy as the enum validation enforces an enum value if FailurePolicy is set. - h.FailurePolicy = nil - } - in.Handlers[i] = h - } -} diff --git a/api/runtime/v1alpha1/zz_generated.conversion.go b/api/runtime/v1alpha1/zz_generated.conversion.go deleted file mode 100644 index 29657403c438..000000000000 --- a/api/runtime/v1alpha1/zz_generated.conversion.go +++ /dev/null @@ -1,382 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -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 conversion-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - unsafe "unsafe" - - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - v1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" - v1beta2 "sigs.k8s.io/cluster-api/api/runtime/v1beta2" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*ExtensionConfig)(nil), (*v1beta2.ExtensionConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ExtensionConfig_To_v1beta2_ExtensionConfig(a.(*ExtensionConfig), b.(*v1beta2.ExtensionConfig), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ExtensionConfig)(nil), (*ExtensionConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ExtensionConfig_To_v1alpha1_ExtensionConfig(a.(*v1beta2.ExtensionConfig), b.(*ExtensionConfig), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ExtensionConfigList)(nil), (*v1beta2.ExtensionConfigList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ExtensionConfigList_To_v1beta2_ExtensionConfigList(a.(*ExtensionConfigList), b.(*v1beta2.ExtensionConfigList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ExtensionConfigList)(nil), (*ExtensionConfigList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ExtensionConfigList_To_v1alpha1_ExtensionConfigList(a.(*v1beta2.ExtensionConfigList), b.(*ExtensionConfigList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ExtensionConfigSpec)(nil), (*v1beta2.ExtensionConfigSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ExtensionConfigSpec_To_v1beta2_ExtensionConfigSpec(a.(*ExtensionConfigSpec), b.(*v1beta2.ExtensionConfigSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ExtensionConfigSpec)(nil), (*ExtensionConfigSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ExtensionConfigSpec_To_v1alpha1_ExtensionConfigSpec(a.(*v1beta2.ExtensionConfigSpec), b.(*ExtensionConfigSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*GroupVersionHook)(nil), (*v1beta2.GroupVersionHook)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_GroupVersionHook_To_v1beta2_GroupVersionHook(a.(*GroupVersionHook), b.(*v1beta2.GroupVersionHook), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.GroupVersionHook)(nil), (*GroupVersionHook)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_GroupVersionHook_To_v1alpha1_GroupVersionHook(a.(*v1beta2.GroupVersionHook), b.(*GroupVersionHook), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ServiceReference)(nil), (*v1beta2.ServiceReference)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ServiceReference_To_v1beta2_ServiceReference(a.(*ServiceReference), b.(*v1beta2.ServiceReference), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ServiceReference)(nil), (*ServiceReference)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ServiceReference_To_v1alpha1_ServiceReference(a.(*v1beta2.ServiceReference), b.(*ServiceReference), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1.Condition)(nil), (*v1beta1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_Condition_To_v1beta1_Condition(a.(*v1.Condition), b.(*v1beta1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ClientConfig)(nil), (*v1beta2.ClientConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ClientConfig_To_v1beta2_ClientConfig(a.(*ClientConfig), b.(*v1beta2.ClientConfig), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ExtensionConfigStatus)(nil), (*v1beta2.ExtensionConfigStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ExtensionConfigStatus_To_v1beta2_ExtensionConfigStatus(a.(*ExtensionConfigStatus), b.(*v1beta2.ExtensionConfigStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ExtensionHandler)(nil), (*v1beta2.ExtensionHandler)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha1_ExtensionHandler_To_v1beta2_ExtensionHandler(a.(*ExtensionHandler), b.(*v1beta2.ExtensionHandler), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta1.Condition)(nil), (*v1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta1_Condition_To_v1_Condition(a.(*v1beta1.Condition), b.(*v1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClientConfig)(nil), (*ClientConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClientConfig_To_v1alpha1_ClientConfig(a.(*v1beta2.ClientConfig), b.(*ClientConfig), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ExtensionConfigStatus)(nil), (*ExtensionConfigStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ExtensionConfigStatus_To_v1alpha1_ExtensionConfigStatus(a.(*v1beta2.ExtensionConfigStatus), b.(*ExtensionConfigStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ExtensionHandler)(nil), (*ExtensionHandler)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ExtensionHandler_To_v1alpha1_ExtensionHandler(a.(*v1beta2.ExtensionHandler), b.(*ExtensionHandler), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha1_ClientConfig_To_v1beta2_ClientConfig(in *ClientConfig, out *v1beta2.ClientConfig, s conversion.Scope) error { - if err := v1.Convert_Pointer_string_To_string(&in.URL, &out.URL, s); err != nil { - return err - } - // WARNING: in.Service requires manual conversion: inconvertible types (*sigs.k8s.io/cluster-api/api/runtime/v1alpha1.ServiceReference vs sigs.k8s.io/cluster-api/api/runtime/v1beta2.ServiceReference) - out.CABundle = *(*[]byte)(unsafe.Pointer(&in.CABundle)) - return nil -} - -func autoConvert_v1beta2_ClientConfig_To_v1alpha1_ClientConfig(in *v1beta2.ClientConfig, out *ClientConfig, s conversion.Scope) error { - if err := v1.Convert_string_To_Pointer_string(&in.URL, &out.URL, s); err != nil { - return err - } - // WARNING: in.Service requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/runtime/v1beta2.ServiceReference vs *sigs.k8s.io/cluster-api/api/runtime/v1alpha1.ServiceReference) - out.CABundle = *(*[]byte)(unsafe.Pointer(&in.CABundle)) - return nil -} - -func autoConvert_v1alpha1_ExtensionConfig_To_v1beta2_ExtensionConfig(in *ExtensionConfig, out *v1beta2.ExtensionConfig, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha1_ExtensionConfigSpec_To_v1beta2_ExtensionConfigSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha1_ExtensionConfigStatus_To_v1beta2_ExtensionConfigStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha1_ExtensionConfig_To_v1beta2_ExtensionConfig is an autogenerated conversion function. -func Convert_v1alpha1_ExtensionConfig_To_v1beta2_ExtensionConfig(in *ExtensionConfig, out *v1beta2.ExtensionConfig, s conversion.Scope) error { - return autoConvert_v1alpha1_ExtensionConfig_To_v1beta2_ExtensionConfig(in, out, s) -} - -func autoConvert_v1beta2_ExtensionConfig_To_v1alpha1_ExtensionConfig(in *v1beta2.ExtensionConfig, out *ExtensionConfig, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_ExtensionConfigSpec_To_v1alpha1_ExtensionConfigSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_ExtensionConfigStatus_To_v1alpha1_ExtensionConfigStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_ExtensionConfig_To_v1alpha1_ExtensionConfig is an autogenerated conversion function. -func Convert_v1beta2_ExtensionConfig_To_v1alpha1_ExtensionConfig(in *v1beta2.ExtensionConfig, out *ExtensionConfig, s conversion.Scope) error { - return autoConvert_v1beta2_ExtensionConfig_To_v1alpha1_ExtensionConfig(in, out, s) -} - -func autoConvert_v1alpha1_ExtensionConfigList_To_v1beta2_ExtensionConfigList(in *ExtensionConfigList, out *v1beta2.ExtensionConfigList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.ExtensionConfig, len(*in)) - for i := range *in { - if err := Convert_v1alpha1_ExtensionConfig_To_v1beta2_ExtensionConfig(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha1_ExtensionConfigList_To_v1beta2_ExtensionConfigList is an autogenerated conversion function. -func Convert_v1alpha1_ExtensionConfigList_To_v1beta2_ExtensionConfigList(in *ExtensionConfigList, out *v1beta2.ExtensionConfigList, s conversion.Scope) error { - return autoConvert_v1alpha1_ExtensionConfigList_To_v1beta2_ExtensionConfigList(in, out, s) -} - -func autoConvert_v1beta2_ExtensionConfigList_To_v1alpha1_ExtensionConfigList(in *v1beta2.ExtensionConfigList, out *ExtensionConfigList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ExtensionConfig, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ExtensionConfig_To_v1alpha1_ExtensionConfig(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_ExtensionConfigList_To_v1alpha1_ExtensionConfigList is an autogenerated conversion function. -func Convert_v1beta2_ExtensionConfigList_To_v1alpha1_ExtensionConfigList(in *v1beta2.ExtensionConfigList, out *ExtensionConfigList, s conversion.Scope) error { - return autoConvert_v1beta2_ExtensionConfigList_To_v1alpha1_ExtensionConfigList(in, out, s) -} - -func autoConvert_v1alpha1_ExtensionConfigSpec_To_v1beta2_ExtensionConfigSpec(in *ExtensionConfigSpec, out *v1beta2.ExtensionConfigSpec, s conversion.Scope) error { - if err := Convert_v1alpha1_ClientConfig_To_v1beta2_ClientConfig(&in.ClientConfig, &out.ClientConfig, s); err != nil { - return err - } - out.NamespaceSelector = (*v1.LabelSelector)(unsafe.Pointer(in.NamespaceSelector)) - out.Settings = *(*map[string]string)(unsafe.Pointer(&in.Settings)) - return nil -} - -// Convert_v1alpha1_ExtensionConfigSpec_To_v1beta2_ExtensionConfigSpec is an autogenerated conversion function. -func Convert_v1alpha1_ExtensionConfigSpec_To_v1beta2_ExtensionConfigSpec(in *ExtensionConfigSpec, out *v1beta2.ExtensionConfigSpec, s conversion.Scope) error { - return autoConvert_v1alpha1_ExtensionConfigSpec_To_v1beta2_ExtensionConfigSpec(in, out, s) -} - -func autoConvert_v1beta2_ExtensionConfigSpec_To_v1alpha1_ExtensionConfigSpec(in *v1beta2.ExtensionConfigSpec, out *ExtensionConfigSpec, s conversion.Scope) error { - if err := Convert_v1beta2_ClientConfig_To_v1alpha1_ClientConfig(&in.ClientConfig, &out.ClientConfig, s); err != nil { - return err - } - out.NamespaceSelector = (*v1.LabelSelector)(unsafe.Pointer(in.NamespaceSelector)) - out.Settings = *(*map[string]string)(unsafe.Pointer(&in.Settings)) - return nil -} - -// Convert_v1beta2_ExtensionConfigSpec_To_v1alpha1_ExtensionConfigSpec is an autogenerated conversion function. -func Convert_v1beta2_ExtensionConfigSpec_To_v1alpha1_ExtensionConfigSpec(in *v1beta2.ExtensionConfigSpec, out *ExtensionConfigSpec, s conversion.Scope) error { - return autoConvert_v1beta2_ExtensionConfigSpec_To_v1alpha1_ExtensionConfigSpec(in, out, s) -} - -func autoConvert_v1alpha1_ExtensionConfigStatus_To_v1beta2_ExtensionConfigStatus(in *ExtensionConfigStatus, out *v1beta2.ExtensionConfigStatus, s conversion.Scope) error { - if in.Handlers != nil { - in, out := &in.Handlers, &out.Handlers - *out = make([]v1beta2.ExtensionHandler, len(*in)) - for i := range *in { - if err := Convert_v1alpha1_ExtensionHandler_To_v1beta2_ExtensionHandler(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Handlers = nil - } - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1beta1_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - // WARNING: in.V1Beta2 requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_ExtensionConfigStatus_To_v1alpha1_ExtensionConfigStatus(in *v1beta2.ExtensionConfigStatus, out *ExtensionConfigStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(v1beta1.Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1beta1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - if in.Handlers != nil { - in, out := &in.Handlers, &out.Handlers - *out = make([]ExtensionHandler, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ExtensionHandler_To_v1alpha1_ExtensionHandler(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Handlers = nil - } - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha1_ExtensionHandler_To_v1beta2_ExtensionHandler(in *ExtensionHandler, out *v1beta2.ExtensionHandler, s conversion.Scope) error { - out.Name = in.Name - if err := Convert_v1alpha1_GroupVersionHook_To_v1beta2_GroupVersionHook(&in.RequestHook, &out.RequestHook, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.TimeoutSeconds, &out.TimeoutSeconds, s); err != nil { - return err - } - // WARNING: in.FailurePolicy requires manual conversion: inconvertible types (*sigs.k8s.io/cluster-api/api/runtime/v1alpha1.FailurePolicy vs sigs.k8s.io/cluster-api/api/runtime/v1beta2.FailurePolicy) - return nil -} - -func autoConvert_v1beta2_ExtensionHandler_To_v1alpha1_ExtensionHandler(in *v1beta2.ExtensionHandler, out *ExtensionHandler, s conversion.Scope) error { - out.Name = in.Name - if err := Convert_v1beta2_GroupVersionHook_To_v1alpha1_GroupVersionHook(&in.RequestHook, &out.RequestHook, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.TimeoutSeconds, &out.TimeoutSeconds, s); err != nil { - return err - } - // WARNING: in.FailurePolicy requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/runtime/v1beta2.FailurePolicy vs *sigs.k8s.io/cluster-api/api/runtime/v1alpha1.FailurePolicy) - return nil -} - -func autoConvert_v1alpha1_GroupVersionHook_To_v1beta2_GroupVersionHook(in *GroupVersionHook, out *v1beta2.GroupVersionHook, s conversion.Scope) error { - out.APIVersion = in.APIVersion - out.Hook = in.Hook - return nil -} - -// Convert_v1alpha1_GroupVersionHook_To_v1beta2_GroupVersionHook is an autogenerated conversion function. -func Convert_v1alpha1_GroupVersionHook_To_v1beta2_GroupVersionHook(in *GroupVersionHook, out *v1beta2.GroupVersionHook, s conversion.Scope) error { - return autoConvert_v1alpha1_GroupVersionHook_To_v1beta2_GroupVersionHook(in, out, s) -} - -func autoConvert_v1beta2_GroupVersionHook_To_v1alpha1_GroupVersionHook(in *v1beta2.GroupVersionHook, out *GroupVersionHook, s conversion.Scope) error { - out.APIVersion = in.APIVersion - out.Hook = in.Hook - return nil -} - -// Convert_v1beta2_GroupVersionHook_To_v1alpha1_GroupVersionHook is an autogenerated conversion function. -func Convert_v1beta2_GroupVersionHook_To_v1alpha1_GroupVersionHook(in *v1beta2.GroupVersionHook, out *GroupVersionHook, s conversion.Scope) error { - return autoConvert_v1beta2_GroupVersionHook_To_v1alpha1_GroupVersionHook(in, out, s) -} - -func autoConvert_v1alpha1_ServiceReference_To_v1beta2_ServiceReference(in *ServiceReference, out *v1beta2.ServiceReference, s conversion.Scope) error { - out.Namespace = in.Namespace - out.Name = in.Name - if err := v1.Convert_Pointer_string_To_string(&in.Path, &out.Path, s); err != nil { - return err - } - out.Port = (*int32)(unsafe.Pointer(in.Port)) - return nil -} - -// Convert_v1alpha1_ServiceReference_To_v1beta2_ServiceReference is an autogenerated conversion function. -func Convert_v1alpha1_ServiceReference_To_v1beta2_ServiceReference(in *ServiceReference, out *v1beta2.ServiceReference, s conversion.Scope) error { - return autoConvert_v1alpha1_ServiceReference_To_v1beta2_ServiceReference(in, out, s) -} - -func autoConvert_v1beta2_ServiceReference_To_v1alpha1_ServiceReference(in *v1beta2.ServiceReference, out *ServiceReference, s conversion.Scope) error { - out.Namespace = in.Namespace - out.Name = in.Name - if err := v1.Convert_string_To_Pointer_string(&in.Path, &out.Path, s); err != nil { - return err - } - out.Port = (*int32)(unsafe.Pointer(in.Port)) - return nil -} - -// Convert_v1beta2_ServiceReference_To_v1alpha1_ServiceReference is an autogenerated conversion function. -func Convert_v1beta2_ServiceReference_To_v1alpha1_ServiceReference(in *v1beta2.ServiceReference, out *ServiceReference, s conversion.Scope) error { - return autoConvert_v1beta2_ServiceReference_To_v1alpha1_ServiceReference(in, out, s) -} diff --git a/api/runtime/v1beta2/conversion.go b/api/runtime/v1beta2/conversion.go deleted file mode 100644 index df9c0f8a8e6f..000000000000 --- a/api/runtime/v1beta2/conversion.go +++ /dev/null @@ -1,19 +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 v1beta2 - -func (*ExtensionConfig) Hub() {} diff --git a/controllers/clustercache/index.go b/controllers/clustercache/index.go index b60f0a93f87d..6d20c1319b4f 100644 --- a/controllers/clustercache/index.go +++ b/controllers/clustercache/index.go @@ -19,7 +19,7 @@ package clustercache import ( corev1 "k8s.io/api/core/v1" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" + "sigs.k8s.io/cluster-api/util/index" ) // NodeProviderIDIndex is used to index Nodes by ProviderID. diff --git a/exp/topology/desiredstate/desired_state.go b/exp/topology/desiredstate/desired_state.go index afc5dcc34ebd..3f7c6ef54545 100644 --- a/exp/topology/desiredstate/desired_state.go +++ b/exp/topology/desiredstate/desired_state.go @@ -56,6 +56,7 @@ import ( "sigs.k8s.io/cluster-api/util" "sigs.k8s.io/cluster-api/util/annotations" "sigs.k8s.io/cluster-api/util/conversion" + "sigs.k8s.io/cluster-api/util/converter" ) // Generator is a generator to generate the desired state. @@ -565,7 +566,7 @@ func (g *generator) computeControlPlaneVersion(ctx context.Context, s *scope.Sco if hooks.IsPending(runtimehooksv1.AfterControlPlaneUpgrade, s.Current.Cluster) { v1beta1Cluster := &clusterv1beta1.Cluster{} // DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation. - if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil { + if err := converter.ConvertClusterHubToV1Beta1(ctx, s.Current.Cluster.DeepCopy(), v1beta1Cluster); err != nil { return "", errors.Wrap(err, "error converting Cluster to v1beta1 Cluster") } @@ -668,7 +669,7 @@ func (g *generator) computeControlPlaneVersion(ctx context.Context, s *scope.Sco // up the topologyVersion. Call the BeforeClusterUpgrade hook before picking up the desired version. v1beta1Cluster := &clusterv1beta1.Cluster{} // DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation. - if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil { + if err := converter.ConvertClusterHubToV1Beta1(ctx, s.Current.Cluster.DeepCopy(), v1beta1Cluster); err != nil { return "", errors.Wrap(err, "error converting Cluster to v1beta1 Cluster") } diff --git a/go.mod b/go.mod index 17a52aa1cd8c..02a4f666c7a4 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,10 @@ module sigs.k8s.io/cluster-api -go 1.24.0 +go 1.25.0 + +replace sigs.k8s.io/cluster-api/api/core => ./api/core + +replace sigs.k8s.io/controller-runtime => ../controller-runtime require ( github.com/MakeNowJust/heredoc v1.0.0 @@ -25,7 +29,7 @@ require ( github.com/onsi/ginkgo/v2 v2.25.3 github.com/onsi/gomega v1.38.2 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.22.0 + github.com/prometheus/client_golang v1.23.2 github.com/spf13/cobra v1.10.1 github.com/spf13/pflag v1.0.10 github.com/spf13/viper v1.21.0 @@ -39,16 +43,17 @@ require ( golang.org/x/text v0.29.0 gomodules.xyz/jsonpatch/v2 v2.5.0 google.golang.org/grpc v1.72.3 - k8s.io/api v0.34.1 - k8s.io/apiextensions-apiserver v0.34.1 - k8s.io/apimachinery v0.34.1 - k8s.io/apiserver v0.34.1 - k8s.io/client-go v0.34.1 + k8s.io/api v0.35.0-alpha.1 + k8s.io/apiextensions-apiserver v0.35.0-alpha.1 + k8s.io/apimachinery v0.35.0-alpha.1 + k8s.io/apiserver v0.35.0-alpha.1 + k8s.io/client-go v0.35.0-alpha.1 k8s.io/cluster-bootstrap v0.34.1 - k8s.io/component-base v0.34.1 + k8s.io/component-base v0.35.0-alpha.1 k8s.io/klog/v2 v2.130.1 - k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 + k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 + sigs.k8s.io/cluster-api/api/core v0.0.0 sigs.k8s.io/controller-runtime v0.22.1 sigs.k8s.io/randfill v1.0.0 sigs.k8s.io/yaml v1.6.0 @@ -112,9 +117,9 @@ require ( github.com/opencontainers/go-digest v1.0.0 // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.62.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.66.1 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/rivo/uniseg v0.4.2 // indirect github.com/sagikazarmark/locafero v0.11.0 // indirect github.com/shopspring/decimal v1.4.0 // indirect @@ -126,13 +131,13 @@ require ( github.com/vincent-petithory/dataurl v1.0.0 // indirect github.com/x448/float16 v0.8.4 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/otel v1.36.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect - go.opentelemetry.io/otel/metric v1.35.0 // indirect - go.opentelemetry.io/otel/sdk v1.34.0 // indirect - go.opentelemetry.io/otel/trace v1.35.0 // indirect + go.opentelemetry.io/otel/metric v1.36.0 // indirect + go.opentelemetry.io/otel/sdk v1.36.0 // indirect + go.opentelemetry.io/otel/trace v1.36.0 // indirect go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/automaxprocs v1.6.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -147,12 +152,12 @@ require ( golang.org/x/time v0.9.0 // indirect golang.org/x/tools v0.36.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect - google.golang.org/protobuf v1.36.7 // indirect - gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect + google.golang.org/protobuf v1.36.8 // indirect + gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect - sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect ) diff --git a/go.sum b/go.sum index 729332dba2f6..78568000710c 100644 --- a/go.sum +++ b/go.sum @@ -265,15 +265,15 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.2 h1:YwD0ulJSJytLpiaWua0sBDusfsCZohxjxzVTYjwxfV8= github.com/rivo/uniseg v0.4.2/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -344,22 +344,22 @@ go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJyS go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= +go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= -go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= -go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= +go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= +go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= +go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= +go.opentelemetry.io/otel/sdk/metric v1.36.0 h1:r0ntwwGosWGaa0CrSt8cuNuTcccMXERFwHX4dThiPis= +go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4= +go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= +go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= @@ -548,8 +548,8 @@ google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:jbe3Bkdp+Dh2IrslsFCklNhweNTBgSYanP1UXhJDhKg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -559,15 +559,15 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.72.3 h1:6sysal2a4j9trATt+J/TSSEA/Q45ZrXzNh5zy4NMWuA= google.golang.org/grpc v1.72.3/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= -google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A= -google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= +gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -581,35 +581,33 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM= -k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk= -k8s.io/apiextensions-apiserver v0.34.1 h1:NNPBva8FNAPt1iSVwIE0FsdrVriRXMsaWFMqJbII2CI= -k8s.io/apiextensions-apiserver v0.34.1/go.mod h1:hP9Rld3zF5Ay2Of3BeEpLAToP+l4s5UlxiHfqRaRcMc= -k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4= -k8s.io/apimachinery v0.34.1/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= -k8s.io/apiserver v0.34.1 h1:U3JBGdgANK3dfFcyknWde1G6X1F4bg7PXuvlqt8lITA= -k8s.io/apiserver v0.34.1/go.mod h1:eOOc9nrVqlBI1AFCvVzsob0OxtPZUCPiUJL45JOTBG0= -k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY= -k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8= +k8s.io/api v0.35.0-alpha.1 h1:aL5Q6ZV4MQ2NZMmlnAsV7wj9a30gLhlLnGbx6GUmuBs= +k8s.io/api v0.35.0-alpha.1/go.mod h1:BoZqpN+rs1nX+WI4b+iOCpHIAZT1A5Cx29nfk4Kn4DY= +k8s.io/apiextensions-apiserver v0.35.0-alpha.1 h1:x/nDc4Ic4j9Pjn8trEuRIkbLgVWkSPTNkDWrNGUnCtg= +k8s.io/apiextensions-apiserver v0.35.0-alpha.1/go.mod h1:g00cZRV928nCiZtLlyedrVInFkJJHxzy8QWCyYJslWQ= +k8s.io/apimachinery v0.35.0-alpha.1 h1:FZCO78xXJf7Bb7oLzw5p6nakz/SWaGTi4+IaOl7uAYk= +k8s.io/apimachinery v0.35.0-alpha.1/go.mod h1:1YSL0XujdSTcnuHOR73D16EdW+d49JOdd8TXjCo6Dhc= +k8s.io/apiserver v0.35.0-alpha.1 h1:y30xMnHnusLzP3IU5rn9prng1dBNdWIXWnDbpEKT914= +k8s.io/apiserver v0.35.0-alpha.1/go.mod h1:Xeoi42Em6YeTr+yx3kFByqlCMIP4nbArQBWSblaH7Vs= +k8s.io/client-go v0.35.0-alpha.1 h1:DbQuaoETvFkhWfIckZj3hj1iNnBvEIdiWjSlosmtlX4= +k8s.io/client-go v0.35.0-alpha.1/go.mod h1:CI5Ggq6AukXNEBV2UeBgY4tfrOZfDSa7KuoWwLfHqGA= k8s.io/cluster-bootstrap v0.34.1 h1:lyCwJKoeYzGI93vk5Sn/Gz2rzfTRXkRuZYOk2rUsHfA= k8s.io/cluster-bootstrap v0.34.1/go.mod h1:9EJfkp7Fu4YBU0F6ysvrI5TndWLo8zufmDSjIWBNd94= -k8s.io/component-base v0.34.1 h1:v7xFgG+ONhytZNFpIz5/kecwD+sUhVE6HU7qQUiRM4A= -k8s.io/component-base v0.34.1/go.mod h1:mknCpLlTSKHzAQJJnnHVKqjxR7gBeHRv0rPXA7gdtQ0= +k8s.io/component-base v0.35.0-alpha.1 h1:k7wtwWeS+YbH85qfNimsaDOLhnO28wXazq1YTOjnbQI= +k8s.io/component-base v0.35.0-alpha.1/go.mod h1:TczxAPFOtycFi0/MQwZEJAiaGgXb3/XwZib3CgpgA60= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/controller-runtime v0.22.1 h1:Ah1T7I+0A7ize291nJZdS1CabF/lB4E++WizgV24Eqg= -sigs.k8s.io/controller-runtime v0.22.1/go.mod h1:FwiwRjkRPbiN+zp2QRp7wlTCzbUXxZ/D4OzuQUDwBHY= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= diff --git a/hack/tools/go.mod b/hack/tools/go.mod index bb161a4a016a..ed803b298954 100644 --- a/hack/tools/go.mod +++ b/hack/tools/go.mod @@ -1,11 +1,15 @@ module sigs.k8s.io/cluster-api/hack/tools -go 1.24.0 +go 1.25.0 + +replace sigs.k8s.io/cluster-api/api/core => ../../api/core replace sigs.k8s.io/cluster-api => ../../ replace sigs.k8s.io/cluster-api/test => ../../test +replace sigs.k8s.io/controller-runtime => ../../../controller-runtime + require ( cloud.google.com/go/storage v1.57.0 github.com/blang/semver/v4 v4.0.0 @@ -17,14 +21,15 @@ require ( github.com/valyala/fastjson v1.6.4 golang.org/x/oauth2 v0.31.0 google.golang.org/api v0.250.0 - k8s.io/api v0.34.1 - k8s.io/apiextensions-apiserver v0.34.1 - k8s.io/apimachinery v0.34.1 - k8s.io/client-go v0.34.1 + k8s.io/api v0.35.0-alpha.1 + k8s.io/apiextensions-apiserver v0.35.0-alpha.1 + k8s.io/apimachinery v0.35.0-alpha.1 + k8s.io/client-go v0.35.0-alpha.1 k8s.io/klog/v2 v2.130.1 - k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 + k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 sigs.k8s.io/cluster-api v0.0.0-00010101000000-000000000000 + sigs.k8s.io/cluster-api/api/core v0.0.0 sigs.k8s.io/cluster-api/test v0.0.0-00010101000000-000000000000 sigs.k8s.io/controller-runtime v0.22.1 sigs.k8s.io/controller-tools v0.19.0 @@ -63,7 +68,7 @@ require ( go.opentelemetry.io/otel/sdk/metric v1.37.0 // indirect go.yaml.in/yaml/v2 v2.4.2 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect sigs.k8s.io/randfill v1.0.0 // indirect sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect ) @@ -131,10 +136,10 @@ require ( github.com/opencontainers/image-spec v1.1.0-rc5 // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect - github.com/prometheus/client_golang v1.22.0 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.62.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus/client_golang v1.23.2 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.66.1 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/rivo/uniseg v0.4.4 // indirect github.com/sagikazarmark/locafero v0.11.0 // indirect github.com/saschagrunert/go-modiff v1.3.5 // indirect @@ -171,11 +176,11 @@ require ( gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiserver v0.34.1 // indirect + k8s.io/apiserver v0.35.0-alpha.1 // indirect k8s.io/cluster-bootstrap v0.34.1 // indirect - k8s.io/component-base v0.34.1 // indirect + k8s.io/component-base v0.35.0-alpha.1 // indirect k8s.io/release v0.16.9 - sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/kustomize/kyaml v0.17.2 // indirect sigs.k8s.io/release-sdk v0.11.0 // indirect sigs.k8s.io/release-utils v0.8.1 // indirect diff --git a/hack/tools/go.sum b/hack/tools/go.sum index 2d93b2ee5aaa..660e2867c1d7 100644 --- a/hack/tools/go.sum +++ b/hack/tools/go.sum @@ -285,14 +285,14 @@ github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -504,8 +504,8 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= +gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= @@ -520,36 +520,34 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= -k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM= -k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk= -k8s.io/apiextensions-apiserver v0.34.1 h1:NNPBva8FNAPt1iSVwIE0FsdrVriRXMsaWFMqJbII2CI= -k8s.io/apiextensions-apiserver v0.34.1/go.mod h1:hP9Rld3zF5Ay2Of3BeEpLAToP+l4s5UlxiHfqRaRcMc= -k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4= -k8s.io/apimachinery v0.34.1/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= -k8s.io/apiserver v0.34.1 h1:U3JBGdgANK3dfFcyknWde1G6X1F4bg7PXuvlqt8lITA= -k8s.io/apiserver v0.34.1/go.mod h1:eOOc9nrVqlBI1AFCvVzsob0OxtPZUCPiUJL45JOTBG0= -k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY= -k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8= +k8s.io/api v0.35.0-alpha.1 h1:aL5Q6ZV4MQ2NZMmlnAsV7wj9a30gLhlLnGbx6GUmuBs= +k8s.io/api v0.35.0-alpha.1/go.mod h1:BoZqpN+rs1nX+WI4b+iOCpHIAZT1A5Cx29nfk4Kn4DY= +k8s.io/apiextensions-apiserver v0.35.0-alpha.1 h1:x/nDc4Ic4j9Pjn8trEuRIkbLgVWkSPTNkDWrNGUnCtg= +k8s.io/apiextensions-apiserver v0.35.0-alpha.1/go.mod h1:g00cZRV928nCiZtLlyedrVInFkJJHxzy8QWCyYJslWQ= +k8s.io/apimachinery v0.35.0-alpha.1 h1:FZCO78xXJf7Bb7oLzw5p6nakz/SWaGTi4+IaOl7uAYk= +k8s.io/apimachinery v0.35.0-alpha.1/go.mod h1:1YSL0XujdSTcnuHOR73D16EdW+d49JOdd8TXjCo6Dhc= +k8s.io/apiserver v0.35.0-alpha.1 h1:y30xMnHnusLzP3IU5rn9prng1dBNdWIXWnDbpEKT914= +k8s.io/apiserver v0.35.0-alpha.1/go.mod h1:Xeoi42Em6YeTr+yx3kFByqlCMIP4nbArQBWSblaH7Vs= +k8s.io/client-go v0.35.0-alpha.1 h1:DbQuaoETvFkhWfIckZj3hj1iNnBvEIdiWjSlosmtlX4= +k8s.io/client-go v0.35.0-alpha.1/go.mod h1:CI5Ggq6AukXNEBV2UeBgY4tfrOZfDSa7KuoWwLfHqGA= k8s.io/cluster-bootstrap v0.34.1 h1:lyCwJKoeYzGI93vk5Sn/Gz2rzfTRXkRuZYOk2rUsHfA= k8s.io/cluster-bootstrap v0.34.1/go.mod h1:9EJfkp7Fu4YBU0F6ysvrI5TndWLo8zufmDSjIWBNd94= -k8s.io/component-base v0.34.1 h1:v7xFgG+ONhytZNFpIz5/kecwD+sUhVE6HU7qQUiRM4A= -k8s.io/component-base v0.34.1/go.mod h1:mknCpLlTSKHzAQJJnnHVKqjxR7gBeHRv0rPXA7gdtQ0= +k8s.io/component-base v0.35.0-alpha.1 h1:k7wtwWeS+YbH85qfNimsaDOLhnO28wXazq1YTOjnbQI= +k8s.io/component-base v0.35.0-alpha.1/go.mod h1:TczxAPFOtycFi0/MQwZEJAiaGgXb3/XwZib3CgpgA60= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= k8s.io/release v0.16.9 h1:CDqFlNmckqtXEn+YPVbDoUbnmqf1Y2R9BkHBC2vgMGo= k8s.io/release v0.16.9/go.mod h1:iRTTQYssZDVke2X7bqhdbi3cPjdmRqZXpIJsp2IRDyM= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/controller-runtime v0.22.1 h1:Ah1T7I+0A7ize291nJZdS1CabF/lB4E++WizgV24Eqg= -sigs.k8s.io/controller-runtime v0.22.1/go.mod h1:FwiwRjkRPbiN+zp2QRp7wlTCzbUXxZ/D4OzuQUDwBHY= sigs.k8s.io/controller-tools v0.19.0 h1:OU7jrPPiZusryu6YK0jYSjPqg8Vhf8cAzluP9XGI5uk= sigs.k8s.io/controller-tools v0.19.0/go.mod h1:y5HY/iNDFkmFla2CfQoVb2AQXMsBk4ad84iR1PLANB0= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/kubebuilder/docs/book/utils v0.0.0-20211028165026-57688c578b5d h1:KLiQzLW3RZJR19+j4pw2h5iioyAyqCkDBEAFdnGa3N8= sigs.k8s.io/kubebuilder/docs/book/utils v0.0.0-20211028165026-57688c578b5d/go.mod h1:NRdZafr4zSCseLQggdvIMXa7umxf+Q+PJzrj3wFwiGE= sigs.k8s.io/kustomize/api v0.17.3 h1:6GCuHSsxq7fN5yhF2XrC+AAr8gxQwhexgHflOAD/JJU= diff --git a/internal/api/addons/v1alpha3/conversion.go b/internal/api/addons/v1alpha3/conversion.go deleted file mode 100644 index fa302b5b9749..000000000000 --- a/internal/api/addons/v1alpha3/conversion.go +++ /dev/null @@ -1,168 +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 v1alpha3 - -import ( - "reflect" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta2" - clusterv1alpha3 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha3" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -func (src *ClusterResourceSet) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*addonsv1.ClusterResourceSet) - - if err := Convert_v1alpha3_ClusterResourceSet_To_v1beta2_ClusterResourceSet(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha3 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha3) to the deprecated field. - if src.Status.Conditions != nil { - dst.Status.Deprecated = &addonsv1.ClusterResourceSetDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &addonsv1.ClusterResourceSetV1Beta1DeprecatedStatus{} - clusterv1alpha3.Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - - // Manually restore data. - restored := &addonsv1.ClusterResourceSet{} - if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok { - return err - } - dst.Status.Conditions = restored.Status.Conditions - - return nil -} - -func (dst *ClusterResourceSet) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*addonsv1.ClusterResourceSet) - - if err := Convert_v1beta2_ClusterResourceSet_To_v1alpha3_ClusterResourceSet(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha3). - dst.Status.Conditions = nil - - // Retrieve legacy conditions (v1alpha3) from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - clusterv1alpha3.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - } - } - - // Preserve Hub data on down-conversion except for metadata - return utilconversion.MarshalData(src, dst) -} - -func (src *ClusterResourceSetBinding) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*addonsv1.ClusterResourceSetBinding) - - if err := Convert_v1alpha3_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(src, dst, nil); err != nil { - return err - } - // Manually restore data. - restored := &addonsv1.ClusterResourceSetBinding{} - if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok { - return err - } - dst.Spec.ClusterName = restored.Spec.ClusterName - return nil -} - -func (dst *ClusterResourceSetBinding) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*addonsv1.ClusterResourceSetBinding) - - if err := Convert_v1beta2_ClusterResourceSetBinding_To_v1alpha3_ClusterResourceSetBinding(src, dst, nil); err != nil { - return err - } - - // Preserve Hub data on down-conversion except for metadata - if err := utilconversion.MarshalData(src, dst); err != nil { - return err - } - - return nil -} - -// Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha3_ClusterResourceSetBindingSpec is a conversion function. -func Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha3_ClusterResourceSetBindingSpec(in *addonsv1.ClusterResourceSetBindingSpec, out *ClusterResourceSetBindingSpec, s apimachineryconversion.Scope) error { - // Spec.ClusterName does not exist in ClusterResourceSetBinding v1alpha3 API. - return autoConvert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha3_ClusterResourceSetBindingSpec(in, out, s) -} - -func Convert_v1beta2_ClusterResourceSetStatus_To_v1alpha3_ClusterResourceSetStatus(in *addonsv1.ClusterResourceSetStatus, out *ClusterResourceSetStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1beta1 - return autoConvert_v1beta2_ClusterResourceSetStatus_To_v1alpha3_ClusterResourceSetStatus(in, out, s) -} - -func Convert_Pointer_v1alpha3_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in **ResourceSetBinding, out *addonsv1.ResourceSetBinding, s apimachineryconversion.Scope) error { - if in == nil || *in == nil { - return nil - } - return autoConvert_v1alpha3_ResourceSetBinding_To_v1beta2_ResourceSetBinding(*in, out, s) -} - -func Convert_v1beta2_ResourceSetBinding_To_Pointer_v1alpha3_ResourceSetBinding(in *addonsv1.ResourceSetBinding, out **ResourceSetBinding, s apimachineryconversion.Scope) error { - if in == nil || reflect.DeepEqual(*in, addonsv1.ResourceSetBinding{}) { - return nil - } - *out = &ResourceSetBinding{} - return autoConvert_v1beta2_ResourceSetBinding_To_v1alpha3_ResourceSetBinding(in, *out, s) -} - -func Convert_v1alpha3_ResourceBinding_To_v1beta2_ResourceBinding(in *ResourceBinding, out *addonsv1.ResourceBinding, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_ResourceBinding_To_v1beta2_ResourceBinding(in, out, s); err != nil { - return err - } - if in.LastAppliedTime != nil && !reflect.DeepEqual(in.LastAppliedTime, &metav1.Time{}) { - out.LastAppliedTime = *in.LastAppliedTime - } - return nil -} - -func Convert_v1beta2_ResourceBinding_To_v1alpha3_ResourceBinding(in *addonsv1.ResourceBinding, out *ResourceBinding, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_ResourceBinding_To_v1alpha3_ResourceBinding(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.LastAppliedTime, metav1.Time{}) { - out.LastAppliedTime = ptr.To(in.LastAppliedTime) - } - return nil -} - -// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94) - -func Convert_v1_Condition_To_v1alpha3_Condition(in *metav1.Condition, out *clusterv1alpha3.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha3.Convert_v1_Condition_To_v1alpha3_Condition(in, out, s) -} - -func Convert_v1alpha3_Condition_To_v1_Condition(in *clusterv1alpha3.Condition, out *metav1.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha3.Convert_v1alpha3_Condition_To_v1_Condition(in, out, s) -} diff --git a/internal/api/addons/v1alpha3/zz_generated.conversion.go b/internal/api/addons/v1alpha3/zz_generated.conversion.go deleted file mode 100644 index 8bc9571c52f3..000000000000 --- a/internal/api/addons/v1alpha3/zz_generated.conversion.go +++ /dev/null @@ -1,490 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -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 conversion-gen. DO NOT EDIT. - -package v1alpha3 - -import ( - unsafe "unsafe" - - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - v1beta2 "sigs.k8s.io/cluster-api/api/addons/v1beta2" - corev1alpha3 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha3" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*ClusterResourceSet)(nil), (*v1beta2.ClusterResourceSet)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ClusterResourceSet_To_v1beta2_ClusterResourceSet(a.(*ClusterResourceSet), b.(*v1beta2.ClusterResourceSet), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSet)(nil), (*ClusterResourceSet)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSet_To_v1alpha3_ClusterResourceSet(a.(*v1beta2.ClusterResourceSet), b.(*ClusterResourceSet), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetBinding)(nil), (*v1beta2.ClusterResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(a.(*ClusterResourceSetBinding), b.(*v1beta2.ClusterResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetBinding)(nil), (*ClusterResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetBinding_To_v1alpha3_ClusterResourceSetBinding(a.(*v1beta2.ClusterResourceSetBinding), b.(*ClusterResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetBindingList)(nil), (*v1beta2.ClusterResourceSetBindingList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(a.(*ClusterResourceSetBindingList), b.(*v1beta2.ClusterResourceSetBindingList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetBindingList)(nil), (*ClusterResourceSetBindingList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetBindingList_To_v1alpha3_ClusterResourceSetBindingList(a.(*v1beta2.ClusterResourceSetBindingList), b.(*ClusterResourceSetBindingList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetBindingSpec)(nil), (*v1beta2.ClusterResourceSetBindingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(a.(*ClusterResourceSetBindingSpec), b.(*v1beta2.ClusterResourceSetBindingSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetList)(nil), (*v1beta2.ClusterResourceSetList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(a.(*ClusterResourceSetList), b.(*v1beta2.ClusterResourceSetList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetList)(nil), (*ClusterResourceSetList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetList_To_v1alpha3_ClusterResourceSetList(a.(*v1beta2.ClusterResourceSetList), b.(*ClusterResourceSetList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetSpec)(nil), (*v1beta2.ClusterResourceSetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(a.(*ClusterResourceSetSpec), b.(*v1beta2.ClusterResourceSetSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetSpec)(nil), (*ClusterResourceSetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetSpec_To_v1alpha3_ClusterResourceSetSpec(a.(*v1beta2.ClusterResourceSetSpec), b.(*ClusterResourceSetSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetStatus)(nil), (*v1beta2.ClusterResourceSetStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(a.(*ClusterResourceSetStatus), b.(*v1beta2.ClusterResourceSetStatus), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ResourceRef)(nil), (*v1beta2.ResourceRef)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ResourceRef_To_v1beta2_ResourceRef(a.(*ResourceRef), b.(*v1beta2.ResourceRef), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ResourceRef)(nil), (*ResourceRef)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceRef_To_v1alpha3_ResourceRef(a.(*v1beta2.ResourceRef), b.(*ResourceRef), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ResourceSetBinding)(nil), (*v1beta2.ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ResourceSetBinding_To_v1beta2_ResourceSetBinding(a.(*ResourceSetBinding), b.(*v1beta2.ResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ResourceSetBinding)(nil), (*ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceSetBinding_To_v1alpha3_ResourceSetBinding(a.(*v1beta2.ResourceSetBinding), b.(*ResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((**ResourceSetBinding)(nil), (*v1beta2.ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_Pointer_v1alpha3_ResourceSetBinding_To_v1beta2_ResourceSetBinding(a.(**ResourceSetBinding), b.(*v1beta2.ResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1.Condition)(nil), (*corev1alpha3.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_Condition_To_v1alpha3_Condition(a.(*v1.Condition), b.(*corev1alpha3.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*corev1alpha3.Condition)(nil), (*v1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_Condition_To_v1_Condition(a.(*corev1alpha3.Condition), b.(*v1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ResourceBinding)(nil), (*v1beta2.ResourceBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ResourceBinding_To_v1beta2_ResourceBinding(a.(*ResourceBinding), b.(*v1beta2.ResourceBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterResourceSetBindingSpec)(nil), (*ClusterResourceSetBindingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha3_ClusterResourceSetBindingSpec(a.(*v1beta2.ClusterResourceSetBindingSpec), b.(*ClusterResourceSetBindingSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterResourceSetStatus)(nil), (*ClusterResourceSetStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetStatus_To_v1alpha3_ClusterResourceSetStatus(a.(*v1beta2.ClusterResourceSetStatus), b.(*ClusterResourceSetStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ResourceBinding)(nil), (*ResourceBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceBinding_To_v1alpha3_ResourceBinding(a.(*v1beta2.ResourceBinding), b.(*ResourceBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ResourceSetBinding)(nil), (**ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceSetBinding_To_Pointer_v1alpha3_ResourceSetBinding(a.(*v1beta2.ResourceSetBinding), b.(**ResourceSetBinding), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha3_ClusterResourceSet_To_v1beta2_ClusterResourceSet(in *ClusterResourceSet, out *v1beta2.ClusterResourceSet, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha3_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha3_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha3_ClusterResourceSet_To_v1beta2_ClusterResourceSet is an autogenerated conversion function. -func Convert_v1alpha3_ClusterResourceSet_To_v1beta2_ClusterResourceSet(in *ClusterResourceSet, out *v1beta2.ClusterResourceSet, s conversion.Scope) error { - return autoConvert_v1alpha3_ClusterResourceSet_To_v1beta2_ClusterResourceSet(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSet_To_v1alpha3_ClusterResourceSet(in *v1beta2.ClusterResourceSet, out *ClusterResourceSet, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_ClusterResourceSetSpec_To_v1alpha3_ClusterResourceSetSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_ClusterResourceSetStatus_To_v1alpha3_ClusterResourceSetStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_ClusterResourceSet_To_v1alpha3_ClusterResourceSet is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSet_To_v1alpha3_ClusterResourceSet(in *v1beta2.ClusterResourceSet, out *ClusterResourceSet, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSet_To_v1alpha3_ClusterResourceSet(in, out, s) -} - -func autoConvert_v1alpha3_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(in *ClusterResourceSetBinding, out *v1beta2.ClusterResourceSetBinding, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha3_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha3_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding is an autogenerated conversion function. -func Convert_v1alpha3_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(in *ClusterResourceSetBinding, out *v1beta2.ClusterResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1alpha3_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetBinding_To_v1alpha3_ClusterResourceSetBinding(in *v1beta2.ClusterResourceSetBinding, out *ClusterResourceSetBinding, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha3_ClusterResourceSetBindingSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_ClusterResourceSetBinding_To_v1alpha3_ClusterResourceSetBinding is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetBinding_To_v1alpha3_ClusterResourceSetBinding(in *v1beta2.ClusterResourceSetBinding, out *ClusterResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetBinding_To_v1alpha3_ClusterResourceSetBinding(in, out, s) -} - -func autoConvert_v1alpha3_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(in *ClusterResourceSetBindingList, out *v1beta2.ClusterResourceSetBindingList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.ClusterResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha3_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList is an autogenerated conversion function. -func Convert_v1alpha3_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(in *ClusterResourceSetBindingList, out *v1beta2.ClusterResourceSetBindingList, s conversion.Scope) error { - return autoConvert_v1alpha3_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetBindingList_To_v1alpha3_ClusterResourceSetBindingList(in *v1beta2.ClusterResourceSetBindingList, out *ClusterResourceSetBindingList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ClusterResourceSetBinding_To_v1alpha3_ClusterResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_ClusterResourceSetBindingList_To_v1alpha3_ClusterResourceSetBindingList is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetBindingList_To_v1alpha3_ClusterResourceSetBindingList(in *v1beta2.ClusterResourceSetBindingList, out *ClusterResourceSetBindingList, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetBindingList_To_v1alpha3_ClusterResourceSetBindingList(in, out, s) -} - -func autoConvert_v1alpha3_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(in *ClusterResourceSetBindingSpec, out *v1beta2.ClusterResourceSetBindingSpec, s conversion.Scope) error { - if in.Bindings != nil { - in, out := &in.Bindings, &out.Bindings - *out = make([]v1beta2.ResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_Pointer_v1alpha3_ResourceSetBinding_To_v1beta2_ResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Bindings = nil - } - return nil -} - -// Convert_v1alpha3_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec is an autogenerated conversion function. -func Convert_v1alpha3_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(in *ClusterResourceSetBindingSpec, out *v1beta2.ClusterResourceSetBindingSpec, s conversion.Scope) error { - return autoConvert_v1alpha3_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha3_ClusterResourceSetBindingSpec(in *v1beta2.ClusterResourceSetBindingSpec, out *ClusterResourceSetBindingSpec, s conversion.Scope) error { - if in.Bindings != nil { - in, out := &in.Bindings, &out.Bindings - *out = make([]*ResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ResourceSetBinding_To_Pointer_v1alpha3_ResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Bindings = nil - } - // WARNING: in.ClusterName requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(in *ClusterResourceSetList, out *v1beta2.ClusterResourceSetList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.ClusterResourceSet, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_ClusterResourceSet_To_v1beta2_ClusterResourceSet(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha3_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList is an autogenerated conversion function. -func Convert_v1alpha3_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(in *ClusterResourceSetList, out *v1beta2.ClusterResourceSetList, s conversion.Scope) error { - return autoConvert_v1alpha3_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetList_To_v1alpha3_ClusterResourceSetList(in *v1beta2.ClusterResourceSetList, out *ClusterResourceSetList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterResourceSet, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ClusterResourceSet_To_v1alpha3_ClusterResourceSet(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_ClusterResourceSetList_To_v1alpha3_ClusterResourceSetList is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetList_To_v1alpha3_ClusterResourceSetList(in *v1beta2.ClusterResourceSetList, out *ClusterResourceSetList, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetList_To_v1alpha3_ClusterResourceSetList(in, out, s) -} - -func autoConvert_v1alpha3_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(in *ClusterResourceSetSpec, out *v1beta2.ClusterResourceSetSpec, s conversion.Scope) error { - out.ClusterSelector = in.ClusterSelector - out.Resources = *(*[]v1beta2.ResourceRef)(unsafe.Pointer(&in.Resources)) - out.Strategy = in.Strategy - return nil -} - -// Convert_v1alpha3_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec is an autogenerated conversion function. -func Convert_v1alpha3_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(in *ClusterResourceSetSpec, out *v1beta2.ClusterResourceSetSpec, s conversion.Scope) error { - return autoConvert_v1alpha3_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetSpec_To_v1alpha3_ClusterResourceSetSpec(in *v1beta2.ClusterResourceSetSpec, out *ClusterResourceSetSpec, s conversion.Scope) error { - out.ClusterSelector = in.ClusterSelector - out.Resources = *(*[]ResourceRef)(unsafe.Pointer(&in.Resources)) - out.Strategy = in.Strategy - return nil -} - -// Convert_v1beta2_ClusterResourceSetSpec_To_v1alpha3_ClusterResourceSetSpec is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetSpec_To_v1alpha3_ClusterResourceSetSpec(in *v1beta2.ClusterResourceSetSpec, out *ClusterResourceSetSpec, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetSpec_To_v1alpha3_ClusterResourceSetSpec(in, out, s) -} - -func autoConvert_v1alpha3_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(in *ClusterResourceSetStatus, out *v1beta2.ClusterResourceSetStatus, s conversion.Scope) error { - out.ObservedGeneration = in.ObservedGeneration - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -// Convert_v1alpha3_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus is an autogenerated conversion function. -func Convert_v1alpha3_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(in *ClusterResourceSetStatus, out *v1beta2.ClusterResourceSetStatus, s conversion.Scope) error { - return autoConvert_v1alpha3_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetStatus_To_v1alpha3_ClusterResourceSetStatus(in *v1beta2.ClusterResourceSetStatus, out *ClusterResourceSetStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(corev1alpha3.Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha3_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_ResourceBinding_To_v1beta2_ResourceBinding(in *ResourceBinding, out *v1beta2.ResourceBinding, s conversion.Scope) error { - if err := Convert_v1alpha3_ResourceRef_To_v1beta2_ResourceRef(&in.ResourceRef, &out.ResourceRef, s); err != nil { - return err - } - out.Hash = in.Hash - // WARNING: in.LastAppliedTime requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.Time vs k8s.io/apimachinery/pkg/apis/meta/v1.Time) - if err := v1.Convert_bool_To_Pointer_bool(&in.Applied, &out.Applied, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1beta2_ResourceBinding_To_v1alpha3_ResourceBinding(in *v1beta2.ResourceBinding, out *ResourceBinding, s conversion.Scope) error { - if err := Convert_v1beta2_ResourceRef_To_v1alpha3_ResourceRef(&in.ResourceRef, &out.ResourceRef, s); err != nil { - return err - } - out.Hash = in.Hash - // WARNING: in.LastAppliedTime requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/apis/meta/v1.Time vs *k8s.io/apimachinery/pkg/apis/meta/v1.Time) - if err := v1.Convert_Pointer_bool_To_bool(&in.Applied, &out.Applied, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha3_ResourceRef_To_v1beta2_ResourceRef(in *ResourceRef, out *v1beta2.ResourceRef, s conversion.Scope) error { - out.Name = in.Name - out.Kind = in.Kind - return nil -} - -// Convert_v1alpha3_ResourceRef_To_v1beta2_ResourceRef is an autogenerated conversion function. -func Convert_v1alpha3_ResourceRef_To_v1beta2_ResourceRef(in *ResourceRef, out *v1beta2.ResourceRef, s conversion.Scope) error { - return autoConvert_v1alpha3_ResourceRef_To_v1beta2_ResourceRef(in, out, s) -} - -func autoConvert_v1beta2_ResourceRef_To_v1alpha3_ResourceRef(in *v1beta2.ResourceRef, out *ResourceRef, s conversion.Scope) error { - out.Name = in.Name - out.Kind = in.Kind - return nil -} - -// Convert_v1beta2_ResourceRef_To_v1alpha3_ResourceRef is an autogenerated conversion function. -func Convert_v1beta2_ResourceRef_To_v1alpha3_ResourceRef(in *v1beta2.ResourceRef, out *ResourceRef, s conversion.Scope) error { - return autoConvert_v1beta2_ResourceRef_To_v1alpha3_ResourceRef(in, out, s) -} - -func autoConvert_v1alpha3_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in *ResourceSetBinding, out *v1beta2.ResourceSetBinding, s conversion.Scope) error { - out.ClusterResourceSetName = in.ClusterResourceSetName - if in.Resources != nil { - in, out := &in.Resources, &out.Resources - *out = make([]v1beta2.ResourceBinding, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_ResourceBinding_To_v1beta2_ResourceBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Resources = nil - } - return nil -} - -// Convert_v1alpha3_ResourceSetBinding_To_v1beta2_ResourceSetBinding is an autogenerated conversion function. -func Convert_v1alpha3_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in *ResourceSetBinding, out *v1beta2.ResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1alpha3_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in, out, s) -} - -func autoConvert_v1beta2_ResourceSetBinding_To_v1alpha3_ResourceSetBinding(in *v1beta2.ResourceSetBinding, out *ResourceSetBinding, s conversion.Scope) error { - out.ClusterResourceSetName = in.ClusterResourceSetName - if in.Resources != nil { - in, out := &in.Resources, &out.Resources - *out = make([]ResourceBinding, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ResourceBinding_To_v1alpha3_ResourceBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Resources = nil - } - return nil -} - -// Convert_v1beta2_ResourceSetBinding_To_v1alpha3_ResourceSetBinding is an autogenerated conversion function. -func Convert_v1beta2_ResourceSetBinding_To_v1alpha3_ResourceSetBinding(in *v1beta2.ResourceSetBinding, out *ResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1beta2_ResourceSetBinding_To_v1alpha3_ResourceSetBinding(in, out, s) -} diff --git a/internal/api/addons/v1alpha4/conversion.go b/internal/api/addons/v1alpha4/conversion.go deleted file mode 100644 index b222302e31e1..000000000000 --- a/internal/api/addons/v1alpha4/conversion.go +++ /dev/null @@ -1,169 +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 v1alpha4 - -import ( - "reflect" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta2" - clusterv1alpha4 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha4" - - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -func (src *ClusterResourceSet) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*addonsv1.ClusterResourceSet) - - if err := Convert_v1alpha4_ClusterResourceSet_To_v1beta2_ClusterResourceSet(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha4) to the deprecated field. - if src.Status.Conditions != nil { - dst.Status.Deprecated = &addonsv1.ClusterResourceSetDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &addonsv1.ClusterResourceSetV1Beta1DeprecatedStatus{} - clusterv1alpha4.Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - - // Manually restore data. - restored := &addonsv1.ClusterResourceSet{} - if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok { - return err - } - dst.Status.Conditions = restored.Status.Conditions - - return nil -} - -func (dst *ClusterResourceSet) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*addonsv1.ClusterResourceSet) - - if err := Convert_v1beta2_ClusterResourceSet_To_v1alpha4_ClusterResourceSet(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha4). - dst.Status.Conditions = nil - - // Retrieve legacy conditions (v1alpha4) from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - clusterv1alpha4.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - } - } - - // Preserve Hub data on down-conversion except for metadata - return utilconversion.MarshalData(src, dst) -} - -func (src *ClusterResourceSetBinding) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*addonsv1.ClusterResourceSetBinding) - - if err := Convert_v1alpha4_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(src, dst, nil); err != nil { - return err - } - // Manually restore data. - restored := &addonsv1.ClusterResourceSetBinding{} - if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok { - return err - } - dst.Spec.ClusterName = restored.Spec.ClusterName - return nil -} - -func (dst *ClusterResourceSetBinding) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*addonsv1.ClusterResourceSetBinding) - - if err := Convert_v1beta2_ClusterResourceSetBinding_To_v1alpha4_ClusterResourceSetBinding(src, dst, nil); err != nil { - return err - } - - // Preserve Hub data on down-conversion except for metadata - if err := utilconversion.MarshalData(src, dst); err != nil { - return err - } - - return nil -} - -// Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha4_ClusterResourceSetBindingSpec is a conversion function. -func Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha4_ClusterResourceSetBindingSpec(in *addonsv1.ClusterResourceSetBindingSpec, out *ClusterResourceSetBindingSpec, s apimachineryconversion.Scope) error { - // Spec.ClusterName does not exist in ClusterResourceSetBinding v1alpha4 API. - return autoConvert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha4_ClusterResourceSetBindingSpec(in, out, s) -} - -func Convert_v1beta2_ClusterResourceSetStatus_To_v1alpha4_ClusterResourceSetStatus(in *addonsv1.ClusterResourceSetStatus, out *ClusterResourceSetStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1beta1 - return autoConvert_v1beta2_ClusterResourceSetStatus_To_v1alpha4_ClusterResourceSetStatus(in, out, s) -} - -func Convert_Pointer_v1alpha4_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in **ResourceSetBinding, out *addonsv1.ResourceSetBinding, s apimachineryconversion.Scope) error { - if in == nil || *in == nil { - return nil - } - return autoConvert_v1alpha4_ResourceSetBinding_To_v1beta2_ResourceSetBinding(*in, out, s) -} - -func Convert_v1beta2_ResourceSetBinding_To_Pointer_v1alpha4_ResourceSetBinding(in *addonsv1.ResourceSetBinding, out **ResourceSetBinding, s apimachineryconversion.Scope) error { - if in == nil || reflect.DeepEqual(*in, addonsv1.ResourceSetBinding{}) { - return nil - } - *out = &ResourceSetBinding{} - return autoConvert_v1beta2_ResourceSetBinding_To_v1alpha4_ResourceSetBinding(in, *out, s) -} - -func Convert_v1alpha4_ResourceBinding_To_v1beta2_ResourceBinding(in *ResourceBinding, out *addonsv1.ResourceBinding, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_ResourceBinding_To_v1beta2_ResourceBinding(in, out, s); err != nil { - return err - } - if in.LastAppliedTime != nil && !reflect.DeepEqual(in.LastAppliedTime, &metav1.Time{}) { - out.LastAppliedTime = *in.LastAppliedTime - } - return nil -} - -func Convert_v1beta2_ResourceBinding_To_v1alpha4_ResourceBinding(in *addonsv1.ResourceBinding, out *ResourceBinding, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_ResourceBinding_To_v1alpha4_ResourceBinding(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.LastAppliedTime, metav1.Time{}) { - out.LastAppliedTime = ptr.To(in.LastAppliedTime) - } - return nil -} - -// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94) - -func Convert_v1_Condition_To_v1alpha4_Condition(in *metav1.Condition, out *clusterv1alpha4.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha4.Convert_v1_Condition_To_v1alpha4_Condition(in, out, s) -} - -func Convert_v1alpha4_Condition_To_v1_Condition(in *clusterv1alpha4.Condition, out *metav1.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha4.Convert_v1alpha4_Condition_To_v1_Condition(in, out, s) -} diff --git a/internal/api/addons/v1alpha4/zz_generated.conversion.go b/internal/api/addons/v1alpha4/zz_generated.conversion.go deleted file mode 100644 index 111f60343aec..000000000000 --- a/internal/api/addons/v1alpha4/zz_generated.conversion.go +++ /dev/null @@ -1,490 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -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 conversion-gen. DO NOT EDIT. - -package v1alpha4 - -import ( - unsafe "unsafe" - - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - v1beta2 "sigs.k8s.io/cluster-api/api/addons/v1beta2" - corev1alpha4 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha4" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*ClusterResourceSet)(nil), (*v1beta2.ClusterResourceSet)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterResourceSet_To_v1beta2_ClusterResourceSet(a.(*ClusterResourceSet), b.(*v1beta2.ClusterResourceSet), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSet)(nil), (*ClusterResourceSet)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSet_To_v1alpha4_ClusterResourceSet(a.(*v1beta2.ClusterResourceSet), b.(*ClusterResourceSet), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetBinding)(nil), (*v1beta2.ClusterResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(a.(*ClusterResourceSetBinding), b.(*v1beta2.ClusterResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetBinding)(nil), (*ClusterResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetBinding_To_v1alpha4_ClusterResourceSetBinding(a.(*v1beta2.ClusterResourceSetBinding), b.(*ClusterResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetBindingList)(nil), (*v1beta2.ClusterResourceSetBindingList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(a.(*ClusterResourceSetBindingList), b.(*v1beta2.ClusterResourceSetBindingList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetBindingList)(nil), (*ClusterResourceSetBindingList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetBindingList_To_v1alpha4_ClusterResourceSetBindingList(a.(*v1beta2.ClusterResourceSetBindingList), b.(*ClusterResourceSetBindingList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetBindingSpec)(nil), (*v1beta2.ClusterResourceSetBindingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(a.(*ClusterResourceSetBindingSpec), b.(*v1beta2.ClusterResourceSetBindingSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetList)(nil), (*v1beta2.ClusterResourceSetList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(a.(*ClusterResourceSetList), b.(*v1beta2.ClusterResourceSetList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetList)(nil), (*ClusterResourceSetList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetList_To_v1alpha4_ClusterResourceSetList(a.(*v1beta2.ClusterResourceSetList), b.(*ClusterResourceSetList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetSpec)(nil), (*v1beta2.ClusterResourceSetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(a.(*ClusterResourceSetSpec), b.(*v1beta2.ClusterResourceSetSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterResourceSetSpec)(nil), (*ClusterResourceSetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetSpec_To_v1alpha4_ClusterResourceSetSpec(a.(*v1beta2.ClusterResourceSetSpec), b.(*ClusterResourceSetSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterResourceSetStatus)(nil), (*v1beta2.ClusterResourceSetStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(a.(*ClusterResourceSetStatus), b.(*v1beta2.ClusterResourceSetStatus), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ResourceRef)(nil), (*v1beta2.ResourceRef)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ResourceRef_To_v1beta2_ResourceRef(a.(*ResourceRef), b.(*v1beta2.ResourceRef), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ResourceRef)(nil), (*ResourceRef)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceRef_To_v1alpha4_ResourceRef(a.(*v1beta2.ResourceRef), b.(*ResourceRef), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ResourceSetBinding)(nil), (*v1beta2.ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ResourceSetBinding_To_v1beta2_ResourceSetBinding(a.(*ResourceSetBinding), b.(*v1beta2.ResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ResourceSetBinding)(nil), (*ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceSetBinding_To_v1alpha4_ResourceSetBinding(a.(*v1beta2.ResourceSetBinding), b.(*ResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((**ResourceSetBinding)(nil), (*v1beta2.ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_Pointer_v1alpha4_ResourceSetBinding_To_v1beta2_ResourceSetBinding(a.(**ResourceSetBinding), b.(*v1beta2.ResourceSetBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1.Condition)(nil), (*corev1alpha4.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_Condition_To_v1alpha4_Condition(a.(*v1.Condition), b.(*corev1alpha4.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*corev1alpha4.Condition)(nil), (*v1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_Condition_To_v1_Condition(a.(*corev1alpha4.Condition), b.(*v1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ResourceBinding)(nil), (*v1beta2.ResourceBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ResourceBinding_To_v1beta2_ResourceBinding(a.(*ResourceBinding), b.(*v1beta2.ResourceBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterResourceSetBindingSpec)(nil), (*ClusterResourceSetBindingSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha4_ClusterResourceSetBindingSpec(a.(*v1beta2.ClusterResourceSetBindingSpec), b.(*ClusterResourceSetBindingSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterResourceSetStatus)(nil), (*ClusterResourceSetStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterResourceSetStatus_To_v1alpha4_ClusterResourceSetStatus(a.(*v1beta2.ClusterResourceSetStatus), b.(*ClusterResourceSetStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ResourceBinding)(nil), (*ResourceBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceBinding_To_v1alpha4_ResourceBinding(a.(*v1beta2.ResourceBinding), b.(*ResourceBinding), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ResourceSetBinding)(nil), (**ResourceSetBinding)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ResourceSetBinding_To_Pointer_v1alpha4_ResourceSetBinding(a.(*v1beta2.ResourceSetBinding), b.(**ResourceSetBinding), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha4_ClusterResourceSet_To_v1beta2_ClusterResourceSet(in *ClusterResourceSet, out *v1beta2.ClusterResourceSet, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha4_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha4_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_ClusterResourceSet_To_v1beta2_ClusterResourceSet is an autogenerated conversion function. -func Convert_v1alpha4_ClusterResourceSet_To_v1beta2_ClusterResourceSet(in *ClusterResourceSet, out *v1beta2.ClusterResourceSet, s conversion.Scope) error { - return autoConvert_v1alpha4_ClusterResourceSet_To_v1beta2_ClusterResourceSet(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSet_To_v1alpha4_ClusterResourceSet(in *v1beta2.ClusterResourceSet, out *ClusterResourceSet, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_ClusterResourceSetSpec_To_v1alpha4_ClusterResourceSetSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_ClusterResourceSetStatus_To_v1alpha4_ClusterResourceSetStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_ClusterResourceSet_To_v1alpha4_ClusterResourceSet is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSet_To_v1alpha4_ClusterResourceSet(in *v1beta2.ClusterResourceSet, out *ClusterResourceSet, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSet_To_v1alpha4_ClusterResourceSet(in, out, s) -} - -func autoConvert_v1alpha4_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(in *ClusterResourceSetBinding, out *v1beta2.ClusterResourceSetBinding, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha4_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding is an autogenerated conversion function. -func Convert_v1alpha4_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(in *ClusterResourceSetBinding, out *v1beta2.ClusterResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1alpha4_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetBinding_To_v1alpha4_ClusterResourceSetBinding(in *v1beta2.ClusterResourceSetBinding, out *ClusterResourceSetBinding, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha4_ClusterResourceSetBindingSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_ClusterResourceSetBinding_To_v1alpha4_ClusterResourceSetBinding is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetBinding_To_v1alpha4_ClusterResourceSetBinding(in *v1beta2.ClusterResourceSetBinding, out *ClusterResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetBinding_To_v1alpha4_ClusterResourceSetBinding(in, out, s) -} - -func autoConvert_v1alpha4_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(in *ClusterResourceSetBindingList, out *v1beta2.ClusterResourceSetBindingList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.ClusterResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_ClusterResourceSetBinding_To_v1beta2_ClusterResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha4_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList is an autogenerated conversion function. -func Convert_v1alpha4_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(in *ClusterResourceSetBindingList, out *v1beta2.ClusterResourceSetBindingList, s conversion.Scope) error { - return autoConvert_v1alpha4_ClusterResourceSetBindingList_To_v1beta2_ClusterResourceSetBindingList(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetBindingList_To_v1alpha4_ClusterResourceSetBindingList(in *v1beta2.ClusterResourceSetBindingList, out *ClusterResourceSetBindingList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ClusterResourceSetBinding_To_v1alpha4_ClusterResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_ClusterResourceSetBindingList_To_v1alpha4_ClusterResourceSetBindingList is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetBindingList_To_v1alpha4_ClusterResourceSetBindingList(in *v1beta2.ClusterResourceSetBindingList, out *ClusterResourceSetBindingList, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetBindingList_To_v1alpha4_ClusterResourceSetBindingList(in, out, s) -} - -func autoConvert_v1alpha4_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(in *ClusterResourceSetBindingSpec, out *v1beta2.ClusterResourceSetBindingSpec, s conversion.Scope) error { - if in.Bindings != nil { - in, out := &in.Bindings, &out.Bindings - *out = make([]v1beta2.ResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_Pointer_v1alpha4_ResourceSetBinding_To_v1beta2_ResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Bindings = nil - } - return nil -} - -// Convert_v1alpha4_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec is an autogenerated conversion function. -func Convert_v1alpha4_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(in *ClusterResourceSetBindingSpec, out *v1beta2.ClusterResourceSetBindingSpec, s conversion.Scope) error { - return autoConvert_v1alpha4_ClusterResourceSetBindingSpec_To_v1beta2_ClusterResourceSetBindingSpec(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetBindingSpec_To_v1alpha4_ClusterResourceSetBindingSpec(in *v1beta2.ClusterResourceSetBindingSpec, out *ClusterResourceSetBindingSpec, s conversion.Scope) error { - if in.Bindings != nil { - in, out := &in.Bindings, &out.Bindings - *out = make([]*ResourceSetBinding, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ResourceSetBinding_To_Pointer_v1alpha4_ResourceSetBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Bindings = nil - } - // WARNING: in.ClusterName requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(in *ClusterResourceSetList, out *v1beta2.ClusterResourceSetList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.ClusterResourceSet, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_ClusterResourceSet_To_v1beta2_ClusterResourceSet(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha4_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList is an autogenerated conversion function. -func Convert_v1alpha4_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(in *ClusterResourceSetList, out *v1beta2.ClusterResourceSetList, s conversion.Scope) error { - return autoConvert_v1alpha4_ClusterResourceSetList_To_v1beta2_ClusterResourceSetList(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetList_To_v1alpha4_ClusterResourceSetList(in *v1beta2.ClusterResourceSetList, out *ClusterResourceSetList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterResourceSet, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ClusterResourceSet_To_v1alpha4_ClusterResourceSet(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_ClusterResourceSetList_To_v1alpha4_ClusterResourceSetList is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetList_To_v1alpha4_ClusterResourceSetList(in *v1beta2.ClusterResourceSetList, out *ClusterResourceSetList, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetList_To_v1alpha4_ClusterResourceSetList(in, out, s) -} - -func autoConvert_v1alpha4_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(in *ClusterResourceSetSpec, out *v1beta2.ClusterResourceSetSpec, s conversion.Scope) error { - out.ClusterSelector = in.ClusterSelector - out.Resources = *(*[]v1beta2.ResourceRef)(unsafe.Pointer(&in.Resources)) - out.Strategy = in.Strategy - return nil -} - -// Convert_v1alpha4_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec is an autogenerated conversion function. -func Convert_v1alpha4_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(in *ClusterResourceSetSpec, out *v1beta2.ClusterResourceSetSpec, s conversion.Scope) error { - return autoConvert_v1alpha4_ClusterResourceSetSpec_To_v1beta2_ClusterResourceSetSpec(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetSpec_To_v1alpha4_ClusterResourceSetSpec(in *v1beta2.ClusterResourceSetSpec, out *ClusterResourceSetSpec, s conversion.Scope) error { - out.ClusterSelector = in.ClusterSelector - out.Resources = *(*[]ResourceRef)(unsafe.Pointer(&in.Resources)) - out.Strategy = in.Strategy - return nil -} - -// Convert_v1beta2_ClusterResourceSetSpec_To_v1alpha4_ClusterResourceSetSpec is an autogenerated conversion function. -func Convert_v1beta2_ClusterResourceSetSpec_To_v1alpha4_ClusterResourceSetSpec(in *v1beta2.ClusterResourceSetSpec, out *ClusterResourceSetSpec, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterResourceSetSpec_To_v1alpha4_ClusterResourceSetSpec(in, out, s) -} - -func autoConvert_v1alpha4_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(in *ClusterResourceSetStatus, out *v1beta2.ClusterResourceSetStatus, s conversion.Scope) error { - out.ObservedGeneration = in.ObservedGeneration - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -// Convert_v1alpha4_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus is an autogenerated conversion function. -func Convert_v1alpha4_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(in *ClusterResourceSetStatus, out *v1beta2.ClusterResourceSetStatus, s conversion.Scope) error { - return autoConvert_v1alpha4_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatus(in, out, s) -} - -func autoConvert_v1beta2_ClusterResourceSetStatus_To_v1alpha4_ClusterResourceSetStatus(in *v1beta2.ClusterResourceSetStatus, out *ClusterResourceSetStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(corev1alpha4.Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha4_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_ResourceBinding_To_v1beta2_ResourceBinding(in *ResourceBinding, out *v1beta2.ResourceBinding, s conversion.Scope) error { - if err := Convert_v1alpha4_ResourceRef_To_v1beta2_ResourceRef(&in.ResourceRef, &out.ResourceRef, s); err != nil { - return err - } - out.Hash = in.Hash - // WARNING: in.LastAppliedTime requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.Time vs k8s.io/apimachinery/pkg/apis/meta/v1.Time) - if err := v1.Convert_bool_To_Pointer_bool(&in.Applied, &out.Applied, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1beta2_ResourceBinding_To_v1alpha4_ResourceBinding(in *v1beta2.ResourceBinding, out *ResourceBinding, s conversion.Scope) error { - if err := Convert_v1beta2_ResourceRef_To_v1alpha4_ResourceRef(&in.ResourceRef, &out.ResourceRef, s); err != nil { - return err - } - out.Hash = in.Hash - // WARNING: in.LastAppliedTime requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/apis/meta/v1.Time vs *k8s.io/apimachinery/pkg/apis/meta/v1.Time) - if err := v1.Convert_Pointer_bool_To_bool(&in.Applied, &out.Applied, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha4_ResourceRef_To_v1beta2_ResourceRef(in *ResourceRef, out *v1beta2.ResourceRef, s conversion.Scope) error { - out.Name = in.Name - out.Kind = in.Kind - return nil -} - -// Convert_v1alpha4_ResourceRef_To_v1beta2_ResourceRef is an autogenerated conversion function. -func Convert_v1alpha4_ResourceRef_To_v1beta2_ResourceRef(in *ResourceRef, out *v1beta2.ResourceRef, s conversion.Scope) error { - return autoConvert_v1alpha4_ResourceRef_To_v1beta2_ResourceRef(in, out, s) -} - -func autoConvert_v1beta2_ResourceRef_To_v1alpha4_ResourceRef(in *v1beta2.ResourceRef, out *ResourceRef, s conversion.Scope) error { - out.Name = in.Name - out.Kind = in.Kind - return nil -} - -// Convert_v1beta2_ResourceRef_To_v1alpha4_ResourceRef is an autogenerated conversion function. -func Convert_v1beta2_ResourceRef_To_v1alpha4_ResourceRef(in *v1beta2.ResourceRef, out *ResourceRef, s conversion.Scope) error { - return autoConvert_v1beta2_ResourceRef_To_v1alpha4_ResourceRef(in, out, s) -} - -func autoConvert_v1alpha4_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in *ResourceSetBinding, out *v1beta2.ResourceSetBinding, s conversion.Scope) error { - out.ClusterResourceSetName = in.ClusterResourceSetName - if in.Resources != nil { - in, out := &in.Resources, &out.Resources - *out = make([]v1beta2.ResourceBinding, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_ResourceBinding_To_v1beta2_ResourceBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Resources = nil - } - return nil -} - -// Convert_v1alpha4_ResourceSetBinding_To_v1beta2_ResourceSetBinding is an autogenerated conversion function. -func Convert_v1alpha4_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in *ResourceSetBinding, out *v1beta2.ResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1alpha4_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in, out, s) -} - -func autoConvert_v1beta2_ResourceSetBinding_To_v1alpha4_ResourceSetBinding(in *v1beta2.ResourceSetBinding, out *ResourceSetBinding, s conversion.Scope) error { - out.ClusterResourceSetName = in.ClusterResourceSetName - if in.Resources != nil { - in, out := &in.Resources, &out.Resources - *out = make([]ResourceBinding, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ResourceBinding_To_v1alpha4_ResourceBinding(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Resources = nil - } - return nil -} - -// Convert_v1beta2_ResourceSetBinding_To_v1alpha4_ResourceSetBinding is an autogenerated conversion function. -func Convert_v1beta2_ResourceSetBinding_To_v1alpha4_ResourceSetBinding(in *v1beta2.ResourceSetBinding, out *ResourceSetBinding, s conversion.Scope) error { - return autoConvert_v1beta2_ResourceSetBinding_To_v1alpha4_ResourceSetBinding(in, out, s) -} diff --git a/internal/api/bootstrap/kubeadm/v1alpha3/conversion.go b/internal/api/bootstrap/kubeadm/v1alpha3/conversion.go deleted file mode 100644 index c87e37847dc7..000000000000 --- a/internal/api/bootstrap/kubeadm/v1alpha3/conversion.go +++ /dev/null @@ -1,583 +0,0 @@ -/* -Copyright 2019 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 v1alpha3 - -import ( - "fmt" - "reflect" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - bootstrapv1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" - clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - clusterv1alpha3 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha3" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -func (src *KubeadmConfig) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*bootstrapv1.KubeadmConfig) - - if err := Convert_v1alpha3_KubeadmConfig_To_v1beta2_KubeadmConfig(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha3 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha3), failureReason and failureMessage to the deprecated field. - dst.Status.Deprecated = &bootstrapv1.KubeadmConfigDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &bootstrapv1.KubeadmConfigV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - clusterv1alpha3.Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - - // Manually restore data. - restored := &bootstrapv1.KubeadmConfig{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - initialization := bootstrapv1.KubeadmConfigInitializationStatus{} - restoredBootstrapDataSecretCreated := restored.Status.Initialization.DataSecretCreated - clusterv1.Convert_bool_To_Pointer_bool(src.Status.Ready, ok, restoredBootstrapDataSecretCreated, &initialization.DataSecretCreated) - if !reflect.DeepEqual(initialization, bootstrapv1.KubeadmConfigInitializationStatus{}) { - dst.Status.Initialization = initialization - } - if err := RestoreBoolIntentKubeadmConfigSpec(&src.Spec, &dst.Spec, ok, &restored.Spec); err != nil { - return err - } - - // Recover other values - if ok { - RestoreKubeadmConfigSpec(&dst.Spec, &restored.Spec) - dst.Status.Conditions = restored.Status.Conditions - } - - // Override restored data with timeouts values already existing in v1beta1 but in other structs. - src.Spec.ConvertTo(&dst.Spec) - return nil -} - -func RestoreKubeadmConfigSpec(dst *bootstrapv1.KubeadmConfigSpec, restored *bootstrapv1.KubeadmConfigSpec) { - dst.Files = restored.Files - - dst.Users = restored.Users - if restored.Users != nil { - for i := range restored.Users { - if restored.Users[i].PasswdFrom.IsDefined() { - dst.Users[i].PasswdFrom = restored.Users[i].PasswdFrom - } - } - } - - dst.BootCommands = restored.BootCommands - dst.Ignition = restored.Ignition - - dst.ClusterConfiguration.APIServer.ExtraEnvs = restored.ClusterConfiguration.APIServer.ExtraEnvs - dst.ClusterConfiguration.ControllerManager.ExtraEnvs = restored.ClusterConfiguration.ControllerManager.ExtraEnvs - dst.ClusterConfiguration.Scheduler.ExtraEnvs = restored.ClusterConfiguration.Scheduler.ExtraEnvs - dst.ClusterConfiguration.CertificateValidityPeriodDays = restored.ClusterConfiguration.CertificateValidityPeriodDays - dst.ClusterConfiguration.CACertificateValidityPeriodDays = restored.ClusterConfiguration.CACertificateValidityPeriodDays - dst.ClusterConfiguration.Etcd.Local.ExtraEnvs = restored.ClusterConfiguration.Etcd.Local.ExtraEnvs - - dst.InitConfiguration.Timeouts = restored.InitConfiguration.Timeouts - dst.InitConfiguration.Patches = restored.InitConfiguration.Patches - dst.InitConfiguration.SkipPhases = restored.InitConfiguration.SkipPhases - - // Important! whenever adding fields to NodeRegistration, same fields must be added to hub.NodeRegistration's custom serialization func - // otherwise those field won't exist in restored. - - dst.InitConfiguration.NodeRegistration.IgnorePreflightErrors = restored.InitConfiguration.NodeRegistration.IgnorePreflightErrors - dst.InitConfiguration.NodeRegistration.ImagePullPolicy = restored.InitConfiguration.NodeRegistration.ImagePullPolicy - dst.InitConfiguration.NodeRegistration.ImagePullSerial = restored.InitConfiguration.NodeRegistration.ImagePullSerial - - dst.JoinConfiguration.Timeouts = restored.JoinConfiguration.Timeouts - dst.JoinConfiguration.Patches = restored.JoinConfiguration.Patches - dst.JoinConfiguration.SkipPhases = restored.JoinConfiguration.SkipPhases - dst.JoinConfiguration.Discovery.File.KubeConfig = restored.JoinConfiguration.Discovery.File.KubeConfig - - // Important! whenever adding fields to NodeRegistration, same fields must be added to hub.NodeRegistration's custom serialization func - // otherwise those field won't exist in restored. - - dst.JoinConfiguration.NodeRegistration.IgnorePreflightErrors = restored.JoinConfiguration.NodeRegistration.IgnorePreflightErrors - dst.JoinConfiguration.NodeRegistration.ImagePullPolicy = restored.JoinConfiguration.NodeRegistration.ImagePullPolicy - dst.JoinConfiguration.NodeRegistration.ImagePullSerial = restored.JoinConfiguration.NodeRegistration.ImagePullSerial -} - -func RestoreBoolIntentKubeadmConfigSpec(src *KubeadmConfigSpec, dst *bootstrapv1.KubeadmConfigSpec, hasRestored bool, restored *bootstrapv1.KubeadmConfigSpec) error { - if dst.JoinConfiguration.Discovery.BootstrapToken.IsDefined() { - restoredUnsafeSkipCAVerification := restored.JoinConfiguration.Discovery.BootstrapToken.UnsafeSkipCAVerification - clusterv1.Convert_bool_To_Pointer_bool(src.JoinConfiguration.Discovery.BootstrapToken.UnsafeSkipCAVerification, hasRestored, restoredUnsafeSkipCAVerification, &dst.JoinConfiguration.Discovery.BootstrapToken.UnsafeSkipCAVerification) - } - - for i, volume := range dst.ClusterConfiguration.APIServer.ExtraVolumes { - var srcVolume *HostPathMount - if src.ClusterConfiguration != nil { - for _, v := range src.ClusterConfiguration.APIServer.ExtraVolumes { - if v.HostPath == volume.HostPath { - srcVolume = &v - break - } - } - } - if srcVolume == nil { - return fmt.Errorf("apiServer extraVolume with hostPath %q not found in source data", volume.HostPath) - } - var restoredVolumeReadOnly *bool - for _, v := range restored.ClusterConfiguration.APIServer.ExtraVolumes { - if v.HostPath == volume.HostPath { - restoredVolumeReadOnly = v.ReadOnly - break - } - } - clusterv1.Convert_bool_To_Pointer_bool(srcVolume.ReadOnly, hasRestored, restoredVolumeReadOnly, &volume.ReadOnly) - dst.ClusterConfiguration.APIServer.ExtraVolumes[i] = volume - } - for i, volume := range dst.ClusterConfiguration.ControllerManager.ExtraVolumes { - var srcVolume *HostPathMount - if src.ClusterConfiguration != nil { - for _, v := range src.ClusterConfiguration.ControllerManager.ExtraVolumes { - if v.HostPath == volume.HostPath { - srcVolume = &v - break - } - } - } - if srcVolume == nil { - return fmt.Errorf("controllerManager extraVolume with hostPath %q not found in source data", volume.HostPath) - } - var restoredVolumeReadOnly *bool - for _, v := range restored.ClusterConfiguration.ControllerManager.ExtraVolumes { - if v.HostPath == volume.HostPath { - restoredVolumeReadOnly = v.ReadOnly - break - } - } - clusterv1.Convert_bool_To_Pointer_bool(srcVolume.ReadOnly, hasRestored, restoredVolumeReadOnly, &volume.ReadOnly) - dst.ClusterConfiguration.ControllerManager.ExtraVolumes[i] = volume - } - for i, volume := range dst.ClusterConfiguration.Scheduler.ExtraVolumes { - var srcVolume *HostPathMount - if src.ClusterConfiguration != nil { - for _, v := range src.ClusterConfiguration.Scheduler.ExtraVolumes { - if v.HostPath == volume.HostPath { - srcVolume = &v - break - } - } - } - if srcVolume == nil { - return fmt.Errorf("scheduler extraVolume with hostPath %q not found in source data", volume.HostPath) - } - var restoredVolumeReadOnly *bool - for _, v := range restored.ClusterConfiguration.Scheduler.ExtraVolumes { - if v.HostPath == volume.HostPath { - restoredVolumeReadOnly = v.ReadOnly - break - } - } - clusterv1.Convert_bool_To_Pointer_bool(srcVolume.ReadOnly, hasRestored, restoredVolumeReadOnly, &volume.ReadOnly) - dst.ClusterConfiguration.Scheduler.ExtraVolumes[i] = volume - } - - return nil -} - -func (src *KubeadmConfigSpec) ConvertTo(dst *bootstrapv1.KubeadmConfigSpec) { - // Override with timeouts values already existing in v1beta1. - var initControlPlaneComponentHealthCheckSeconds *int32 - if src.ClusterConfiguration != nil && src.ClusterConfiguration.APIServer.TimeoutForControlPlane != nil { - dst.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds = clusterv1.ConvertToSeconds(src.ClusterConfiguration.APIServer.TimeoutForControlPlane) - initControlPlaneComponentHealthCheckSeconds = dst.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds - } - if (src.JoinConfiguration != nil && src.JoinConfiguration.Discovery.Timeout != nil) || initControlPlaneComponentHealthCheckSeconds != nil { - dst.JoinConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds = initControlPlaneComponentHealthCheckSeconds - if src.JoinConfiguration != nil && src.JoinConfiguration.Discovery.Timeout != nil { - dst.JoinConfiguration.Timeouts.TLSBootstrapSeconds = clusterv1.ConvertToSeconds(src.JoinConfiguration.Discovery.Timeout) - } - } -} - -func (dst *KubeadmConfig) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*bootstrapv1.KubeadmConfig) - - if err := Convert_v1beta2_KubeadmConfig_To_v1alpha3_KubeadmConfig(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha4). - dst.Status.Conditions = nil - - // Retrieve legacy conditions (v1alpha4), failureReason and failureMessage from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - clusterv1alpha3.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - } - } - - // Move initialization to old fields - dst.Status.Ready = ptr.Deref(src.Status.Initialization.DataSecretCreated, false) - - // Convert timeouts moved from one struct to another. - dst.Spec.ConvertFrom(&src.Spec) - - dropEmptyStringsKubeadmConfigSpec(&dst.Spec) - dropEmptyStringsKubeadmConfigStatus(&dst.Status) - - // Preserve Hub data on down-conversion except for metadata - return utilconversion.MarshalData(src, dst) -} - -func (dst *KubeadmConfigSpec) ConvertFrom(src *bootstrapv1.KubeadmConfigSpec) { - // Convert timeouts moved from one struct to another. - if src.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds != nil { - if dst.ClusterConfiguration == nil { - dst.ClusterConfiguration = &ClusterConfiguration{} - } - dst.ClusterConfiguration.APIServer.TimeoutForControlPlane = clusterv1.ConvertFromSeconds(src.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds) - } - if reflect.DeepEqual(dst.InitConfiguration, &InitConfiguration{}) { - dst.InitConfiguration = nil - } - if src.JoinConfiguration.Timeouts.TLSBootstrapSeconds != nil { - if dst.JoinConfiguration == nil { - dst.JoinConfiguration = &JoinConfiguration{} - } - dst.JoinConfiguration.Discovery.Timeout = clusterv1.ConvertFromSeconds(src.JoinConfiguration.Timeouts.TLSBootstrapSeconds) - } - if reflect.DeepEqual(dst.JoinConfiguration, &JoinConfiguration{}) { - dst.JoinConfiguration = nil - } -} - -func (src *KubeadmConfigTemplate) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*bootstrapv1.KubeadmConfigTemplate) - - if err := Convert_v1alpha3_KubeadmConfigTemplate_To_v1beta2_KubeadmConfigTemplate(src, dst, nil); err != nil { - return err - } - - // Manually restore data. - restored := &bootstrapv1.KubeadmConfigTemplate{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - if err := RestoreBoolIntentKubeadmConfigSpec(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, ok, &restored.Spec.Template.Spec); err != nil { - return err - } - - // Recover other values - if ok { - RestoreKubeadmConfigSpec(&dst.Spec.Template.Spec, &restored.Spec.Template.Spec) - dst.Spec.Template.ObjectMeta = restored.Spec.Template.ObjectMeta - } - - // Override restored data with timeouts values already existing in v1beta1 but in other structs. - src.Spec.Template.Spec.ConvertTo(&dst.Spec.Template.Spec) - return nil -} - -func (dst *KubeadmConfigTemplate) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*bootstrapv1.KubeadmConfigTemplate) - - if err := Convert_v1beta2_KubeadmConfigTemplate_To_v1alpha3_KubeadmConfigTemplate(src, dst, nil); err != nil { - return err - } - - // Convert timeouts moved from one struct to another. - dst.Spec.Template.Spec.ConvertFrom(&src.Spec.Template.Spec) - - dropEmptyStringsKubeadmConfigSpec(&dst.Spec.Template.Spec) - - // Preserve Hub data on down-conversion except for metadata. - return utilconversion.MarshalData(src, dst) -} - -func Convert_v1alpha3_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(in *KubeadmConfigSpec, out *bootstrapv1.KubeadmConfigSpec, s apimachineryconversion.Scope) error { - // NOTE: v1beta2 KubeadmConfigSpec does not have UseExperimentalRetryJoin anymore, so it's fine to just lose this field. - if err := autoConvert_v1alpha3_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(in, out, s); err != nil { - return err - } - if in.ClusterConfiguration != nil { - if err := Convert_v1alpha3_ClusterConfiguration_To_v1beta2_ClusterConfiguration(in.ClusterConfiguration, &out.ClusterConfiguration, s); err != nil { - return err - } - } - if in.InitConfiguration != nil { - if err := Convert_v1alpha3_InitConfiguration_To_v1beta2_InitConfiguration(in.InitConfiguration, &out.InitConfiguration, s); err != nil { - return err - } - } - if in.JoinConfiguration != nil { - if err := Convert_v1alpha3_JoinConfiguration_To_v1beta2_JoinConfiguration(in.JoinConfiguration, &out.JoinConfiguration, s); err != nil { - return err - } - } - if in.DiskSetup != nil { - if err := Convert_v1alpha3_DiskSetup_To_v1beta2_DiskSetup(in.DiskSetup, &out.DiskSetup, s); err != nil { - return err - } - } - if in.NTP != nil { - if err := Convert_v1alpha3_NTP_To_v1beta2_NTP(in.NTP, &out.NTP, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1alpha3_KubeadmConfigStatus_To_v1beta2_KubeadmConfigStatus(in *KubeadmConfigStatus, out *bootstrapv1.KubeadmConfigStatus, s apimachineryconversion.Scope) error { - // KubeadmConfigStatus.BootstrapData has been removed in v1alpha4 because its content has been moved to the bootstrap data secret, value will be lost during conversion. - return autoConvert_v1alpha3_KubeadmConfigStatus_To_v1beta2_KubeadmConfigStatus(in, out, s) -} - -func Convert_v1alpha3_BootstrapToken_To_v1beta2_BootstrapToken(in *BootstrapToken, out *bootstrapv1.BootstrapToken, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_BootstrapToken_To_v1beta2_BootstrapToken(in, out, s); err != nil { - return err - } - out.TTLSeconds = clusterv1.ConvertToSeconds(in.TTL) - if in.Expires != nil && !reflect.DeepEqual(in.Expires, &metav1.Time{}) { - out.Expires = *in.Expires - } - if in.Token != nil { - if err := autoConvert_v1alpha3_BootstrapTokenString_To_v1beta2_BootstrapTokenString(in.Token, &out.Token, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_KubeadmConfigSpec_To_v1alpha3_KubeadmConfigSpec(in *bootstrapv1.KubeadmConfigSpec, out *KubeadmConfigSpec, s apimachineryconversion.Scope) error { - // KubeadmConfigSpec.Ignition does not exist in kubeadm v1alpha3 API. - if err := autoConvert_v1beta2_KubeadmConfigSpec_To_v1alpha3_KubeadmConfigSpec(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.ClusterConfiguration, bootstrapv1.ClusterConfiguration{}) { - out.ClusterConfiguration = &ClusterConfiguration{} - if err := Convert_v1beta2_ClusterConfiguration_To_v1alpha3_ClusterConfiguration(&in.ClusterConfiguration, out.ClusterConfiguration, s); err != nil { - return err - } - } - if !reflect.DeepEqual(in.InitConfiguration, bootstrapv1.InitConfiguration{}) { - out.InitConfiguration = &InitConfiguration{} - if err := Convert_v1beta2_InitConfiguration_To_v1alpha3_InitConfiguration(&in.InitConfiguration, out.InitConfiguration, s); err != nil { - return err - } - } - if !reflect.DeepEqual(in.JoinConfiguration, bootstrapv1.JoinConfiguration{}) { - out.JoinConfiguration = &JoinConfiguration{} - if err := Convert_v1beta2_JoinConfiguration_To_v1alpha3_JoinConfiguration(&in.JoinConfiguration, out.JoinConfiguration, s); err != nil { - return err - } - } - if !reflect.DeepEqual(in.DiskSetup, bootstrapv1.DiskSetup{}) { - out.DiskSetup = &DiskSetup{} - if err := Convert_v1beta2_DiskSetup_To_v1alpha3_DiskSetup(&in.DiskSetup, out.DiskSetup, s); err != nil { - return err - } - } - if !reflect.DeepEqual(in.NTP, bootstrapv1.NTP{}) { - out.NTP = &NTP{} - if err := Convert_v1beta2_NTP_To_v1alpha3_NTP(&in.NTP, out.NTP, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_User_To_v1alpha3_User(in *bootstrapv1.User, out *User, s apimachineryconversion.Scope) error { - // User.PasswdFrom does not exist in kubeadm v1alpha3 API. - return autoConvert_v1beta2_User_To_v1alpha3_User(in, out, s) -} - -func Convert_v1beta2_KubeadmConfigTemplateResource_To_v1alpha3_KubeadmConfigTemplateResource(in *bootstrapv1.KubeadmConfigTemplateResource, out *KubeadmConfigTemplateResource, s apimachineryconversion.Scope) error { - // KubeadmConfigTemplateResource.metadata does not exist in kubeadm v1alpha3. - return autoConvert_v1beta2_KubeadmConfigTemplateResource_To_v1alpha3_KubeadmConfigTemplateResource(in, out, s) -} - -func Convert_v1beta2_KubeadmConfigStatus_To_v1alpha3_KubeadmConfigStatus(in *bootstrapv1.KubeadmConfigStatus, out *KubeadmConfigStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1beta1. - return autoConvert_v1beta2_KubeadmConfigStatus_To_v1alpha3_KubeadmConfigStatus(in, out, s) -} - -func Convert_v1beta2_BootstrapToken_To_v1alpha3_BootstrapToken(in *bootstrapv1.BootstrapToken, out *BootstrapToken, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_BootstrapToken_To_v1alpha3_BootstrapToken(in, out, s); err != nil { - return err - } - out.TTL = clusterv1.ConvertFromSeconds(in.TTLSeconds) - if !reflect.DeepEqual(in.Expires, metav1.Time{}) { - out.Expires = ptr.To(in.Expires) - } - if !reflect.DeepEqual(in.Token, bootstrapv1.BootstrapTokenString{}) { - out.Token = &BootstrapTokenString{} - if err := autoConvert_v1beta2_BootstrapTokenString_To_v1alpha3_BootstrapTokenString(&in.Token, out.Token, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1alpha3_InitConfiguration_To_v1beta2_InitConfiguration(in *InitConfiguration, out *bootstrapv1.InitConfiguration, s apimachineryconversion.Scope) error { - // Type neta has been dropped in v1beta2 - return autoConvert_v1alpha3_InitConfiguration_To_v1beta2_InitConfiguration(in, out, s) -} - -// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94) - -func Convert_v1_Condition_To_v1alpha3_Condition(in *metav1.Condition, out *clusterv1alpha3.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha3.Convert_v1_Condition_To_v1alpha3_Condition(in, out, s) -} - -func Convert_v1alpha3_Condition_To_v1_Condition(in *clusterv1alpha3.Condition, out *metav1.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha3.Convert_v1alpha3_Condition_To_v1_Condition(in, out, s) -} - -func Convert_v1beta2_ClusterConfiguration_To_v1alpha3_ClusterConfiguration(in *bootstrapv1.ClusterConfiguration, out *ClusterConfiguration, s apimachineryconversion.Scope) error { - return autoConvert_v1beta2_ClusterConfiguration_To_v1alpha3_ClusterConfiguration(in, out, s) -} - -func Convert_v1beta2_DNS_To_v1alpha3_DNS(in *bootstrapv1.DNS, out *DNS, _ apimachineryconversion.Scope) error { - out.ImageRepository = in.ImageRepository - out.ImageTag = in.ImageTag - return nil -} - -func Convert_v1alpha3_Etcd_To_v1beta2_Etcd(in *Etcd, out *bootstrapv1.Etcd, s apimachineryconversion.Scope) error { - if in.Local != nil { - if err := Convert_v1alpha3_LocalEtcd_To_v1beta2_LocalEtcd(in.Local, &out.Local, s); err != nil { - return err - } - } - if in.External != nil { - if err := Convert_v1alpha3_ExternalEtcd_To_v1beta2_ExternalEtcd(in.External, &out.External, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_Etcd_To_v1alpha3_Etcd(in *bootstrapv1.Etcd, out *Etcd, s apimachineryconversion.Scope) error { - if in.Local.IsDefined() { - out.Local = &LocalEtcd{} - if err := Convert_v1beta2_LocalEtcd_To_v1alpha3_LocalEtcd(&in.Local, out.Local, s); err != nil { - return err - } - } - if in.External.IsDefined() { - out.External = &ExternalEtcd{} - if err := Convert_v1beta2_ExternalEtcd_To_v1alpha3_ExternalEtcd(&in.External, out.External, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_Discovery_To_v1alpha3_Discovery(in *bootstrapv1.Discovery, out *Discovery, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_Discovery_To_v1alpha3_Discovery(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.BootstrapToken, bootstrapv1.BootstrapTokenDiscovery{}) { - out.BootstrapToken = &BootstrapTokenDiscovery{} - if err := Convert_v1beta2_BootstrapTokenDiscovery_To_v1alpha3_BootstrapTokenDiscovery(&in.BootstrapToken, out.BootstrapToken, s); err != nil { - return err - } - } - if !reflect.DeepEqual(in.File, bootstrapv1.FileDiscovery{}) { - out.File = &FileDiscovery{} - if err := Convert_v1beta2_FileDiscovery_To_v1alpha3_FileDiscovery(&in.File, out.File, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1alpha3_File_To_v1beta2_File(in *File, out *bootstrapv1.File, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_File_To_v1beta2_File(in, out, s); err != nil { - return err - } - if in.ContentFrom != nil { - if err := Convert_v1alpha3_FileSource_To_v1beta2_FileSource(in.ContentFrom, &out.ContentFrom, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_File_To_v1alpha3_File(in *bootstrapv1.File, out *File, s apimachineryconversion.Scope) error { - // File.Append does not exist in kubeadm v1alpha3 API. - if err := autoConvert_v1beta2_File_To_v1alpha3_File(in, out, s); err != nil { - return err - } - if in.ContentFrom.IsDefined() { - out.ContentFrom = &FileSource{} - if err := Convert_v1beta2_FileSource_To_v1alpha3_FileSource(&in.ContentFrom, out.ContentFrom, s); err != nil { - return err - } - } - return nil -} - -func dropEmptyStringsKubeadmConfigSpec(dst *KubeadmConfigSpec) { - for i, u := range dst.Users { - dropEmptyString(&u.Gecos) - dropEmptyString(&u.Groups) - dropEmptyString(&u.HomeDir) - dropEmptyString(&u.Shell) - dropEmptyString(&u.Passwd) - dropEmptyString(&u.PrimaryGroup) - dropEmptyString(&u.Sudo) - dst.Users[i] = u - } - - if dst.DiskSetup != nil { - for i, p := range dst.DiskSetup.Partitions { - dropEmptyString(&p.TableType) - dst.DiskSetup.Partitions[i] = p - } - for i, f := range dst.DiskSetup.Filesystems { - dropEmptyString(&f.Partition) - dropEmptyString(&f.ReplaceFS) - dst.DiskSetup.Filesystems[i] = f - } - } -} - -func dropEmptyStringsKubeadmConfigStatus(dst *KubeadmConfigStatus) { - dropEmptyString(&dst.DataSecretName) -} - -func dropEmptyString(s **string) { - if *s != nil && **s == "" { - *s = nil - } -} diff --git a/internal/api/bootstrap/kubeadm/v1alpha3/conversion_test.go b/internal/api/bootstrap/kubeadm/v1alpha3/conversion_test.go deleted file mode 100644 index 2ba3cb3625b9..000000000000 --- a/internal/api/bootstrap/kubeadm/v1alpha3/conversion_test.go +++ /dev/null @@ -1,285 +0,0 @@ -//go:build !race - -/* -Copyright 2020 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 v1alpha3 - -import ( - "reflect" - "testing" - "time" - - "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/utils/ptr" - "sigs.k8s.io/randfill" - - bootstrapv1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -const ( - fakeID = "abcdef" - fakeSecret = "abcdef0123456789" -) - -// Test is disabled when the race detector is enabled (via "//go:build !race" above) because otherwise the fuzz tests would just time out. - -func TestFuzzyConversion(t *testing.T) { - t.Run("for KubeadmConfig", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &bootstrapv1.KubeadmConfig{}, - Spoke: &KubeadmConfig{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{KubeadmConfigFuzzFuncs}, - })) - t.Run("for KubeadmConfigTemplate", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &bootstrapv1.KubeadmConfigTemplate{}, - Spoke: &KubeadmConfigTemplate{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{KubeadmConfigTemplateFuzzFuncs}, - })) -} - -func KubeadmConfigFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - spokeKubeadmConfigSpec, - spokeKubeadmConfigStatus, - spokeDNS, - spokeClusterConfiguration, - hubKubeadmConfigStatus, - hubBootstrapTokenString, - spokeBootstrapTokenString, - spokeAPIServer, - spokeDiscovery, - hubKubeadmConfigSpec, - hubNodeRegistrationOptions, - spokeBootstrapToken, - } -} - -func KubeadmConfigTemplateFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - spokeKubeadmConfigSpec, - spokeDNS, - spokeClusterConfiguration, - hubBootstrapTokenString, - spokeBootstrapTokenString, - spokeAPIServer, - spokeDiscovery, - hubKubeadmConfigSpec, - hubNodeRegistrationOptions, - spokeBootstrapToken, - } -} - -func hubKubeadmConfigSpec(in *bootstrapv1.KubeadmConfigSpec, c randfill.Continue) { - c.FillNoCustom(in) - - // enforce ControlPlaneComponentHealthCheckSeconds to be equal on init and join configuration - initControlPlaneComponentHealthCheckSeconds := in.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds - if in.JoinConfiguration.IsDefined() || initControlPlaneComponentHealthCheckSeconds != nil { - in.JoinConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds = initControlPlaneComponentHealthCheckSeconds - } - - if in.ClusterConfiguration.APIServer.ExtraEnvs != nil && *in.ClusterConfiguration.APIServer.ExtraEnvs == nil { - in.ClusterConfiguration.APIServer.ExtraEnvs = nil - } - if in.ClusterConfiguration.ControllerManager.ExtraEnvs != nil && *in.ClusterConfiguration.ControllerManager.ExtraEnvs == nil { - in.ClusterConfiguration.ControllerManager.ExtraEnvs = nil - } - if in.ClusterConfiguration.Scheduler.ExtraEnvs != nil && *in.ClusterConfiguration.Scheduler.ExtraEnvs == nil { - in.ClusterConfiguration.Scheduler.ExtraEnvs = nil - } - if in.ClusterConfiguration.Etcd.Local.ExtraEnvs != nil && *in.ClusterConfiguration.Etcd.Local.ExtraEnvs == nil { - in.ClusterConfiguration.Etcd.Local.ExtraEnvs = nil - } - - for i, arg := range in.ClusterConfiguration.APIServer.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.APIServer.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.ControllerManager.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.ControllerManager.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.Scheduler.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.Scheduler.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.Etcd.Local.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.Etcd.Local.ExtraArgs[i] = arg - } - for i, arg := range in.InitConfiguration.NodeRegistration.KubeletExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.InitConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg - } - for i, arg := range in.JoinConfiguration.NodeRegistration.KubeletExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.JoinConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg - } - for i, p := range in.DiskSetup.Partitions { - if p.Layout == nil { - p.Layout = ptr.To(false) // Layout is a required field and nil does not round trip - } - in.DiskSetup.Partitions[i] = p - } -} - -func hubNodeRegistrationOptions(in *bootstrapv1.NodeRegistrationOptions, c randfill.Continue) { - c.FillNoCustom(in) - - if in.Taints != nil && *in.Taints == nil { - in.Taints = nil - } -} - -func hubKubeadmConfigStatus(in *bootstrapv1.KubeadmConfigStatus, c randfill.Continue) { - c.FillNoCustom(in) - // Always create struct with at least one mandatory fields. - if in.Deprecated == nil { - in.Deprecated = &bootstrapv1.KubeadmConfigDeprecatedStatus{} - } - if in.Deprecated.V1Beta1 == nil { - in.Deprecated.V1Beta1 = &bootstrapv1.KubeadmConfigV1Beta1DeprecatedStatus{} - } -} - -func spokeKubeadmConfigSpec(in *KubeadmConfigSpec, c randfill.Continue) { - c.FillNoCustom(in) - - // Drop UseExperimentalRetryJoin as we intentionally don't preserve it. - in.UseExperimentalRetryJoin = false - - dropEmptyStringsKubeadmConfigSpec(in) - - if in.DiskSetup != nil && reflect.DeepEqual(in.DiskSetup, &DiskSetup{}) { - in.DiskSetup = nil - } - if in.NTP != nil && reflect.DeepEqual(in.NTP, &NTP{}) { - in.NTP = nil - } - for i, file := range in.Files { - if file.ContentFrom != nil && reflect.DeepEqual(file.ContentFrom, &FileSource{}) { - file.ContentFrom = nil - } - in.Files[i] = file - } - - if reflect.DeepEqual(in.ClusterConfiguration, &ClusterConfiguration{}) { - in.ClusterConfiguration = nil - } - if reflect.DeepEqual(in.InitConfiguration, &InitConfiguration{}) { - in.InitConfiguration = nil - } - if reflect.DeepEqual(in.JoinConfiguration, &JoinConfiguration{}) { - in.JoinConfiguration = nil - } -} - -func spokeKubeadmConfigStatus(obj *KubeadmConfigStatus, c randfill.Continue) { - c.FillNoCustom(obj) - - // KubeadmConfigStatus.BootstrapData has been removed in v1alpha4, so setting it to nil in order to avoid v1alpha3 --> --> v1alpha3 round trip errors. - obj.BootstrapData = nil - - dropEmptyStringsKubeadmConfigStatus(obj) -} - -func spokeDNS(obj *DNS, c randfill.Continue) { - c.FillNoCustom(obj) - - // DNS.Type does not exists in v1alpha4, so setting it to empty string in order to avoid v1alpha3 --> --> v1alpha3 round trip errors. - obj.Type = "" -} - -func spokeClusterConfiguration(obj *ClusterConfiguration, c randfill.Continue) { - c.FillNoCustom(obj) - - // ClusterConfiguration.UseHyperKubeImage has been removed in v1alpha4, so setting it to false in order to avoid v1beta1 --> --> v1beta1 round trip errors. - obj.UseHyperKubeImage = false - - // Drop the following fields as they have been removed in v1beta2, so we don't have to preserve them. - obj.Networking.ServiceSubnet = "" - obj.Networking.PodSubnet = "" - obj.Networking.DNSDomain = "" - obj.KubernetesVersion = "" - obj.ClusterName = "" - - if obj.Etcd.Local != nil && reflect.DeepEqual(obj.Etcd.Local, &LocalEtcd{}) { - obj.Etcd.Local = nil - } - if obj.Etcd.External != nil && reflect.DeepEqual(obj.Etcd.External, &ExternalEtcd{}) { - obj.Etcd.External = nil - } -} - -func hubBootstrapTokenString(in *bootstrapv1.BootstrapTokenString, _ randfill.Continue) { - in.ID = fakeID - in.Secret = fakeSecret -} - -func spokeBootstrapTokenString(in *BootstrapTokenString, _ randfill.Continue) { - in.ID = fakeID - in.Secret = fakeSecret -} - -func spokeAPIServer(in *APIServer, c randfill.Continue) { - c.FillNoCustom(in) - - if in.TimeoutForControlPlane != nil { - in.TimeoutForControlPlane = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } -} - -func spokeBootstrapToken(in *BootstrapToken, c randfill.Continue) { - c.FillNoCustom(in) - - if in.TTL != nil { - in.TTL = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } - if reflect.DeepEqual(in.Expires, &metav1.Time{}) { - in.Expires = nil - } -} - -func spokeDiscovery(in *Discovery, c randfill.Continue) { - c.FillNoCustom(in) - - if in.Timeout != nil { - in.Timeout = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } - if in.File != nil { - if reflect.DeepEqual(in.File, &FileDiscovery{}) { - in.File = nil - } - } - if in.BootstrapToken != nil && reflect.DeepEqual(in.BootstrapToken, &BootstrapTokenDiscovery{}) { - in.BootstrapToken = nil - } -} diff --git a/internal/api/bootstrap/kubeadm/v1alpha4/conversion.go b/internal/api/bootstrap/kubeadm/v1alpha4/conversion.go deleted file mode 100644 index 54a1ef93fada..000000000000 --- a/internal/api/bootstrap/kubeadm/v1alpha4/conversion.go +++ /dev/null @@ -1,733 +0,0 @@ -/* -Copyright 2020 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 v1alpha4 - -import ( - "fmt" - "reflect" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - bootstrapv1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" - clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - clusterv1alpha4 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha4" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -func (src *KubeadmConfig) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*bootstrapv1.KubeadmConfig) - - if err := Convert_v1alpha4_KubeadmConfig_To_v1beta2_KubeadmConfig(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha4), failureReason and failureMessage to the deprecated field. - dst.Status.Deprecated = &bootstrapv1.KubeadmConfigDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &bootstrapv1.KubeadmConfigV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - clusterv1alpha4.Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - - // Manually restore data. - restored := &bootstrapv1.KubeadmConfig{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - initialization := bootstrapv1.KubeadmConfigInitializationStatus{} - restoredBootstrapDataSecretCreated := restored.Status.Initialization.DataSecretCreated - clusterv1.Convert_bool_To_Pointer_bool(src.Status.Ready, ok, restoredBootstrapDataSecretCreated, &initialization.DataSecretCreated) - if !reflect.DeepEqual(initialization, bootstrapv1.KubeadmConfigInitializationStatus{}) { - dst.Status.Initialization = initialization - } - if err := RestoreBoolIntentKubeadmConfigSpec(&src.Spec, &dst.Spec, ok, &restored.Spec); err != nil { - return err - } - - // Recover other values - if ok { - RestoreKubeadmConfigSpec(&dst.Spec, &restored.Spec) - dst.Status.Conditions = restored.Status.Conditions - } - - // Override restored data with timeouts values already existing in v1beta1 but in other structs. - src.Spec.ConvertTo(&dst.Spec) - return nil -} - -func RestoreKubeadmConfigSpec(dst *bootstrapv1.KubeadmConfigSpec, restored *bootstrapv1.KubeadmConfigSpec) { - dst.Files = restored.Files - - dst.Users = restored.Users - if restored.Users != nil { - for i := range restored.Users { - if restored.Users[i].PasswdFrom.IsDefined() { - dst.Users[i].PasswdFrom = restored.Users[i].PasswdFrom - } - } - } - - dst.BootCommands = restored.BootCommands - dst.Ignition = restored.Ignition - - dst.ClusterConfiguration.APIServer.ExtraEnvs = restored.ClusterConfiguration.APIServer.ExtraEnvs - dst.ClusterConfiguration.ControllerManager.ExtraEnvs = restored.ClusterConfiguration.ControllerManager.ExtraEnvs - dst.ClusterConfiguration.Scheduler.ExtraEnvs = restored.ClusterConfiguration.Scheduler.ExtraEnvs - dst.ClusterConfiguration.CertificateValidityPeriodDays = restored.ClusterConfiguration.CertificateValidityPeriodDays - dst.ClusterConfiguration.CACertificateValidityPeriodDays = restored.ClusterConfiguration.CACertificateValidityPeriodDays - dst.ClusterConfiguration.Etcd.Local.ExtraEnvs = restored.ClusterConfiguration.Etcd.Local.ExtraEnvs - - dst.InitConfiguration.Timeouts = restored.InitConfiguration.Timeouts - dst.InitConfiguration.Patches = restored.InitConfiguration.Patches - dst.InitConfiguration.SkipPhases = restored.InitConfiguration.SkipPhases - // Important! whenever adding fields to NodeRegistration, same fields must be added to hub.NodeRegistration's custom serialization func - // otherwise those field won't exist in restored. - dst.InitConfiguration.NodeRegistration.ImagePullPolicy = restored.InitConfiguration.NodeRegistration.ImagePullPolicy - dst.InitConfiguration.NodeRegistration.ImagePullSerial = restored.InitConfiguration.NodeRegistration.ImagePullSerial - - dst.JoinConfiguration.Timeouts = restored.JoinConfiguration.Timeouts - dst.JoinConfiguration.Patches = restored.JoinConfiguration.Patches - dst.JoinConfiguration.SkipPhases = restored.JoinConfiguration.SkipPhases - dst.JoinConfiguration.Discovery.File.KubeConfig = restored.JoinConfiguration.Discovery.File.KubeConfig - // Important! whenever adding fields to NodeRegistration, same fields must be added to hub.NodeRegistration's custom serialization func - // otherwise those field won't exist in restored. - dst.JoinConfiguration.NodeRegistration.ImagePullPolicy = restored.JoinConfiguration.NodeRegistration.ImagePullPolicy - dst.JoinConfiguration.NodeRegistration.ImagePullSerial = restored.JoinConfiguration.NodeRegistration.ImagePullSerial -} - -func RestoreBoolIntentKubeadmConfigSpec(src *KubeadmConfigSpec, dst *bootstrapv1.KubeadmConfigSpec, hasRestored bool, restored *bootstrapv1.KubeadmConfigSpec) error { - if dst.JoinConfiguration.Discovery.BootstrapToken.IsDefined() { - restoredUnsafeSkipCAVerification := restored.JoinConfiguration.Discovery.BootstrapToken.UnsafeSkipCAVerification - clusterv1.Convert_bool_To_Pointer_bool(src.JoinConfiguration.Discovery.BootstrapToken.UnsafeSkipCAVerification, hasRestored, restoredUnsafeSkipCAVerification, &dst.JoinConfiguration.Discovery.BootstrapToken.UnsafeSkipCAVerification) - } - - for i, volume := range dst.ClusterConfiguration.APIServer.ExtraVolumes { - var srcVolume *HostPathMount - if src.ClusterConfiguration != nil { - for _, v := range src.ClusterConfiguration.APIServer.ExtraVolumes { - if v.HostPath == volume.HostPath { - srcVolume = &v - break - } - } - } - if srcVolume == nil { - return fmt.Errorf("apiServer extraVolume with hostPath %q not found in source data", volume.HostPath) - } - var restoredVolumeReadOnly *bool - for _, v := range restored.ClusterConfiguration.APIServer.ExtraVolumes { - if v.HostPath == volume.HostPath { - restoredVolumeReadOnly = v.ReadOnly - break - } - } - clusterv1.Convert_bool_To_Pointer_bool(srcVolume.ReadOnly, hasRestored, restoredVolumeReadOnly, &volume.ReadOnly) - dst.ClusterConfiguration.APIServer.ExtraVolumes[i] = volume - } - for i, volume := range dst.ClusterConfiguration.ControllerManager.ExtraVolumes { - var srcVolume *HostPathMount - if src.ClusterConfiguration != nil { - for _, v := range src.ClusterConfiguration.ControllerManager.ExtraVolumes { - if v.HostPath == volume.HostPath { - srcVolume = &v - break - } - } - } - if srcVolume == nil { - return fmt.Errorf("controllerManager extraVolume with hostPath %q not found in source data", volume.HostPath) - } - var restoredVolumeReadOnly *bool - for _, v := range restored.ClusterConfiguration.ControllerManager.ExtraVolumes { - if v.HostPath == volume.HostPath { - restoredVolumeReadOnly = v.ReadOnly - break - } - } - clusterv1.Convert_bool_To_Pointer_bool(srcVolume.ReadOnly, hasRestored, restoredVolumeReadOnly, &volume.ReadOnly) - dst.ClusterConfiguration.ControllerManager.ExtraVolumes[i] = volume - } - for i, volume := range dst.ClusterConfiguration.Scheduler.ExtraVolumes { - var srcVolume *HostPathMount - if src.ClusterConfiguration != nil { - for _, v := range src.ClusterConfiguration.Scheduler.ExtraVolumes { - if v.HostPath == volume.HostPath { - srcVolume = &v - break - } - } - } - if srcVolume == nil { - return fmt.Errorf("scheduler extraVolume with hostPath %q not found in source data", volume.HostPath) - } - var restoredVolumeReadOnly *bool - for _, v := range restored.ClusterConfiguration.Scheduler.ExtraVolumes { - if v.HostPath == volume.HostPath { - restoredVolumeReadOnly = v.ReadOnly - break - } - } - clusterv1.Convert_bool_To_Pointer_bool(srcVolume.ReadOnly, hasRestored, restoredVolumeReadOnly, &volume.ReadOnly) - dst.ClusterConfiguration.Scheduler.ExtraVolumes[i] = volume - } - return nil -} - -func (src *KubeadmConfigSpec) ConvertTo(dst *bootstrapv1.KubeadmConfigSpec) { - // Override with timeouts values already existing in v1beta1. - var initControlPlaneComponentHealthCheckSeconds *int32 - if src.ClusterConfiguration != nil && src.ClusterConfiguration.APIServer.TimeoutForControlPlane != nil { - dst.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds = clusterv1.ConvertToSeconds(src.ClusterConfiguration.APIServer.TimeoutForControlPlane) - initControlPlaneComponentHealthCheckSeconds = dst.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds - } - if (src.JoinConfiguration != nil && src.JoinConfiguration.Discovery.Timeout != nil) || initControlPlaneComponentHealthCheckSeconds != nil { - dst.JoinConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds = initControlPlaneComponentHealthCheckSeconds - if src.JoinConfiguration != nil && src.JoinConfiguration.Discovery.Timeout != nil { - dst.JoinConfiguration.Timeouts.TLSBootstrapSeconds = clusterv1.ConvertToSeconds(src.JoinConfiguration.Discovery.Timeout) - } - } -} - -func (dst *KubeadmConfig) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*bootstrapv1.KubeadmConfig) - - if err := Convert_v1beta2_KubeadmConfig_To_v1alpha4_KubeadmConfig(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha4). - dst.Status.Conditions = nil - - // Retrieve legacy conditions (v1alpha4), failureReason and failureMessage from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - clusterv1alpha4.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - } - } - - // Move initialization to old fields - dst.Status.Ready = ptr.Deref(src.Status.Initialization.DataSecretCreated, false) - - // Convert timeouts moved from one struct to another. - dst.Spec.ConvertFrom(&src.Spec) - - dropEmptyStringsKubeadmConfigSpec(&dst.Spec) - dropEmptyStringsKubeadmConfigStatus(&dst.Status) - - // Preserve Hub data on down-conversion except for metadata. - return utilconversion.MarshalData(src, dst) -} - -func (dst *KubeadmConfigSpec) ConvertFrom(src *bootstrapv1.KubeadmConfigSpec) { - // Convert timeouts moved from one struct to another. - if src.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds != nil { - if dst.ClusterConfiguration == nil { - dst.ClusterConfiguration = &ClusterConfiguration{} - } - dst.ClusterConfiguration.APIServer.TimeoutForControlPlane = clusterv1.ConvertFromSeconds(src.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds) - } - if reflect.DeepEqual(dst.InitConfiguration, &InitConfiguration{}) { - dst.InitConfiguration = nil - } - if src.JoinConfiguration.Timeouts.TLSBootstrapSeconds != nil { - if dst.JoinConfiguration == nil { - dst.JoinConfiguration = &JoinConfiguration{} - } - dst.JoinConfiguration.Discovery.Timeout = clusterv1.ConvertFromSeconds(src.JoinConfiguration.Timeouts.TLSBootstrapSeconds) - } - if reflect.DeepEqual(dst.JoinConfiguration, &JoinConfiguration{}) { - dst.JoinConfiguration = nil - } -} - -func (src *KubeadmConfigTemplate) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*bootstrapv1.KubeadmConfigTemplate) - - if err := Convert_v1alpha4_KubeadmConfigTemplate_To_v1beta2_KubeadmConfigTemplate(src, dst, nil); err != nil { - return err - } - - // Manually restore data. - restored := &bootstrapv1.KubeadmConfigTemplate{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - if err := RestoreBoolIntentKubeadmConfigSpec(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, ok, &restored.Spec.Template.Spec); err != nil { - return err - } - - // Recover other values - if ok { - RestoreKubeadmConfigSpec(&dst.Spec.Template.Spec, &restored.Spec.Template.Spec) - dst.Spec.Template.ObjectMeta = restored.Spec.Template.ObjectMeta - } - - // Override restored data with timeouts values already existing in v1beta1 but in other structs. - src.Spec.Template.Spec.ConvertTo(&dst.Spec.Template.Spec) - return nil -} - -func (dst *KubeadmConfigTemplate) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*bootstrapv1.KubeadmConfigTemplate) - - if err := Convert_v1beta2_KubeadmConfigTemplate_To_v1alpha4_KubeadmConfigTemplate(src, dst, nil); err != nil { - return err - } - - // Convert timeouts moved from one struct to another. - dst.Spec.Template.Spec.ConvertFrom(&src.Spec.Template.Spec) - - dropEmptyStringsKubeadmConfigSpec(&dst.Spec.Template.Spec) - - // Preserve Hub data on down-conversion except for metadata. - return utilconversion.MarshalData(src, dst) -} - -func Convert_v1alpha4_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(in *KubeadmConfigSpec, out *bootstrapv1.KubeadmConfigSpec, s apimachineryconversion.Scope) error { - // NOTE: v1beta2 KubeadmConfigSpec does not have UseExperimentalRetryJoin anymore, so it's fine to just lose this field. - if err := autoConvert_v1alpha4_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(in, out, s); err != nil { - return err - } - if in.ClusterConfiguration != nil { - if err := Convert_v1alpha4_ClusterConfiguration_To_v1beta2_ClusterConfiguration(in.ClusterConfiguration, &out.ClusterConfiguration, s); err != nil { - return err - } - } - if in.InitConfiguration != nil { - if err := Convert_v1alpha4_InitConfiguration_To_v1beta2_InitConfiguration(in.InitConfiguration, &out.InitConfiguration, s); err != nil { - return err - } - } - if in.JoinConfiguration != nil { - if err := Convert_v1alpha4_JoinConfiguration_To_v1beta2_JoinConfiguration(in.JoinConfiguration, &out.JoinConfiguration, s); err != nil { - return err - } - } - if in.DiskSetup != nil { - if err := Convert_v1alpha4_DiskSetup_To_v1beta2_DiskSetup(in.DiskSetup, &out.DiskSetup, s); err != nil { - return err - } - } - if in.NTP != nil { - if err := Convert_v1alpha4_NTP_To_v1beta2_NTP(in.NTP, &out.NTP, s); err != nil { - return err - } - } - return nil -} - -// Convert_v1beta2_KubeadmConfigSpec_To_v1alpha4_KubeadmConfigSpec is an autogenerated conversion function. -func Convert_v1beta2_KubeadmConfigSpec_To_v1alpha4_KubeadmConfigSpec(in *bootstrapv1.KubeadmConfigSpec, out *KubeadmConfigSpec, s apimachineryconversion.Scope) error { - // KubeadmConfigSpec.Ignition does not exist in kubeadm v1alpha4 API. - if err := autoConvert_v1beta2_KubeadmConfigSpec_To_v1alpha4_KubeadmConfigSpec(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.ClusterConfiguration, bootstrapv1.ClusterConfiguration{}) { - out.ClusterConfiguration = &ClusterConfiguration{} - if err := Convert_v1beta2_ClusterConfiguration_To_v1alpha4_ClusterConfiguration(&in.ClusterConfiguration, out.ClusterConfiguration, s); err != nil { - return err - } - } - if !reflect.DeepEqual(in.InitConfiguration, bootstrapv1.InitConfiguration{}) { - out.InitConfiguration = &InitConfiguration{} - if err := Convert_v1beta2_InitConfiguration_To_v1alpha4_InitConfiguration(&in.InitConfiguration, out.InitConfiguration, s); err != nil { - return err - } - } - if !reflect.DeepEqual(in.JoinConfiguration, bootstrapv1.JoinConfiguration{}) { - out.JoinConfiguration = &JoinConfiguration{} - if err := Convert_v1beta2_JoinConfiguration_To_v1alpha4_JoinConfiguration(&in.JoinConfiguration, out.JoinConfiguration, s); err != nil { - return err - } - } - if !reflect.DeepEqual(in.DiskSetup, bootstrapv1.DiskSetup{}) { - out.DiskSetup = &DiskSetup{} - if err := Convert_v1beta2_DiskSetup_To_v1alpha4_DiskSetup(&in.DiskSetup, out.DiskSetup, s); err != nil { - return err - } - } - if !reflect.DeepEqual(in.NTP, bootstrapv1.NTP{}) { - out.NTP = &NTP{} - if err := Convert_v1beta2_NTP_To_v1alpha4_NTP(&in.NTP, out.NTP, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1alpha4_ClusterConfiguration_To_v1beta2_ClusterConfiguration(in *ClusterConfiguration, out *bootstrapv1.ClusterConfiguration, s apimachineryconversion.Scope) error { - return autoConvert_v1alpha4_ClusterConfiguration_To_v1beta2_ClusterConfiguration(in, out, s) -} - -func Convert_v1beta2_InitConfiguration_To_v1alpha4_InitConfiguration(in *bootstrapv1.InitConfiguration, out *InitConfiguration, s apimachineryconversion.Scope) error { - // InitConfiguration.Patches does not exist in kubeadm v1alpha4 API. - return autoConvert_v1beta2_InitConfiguration_To_v1alpha4_InitConfiguration(in, out, s) -} - -func Convert_v1beta2_JoinConfiguration_To_v1alpha4_JoinConfiguration(in *bootstrapv1.JoinConfiguration, out *JoinConfiguration, s apimachineryconversion.Scope) error { - // InitConfiguration.Patches does not exist in kubeadm v1alpha4 API. - return autoConvert_v1beta2_JoinConfiguration_To_v1alpha4_JoinConfiguration(in, out, s) -} - -func Convert_v1beta2_User_To_v1alpha4_User(in *bootstrapv1.User, out *User, s apimachineryconversion.Scope) error { - // User.PasswdFrom does not exist in kubeadm v1alpha4 API. - return autoConvert_v1beta2_User_To_v1alpha4_User(in, out, s) -} - -func Convert_v1beta2_NodeRegistrationOptions_To_v1alpha4_NodeRegistrationOptions(in *bootstrapv1.NodeRegistrationOptions, out *NodeRegistrationOptions, s apimachineryconversion.Scope) error { - // NodeRegistrationOptions.ImagePullPolicy does not exit in kubeadm v1alpha4 API. - // Following fields require a custom conversions. - out.KubeletExtraArgs = bootstrapv1.ConvertFromArgs(in.KubeletExtraArgs) - if in.Taints == nil { - out.Taints = nil - } else { - out.Taints = *in.Taints - } - return autoConvert_v1beta2_NodeRegistrationOptions_To_v1alpha4_NodeRegistrationOptions(in, out, s) -} - -func Convert_v1beta2_KubeadmConfigTemplateResource_To_v1alpha4_KubeadmConfigTemplateResource(in *bootstrapv1.KubeadmConfigTemplateResource, out *KubeadmConfigTemplateResource, s apimachineryconversion.Scope) error { - // KubeadmConfigTemplateResource.metadata does not exist in kubeadm v1alpha4. - return autoConvert_v1beta2_KubeadmConfigTemplateResource_To_v1alpha4_KubeadmConfigTemplateResource(in, out, s) -} - -func Convert_v1beta2_FileDiscovery_To_v1alpha4_FileDiscovery(in *bootstrapv1.FileDiscovery, out *FileDiscovery, s apimachineryconversion.Scope) error { - // JoinConfiguration.Discovery.File.KubeConfig does not exist in v1alpha4 APIs. - return autoConvert_v1beta2_FileDiscovery_To_v1alpha4_FileDiscovery(in, out, s) -} - -func Convert_v1beta2_APIServer_To_v1alpha4_APIServer(in *bootstrapv1.APIServer, out *APIServer, s apimachineryconversion.Scope) error { - // Following fields require a custom conversions. - // Note: there is a potential info loss when there are two values for the same arg but this is accepted because the kubeadm v1beta1 API does not allow this use case. - out.ExtraArgs = bootstrapv1.ConvertFromArgs(in.ExtraArgs) - if err := convert_v1beta2_ExtraVolumes_To_v1alpha4_ExtraVolumes(&in.ExtraVolumes, &out.ExtraVolumes, s); err != nil { - return nil - } - return autoConvert_v1beta2_APIServer_To_v1alpha4_APIServer(in, out, s) -} - -func Convert_v1beta2_ControllerManager_To_v1alpha4_ControlPlaneComponent(in *bootstrapv1.ControllerManager, out *ControlPlaneComponent, s apimachineryconversion.Scope) error { - // Following fields require a custom conversions. - // Note: there is a potential info loss when there are two values for the same arg but this is accepted because the kubeadm v1beta1 API does not allow this use case. - out.ExtraArgs = bootstrapv1.ConvertFromArgs(in.ExtraArgs) - return convert_v1beta2_ExtraVolumes_To_v1alpha4_ExtraVolumes(&in.ExtraVolumes, &out.ExtraVolumes, s) -} - -func Convert_v1beta2_Scheduler_To_v1alpha4_ControlPlaneComponent(in *bootstrapv1.Scheduler, out *ControlPlaneComponent, s apimachineryconversion.Scope) error { - // Following fields require a custom conversions. - // Note: there is a potential info loss when there are two values for the same arg but this is accepted because the kubeadm v1beta1 API does not allow this use case. - out.ExtraArgs = bootstrapv1.ConvertFromArgs(in.ExtraArgs) - return convert_v1beta2_ExtraVolumes_To_v1alpha4_ExtraVolumes(&in.ExtraVolumes, &out.ExtraVolumes, s) -} - -func convert_v1beta2_ExtraVolumes_To_v1alpha4_ExtraVolumes(in *[]bootstrapv1.HostPathMount, out *[]HostPathMount, s apimachineryconversion.Scope) error { - if in != nil && len(*in) > 0 { - *out = make([]HostPathMount, len(*in)) - for i := range *in { - if err := Convert_v1beta2_HostPathMount_To_v1alpha4_HostPathMount(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - *out = nil - } - return nil -} - -func Convert_v1beta2_LocalEtcd_To_v1alpha4_LocalEtcd(in *bootstrapv1.LocalEtcd, out *LocalEtcd, s apimachineryconversion.Scope) error { - // LocalEtcd.ExtraEnvs does not exist in v1alpha4 APIs. - // Following fields require a custom conversions. - out.ExtraArgs = bootstrapv1.ConvertFromArgs(in.ExtraArgs) - out.ImageRepository = in.ImageRepository - out.ImageTag = in.ImageTag - return autoConvert_v1beta2_LocalEtcd_To_v1alpha4_LocalEtcd(in, out, s) -} - -func Convert_v1beta2_KubeadmConfigStatus_To_v1alpha4_KubeadmConfigStatus(in *bootstrapv1.KubeadmConfigStatus, out *KubeadmConfigStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1alpha4. - return autoConvert_v1beta2_KubeadmConfigStatus_To_v1alpha4_KubeadmConfigStatus(in, out, s) -} - -func Convert_v1beta2_BootstrapToken_To_v1alpha4_BootstrapToken(in *bootstrapv1.BootstrapToken, out *BootstrapToken, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_BootstrapToken_To_v1alpha4_BootstrapToken(in, out, s); err != nil { - return err - } - out.TTL = clusterv1.ConvertFromSeconds(in.TTLSeconds) - if !reflect.DeepEqual(in.Expires, metav1.Time{}) { - out.Expires = ptr.To(in.Expires) - } - if !reflect.DeepEqual(in.Token, bootstrapv1.BootstrapTokenString{}) { - out.Token = &BootstrapTokenString{} - if err := autoConvert_v1beta2_BootstrapTokenString_To_v1alpha4_BootstrapTokenString(&in.Token, out.Token, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1alpha4_KubeadmConfigStatus_To_v1beta2_KubeadmConfigStatus(in *KubeadmConfigStatus, out *bootstrapv1.KubeadmConfigStatus, s apimachineryconversion.Scope) error { - return autoConvert_v1alpha4_KubeadmConfigStatus_To_v1beta2_KubeadmConfigStatus(in, out, s) -} - -func Convert_v1alpha4_LocalEtcd_To_v1beta2_LocalEtcd(in *LocalEtcd, out *bootstrapv1.LocalEtcd, s apimachineryconversion.Scope) error { - out.ExtraArgs = bootstrapv1.ConvertToArgs(in.ExtraArgs) - out.ImageRepository = in.ImageRepository - out.ImageTag = in.ImageTag - return autoConvert_v1alpha4_LocalEtcd_To_v1beta2_LocalEtcd(in, out, s) -} - -func Convert_v1alpha4_NodeRegistrationOptions_To_v1beta2_NodeRegistrationOptions(in *NodeRegistrationOptions, out *bootstrapv1.NodeRegistrationOptions, s apimachineryconversion.Scope) error { - out.KubeletExtraArgs = bootstrapv1.ConvertToArgs(in.KubeletExtraArgs) - if in.Taints == nil { - out.Taints = nil - } else { - out.Taints = ptr.To(in.Taints) - } - return autoConvert_v1alpha4_NodeRegistrationOptions_To_v1beta2_NodeRegistrationOptions(in, out, s) -} - -func Convert_v1alpha4_APIServer_To_v1beta2_APIServer(in *APIServer, out *bootstrapv1.APIServer, s apimachineryconversion.Scope) error { - // TimeoutForControlPlane has been removed in v1beta2 - out.ExtraArgs = bootstrapv1.ConvertToArgs(in.ExtraArgs) - if err := convert_v1alpha4_ExtraVolumes_To_v1beta2_ExtraVolumes(&in.ExtraVolumes, &out.ExtraVolumes, s); err != nil { - return nil - } - return autoConvert_v1alpha4_APIServer_To_v1beta2_APIServer(in, out, s) -} - -func Convert_v1alpha4_ControlPlaneComponent_To_v1beta2_ControllerManager(in *ControlPlaneComponent, out *bootstrapv1.ControllerManager, s apimachineryconversion.Scope) error { - out.ExtraArgs = bootstrapv1.ConvertToArgs(in.ExtraArgs) - return convert_v1alpha4_ExtraVolumes_To_v1beta2_ExtraVolumes(&in.ExtraVolumes, &out.ExtraVolumes, s) -} - -func Convert_v1alpha4_ControlPlaneComponent_To_v1beta2_Scheduler(in *ControlPlaneComponent, out *bootstrapv1.Scheduler, s apimachineryconversion.Scope) error { - out.ExtraArgs = bootstrapv1.ConvertToArgs(in.ExtraArgs) - return convert_v1alpha4_ExtraVolumes_To_v1beta2_ExtraVolumes(&in.ExtraVolumes, &out.ExtraVolumes, s) -} - -func convert_v1alpha4_ExtraVolumes_To_v1beta2_ExtraVolumes(in *[]HostPathMount, out *[]bootstrapv1.HostPathMount, s apimachineryconversion.Scope) error { - if in != nil && len(*in) > 0 { - *out = make([]bootstrapv1.HostPathMount, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_HostPathMount_To_v1beta2_HostPathMount(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - *out = nil - } - return nil -} - -func Convert_v1alpha4_Discovery_To_v1beta2_Discovery(in *Discovery, out *bootstrapv1.Discovery, s apimachineryconversion.Scope) error { - // Timeout has been removed in v1beta2 - if err := autoConvert_v1alpha4_Discovery_To_v1beta2_Discovery(in, out, s); err != nil { - return err - } - if in.BootstrapToken != nil { - if err := Convert_v1alpha4_BootstrapTokenDiscovery_To_v1beta2_BootstrapTokenDiscovery(in.BootstrapToken, &out.BootstrapToken, s); err != nil { - return err - } - } - if in.File != nil { - if err := Convert_v1alpha4_FileDiscovery_To_v1beta2_FileDiscovery(in.File, &out.File, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1alpha4_BootstrapToken_To_v1beta2_BootstrapToken(in *BootstrapToken, out *bootstrapv1.BootstrapToken, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_BootstrapToken_To_v1beta2_BootstrapToken(in, out, s); err != nil { - return err - } - out.TTLSeconds = clusterv1.ConvertToSeconds(in.TTL) - if in.Expires != nil && !reflect.DeepEqual(in.Expires, &metav1.Time{}) { - out.Expires = *in.Expires - } - if in.Token != nil { - if err := autoConvert_v1alpha4_BootstrapTokenString_To_v1beta2_BootstrapTokenString(in.Token, &out.Token, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1alpha4_InitConfiguration_To_v1beta2_InitConfiguration(in *InitConfiguration, out *bootstrapv1.InitConfiguration, s apimachineryconversion.Scope) error { - // Type neta has been dropped in v1beta2 - return autoConvert_v1alpha4_InitConfiguration_To_v1beta2_InitConfiguration(in, out, s) -} - -func Convert_v1alpha4_JoinConfiguration_To_v1beta2_JoinConfiguration(in *JoinConfiguration, out *bootstrapv1.JoinConfiguration, s apimachineryconversion.Scope) error { - // Type neta has been dropped in v1beta2 - return autoConvert_v1alpha4_JoinConfiguration_To_v1beta2_JoinConfiguration(in, out, s) -} - -// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94) - -func Convert_v1_Condition_To_v1alpha4_Condition(in *metav1.Condition, out *clusterv1alpha4.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha4.Convert_v1_Condition_To_v1alpha4_Condition(in, out, s) -} - -func Convert_v1alpha4_Condition_To_v1_Condition(in *clusterv1alpha4.Condition, out *metav1.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha4.Convert_v1alpha4_Condition_To_v1_Condition(in, out, s) -} - -func Convert_v1beta2_ClusterConfiguration_To_v1alpha4_ClusterConfiguration(in *bootstrapv1.ClusterConfiguration, out *ClusterConfiguration, s apimachineryconversion.Scope) error { - return autoConvert_v1beta2_ClusterConfiguration_To_v1alpha4_ClusterConfiguration(in, out, s) -} - -func Convert_v1alpha4_DNS_To_v1beta2_DNS(in *DNS, out *bootstrapv1.DNS, _ apimachineryconversion.Scope) error { - out.ImageRepository = in.ImageRepository - out.ImageTag = in.ImageTag - return nil -} - -func Convert_v1beta2_DNS_To_v1alpha4_DNS(in *bootstrapv1.DNS, out *DNS, _ apimachineryconversion.Scope) error { - out.ImageRepository = in.ImageRepository - out.ImageTag = in.ImageTag - return nil -} - -func Convert_v1alpha4_Etcd_To_v1beta2_Etcd(in *Etcd, out *bootstrapv1.Etcd, s apimachineryconversion.Scope) error { - if in.Local != nil { - if err := Convert_v1alpha4_LocalEtcd_To_v1beta2_LocalEtcd(in.Local, &out.Local, s); err != nil { - return err - } - } - if in.External != nil { - if err := Convert_v1alpha4_ExternalEtcd_To_v1beta2_ExternalEtcd(in.External, &out.External, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_Etcd_To_v1alpha4_Etcd(in *bootstrapv1.Etcd, out *Etcd, s apimachineryconversion.Scope) error { - if in.Local.IsDefined() { - out.Local = &LocalEtcd{} - if err := Convert_v1beta2_LocalEtcd_To_v1alpha4_LocalEtcd(&in.Local, out.Local, s); err != nil { - return err - } - } - if in.External.IsDefined() { - out.External = &ExternalEtcd{} - if err := Convert_v1beta2_ExternalEtcd_To_v1alpha4_ExternalEtcd(&in.External, out.External, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_Discovery_To_v1alpha4_Discovery(in *bootstrapv1.Discovery, out *Discovery, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_Discovery_To_v1alpha4_Discovery(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.BootstrapToken, bootstrapv1.BootstrapTokenDiscovery{}) { - out.BootstrapToken = &BootstrapTokenDiscovery{} - if err := Convert_v1beta2_BootstrapTokenDiscovery_To_v1alpha4_BootstrapTokenDiscovery(&in.BootstrapToken, out.BootstrapToken, s); err != nil { - return err - } - } - if !reflect.DeepEqual(in.File, bootstrapv1.FileDiscovery{}) { - out.File = &FileDiscovery{} - if err := Convert_v1beta2_FileDiscovery_To_v1alpha4_FileDiscovery(&in.File, out.File, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1alpha4_File_To_v1beta2_File(in *File, out *bootstrapv1.File, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_File_To_v1beta2_File(in, out, s); err != nil { - return err - } - if in.ContentFrom != nil { - if err := Convert_v1alpha4_FileSource_To_v1beta2_FileSource(in.ContentFrom, &out.ContentFrom, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_File_To_v1alpha4_File(in *bootstrapv1.File, out *File, s apimachineryconversion.Scope) error { - // File.Append does not exist in kubeadm v1alpha4 API. - if err := autoConvert_v1beta2_File_To_v1alpha4_File(in, out, s); err != nil { - return err - } - if in.ContentFrom.IsDefined() { - out.ContentFrom = &FileSource{} - if err := Convert_v1beta2_FileSource_To_v1alpha4_FileSource(&in.ContentFrom, out.ContentFrom, s); err != nil { - return err - } - } - return nil -} - -func dropEmptyStringsKubeadmConfigSpec(dst *KubeadmConfigSpec) { - for i, u := range dst.Users { - dropEmptyString(&u.Gecos) - dropEmptyString(&u.Groups) - dropEmptyString(&u.HomeDir) - dropEmptyString(&u.Shell) - dropEmptyString(&u.Passwd) - dropEmptyString(&u.PrimaryGroup) - dropEmptyString(&u.Sudo) - dst.Users[i] = u - } - - if dst.DiskSetup != nil { - for i, p := range dst.DiskSetup.Partitions { - dropEmptyString(&p.TableType) - dst.DiskSetup.Partitions[i] = p - } - for i, f := range dst.DiskSetup.Filesystems { - dropEmptyString(&f.Partition) - dropEmptyString(&f.ReplaceFS) - dst.DiskSetup.Filesystems[i] = f - } - } -} - -func dropEmptyStringsKubeadmConfigStatus(dst *KubeadmConfigStatus) { - dropEmptyString(&dst.DataSecretName) -} - -func dropEmptyString(s **string) { - if *s != nil && **s == "" { - *s = nil - } -} diff --git a/internal/api/bootstrap/kubeadm/v1alpha4/conversion_test.go b/internal/api/bootstrap/kubeadm/v1alpha4/conversion_test.go deleted file mode 100644 index 68e20a751d8d..000000000000 --- a/internal/api/bootstrap/kubeadm/v1alpha4/conversion_test.go +++ /dev/null @@ -1,270 +0,0 @@ -//go:build !race - -/* -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 v1alpha4 - -import ( - "reflect" - "testing" - "time" - - "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/utils/ptr" - "sigs.k8s.io/randfill" - - bootstrapv1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -const ( - fakeID = "abcdef" - fakeSecret = "abcdef0123456789" -) - -// Test is disabled when the race detector is enabled (via "//go:build !race" above) because otherwise the fuzz tests would just time out. - -func TestFuzzyConversion(t *testing.T) { - t.Run("for KubeadmConfig", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &bootstrapv1.KubeadmConfig{}, - Spoke: &KubeadmConfig{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{KubeadmConfigFuzzFuncs}, - })) - t.Run("for KubeadmConfigTemplate", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &bootstrapv1.KubeadmConfigTemplate{}, - Spoke: &KubeadmConfigTemplate{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{KubeadmConfigTemplateFuzzFuncs}, - })) -} - -func KubeadmConfigFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - hubKubeadmConfigStatus, - spokeKubeadmConfigSpec, - spokeKubeadmConfigStatus, - spokeClusterConfiguration, - hubBootstrapTokenString, - spokeBootstrapTokenString, - spokeAPIServer, - spokeDiscovery, - hubKubeadmConfigSpec, - hubNodeRegistrationOptions, - spokeBootstrapToken, - } -} - -func KubeadmConfigTemplateFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - spokeKubeadmConfigSpec, - spokeClusterConfiguration, - hubBootstrapTokenString, - spokeBootstrapTokenString, - spokeAPIServer, - spokeDiscovery, - hubKubeadmConfigSpec, - hubNodeRegistrationOptions, - spokeBootstrapToken, - } -} - -func hubKubeadmConfigSpec(in *bootstrapv1.KubeadmConfigSpec, c randfill.Continue) { - c.FillNoCustom(in) - - // enforce ControlPlaneComponentHealthCheckSeconds to be equal on init and join configuration - initControlPlaneComponentHealthCheckSeconds := in.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds - if in.JoinConfiguration.IsDefined() || initControlPlaneComponentHealthCheckSeconds != nil { - in.JoinConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds = initControlPlaneComponentHealthCheckSeconds - } - - if in.ClusterConfiguration.APIServer.ExtraEnvs != nil && *in.ClusterConfiguration.APIServer.ExtraEnvs == nil { - in.ClusterConfiguration.APIServer.ExtraEnvs = nil - } - if in.ClusterConfiguration.ControllerManager.ExtraEnvs != nil && *in.ClusterConfiguration.ControllerManager.ExtraEnvs == nil { - in.ClusterConfiguration.ControllerManager.ExtraEnvs = nil - } - if in.ClusterConfiguration.Scheduler.ExtraEnvs != nil && *in.ClusterConfiguration.Scheduler.ExtraEnvs == nil { - in.ClusterConfiguration.Scheduler.ExtraEnvs = nil - } - if in.ClusterConfiguration.Etcd.Local.ExtraEnvs != nil && *in.ClusterConfiguration.Etcd.Local.ExtraEnvs == nil { - in.ClusterConfiguration.Etcd.Local.ExtraEnvs = nil - } - - for i, arg := range in.ClusterConfiguration.APIServer.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.APIServer.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.ControllerManager.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.ControllerManager.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.Scheduler.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.Scheduler.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.Etcd.Local.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.Etcd.Local.ExtraArgs[i] = arg - } - for i, arg := range in.InitConfiguration.NodeRegistration.KubeletExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.InitConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg - } - for i, arg := range in.JoinConfiguration.NodeRegistration.KubeletExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.JoinConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg - } - for i, p := range in.DiskSetup.Partitions { - if p.Layout == nil { - p.Layout = ptr.To(false) // Layout is a required field and nil does not round trip - } - in.DiskSetup.Partitions[i] = p - } -} - -func hubNodeRegistrationOptions(in *bootstrapv1.NodeRegistrationOptions, c randfill.Continue) { - c.FillNoCustom(in) - - if in.Taints != nil && *in.Taints == nil { - in.Taints = nil - } -} - -func hubKubeadmConfigStatus(in *bootstrapv1.KubeadmConfigStatus, c randfill.Continue) { - c.FillNoCustom(in) - // Always create struct with at least one mandatory fields. - if in.Deprecated == nil { - in.Deprecated = &bootstrapv1.KubeadmConfigDeprecatedStatus{} - } - if in.Deprecated.V1Beta1 == nil { - in.Deprecated.V1Beta1 = &bootstrapv1.KubeadmConfigV1Beta1DeprecatedStatus{} - } -} - -func spokeKubeadmConfigSpec(in *KubeadmConfigSpec, c randfill.Continue) { - c.FillNoCustom(in) - - // Drop UseExperimentalRetryJoin as we intentionally don't preserve it. - in.UseExperimentalRetryJoin = false - - dropEmptyStringsKubeadmConfigSpec(in) - - if in.DiskSetup != nil && reflect.DeepEqual(in.DiskSetup, &DiskSetup{}) { - in.DiskSetup = nil - } - if in.NTP != nil && reflect.DeepEqual(in.NTP, &NTP{}) { - in.NTP = nil - } - for i, file := range in.Files { - if file.ContentFrom != nil && reflect.DeepEqual(file.ContentFrom, &FileSource{}) { - file.ContentFrom = nil - } - in.Files[i] = file - } - - if reflect.DeepEqual(in.ClusterConfiguration, &ClusterConfiguration{}) { - in.ClusterConfiguration = nil - } - if reflect.DeepEqual(in.InitConfiguration, &InitConfiguration{}) { - in.InitConfiguration = nil - } - if reflect.DeepEqual(in.JoinConfiguration, &JoinConfiguration{}) { - in.JoinConfiguration = nil - } -} - -func spokeKubeadmConfigStatus(obj *KubeadmConfigStatus, c randfill.Continue) { - c.FillNoCustom(obj) - - dropEmptyStringsKubeadmConfigStatus(obj) -} - -func spokeClusterConfiguration(in *ClusterConfiguration, c randfill.Continue) { - c.FillNoCustom(in) - - // Drop the following fields as they have been removed in v1beta2, so we don't have to preserve them. - in.Networking.ServiceSubnet = "" - in.Networking.PodSubnet = "" - in.Networking.DNSDomain = "" - in.KubernetesVersion = "" - in.ClusterName = "" - - if in.Etcd.Local != nil && reflect.DeepEqual(in.Etcd.Local, &LocalEtcd{}) { - in.Etcd.Local = nil - } - if in.Etcd.External != nil && reflect.DeepEqual(in.Etcd.External, &ExternalEtcd{}) { - in.Etcd.External = nil - } -} - -func hubBootstrapTokenString(in *bootstrapv1.BootstrapTokenString, _ randfill.Continue) { - in.ID = fakeID - in.Secret = fakeSecret -} - -func spokeBootstrapTokenString(in *BootstrapTokenString, _ randfill.Continue) { - in.ID = fakeID - in.Secret = fakeSecret -} - -func spokeAPIServer(in *APIServer, c randfill.Continue) { - c.FillNoCustom(in) - - if in.TimeoutForControlPlane != nil { - in.TimeoutForControlPlane = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } -} - -func spokeBootstrapToken(in *BootstrapToken, c randfill.Continue) { - c.FillNoCustom(in) - - if in.TTL != nil { - in.TTL = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } - if reflect.DeepEqual(in.Expires, &metav1.Time{}) { - in.Expires = nil - } -} - -func spokeDiscovery(in *Discovery, c randfill.Continue) { - c.FillNoCustom(in) - - if in.Timeout != nil { - in.Timeout = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } - if in.File != nil { - if reflect.DeepEqual(in.File, &FileDiscovery{}) { - in.File = nil - } - } - if in.BootstrapToken != nil && reflect.DeepEqual(in.BootstrapToken, &BootstrapTokenDiscovery{}) { - in.BootstrapToken = nil - } -} diff --git a/internal/api/controlplane/kubeadm/v1alpha3/conversion.go b/internal/api/controlplane/kubeadm/v1alpha3/conversion.go deleted file mode 100644 index dd117d6412b8..000000000000 --- a/internal/api/controlplane/kubeadm/v1alpha3/conversion.go +++ /dev/null @@ -1,296 +0,0 @@ -/* -Copyright 2020 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 v1alpha3 - -import ( - "errors" - "fmt" - "reflect" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - bootstrapv1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" - controlplanev1 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta2" - clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - bootstrapv1alpha3 "sigs.k8s.io/cluster-api/internal/api/bootstrap/kubeadm/v1alpha3" - clusterv1alpha3 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha3" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -var apiVersionGetter = func(_ schema.GroupKind) (string, error) { - return "", errors.New("apiVersionGetter not set") -} - -func SetAPIVersionGetter(f func(gk schema.GroupKind) (string, error)) { - apiVersionGetter = f -} - -func (src *KubeadmControlPlane) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*controlplanev1.KubeadmControlPlane) - - if err := Convert_v1alpha3_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(src, dst, nil); err != nil { - return err - } - - infraRef, err := convertToContractVersionedObjectReference(&src.Spec.InfrastructureTemplate) - if err != nil { - return err - } - dst.Spec.MachineTemplate.Spec.InfrastructureRef = *infraRef - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha3 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha3), failureReason, failureMessage and replica counters to the deprecated field. - dst.Status.Deprecated = &controlplanev1.KubeadmControlPlaneDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &controlplanev1.KubeadmControlPlaneV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - clusterv1alpha3.Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - dst.Status.Deprecated.V1Beta1.ReadyReplicas = src.Status.ReadyReplicas - dst.Status.Deprecated.V1Beta1.UpdatedReplicas = src.Status.UpdatedReplicas - dst.Status.Deprecated.V1Beta1.UnavailableReplicas = src.Status.UnavailableReplicas - - // Manually restore data. - restored := &controlplanev1.KubeadmControlPlane{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - initialization := controlplanev1.KubeadmControlPlaneInitializationStatus{} - restoredControlPlaneInitialized := restored.Status.Initialization.ControlPlaneInitialized - clusterv1.Convert_bool_To_Pointer_bool(src.Status.Initialized, ok, restoredControlPlaneInitialized, &initialization.ControlPlaneInitialized) - if !reflect.DeepEqual(initialization, controlplanev1.KubeadmControlPlaneInitializationStatus{}) { - dst.Status.Initialization = initialization - } - - if err := bootstrapv1alpha3.RestoreBoolIntentKubeadmConfigSpec(&src.Spec.KubeadmConfigSpec, &dst.Spec.KubeadmConfigSpec, ok, &restored.Spec.KubeadmConfigSpec); err != nil { - return err - } - - // Recover other values - if ok { - dst.Spec.MachineTemplate.ObjectMeta = restored.Spec.MachineTemplate.ObjectMeta - dst.Spec.MachineTemplate.Spec.ReadinessGates = restored.Spec.MachineTemplate.Spec.ReadinessGates - dst.Spec.MachineTemplate.Spec.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.MachineTemplate.Spec.Deletion.NodeDeletionTimeoutSeconds - dst.Spec.MachineTemplate.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.MachineTemplate.Spec.Deletion.NodeVolumeDetachTimeoutSeconds - dst.Spec.Rollout = restored.Spec.Rollout - - dst.Spec.Remediation = restored.Spec.Remediation - dst.Status.LastRemediation = restored.Status.LastRemediation - - dst.Spec.MachineNaming = restored.Spec.MachineNaming - - bootstrapv1alpha3.RestoreKubeadmConfigSpec(&dst.Spec.KubeadmConfigSpec, &restored.Spec.KubeadmConfigSpec) - - dst.Status.Version = restored.Status.Version - dst.Status.Conditions = restored.Status.Conditions - dst.Status.AvailableReplicas = restored.Status.AvailableReplicas - dst.Status.ReadyReplicas = restored.Status.ReadyReplicas - dst.Status.UpToDateReplicas = restored.Status.UpToDateReplicas - } - - // Override restored data with timeouts values already existing in v1beta1 but in other structs. - src.Spec.KubeadmConfigSpec.ConvertTo(&dst.Spec.KubeadmConfigSpec) - return nil -} - -func (dst *KubeadmControlPlane) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*controlplanev1.KubeadmControlPlane) - if err := Convert_v1beta2_KubeadmControlPlane_To_v1alpha3_KubeadmControlPlane(src, dst, nil); err != nil { - return err - } - - if src.Spec.MachineTemplate.Spec.InfrastructureRef.IsDefined() { - infraRef, err := convertToObjectReference(&src.Spec.MachineTemplate.Spec.InfrastructureRef, src.Namespace) - if err != nil { - return err - } - dst.Spec.InfrastructureTemplate = *infraRef - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha3). - dst.Status.Conditions = nil - - // Reset replica counters from autogenerated conversions - // NOTE: replica counters with a new semantic should not be automatically be converted into old replica counters. - dst.Status.ReadyReplicas = 0 - - // Retrieve legacy conditions (v1alpha3), failureReason, failureMessage and replica counters from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - clusterv1alpha3.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - dst.Status.ReadyReplicas = src.Status.Deprecated.V1Beta1.ReadyReplicas - dst.Status.UpdatedReplicas = src.Status.Deprecated.V1Beta1.UpdatedReplicas - dst.Status.UnavailableReplicas = src.Status.Deprecated.V1Beta1.UnavailableReplicas - } - } - - // Move ControlPlaneInitialized to old fields, rebuild ready - dst.Status.Initialized = ptr.Deref(src.Status.Initialization.ControlPlaneInitialized, false) - dst.Status.Ready = dst.Status.ReadyReplicas > 0 - - // Convert timeouts moved from one struct to another. - dst.Spec.KubeadmConfigSpec.ConvertFrom(&src.Spec.KubeadmConfigSpec) - - dropEmptyStringsKubeadmConfigSpec(&dst.Spec.KubeadmConfigSpec) - - // Preserve Hub data on down-conversion except for metadata - return utilconversion.MarshalData(src, dst) -} - -func Convert_v1beta2_KubeadmControlPlaneSpec_To_v1alpha3_KubeadmControlPlaneSpec(in *controlplanev1.KubeadmControlPlaneSpec, out *KubeadmControlPlaneSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_KubeadmControlPlaneSpec_To_v1alpha3_KubeadmControlPlaneSpec(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.Rollout.After, metav1.Time{}) { - out.UpgradeAfter = ptr.To(in.Rollout.After) - } - out.NodeDrainTimeout = clusterv1.ConvertFromSeconds(in.MachineTemplate.Spec.Deletion.NodeDrainTimeoutSeconds) - if !reflect.DeepEqual(in.Rollout.Strategy, controlplanev1.KubeadmControlPlaneRolloutStrategy{}) { - out.RolloutStrategy = &RolloutStrategy{} - out.RolloutStrategy.Type = RolloutStrategyType(in.Rollout.Strategy.Type) - if in.Rollout.Strategy.RollingUpdate.MaxSurge != nil { - out.RolloutStrategy.RollingUpdate = &RollingUpdate{} - out.RolloutStrategy.RollingUpdate.MaxSurge = in.Rollout.Strategy.RollingUpdate.MaxSurge - } - } - return nil -} - -func Convert_v1beta2_KubeadmControlPlaneStatus_To_v1alpha3_KubeadmControlPlaneStatus(in *controlplanev1.KubeadmControlPlaneStatus, out *KubeadmControlPlaneStatus, s apimachineryconversion.Scope) error { - // NOTE: custom conversion func is required because status.Version does not exist in v1alpha3. - // .V1Beta2 was added in v1beta1. - return autoConvert_v1beta2_KubeadmControlPlaneStatus_To_v1alpha3_KubeadmControlPlaneStatus(in, out, s) -} - -func Convert_v1alpha3_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneSpec(in *KubeadmControlPlaneSpec, out *controlplanev1.KubeadmControlPlaneSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneSpec(in, out, s); err != nil { - return err - } - if in.UpgradeAfter != nil && !reflect.DeepEqual(in.UpgradeAfter, &metav1.Time{}) { - out.Rollout.After = *in.UpgradeAfter - } - out.MachineTemplate.Spec.Deletion.NodeDrainTimeoutSeconds = clusterv1.ConvertToSeconds(in.NodeDrainTimeout) - if in.RolloutStrategy != nil { - out.Rollout.Strategy.Type = controlplanev1.KubeadmControlPlaneRolloutStrategyType(in.RolloutStrategy.Type) - if in.RolloutStrategy.RollingUpdate != nil && in.RolloutStrategy.RollingUpdate.MaxSurge != nil { - out.Rollout.Strategy.RollingUpdate.MaxSurge = in.RolloutStrategy.RollingUpdate.MaxSurge - } - } - return nil -} - -func Convert_v1alpha3_KubeadmControlPlaneStatus_To_v1beta2_KubeadmControlPlaneStatus(in *KubeadmControlPlaneStatus, out *controlplanev1.KubeadmControlPlaneStatus, s apimachineryconversion.Scope) error { - return autoConvert_v1alpha3_KubeadmControlPlaneStatus_To_v1beta2_KubeadmControlPlaneStatus(in, out, s) -} - -// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94) - -func Convert_v1_Condition_To_v1alpha3_Condition(in *metav1.Condition, out *clusterv1alpha3.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha3.Convert_v1_Condition_To_v1alpha3_Condition(in, out, s) -} - -func Convert_v1alpha3_Condition_To_v1_Condition(in *clusterv1alpha3.Condition, out *metav1.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha3.Convert_v1alpha3_Condition_To_v1_Condition(in, out, s) -} - -func Convert_v1beta2_KubeadmConfigSpec_To_v1alpha3_KubeadmConfigSpec(in *bootstrapv1.KubeadmConfigSpec, out *bootstrapv1alpha3.KubeadmConfigSpec, s apimachineryconversion.Scope) error { - return bootstrapv1alpha3.Convert_v1beta2_KubeadmConfigSpec_To_v1alpha3_KubeadmConfigSpec(in, out, s) -} - -func Convert_v1alpha3_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(in *bootstrapv1alpha3.KubeadmConfigSpec, out *bootstrapv1.KubeadmConfigSpec, s apimachineryconversion.Scope) error { - return bootstrapv1alpha3.Convert_v1alpha3_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(in, out, s) -} - -func convertToContractVersionedObjectReference(ref *corev1.ObjectReference) (*clusterv1.ContractVersionedObjectReference, error) { - var apiGroup string - if ref.APIVersion != "" { - gv, err := schema.ParseGroupVersion(ref.APIVersion) - if err != nil { - return nil, fmt.Errorf("failed to convert object: failed to parse apiVersion: %v", err) - } - apiGroup = gv.Group - } - return &clusterv1.ContractVersionedObjectReference{ - APIGroup: apiGroup, - Kind: ref.Kind, - Name: ref.Name, - }, nil -} - -func convertToObjectReference(ref *clusterv1.ContractVersionedObjectReference, namespace string) (*corev1.ObjectReference, error) { - apiVersion, err := apiVersionGetter(schema.GroupKind{ - Group: ref.APIGroup, - Kind: ref.Kind, - }) - if err != nil { - return nil, fmt.Errorf("failed to convert object: %v", err) - } - return &corev1.ObjectReference{ - APIVersion: apiVersion, - Kind: ref.Kind, - Namespace: namespace, - Name: ref.Name, - }, nil -} - -func dropEmptyStringsKubeadmConfigSpec(dst *bootstrapv1alpha3.KubeadmConfigSpec) { - for i, u := range dst.Users { - dropEmptyString(&u.Gecos) - dropEmptyString(&u.Groups) - dropEmptyString(&u.HomeDir) - dropEmptyString(&u.Shell) - dropEmptyString(&u.Passwd) - dropEmptyString(&u.PrimaryGroup) - dropEmptyString(&u.Sudo) - dst.Users[i] = u - } - - if dst.DiskSetup != nil { - for i, p := range dst.DiskSetup.Partitions { - dropEmptyString(&p.TableType) - dst.DiskSetup.Partitions[i] = p - } - for i, f := range dst.DiskSetup.Filesystems { - dropEmptyString(&f.Partition) - dropEmptyString(&f.ReplaceFS) - dst.DiskSetup.Filesystems[i] = f - } - } -} - -func dropEmptyString(s **string) { - if *s != nil && **s == "" { - *s = nil - } -} diff --git a/internal/api/controlplane/kubeadm/v1alpha3/conversion_test.go b/internal/api/controlplane/kubeadm/v1alpha3/conversion_test.go deleted file mode 100644 index 24b0752dc7d1..000000000000 --- a/internal/api/controlplane/kubeadm/v1alpha3/conversion_test.go +++ /dev/null @@ -1,353 +0,0 @@ -//go:build !race - -/* -Copyright 2020 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 v1alpha3 - -import ( - "fmt" - "reflect" - "testing" - "time" - - "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/utils/ptr" - "sigs.k8s.io/randfill" - - bootstrapv1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" - controlplanev1 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta2" - bootstrapv1alpha3 "sigs.k8s.io/cluster-api/internal/api/bootstrap/kubeadm/v1alpha3" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -const ( - fakeID = "abcdef" - fakeSecret = "abcdef0123456789" -) - -// Test is disabled when the race detector is enabled (via "//go:build !race" above) because otherwise the fuzz tests would just time out. - -func TestFuzzyConversion(t *testing.T) { - SetAPIVersionGetter(func(gk schema.GroupKind) (string, error) { - for _, gvk := range testGVKs { - if gvk.GroupKind() == gk { - return schema.GroupVersion{ - Group: gk.Group, - Version: gvk.Version, - }.String(), nil - } - } - return "", fmt.Errorf("failed to map GroupKind %s to version", gk.String()) - }) - - t.Run("for KubeadmControlPlane", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &controlplanev1.KubeadmControlPlane{}, - Spoke: &KubeadmControlPlane{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{KubeadmControlPlaneFuzzFuncs}, - })) -} - -func KubeadmControlPlaneFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - hubMachineTemplateSpec, - hubKubeadmControlPlaneStatus, - spokeKubeadmControlPlane, - spokeKubeadmControlPlaneSpec, - spokeKubeadmControlPlaneStatus, - spokeDNS, - spokeKubeadmClusterConfiguration, - hubBootstrapTokenString, - spokeKubeadmConfigSpec, - spokeAPIServer, - spokeDiscovery, - hubKubeadmConfigSpec, - hubNodeRegistrationOptions, - spokeBootstrapToken, - spokeBootstrapTokenString, - } -} - -func hubKubeadmConfigSpec(in *bootstrapv1.KubeadmConfigSpec, c randfill.Continue) { - c.FillNoCustom(in) - - // enforce ControlPlaneComponentHealthCheckSeconds to be equal on init and join configuration - initControlPlaneComponentHealthCheckSeconds := in.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds - if in.JoinConfiguration.IsDefined() || initControlPlaneComponentHealthCheckSeconds != nil { - in.JoinConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds = initControlPlaneComponentHealthCheckSeconds - } - - if in.ClusterConfiguration.APIServer.ExtraEnvs != nil && *in.ClusterConfiguration.APIServer.ExtraEnvs == nil { - in.ClusterConfiguration.APIServer.ExtraEnvs = nil - } - if in.ClusterConfiguration.ControllerManager.ExtraEnvs != nil && *in.ClusterConfiguration.ControllerManager.ExtraEnvs == nil { - in.ClusterConfiguration.ControllerManager.ExtraEnvs = nil - } - if in.ClusterConfiguration.Scheduler.ExtraEnvs != nil && *in.ClusterConfiguration.Scheduler.ExtraEnvs == nil { - in.ClusterConfiguration.Scheduler.ExtraEnvs = nil - } - if in.ClusterConfiguration.Etcd.Local.ExtraEnvs != nil && *in.ClusterConfiguration.Etcd.Local.ExtraEnvs == nil { - in.ClusterConfiguration.Etcd.Local.ExtraEnvs = nil - } - - for i, arg := range in.ClusterConfiguration.APIServer.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.APIServer.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.ControllerManager.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.ControllerManager.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.Scheduler.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.Scheduler.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.Etcd.Local.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.Etcd.Local.ExtraArgs[i] = arg - } - for i, arg := range in.InitConfiguration.NodeRegistration.KubeletExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.InitConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg - } - for i, arg := range in.JoinConfiguration.NodeRegistration.KubeletExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.JoinConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg - } - for i, p := range in.DiskSetup.Partitions { - if p.Layout == nil { - p.Layout = ptr.To(false) // Layout is a required field and nil does not round trip - } - in.DiskSetup.Partitions[i] = p - } -} - -func hubNodeRegistrationOptions(in *bootstrapv1.NodeRegistrationOptions, c randfill.Continue) { - c.FillNoCustom(in) - - if in.Taints != nil && *in.Taints == nil { - in.Taints = nil - } -} - -func hubKubeadmControlPlaneStatus(in *controlplanev1.KubeadmControlPlaneStatus, c randfill.Continue) { - c.FillNoCustom(in) - // Always create struct with at least one mandatory fields. - if in.Deprecated == nil { - in.Deprecated = &controlplanev1.KubeadmControlPlaneDeprecatedStatus{} - } - if in.Deprecated.V1Beta1 == nil { - in.Deprecated.V1Beta1 = &controlplanev1.KubeadmControlPlaneV1Beta1DeprecatedStatus{} - } - - // nil becomes &0 after hub => spoke => hub conversion - // This is acceptable as usually Replicas is set and controllers using older apiVersions are not writing MachineSet status. - if in.Replicas == nil { - in.Replicas = ptr.To(int32(0)) - } -} - -func spokeKubeadmControlPlaneSpec(in *KubeadmControlPlaneSpec, c randfill.Continue) { - c.FillNoCustom(in) - - if in.NodeDrainTimeout != nil { - in.NodeDrainTimeout = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } - if reflect.DeepEqual(in.UpgradeAfter, &metav1.Time{}) { - in.UpgradeAfter = nil - } -} - -func spokeKubeadmControlPlaneStatus(in *KubeadmControlPlaneStatus, c randfill.Continue) { - c.FillNoCustom(in) - - // Make sure ready is consistent with ready replicas, so we can rebuild the info after the round trip. - in.Ready = in.ReadyReplicas > 0 -} - -func hubBootstrapTokenString(in *bootstrapv1.BootstrapTokenString, _ randfill.Continue) { - in.ID = fakeID - in.Secret = fakeSecret -} - -func hubMachineTemplateSpec(in *controlplanev1.KubeadmControlPlaneMachineTemplate, c randfill.Continue) { - c.FillNoCustom(in) - - // Ensure ref field is always set to realistic values. - gvk := testGVKs[c.Int31n(4)] - in.Spec.InfrastructureRef.APIGroup = gvk.Group - in.Spec.InfrastructureRef.Kind = gvk.Kind -} - -func spokeKubeadmControlPlane(in *KubeadmControlPlane, c randfill.Continue) { - c.FillNoCustom(in) - - // Ensure ref fields are always set to realistic values. - gvk := testGVKs[c.Int31n(4)] - in.Spec.InfrastructureTemplate.APIVersion = gvk.GroupVersion().String() - in.Spec.InfrastructureTemplate.Kind = gvk.Kind - in.Spec.InfrastructureTemplate.Namespace = in.Namespace - in.Spec.InfrastructureTemplate.UID = "" - in.Spec.InfrastructureTemplate.ResourceVersion = "" - in.Spec.InfrastructureTemplate.FieldPath = "" - - if in.Spec.RolloutStrategy != nil { - if reflect.DeepEqual(in.Spec.RolloutStrategy.RollingUpdate, &RollingUpdate{}) { - in.Spec.RolloutStrategy.RollingUpdate = nil - } - } - if reflect.DeepEqual(in.Spec.RolloutStrategy, &RolloutStrategy{}) { - in.Spec.RolloutStrategy = nil - } -} - -func spokeDNS(obj *bootstrapv1alpha3.DNS, c randfill.Continue) { - c.FillNoCustom(obj) - - // DNS.Type does not exists in v1alpha4, so setting it to empty string in order to avoid v1alpha3 --> v1alpha4 --> v1alpha3 round trip errors. - obj.Type = "" -} - -func spokeKubeadmClusterConfiguration(obj *bootstrapv1alpha3.ClusterConfiguration, c randfill.Continue) { - c.FillNoCustom(obj) - - // ClusterConfiguration.UseHyperKubeImage has been removed in v1alpha4, so setting it to false in order to avoid v1alpha3 --> v1alpha4 --> v1alpha3 round trip errors. - obj.UseHyperKubeImage = false - - // Drop the following fields as they have been removed in v1beta2, so we don't have to preserve them. - obj.Networking.ServiceSubnet = "" - obj.Networking.PodSubnet = "" - obj.Networking.DNSDomain = "" - obj.KubernetesVersion = "" - obj.ClusterName = "" - - if obj.Etcd.Local != nil && reflect.DeepEqual(obj.Etcd.Local, &bootstrapv1alpha3.LocalEtcd{}) { - obj.Etcd.Local = nil - } - if obj.Etcd.External != nil && reflect.DeepEqual(obj.Etcd.External, &bootstrapv1alpha3.ExternalEtcd{}) { - obj.Etcd.External = nil - } -} - -func spokeKubeadmConfigSpec(in *bootstrapv1alpha3.KubeadmConfigSpec, c randfill.Continue) { - c.FillNoCustom(in) - - // Drop UseExperimentalRetryJoin as we intentionally don't preserve it. - in.UseExperimentalRetryJoin = false - - dropEmptyStringsKubeadmConfigSpec(in) - - if in.DiskSetup != nil && reflect.DeepEqual(in.DiskSetup, &bootstrapv1alpha3.DiskSetup{}) { - in.DiskSetup = nil - } - if in.NTP != nil && reflect.DeepEqual(in.NTP, &bootstrapv1alpha3.NTP{}) { - in.NTP = nil - } - for i, file := range in.Files { - if file.ContentFrom != nil && reflect.DeepEqual(file.ContentFrom, &bootstrapv1alpha3.FileSource{}) { - file.ContentFrom = nil - } - in.Files[i] = file - } - - if reflect.DeepEqual(in.ClusterConfiguration, &bootstrapv1alpha3.ClusterConfiguration{}) { - in.ClusterConfiguration = nil - } - if reflect.DeepEqual(in.InitConfiguration, &bootstrapv1alpha3.InitConfiguration{}) { - in.InitConfiguration = nil - } - if reflect.DeepEqual(in.JoinConfiguration, &bootstrapv1alpha3.JoinConfiguration{}) { - in.JoinConfiguration = nil - } -} - -func spokeAPIServer(in *bootstrapv1alpha3.APIServer, c randfill.Continue) { - c.FillNoCustom(in) - - if in.TimeoutForControlPlane != nil { - in.TimeoutForControlPlane = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } -} - -func spokeBootstrapToken(in *bootstrapv1alpha3.BootstrapToken, c randfill.Continue) { - c.FillNoCustom(in) - - if in.TTL != nil { - in.TTL = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } - if reflect.DeepEqual(in.Expires, &metav1.Time{}) { - in.Expires = nil - } -} - -func spokeBootstrapTokenString(in *bootstrapv1alpha3.BootstrapTokenString, _ randfill.Continue) { - in.ID = fakeID - in.Secret = fakeSecret -} - -func spokeDiscovery(in *bootstrapv1alpha3.Discovery, c randfill.Continue) { - c.FillNoCustom(in) - - if in.Timeout != nil { - in.Timeout = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } - if in.File != nil { - if reflect.DeepEqual(in.File, &bootstrapv1alpha3.FileDiscovery{}) { - in.File = nil - } - } - if in.BootstrapToken != nil && reflect.DeepEqual(in.BootstrapToken, &bootstrapv1alpha3.BootstrapTokenDiscovery{}) { - in.BootstrapToken = nil - } -} - -var testGVKs = []schema.GroupVersionKind{ - { - Group: "controlplane.cluster.x-k8s.io", - Version: "v1beta4", - Kind: "KubeadmControlPlane", - }, - { - Group: "controlplane.cluster.x-k8s.io", - Version: "v1beta7", - Kind: "AWSManagedControlPlane", - }, - { - Group: "infrastructure.cluster.x-k8s.io", - Version: "v1beta3", - Kind: "DockerCluster", - }, - { - Group: "infrastructure.cluster.x-k8s.io", - Version: "v1beta6", - Kind: "AWSCluster", - }, -} diff --git a/internal/api/controlplane/kubeadm/v1alpha3/kubeadm_control_plane_types.go b/internal/api/controlplane/kubeadm/v1alpha3/kubeadm_control_plane_types.go index 5fbdcd7025d2..25526200b75d 100644 --- a/internal/api/controlplane/kubeadm/v1alpha3/kubeadm_control_plane_types.go +++ b/internal/api/controlplane/kubeadm/v1alpha3/kubeadm_control_plane_types.go @@ -21,7 +21,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - "sigs.k8s.io/cluster-api/errors" + "sigs.k8s.io/cluster-api/api/core/errors" bootstrapv1alpha3 "sigs.k8s.io/cluster-api/internal/api/bootstrap/kubeadm/v1alpha3" clusterv1alpha3 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha3" ) diff --git a/internal/api/controlplane/kubeadm/v1alpha3/zz_generated.conversion.go b/internal/api/controlplane/kubeadm/v1alpha3/zz_generated.conversion.go deleted file mode 100644 index 25745dfb08e1..000000000000 --- a/internal/api/controlplane/kubeadm/v1alpha3/zz_generated.conversion.go +++ /dev/null @@ -1,262 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -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 conversion-gen. DO NOT EDIT. - -package v1alpha3 - -import ( - unsafe "unsafe" - - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - kubeadmv1beta2 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" - v1beta2 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta2" - kubeadmv1alpha3 "sigs.k8s.io/cluster-api/internal/api/bootstrap/kubeadm/v1alpha3" - corev1alpha3 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha3" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*KubeadmControlPlane)(nil), (*v1beta2.KubeadmControlPlane)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(a.(*KubeadmControlPlane), b.(*v1beta2.KubeadmControlPlane), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.KubeadmControlPlane)(nil), (*KubeadmControlPlane)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlane_To_v1alpha3_KubeadmControlPlane(a.(*v1beta2.KubeadmControlPlane), b.(*KubeadmControlPlane), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*KubeadmControlPlaneList)(nil), (*v1beta2.KubeadmControlPlaneList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_KubeadmControlPlaneList_To_v1beta2_KubeadmControlPlaneList(a.(*KubeadmControlPlaneList), b.(*v1beta2.KubeadmControlPlaneList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.KubeadmControlPlaneList)(nil), (*KubeadmControlPlaneList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneList_To_v1alpha3_KubeadmControlPlaneList(a.(*v1beta2.KubeadmControlPlaneList), b.(*KubeadmControlPlaneList), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1.Condition)(nil), (*corev1alpha3.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_Condition_To_v1alpha3_Condition(a.(*v1.Condition), b.(*corev1alpha3.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*corev1alpha3.Condition)(nil), (*v1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_Condition_To_v1_Condition(a.(*corev1alpha3.Condition), b.(*v1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*kubeadmv1alpha3.KubeadmConfigSpec)(nil), (*kubeadmv1beta2.KubeadmConfigSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(a.(*kubeadmv1alpha3.KubeadmConfigSpec), b.(*kubeadmv1beta2.KubeadmConfigSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*KubeadmControlPlaneSpec)(nil), (*v1beta2.KubeadmControlPlaneSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneSpec(a.(*KubeadmControlPlaneSpec), b.(*v1beta2.KubeadmControlPlaneSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*KubeadmControlPlaneStatus)(nil), (*v1beta2.KubeadmControlPlaneStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_KubeadmControlPlaneStatus_To_v1beta2_KubeadmControlPlaneStatus(a.(*KubeadmControlPlaneStatus), b.(*v1beta2.KubeadmControlPlaneStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*kubeadmv1beta2.KubeadmConfigSpec)(nil), (*kubeadmv1alpha3.KubeadmConfigSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmConfigSpec_To_v1alpha3_KubeadmConfigSpec(a.(*kubeadmv1beta2.KubeadmConfigSpec), b.(*kubeadmv1alpha3.KubeadmConfigSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.KubeadmControlPlaneSpec)(nil), (*KubeadmControlPlaneSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneSpec_To_v1alpha3_KubeadmControlPlaneSpec(a.(*v1beta2.KubeadmControlPlaneSpec), b.(*KubeadmControlPlaneSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.KubeadmControlPlaneStatus)(nil), (*KubeadmControlPlaneStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneStatus_To_v1alpha3_KubeadmControlPlaneStatus(a.(*v1beta2.KubeadmControlPlaneStatus), b.(*KubeadmControlPlaneStatus), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha3_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(in *KubeadmControlPlane, out *v1beta2.KubeadmControlPlane, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha3_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha3_KubeadmControlPlaneStatus_To_v1beta2_KubeadmControlPlaneStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha3_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane is an autogenerated conversion function. -func Convert_v1alpha3_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(in *KubeadmControlPlane, out *v1beta2.KubeadmControlPlane, s conversion.Scope) error { - return autoConvert_v1alpha3_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(in, out, s) -} - -func autoConvert_v1beta2_KubeadmControlPlane_To_v1alpha3_KubeadmControlPlane(in *v1beta2.KubeadmControlPlane, out *KubeadmControlPlane, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_KubeadmControlPlaneSpec_To_v1alpha3_KubeadmControlPlaneSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_KubeadmControlPlaneStatus_To_v1alpha3_KubeadmControlPlaneStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_KubeadmControlPlane_To_v1alpha3_KubeadmControlPlane is an autogenerated conversion function. -func Convert_v1beta2_KubeadmControlPlane_To_v1alpha3_KubeadmControlPlane(in *v1beta2.KubeadmControlPlane, out *KubeadmControlPlane, s conversion.Scope) error { - return autoConvert_v1beta2_KubeadmControlPlane_To_v1alpha3_KubeadmControlPlane(in, out, s) -} - -func autoConvert_v1alpha3_KubeadmControlPlaneList_To_v1beta2_KubeadmControlPlaneList(in *KubeadmControlPlaneList, out *v1beta2.KubeadmControlPlaneList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.KubeadmControlPlane, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha3_KubeadmControlPlaneList_To_v1beta2_KubeadmControlPlaneList is an autogenerated conversion function. -func Convert_v1alpha3_KubeadmControlPlaneList_To_v1beta2_KubeadmControlPlaneList(in *KubeadmControlPlaneList, out *v1beta2.KubeadmControlPlaneList, s conversion.Scope) error { - return autoConvert_v1alpha3_KubeadmControlPlaneList_To_v1beta2_KubeadmControlPlaneList(in, out, s) -} - -func autoConvert_v1beta2_KubeadmControlPlaneList_To_v1alpha3_KubeadmControlPlaneList(in *v1beta2.KubeadmControlPlaneList, out *KubeadmControlPlaneList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]KubeadmControlPlane, len(*in)) - for i := range *in { - if err := Convert_v1beta2_KubeadmControlPlane_To_v1alpha3_KubeadmControlPlane(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_KubeadmControlPlaneList_To_v1alpha3_KubeadmControlPlaneList is an autogenerated conversion function. -func Convert_v1beta2_KubeadmControlPlaneList_To_v1alpha3_KubeadmControlPlaneList(in *v1beta2.KubeadmControlPlaneList, out *KubeadmControlPlaneList, s conversion.Scope) error { - return autoConvert_v1beta2_KubeadmControlPlaneList_To_v1alpha3_KubeadmControlPlaneList(in, out, s) -} - -func autoConvert_v1alpha3_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneSpec(in *KubeadmControlPlaneSpec, out *v1beta2.KubeadmControlPlaneSpec, s conversion.Scope) error { - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - out.Version = in.Version - // WARNING: in.InfrastructureTemplate requires manual conversion: does not exist in peer-type - if err := Convert_v1alpha3_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(&in.KubeadmConfigSpec, &out.KubeadmConfigSpec, s); err != nil { - return err - } - // WARNING: in.UpgradeAfter requires manual conversion: does not exist in peer-type - // WARNING: in.NodeDrainTimeout requires manual conversion: does not exist in peer-type - // WARNING: in.RolloutStrategy requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_KubeadmControlPlaneSpec_To_v1alpha3_KubeadmControlPlaneSpec(in *v1beta2.KubeadmControlPlaneSpec, out *KubeadmControlPlaneSpec, s conversion.Scope) error { - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - out.Version = in.Version - // WARNING: in.MachineTemplate requires manual conversion: does not exist in peer-type - if err := Convert_v1beta2_KubeadmConfigSpec_To_v1alpha3_KubeadmConfigSpec(&in.KubeadmConfigSpec, &out.KubeadmConfigSpec, s); err != nil { - return err - } - // WARNING: in.Rollout requires manual conversion: does not exist in peer-type - // WARNING: in.Remediation requires manual conversion: does not exist in peer-type - // WARNING: in.MachineNaming requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_KubeadmControlPlaneStatus_To_v1beta2_KubeadmControlPlaneStatus(in *KubeadmControlPlaneStatus, out *v1beta2.KubeadmControlPlaneStatus, s conversion.Scope) error { - out.Selector = in.Selector - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - // WARNING: in.UpdatedReplicas requires manual conversion: does not exist in peer-type - if err := v1.Convert_int32_To_Pointer_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - // WARNING: in.UnavailableReplicas requires manual conversion: does not exist in peer-type - // WARNING: in.Initialized requires manual conversion: does not exist in peer-type - // WARNING: in.Ready requires manual conversion: does not exist in peer-type - // WARNING: in.FailureReason requires manual conversion: does not exist in peer-type - // WARNING: in.FailureMessage requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -func autoConvert_v1beta2_KubeadmControlPlaneStatus_To_v1alpha3_KubeadmControlPlaneStatus(in *v1beta2.KubeadmControlPlaneStatus, out *KubeadmControlPlaneStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(corev1alpha3.Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha3_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - // WARNING: in.Initialization requires manual conversion: does not exist in peer-type - out.Selector = in.Selector - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - // WARNING: in.AvailableReplicas requires manual conversion: does not exist in peer-type - // WARNING: in.UpToDateReplicas requires manual conversion: does not exist in peer-type - // WARNING: in.Version requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.LastRemediation requires manual conversion: does not exist in peer-type - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} diff --git a/internal/api/controlplane/kubeadm/v1alpha4/conversion.go b/internal/api/controlplane/kubeadm/v1alpha4/conversion.go deleted file mode 100644 index dfe7624ae9a7..000000000000 --- a/internal/api/controlplane/kubeadm/v1alpha4/conversion.go +++ /dev/null @@ -1,424 +0,0 @@ -/* -Copyright 2020 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 v1alpha4 - -import ( - "errors" - "fmt" - "reflect" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - bootstrapv1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" - controlplanev1 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta2" - clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - bootstrapv1alpha4 "sigs.k8s.io/cluster-api/internal/api/bootstrap/kubeadm/v1alpha4" - clusterv1alpha4 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha4" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -var apiVersionGetter = func(_ schema.GroupKind) (string, error) { - return "", errors.New("apiVersionGetter not set") -} - -func SetAPIVersionGetter(f func(gk schema.GroupKind) (string, error)) { - apiVersionGetter = f -} - -func (src *KubeadmControlPlane) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*controlplanev1.KubeadmControlPlane) - - if err := Convert_v1alpha4_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(src, dst, nil); err != nil { - return err - } - - infraRef, err := convertToContractVersionedObjectReference(&src.Spec.MachineTemplate.InfrastructureRef) - if err != nil { - return err - } - dst.Spec.MachineTemplate.Spec.InfrastructureRef = *infraRef - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha4), failureReason, failureMessage and replica counters to the deprecated field. - dst.Status.Deprecated = &controlplanev1.KubeadmControlPlaneDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &controlplanev1.KubeadmControlPlaneV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - clusterv1alpha4.Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - dst.Status.Deprecated.V1Beta1.ReadyReplicas = src.Status.ReadyReplicas - dst.Status.Deprecated.V1Beta1.UpdatedReplicas = src.Status.UpdatedReplicas - dst.Status.Deprecated.V1Beta1.UnavailableReplicas = src.Status.UnavailableReplicas - - // Manually restore data. - restored := &controlplanev1.KubeadmControlPlane{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - initialization := controlplanev1.KubeadmControlPlaneInitializationStatus{} - restoredControlPlaneInitialized := restored.Status.Initialization.ControlPlaneInitialized - clusterv1.Convert_bool_To_Pointer_bool(src.Status.Initialized, ok, restoredControlPlaneInitialized, &initialization.ControlPlaneInitialized) - if !reflect.DeepEqual(initialization, controlplanev1.KubeadmControlPlaneInitializationStatus{}) { - dst.Status.Initialization = initialization - } - - if err := bootstrapv1alpha4.RestoreBoolIntentKubeadmConfigSpec(&src.Spec.KubeadmConfigSpec, &dst.Spec.KubeadmConfigSpec, ok, &restored.Spec.KubeadmConfigSpec); err != nil { - return err - } - - // Recover other values - if ok { - dst.Spec.MachineTemplate.Spec.ReadinessGates = restored.Spec.MachineTemplate.Spec.ReadinessGates - dst.Spec.MachineTemplate.Spec.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.MachineTemplate.Spec.Deletion.NodeDeletionTimeoutSeconds - dst.Spec.MachineTemplate.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.MachineTemplate.Spec.Deletion.NodeVolumeDetachTimeoutSeconds - dst.Spec.Rollout = restored.Spec.Rollout - - dst.Spec.Remediation = restored.Spec.Remediation - dst.Status.LastRemediation = restored.Status.LastRemediation - - dst.Spec.MachineNaming = restored.Spec.MachineNaming - - bootstrapv1alpha4.RestoreKubeadmConfigSpec(&dst.Spec.KubeadmConfigSpec, &restored.Spec.KubeadmConfigSpec) - dst.Status.Conditions = restored.Status.Conditions - dst.Status.AvailableReplicas = restored.Status.AvailableReplicas - dst.Status.ReadyReplicas = restored.Status.ReadyReplicas - dst.Status.UpToDateReplicas = restored.Status.UpToDateReplicas - } - - // Override restored data with timeouts values already existing in v1beta1 but in other structs. - src.Spec.KubeadmConfigSpec.ConvertTo(&dst.Spec.KubeadmConfigSpec) - return nil -} - -func (dst *KubeadmControlPlane) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*controlplanev1.KubeadmControlPlane) - if err := Convert_v1beta2_KubeadmControlPlane_To_v1alpha4_KubeadmControlPlane(src, dst, nil); err != nil { - return err - } - - if src.Spec.MachineTemplate.Spec.InfrastructureRef.IsDefined() { - infraRef, err := convertToObjectReference(&src.Spec.MachineTemplate.Spec.InfrastructureRef, src.Namespace) - if err != nil { - return err - } - dst.Spec.MachineTemplate.InfrastructureRef = *infraRef - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha4). - dst.Status.Conditions = nil - - // Reset replica counters from autogenerated conversions - // NOTE: replica counters with a new semantic should not be automatically be converted into old replica counters. - dst.Status.ReadyReplicas = 0 - - // Retrieve legacy conditions (v1alpha4), failureReason, failureMessage and replica counters from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - clusterv1alpha4.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - dst.Status.ReadyReplicas = src.Status.Deprecated.V1Beta1.ReadyReplicas - dst.Status.UpdatedReplicas = src.Status.Deprecated.V1Beta1.UpdatedReplicas - dst.Status.UnavailableReplicas = src.Status.Deprecated.V1Beta1.UnavailableReplicas - } - } - - // Move ControlPlaneInitialized to old fields, rebuild ready - dst.Status.Initialized = ptr.Deref(src.Status.Initialization.ControlPlaneInitialized, false) - dst.Status.Ready = dst.Status.ReadyReplicas > 0 - - // Convert timeouts moved from one struct to another. - dst.Spec.KubeadmConfigSpec.ConvertFrom(&src.Spec.KubeadmConfigSpec) - - dropEmptyStringsKubeadmConfigSpec(&dst.Spec.KubeadmConfigSpec) - dropEmptyStringsKubeadmControlPlaneStatus(&dst.Status) - - // Preserve Hub data on down-conversion except for metadata - return utilconversion.MarshalData(src, dst) -} - -func (src *KubeadmControlPlaneTemplate) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*controlplanev1.KubeadmControlPlaneTemplate) - - if err := Convert_v1alpha4_KubeadmControlPlaneTemplate_To_v1beta2_KubeadmControlPlaneTemplate(src, dst, nil); err != nil { - return err - } - - // Manually restore data. - restored := &controlplanev1.KubeadmControlPlaneTemplate{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - if err := bootstrapv1alpha4.RestoreBoolIntentKubeadmConfigSpec(&src.Spec.Template.Spec.KubeadmConfigSpec, &dst.Spec.Template.Spec.KubeadmConfigSpec, ok, &restored.Spec.Template.Spec.KubeadmConfigSpec); err != nil { - return err - } - - // Recover other values - if ok { - dst.Spec.Template.ObjectMeta = restored.Spec.Template.ObjectMeta - dst.Spec.Template.Spec.MachineTemplate = restored.Spec.Template.Spec.MachineTemplate - dst.Spec.Template.Spec.Rollout.Before = restored.Spec.Template.Spec.Rollout.Before - dst.Spec.Template.Spec.Remediation = restored.Spec.Template.Spec.Remediation - - dst.Spec.Template.Spec.MachineNaming = restored.Spec.Template.Spec.MachineNaming - - bootstrapv1alpha4.RestoreKubeadmConfigSpec(&dst.Spec.Template.Spec.KubeadmConfigSpec, &restored.Spec.Template.Spec.KubeadmConfigSpec) - } - - // Override restored data with timeouts values already existing in v1beta1 but in other structs. - src.Spec.Template.Spec.KubeadmConfigSpec.ConvertTo(&dst.Spec.Template.Spec.KubeadmConfigSpec) - return nil -} - -func (dst *KubeadmControlPlaneTemplate) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*controlplanev1.KubeadmControlPlaneTemplate) - if err := Convert_v1beta2_KubeadmControlPlaneTemplate_To_v1alpha4_KubeadmControlPlaneTemplate(src, dst, nil); err != nil { - return err - } - - // Convert timeouts moved from one struct to another. - dst.Spec.Template.Spec.KubeadmConfigSpec.ConvertFrom(&src.Spec.Template.Spec.KubeadmConfigSpec) - - dropEmptyStringsKubeadmConfigSpec(&dst.Spec.Template.Spec.KubeadmConfigSpec) - - // Preserve Hub data on down-conversion except for metadata. - return utilconversion.MarshalData(src, dst) -} - -func Convert_v1alpha4_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneSpec(in *KubeadmControlPlaneSpec, out *controlplanev1.KubeadmControlPlaneSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneSpec(in, out, s); err != nil { - return err - } - if in.RolloutAfter != nil && !reflect.DeepEqual(in.RolloutAfter, &metav1.Time{}) { - out.Rollout.After = *in.RolloutAfter - } - if in.RolloutStrategy != nil { - out.Rollout.Strategy.Type = controlplanev1.KubeadmControlPlaneRolloutStrategyType(in.RolloutStrategy.Type) - if in.RolloutStrategy.RollingUpdate != nil && in.RolloutStrategy.RollingUpdate.MaxSurge != nil { - out.Rollout.Strategy.RollingUpdate.MaxSurge = in.RolloutStrategy.RollingUpdate.MaxSurge - } - } - return nil -} - -func Convert_v1alpha4_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneTemplateResourceSpec(in *KubeadmControlPlaneSpec, out *controlplanev1.KubeadmControlPlaneTemplateResourceSpec, s apimachineryconversion.Scope) error { - if in.MachineTemplate.NodeDrainTimeout != nil { - out.MachineTemplate.Spec.Deletion.NodeDrainTimeoutSeconds = clusterv1.ConvertToSeconds(in.MachineTemplate.NodeDrainTimeout) - } - - if err := bootstrapv1alpha4.Convert_v1alpha4_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(&in.KubeadmConfigSpec, &out.KubeadmConfigSpec, s); err != nil { - return err - } - if in.RolloutAfter != nil && !reflect.DeepEqual(in.RolloutAfter, &metav1.Time{}) { - out.Rollout.After = *in.RolloutAfter - } - - if in.RolloutStrategy != nil { - out.Rollout.Strategy.Type = controlplanev1.KubeadmControlPlaneRolloutStrategyType(in.RolloutStrategy.Type) - if in.RolloutStrategy.RollingUpdate != nil && in.RolloutStrategy.RollingUpdate.MaxSurge != nil { - out.Rollout.Strategy.RollingUpdate.MaxSurge = in.RolloutStrategy.RollingUpdate.MaxSurge - } - } - - return nil -} - -func Convert_v1beta2_KubeadmControlPlaneTemplateResourceSpec_To_v1alpha4_KubeadmControlPlaneSpec(in *controlplanev1.KubeadmControlPlaneTemplateResourceSpec, out *KubeadmControlPlaneSpec, s apimachineryconversion.Scope) error { - if in.MachineTemplate.Spec.Deletion.NodeDrainTimeoutSeconds != nil { - out.MachineTemplate.NodeDrainTimeout = clusterv1.ConvertFromSeconds(in.MachineTemplate.Spec.Deletion.NodeDrainTimeoutSeconds) - } - - if err := bootstrapv1alpha4.Convert_v1beta2_KubeadmConfigSpec_To_v1alpha4_KubeadmConfigSpec(&in.KubeadmConfigSpec, &out.KubeadmConfigSpec, s); err != nil { - return err - } - if !reflect.DeepEqual(in.Rollout.After, metav1.Time{}) { - out.RolloutAfter = ptr.To(in.Rollout.After) - } - if !reflect.DeepEqual(in.Rollout.Strategy, controlplanev1.KubeadmControlPlaneRolloutStrategy{}) { - out.RolloutStrategy = &RolloutStrategy{} - out.RolloutStrategy.Type = RolloutStrategyType(in.Rollout.Strategy.Type) - if in.Rollout.Strategy.RollingUpdate.MaxSurge != nil { - out.RolloutStrategy.RollingUpdate = &RollingUpdate{} - out.RolloutStrategy.RollingUpdate.MaxSurge = in.Rollout.Strategy.RollingUpdate.MaxSurge - } - } - - return nil -} - -func Convert_v1beta2_KubeadmControlPlaneMachineTemplate_To_v1alpha4_KubeadmControlPlaneMachineTemplate(in *controlplanev1.KubeadmControlPlaneMachineTemplate, out *KubeadmControlPlaneMachineTemplate, s apimachineryconversion.Scope) error { - // .NodeDrainTimeout was added in v1beta1. - if err := autoConvert_v1beta2_KubeadmControlPlaneMachineTemplate_To_v1alpha4_KubeadmControlPlaneMachineTemplate(in, out, s); err != nil { - return err - } - out.NodeDrainTimeout = clusterv1.ConvertFromSeconds(in.Spec.Deletion.NodeDrainTimeoutSeconds) - return nil -} - -func Convert_v1beta2_KubeadmControlPlaneSpec_To_v1alpha4_KubeadmControlPlaneSpec(in *controlplanev1.KubeadmControlPlaneSpec, out *KubeadmControlPlaneSpec, scope apimachineryconversion.Scope) error { - // .KubeadmControlPlaneRolloutBeforeSpec was added in v1beta1. - // .KubeadmControlPlaneRemediationSpec was added in v1beta1. - if err := autoConvert_v1beta2_KubeadmControlPlaneSpec_To_v1alpha4_KubeadmControlPlaneSpec(in, out, scope); err != nil { - return err - } - if !reflect.DeepEqual(in.Rollout.After, metav1.Time{}) { - out.RolloutAfter = ptr.To(in.Rollout.After) - } - if !reflect.DeepEqual(in.Rollout.Strategy, controlplanev1.KubeadmControlPlaneRolloutStrategy{}) { - out.RolloutStrategy = &RolloutStrategy{} - out.RolloutStrategy.Type = RolloutStrategyType(in.Rollout.Strategy.Type) - if in.Rollout.Strategy.RollingUpdate.MaxSurge != nil { - out.RolloutStrategy.RollingUpdate = &RollingUpdate{} - out.RolloutStrategy.RollingUpdate.MaxSurge = in.Rollout.Strategy.RollingUpdate.MaxSurge - } - } - return nil -} - -func Convert_v1beta2_KubeadmControlPlaneStatus_To_v1alpha4_KubeadmControlPlaneStatus(in *controlplanev1.KubeadmControlPlaneStatus, out *KubeadmControlPlaneStatus, scope apimachineryconversion.Scope) error { - // .LastRemediation was added in v1beta1. - // .V1Beta2 was added in v1beta1. - return autoConvert_v1beta2_KubeadmControlPlaneStatus_To_v1alpha4_KubeadmControlPlaneStatus(in, out, scope) -} - -func Convert_v1beta2_KubeadmControlPlaneTemplateResource_To_v1alpha4_KubeadmControlPlaneTemplateResource(in *controlplanev1.KubeadmControlPlaneTemplateResource, out *KubeadmControlPlaneTemplateResource, scope apimachineryconversion.Scope) error { - // .metadata and .spec.machineTemplate.metadata was added in v1beta1. - return autoConvert_v1beta2_KubeadmControlPlaneTemplateResource_To_v1alpha4_KubeadmControlPlaneTemplateResource(in, out, scope) -} - -func Convert_v1alpha4_KubeadmControlPlaneMachineTemplate_To_v1beta2_KubeadmControlPlaneMachineTemplate(in *KubeadmControlPlaneMachineTemplate, out *controlplanev1.KubeadmControlPlaneMachineTemplate, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_KubeadmControlPlaneMachineTemplate_To_v1beta2_KubeadmControlPlaneMachineTemplate(in, out, s); err != nil { - return err - } - out.Spec.Deletion.NodeDrainTimeoutSeconds = clusterv1.ConvertToSeconds(in.NodeDrainTimeout) - return nil -} - -func Convert_v1alpha4_KubeadmControlPlaneStatus_To_v1beta2_KubeadmControlPlaneStatus(in *KubeadmControlPlaneStatus, out *controlplanev1.KubeadmControlPlaneStatus, scope apimachineryconversion.Scope) error { - return autoConvert_v1alpha4_KubeadmControlPlaneStatus_To_v1beta2_KubeadmControlPlaneStatus(in, out, scope) -} - -// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94) - -func Convert_v1beta2_KubeadmConfigSpec_To_v1alpha4_KubeadmConfigSpec(in *bootstrapv1.KubeadmConfigSpec, out *bootstrapv1alpha4.KubeadmConfigSpec, s apimachineryconversion.Scope) error { - return bootstrapv1alpha4.Convert_v1beta2_KubeadmConfigSpec_To_v1alpha4_KubeadmConfigSpec(in, out, s) -} - -func Convert_v1alpha4_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(in *bootstrapv1alpha4.KubeadmConfigSpec, out *bootstrapv1.KubeadmConfigSpec, s apimachineryconversion.Scope) error { - return bootstrapv1alpha4.Convert_v1alpha4_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(in, out, s) -} - -func Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(in *clusterv1alpha4.ObjectMeta, out *clusterv1.ObjectMeta, s apimachineryconversion.Scope) error { - return clusterv1alpha4.Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(in, out, s) -} - -func Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(in *clusterv1.ObjectMeta, out *clusterv1alpha4.ObjectMeta, s apimachineryconversion.Scope) error { - return clusterv1alpha4.Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(in, out, s) -} - -func Convert_v1_Condition_To_v1alpha4_Condition(in *metav1.Condition, out *clusterv1alpha4.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha4.Convert_v1_Condition_To_v1alpha4_Condition(in, out, s) -} - -func Convert_v1alpha4_Condition_To_v1_Condition(in *clusterv1alpha4.Condition, out *metav1.Condition, s apimachineryconversion.Scope) error { - return clusterv1alpha4.Convert_v1alpha4_Condition_To_v1_Condition(in, out, s) -} - -func convertToContractVersionedObjectReference(ref *corev1.ObjectReference) (*clusterv1.ContractVersionedObjectReference, error) { - var apiGroup string - if ref.APIVersion != "" { - gv, err := schema.ParseGroupVersion(ref.APIVersion) - if err != nil { - return nil, fmt.Errorf("failed to convert object: failed to parse apiVersion: %v", err) - } - apiGroup = gv.Group - } - return &clusterv1.ContractVersionedObjectReference{ - APIGroup: apiGroup, - Kind: ref.Kind, - Name: ref.Name, - }, nil -} - -func convertToObjectReference(ref *clusterv1.ContractVersionedObjectReference, namespace string) (*corev1.ObjectReference, error) { - apiVersion, err := apiVersionGetter(schema.GroupKind{ - Group: ref.APIGroup, - Kind: ref.Kind, - }) - if err != nil { - return nil, fmt.Errorf("failed to convert object: %v", err) - } - return &corev1.ObjectReference{ - APIVersion: apiVersion, - Kind: ref.Kind, - Namespace: namespace, - Name: ref.Name, - }, nil -} - -func dropEmptyStringsKubeadmConfigSpec(dst *bootstrapv1alpha4.KubeadmConfigSpec) { - for i, u := range dst.Users { - dropEmptyString(&u.Gecos) - dropEmptyString(&u.Groups) - dropEmptyString(&u.HomeDir) - dropEmptyString(&u.Shell) - dropEmptyString(&u.Passwd) - dropEmptyString(&u.PrimaryGroup) - dropEmptyString(&u.Sudo) - dst.Users[i] = u - } - - if dst.DiskSetup != nil { - for i, p := range dst.DiskSetup.Partitions { - dropEmptyString(&p.TableType) - dst.DiskSetup.Partitions[i] = p - } - for i, f := range dst.DiskSetup.Filesystems { - dropEmptyString(&f.Partition) - dropEmptyString(&f.ReplaceFS) - dst.DiskSetup.Filesystems[i] = f - } - } -} - -func dropEmptyStringsKubeadmControlPlaneStatus(dst *KubeadmControlPlaneStatus) { - dropEmptyString(&dst.Version) -} - -func dropEmptyString(s **string) { - if *s != nil && **s == "" { - *s = nil - } -} diff --git a/internal/api/controlplane/kubeadm/v1alpha4/conversion_test.go b/internal/api/controlplane/kubeadm/v1alpha4/conversion_test.go deleted file mode 100644 index 13a2c2b61a5a..000000000000 --- a/internal/api/controlplane/kubeadm/v1alpha4/conversion_test.go +++ /dev/null @@ -1,391 +0,0 @@ -//go:build !race - -/* -Copyright 2020 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 v1alpha4 - -import ( - "fmt" - "reflect" - "testing" - "time" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/utils/ptr" - "sigs.k8s.io/randfill" - - bootstrapv1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" - controlplanev1 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta2" - bootstrapv1alpha4 "sigs.k8s.io/cluster-api/internal/api/bootstrap/kubeadm/v1alpha4" - clusterv1alpha4 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha4" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -const ( - fakeID = "abcdef" - fakeSecret = "abcdef0123456789" -) - -// Test is disabled when the race detector is enabled (via "//go:build !race" above) because otherwise the fuzz tests would just time out. - -func TestFuzzyConversion(t *testing.T) { - SetAPIVersionGetter(func(gk schema.GroupKind) (string, error) { - for _, gvk := range testGVKs { - if gvk.GroupKind() == gk { - return schema.GroupVersion{ - Group: gk.Group, - Version: gvk.Version, - }.String(), nil - } - } - return "", fmt.Errorf("failed to map GroupKind %s to version", gk.String()) - }) - - t.Run("for KubeadmControlPlane", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &controlplanev1.KubeadmControlPlane{}, - Spoke: &KubeadmControlPlane{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{KubeadmControlPlaneFuzzFuncs}, - })) - - t.Run("for KubeadmControlPlaneTemplate", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &controlplanev1.KubeadmControlPlaneTemplate{}, - Spoke: &KubeadmControlPlaneTemplate{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{KubeadmControlPlaneTemplateFuzzFuncs}, - })) -} - -func KubeadmControlPlaneFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - hubMachineTemplateSpec, - hubKubeadmControlPlaneStatus, - spokeKubeadmControlPlane, - spokeKubeadmControlPlaneStatus, - spokeKubeadmControlPlaneTemplateResource, - spokeKubeadmControlPlaneMachineTemplate, - hubBootstrapTokenString, - spokeBootstrapTokenString, - spokeKubeadmConfigSpec, - spokeClusterConfiguration, - spokeAPIServer, - spokeDiscovery, - hubKubeadmConfigSpec, - hubNodeRegistrationOptions, - spokeBootstrapToken, - } -} - -func KubeadmControlPlaneTemplateFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - spokeKubeadmControlPlaneTemplateResource, - spokeKubeadmControlPlaneMachineTemplate, - hubBootstrapTokenString, - spokeBootstrapTokenString, - spokeKubeadmConfigSpec, - spokeClusterConfiguration, - spokeAPIServer, - spokeDiscovery, - hubKubeadmConfigSpec, - hubNodeRegistrationOptions, - spokeBootstrapToken, - } -} - -func hubKubeadmConfigSpec(in *bootstrapv1.KubeadmConfigSpec, c randfill.Continue) { - c.FillNoCustom(in) - - // enforce ControlPlaneComponentHealthCheckSeconds to be equal on init and join configuration - initControlPlaneComponentHealthCheckSeconds := in.InitConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds - if in.JoinConfiguration.IsDefined() || initControlPlaneComponentHealthCheckSeconds != nil { - in.JoinConfiguration.Timeouts.ControlPlaneComponentHealthCheckSeconds = initControlPlaneComponentHealthCheckSeconds - } - - if in.ClusterConfiguration.APIServer.ExtraEnvs != nil && *in.ClusterConfiguration.APIServer.ExtraEnvs == nil { - in.ClusterConfiguration.APIServer.ExtraEnvs = nil - } - if in.ClusterConfiguration.ControllerManager.ExtraEnvs != nil && *in.ClusterConfiguration.ControllerManager.ExtraEnvs == nil { - in.ClusterConfiguration.ControllerManager.ExtraEnvs = nil - } - if in.ClusterConfiguration.Scheduler.ExtraEnvs != nil && *in.ClusterConfiguration.Scheduler.ExtraEnvs == nil { - in.ClusterConfiguration.Scheduler.ExtraEnvs = nil - } - if in.ClusterConfiguration.Etcd.Local.ExtraEnvs != nil && *in.ClusterConfiguration.Etcd.Local.ExtraEnvs == nil { - in.ClusterConfiguration.Etcd.Local.ExtraEnvs = nil - } - - for i, arg := range in.ClusterConfiguration.APIServer.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.APIServer.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.ControllerManager.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.ControllerManager.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.Scheduler.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.Scheduler.ExtraArgs[i] = arg - } - for i, arg := range in.ClusterConfiguration.Etcd.Local.ExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.ClusterConfiguration.Etcd.Local.ExtraArgs[i] = arg - } - for i, arg := range in.InitConfiguration.NodeRegistration.KubeletExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.InitConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg - } - for i, arg := range in.JoinConfiguration.NodeRegistration.KubeletExtraArgs { - if arg.Value == nil { - arg.Value = ptr.To("") - } - in.JoinConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg - } - for i, p := range in.DiskSetup.Partitions { - if p.Layout == nil { - p.Layout = ptr.To(false) // Layout is a required field and nil does not round trip - } - in.DiskSetup.Partitions[i] = p - } -} - -func hubNodeRegistrationOptions(in *bootstrapv1.NodeRegistrationOptions, c randfill.Continue) { - c.FillNoCustom(in) - - if in.Taints != nil && *in.Taints == nil { - in.Taints = nil - } -} - -func hubKubeadmControlPlaneStatus(in *controlplanev1.KubeadmControlPlaneStatus, c randfill.Continue) { - c.FillNoCustom(in) - // Always create struct with at least one mandatory fields. - if in.Deprecated == nil { - in.Deprecated = &controlplanev1.KubeadmControlPlaneDeprecatedStatus{} - } - if in.Deprecated.V1Beta1 == nil { - in.Deprecated.V1Beta1 = &controlplanev1.KubeadmControlPlaneV1Beta1DeprecatedStatus{} - } - - // nil becomes &0 after hub => spoke => hub conversion - // This is acceptable as usually Replicas is set and controllers using older apiVersions are not writing MachineSet status. - if in.Replicas == nil { - in.Replicas = ptr.To(int32(0)) - } -} - -func spokeKubeadmControlPlaneStatus(in *KubeadmControlPlaneStatus, c randfill.Continue) { - c.FillNoCustom(in) - - // Make sure ready is consistent with ready replicas, so we can rebuild the info after the round trip. - in.Ready = in.ReadyReplicas > 0 - - dropEmptyStringsKubeadmControlPlaneStatus(in) -} - -func hubBootstrapTokenString(in *bootstrapv1.BootstrapTokenString, _ randfill.Continue) { - in.ID = fakeID - in.Secret = fakeSecret -} - -func spokeBootstrapTokenString(in *bootstrapv1alpha4.BootstrapTokenString, _ randfill.Continue) { - in.ID = fakeID - in.Secret = fakeSecret -} - -func hubMachineTemplateSpec(in *controlplanev1.KubeadmControlPlaneMachineTemplate, c randfill.Continue) { - c.FillNoCustom(in) - - // Ensure ref field is always set to realistic values. - gvk := testGVKs[c.Int31n(4)] - in.Spec.InfrastructureRef.APIGroup = gvk.Group - in.Spec.InfrastructureRef.Kind = gvk.Kind -} - -func spokeKubeadmControlPlane(in *KubeadmControlPlane, c randfill.Continue) { - c.FillNoCustom(in) - - // Ensure ref fields are always set to realistic values. - gvk := testGVKs[c.Int31n(4)] - in.Spec.MachineTemplate.InfrastructureRef.APIVersion = gvk.GroupVersion().String() - in.Spec.MachineTemplate.InfrastructureRef.Kind = gvk.Kind - in.Spec.MachineTemplate.InfrastructureRef.Namespace = in.Namespace - in.Spec.MachineTemplate.InfrastructureRef.UID = "" - in.Spec.MachineTemplate.InfrastructureRef.ResourceVersion = "" - in.Spec.MachineTemplate.InfrastructureRef.FieldPath = "" - - if in.Spec.RolloutStrategy != nil { - if reflect.DeepEqual(in.Spec.RolloutStrategy.RollingUpdate, &RollingUpdate{}) { - in.Spec.RolloutStrategy.RollingUpdate = nil - } - } - if reflect.DeepEqual(in.Spec.RolloutStrategy, &RolloutStrategy{}) { - in.Spec.RolloutStrategy = nil - } - if reflect.DeepEqual(in.Spec.RolloutAfter, &metav1.Time{}) { - in.Spec.RolloutAfter = nil - } -} - -func spokeKubeadmControlPlaneTemplateResource(in *KubeadmControlPlaneTemplateResource, c randfill.Continue) { - c.FillNoCustom(in) - - // Fields have been dropped in KCPTemplate. - in.Spec.Replicas = nil - in.Spec.Version = "" - in.Spec.MachineTemplate.ObjectMeta = clusterv1alpha4.ObjectMeta{} - in.Spec.MachineTemplate.InfrastructureRef = corev1.ObjectReference{} - - if in.Spec.RolloutStrategy != nil { - if reflect.DeepEqual(in.Spec.RolloutStrategy.RollingUpdate, &RollingUpdate{}) { - in.Spec.RolloutStrategy.RollingUpdate = nil - } - } - if reflect.DeepEqual(in.Spec.RolloutStrategy, &RolloutStrategy{}) { - in.Spec.RolloutStrategy = nil - } - if reflect.DeepEqual(in.Spec.RolloutAfter, &metav1.Time{}) { - in.Spec.RolloutAfter = nil - } -} - -func spokeKubeadmControlPlaneMachineTemplate(in *KubeadmControlPlaneMachineTemplate, c randfill.Continue) { - c.FillNoCustom(in) - - if in.NodeDrainTimeout != nil { - in.NodeDrainTimeout = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } -} - -func spokeKubeadmConfigSpec(in *bootstrapv1alpha4.KubeadmConfigSpec, c randfill.Continue) { - c.FillNoCustom(in) - - // Drop UseExperimentalRetryJoin as we intentionally don't preserve it. - in.UseExperimentalRetryJoin = false - - dropEmptyStringsKubeadmConfigSpec(in) - - if in.DiskSetup != nil && reflect.DeepEqual(in.DiskSetup, &bootstrapv1alpha4.DiskSetup{}) { - in.DiskSetup = nil - } - if in.NTP != nil && reflect.DeepEqual(in.NTP, &bootstrapv1alpha4.NTP{}) { - in.NTP = nil - } - for i, file := range in.Files { - if file.ContentFrom != nil && reflect.DeepEqual(file.ContentFrom, &bootstrapv1alpha4.FileSource{}) { - file.ContentFrom = nil - } - in.Files[i] = file - } - - if reflect.DeepEqual(in.ClusterConfiguration, &bootstrapv1alpha4.ClusterConfiguration{}) { - in.ClusterConfiguration = nil - } - if reflect.DeepEqual(in.InitConfiguration, &bootstrapv1alpha4.InitConfiguration{}) { - in.InitConfiguration = nil - } - if reflect.DeepEqual(in.JoinConfiguration, &bootstrapv1alpha4.JoinConfiguration{}) { - in.JoinConfiguration = nil - } -} - -func spokeClusterConfiguration(in *bootstrapv1alpha4.ClusterConfiguration, c randfill.Continue) { - c.FillNoCustom(in) - - // Drop the following fields as they have been removed in v1beta2, so we don't have to preserve them. - in.Networking.ServiceSubnet = "" - in.Networking.PodSubnet = "" - in.Networking.DNSDomain = "" - in.KubernetesVersion = "" - in.ClusterName = "" - - if in.Etcd.Local != nil && reflect.DeepEqual(in.Etcd.Local, &bootstrapv1alpha4.LocalEtcd{}) { - in.Etcd.Local = nil - } - if in.Etcd.External != nil && reflect.DeepEqual(in.Etcd.External, &bootstrapv1alpha4.ExternalEtcd{}) { - in.Etcd.External = nil - } -} - -func spokeAPIServer(in *bootstrapv1alpha4.APIServer, c randfill.Continue) { - c.FillNoCustom(in) - - if in.TimeoutForControlPlane != nil { - in.TimeoutForControlPlane = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } -} - -func spokeBootstrapToken(in *bootstrapv1alpha4.BootstrapToken, c randfill.Continue) { - c.FillNoCustom(in) - - if in.TTL != nil { - in.TTL = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } - if reflect.DeepEqual(in.Expires, &metav1.Time{}) { - in.Expires = nil - } -} - -func spokeDiscovery(in *bootstrapv1alpha4.Discovery, c randfill.Continue) { - c.FillNoCustom(in) - - if in.Timeout != nil { - in.Timeout = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) - } - if in.File != nil { - if reflect.DeepEqual(in.File, &bootstrapv1alpha4.FileDiscovery{}) { - in.File = nil - } - } - if in.BootstrapToken != nil && reflect.DeepEqual(in.BootstrapToken, &bootstrapv1alpha4.BootstrapTokenDiscovery{}) { - in.BootstrapToken = nil - } -} - -var testGVKs = []schema.GroupVersionKind{ - { - Group: "controlplane.cluster.x-k8s.io", - Version: "v1beta4", - Kind: "KubeadmControlPlane", - }, - { - Group: "controlplane.cluster.x-k8s.io", - Version: "v1beta7", - Kind: "AWSManagedControlPlane", - }, - { - Group: "infrastructure.cluster.x-k8s.io", - Version: "v1beta3", - Kind: "DockerCluster", - }, - { - Group: "infrastructure.cluster.x-k8s.io", - Version: "v1beta6", - Kind: "AWSCluster", - }, -} diff --git a/internal/api/controlplane/kubeadm/v1alpha4/kubeadm_control_plane_types.go b/internal/api/controlplane/kubeadm/v1alpha4/kubeadm_control_plane_types.go index a1815a6d973e..a9de1dd86e31 100644 --- a/internal/api/controlplane/kubeadm/v1alpha4/kubeadm_control_plane_types.go +++ b/internal/api/controlplane/kubeadm/v1alpha4/kubeadm_control_plane_types.go @@ -21,7 +21,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" - "sigs.k8s.io/cluster-api/errors" + "sigs.k8s.io/cluster-api/api/core/errors" bootstrapv1alpha4 "sigs.k8s.io/cluster-api/internal/api/bootstrap/kubeadm/v1alpha4" clusterv1alpha4 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha4" ) diff --git a/internal/api/controlplane/kubeadm/v1alpha4/zz_generated.conversion.go b/internal/api/controlplane/kubeadm/v1alpha4/zz_generated.conversion.go deleted file mode 100644 index 6eded2d24354..000000000000 --- a/internal/api/controlplane/kubeadm/v1alpha4/zz_generated.conversion.go +++ /dev/null @@ -1,470 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -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 conversion-gen. DO NOT EDIT. - -package v1alpha4 - -import ( - unsafe "unsafe" - - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - kubeadmv1beta2 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" - v1beta2 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta2" - corev1beta2 "sigs.k8s.io/cluster-api/api/core/v1beta2" - kubeadmv1alpha4 "sigs.k8s.io/cluster-api/internal/api/bootstrap/kubeadm/v1alpha4" - corev1alpha4 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha4" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*KubeadmControlPlane)(nil), (*v1beta2.KubeadmControlPlane)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(a.(*KubeadmControlPlane), b.(*v1beta2.KubeadmControlPlane), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.KubeadmControlPlane)(nil), (*KubeadmControlPlane)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlane_To_v1alpha4_KubeadmControlPlane(a.(*v1beta2.KubeadmControlPlane), b.(*KubeadmControlPlane), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*KubeadmControlPlaneList)(nil), (*v1beta2.KubeadmControlPlaneList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_KubeadmControlPlaneList_To_v1beta2_KubeadmControlPlaneList(a.(*KubeadmControlPlaneList), b.(*v1beta2.KubeadmControlPlaneList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.KubeadmControlPlaneList)(nil), (*KubeadmControlPlaneList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneList_To_v1alpha4_KubeadmControlPlaneList(a.(*v1beta2.KubeadmControlPlaneList), b.(*KubeadmControlPlaneList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*KubeadmControlPlaneTemplate)(nil), (*v1beta2.KubeadmControlPlaneTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_KubeadmControlPlaneTemplate_To_v1beta2_KubeadmControlPlaneTemplate(a.(*KubeadmControlPlaneTemplate), b.(*v1beta2.KubeadmControlPlaneTemplate), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.KubeadmControlPlaneTemplate)(nil), (*KubeadmControlPlaneTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneTemplate_To_v1alpha4_KubeadmControlPlaneTemplate(a.(*v1beta2.KubeadmControlPlaneTemplate), b.(*KubeadmControlPlaneTemplate), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*KubeadmControlPlaneTemplateList)(nil), (*v1beta2.KubeadmControlPlaneTemplateList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_KubeadmControlPlaneTemplateList_To_v1beta2_KubeadmControlPlaneTemplateList(a.(*KubeadmControlPlaneTemplateList), b.(*v1beta2.KubeadmControlPlaneTemplateList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.KubeadmControlPlaneTemplateList)(nil), (*KubeadmControlPlaneTemplateList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneTemplateList_To_v1alpha4_KubeadmControlPlaneTemplateList(a.(*v1beta2.KubeadmControlPlaneTemplateList), b.(*KubeadmControlPlaneTemplateList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*KubeadmControlPlaneTemplateResource)(nil), (*v1beta2.KubeadmControlPlaneTemplateResource)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_KubeadmControlPlaneTemplateResource_To_v1beta2_KubeadmControlPlaneTemplateResource(a.(*KubeadmControlPlaneTemplateResource), b.(*v1beta2.KubeadmControlPlaneTemplateResource), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*KubeadmControlPlaneTemplateSpec)(nil), (*v1beta2.KubeadmControlPlaneTemplateSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_KubeadmControlPlaneTemplateSpec_To_v1beta2_KubeadmControlPlaneTemplateSpec(a.(*KubeadmControlPlaneTemplateSpec), b.(*v1beta2.KubeadmControlPlaneTemplateSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.KubeadmControlPlaneTemplateSpec)(nil), (*KubeadmControlPlaneTemplateSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneTemplateSpec_To_v1alpha4_KubeadmControlPlaneTemplateSpec(a.(*v1beta2.KubeadmControlPlaneTemplateSpec), b.(*KubeadmControlPlaneTemplateSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1.Condition)(nil), (*corev1alpha4.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_Condition_To_v1alpha4_Condition(a.(*v1.Condition), b.(*corev1alpha4.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*corev1alpha4.Condition)(nil), (*v1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_Condition_To_v1_Condition(a.(*corev1alpha4.Condition), b.(*v1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*kubeadmv1alpha4.KubeadmConfigSpec)(nil), (*kubeadmv1beta2.KubeadmConfigSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(a.(*kubeadmv1alpha4.KubeadmConfigSpec), b.(*kubeadmv1beta2.KubeadmConfigSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*KubeadmControlPlaneMachineTemplate)(nil), (*v1beta2.KubeadmControlPlaneMachineTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_KubeadmControlPlaneMachineTemplate_To_v1beta2_KubeadmControlPlaneMachineTemplate(a.(*KubeadmControlPlaneMachineTemplate), b.(*v1beta2.KubeadmControlPlaneMachineTemplate), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*KubeadmControlPlaneSpec)(nil), (*v1beta2.KubeadmControlPlaneSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneSpec(a.(*KubeadmControlPlaneSpec), b.(*v1beta2.KubeadmControlPlaneSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*KubeadmControlPlaneSpec)(nil), (*v1beta2.KubeadmControlPlaneTemplateResourceSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneTemplateResourceSpec(a.(*KubeadmControlPlaneSpec), b.(*v1beta2.KubeadmControlPlaneTemplateResourceSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*KubeadmControlPlaneStatus)(nil), (*v1beta2.KubeadmControlPlaneStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_KubeadmControlPlaneStatus_To_v1beta2_KubeadmControlPlaneStatus(a.(*KubeadmControlPlaneStatus), b.(*v1beta2.KubeadmControlPlaneStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*corev1alpha4.ObjectMeta)(nil), (*corev1beta2.ObjectMeta)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(a.(*corev1alpha4.ObjectMeta), b.(*corev1beta2.ObjectMeta), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*kubeadmv1beta2.KubeadmConfigSpec)(nil), (*kubeadmv1alpha4.KubeadmConfigSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmConfigSpec_To_v1alpha4_KubeadmConfigSpec(a.(*kubeadmv1beta2.KubeadmConfigSpec), b.(*kubeadmv1alpha4.KubeadmConfigSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.KubeadmControlPlaneMachineTemplate)(nil), (*KubeadmControlPlaneMachineTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneMachineTemplate_To_v1alpha4_KubeadmControlPlaneMachineTemplate(a.(*v1beta2.KubeadmControlPlaneMachineTemplate), b.(*KubeadmControlPlaneMachineTemplate), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.KubeadmControlPlaneSpec)(nil), (*KubeadmControlPlaneSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneSpec_To_v1alpha4_KubeadmControlPlaneSpec(a.(*v1beta2.KubeadmControlPlaneSpec), b.(*KubeadmControlPlaneSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.KubeadmControlPlaneStatus)(nil), (*KubeadmControlPlaneStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneStatus_To_v1alpha4_KubeadmControlPlaneStatus(a.(*v1beta2.KubeadmControlPlaneStatus), b.(*KubeadmControlPlaneStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.KubeadmControlPlaneTemplateResourceSpec)(nil), (*KubeadmControlPlaneSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneTemplateResourceSpec_To_v1alpha4_KubeadmControlPlaneSpec(a.(*v1beta2.KubeadmControlPlaneTemplateResourceSpec), b.(*KubeadmControlPlaneSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.KubeadmControlPlaneTemplateResource)(nil), (*KubeadmControlPlaneTemplateResource)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_KubeadmControlPlaneTemplateResource_To_v1alpha4_KubeadmControlPlaneTemplateResource(a.(*v1beta2.KubeadmControlPlaneTemplateResource), b.(*KubeadmControlPlaneTemplateResource), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*corev1beta2.ObjectMeta)(nil), (*corev1alpha4.ObjectMeta)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(a.(*corev1beta2.ObjectMeta), b.(*corev1alpha4.ObjectMeta), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha4_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(in *KubeadmControlPlane, out *v1beta2.KubeadmControlPlane, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha4_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha4_KubeadmControlPlaneStatus_To_v1beta2_KubeadmControlPlaneStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane is an autogenerated conversion function. -func Convert_v1alpha4_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(in *KubeadmControlPlane, out *v1beta2.KubeadmControlPlane, s conversion.Scope) error { - return autoConvert_v1alpha4_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(in, out, s) -} - -func autoConvert_v1beta2_KubeadmControlPlane_To_v1alpha4_KubeadmControlPlane(in *v1beta2.KubeadmControlPlane, out *KubeadmControlPlane, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_KubeadmControlPlaneSpec_To_v1alpha4_KubeadmControlPlaneSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_KubeadmControlPlaneStatus_To_v1alpha4_KubeadmControlPlaneStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_KubeadmControlPlane_To_v1alpha4_KubeadmControlPlane is an autogenerated conversion function. -func Convert_v1beta2_KubeadmControlPlane_To_v1alpha4_KubeadmControlPlane(in *v1beta2.KubeadmControlPlane, out *KubeadmControlPlane, s conversion.Scope) error { - return autoConvert_v1beta2_KubeadmControlPlane_To_v1alpha4_KubeadmControlPlane(in, out, s) -} - -func autoConvert_v1alpha4_KubeadmControlPlaneList_To_v1beta2_KubeadmControlPlaneList(in *KubeadmControlPlaneList, out *v1beta2.KubeadmControlPlaneList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.KubeadmControlPlane, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_KubeadmControlPlane_To_v1beta2_KubeadmControlPlane(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha4_KubeadmControlPlaneList_To_v1beta2_KubeadmControlPlaneList is an autogenerated conversion function. -func Convert_v1alpha4_KubeadmControlPlaneList_To_v1beta2_KubeadmControlPlaneList(in *KubeadmControlPlaneList, out *v1beta2.KubeadmControlPlaneList, s conversion.Scope) error { - return autoConvert_v1alpha4_KubeadmControlPlaneList_To_v1beta2_KubeadmControlPlaneList(in, out, s) -} - -func autoConvert_v1beta2_KubeadmControlPlaneList_To_v1alpha4_KubeadmControlPlaneList(in *v1beta2.KubeadmControlPlaneList, out *KubeadmControlPlaneList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]KubeadmControlPlane, len(*in)) - for i := range *in { - if err := Convert_v1beta2_KubeadmControlPlane_To_v1alpha4_KubeadmControlPlane(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_KubeadmControlPlaneList_To_v1alpha4_KubeadmControlPlaneList is an autogenerated conversion function. -func Convert_v1beta2_KubeadmControlPlaneList_To_v1alpha4_KubeadmControlPlaneList(in *v1beta2.KubeadmControlPlaneList, out *KubeadmControlPlaneList, s conversion.Scope) error { - return autoConvert_v1beta2_KubeadmControlPlaneList_To_v1alpha4_KubeadmControlPlaneList(in, out, s) -} - -func autoConvert_v1alpha4_KubeadmControlPlaneMachineTemplate_To_v1beta2_KubeadmControlPlaneMachineTemplate(in *KubeadmControlPlaneMachineTemplate, out *v1beta2.KubeadmControlPlaneMachineTemplate, s conversion.Scope) error { - if err := Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, s); err != nil { - return err - } - // WARNING: in.InfrastructureRef requires manual conversion: does not exist in peer-type - // WARNING: in.NodeDrainTimeout requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_KubeadmControlPlaneMachineTemplate_To_v1alpha4_KubeadmControlPlaneMachineTemplate(in *v1beta2.KubeadmControlPlaneMachineTemplate, out *KubeadmControlPlaneMachineTemplate, s conversion.Scope) error { - if err := Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, s); err != nil { - return err - } - // WARNING: in.Spec requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneSpec(in *KubeadmControlPlaneSpec, out *v1beta2.KubeadmControlPlaneSpec, s conversion.Scope) error { - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - out.Version = in.Version - if err := Convert_v1alpha4_KubeadmControlPlaneMachineTemplate_To_v1beta2_KubeadmControlPlaneMachineTemplate(&in.MachineTemplate, &out.MachineTemplate, s); err != nil { - return err - } - if err := Convert_v1alpha4_KubeadmConfigSpec_To_v1beta2_KubeadmConfigSpec(&in.KubeadmConfigSpec, &out.KubeadmConfigSpec, s); err != nil { - return err - } - // WARNING: in.RolloutAfter requires manual conversion: does not exist in peer-type - // WARNING: in.RolloutStrategy requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_KubeadmControlPlaneSpec_To_v1alpha4_KubeadmControlPlaneSpec(in *v1beta2.KubeadmControlPlaneSpec, out *KubeadmControlPlaneSpec, s conversion.Scope) error { - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - out.Version = in.Version - if err := Convert_v1beta2_KubeadmControlPlaneMachineTemplate_To_v1alpha4_KubeadmControlPlaneMachineTemplate(&in.MachineTemplate, &out.MachineTemplate, s); err != nil { - return err - } - if err := Convert_v1beta2_KubeadmConfigSpec_To_v1alpha4_KubeadmConfigSpec(&in.KubeadmConfigSpec, &out.KubeadmConfigSpec, s); err != nil { - return err - } - // WARNING: in.Rollout requires manual conversion: does not exist in peer-type - // WARNING: in.Remediation requires manual conversion: does not exist in peer-type - // WARNING: in.MachineNaming requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_KubeadmControlPlaneStatus_To_v1beta2_KubeadmControlPlaneStatus(in *KubeadmControlPlaneStatus, out *v1beta2.KubeadmControlPlaneStatus, s conversion.Scope) error { - out.Selector = in.Selector - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_string_To_string(&in.Version, &out.Version, s); err != nil { - return err - } - // WARNING: in.UpdatedReplicas requires manual conversion: does not exist in peer-type - if err := v1.Convert_int32_To_Pointer_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - // WARNING: in.UnavailableReplicas requires manual conversion: does not exist in peer-type - // WARNING: in.Initialized requires manual conversion: does not exist in peer-type - // WARNING: in.Ready requires manual conversion: does not exist in peer-type - // WARNING: in.FailureReason requires manual conversion: does not exist in peer-type - // WARNING: in.FailureMessage requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -func autoConvert_v1beta2_KubeadmControlPlaneStatus_To_v1alpha4_KubeadmControlPlaneStatus(in *v1beta2.KubeadmControlPlaneStatus, out *KubeadmControlPlaneStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(corev1alpha4.Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha4_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - // WARNING: in.Initialization requires manual conversion: does not exist in peer-type - out.Selector = in.Selector - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - // WARNING: in.AvailableReplicas requires manual conversion: does not exist in peer-type - // WARNING: in.UpToDateReplicas requires manual conversion: does not exist in peer-type - if err := v1.Convert_string_To_Pointer_string(&in.Version, &out.Version, s); err != nil { - return err - } - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.LastRemediation requires manual conversion: does not exist in peer-type - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_KubeadmControlPlaneTemplate_To_v1beta2_KubeadmControlPlaneTemplate(in *KubeadmControlPlaneTemplate, out *v1beta2.KubeadmControlPlaneTemplate, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha4_KubeadmControlPlaneTemplateSpec_To_v1beta2_KubeadmControlPlaneTemplateSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_KubeadmControlPlaneTemplate_To_v1beta2_KubeadmControlPlaneTemplate is an autogenerated conversion function. -func Convert_v1alpha4_KubeadmControlPlaneTemplate_To_v1beta2_KubeadmControlPlaneTemplate(in *KubeadmControlPlaneTemplate, out *v1beta2.KubeadmControlPlaneTemplate, s conversion.Scope) error { - return autoConvert_v1alpha4_KubeadmControlPlaneTemplate_To_v1beta2_KubeadmControlPlaneTemplate(in, out, s) -} - -func autoConvert_v1beta2_KubeadmControlPlaneTemplate_To_v1alpha4_KubeadmControlPlaneTemplate(in *v1beta2.KubeadmControlPlaneTemplate, out *KubeadmControlPlaneTemplate, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_KubeadmControlPlaneTemplateSpec_To_v1alpha4_KubeadmControlPlaneTemplateSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_KubeadmControlPlaneTemplate_To_v1alpha4_KubeadmControlPlaneTemplate is an autogenerated conversion function. -func Convert_v1beta2_KubeadmControlPlaneTemplate_To_v1alpha4_KubeadmControlPlaneTemplate(in *v1beta2.KubeadmControlPlaneTemplate, out *KubeadmControlPlaneTemplate, s conversion.Scope) error { - return autoConvert_v1beta2_KubeadmControlPlaneTemplate_To_v1alpha4_KubeadmControlPlaneTemplate(in, out, s) -} - -func autoConvert_v1alpha4_KubeadmControlPlaneTemplateList_To_v1beta2_KubeadmControlPlaneTemplateList(in *KubeadmControlPlaneTemplateList, out *v1beta2.KubeadmControlPlaneTemplateList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.KubeadmControlPlaneTemplate, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_KubeadmControlPlaneTemplate_To_v1beta2_KubeadmControlPlaneTemplate(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha4_KubeadmControlPlaneTemplateList_To_v1beta2_KubeadmControlPlaneTemplateList is an autogenerated conversion function. -func Convert_v1alpha4_KubeadmControlPlaneTemplateList_To_v1beta2_KubeadmControlPlaneTemplateList(in *KubeadmControlPlaneTemplateList, out *v1beta2.KubeadmControlPlaneTemplateList, s conversion.Scope) error { - return autoConvert_v1alpha4_KubeadmControlPlaneTemplateList_To_v1beta2_KubeadmControlPlaneTemplateList(in, out, s) -} - -func autoConvert_v1beta2_KubeadmControlPlaneTemplateList_To_v1alpha4_KubeadmControlPlaneTemplateList(in *v1beta2.KubeadmControlPlaneTemplateList, out *KubeadmControlPlaneTemplateList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]KubeadmControlPlaneTemplate, len(*in)) - for i := range *in { - if err := Convert_v1beta2_KubeadmControlPlaneTemplate_To_v1alpha4_KubeadmControlPlaneTemplate(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_KubeadmControlPlaneTemplateList_To_v1alpha4_KubeadmControlPlaneTemplateList is an autogenerated conversion function. -func Convert_v1beta2_KubeadmControlPlaneTemplateList_To_v1alpha4_KubeadmControlPlaneTemplateList(in *v1beta2.KubeadmControlPlaneTemplateList, out *KubeadmControlPlaneTemplateList, s conversion.Scope) error { - return autoConvert_v1beta2_KubeadmControlPlaneTemplateList_To_v1alpha4_KubeadmControlPlaneTemplateList(in, out, s) -} - -func autoConvert_v1alpha4_KubeadmControlPlaneTemplateResource_To_v1beta2_KubeadmControlPlaneTemplateResource(in *KubeadmControlPlaneTemplateResource, out *v1beta2.KubeadmControlPlaneTemplateResource, s conversion.Scope) error { - if err := Convert_v1alpha4_KubeadmControlPlaneSpec_To_v1beta2_KubeadmControlPlaneTemplateResourceSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_KubeadmControlPlaneTemplateResource_To_v1beta2_KubeadmControlPlaneTemplateResource is an autogenerated conversion function. -func Convert_v1alpha4_KubeadmControlPlaneTemplateResource_To_v1beta2_KubeadmControlPlaneTemplateResource(in *KubeadmControlPlaneTemplateResource, out *v1beta2.KubeadmControlPlaneTemplateResource, s conversion.Scope) error { - return autoConvert_v1alpha4_KubeadmControlPlaneTemplateResource_To_v1beta2_KubeadmControlPlaneTemplateResource(in, out, s) -} - -func autoConvert_v1beta2_KubeadmControlPlaneTemplateResource_To_v1alpha4_KubeadmControlPlaneTemplateResource(in *v1beta2.KubeadmControlPlaneTemplateResource, out *KubeadmControlPlaneTemplateResource, s conversion.Scope) error { - // WARNING: in.ObjectMeta requires manual conversion: does not exist in peer-type - if err := Convert_v1beta2_KubeadmControlPlaneTemplateResourceSpec_To_v1alpha4_KubeadmControlPlaneSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha4_KubeadmControlPlaneTemplateSpec_To_v1beta2_KubeadmControlPlaneTemplateSpec(in *KubeadmControlPlaneTemplateSpec, out *v1beta2.KubeadmControlPlaneTemplateSpec, s conversion.Scope) error { - if err := Convert_v1alpha4_KubeadmControlPlaneTemplateResource_To_v1beta2_KubeadmControlPlaneTemplateResource(&in.Template, &out.Template, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_KubeadmControlPlaneTemplateSpec_To_v1beta2_KubeadmControlPlaneTemplateSpec is an autogenerated conversion function. -func Convert_v1alpha4_KubeadmControlPlaneTemplateSpec_To_v1beta2_KubeadmControlPlaneTemplateSpec(in *KubeadmControlPlaneTemplateSpec, out *v1beta2.KubeadmControlPlaneTemplateSpec, s conversion.Scope) error { - return autoConvert_v1alpha4_KubeadmControlPlaneTemplateSpec_To_v1beta2_KubeadmControlPlaneTemplateSpec(in, out, s) -} - -func autoConvert_v1beta2_KubeadmControlPlaneTemplateSpec_To_v1alpha4_KubeadmControlPlaneTemplateSpec(in *v1beta2.KubeadmControlPlaneTemplateSpec, out *KubeadmControlPlaneTemplateSpec, s conversion.Scope) error { - if err := Convert_v1beta2_KubeadmControlPlaneTemplateResource_To_v1alpha4_KubeadmControlPlaneTemplateResource(&in.Template, &out.Template, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_KubeadmControlPlaneTemplateSpec_To_v1alpha4_KubeadmControlPlaneTemplateSpec is an autogenerated conversion function. -func Convert_v1beta2_KubeadmControlPlaneTemplateSpec_To_v1alpha4_KubeadmControlPlaneTemplateSpec(in *v1beta2.KubeadmControlPlaneTemplateSpec, out *KubeadmControlPlaneTemplateSpec, s conversion.Scope) error { - return autoConvert_v1beta2_KubeadmControlPlaneTemplateSpec_To_v1alpha4_KubeadmControlPlaneTemplateSpec(in, out, s) -} diff --git a/internal/api/core/v1alpha3/cluster_types.go b/internal/api/core/v1alpha3/cluster_types.go index d9a2abd77f90..c2958c5cb88b 100644 --- a/internal/api/core/v1alpha3/cluster_types.go +++ b/internal/api/core/v1alpha3/cluster_types.go @@ -25,7 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/utils/ptr" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/internal/api/core/v1alpha3/conversion.go b/internal/api/core/v1alpha3/conversion.go deleted file mode 100644 index 8cda6f6a25f1..000000000000 --- a/internal/api/core/v1alpha3/conversion.go +++ /dev/null @@ -1,1130 +0,0 @@ -/* -Copyright 2019 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 v1alpha3 - -import ( - "errors" - "fmt" - "maps" - "reflect" - "slices" - "sort" - "unsafe" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" - clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - v1beta1conditions "sigs.k8s.io/cluster-api/util/conditions/deprecated/v1beta1" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -var apiVersionGetter = func(_ schema.GroupKind) (string, error) { - return "", errors.New("apiVersionGetter not set") -} - -func SetAPIVersionGetter(f func(gk schema.GroupKind) (string, error)) { - apiVersionGetter = f -} - -func (src *Cluster) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.Cluster) - - if err := Convert_v1alpha3_Cluster_To_v1beta2_Cluster(src, dst, nil); err != nil { - return err - } - - if src.Spec.InfrastructureRef != nil { - infraRef, err := convertToContractVersionedObjectReference(src.Spec.InfrastructureRef) - if err != nil { - return err - } - dst.Spec.InfrastructureRef = infraRef - } - - if src.Spec.ControlPlaneRef != nil { - controlPlaneRef, err := convertToContractVersionedObjectReference(src.Spec.ControlPlaneRef) - if err != nil { - return err - } - dst.Spec.ControlPlaneRef = controlPlaneRef - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha3 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha3), failureReason and failureMessage to the deprecated field. - if src.Status.Conditions != nil || src.Status.FailureReason != nil || src.Status.FailureMessage != nil { - dst.Status.Deprecated = &clusterv1.ClusterDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.ClusterV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - } - - // Given this is a bool and there is no timestamp associated with it, when this condition is set, its timestamp - // will be "now". See https://github.com/kubernetes-sigs/cluster-api/issues/3798#issuecomment-708619826 for more - // discussion. - if src.Status.ControlPlaneInitialized { - v1beta1conditions.MarkTrue(dst, clusterv1.ControlPlaneInitializedV1Beta1Condition) - } - - // Manually restore data. - restored := &clusterv1.Cluster{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - clusterv1.Convert_bool_To_Pointer_bool(src.Spec.Paused, ok, restored.Spec.Paused, &dst.Spec.Paused) - - initialization := clusterv1.ClusterInitializationStatus{} - restoredControlPlaneInitialized := restored.Status.Initialization.ControlPlaneInitialized - restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned - clusterv1.Convert_bool_To_Pointer_bool(src.Status.ControlPlaneReady, ok, restoredControlPlaneInitialized, &initialization.ControlPlaneInitialized) - clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) - if !reflect.DeepEqual(initialization, clusterv1.ClusterInitializationStatus{}) { - dst.Status.Initialization = initialization - } - - for i, fd := range dst.Status.FailureDomains { - srcFD, ok := src.Status.FailureDomains[fd.Name] - if !ok { - return fmt.Errorf("failure domain %q not found in source data", fd.Name) - } - var restoredFDControlPlane *bool - for _, restoredFD := range restored.Status.FailureDomains { - if restoredFD.Name == fd.Name { - restoredFDControlPlane = restoredFD.ControlPlane - break - } - } - clusterv1.Convert_bool_To_Pointer_bool(srcFD.ControlPlane, ok, restoredFDControlPlane, &fd.ControlPlane) - dst.Status.FailureDomains[i] = fd - } - - // Recover other values - if ok { - dst.Spec.AvailabilityGates = restored.Spec.AvailabilityGates - dst.Spec.Topology = restored.Spec.Topology - dst.Status.Conditions = restored.Status.Conditions - dst.Status.ControlPlane = restored.Status.ControlPlane - dst.Status.Workers = restored.Status.Workers - } - - return nil -} - -func (dst *Cluster) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.Cluster) - - if err := Convert_v1beta2_Cluster_To_v1alpha3_Cluster(src, dst, nil); err != nil { - return err - } - - if src.Spec.InfrastructureRef.IsDefined() { - infraRef, err := convertToObjectReference(src.Spec.InfrastructureRef, src.Namespace) - if err != nil { - return err - } - dst.Spec.InfrastructureRef = infraRef - } - - if src.Spec.ControlPlaneRef.IsDefined() { - controlPlaneRef, err := convertToObjectReference(src.Spec.ControlPlaneRef, src.Namespace) - if err != nil { - return err - } - dst.Spec.ControlPlaneRef = controlPlaneRef - } - - if dst.Spec.ClusterNetwork != nil && dst.Spec.ClusterNetwork.APIServerPort != nil && - *dst.Spec.ClusterNetwork.APIServerPort == 0 { - dst.Spec.ClusterNetwork.APIServerPort = nil - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha3). - dst.Status.Conditions = nil - - // Retrieve legacy conditions (v1alpha3), failureReason and failureMessage from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - } - } - - // Set the v1alpha3 boolean status field if the v1alpha4 condition was true - if v1beta1conditions.IsTrue(src, clusterv1.ControlPlaneInitializedV1Beta1Condition) { - dst.Status.ControlPlaneInitialized = true - } - - // Move initialization to old fields - dst.Status.ControlPlaneReady = ptr.Deref(src.Status.Initialization.ControlPlaneInitialized, false) - dst.Status.InfrastructureReady = ptr.Deref(src.Status.Initialization.InfrastructureProvisioned, false) - - // Preserve Hub data on down-conversion except for metadata - if err := utilconversion.MarshalData(src, dst); err != nil { - return err - } - - return nil -} - -func (src *Machine) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.Machine) - - if err := Convert_v1alpha3_Machine_To_v1beta2_Machine(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec, &dst.Spec); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha3 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha3), failureReason and failureMessage to the deprecated field. - if src.Status.Conditions != nil || src.Status.FailureReason != nil || src.Status.FailureMessage != nil { - dst.Status.Deprecated = &clusterv1.MachineDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.MachineV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - } - - // Manually restore data. - restored := &clusterv1.Machine{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - initialization := clusterv1.MachineInitializationStatus{} - restoredBootstrapDataSecretCreated := restored.Status.Initialization.BootstrapDataSecretCreated - restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned - clusterv1.Convert_bool_To_Pointer_bool(src.Status.BootstrapReady, ok, restoredBootstrapDataSecretCreated, &initialization.BootstrapDataSecretCreated) - clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) - if !reflect.DeepEqual(initialization, clusterv1.MachineInitializationStatus{}) { - dst.Status.Initialization = initialization - } - - // Recover other values - if ok { - dst.Spec.MinReadySeconds = restored.Spec.MinReadySeconds - dst.Spec.ReadinessGates = restored.Spec.ReadinessGates - dst.Spec.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.Deletion.NodeDeletionTimeoutSeconds - dst.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.Deletion.NodeVolumeDetachTimeoutSeconds - dst.Status.NodeInfo = restored.Status.NodeInfo - dst.Status.CertificatesExpiryDate = restored.Status.CertificatesExpiryDate - dst.Status.Deletion = restored.Status.Deletion - dst.Status.Conditions = restored.Status.Conditions - } - - return nil -} - -func (dst *Machine) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.Machine) - - if err := Convert_v1beta2_Machine_To_v1alpha3_Machine(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec, &dst.Spec, src.Namespace); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha3). - dst.Status.Conditions = nil - - // Retrieve legacy conditions (v1alpha3), failureReason and failureMessage from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - } - } - - // Move initialization to old fields - dst.Status.BootstrapReady = ptr.Deref(src.Status.Initialization.BootstrapDataSecretCreated, false) - dst.Status.InfrastructureReady = ptr.Deref(src.Status.Initialization.InfrastructureProvisioned, false) - - dropEmptyStringsMachineSpec(&dst.Spec) - - // Preserve Hub data on down-conversion except for metadata - if err := utilconversion.MarshalData(src, dst); err != nil { - return err - } - - return nil -} - -func (src *MachineSet) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachineSet) - - if err := Convert_v1alpha3_MachineSet_To_v1beta2_MachineSet(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha3 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move failureReason, failureMessage and replica counters to the deprecated field. - dst.Status.Deprecated = &clusterv1.MachineSetDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.MachineSetV1Beta1DeprecatedStatus{} - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - dst.Status.Deprecated.V1Beta1.ReadyReplicas = src.Status.ReadyReplicas - dst.Status.Deprecated.V1Beta1.AvailableReplicas = src.Status.AvailableReplicas - dst.Status.Deprecated.V1Beta1.FullyLabeledReplicas = src.Status.FullyLabeledReplicas - - if src.Spec.MinReadySeconds == 0 { - dst.Spec.Template.Spec.MinReadySeconds = nil - } else { - dst.Spec.Template.Spec.MinReadySeconds = &src.Spec.MinReadySeconds - } - - // Manually restore data. - restored := &clusterv1.MachineSet{} - if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok { - return err - } - dst.Spec.Template.Spec.ReadinessGates = restored.Spec.Template.Spec.ReadinessGates - dst.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds - dst.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds - if restored.Status.Deprecated != nil && restored.Status.Deprecated.V1Beta1 != nil { - dst.Status.Deprecated.V1Beta1.Conditions = restored.Status.Deprecated.V1Beta1.Conditions - } - dst.Status.Conditions = restored.Status.Conditions - dst.Status.AvailableReplicas = restored.Status.AvailableReplicas - dst.Status.ReadyReplicas = restored.Status.ReadyReplicas - dst.Status.UpToDateReplicas = restored.Status.UpToDateReplicas - dst.Spec.MachineNaming = restored.Spec.MachineNaming - return nil -} - -func (dst *MachineSet) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachineSet) - - if err := Convert_v1beta2_MachineSet_To_v1alpha3_MachineSet(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { - return err - } - - // Reset replica counters from autogenerated conversions - // NOTE: replica counters with a new semantic should not be automatically be converted into old replica counters. - dst.Status.AvailableReplicas = 0 - dst.Status.ReadyReplicas = 0 - - // Retrieve failureReason, failureMessage and replica counters from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - dst.Status.ReadyReplicas = src.Status.Deprecated.V1Beta1.ReadyReplicas - dst.Status.AvailableReplicas = src.Status.Deprecated.V1Beta1.AvailableReplicas - dst.Status.FullyLabeledReplicas = src.Status.Deprecated.V1Beta1.FullyLabeledReplicas - } - } - - dst.Spec.MinReadySeconds = ptr.Deref(src.Spec.Template.Spec.MinReadySeconds, 0) - - dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) - - // Preserve Hub data on down-conversion except for metadata - if err := utilconversion.MarshalData(src, dst); err != nil { - return err - } - return nil -} - -func (src *MachineDeployment) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachineDeployment) - - if err := Convert_v1alpha3_MachineDeployment_To_v1beta2_MachineDeployment(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha3 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move replica counters to the deprecated field. - dst.Status.Deprecated = &clusterv1.MachineDeploymentDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.MachineDeploymentV1Beta1DeprecatedStatus{} - dst.Status.Deprecated.V1Beta1.ReadyReplicas = src.Status.ReadyReplicas - dst.Status.Deprecated.V1Beta1.AvailableReplicas = src.Status.AvailableReplicas - dst.Status.Deprecated.V1Beta1.UpdatedReplicas = src.Status.UpdatedReplicas - dst.Status.Deprecated.V1Beta1.UnavailableReplicas = src.Status.UnavailableReplicas - - dst.Spec.Template.Spec.MinReadySeconds = src.Spec.MinReadySeconds - - // Manually restore data. - restored := &clusterv1.MachineDeployment{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - clusterv1.Convert_bool_To_Pointer_bool(src.Spec.Paused, ok, restored.Spec.Paused, &dst.Spec.Paused) - - // Recover other values - if ok { - dst.Spec.Deletion.Order = restored.Spec.Deletion.Order - dst.Spec.Remediation = restored.Spec.Remediation - dst.Spec.MachineNaming = restored.Spec.MachineNaming - dst.Spec.Template.Spec.ReadinessGates = restored.Spec.Template.Spec.ReadinessGates - dst.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds - dst.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds - dst.Spec.Rollout.After = restored.Spec.Rollout.After - if restored.Status.Deprecated != nil && restored.Status.Deprecated.V1Beta1 != nil { - dst.Status.Deprecated.V1Beta1.Conditions = restored.Status.Deprecated.V1Beta1.Conditions - } - dst.Status.Conditions = restored.Status.Conditions - dst.Status.AvailableReplicas = restored.Status.AvailableReplicas - dst.Status.ReadyReplicas = restored.Status.ReadyReplicas - dst.Status.UpToDateReplicas = restored.Status.UpToDateReplicas - } - - return nil -} - -func (dst *MachineDeployment) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachineDeployment) - - if err := Convert_v1beta2_MachineDeployment_To_v1alpha3_MachineDeployment(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { - return err - } - - // Reset replica counters from autogenerated conversions - // NOTE: replica counters with a new semantic should not be automatically be converted into old replica counters. - dst.Status.AvailableReplicas = 0 - dst.Status.ReadyReplicas = 0 - - // Retrieve failureReason, failureMessage and replica counters from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - dst.Status.ReadyReplicas = src.Status.Deprecated.V1Beta1.ReadyReplicas - dst.Status.AvailableReplicas = src.Status.Deprecated.V1Beta1.AvailableReplicas - dst.Status.UpdatedReplicas = src.Status.Deprecated.V1Beta1.UpdatedReplicas - dst.Status.UnavailableReplicas = src.Status.Deprecated.V1Beta1.UnavailableReplicas - } - } - - dst.Spec.MinReadySeconds = src.Spec.Template.Spec.MinReadySeconds - - dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) - - // Preserve Hub data on down-conversion except for metadata - if err := utilconversion.MarshalData(src, dst); err != nil { - return err - } - - return nil -} - -func (src *MachineHealthCheck) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachineHealthCheck) - - if err := Convert_v1alpha3_MachineHealthCheck_To_v1beta2_MachineHealthCheck(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha3 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha3) to the deprecated field. - if src.Status.Conditions != nil { - dst.Status.Deprecated = &clusterv1.MachineHealthCheckDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.MachineHealthCheckV1Beta1DeprecatedStatus{} - Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - - // Manually restore data. - restored := &clusterv1.MachineHealthCheck{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - clusterv1.Convert_int32_To_Pointer_int32(src.Status.ExpectedMachines, ok, restored.Status.ExpectedMachines, &dst.Status.ExpectedMachines) - clusterv1.Convert_int32_To_Pointer_int32(src.Status.CurrentHealthy, ok, restored.Status.CurrentHealthy, &dst.Status.CurrentHealthy) - clusterv1.Convert_int32_To_Pointer_int32(src.Status.RemediationsAllowed, ok, restored.Status.RemediationsAllowed, &dst.Status.RemediationsAllowed) - - if !ok { - return nil - } - - if restored.Spec.Remediation.TriggerIf.UnhealthyInRange != "" { - dst.Spec.Remediation.TriggerIf.UnhealthyInRange = restored.Spec.Remediation.TriggerIf.UnhealthyInRange - } - dst.Status.Conditions = restored.Status.Conditions - - return nil -} - -func (dst *MachineHealthCheck) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachineHealthCheck) - - if err := Convert_v1beta2_MachineHealthCheck_To_v1alpha3_MachineHealthCheck(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha3). - dst.Status.Conditions = nil - - // Retrieve legacy conditions (v1alpha3) from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - } - } - - if dst.Spec.RemediationTemplate != nil { - dst.Spec.RemediationTemplate.Namespace = src.Namespace - } - - // Preserve Hub data on down-conversion except for metadata - if err := utilconversion.MarshalData(src, dst); err != nil { - return err - } - - return nil -} - -func (src *MachinePool) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachinePool) - - if err := Convert_v1alpha3_MachinePool_To_v1beta2_MachinePool(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha3), failureReason, failureMessage and replica counters to the deprecated field. - dst.Status.Deprecated = &clusterv1.MachinePoolDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.MachinePoolV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - dst.Status.Deprecated.V1Beta1.ReadyReplicas = src.Status.ReadyReplicas - dst.Status.Deprecated.V1Beta1.AvailableReplicas = src.Status.AvailableReplicas - dst.Status.Deprecated.V1Beta1.UnavailableReplicas = src.Status.UnavailableReplicas - dst.Spec.Template.Spec.MinReadySeconds = src.Spec.MinReadySeconds - - // Manually restore data. - restored := &clusterv1.MachinePool{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - initialization := clusterv1.MachinePoolInitializationStatus{} - restoredBootstrapDataSecretCreated := restored.Status.Initialization.BootstrapDataSecretCreated - restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned - clusterv1.Convert_bool_To_Pointer_bool(src.Status.BootstrapReady, ok, restoredBootstrapDataSecretCreated, &initialization.BootstrapDataSecretCreated) - clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) - if !reflect.DeepEqual(initialization, clusterv1.MachinePoolInitializationStatus{}) { - dst.Status.Initialization = initialization - } - - // Recover other values - if ok { - dst.Spec.Template.Spec.ReadinessGates = restored.Spec.Template.Spec.ReadinessGates - dst.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds - dst.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds - dst.Status.Conditions = restored.Status.Conditions - dst.Status.AvailableReplicas = restored.Status.AvailableReplicas - dst.Status.ReadyReplicas = restored.Status.ReadyReplicas - dst.Status.UpToDateReplicas = restored.Status.UpToDateReplicas - } - - return nil -} - -func (dst *MachinePool) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachinePool) - - if err := Convert_v1beta2_MachinePool_To_v1alpha3_MachinePool(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha3). - dst.Status.Conditions = nil - - // Reset replica counters from autogenerated conversions - // NOTE: replica counters with a new semantic should not be automatically be converted into old replica counters. - dst.Status.ReadyReplicas = 0 - dst.Status.AvailableReplicas = 0 - - // Retrieve legacy conditions (v1alpha3), failureReason, failureMessage and replica counters from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - dst.Status.ReadyReplicas = src.Status.Deprecated.V1Beta1.ReadyReplicas - dst.Status.AvailableReplicas = src.Status.Deprecated.V1Beta1.AvailableReplicas - dst.Status.UnavailableReplicas = src.Status.Deprecated.V1Beta1.UnavailableReplicas - } - } - - // Move initialization to old fields - dst.Status.BootstrapReady = ptr.Deref(src.Status.Initialization.BootstrapDataSecretCreated, false) - dst.Status.InfrastructureReady = ptr.Deref(src.Status.Initialization.InfrastructureProvisioned, false) - - dst.Spec.MinReadySeconds = src.Spec.Template.Spec.MinReadySeconds - - dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) - - return utilconversion.MarshalData(src, dst) -} - -func Convert_v1beta2_MachineSetStatus_To_v1alpha3_MachineSetStatus(in *clusterv1.MachineSetStatus, out *MachineSetStatus, _ apimachineryconversion.Scope) error { - // Status.Conditions was introduced in v1alpha4, thus requiring a custom conversion function; the values is going to be preserved in an annotation thus allowing roundtrip without loosing informations - // V1Beta2 was added in v1beta1. - return autoConvert_v1beta2_MachineSetStatus_To_v1alpha3_MachineSetStatus(in, out, nil) -} - -func Convert_v1alpha3_ClusterSpec_To_v1beta2_ClusterSpec(in *ClusterSpec, out *clusterv1.ClusterSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_ClusterSpec_To_v1beta2_ClusterSpec(in, out, s); err != nil { - return err - } - if in.ClusterNetwork != nil { - if err := Convert_v1alpha3_ClusterNetwork_To_v1beta2_ClusterNetwork(in.ClusterNetwork, &out.ClusterNetwork, s); err != nil { - return err - } - } - - return nil -} - -func Convert_v1beta2_ClusterSpec_To_v1alpha3_ClusterSpec(in *clusterv1.ClusterSpec, out *ClusterSpec, s apimachineryconversion.Scope) error { - // NOTE: custom conversion func is required because spec.Topology does not exist in v1alpha3 - // AvailabilityGates was added in v1alpha3 - if err := autoConvert_v1beta2_ClusterSpec_To_v1alpha3_ClusterSpec(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.ClusterNetwork, clusterv1.ClusterNetwork{}) { - out.ClusterNetwork = &ClusterNetwork{} - if err := Convert_v1beta2_ClusterNetwork_To_v1alpha3_ClusterNetwork(&in.ClusterNetwork, out.ClusterNetwork, s); err != nil { - return err - } - } - - return nil -} - -func Convert_v1alpha3_ClusterNetwork_To_v1beta2_ClusterNetwork(in *ClusterNetwork, out *clusterv1.ClusterNetwork, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_ClusterNetwork_To_v1beta2_ClusterNetwork(in, out, s); err != nil { - return err - } - if in.Services != nil { - if err := autoConvert_v1alpha3_NetworkRanges_To_v1beta2_NetworkRanges(in.Services, &out.Services, s); err != nil { - return err - } - } - if in.Pods != nil { - if err := autoConvert_v1alpha3_NetworkRanges_To_v1beta2_NetworkRanges(in.Pods, &out.Pods, s); err != nil { - return err - } - } - - return nil -} - -func Convert_v1beta2_ClusterNetwork_To_v1alpha3_ClusterNetwork(in *clusterv1.ClusterNetwork, out *ClusterNetwork, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_ClusterNetwork_To_v1alpha3_ClusterNetwork(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.Services, clusterv1.NetworkRanges{}) { - out.Services = &NetworkRanges{} - if err := autoConvert_v1beta2_NetworkRanges_To_v1alpha3_NetworkRanges(&in.Services, out.Services, s); err != nil { - return err - } - } - - if !reflect.DeepEqual(in.Pods, clusterv1.NetworkRanges{}) { - out.Pods = &NetworkRanges{} - if err := autoConvert_v1beta2_NetworkRanges_To_v1alpha3_NetworkRanges(&in.Pods, out.Pods, s); err != nil { - return err - } - } - - return nil -} - -func Convert_v1beta2_ClusterStatus_To_v1alpha3_ClusterStatus(in *clusterv1.ClusterStatus, out *ClusterStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1beta1. - if err := autoConvert_v1beta2_ClusterStatus_To_v1alpha3_ClusterStatus(in, out, s); err != nil { - return err - } - - // Move FailureDomains - if in.FailureDomains != nil { - out.FailureDomains = FailureDomains{} - for _, fd := range in.FailureDomains { - out.FailureDomains[fd.Name] = FailureDomainSpec{ - ControlPlane: ptr.Deref(fd.ControlPlane, false), - Attributes: fd.Attributes, - } - } - } - - return nil -} - -func Convert_v1alpha3_MachineRollingUpdateDeployment_To_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate(in *MachineRollingUpdateDeployment, out *clusterv1.MachineDeploymentRolloutStrategyRollingUpdate, _ apimachineryconversion.Scope) error { - out.MaxUnavailable = in.MaxUnavailable - out.MaxSurge = in.MaxSurge - return nil -} - -func Convert_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate_To_v1alpha3_MachineRollingUpdateDeployment(in *clusterv1.MachineDeploymentRolloutStrategyRollingUpdate, out *MachineRollingUpdateDeployment, _ apimachineryconversion.Scope) error { - out.MaxUnavailable = in.MaxUnavailable - out.MaxSurge = in.MaxSurge - return nil -} - -func Convert_v1alpha3_MachineHealthCheckSpec_To_v1beta2_MachineHealthCheckSpec(in *MachineHealthCheckSpec, out *clusterv1.MachineHealthCheckSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_MachineHealthCheckSpec_To_v1beta2_MachineHealthCheckSpec(in, out, s); err != nil { - return err - } - - for _, c := range in.UnhealthyConditions { - out.Checks.UnhealthyNodeConditions = append(out.Checks.UnhealthyNodeConditions, clusterv1.UnhealthyNodeCondition{ - Type: c.Type, - Status: c.Status, - TimeoutSeconds: clusterv1.ConvertToSeconds(&c.Timeout), - }) - } - out.Checks.NodeStartupTimeoutSeconds = clusterv1.ConvertToSeconds(in.NodeStartupTimeout) - out.Remediation.TriggerIf.UnhealthyLessThanOrEqualTo = in.MaxUnhealthy - if in.RemediationTemplate != nil { - if err := clusterv1beta1.Convert_v1_ObjectReference_To_v1beta2_MachineHealthCheckRemediationTemplateReference(in.RemediationTemplate, &out.Remediation.TemplateRef, s); err != nil { - return err - } - } - - return nil -} - -func Convert_v1beta2_MachineHealthCheckSpec_To_v1alpha3_MachineHealthCheckSpec(in *clusterv1.MachineHealthCheckSpec, out *MachineHealthCheckSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_MachineHealthCheckSpec_To_v1alpha3_MachineHealthCheckSpec(in, out, s); err != nil { - return err - } - - for _, c := range in.Checks.UnhealthyNodeConditions { - out.UnhealthyConditions = append(out.UnhealthyConditions, UnhealthyCondition{ - Type: c.Type, - Status: c.Status, - Timeout: ptr.Deref(clusterv1.ConvertFromSeconds(c.TimeoutSeconds), metav1.Duration{}), - }) - } - out.NodeStartupTimeout = clusterv1.ConvertFromSeconds(in.Checks.NodeStartupTimeoutSeconds) - out.MaxUnhealthy = in.Remediation.TriggerIf.UnhealthyLessThanOrEqualTo - if in.Remediation.TemplateRef.IsDefined() { - out.RemediationTemplate = &corev1.ObjectReference{} - if err := clusterv1beta1.Convert_v1beta2_MachineHealthCheckRemediationTemplateReference_To_v1_ObjectReference(&in.Remediation.TemplateRef, out.RemediationTemplate, s); err != nil { - return err - } - } - - return nil -} - -func Convert_v1beta2_MachineHealthCheckStatus_To_v1alpha3_MachineHealthCheckStatus(in *clusterv1.MachineHealthCheckStatus, out *MachineHealthCheckStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1beta1. - return autoConvert_v1beta2_MachineHealthCheckStatus_To_v1alpha3_MachineHealthCheckStatus(in, out, s) -} - -func Convert_v1alpha3_ClusterStatus_To_v1beta2_ClusterStatus(in *ClusterStatus, out *clusterv1.ClusterStatus, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_ClusterStatus_To_v1beta2_ClusterStatus(in, out, s); err != nil { - return err - } - - // Move FailureDomains - if in.FailureDomains != nil { - out.FailureDomains = []clusterv1.FailureDomain{} - domainNames := slices.Collect(maps.Keys(in.FailureDomains)) - sort.Strings(domainNames) - for _, name := range domainNames { - fd := in.FailureDomains[name] - out.FailureDomains = append(out.FailureDomains, clusterv1.FailureDomain{ - Name: name, - ControlPlane: nil, // Note: this field will be computed in ConvertTo - Attributes: fd.Attributes, - }) - } - } - - return nil -} - -func Convert_v1alpha3_ObjectMeta_To_v1beta2_ObjectMeta(in *ObjectMeta, out *clusterv1.ObjectMeta, s apimachineryconversion.Scope) error { - return autoConvert_v1alpha3_ObjectMeta_To_v1beta2_ObjectMeta(in, out, s) -} - -func Convert_v1beta2_MachineStatus_To_v1alpha3_MachineStatus(in *clusterv1.MachineStatus, out *MachineStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1beta1. - if err := autoConvert_v1beta2_MachineStatus_To_v1alpha3_MachineStatus(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.LastUpdated, metav1.Time{}) { - out.LastUpdated = ptr.To(in.LastUpdated) - } - if in.NodeRef.IsDefined() { - out.NodeRef = &corev1.ObjectReference{ - Name: in.NodeRef.Name, - APIVersion: corev1.SchemeGroupVersion.String(), - Kind: "Node", - } - } - return nil -} - -func Convert_v1beta2_MachineSpec_To_v1alpha3_MachineSpec(in *clusterv1.MachineSpec, out *MachineSpec, s apimachineryconversion.Scope) error { - // spec.nodeDeletionTimeout was added in v1beta1. - // ReadinessGates was added in v1beta1. - if err := autoConvert_v1beta2_MachineSpec_To_v1alpha3_MachineSpec(in, out, s); err != nil { - return err - } - out.NodeDrainTimeout = clusterv1.ConvertFromSeconds(in.Deletion.NodeDrainTimeoutSeconds) - return nil -} - -func Convert_v1beta2_MachineDeploymentSpec_To_v1alpha3_MachineDeploymentSpec(in *clusterv1.MachineDeploymentSpec, out *MachineDeploymentSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_MachineDeploymentSpec_To_v1alpha3_MachineDeploymentSpec(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.Rollout.Strategy, clusterv1.MachineDeploymentRolloutStrategy{}) { - out.Strategy = &MachineDeploymentStrategy{} - out.Strategy.Type = MachineDeploymentStrategyType(in.Rollout.Strategy.Type) - if !reflect.DeepEqual(in.Rollout.Strategy.RollingUpdate, clusterv1.MachineDeploymentRolloutStrategyRollingUpdate{}) { - out.Strategy.RollingUpdate = &MachineRollingUpdateDeployment{} - if err := Convert_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate_To_v1alpha3_MachineRollingUpdateDeployment(&in.Rollout.Strategy.RollingUpdate, out.Strategy.RollingUpdate, s); err != nil { - return err - } - } - } - - return nil -} - -func Convert_v1beta2_MachineDeploymentStatus_To_v1alpha3_MachineDeploymentStatus(in *clusterv1.MachineDeploymentStatus, out *MachineDeploymentStatus, s apimachineryconversion.Scope) error { - // Status.Conditions was introduced in v1alpha4, thus requiring a custom conversion function; the values is going to be preserved in an annotation thus allowing roundtrip without loosing informations - // V1Beta2 was added in v1beta1. - return autoConvert_v1beta2_MachineDeploymentStatus_To_v1alpha3_MachineDeploymentStatus(in, out, s) -} - -func Convert_v1alpha3_MachineStatus_To_v1beta2_MachineStatus(in *MachineStatus, out *clusterv1.MachineStatus, s apimachineryconversion.Scope) error { - // Status.version has been removed in v1beta1, thus requiring custom conversion function. the information will be dropped. - if err := autoConvert_v1alpha3_MachineStatus_To_v1beta2_MachineStatus(in, out, s); err != nil { - return err - } - if in.LastUpdated != nil && !reflect.DeepEqual(in.LastUpdated, &metav1.Time{}) { - out.LastUpdated = *in.LastUpdated - } - if in.NodeRef != nil && !reflect.DeepEqual(in.NodeRef, &corev1.ObjectReference{}) { - out.NodeRef.Name = in.NodeRef.Name - } - return nil -} - -func Convert_v1beta2_MachineSetSpec_To_v1alpha3_MachineSetSpec(in *clusterv1.MachineSetSpec, out *MachineSetSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_MachineSetSpec_To_v1alpha3_MachineSetSpec(in, out, s); err != nil { - return err - } - - out.DeletePolicy = string(in.Deletion.Order) - return nil -} - -func Convert_v1alpha3_MachineDeploymentSpec_To_v1beta2_MachineDeploymentSpec(in *MachineDeploymentSpec, out *clusterv1.MachineDeploymentSpec, s apimachineryconversion.Scope) error { - // NOTE: v1beta2 MachineDeploymentSpec does not have ProgressDeadlineSeconds anymore. But it's fine to just lose this field it was never used. - if err := autoConvert_v1alpha3_MachineDeploymentSpec_To_v1beta2_MachineDeploymentSpec(in, out, s); err != nil { - return err - } - if in.Strategy != nil { - out.Rollout.Strategy.Type = clusterv1.MachineDeploymentRolloutStrategyType(in.Strategy.Type) - if in.Strategy.RollingUpdate != nil { - if err := Convert_v1alpha3_MachineRollingUpdateDeployment_To_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate(in.Strategy.RollingUpdate, &out.Rollout.Strategy.RollingUpdate, s); err != nil { - return err - } - } - } - - return nil -} - -func Convert_v1alpha3_MachineDeploymentStatus_To_v1beta2_MachineDeploymentStatus(in *MachineDeploymentStatus, out *clusterv1.MachineDeploymentStatus, s apimachineryconversion.Scope) error { - return autoConvert_v1alpha3_MachineDeploymentStatus_To_v1beta2_MachineDeploymentStatus(in, out, s) -} - -func Convert_v1alpha3_MachineSetStatus_To_v1beta2_MachineSetStatus(in *MachineSetStatus, out *clusterv1.MachineSetStatus, s apimachineryconversion.Scope) error { - return autoConvert_v1alpha3_MachineSetStatus_To_v1beta2_MachineSetStatus(in, out, s) -} - -func Convert_v1_Condition_To_v1alpha3_Condition(_ *metav1.Condition, _ *Condition, _ apimachineryconversion.Scope) error { - // NOTE: v1beta2 conditions should not be automatically converted into legacy (v1alpha3) conditions. - return nil -} - -func Convert_v1alpha3_Condition_To_v1_Condition(_ *Condition, _ *metav1.Condition, _ apimachineryconversion.Scope) error { - // NOTE: legacy (v1alpha3) conditions should not be automatically converted into v1beta2 conditions. - return nil -} - -func Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions(in *clusterv1.Conditions, out *Conditions) { - *out = make(Conditions, len(*in)) - for i := range *in { - (*out)[i] = *(*Condition)(unsafe.Pointer(&(*in)[i])) - } -} - -func Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(in *Conditions, out *clusterv1.Conditions) { - *out = make(clusterv1.Conditions, len(*in)) - for i := range *in { - (*out)[i] = *(*clusterv1.Condition)(unsafe.Pointer(&(*in)[i])) - } -} - -func Convert_v1alpha3_MachineSetSpec_To_v1beta2_MachineSetSpec(in *MachineSetSpec, out *clusterv1.MachineSetSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_MachineSetSpec_To_v1beta2_MachineSetSpec(in, out, s); err != nil { - return err - } - - out.Deletion.Order = clusterv1.MachineSetDeletionOrder(in.DeletePolicy) - return nil -} - -// Convert_v1alpha3_MachinePoolSpec_To_v1beta2_MachinePoolSpec is an autogenerated conversion function. -func Convert_v1alpha3_MachinePoolSpec_To_v1beta2_MachinePoolSpec(in *MachinePoolSpec, out *clusterv1.MachinePoolSpec, s apimachineryconversion.Scope) error { - return autoConvert_v1alpha3_MachinePoolSpec_To_v1beta2_MachinePoolSpec(in, out, s) -} - -func Convert_v1alpha3_MachinePool_To_v1beta2_MachinePool(in *MachinePool, out *clusterv1.MachinePool, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_MachinePool_To_v1beta2_MachinePool(in, out, s); err != nil { - return err - } - - // Replace v1alpha3 finalizer to allow old MachinePools to get deleted. - if controllerutil.ContainsFinalizer(out, MachinePoolFinalizer) { - controllerutil.RemoveFinalizer(out, MachinePoolFinalizer) - controllerutil.AddFinalizer(out, clusterv1.MachinePoolFinalizer) - } - - return nil -} - -func Convert_v1beta2_MachinePool_To_v1alpha3_MachinePool(in *clusterv1.MachinePool, out *MachinePool, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_MachinePool_To_v1alpha3_MachinePool(in, out, s); err != nil { - return err - } - - // Replace v1beta1 finalizer to allow old MachinePools to get deleted. - if controllerutil.ContainsFinalizer(out, clusterv1.MachinePoolFinalizer) { - controllerutil.RemoveFinalizer(out, clusterv1.MachinePoolFinalizer) - controllerutil.AddFinalizer(out, MachinePoolFinalizer) - } - - return nil -} - -func Convert_v1beta2_MachinePoolStatus_To_v1alpha3_MachinePoolStatus(in *clusterv1.MachinePoolStatus, out *MachinePoolStatus, s apimachineryconversion.Scope) error { - return autoConvert_v1beta2_MachinePoolStatus_To_v1alpha3_MachinePoolStatus(in, out, s) -} - -func Convert_v1alpha3_MachinePoolStatus_To_v1beta2_MachinePoolStatus(in *MachinePoolStatus, out *clusterv1.MachinePoolStatus, s apimachineryconversion.Scope) error { - return autoConvert_v1alpha3_MachinePoolStatus_To_v1beta2_MachinePoolStatus(in, out, s) -} - -func Convert_v1alpha3_MachineSpec_To_v1beta2_MachineSpec(in *MachineSpec, out *clusterv1.MachineSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_MachineSpec_To_v1beta2_MachineSpec(in, out, s); err != nil { - return err - } - out.Deletion.NodeDrainTimeoutSeconds = clusterv1.ConvertToSeconds(in.NodeDrainTimeout) - return nil -} - -func Convert_v1alpha3_Bootstrap_To_v1beta2_Bootstrap(in *Bootstrap, out *clusterv1.Bootstrap, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha3_Bootstrap_To_v1beta2_Bootstrap(in, out, s); err != nil { - return err - } - if in.ConfigRef != nil { - if err := clusterv1beta1.Convert_v1_ObjectReference_To_v1beta2_ContractVersionedObjectReference(in.ConfigRef, &out.ConfigRef, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_Bootstrap_To_v1alpha3_Bootstrap(in *clusterv1.Bootstrap, out *Bootstrap, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_Bootstrap_To_v1alpha3_Bootstrap(in, out, s); err != nil { - return err - } - if in.ConfigRef.IsDefined() { - out.ConfigRef = &corev1.ObjectReference{} - if err := clusterv1beta1.Convert_v1beta2_ContractVersionedObjectReference_To_v1_ObjectReference(&in.ConfigRef, out.ConfigRef, s); err != nil { - return err - } - } - return nil -} - -func convertMachineSpecToContractVersionedObjectReference(src *MachineSpec, dst *clusterv1.MachineSpec) error { - infraRef, err := convertToContractVersionedObjectReference(&src.InfrastructureRef) - if err != nil { - return err - } - dst.InfrastructureRef = infraRef - - if src.Bootstrap.ConfigRef != nil { - bootstrapRef, err := convertToContractVersionedObjectReference(src.Bootstrap.ConfigRef) - if err != nil { - return err - } - dst.Bootstrap.ConfigRef = bootstrapRef - } - - return nil -} - -func convertMachineSpecToObjectReference(src *clusterv1.MachineSpec, dst *MachineSpec, namespace string) error { - if src.InfrastructureRef.IsDefined() { - infraRef, err := convertToObjectReference(src.InfrastructureRef, namespace) - if err != nil { - return err - } - dst.InfrastructureRef = *infraRef - } - - if src.Bootstrap.ConfigRef.IsDefined() { - bootstrapRef, err := convertToObjectReference(src.Bootstrap.ConfigRef, namespace) - if err != nil { - return err - } - dst.Bootstrap.ConfigRef = bootstrapRef - } - - return nil -} - -func convertToContractVersionedObjectReference(ref *corev1.ObjectReference) (clusterv1.ContractVersionedObjectReference, error) { - var apiGroup string - if ref.APIVersion != "" { - gv, err := schema.ParseGroupVersion(ref.APIVersion) - if err != nil { - return clusterv1.ContractVersionedObjectReference{}, fmt.Errorf("failed to convert object: failed to parse apiVersion: %v", err) - } - apiGroup = gv.Group - } - return clusterv1.ContractVersionedObjectReference{ - APIGroup: apiGroup, - Kind: ref.Kind, - Name: ref.Name, - }, nil -} - -func convertToObjectReference(ref clusterv1.ContractVersionedObjectReference, namespace string) (*corev1.ObjectReference, error) { - apiVersion, err := apiVersionGetter(schema.GroupKind{ - Group: ref.APIGroup, - Kind: ref.Kind, - }) - if err != nil { - return nil, fmt.Errorf("failed to convert object: %v", err) - } - return &corev1.ObjectReference{ - APIVersion: apiVersion, - Kind: ref.Kind, - Namespace: namespace, - Name: ref.Name, - }, nil -} - -func dropEmptyStringsMachineSpec(spec *MachineSpec) { - dropEmptyString(&spec.Version) - dropEmptyString(&spec.ProviderID) - dropEmptyString(&spec.FailureDomain) -} - -func dropEmptyString(s **string) { - if *s != nil && **s == "" { - *s = nil - } -} diff --git a/internal/api/core/v1alpha3/machine_types.go b/internal/api/core/v1alpha3/machine_types.go index 4cf78771f783..415a8810c402 100644 --- a/internal/api/core/v1alpha3/machine_types.go +++ b/internal/api/core/v1alpha3/machine_types.go @@ -20,7 +20,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/internal/api/core/v1alpha3/machinepool_types.go b/internal/api/core/v1alpha3/machinepool_types.go index 35a156000505..908feaf1e3d2 100644 --- a/internal/api/core/v1alpha3/machinepool_types.go +++ b/internal/api/core/v1alpha3/machinepool_types.go @@ -20,7 +20,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/internal/api/core/v1alpha3/machineset_types.go b/internal/api/core/v1alpha3/machineset_types.go index 0d352a2b4036..6d8278985561 100644 --- a/internal/api/core/v1alpha3/machineset_types.go +++ b/internal/api/core/v1alpha3/machineset_types.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/validation/field" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) // ANCHOR: MachineSetSpec diff --git a/internal/api/core/v1alpha3/zz_generated.conversion.go b/internal/api/core/v1alpha3/zz_generated.conversion.go deleted file mode 100644 index 0c9c762839fe..000000000000 --- a/internal/api/core/v1alpha3/zz_generated.conversion.go +++ /dev/null @@ -1,1460 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -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 conversion-gen. DO NOT EDIT. - -package v1alpha3 - -import ( - unsafe "unsafe" - - corev1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - v1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" - v1beta2 "sigs.k8s.io/cluster-api/api/core/v1beta2" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*APIEndpoint)(nil), (*v1beta2.APIEndpoint)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_APIEndpoint_To_v1beta2_APIEndpoint(a.(*APIEndpoint), b.(*v1beta2.APIEndpoint), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.APIEndpoint)(nil), (*APIEndpoint)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_APIEndpoint_To_v1alpha3_APIEndpoint(a.(*v1beta2.APIEndpoint), b.(*APIEndpoint), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*Cluster)(nil), (*v1beta2.Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_Cluster_To_v1beta2_Cluster(a.(*Cluster), b.(*v1beta2.Cluster), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.Cluster)(nil), (*Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_Cluster_To_v1alpha3_Cluster(a.(*v1beta2.Cluster), b.(*Cluster), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterList)(nil), (*v1beta2.ClusterList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ClusterList_To_v1beta2_ClusterList(a.(*ClusterList), b.(*v1beta2.ClusterList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterList)(nil), (*ClusterList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterList_To_v1alpha3_ClusterList(a.(*v1beta2.ClusterList), b.(*ClusterList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*Condition)(nil), (*v1beta2.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_Condition_To_v1beta2_Condition(a.(*Condition), b.(*v1beta2.Condition), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.Condition)(nil), (*Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_Condition_To_v1alpha3_Condition(a.(*v1beta2.Condition), b.(*Condition), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*Machine)(nil), (*v1beta2.Machine)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_Machine_To_v1beta2_Machine(a.(*Machine), b.(*v1beta2.Machine), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.Machine)(nil), (*Machine)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_Machine_To_v1alpha3_Machine(a.(*v1beta2.Machine), b.(*Machine), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineAddress)(nil), (*v1beta2.MachineAddress)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineAddress_To_v1beta2_MachineAddress(a.(*MachineAddress), b.(*v1beta2.MachineAddress), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineAddress)(nil), (*MachineAddress)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineAddress_To_v1alpha3_MachineAddress(a.(*v1beta2.MachineAddress), b.(*MachineAddress), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineDeployment)(nil), (*v1beta2.MachineDeployment)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineDeployment_To_v1beta2_MachineDeployment(a.(*MachineDeployment), b.(*v1beta2.MachineDeployment), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineDeployment)(nil), (*MachineDeployment)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeployment_To_v1alpha3_MachineDeployment(a.(*v1beta2.MachineDeployment), b.(*MachineDeployment), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineDeploymentList)(nil), (*v1beta2.MachineDeploymentList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineDeploymentList_To_v1beta2_MachineDeploymentList(a.(*MachineDeploymentList), b.(*v1beta2.MachineDeploymentList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineDeploymentList)(nil), (*MachineDeploymentList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentList_To_v1alpha3_MachineDeploymentList(a.(*v1beta2.MachineDeploymentList), b.(*MachineDeploymentList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineHealthCheck)(nil), (*v1beta2.MachineHealthCheck)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineHealthCheck_To_v1beta2_MachineHealthCheck(a.(*MachineHealthCheck), b.(*v1beta2.MachineHealthCheck), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineHealthCheck)(nil), (*MachineHealthCheck)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineHealthCheck_To_v1alpha3_MachineHealthCheck(a.(*v1beta2.MachineHealthCheck), b.(*MachineHealthCheck), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineHealthCheckList)(nil), (*v1beta2.MachineHealthCheckList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineHealthCheckList_To_v1beta2_MachineHealthCheckList(a.(*MachineHealthCheckList), b.(*v1beta2.MachineHealthCheckList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineHealthCheckList)(nil), (*MachineHealthCheckList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineHealthCheckList_To_v1alpha3_MachineHealthCheckList(a.(*v1beta2.MachineHealthCheckList), b.(*MachineHealthCheckList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineHealthCheckStatus)(nil), (*v1beta2.MachineHealthCheckStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus(a.(*MachineHealthCheckStatus), b.(*v1beta2.MachineHealthCheckStatus), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineList)(nil), (*v1beta2.MachineList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineList_To_v1beta2_MachineList(a.(*MachineList), b.(*v1beta2.MachineList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineList)(nil), (*MachineList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineList_To_v1alpha3_MachineList(a.(*v1beta2.MachineList), b.(*MachineList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachinePoolList)(nil), (*v1beta2.MachinePoolList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachinePoolList_To_v1beta2_MachinePoolList(a.(*MachinePoolList), b.(*v1beta2.MachinePoolList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachinePoolList)(nil), (*MachinePoolList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachinePoolList_To_v1alpha3_MachinePoolList(a.(*v1beta2.MachinePoolList), b.(*MachinePoolList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachinePoolSpec)(nil), (*MachinePoolSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachinePoolSpec_To_v1alpha3_MachinePoolSpec(a.(*v1beta2.MachinePoolSpec), b.(*MachinePoolSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineSet)(nil), (*v1beta2.MachineSet)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineSet_To_v1beta2_MachineSet(a.(*MachineSet), b.(*v1beta2.MachineSet), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineSet)(nil), (*MachineSet)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineSet_To_v1alpha3_MachineSet(a.(*v1beta2.MachineSet), b.(*MachineSet), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineSetList)(nil), (*v1beta2.MachineSetList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineSetList_To_v1beta2_MachineSetList(a.(*MachineSetList), b.(*v1beta2.MachineSetList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineSetList)(nil), (*MachineSetList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineSetList_To_v1alpha3_MachineSetList(a.(*v1beta2.MachineSetList), b.(*MachineSetList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineTemplateSpec)(nil), (*v1beta2.MachineTemplateSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(a.(*MachineTemplateSpec), b.(*v1beta2.MachineTemplateSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineTemplateSpec)(nil), (*MachineTemplateSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineTemplateSpec_To_v1alpha3_MachineTemplateSpec(a.(*v1beta2.MachineTemplateSpec), b.(*MachineTemplateSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*NetworkRanges)(nil), (*v1beta2.NetworkRanges)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_NetworkRanges_To_v1beta2_NetworkRanges(a.(*NetworkRanges), b.(*v1beta2.NetworkRanges), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.NetworkRanges)(nil), (*NetworkRanges)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_NetworkRanges_To_v1alpha3_NetworkRanges(a.(*v1beta2.NetworkRanges), b.(*NetworkRanges), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ObjectMeta)(nil), (*ObjectMeta)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ObjectMeta_To_v1alpha3_ObjectMeta(a.(*v1beta2.ObjectMeta), b.(*ObjectMeta), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1.Condition)(nil), (*Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_Condition_To_v1alpha3_Condition(a.(*v1.Condition), b.(*Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*Bootstrap)(nil), (*v1beta2.Bootstrap)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_Bootstrap_To_v1beta2_Bootstrap(a.(*Bootstrap), b.(*v1beta2.Bootstrap), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ClusterNetwork)(nil), (*v1beta2.ClusterNetwork)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ClusterNetwork_To_v1beta2_ClusterNetwork(a.(*ClusterNetwork), b.(*v1beta2.ClusterNetwork), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ClusterSpec)(nil), (*v1beta2.ClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ClusterSpec_To_v1beta2_ClusterSpec(a.(*ClusterSpec), b.(*v1beta2.ClusterSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ClusterStatus)(nil), (*v1beta2.ClusterStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ClusterStatus_To_v1beta2_ClusterStatus(a.(*ClusterStatus), b.(*v1beta2.ClusterStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*Condition)(nil), (*v1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_Condition_To_v1_Condition(a.(*Condition), b.(*v1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineDeploymentSpec)(nil), (*v1beta2.MachineDeploymentSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineDeploymentSpec_To_v1beta2_MachineDeploymentSpec(a.(*MachineDeploymentSpec), b.(*v1beta2.MachineDeploymentSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineDeploymentStatus)(nil), (*v1beta2.MachineDeploymentStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineDeploymentStatus_To_v1beta2_MachineDeploymentStatus(a.(*MachineDeploymentStatus), b.(*v1beta2.MachineDeploymentStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineHealthCheckSpec)(nil), (*v1beta2.MachineHealthCheckSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineHealthCheckSpec_To_v1beta2_MachineHealthCheckSpec(a.(*MachineHealthCheckSpec), b.(*v1beta2.MachineHealthCheckSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachinePoolSpec)(nil), (*v1beta2.MachinePoolSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachinePoolSpec_To_v1beta2_MachinePoolSpec(a.(*MachinePoolSpec), b.(*v1beta2.MachinePoolSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachinePoolStatus)(nil), (*v1beta2.MachinePoolStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachinePoolStatus_To_v1beta2_MachinePoolStatus(a.(*MachinePoolStatus), b.(*v1beta2.MachinePoolStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachinePool)(nil), (*v1beta2.MachinePool)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachinePool_To_v1beta2_MachinePool(a.(*MachinePool), b.(*v1beta2.MachinePool), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineRollingUpdateDeployment)(nil), (*v1beta2.MachineDeploymentRolloutStrategyRollingUpdate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineRollingUpdateDeployment_To_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate(a.(*MachineRollingUpdateDeployment), b.(*v1beta2.MachineDeploymentRolloutStrategyRollingUpdate), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineSetSpec)(nil), (*v1beta2.MachineSetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineSetSpec_To_v1beta2_MachineSetSpec(a.(*MachineSetSpec), b.(*v1beta2.MachineSetSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineSetStatus)(nil), (*v1beta2.MachineSetStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineSetStatus_To_v1beta2_MachineSetStatus(a.(*MachineSetStatus), b.(*v1beta2.MachineSetStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineSpec)(nil), (*v1beta2.MachineSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineSpec_To_v1beta2_MachineSpec(a.(*MachineSpec), b.(*v1beta2.MachineSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineStatus)(nil), (*v1beta2.MachineStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_MachineStatus_To_v1beta2_MachineStatus(a.(*MachineStatus), b.(*v1beta2.MachineStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ObjectMeta)(nil), (*v1beta2.ObjectMeta)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha3_ObjectMeta_To_v1beta2_ObjectMeta(a.(*ObjectMeta), b.(*v1beta2.ObjectMeta), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.Bootstrap)(nil), (*Bootstrap)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_Bootstrap_To_v1alpha3_Bootstrap(a.(*v1beta2.Bootstrap), b.(*Bootstrap), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterNetwork)(nil), (*ClusterNetwork)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterNetwork_To_v1alpha3_ClusterNetwork(a.(*v1beta2.ClusterNetwork), b.(*ClusterNetwork), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterSpec)(nil), (*ClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterSpec_To_v1alpha3_ClusterSpec(a.(*v1beta2.ClusterSpec), b.(*ClusterSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterStatus)(nil), (*ClusterStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterStatus_To_v1alpha3_ClusterStatus(a.(*v1beta2.ClusterStatus), b.(*ClusterStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineDeploymentRolloutStrategyRollingUpdate)(nil), (*MachineRollingUpdateDeployment)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate_To_v1alpha3_MachineRollingUpdateDeployment(a.(*v1beta2.MachineDeploymentRolloutStrategyRollingUpdate), b.(*MachineRollingUpdateDeployment), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineDeploymentSpec)(nil), (*MachineDeploymentSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentSpec_To_v1alpha3_MachineDeploymentSpec(a.(*v1beta2.MachineDeploymentSpec), b.(*MachineDeploymentSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineDeploymentStatus)(nil), (*MachineDeploymentStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentStatus_To_v1alpha3_MachineDeploymentStatus(a.(*v1beta2.MachineDeploymentStatus), b.(*MachineDeploymentStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineHealthCheckSpec)(nil), (*MachineHealthCheckSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineHealthCheckSpec_To_v1alpha3_MachineHealthCheckSpec(a.(*v1beta2.MachineHealthCheckSpec), b.(*MachineHealthCheckSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineHealthCheckStatus)(nil), (*MachineHealthCheckStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineHealthCheckStatus_To_v1alpha3_MachineHealthCheckStatus(a.(*v1beta2.MachineHealthCheckStatus), b.(*MachineHealthCheckStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachinePoolStatus)(nil), (*MachinePoolStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachinePoolStatus_To_v1alpha3_MachinePoolStatus(a.(*v1beta2.MachinePoolStatus), b.(*MachinePoolStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachinePool)(nil), (*MachinePool)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachinePool_To_v1alpha3_MachinePool(a.(*v1beta2.MachinePool), b.(*MachinePool), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineSetSpec)(nil), (*MachineSetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineSetSpec_To_v1alpha3_MachineSetSpec(a.(*v1beta2.MachineSetSpec), b.(*MachineSetSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineSetStatus)(nil), (*MachineSetStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineSetStatus_To_v1alpha3_MachineSetStatus(a.(*v1beta2.MachineSetStatus), b.(*MachineSetStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineSpec)(nil), (*MachineSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineSpec_To_v1alpha3_MachineSpec(a.(*v1beta2.MachineSpec), b.(*MachineSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineStatus)(nil), (*MachineStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineStatus_To_v1alpha3_MachineStatus(a.(*v1beta2.MachineStatus), b.(*MachineStatus), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha3_APIEndpoint_To_v1beta2_APIEndpoint(in *APIEndpoint, out *v1beta2.APIEndpoint, s conversion.Scope) error { - out.Host = in.Host - out.Port = in.Port - return nil -} - -// Convert_v1alpha3_APIEndpoint_To_v1beta2_APIEndpoint is an autogenerated conversion function. -func Convert_v1alpha3_APIEndpoint_To_v1beta2_APIEndpoint(in *APIEndpoint, out *v1beta2.APIEndpoint, s conversion.Scope) error { - return autoConvert_v1alpha3_APIEndpoint_To_v1beta2_APIEndpoint(in, out, s) -} - -func autoConvert_v1beta2_APIEndpoint_To_v1alpha3_APIEndpoint(in *v1beta2.APIEndpoint, out *APIEndpoint, s conversion.Scope) error { - out.Host = in.Host - out.Port = in.Port - return nil -} - -// Convert_v1beta2_APIEndpoint_To_v1alpha3_APIEndpoint is an autogenerated conversion function. -func Convert_v1beta2_APIEndpoint_To_v1alpha3_APIEndpoint(in *v1beta2.APIEndpoint, out *APIEndpoint, s conversion.Scope) error { - return autoConvert_v1beta2_APIEndpoint_To_v1alpha3_APIEndpoint(in, out, s) -} - -func autoConvert_v1alpha3_Bootstrap_To_v1beta2_Bootstrap(in *Bootstrap, out *v1beta2.Bootstrap, s conversion.Scope) error { - // WARNING: in.ConfigRef requires manual conversion: inconvertible types (*k8s.io/api/core/v1.ObjectReference vs sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference) - // WARNING: in.Data requires manual conversion: does not exist in peer-type - out.DataSecretName = (*string)(unsafe.Pointer(in.DataSecretName)) - return nil -} - -func autoConvert_v1beta2_Bootstrap_To_v1alpha3_Bootstrap(in *v1beta2.Bootstrap, out *Bootstrap, s conversion.Scope) error { - // WARNING: in.ConfigRef requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference vs *k8s.io/api/core/v1.ObjectReference) - out.DataSecretName = (*string)(unsafe.Pointer(in.DataSecretName)) - return nil -} - -func autoConvert_v1alpha3_Cluster_To_v1beta2_Cluster(in *Cluster, out *v1beta2.Cluster, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha3_ClusterSpec_To_v1beta2_ClusterSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha3_ClusterStatus_To_v1beta2_ClusterStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha3_Cluster_To_v1beta2_Cluster is an autogenerated conversion function. -func Convert_v1alpha3_Cluster_To_v1beta2_Cluster(in *Cluster, out *v1beta2.Cluster, s conversion.Scope) error { - return autoConvert_v1alpha3_Cluster_To_v1beta2_Cluster(in, out, s) -} - -func autoConvert_v1beta2_Cluster_To_v1alpha3_Cluster(in *v1beta2.Cluster, out *Cluster, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_ClusterSpec_To_v1alpha3_ClusterSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_ClusterStatus_To_v1alpha3_ClusterStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_Cluster_To_v1alpha3_Cluster is an autogenerated conversion function. -func Convert_v1beta2_Cluster_To_v1alpha3_Cluster(in *v1beta2.Cluster, out *Cluster, s conversion.Scope) error { - return autoConvert_v1beta2_Cluster_To_v1alpha3_Cluster(in, out, s) -} - -func autoConvert_v1alpha3_ClusterList_To_v1beta2_ClusterList(in *ClusterList, out *v1beta2.ClusterList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.Cluster, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_Cluster_To_v1beta2_Cluster(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha3_ClusterList_To_v1beta2_ClusterList is an autogenerated conversion function. -func Convert_v1alpha3_ClusterList_To_v1beta2_ClusterList(in *ClusterList, out *v1beta2.ClusterList, s conversion.Scope) error { - return autoConvert_v1alpha3_ClusterList_To_v1beta2_ClusterList(in, out, s) -} - -func autoConvert_v1beta2_ClusterList_To_v1alpha3_ClusterList(in *v1beta2.ClusterList, out *ClusterList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Cluster, len(*in)) - for i := range *in { - if err := Convert_v1beta2_Cluster_To_v1alpha3_Cluster(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_ClusterList_To_v1alpha3_ClusterList is an autogenerated conversion function. -func Convert_v1beta2_ClusterList_To_v1alpha3_ClusterList(in *v1beta2.ClusterList, out *ClusterList, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterList_To_v1alpha3_ClusterList(in, out, s) -} - -func autoConvert_v1alpha3_ClusterNetwork_To_v1beta2_ClusterNetwork(in *ClusterNetwork, out *v1beta2.ClusterNetwork, s conversion.Scope) error { - if err := v1.Convert_Pointer_int32_To_int32(&in.APIServerPort, &out.APIServerPort, s); err != nil { - return err - } - // WARNING: in.Services requires manual conversion: inconvertible types (*sigs.k8s.io/cluster-api/internal/api/core/v1alpha3.NetworkRanges vs sigs.k8s.io/cluster-api/api/core/v1beta2.NetworkRanges) - // WARNING: in.Pods requires manual conversion: inconvertible types (*sigs.k8s.io/cluster-api/internal/api/core/v1alpha3.NetworkRanges vs sigs.k8s.io/cluster-api/api/core/v1beta2.NetworkRanges) - out.ServiceDomain = in.ServiceDomain - return nil -} - -func autoConvert_v1beta2_ClusterNetwork_To_v1alpha3_ClusterNetwork(in *v1beta2.ClusterNetwork, out *ClusterNetwork, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.APIServerPort, &out.APIServerPort, s); err != nil { - return err - } - // WARNING: in.Services requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.NetworkRanges vs *sigs.k8s.io/cluster-api/internal/api/core/v1alpha3.NetworkRanges) - // WARNING: in.Pods requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.NetworkRanges vs *sigs.k8s.io/cluster-api/internal/api/core/v1alpha3.NetworkRanges) - out.ServiceDomain = in.ServiceDomain - return nil -} - -func autoConvert_v1alpha3_ClusterSpec_To_v1beta2_ClusterSpec(in *ClusterSpec, out *v1beta2.ClusterSpec, s conversion.Scope) error { - if err := v1.Convert_bool_To_Pointer_bool(&in.Paused, &out.Paused, s); err != nil { - return err - } - // WARNING: in.ClusterNetwork requires manual conversion: inconvertible types (*sigs.k8s.io/cluster-api/internal/api/core/v1alpha3.ClusterNetwork vs sigs.k8s.io/cluster-api/api/core/v1beta2.ClusterNetwork) - if err := Convert_v1alpha3_APIEndpoint_To_v1beta2_APIEndpoint(&in.ControlPlaneEndpoint, &out.ControlPlaneEndpoint, s); err != nil { - return err - } - // WARNING: in.ControlPlaneRef requires manual conversion: inconvertible types (*k8s.io/api/core/v1.ObjectReference vs sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference) - // WARNING: in.InfrastructureRef requires manual conversion: inconvertible types (*k8s.io/api/core/v1.ObjectReference vs sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference) - return nil -} - -func autoConvert_v1beta2_ClusterSpec_To_v1alpha3_ClusterSpec(in *v1beta2.ClusterSpec, out *ClusterSpec, s conversion.Scope) error { - if err := v1.Convert_Pointer_bool_To_bool(&in.Paused, &out.Paused, s); err != nil { - return err - } - // WARNING: in.ClusterNetwork requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.ClusterNetwork vs *sigs.k8s.io/cluster-api/internal/api/core/v1alpha3.ClusterNetwork) - if err := Convert_v1beta2_APIEndpoint_To_v1alpha3_APIEndpoint(&in.ControlPlaneEndpoint, &out.ControlPlaneEndpoint, s); err != nil { - return err - } - // WARNING: in.ControlPlaneRef requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference vs *k8s.io/api/core/v1.ObjectReference) - // WARNING: in.InfrastructureRef requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference vs *k8s.io/api/core/v1.ObjectReference) - // WARNING: in.Topology requires manual conversion: does not exist in peer-type - // WARNING: in.AvailabilityGates requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_ClusterStatus_To_v1beta2_ClusterStatus(in *ClusterStatus, out *v1beta2.ClusterStatus, s conversion.Scope) error { - // WARNING: in.FailureDomains requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/internal/api/core/v1alpha3.FailureDomains vs []sigs.k8s.io/cluster-api/api/core/v1beta2.FailureDomain) - // WARNING: in.FailureReason requires manual conversion: does not exist in peer-type - // WARNING: in.FailureMessage requires manual conversion: does not exist in peer-type - out.Phase = in.Phase - // WARNING: in.InfrastructureReady requires manual conversion: does not exist in peer-type - // WARNING: in.ControlPlaneInitialized requires manual conversion: does not exist in peer-type - // WARNING: in.ControlPlaneReady requires manual conversion: does not exist in peer-type - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - out.ObservedGeneration = in.ObservedGeneration - return nil -} - -func autoConvert_v1beta2_ClusterStatus_To_v1alpha3_ClusterStatus(in *v1beta2.ClusterStatus, out *ClusterStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha3_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - // WARNING: in.Initialization requires manual conversion: does not exist in peer-type - // WARNING: in.ControlPlane requires manual conversion: does not exist in peer-type - // WARNING: in.Workers requires manual conversion: does not exist in peer-type - // WARNING: in.FailureDomains requires manual conversion: inconvertible types ([]sigs.k8s.io/cluster-api/api/core/v1beta2.FailureDomain vs sigs.k8s.io/cluster-api/internal/api/core/v1alpha3.FailureDomains) - out.Phase = in.Phase - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_Condition_To_v1beta2_Condition(in *Condition, out *v1beta2.Condition, s conversion.Scope) error { - out.Type = v1beta2.ConditionType(in.Type) - out.Status = corev1.ConditionStatus(in.Status) - out.Severity = v1beta2.ConditionSeverity(in.Severity) - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v1alpha3_Condition_To_v1beta2_Condition is an autogenerated conversion function. -func Convert_v1alpha3_Condition_To_v1beta2_Condition(in *Condition, out *v1beta2.Condition, s conversion.Scope) error { - return autoConvert_v1alpha3_Condition_To_v1beta2_Condition(in, out, s) -} - -func autoConvert_v1beta2_Condition_To_v1alpha3_Condition(in *v1beta2.Condition, out *Condition, s conversion.Scope) error { - out.Type = ConditionType(in.Type) - out.Status = corev1.ConditionStatus(in.Status) - out.Severity = ConditionSeverity(in.Severity) - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v1beta2_Condition_To_v1alpha3_Condition is an autogenerated conversion function. -func Convert_v1beta2_Condition_To_v1alpha3_Condition(in *v1beta2.Condition, out *Condition, s conversion.Scope) error { - return autoConvert_v1beta2_Condition_To_v1alpha3_Condition(in, out, s) -} - -func autoConvert_v1alpha3_Machine_To_v1beta2_Machine(in *Machine, out *v1beta2.Machine, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha3_MachineSpec_To_v1beta2_MachineSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha3_MachineStatus_To_v1beta2_MachineStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha3_Machine_To_v1beta2_Machine is an autogenerated conversion function. -func Convert_v1alpha3_Machine_To_v1beta2_Machine(in *Machine, out *v1beta2.Machine, s conversion.Scope) error { - return autoConvert_v1alpha3_Machine_To_v1beta2_Machine(in, out, s) -} - -func autoConvert_v1beta2_Machine_To_v1alpha3_Machine(in *v1beta2.Machine, out *Machine, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_MachineSpec_To_v1alpha3_MachineSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineStatus_To_v1alpha3_MachineStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_Machine_To_v1alpha3_Machine is an autogenerated conversion function. -func Convert_v1beta2_Machine_To_v1alpha3_Machine(in *v1beta2.Machine, out *Machine, s conversion.Scope) error { - return autoConvert_v1beta2_Machine_To_v1alpha3_Machine(in, out, s) -} - -func autoConvert_v1alpha3_MachineAddress_To_v1beta2_MachineAddress(in *MachineAddress, out *v1beta2.MachineAddress, s conversion.Scope) error { - out.Type = v1beta2.MachineAddressType(in.Type) - out.Address = in.Address - return nil -} - -// Convert_v1alpha3_MachineAddress_To_v1beta2_MachineAddress is an autogenerated conversion function. -func Convert_v1alpha3_MachineAddress_To_v1beta2_MachineAddress(in *MachineAddress, out *v1beta2.MachineAddress, s conversion.Scope) error { - return autoConvert_v1alpha3_MachineAddress_To_v1beta2_MachineAddress(in, out, s) -} - -func autoConvert_v1beta2_MachineAddress_To_v1alpha3_MachineAddress(in *v1beta2.MachineAddress, out *MachineAddress, s conversion.Scope) error { - out.Type = MachineAddressType(in.Type) - out.Address = in.Address - return nil -} - -// Convert_v1beta2_MachineAddress_To_v1alpha3_MachineAddress is an autogenerated conversion function. -func Convert_v1beta2_MachineAddress_To_v1alpha3_MachineAddress(in *v1beta2.MachineAddress, out *MachineAddress, s conversion.Scope) error { - return autoConvert_v1beta2_MachineAddress_To_v1alpha3_MachineAddress(in, out, s) -} - -func autoConvert_v1alpha3_MachineDeployment_To_v1beta2_MachineDeployment(in *MachineDeployment, out *v1beta2.MachineDeployment, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha3_MachineDeploymentSpec_To_v1beta2_MachineDeploymentSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha3_MachineDeploymentStatus_To_v1beta2_MachineDeploymentStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha3_MachineDeployment_To_v1beta2_MachineDeployment is an autogenerated conversion function. -func Convert_v1alpha3_MachineDeployment_To_v1beta2_MachineDeployment(in *MachineDeployment, out *v1beta2.MachineDeployment, s conversion.Scope) error { - return autoConvert_v1alpha3_MachineDeployment_To_v1beta2_MachineDeployment(in, out, s) -} - -func autoConvert_v1beta2_MachineDeployment_To_v1alpha3_MachineDeployment(in *v1beta2.MachineDeployment, out *MachineDeployment, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_MachineDeploymentSpec_To_v1alpha3_MachineDeploymentSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineDeploymentStatus_To_v1alpha3_MachineDeploymentStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_MachineDeployment_To_v1alpha3_MachineDeployment is an autogenerated conversion function. -func Convert_v1beta2_MachineDeployment_To_v1alpha3_MachineDeployment(in *v1beta2.MachineDeployment, out *MachineDeployment, s conversion.Scope) error { - return autoConvert_v1beta2_MachineDeployment_To_v1alpha3_MachineDeployment(in, out, s) -} - -func autoConvert_v1alpha3_MachineDeploymentList_To_v1beta2_MachineDeploymentList(in *MachineDeploymentList, out *v1beta2.MachineDeploymentList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.MachineDeployment, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_MachineDeployment_To_v1beta2_MachineDeployment(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha3_MachineDeploymentList_To_v1beta2_MachineDeploymentList is an autogenerated conversion function. -func Convert_v1alpha3_MachineDeploymentList_To_v1beta2_MachineDeploymentList(in *MachineDeploymentList, out *v1beta2.MachineDeploymentList, s conversion.Scope) error { - return autoConvert_v1alpha3_MachineDeploymentList_To_v1beta2_MachineDeploymentList(in, out, s) -} - -func autoConvert_v1beta2_MachineDeploymentList_To_v1alpha3_MachineDeploymentList(in *v1beta2.MachineDeploymentList, out *MachineDeploymentList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MachineDeployment, len(*in)) - for i := range *in { - if err := Convert_v1beta2_MachineDeployment_To_v1alpha3_MachineDeployment(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_MachineDeploymentList_To_v1alpha3_MachineDeploymentList is an autogenerated conversion function. -func Convert_v1beta2_MachineDeploymentList_To_v1alpha3_MachineDeploymentList(in *v1beta2.MachineDeploymentList, out *MachineDeploymentList, s conversion.Scope) error { - return autoConvert_v1beta2_MachineDeploymentList_To_v1alpha3_MachineDeploymentList(in, out, s) -} - -func autoConvert_v1alpha3_MachineDeploymentSpec_To_v1beta2_MachineDeploymentSpec(in *MachineDeploymentSpec, out *v1beta2.MachineDeploymentSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - out.Selector = in.Selector - if err := Convert_v1alpha3_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - // WARNING: in.Strategy requires manual conversion: does not exist in peer-type - // WARNING: in.MinReadySeconds requires manual conversion: does not exist in peer-type - // WARNING: in.RevisionHistoryLimit requires manual conversion: does not exist in peer-type - if err := v1.Convert_bool_To_Pointer_bool(&in.Paused, &out.Paused, s); err != nil { - return err - } - // WARNING: in.ProgressDeadlineSeconds requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_MachineDeploymentSpec_To_v1alpha3_MachineDeploymentSpec(in *v1beta2.MachineDeploymentSpec, out *MachineDeploymentSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - // WARNING: in.Rollout requires manual conversion: does not exist in peer-type - out.Selector = in.Selector - if err := Convert_v1beta2_MachineTemplateSpec_To_v1alpha3_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - // WARNING: in.MachineNaming requires manual conversion: does not exist in peer-type - // WARNING: in.Remediation requires manual conversion: does not exist in peer-type - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - if err := v1.Convert_Pointer_bool_To_bool(&in.Paused, &out.Paused, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha3_MachineDeploymentStatus_To_v1beta2_MachineDeploymentStatus(in *MachineDeploymentStatus, out *v1beta2.MachineDeploymentStatus, s conversion.Scope) error { - out.ObservedGeneration = in.ObservedGeneration - out.Selector = in.Selector - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - // WARNING: in.UpdatedReplicas requires manual conversion: does not exist in peer-type - if err := v1.Convert_int32_To_Pointer_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - // WARNING: in.UnavailableReplicas requires manual conversion: does not exist in peer-type - out.Phase = in.Phase - return nil -} - -func autoConvert_v1beta2_MachineDeploymentStatus_To_v1alpha3_MachineDeploymentStatus(in *v1beta2.MachineDeploymentStatus, out *MachineDeploymentStatus, s conversion.Scope) error { - // WARNING: in.Conditions requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - out.Selector = in.Selector - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - // WARNING: in.UpToDateReplicas requires manual conversion: does not exist in peer-type - out.Phase = in.Phase - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_MachineHealthCheck_To_v1beta2_MachineHealthCheck(in *MachineHealthCheck, out *v1beta2.MachineHealthCheck, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha3_MachineHealthCheckSpec_To_v1beta2_MachineHealthCheckSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha3_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha3_MachineHealthCheck_To_v1beta2_MachineHealthCheck is an autogenerated conversion function. -func Convert_v1alpha3_MachineHealthCheck_To_v1beta2_MachineHealthCheck(in *MachineHealthCheck, out *v1beta2.MachineHealthCheck, s conversion.Scope) error { - return autoConvert_v1alpha3_MachineHealthCheck_To_v1beta2_MachineHealthCheck(in, out, s) -} - -func autoConvert_v1beta2_MachineHealthCheck_To_v1alpha3_MachineHealthCheck(in *v1beta2.MachineHealthCheck, out *MachineHealthCheck, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_MachineHealthCheckSpec_To_v1alpha3_MachineHealthCheckSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineHealthCheckStatus_To_v1alpha3_MachineHealthCheckStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_MachineHealthCheck_To_v1alpha3_MachineHealthCheck is an autogenerated conversion function. -func Convert_v1beta2_MachineHealthCheck_To_v1alpha3_MachineHealthCheck(in *v1beta2.MachineHealthCheck, out *MachineHealthCheck, s conversion.Scope) error { - return autoConvert_v1beta2_MachineHealthCheck_To_v1alpha3_MachineHealthCheck(in, out, s) -} - -func autoConvert_v1alpha3_MachineHealthCheckList_To_v1beta2_MachineHealthCheckList(in *MachineHealthCheckList, out *v1beta2.MachineHealthCheckList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.MachineHealthCheck, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_MachineHealthCheck_To_v1beta2_MachineHealthCheck(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha3_MachineHealthCheckList_To_v1beta2_MachineHealthCheckList is an autogenerated conversion function. -func Convert_v1alpha3_MachineHealthCheckList_To_v1beta2_MachineHealthCheckList(in *MachineHealthCheckList, out *v1beta2.MachineHealthCheckList, s conversion.Scope) error { - return autoConvert_v1alpha3_MachineHealthCheckList_To_v1beta2_MachineHealthCheckList(in, out, s) -} - -func autoConvert_v1beta2_MachineHealthCheckList_To_v1alpha3_MachineHealthCheckList(in *v1beta2.MachineHealthCheckList, out *MachineHealthCheckList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MachineHealthCheck, len(*in)) - for i := range *in { - if err := Convert_v1beta2_MachineHealthCheck_To_v1alpha3_MachineHealthCheck(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_MachineHealthCheckList_To_v1alpha3_MachineHealthCheckList is an autogenerated conversion function. -func Convert_v1beta2_MachineHealthCheckList_To_v1alpha3_MachineHealthCheckList(in *v1beta2.MachineHealthCheckList, out *MachineHealthCheckList, s conversion.Scope) error { - return autoConvert_v1beta2_MachineHealthCheckList_To_v1alpha3_MachineHealthCheckList(in, out, s) -} - -func autoConvert_v1alpha3_MachineHealthCheckSpec_To_v1beta2_MachineHealthCheckSpec(in *MachineHealthCheckSpec, out *v1beta2.MachineHealthCheckSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Selector = in.Selector - // WARNING: in.UnhealthyConditions requires manual conversion: does not exist in peer-type - // WARNING: in.MaxUnhealthy requires manual conversion: does not exist in peer-type - // WARNING: in.NodeStartupTimeout requires manual conversion: does not exist in peer-type - // WARNING: in.RemediationTemplate requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_MachineHealthCheckSpec_To_v1alpha3_MachineHealthCheckSpec(in *v1beta2.MachineHealthCheckSpec, out *MachineHealthCheckSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Selector = in.Selector - // WARNING: in.Checks requires manual conversion: does not exist in peer-type - // WARNING: in.Remediation requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus(in *MachineHealthCheckStatus, out *v1beta2.MachineHealthCheckStatus, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.ExpectedMachines, &out.ExpectedMachines, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.CurrentHealthy, &out.CurrentHealthy, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.RemediationsAllowed, &out.RemediationsAllowed, s); err != nil { - return err - } - out.ObservedGeneration = in.ObservedGeneration - out.Targets = *(*[]string)(unsafe.Pointer(&in.Targets)) - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -// Convert_v1alpha3_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus is an autogenerated conversion function. -func Convert_v1alpha3_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus(in *MachineHealthCheckStatus, out *v1beta2.MachineHealthCheckStatus, s conversion.Scope) error { - return autoConvert_v1alpha3_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus(in, out, s) -} - -func autoConvert_v1beta2_MachineHealthCheckStatus_To_v1alpha3_MachineHealthCheckStatus(in *v1beta2.MachineHealthCheckStatus, out *MachineHealthCheckStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha3_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - if err := v1.Convert_Pointer_int32_To_int32(&in.ExpectedMachines, &out.ExpectedMachines, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.CurrentHealthy, &out.CurrentHealthy, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.RemediationsAllowed, &out.RemediationsAllowed, s); err != nil { - return err - } - out.ObservedGeneration = in.ObservedGeneration - out.Targets = *(*[]string)(unsafe.Pointer(&in.Targets)) - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_MachineList_To_v1beta2_MachineList(in *MachineList, out *v1beta2.MachineList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.Machine, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_Machine_To_v1beta2_Machine(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha3_MachineList_To_v1beta2_MachineList is an autogenerated conversion function. -func Convert_v1alpha3_MachineList_To_v1beta2_MachineList(in *MachineList, out *v1beta2.MachineList, s conversion.Scope) error { - return autoConvert_v1alpha3_MachineList_To_v1beta2_MachineList(in, out, s) -} - -func autoConvert_v1beta2_MachineList_To_v1alpha3_MachineList(in *v1beta2.MachineList, out *MachineList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Machine, len(*in)) - for i := range *in { - if err := Convert_v1beta2_Machine_To_v1alpha3_Machine(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_MachineList_To_v1alpha3_MachineList is an autogenerated conversion function. -func Convert_v1beta2_MachineList_To_v1alpha3_MachineList(in *v1beta2.MachineList, out *MachineList, s conversion.Scope) error { - return autoConvert_v1beta2_MachineList_To_v1alpha3_MachineList(in, out, s) -} - -func autoConvert_v1alpha3_MachinePool_To_v1beta2_MachinePool(in *MachinePool, out *v1beta2.MachinePool, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha3_MachinePoolSpec_To_v1beta2_MachinePoolSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha3_MachinePoolStatus_To_v1beta2_MachinePoolStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1beta2_MachinePool_To_v1alpha3_MachinePool(in *v1beta2.MachinePool, out *MachinePool, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_MachinePoolSpec_To_v1alpha3_MachinePoolSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_MachinePoolStatus_To_v1alpha3_MachinePoolStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha3_MachinePoolList_To_v1beta2_MachinePoolList(in *MachinePoolList, out *v1beta2.MachinePoolList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.MachinePool, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_MachinePool_To_v1beta2_MachinePool(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha3_MachinePoolList_To_v1beta2_MachinePoolList is an autogenerated conversion function. -func Convert_v1alpha3_MachinePoolList_To_v1beta2_MachinePoolList(in *MachinePoolList, out *v1beta2.MachinePoolList, s conversion.Scope) error { - return autoConvert_v1alpha3_MachinePoolList_To_v1beta2_MachinePoolList(in, out, s) -} - -func autoConvert_v1beta2_MachinePoolList_To_v1alpha3_MachinePoolList(in *v1beta2.MachinePoolList, out *MachinePoolList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MachinePool, len(*in)) - for i := range *in { - if err := Convert_v1beta2_MachinePool_To_v1alpha3_MachinePool(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_MachinePoolList_To_v1alpha3_MachinePoolList is an autogenerated conversion function. -func Convert_v1beta2_MachinePoolList_To_v1alpha3_MachinePoolList(in *v1beta2.MachinePoolList, out *MachinePoolList, s conversion.Scope) error { - return autoConvert_v1beta2_MachinePoolList_To_v1alpha3_MachinePoolList(in, out, s) -} - -func autoConvert_v1alpha3_MachinePoolSpec_To_v1beta2_MachinePoolSpec(in *MachinePoolSpec, out *v1beta2.MachinePoolSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - if err := Convert_v1alpha3_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - // WARNING: in.Strategy requires manual conversion: does not exist in peer-type - // WARNING: in.MinReadySeconds requires manual conversion: does not exist in peer-type - out.ProviderIDList = *(*[]string)(unsafe.Pointer(&in.ProviderIDList)) - out.FailureDomains = *(*[]string)(unsafe.Pointer(&in.FailureDomains)) - return nil -} - -func autoConvert_v1beta2_MachinePoolSpec_To_v1alpha3_MachinePoolSpec(in *v1beta2.MachinePoolSpec, out *MachinePoolSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - if err := Convert_v1beta2_MachineTemplateSpec_To_v1alpha3_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - out.ProviderIDList = *(*[]string)(unsafe.Pointer(&in.ProviderIDList)) - out.FailureDomains = *(*[]string)(unsafe.Pointer(&in.FailureDomains)) - return nil -} - -// Convert_v1beta2_MachinePoolSpec_To_v1alpha3_MachinePoolSpec is an autogenerated conversion function. -func Convert_v1beta2_MachinePoolSpec_To_v1alpha3_MachinePoolSpec(in *v1beta2.MachinePoolSpec, out *MachinePoolSpec, s conversion.Scope) error { - return autoConvert_v1beta2_MachinePoolSpec_To_v1alpha3_MachinePoolSpec(in, out, s) -} - -func autoConvert_v1alpha3_MachinePoolStatus_To_v1beta2_MachinePoolStatus(in *MachinePoolStatus, out *v1beta2.MachinePoolStatus, s conversion.Scope) error { - out.NodeRefs = *(*[]corev1.ObjectReference)(unsafe.Pointer(&in.NodeRefs)) - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - // WARNING: in.UnavailableReplicas requires manual conversion: does not exist in peer-type - // WARNING: in.FailureReason requires manual conversion: does not exist in peer-type - // WARNING: in.FailureMessage requires manual conversion: does not exist in peer-type - out.Phase = in.Phase - // WARNING: in.BootstrapReady requires manual conversion: does not exist in peer-type - // WARNING: in.InfrastructureReady requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -func autoConvert_v1beta2_MachinePoolStatus_To_v1alpha3_MachinePoolStatus(in *v1beta2.MachinePoolStatus, out *MachinePoolStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha3_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - // WARNING: in.Initialization requires manual conversion: does not exist in peer-type - out.NodeRefs = *(*[]corev1.ObjectReference)(unsafe.Pointer(&in.NodeRefs)) - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - // WARNING: in.UpToDateReplicas requires manual conversion: does not exist in peer-type - out.Phase = in.Phase - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_MachineSet_To_v1beta2_MachineSet(in *MachineSet, out *v1beta2.MachineSet, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha3_MachineSetSpec_To_v1beta2_MachineSetSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha3_MachineSetStatus_To_v1beta2_MachineSetStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha3_MachineSet_To_v1beta2_MachineSet is an autogenerated conversion function. -func Convert_v1alpha3_MachineSet_To_v1beta2_MachineSet(in *MachineSet, out *v1beta2.MachineSet, s conversion.Scope) error { - return autoConvert_v1alpha3_MachineSet_To_v1beta2_MachineSet(in, out, s) -} - -func autoConvert_v1beta2_MachineSet_To_v1alpha3_MachineSet(in *v1beta2.MachineSet, out *MachineSet, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_MachineSetSpec_To_v1alpha3_MachineSetSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineSetStatus_To_v1alpha3_MachineSetStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_MachineSet_To_v1alpha3_MachineSet is an autogenerated conversion function. -func Convert_v1beta2_MachineSet_To_v1alpha3_MachineSet(in *v1beta2.MachineSet, out *MachineSet, s conversion.Scope) error { - return autoConvert_v1beta2_MachineSet_To_v1alpha3_MachineSet(in, out, s) -} - -func autoConvert_v1alpha3_MachineSetList_To_v1beta2_MachineSetList(in *MachineSetList, out *v1beta2.MachineSetList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.MachineSet, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_MachineSet_To_v1beta2_MachineSet(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha3_MachineSetList_To_v1beta2_MachineSetList is an autogenerated conversion function. -func Convert_v1alpha3_MachineSetList_To_v1beta2_MachineSetList(in *MachineSetList, out *v1beta2.MachineSetList, s conversion.Scope) error { - return autoConvert_v1alpha3_MachineSetList_To_v1beta2_MachineSetList(in, out, s) -} - -func autoConvert_v1beta2_MachineSetList_To_v1alpha3_MachineSetList(in *v1beta2.MachineSetList, out *MachineSetList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MachineSet, len(*in)) - for i := range *in { - if err := Convert_v1beta2_MachineSet_To_v1alpha3_MachineSet(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_MachineSetList_To_v1alpha3_MachineSetList is an autogenerated conversion function. -func Convert_v1beta2_MachineSetList_To_v1alpha3_MachineSetList(in *v1beta2.MachineSetList, out *MachineSetList, s conversion.Scope) error { - return autoConvert_v1beta2_MachineSetList_To_v1alpha3_MachineSetList(in, out, s) -} - -func autoConvert_v1alpha3_MachineSetSpec_To_v1beta2_MachineSetSpec(in *MachineSetSpec, out *v1beta2.MachineSetSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - // WARNING: in.MinReadySeconds requires manual conversion: does not exist in peer-type - // WARNING: in.DeletePolicy requires manual conversion: does not exist in peer-type - out.Selector = in.Selector - if err := Convert_v1alpha3_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1beta2_MachineSetSpec_To_v1alpha3_MachineSetSpec(in *v1beta2.MachineSetSpec, out *MachineSetSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - out.Selector = in.Selector - if err := Convert_v1beta2_MachineTemplateSpec_To_v1alpha3_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - // WARNING: in.MachineNaming requires manual conversion: does not exist in peer-type - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_MachineSetStatus_To_v1beta2_MachineSetStatus(in *MachineSetStatus, out *v1beta2.MachineSetStatus, s conversion.Scope) error { - out.Selector = in.Selector - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - // WARNING: in.FullyLabeledReplicas requires manual conversion: does not exist in peer-type - if err := v1.Convert_int32_To_Pointer_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.FailureReason requires manual conversion: does not exist in peer-type - // WARNING: in.FailureMessage requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_MachineSetStatus_To_v1alpha3_MachineSetStatus(in *v1beta2.MachineSetStatus, out *MachineSetStatus, s conversion.Scope) error { - // WARNING: in.Conditions requires manual conversion: does not exist in peer-type - out.Selector = in.Selector - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - // WARNING: in.UpToDateReplicas requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_MachineSpec_To_v1beta2_MachineSpec(in *MachineSpec, out *v1beta2.MachineSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - if err := Convert_v1alpha3_Bootstrap_To_v1beta2_Bootstrap(&in.Bootstrap, &out.Bootstrap, s); err != nil { - return err - } - if err := v1beta1.Convert_v1_ObjectReference_To_v1beta2_ContractVersionedObjectReference(&in.InfrastructureRef, &out.InfrastructureRef, s); err != nil { - return err - } - if err := v1.Convert_Pointer_string_To_string(&in.Version, &out.Version, s); err != nil { - return err - } - if err := v1.Convert_Pointer_string_To_string(&in.ProviderID, &out.ProviderID, s); err != nil { - return err - } - if err := v1.Convert_Pointer_string_To_string(&in.FailureDomain, &out.FailureDomain, s); err != nil { - return err - } - // WARNING: in.NodeDrainTimeout requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_MachineSpec_To_v1alpha3_MachineSpec(in *v1beta2.MachineSpec, out *MachineSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - if err := Convert_v1beta2_Bootstrap_To_v1alpha3_Bootstrap(&in.Bootstrap, &out.Bootstrap, s); err != nil { - return err - } - if err := v1beta1.Convert_v1beta2_ContractVersionedObjectReference_To_v1_ObjectReference(&in.InfrastructureRef, &out.InfrastructureRef, s); err != nil { - return err - } - if err := v1.Convert_string_To_Pointer_string(&in.Version, &out.Version, s); err != nil { - return err - } - if err := v1.Convert_string_To_Pointer_string(&in.ProviderID, &out.ProviderID, s); err != nil { - return err - } - if err := v1.Convert_string_To_Pointer_string(&in.FailureDomain, &out.FailureDomain, s); err != nil { - return err - } - // WARNING: in.MinReadySeconds requires manual conversion: does not exist in peer-type - // WARNING: in.ReadinessGates requires manual conversion: does not exist in peer-type - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_MachineStatus_To_v1beta2_MachineStatus(in *MachineStatus, out *v1beta2.MachineStatus, s conversion.Scope) error { - // WARNING: in.NodeRef requires manual conversion: inconvertible types (*k8s.io/api/core/v1.ObjectReference vs sigs.k8s.io/cluster-api/api/core/v1beta2.MachineNodeReference) - // WARNING: in.LastUpdated requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.Time vs k8s.io/apimachinery/pkg/apis/meta/v1.Time) - // WARNING: in.Version requires manual conversion: does not exist in peer-type - // WARNING: in.FailureReason requires manual conversion: does not exist in peer-type - // WARNING: in.FailureMessage requires manual conversion: does not exist in peer-type - out.Addresses = *(*v1beta2.MachineAddresses)(unsafe.Pointer(&in.Addresses)) - out.Phase = in.Phase - // WARNING: in.BootstrapReady requires manual conversion: does not exist in peer-type - // WARNING: in.InfrastructureReady requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha3_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -func autoConvert_v1beta2_MachineStatus_To_v1alpha3_MachineStatus(in *v1beta2.MachineStatus, out *MachineStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha3_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - // WARNING: in.Initialization requires manual conversion: does not exist in peer-type - // WARNING: in.NodeRef requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.MachineNodeReference vs *k8s.io/api/core/v1.ObjectReference) - // WARNING: in.NodeInfo requires manual conversion: does not exist in peer-type - // WARNING: in.LastUpdated requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/apis/meta/v1.Time vs *k8s.io/apimachinery/pkg/apis/meta/v1.Time) - out.Addresses = *(*MachineAddresses)(unsafe.Pointer(&in.Addresses)) - out.Phase = in.Phase - // WARNING: in.CertificatesExpiryDate requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha3_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(in *MachineTemplateSpec, out *v1beta2.MachineTemplateSpec, s conversion.Scope) error { - if err := Convert_v1alpha3_ObjectMeta_To_v1beta2_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, s); err != nil { - return err - } - if err := Convert_v1alpha3_MachineSpec_To_v1beta2_MachineSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha3_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec is an autogenerated conversion function. -func Convert_v1alpha3_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(in *MachineTemplateSpec, out *v1beta2.MachineTemplateSpec, s conversion.Scope) error { - return autoConvert_v1alpha3_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(in, out, s) -} - -func autoConvert_v1beta2_MachineTemplateSpec_To_v1alpha3_MachineTemplateSpec(in *v1beta2.MachineTemplateSpec, out *MachineTemplateSpec, s conversion.Scope) error { - if err := Convert_v1beta2_ObjectMeta_To_v1alpha3_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineSpec_To_v1alpha3_MachineSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_MachineTemplateSpec_To_v1alpha3_MachineTemplateSpec is an autogenerated conversion function. -func Convert_v1beta2_MachineTemplateSpec_To_v1alpha3_MachineTemplateSpec(in *v1beta2.MachineTemplateSpec, out *MachineTemplateSpec, s conversion.Scope) error { - return autoConvert_v1beta2_MachineTemplateSpec_To_v1alpha3_MachineTemplateSpec(in, out, s) -} - -func autoConvert_v1alpha3_NetworkRanges_To_v1beta2_NetworkRanges(in *NetworkRanges, out *v1beta2.NetworkRanges, s conversion.Scope) error { - out.CIDRBlocks = *(*[]string)(unsafe.Pointer(&in.CIDRBlocks)) - return nil -} - -// Convert_v1alpha3_NetworkRanges_To_v1beta2_NetworkRanges is an autogenerated conversion function. -func Convert_v1alpha3_NetworkRanges_To_v1beta2_NetworkRanges(in *NetworkRanges, out *v1beta2.NetworkRanges, s conversion.Scope) error { - return autoConvert_v1alpha3_NetworkRanges_To_v1beta2_NetworkRanges(in, out, s) -} - -func autoConvert_v1beta2_NetworkRanges_To_v1alpha3_NetworkRanges(in *v1beta2.NetworkRanges, out *NetworkRanges, s conversion.Scope) error { - out.CIDRBlocks = *(*[]string)(unsafe.Pointer(&in.CIDRBlocks)) - return nil -} - -// Convert_v1beta2_NetworkRanges_To_v1alpha3_NetworkRanges is an autogenerated conversion function. -func Convert_v1beta2_NetworkRanges_To_v1alpha3_NetworkRanges(in *v1beta2.NetworkRanges, out *NetworkRanges, s conversion.Scope) error { - return autoConvert_v1beta2_NetworkRanges_To_v1alpha3_NetworkRanges(in, out, s) -} - -func autoConvert_v1alpha3_ObjectMeta_To_v1beta2_ObjectMeta(in *ObjectMeta, out *v1beta2.ObjectMeta, s conversion.Scope) error { - // WARNING: in.Name requires manual conversion: does not exist in peer-type - // WARNING: in.GenerateName requires manual conversion: does not exist in peer-type - // WARNING: in.Namespace requires manual conversion: does not exist in peer-type - out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) - out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) - // WARNING: in.OwnerReferences requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_ObjectMeta_To_v1alpha3_ObjectMeta(in *v1beta2.ObjectMeta, out *ObjectMeta, s conversion.Scope) error { - out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) - out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) - return nil -} - -// Convert_v1beta2_ObjectMeta_To_v1alpha3_ObjectMeta is an autogenerated conversion function. -func Convert_v1beta2_ObjectMeta_To_v1alpha3_ObjectMeta(in *v1beta2.ObjectMeta, out *ObjectMeta, s conversion.Scope) error { - return autoConvert_v1beta2_ObjectMeta_To_v1alpha3_ObjectMeta(in, out, s) -} diff --git a/internal/api/core/v1alpha3/zz_generated.deepcopy.go b/internal/api/core/v1alpha3/zz_generated.deepcopy.go index ac0ffaa9f4c5..fd8a136512e5 100644 --- a/internal/api/core/v1alpha3/zz_generated.deepcopy.go +++ b/internal/api/core/v1alpha3/zz_generated.deepcopy.go @@ -25,7 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "sigs.k8s.io/cluster-api/errors" + "sigs.k8s.io/cluster-api/api/core/errors" ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. diff --git a/internal/api/core/v1alpha4/cluster_types.go b/internal/api/core/v1alpha4/cluster_types.go index 607205aecc3d..9fbb324ef15e 100644 --- a/internal/api/core/v1alpha4/cluster_types.go +++ b/internal/api/core/v1alpha4/cluster_types.go @@ -26,7 +26,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/utils/ptr" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/internal/api/core/v1alpha4/conversion.go b/internal/api/core/v1alpha4/conversion.go deleted file mode 100644 index 57ac08a4ea98..000000000000 --- a/internal/api/core/v1alpha4/conversion.go +++ /dev/null @@ -1,1418 +0,0 @@ -/* -Copyright 2020 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 v1alpha4 - -import ( - "errors" - "fmt" - "maps" - "reflect" - "slices" - "sort" - "unsafe" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - apimachineryconversion "k8s.io/apimachinery/pkg/conversion" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/utils/ptr" - "sigs.k8s.io/controller-runtime/pkg/conversion" - - clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" - clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" -) - -var apiVersionGetter = func(_ schema.GroupKind) (string, error) { - return "", errors.New("apiVersionGetter not set") -} - -func SetAPIVersionGetter(f func(gk schema.GroupKind) (string, error)) { - apiVersionGetter = f -} - -func (src *Cluster) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.Cluster) - - if err := Convert_v1alpha4_Cluster_To_v1beta2_Cluster(src, dst, nil); err != nil { - return err - } - - if src.Spec.InfrastructureRef != nil { - infraRef, err := convertToContractVersionedObjectReference(src.Spec.InfrastructureRef) - if err != nil { - return err - } - dst.Spec.InfrastructureRef = infraRef - } - - if src.Spec.ControlPlaneRef != nil { - controlPlaneRef, err := convertToContractVersionedObjectReference(src.Spec.ControlPlaneRef) - if err != nil { - return err - } - dst.Spec.ControlPlaneRef = controlPlaneRef - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha4), failureReason and failureMessage to the deprecated field. - if src.Status.Conditions != nil || src.Status.FailureReason != nil || src.Status.FailureMessage != nil { - dst.Status.Deprecated = &clusterv1.ClusterDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.ClusterV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - } - - // Move ControlPlaneReady and InfrastructureReady to initialization is implemented in ConvertTo. - - // Manually restore data. - restored := &clusterv1.Cluster{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - clusterv1.Convert_bool_To_Pointer_bool(src.Spec.Paused, ok, restored.Spec.Paused, &dst.Spec.Paused) - - initialization := clusterv1.ClusterInitializationStatus{} - restoredControlPlaneInitialized := restored.Status.Initialization.ControlPlaneInitialized - restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned - clusterv1.Convert_bool_To_Pointer_bool(src.Status.ControlPlaneReady, ok, restoredControlPlaneInitialized, &initialization.ControlPlaneInitialized) - clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) - if !reflect.DeepEqual(initialization, clusterv1.ClusterInitializationStatus{}) { - dst.Status.Initialization = initialization - } - - for i, fd := range dst.Status.FailureDomains { - srcFD, ok := src.Status.FailureDomains[fd.Name] - if !ok { - return fmt.Errorf("failure domain %q not found in source data", fd.Name) - } - var restoredFDControlPlane *bool - for _, restoredFD := range restored.Status.FailureDomains { - if restoredFD.Name == fd.Name { - restoredFDControlPlane = restoredFD.ControlPlane - break - } - } - clusterv1.Convert_bool_To_Pointer_bool(srcFD.ControlPlane, ok, restoredFDControlPlane, &fd.ControlPlane) - dst.Status.FailureDomains[i] = fd - } - - // Recover other values - if ok { - dst.Spec.AvailabilityGates = restored.Spec.AvailabilityGates - dst.Spec.Topology.ClassRef.Namespace = restored.Spec.Topology.ClassRef.Namespace - dst.Spec.Topology.Variables = restored.Spec.Topology.Variables - dst.Spec.Topology.ControlPlane.Variables = restored.Spec.Topology.ControlPlane.Variables - - dst.Spec.Topology.ControlPlane.HealthCheck = restored.Spec.Topology.ControlPlane.HealthCheck - - if restored.Spec.Topology.ControlPlane.Deletion.NodeDrainTimeoutSeconds != nil { - dst.Spec.Topology.ControlPlane.Deletion.NodeDrainTimeoutSeconds = restored.Spec.Topology.ControlPlane.Deletion.NodeDrainTimeoutSeconds - } - - if restored.Spec.Topology.ControlPlane.Deletion.NodeVolumeDetachTimeoutSeconds != nil { - dst.Spec.Topology.ControlPlane.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.Topology.ControlPlane.Deletion.NodeVolumeDetachTimeoutSeconds - } - - if restored.Spec.Topology.ControlPlane.Deletion.NodeDeletionTimeoutSeconds != nil { - dst.Spec.Topology.ControlPlane.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.Topology.ControlPlane.Deletion.NodeDeletionTimeoutSeconds - } - dst.Spec.Topology.ControlPlane.ReadinessGates = restored.Spec.Topology.ControlPlane.ReadinessGates - - for i := range restored.Spec.Topology.Workers.MachineDeployments { - dst.Spec.Topology.Workers.MachineDeployments[i].FailureDomain = restored.Spec.Topology.Workers.MachineDeployments[i].FailureDomain - dst.Spec.Topology.Workers.MachineDeployments[i].Variables = restored.Spec.Topology.Workers.MachineDeployments[i].Variables - dst.Spec.Topology.Workers.MachineDeployments[i].ReadinessGates = restored.Spec.Topology.Workers.MachineDeployments[i].ReadinessGates - dst.Spec.Topology.Workers.MachineDeployments[i].Deletion.Order = restored.Spec.Topology.Workers.MachineDeployments[i].Deletion.Order - dst.Spec.Topology.Workers.MachineDeployments[i].Deletion.NodeDrainTimeoutSeconds = restored.Spec.Topology.Workers.MachineDeployments[i].Deletion.NodeDrainTimeoutSeconds - dst.Spec.Topology.Workers.MachineDeployments[i].Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.Topology.Workers.MachineDeployments[i].Deletion.NodeVolumeDetachTimeoutSeconds - dst.Spec.Topology.Workers.MachineDeployments[i].Deletion.NodeDeletionTimeoutSeconds = restored.Spec.Topology.Workers.MachineDeployments[i].Deletion.NodeDeletionTimeoutSeconds - dst.Spec.Topology.Workers.MachineDeployments[i].MinReadySeconds = restored.Spec.Topology.Workers.MachineDeployments[i].MinReadySeconds - dst.Spec.Topology.Workers.MachineDeployments[i].Rollout.Strategy = restored.Spec.Topology.Workers.MachineDeployments[i].Rollout.Strategy - dst.Spec.Topology.Workers.MachineDeployments[i].HealthCheck = restored.Spec.Topology.Workers.MachineDeployments[i].HealthCheck - } - - dst.Spec.Topology.Workers.MachinePools = restored.Spec.Topology.Workers.MachinePools - - dst.Status.Conditions = restored.Status.Conditions - dst.Status.ControlPlane = restored.Status.ControlPlane - dst.Status.Workers = restored.Status.Workers - } - - return nil -} - -func (dst *Cluster) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.Cluster) - - if err := Convert_v1beta2_Cluster_To_v1alpha4_Cluster(src, dst, nil); err != nil { - return err - } - - if src.Spec.InfrastructureRef.IsDefined() { - infraRef, err := convertToObjectReference(src.Spec.InfrastructureRef, src.Namespace) - if err != nil { - return err - } - dst.Spec.InfrastructureRef = infraRef - } - - if src.Spec.ControlPlaneRef.IsDefined() { - controlPlaneRef, err := convertToObjectReference(src.Spec.ControlPlaneRef, src.Namespace) - if err != nil { - return err - } - dst.Spec.ControlPlaneRef = controlPlaneRef - } - - if dst.Spec.ClusterNetwork != nil && dst.Spec.ClusterNetwork.APIServerPort != nil && - *dst.Spec.ClusterNetwork.APIServerPort == 0 { - dst.Spec.ClusterNetwork.APIServerPort = nil - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha4). - dst.Status.Conditions = nil - - // Retrieve legacy conditions (v1alpha4), failureReason and failureMessage from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - } - } - - // Move initialization to old fields - dst.Status.ControlPlaneReady = ptr.Deref(src.Status.Initialization.ControlPlaneInitialized, false) - dst.Status.InfrastructureReady = ptr.Deref(src.Status.Initialization.InfrastructureProvisioned, false) - - // Preserve Hub data on down-conversion except for metadata - if err := utilconversion.MarshalData(src, dst); err != nil { - return err - } - - return nil -} - -func (src *ClusterClass) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.ClusterClass) - - if err := Convert_v1alpha4_ClusterClass_To_v1beta2_ClusterClass(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Manually restore data. - restored := &clusterv1.ClusterClass{} - if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok { - return err - } - - dst.Spec.Patches = restored.Spec.Patches - dst.Spec.Variables = restored.Spec.Variables - dst.Spec.AvailabilityGates = restored.Spec.AvailabilityGates - dst.Spec.ControlPlane.HealthCheck = restored.Spec.ControlPlane.HealthCheck - dst.Spec.ControlPlane.ReadinessGates = restored.Spec.ControlPlane.ReadinessGates - dst.Spec.ControlPlane.Naming = restored.Spec.ControlPlane.Naming - dst.Spec.Infrastructure.Naming = restored.Spec.Infrastructure.Naming - dst.Spec.ControlPlane.Deletion.NodeDrainTimeoutSeconds = restored.Spec.ControlPlane.Deletion.NodeDrainTimeoutSeconds - dst.Spec.ControlPlane.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.ControlPlane.Deletion.NodeVolumeDetachTimeoutSeconds - dst.Spec.ControlPlane.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.ControlPlane.Deletion.NodeDeletionTimeoutSeconds - dst.Spec.Workers.MachinePools = restored.Spec.Workers.MachinePools - dst.Spec.KubernetesVersions = restored.Spec.KubernetesVersions - - for i := range restored.Spec.Workers.MachineDeployments { - dst.Spec.Workers.MachineDeployments[i].HealthCheck = restored.Spec.Workers.MachineDeployments[i].HealthCheck - dst.Spec.Workers.MachineDeployments[i].ReadinessGates = restored.Spec.Workers.MachineDeployments[i].ReadinessGates - dst.Spec.Workers.MachineDeployments[i].FailureDomain = restored.Spec.Workers.MachineDeployments[i].FailureDomain - dst.Spec.Workers.MachineDeployments[i].Naming = restored.Spec.Workers.MachineDeployments[i].Naming - dst.Spec.Workers.MachineDeployments[i].Deletion.Order = restored.Spec.Workers.MachineDeployments[i].Deletion.Order - dst.Spec.Workers.MachineDeployments[i].Deletion.NodeDrainTimeoutSeconds = restored.Spec.Workers.MachineDeployments[i].Deletion.NodeDrainTimeoutSeconds - dst.Spec.Workers.MachineDeployments[i].Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.Workers.MachineDeployments[i].Deletion.NodeVolumeDetachTimeoutSeconds - dst.Spec.Workers.MachineDeployments[i].Deletion.NodeDeletionTimeoutSeconds = restored.Spec.Workers.MachineDeployments[i].Deletion.NodeDeletionTimeoutSeconds - dst.Spec.Workers.MachineDeployments[i].MinReadySeconds = restored.Spec.Workers.MachineDeployments[i].MinReadySeconds - dst.Spec.Workers.MachineDeployments[i].Rollout.Strategy = restored.Spec.Workers.MachineDeployments[i].Rollout.Strategy - } - dst.Status = restored.Status - dst.Spec.Upgrade.External.GenerateUpgradePlanExtension = restored.Spec.Upgrade.External.GenerateUpgradePlanExtension - - return nil -} - -func (dst *ClusterClass) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.ClusterClass) - - if err := Convert_v1beta2_ClusterClass_To_v1alpha4_ClusterClass(src, dst, nil); err != nil { - return err - } - - // Preserve Hub data on down-conversion except for metadata - if err := utilconversion.MarshalData(src, dst); err != nil { - return err - } - - return nil -} - -func (src *Machine) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.Machine) - - if err := Convert_v1alpha4_Machine_To_v1beta2_Machine(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec, &dst.Spec); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha4), failureReason and failureMessage to the deprecated field. - if src.Status.Conditions != nil || src.Status.FailureReason != nil || src.Status.FailureMessage != nil { - dst.Status.Deprecated = &clusterv1.MachineDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.MachineV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - } - - // Manually restore data. - restored := &clusterv1.Machine{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - initialization := clusterv1.MachineInitializationStatus{} - restoredBootstrapDataSecretCreated := restored.Status.Initialization.BootstrapDataSecretCreated - restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned - clusterv1.Convert_bool_To_Pointer_bool(src.Status.BootstrapReady, ok, restoredBootstrapDataSecretCreated, &initialization.BootstrapDataSecretCreated) - clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) - if !reflect.DeepEqual(initialization, clusterv1.MachineInitializationStatus{}) { - dst.Status.Initialization = initialization - } - - // Recover other values - if ok { - dst.Spec.MinReadySeconds = restored.Spec.MinReadySeconds - dst.Spec.ReadinessGates = restored.Spec.ReadinessGates - dst.Spec.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.Deletion.NodeDeletionTimeoutSeconds - dst.Status.CertificatesExpiryDate = restored.Status.CertificatesExpiryDate - dst.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.Deletion.NodeVolumeDetachTimeoutSeconds - dst.Status.Deletion = restored.Status.Deletion - dst.Status.Conditions = restored.Status.Conditions - } - - return nil -} - -func (dst *Machine) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.Machine) - - if err := Convert_v1beta2_Machine_To_v1alpha4_Machine(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec, &dst.Spec, src.Namespace); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha4). - dst.Status.Conditions = nil - - // Retrieve legacy conditions (v1alpha4), failureReason and failureMessage from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - } - } - - // Move initialization to old fields - dst.Status.BootstrapReady = ptr.Deref(src.Status.Initialization.BootstrapDataSecretCreated, false) - dst.Status.InfrastructureReady = ptr.Deref(src.Status.Initialization.InfrastructureProvisioned, false) - - dropEmptyStringsMachineSpec(&dst.Spec) - - // Preserve Hub data on down-conversion except for metadata - if err := utilconversion.MarshalData(src, dst); err != nil { - return err - } - - return nil -} - -func (src *MachineSet) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachineSet) - - if err := Convert_v1alpha4_MachineSet_To_v1beta2_MachineSet(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha4), failureReason, failureMessage and replica counters to the deprecated field. - dst.Status.Deprecated = &clusterv1.MachineSetDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.MachineSetV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - dst.Status.Deprecated.V1Beta1.ReadyReplicas = src.Status.ReadyReplicas - dst.Status.Deprecated.V1Beta1.AvailableReplicas = src.Status.AvailableReplicas - dst.Status.Deprecated.V1Beta1.FullyLabeledReplicas = src.Status.FullyLabeledReplicas - - if src.Spec.MinReadySeconds == 0 { - dst.Spec.Template.Spec.MinReadySeconds = nil - } else { - dst.Spec.Template.Spec.MinReadySeconds = &src.Spec.MinReadySeconds - } - - // Manually restore data. - restored := &clusterv1.MachineSet{} - if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok { - return err - } - - dst.Spec.Template.Spec.ReadinessGates = restored.Spec.Template.Spec.ReadinessGates - dst.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds - dst.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds - dst.Status.Conditions = restored.Status.Conditions - dst.Status.AvailableReplicas = restored.Status.AvailableReplicas - dst.Status.ReadyReplicas = restored.Status.ReadyReplicas - dst.Status.UpToDateReplicas = restored.Status.UpToDateReplicas - dst.Spec.MachineNaming = restored.Spec.MachineNaming - return nil -} - -func (dst *MachineSet) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachineSet) - - if err := Convert_v1beta2_MachineSet_To_v1alpha4_MachineSet(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha4). - dst.Status.Conditions = nil - - // Reset replica counters from autogenerated conversions - // NOTE: replica counters with a new semantic should not be automatically be converted into old replica counters. - dst.Status.AvailableReplicas = 0 - dst.Status.ReadyReplicas = 0 - - // Retrieve legacy conditions (v1alpha4), failureReason, failureMessage and replica counters from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - dst.Status.ReadyReplicas = src.Status.Deprecated.V1Beta1.ReadyReplicas - dst.Status.AvailableReplicas = src.Status.Deprecated.V1Beta1.AvailableReplicas - dst.Status.FullyLabeledReplicas = src.Status.Deprecated.V1Beta1.FullyLabeledReplicas - } - } - - dst.Spec.MinReadySeconds = ptr.Deref(src.Spec.Template.Spec.MinReadySeconds, 0) - - dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) - - // Preserve Hub data on down-conversion except for metadata - return utilconversion.MarshalData(src, dst) -} - -func (src *MachineDeployment) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachineDeployment) - - if err := Convert_v1alpha4_MachineDeployment_To_v1beta2_MachineDeployment(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha4) and replica counters to the deprecated field. - dst.Status.Deprecated = &clusterv1.MachineDeploymentDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.MachineDeploymentV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.ReadyReplicas = src.Status.ReadyReplicas - dst.Status.Deprecated.V1Beta1.AvailableReplicas = src.Status.AvailableReplicas - dst.Status.Deprecated.V1Beta1.UpdatedReplicas = src.Status.UpdatedReplicas - dst.Status.Deprecated.V1Beta1.UnavailableReplicas = src.Status.UnavailableReplicas - - dst.Spec.Template.Spec.MinReadySeconds = src.Spec.MinReadySeconds - - // Manually restore data. - restored := &clusterv1.MachineDeployment{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - clusterv1.Convert_bool_To_Pointer_bool(src.Spec.Paused, ok, restored.Spec.Paused, &dst.Spec.Paused) - - // Recover other values - if ok { - dst.Spec.Template.Spec.ReadinessGates = restored.Spec.Template.Spec.ReadinessGates - dst.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds - dst.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds - dst.Spec.Rollout.After = restored.Spec.Rollout.After - dst.Spec.Remediation = restored.Spec.Remediation - dst.Spec.MachineNaming = restored.Spec.MachineNaming - dst.Status.Conditions = restored.Status.Conditions - dst.Status.AvailableReplicas = restored.Status.AvailableReplicas - dst.Status.ReadyReplicas = restored.Status.ReadyReplicas - dst.Status.UpToDateReplicas = restored.Status.UpToDateReplicas - } - - return nil -} - -func (dst *MachineDeployment) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachineDeployment) - - if err := Convert_v1beta2_MachineDeployment_To_v1alpha4_MachineDeployment(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha4). - dst.Status.Conditions = nil - - // Reset replica counters from autogenerated conversions - // NOTE: replica counters with a new semantic should not be automatically be converted into old replica counters. - dst.Status.AvailableReplicas = 0 - dst.Status.ReadyReplicas = 0 - - // Retrieve legacy conditions (v1alpha4), failureReason, failureMessage and replica counters from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.ReadyReplicas = src.Status.Deprecated.V1Beta1.ReadyReplicas - dst.Status.AvailableReplicas = src.Status.Deprecated.V1Beta1.AvailableReplicas - dst.Status.UpdatedReplicas = src.Status.Deprecated.V1Beta1.UpdatedReplicas - dst.Status.UnavailableReplicas = src.Status.Deprecated.V1Beta1.UnavailableReplicas - } - } - - dst.Spec.MinReadySeconds = src.Spec.Template.Spec.MinReadySeconds - - dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) - - // Preserve Hub data on down-conversion except for metadata - return utilconversion.MarshalData(src, dst) -} - -func (src *MachineHealthCheck) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachineHealthCheck) - - if err := Convert_v1alpha4_MachineHealthCheck_To_v1beta2_MachineHealthCheck(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha4) to the deprecated field. - if src.Status.Conditions != nil { - dst.Status.Deprecated = &clusterv1.MachineHealthCheckDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.MachineHealthCheckV1Beta1DeprecatedStatus{} - Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - - // Manually restore data. - restored := &clusterv1.MachineHealthCheck{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - clusterv1.Convert_int32_To_Pointer_int32(src.Status.ExpectedMachines, ok, restored.Status.ExpectedMachines, &dst.Status.ExpectedMachines) - clusterv1.Convert_int32_To_Pointer_int32(src.Status.CurrentHealthy, ok, restored.Status.CurrentHealthy, &dst.Status.CurrentHealthy) - clusterv1.Convert_int32_To_Pointer_int32(src.Status.RemediationsAllowed, ok, restored.Status.RemediationsAllowed, &dst.Status.RemediationsAllowed) - - if !ok { - return nil - } - - dst.Status.Conditions = restored.Status.Conditions - - return nil -} - -func (dst *MachineHealthCheck) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachineHealthCheck) - - if err := Convert_v1beta2_MachineHealthCheck_To_v1alpha4_MachineHealthCheck(src, dst, nil); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha4). - dst.Status.Conditions = nil - - // Retrieve legacy conditions (v1alpha4) from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - } - } - - if dst.Spec.RemediationTemplate != nil { - dst.Spec.RemediationTemplate.Namespace = src.Namespace - } - - // Preserve Hub data on down-conversion except for metadata - return utilconversion.MarshalData(src, dst) -} - -func (src *MachinePool) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*clusterv1.MachinePool) - - if err := Convert_v1alpha4_MachinePool_To_v1beta2_MachinePool(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions. - dst.Status.Conditions = nil - - // Move legacy conditions (v1alpha4), failureReason, failureMessage and replica counters to the deprecated field. - dst.Status.Deprecated = &clusterv1.MachinePoolDeprecatedStatus{} - dst.Status.Deprecated.V1Beta1 = &clusterv1.MachinePoolV1Beta1DeprecatedStatus{} - if src.Status.Conditions != nil { - Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions) - } - dst.Status.Deprecated.V1Beta1.FailureReason = src.Status.FailureReason - dst.Status.Deprecated.V1Beta1.FailureMessage = src.Status.FailureMessage - dst.Status.Deprecated.V1Beta1.ReadyReplicas = src.Status.ReadyReplicas - dst.Status.Deprecated.V1Beta1.AvailableReplicas = src.Status.AvailableReplicas - dst.Status.Deprecated.V1Beta1.UnavailableReplicas = src.Status.UnavailableReplicas - dst.Spec.Template.Spec.MinReadySeconds = src.Spec.MinReadySeconds - - // Manually restore data. - restored := &clusterv1.MachinePool{} - ok, err := utilconversion.UnmarshalData(src, restored) - if err != nil { - return err - } - - // Recover intent for bool values converted to *bool. - initialization := clusterv1.MachinePoolInitializationStatus{} - restoredBootstrapDataSecretCreated := restored.Status.Initialization.BootstrapDataSecretCreated - restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned - clusterv1.Convert_bool_To_Pointer_bool(src.Status.BootstrapReady, ok, restoredBootstrapDataSecretCreated, &initialization.BootstrapDataSecretCreated) - clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) - if !reflect.DeepEqual(initialization, clusterv1.MachinePoolInitializationStatus{}) { - dst.Status.Initialization = initialization - } - - // Recover other values - if ok { - dst.Spec.Template.Spec.ReadinessGates = restored.Spec.Template.Spec.ReadinessGates - dst.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeDeletionTimeoutSeconds - dst.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds = restored.Spec.Template.Spec.Deletion.NodeVolumeDetachTimeoutSeconds - dst.Status.Conditions = restored.Status.Conditions - dst.Status.AvailableReplicas = restored.Status.AvailableReplicas - dst.Status.ReadyReplicas = restored.Status.ReadyReplicas - dst.Status.UpToDateReplicas = restored.Status.UpToDateReplicas - } - - return nil -} - -func (dst *MachinePool) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*clusterv1.MachinePool) - - if err := Convert_v1beta2_MachinePool_To_v1alpha4_MachinePool(src, dst, nil); err != nil { - return err - } - - if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { - return err - } - - // Reset conditions from autogenerated conversions - // NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1alpha4). - dst.Status.Conditions = nil - - // Reset replica counters from autogenerated conversions - // NOTE: replica counters with a new semantic should not be automatically be converted into old replica counters. - dst.Status.ReadyReplicas = 0 - dst.Status.AvailableReplicas = 0 - - // Retrieve legacy conditions (v1alpha4), failureReason, failureMessage and replica counters from the deprecated field. - if src.Status.Deprecated != nil { - if src.Status.Deprecated.V1Beta1 != nil { - if src.Status.Deprecated.V1Beta1.Conditions != nil { - Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions) - } - dst.Status.FailureReason = src.Status.Deprecated.V1Beta1.FailureReason - dst.Status.FailureMessage = src.Status.Deprecated.V1Beta1.FailureMessage - dst.Status.ReadyReplicas = src.Status.Deprecated.V1Beta1.ReadyReplicas - dst.Status.AvailableReplicas = src.Status.Deprecated.V1Beta1.AvailableReplicas - dst.Status.UnavailableReplicas = src.Status.Deprecated.V1Beta1.UnavailableReplicas - } - } - - // Move initialization to old fields - dst.Status.BootstrapReady = ptr.Deref(src.Status.Initialization.BootstrapDataSecretCreated, false) - dst.Status.InfrastructureReady = ptr.Deref(src.Status.Initialization.InfrastructureProvisioned, false) - - dst.Spec.MinReadySeconds = src.Spec.Template.Spec.MinReadySeconds - - dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) - - // Preserve Hub data on down-conversion except for metadata - return utilconversion.MarshalData(src, dst) -} - -func Convert_v1alpha4_MachineStatus_To_v1beta2_MachineStatus(in *MachineStatus, out *clusterv1.MachineStatus, s apimachineryconversion.Scope) error { - // Status.version has been removed in v1beta1, thus requiring custom conversion function. the information will be dropped. - if err := autoConvert_v1alpha4_MachineStatus_To_v1beta2_MachineStatus(in, out, s); err != nil { - return err - } - if in.LastUpdated != nil && !reflect.DeepEqual(in.LastUpdated, &metav1.Time{}) { - out.LastUpdated = *in.LastUpdated - } - if in.NodeRef != nil && !reflect.DeepEqual(in.NodeRef, &corev1.ObjectReference{}) { - out.NodeRef.Name = in.NodeRef.Name - } - return nil -} - -func Convert_v1beta2_ClusterClassSpec_To_v1alpha4_ClusterClassSpec(in *clusterv1.ClusterClassSpec, out *ClusterClassSpec, s apimachineryconversion.Scope) error { - // spec.{variables,patches} has been added with v1beta1. - return autoConvert_v1beta2_ClusterClassSpec_To_v1alpha4_ClusterClassSpec(in, out, s) -} - -func Convert_v1alpha4_ControlPlaneClass_To_v1beta2_ControlPlaneClass(in *ControlPlaneClass, out *clusterv1.ControlPlaneClass, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_ControlPlaneClass_To_v1beta2_ControlPlaneClass(in, out, s); err != nil { - return err - } - - convert_v1alpha4_LocalObjectTemplate_To_v1beta2_ClusterClassTemplateReference(&in.LocalObjectTemplate, &out.TemplateRef, s) - if in.MachineInfrastructure != nil { - if err := Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_ControlPlaneClassMachineInfrastructureTemplate(in.MachineInfrastructure, &out.MachineInfrastructure, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_InfrastructureClass_To_v1alpha4_LocalObjectTemplate(in *clusterv1.InfrastructureClass, out *LocalObjectTemplate, s apimachineryconversion.Scope) error { - if in == nil { - return nil - } - - Convert_v1beta2_ClusterClassTemplateReference_To_v1alpha4_LocalObjectTemplate(&in.TemplateRef, out, s) - return nil -} - -func Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_InfrastructureClass(in *LocalObjectTemplate, out *clusterv1.InfrastructureClass, s apimachineryconversion.Scope) error { - if in == nil { - return nil - } - - convert_v1alpha4_LocalObjectTemplate_To_v1beta2_ClusterClassTemplateReference(in, &out.TemplateRef, s) - return nil -} - -func Convert_v1beta2_MachineSpec_To_v1alpha4_MachineSpec(in *clusterv1.MachineSpec, out *MachineSpec, s apimachineryconversion.Scope) error { - // spec.nodeDeletionTimeout was added in v1beta1. - // ReadinessGates was added in v1beta1. - if err := autoConvert_v1beta2_MachineSpec_To_v1alpha4_MachineSpec(in, out, s); err != nil { - return err - } - out.NodeDrainTimeout = clusterv1.ConvertFromSeconds(in.Deletion.NodeDrainTimeoutSeconds) - return nil -} - -func Convert_v1beta2_MachineDeploymentSpec_To_v1alpha4_MachineDeploymentSpec(in *clusterv1.MachineDeploymentSpec, out *MachineDeploymentSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_MachineDeploymentSpec_To_v1alpha4_MachineDeploymentSpec(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.Rollout.Strategy, clusterv1.MachineDeploymentRolloutStrategy{}) { - out.Strategy = &MachineDeploymentStrategy{} - out.Strategy.Type = MachineDeploymentStrategyType(in.Rollout.Strategy.Type) - if !reflect.DeepEqual(in.Rollout.Strategy.RollingUpdate, clusterv1.MachineDeploymentRolloutStrategyRollingUpdate{}) { - out.Strategy.RollingUpdate = &MachineRollingUpdateDeployment{} - if err := Convert_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate_To_v1alpha4_MachineRollingUpdateDeployment(&in.Rollout.Strategy.RollingUpdate, out.Strategy.RollingUpdate, s); err != nil { - return err - } - } - } - if in.Deletion.Order != "" { - if out.Strategy == nil { - out.Strategy = &MachineDeploymentStrategy{} - } - if out.Strategy.RollingUpdate == nil { - out.Strategy.RollingUpdate = &MachineRollingUpdateDeployment{} - } - out.Strategy.RollingUpdate.DeletePolicy = ptr.To(string(in.Deletion.Order)) - } - - return nil -} - -func Convert_v1alpha4_ClusterSpec_To_v1beta2_ClusterSpec(in *ClusterSpec, out *clusterv1.ClusterSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_ClusterSpec_To_v1beta2_ClusterSpec(in, out, s); err != nil { - return err - } - if in.ClusterNetwork != nil { - if err := Convert_v1alpha4_ClusterNetwork_To_v1beta2_ClusterNetwork(in.ClusterNetwork, &out.ClusterNetwork, s); err != nil { - return err - } - } - if in.Topology != nil { - if err := Convert_v1alpha4_Topology_To_v1beta2_Topology(in.Topology, &out.Topology, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_ClusterSpec_To_v1alpha4_ClusterSpec(in *clusterv1.ClusterSpec, out *ClusterSpec, s apimachineryconversion.Scope) error { // AvailabilityGates was added in v1alpha4. - if err := autoConvert_v1beta2_ClusterSpec_To_v1alpha4_ClusterSpec(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.ClusterNetwork, clusterv1.ClusterNetwork{}) { - out.ClusterNetwork = &ClusterNetwork{} - if err := Convert_v1beta2_ClusterNetwork_To_v1alpha4_ClusterNetwork(&in.ClusterNetwork, out.ClusterNetwork, s); err != nil { - return err - } - } - if !reflect.DeepEqual(in.Topology, clusterv1.Topology{}) { - out.Topology = &Topology{} - if err := Convert_v1beta2_Topology_To_v1alpha4_Topology(&in.Topology, out.Topology, s); err != nil { - return err - } - } - - return nil -} - -func Convert_v1alpha4_ClusterNetwork_To_v1beta2_ClusterNetwork(in *ClusterNetwork, out *clusterv1.ClusterNetwork, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_ClusterNetwork_To_v1beta2_ClusterNetwork(in, out, s); err != nil { - return err - } - if in.Services != nil { - if err := autoConvert_v1alpha4_NetworkRanges_To_v1beta2_NetworkRanges(in.Services, &out.Services, s); err != nil { - return err - } - } - if in.Pods != nil { - if err := autoConvert_v1alpha4_NetworkRanges_To_v1beta2_NetworkRanges(in.Pods, &out.Pods, s); err != nil { - return err - } - } - - return nil -} - -func Convert_v1beta2_ClusterNetwork_To_v1alpha4_ClusterNetwork(in *clusterv1.ClusterNetwork, out *ClusterNetwork, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_ClusterNetwork_To_v1alpha4_ClusterNetwork(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.Services, clusterv1.NetworkRanges{}) { - out.Services = &NetworkRanges{} - if err := autoConvert_v1beta2_NetworkRanges_To_v1alpha4_NetworkRanges(&in.Services, out.Services, s); err != nil { - return err - } - } - - if !reflect.DeepEqual(in.Pods, clusterv1.NetworkRanges{}) { - out.Pods = &NetworkRanges{} - if err := autoConvert_v1beta2_NetworkRanges_To_v1alpha4_NetworkRanges(&in.Pods, out.Pods, s); err != nil { - return err - } - } - - return nil -} - -func Convert_v1beta2_ClusterStatus_To_v1alpha4_ClusterStatus(in *clusterv1.ClusterStatus, out *ClusterStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1beta1. - if err := autoConvert_v1beta2_ClusterStatus_To_v1alpha4_ClusterStatus(in, out, s); err != nil { - return err - } - - // Move FailureDomains - if in.FailureDomains != nil { - out.FailureDomains = FailureDomains{} - for _, fd := range in.FailureDomains { - out.FailureDomains[fd.Name] = FailureDomainSpec{ - ControlPlane: ptr.Deref(fd.ControlPlane, false), - Attributes: fd.Attributes, - } - } - } - - return nil -} - -func Convert_v1beta2_Topology_To_v1alpha4_Topology(in *clusterv1.Topology, out *Topology, s apimachineryconversion.Scope) error { - // spec.topology.variables has been added with v1beta1. - if err := autoConvert_v1beta2_Topology_To_v1alpha4_Topology(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.Workers, clusterv1.WorkersTopology{}) { - out.Workers = &WorkersTopology{} - if err := autoConvert_v1beta2_WorkersTopology_To_v1alpha4_WorkersTopology(&in.Workers, out.Workers, s); err != nil { - return err - } - } - out.Class = in.ClassRef.Name - return nil -} - -// Convert_v1beta2_MachineDeploymentTopology_To_v1alpha4_MachineDeploymentTopology is an autogenerated conversion function. -func Convert_v1beta2_MachineDeploymentTopology_To_v1alpha4_MachineDeploymentTopology(in *clusterv1.MachineDeploymentTopology, out *MachineDeploymentTopology, s apimachineryconversion.Scope) error { - // MachineDeploymentTopology.FailureDomain has been added with v1beta1. - return autoConvert_v1beta2_MachineDeploymentTopology_To_v1alpha4_MachineDeploymentTopology(in, out, s) -} - -func Convert_v1alpha4_MachineDeploymentClass_To_v1beta2_MachineDeploymentClass(in *MachineDeploymentClass, out *clusterv1.MachineDeploymentClass, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_MachineDeploymentClass_To_v1beta2_MachineDeploymentClass(in, out, s); err != nil { - return err - } - if err := Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(&in.Template.Metadata, &out.Metadata, s); err != nil { - return err - } - if err := Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_MachineDeploymentClassBootstrapTemplate(&in.Template.Bootstrap, &out.Bootstrap, s); err != nil { - return err - } - if err := Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_MachineDeploymentClassInfrastructureTemplate(&in.Template.Infrastructure, &out.Infrastructure, s); err != nil { - return err - } - return nil -} - -func Convert_v1beta2_MachineDeploymentClass_To_v1alpha4_MachineDeploymentClass(in *clusterv1.MachineDeploymentClass, out *MachineDeploymentClass, s apimachineryconversion.Scope) error { - // machineDeploymentClass.machineHealthCheck has been added with v1beta1. - if err := autoConvert_v1beta2_MachineDeploymentClass_To_v1alpha4_MachineDeploymentClass(in, out, s); err != nil { - return err - } - if err := Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(&in.Metadata, &out.Template.Metadata, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineDeploymentClassBootstrapTemplate_To_v1alpha4_LocalObjectTemplate(&in.Bootstrap, &out.Template.Bootstrap, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineDeploymentClassInfrastructureTemplate_To_v1alpha4_LocalObjectTemplate(&in.Infrastructure, &out.Template.Infrastructure, s); err != nil { - return err - } - return nil -} - -func Convert_v1beta2_ControlPlaneClass_To_v1alpha4_ControlPlaneClass(in *clusterv1.ControlPlaneClass, out *ControlPlaneClass, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_ControlPlaneClass_To_v1alpha4_ControlPlaneClass(in, out, s); err != nil { - return err - } - - Convert_v1beta2_ClusterClassTemplateReference_To_v1alpha4_LocalObjectTemplate(&in.TemplateRef, &out.LocalObjectTemplate, s) - if in.MachineInfrastructure.TemplateRef.IsDefined() { - out.MachineInfrastructure = &LocalObjectTemplate{} - if err := Convert_v1beta2_ControlPlaneClassMachineInfrastructureTemplate_To_v1alpha4_LocalObjectTemplate(&in.MachineInfrastructure, out.MachineInfrastructure, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1alpha4_Topology_To_v1beta2_Topology(in *Topology, out *clusterv1.Topology, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_Topology_To_v1beta2_Topology(in, out, s); err != nil { - return err - } - if in.Workers != nil { - if err := autoConvert_v1alpha4_WorkersTopology_To_v1beta2_WorkersTopology(in.Workers, &out.Workers, s); err != nil { - return err - } - } - out.ClassRef.Name = in.Class - return nil -} - -func Convert_v1beta2_ControlPlaneTopology_To_v1alpha4_ControlPlaneTopology(in *clusterv1.ControlPlaneTopology, out *ControlPlaneTopology, s apimachineryconversion.Scope) error { - // controlPlaneTopology.nodeDrainTimeout has been added with v1beta1. - return autoConvert_v1beta2_ControlPlaneTopology_To_v1alpha4_ControlPlaneTopology(in, out, s) -} - -func Convert_v1beta2_MachineStatus_To_v1alpha4_MachineStatus(in *clusterv1.MachineStatus, out *MachineStatus, s apimachineryconversion.Scope) error { - // MachineStatus.CertificatesExpiryDate has been added in v1beta1. - // V1Beta2 was added in v1beta1. - if err := autoConvert_v1beta2_MachineStatus_To_v1alpha4_MachineStatus(in, out, s); err != nil { - return err - } - if !reflect.DeepEqual(in.LastUpdated, metav1.Time{}) { - out.LastUpdated = ptr.To(in.LastUpdated) - } - if in.NodeRef.IsDefined() { - out.NodeRef = &corev1.ObjectReference{ - Name: in.NodeRef.Name, - APIVersion: corev1.SchemeGroupVersion.String(), - Kind: "Node", - } - } - return nil -} - -func Convert_v1beta2_ClusterClass_To_v1alpha4_ClusterClass(in *clusterv1.ClusterClass, out *ClusterClass, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_ClusterClass_To_v1alpha4_ClusterClass(in, out, s); err != nil { - return err - } - - if out.Spec.Infrastructure.Ref != nil { - out.Spec.Infrastructure.Ref.Namespace = in.Namespace - } - if out.Spec.ControlPlane.Ref != nil { - out.Spec.ControlPlane.Ref.Namespace = in.Namespace - } - if out.Spec.ControlPlane.MachineInfrastructure != nil && out.Spec.ControlPlane.MachineInfrastructure.Ref != nil { - out.Spec.ControlPlane.MachineInfrastructure.Ref.Namespace = in.Namespace - } - for _, md := range out.Spec.Workers.MachineDeployments { - if md.Template.Bootstrap.Ref != nil { - md.Template.Bootstrap.Ref.Namespace = in.Namespace - } - if md.Template.Infrastructure.Ref != nil { - md.Template.Infrastructure.Ref.Namespace = in.Namespace - } - } - return nil -} - -func Convert_v1beta2_WorkersClass_To_v1alpha4_WorkersClass(in *clusterv1.WorkersClass, out *WorkersClass, s apimachineryconversion.Scope) error { - // WorkersClass.MachinePools has been added in v1beta1. - return autoConvert_v1beta2_WorkersClass_To_v1alpha4_WorkersClass(in, out, s) -} - -func Convert_v1beta2_WorkersTopology_To_v1alpha4_WorkersTopology(in *clusterv1.WorkersTopology, out *WorkersTopology, s apimachineryconversion.Scope) error { - // WorkersTopology.MachinePools has been added in v1beta1. - return autoConvert_v1beta2_WorkersTopology_To_v1alpha4_WorkersTopology(in, out, s) -} - -func Convert_v1beta2_MachineSetSpec_To_v1alpha4_MachineSetSpec(in *clusterv1.MachineSetSpec, out *MachineSetSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_MachineSetSpec_To_v1alpha4_MachineSetSpec(in, out, s); err != nil { - return err - } - - out.DeletePolicy = string(in.Deletion.Order) - return nil -} - -func Convert_v1beta2_MachineDeploymentStatus_To_v1alpha4_MachineDeploymentStatus(in *clusterv1.MachineDeploymentStatus, out *MachineDeploymentStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1beta1. - return autoConvert_v1beta2_MachineDeploymentStatus_To_v1alpha4_MachineDeploymentStatus(in, out, s) -} - -func Convert_v1beta2_MachineSetStatus_To_v1alpha4_MachineSetStatus(in *clusterv1.MachineSetStatus, out *MachineSetStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1beta1. - return autoConvert_v1beta2_MachineSetStatus_To_v1alpha4_MachineSetStatus(in, out, s) -} - -func Convert_v1alpha4_MachineHealthCheckSpec_To_v1beta2_MachineHealthCheckSpec(in *MachineHealthCheckSpec, out *clusterv1.MachineHealthCheckSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_MachineHealthCheckSpec_To_v1beta2_MachineHealthCheckSpec(in, out, s); err != nil { - return err - } - - for _, c := range in.UnhealthyConditions { - out.Checks.UnhealthyNodeConditions = append(out.Checks.UnhealthyNodeConditions, clusterv1.UnhealthyNodeCondition{ - Type: c.Type, - Status: c.Status, - TimeoutSeconds: clusterv1.ConvertToSeconds(&c.Timeout), - }) - } - out.Checks.NodeStartupTimeoutSeconds = clusterv1.ConvertToSeconds(in.NodeStartupTimeout) - out.Remediation.TriggerIf.UnhealthyLessThanOrEqualTo = in.MaxUnhealthy - out.Remediation.TriggerIf.UnhealthyInRange = ptr.Deref(in.UnhealthyRange, "") - if in.RemediationTemplate != nil { - if err := clusterv1beta1.Convert_v1_ObjectReference_To_v1beta2_MachineHealthCheckRemediationTemplateReference(in.RemediationTemplate, &out.Remediation.TemplateRef, s); err != nil { - return err - } - } - - return nil -} - -func Convert_v1beta2_MachineHealthCheckSpec_To_v1alpha4_MachineHealthCheckSpec(in *clusterv1.MachineHealthCheckSpec, out *MachineHealthCheckSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_MachineHealthCheckSpec_To_v1alpha4_MachineHealthCheckSpec(in, out, s); err != nil { - return err - } - - for _, c := range in.Checks.UnhealthyNodeConditions { - out.UnhealthyConditions = append(out.UnhealthyConditions, UnhealthyCondition{ - Type: c.Type, - Status: c.Status, - Timeout: ptr.Deref(clusterv1.ConvertFromSeconds(c.TimeoutSeconds), metav1.Duration{}), - }) - } - out.NodeStartupTimeout = clusterv1.ConvertFromSeconds(in.Checks.NodeStartupTimeoutSeconds) - out.MaxUnhealthy = in.Remediation.TriggerIf.UnhealthyLessThanOrEqualTo - if in.Remediation.TriggerIf.UnhealthyInRange != "" { - out.UnhealthyRange = ptr.To(in.Remediation.TriggerIf.UnhealthyInRange) - } - if in.Remediation.TemplateRef.IsDefined() { - out.RemediationTemplate = &corev1.ObjectReference{} - if err := clusterv1beta1.Convert_v1beta2_MachineHealthCheckRemediationTemplateReference_To_v1_ObjectReference(&in.Remediation.TemplateRef, out.RemediationTemplate, s); err != nil { - return err - } - } - - return nil -} - -func Convert_v1beta2_MachineHealthCheckStatus_To_v1alpha4_MachineHealthCheckStatus(in *clusterv1.MachineHealthCheckStatus, out *MachineHealthCheckStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1beta1. - return autoConvert_v1beta2_MachineHealthCheckStatus_To_v1alpha4_MachineHealthCheckStatus(in, out, s) -} - -func Convert_v1alpha4_ClusterStatus_To_v1beta2_ClusterStatus(in *ClusterStatus, out *clusterv1.ClusterStatus, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_ClusterStatus_To_v1beta2_ClusterStatus(in, out, s); err != nil { - return err - } - - // Move FailureDomains - if in.FailureDomains != nil { - out.FailureDomains = []clusterv1.FailureDomain{} - domainNames := slices.Collect(maps.Keys(in.FailureDomains)) - sort.Strings(domainNames) - for _, name := range domainNames { - fd := in.FailureDomains[name] - out.FailureDomains = append(out.FailureDomains, clusterv1.FailureDomain{ - Name: name, - ControlPlane: nil, // Note: this field will be computed in ConvertTo - Attributes: fd.Attributes, - }) - } - } - - return nil -} - -func Convert_v1alpha4_MachineDeploymentSpec_To_v1beta2_MachineDeploymentSpec(in *MachineDeploymentSpec, out *clusterv1.MachineDeploymentSpec, s apimachineryconversion.Scope) error { - // NOTE: v1beta2 MachineDeploymentSpec does not have ProgressDeadlineSeconds anymore. But it's fine to just lose this field it was never used. - if err := autoConvert_v1alpha4_MachineDeploymentSpec_To_v1beta2_MachineDeploymentSpec(in, out, s); err != nil { - return err - } - if in.Strategy != nil { - out.Rollout.Strategy.Type = clusterv1.MachineDeploymentRolloutStrategyType(in.Strategy.Type) - if in.Strategy.RollingUpdate != nil { - if err := Convert_v1alpha4_MachineRollingUpdateDeployment_To_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate(in.Strategy.RollingUpdate, &out.Rollout.Strategy.RollingUpdate, s); err != nil { - return err - } - } - if in.Strategy.RollingUpdate != nil && in.Strategy.RollingUpdate.DeletePolicy != nil { - out.Deletion.Order = clusterv1.MachineSetDeletionOrder(*in.Strategy.RollingUpdate.DeletePolicy) - } - } - - return nil -} - -func Convert_v1alpha4_MachineDeploymentStatus_To_v1beta2_MachineDeploymentStatus(in *MachineDeploymentStatus, out *clusterv1.MachineDeploymentStatus, s apimachineryconversion.Scope) error { - return autoConvert_v1alpha4_MachineDeploymentStatus_To_v1beta2_MachineDeploymentStatus(in, out, s) -} - -func Convert_v1alpha4_MachineSetStatus_To_v1beta2_MachineSetStatus(in *MachineSetStatus, out *clusterv1.MachineSetStatus, s apimachineryconversion.Scope) error { - return autoConvert_v1alpha4_MachineSetStatus_To_v1beta2_MachineSetStatus(in, out, s) -} - -func Convert_v1_Condition_To_v1alpha4_Condition(_ *metav1.Condition, _ *Condition, _ apimachineryconversion.Scope) error { - // NOTE: v1beta2 conditions should not be automatically converted into legacy (v1alpha4) conditions. - return nil -} - -func Convert_v1alpha4_Condition_To_v1_Condition(_ *Condition, _ *metav1.Condition, _ apimachineryconversion.Scope) error { - // NOTE: legacy (v1alpha4) conditions should not be automatically converted into v1beta2 conditions. - return nil -} - -func Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(in *clusterv1.Conditions, out *Conditions) { - *out = make(Conditions, len(*in)) - for i := range *in { - (*out)[i] = *(*Condition)(unsafe.Pointer(&(*in)[i])) - } -} - -func Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(in *Conditions, out *clusterv1.Conditions) { - *out = make(clusterv1.Conditions, len(*in)) - for i := range *in { - (*out)[i] = *(*clusterv1.Condition)(unsafe.Pointer(&(*in)[i])) - } -} - -func Convert_v1alpha4_MachineSetSpec_To_v1beta2_MachineSetSpec(in *MachineSetSpec, out *clusterv1.MachineSetSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_MachineSetSpec_To_v1beta2_MachineSetSpec(in, out, s); err != nil { - return err - } - - out.Deletion.Order = clusterv1.MachineSetDeletionOrder(in.DeletePolicy) - return nil -} - -func Convert_v1beta2_MachinePoolStatus_To_v1alpha4_MachinePoolStatus(in *clusterv1.MachinePoolStatus, out *MachinePoolStatus, s apimachineryconversion.Scope) error { - // V1Beta2 was added in v1beta1 - return autoConvert_v1beta2_MachinePoolStatus_To_v1alpha4_MachinePoolStatus(in, out, s) -} - -func Convert_v1alpha4_MachinePoolStatus_To_v1beta2_MachinePoolStatus(in *MachinePoolStatus, out *clusterv1.MachinePoolStatus, scope apimachineryconversion.Scope) error { - return autoConvert_v1alpha4_MachinePoolStatus_To_v1beta2_MachinePoolStatus(in, out, scope) -} - -func Convert_v1alpha4_MachineSpec_To_v1beta2_MachineSpec(in *MachineSpec, out *clusterv1.MachineSpec, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_MachineSpec_To_v1beta2_MachineSpec(in, out, s); err != nil { - return err - } - out.Deletion.NodeDrainTimeoutSeconds = clusterv1.ConvertToSeconds(in.NodeDrainTimeout) - return nil -} - -func Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_ControlPlaneClassMachineInfrastructureTemplate(in *LocalObjectTemplate, out *clusterv1.ControlPlaneClassMachineInfrastructureTemplate, s apimachineryconversion.Scope) error { - convert_v1alpha4_LocalObjectTemplate_To_v1beta2_ClusterClassTemplateReference(in, &out.TemplateRef, s) - return nil -} - -func Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_MachineDeploymentClassBootstrapTemplate(in *LocalObjectTemplate, out *clusterv1.MachineDeploymentClassBootstrapTemplate, s apimachineryconversion.Scope) error { - convert_v1alpha4_LocalObjectTemplate_To_v1beta2_ClusterClassTemplateReference(in, &out.TemplateRef, s) - return nil -} - -func Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_MachineDeploymentClassInfrastructureTemplate(in *LocalObjectTemplate, out *clusterv1.MachineDeploymentClassInfrastructureTemplate, s apimachineryconversion.Scope) error { - convert_v1alpha4_LocalObjectTemplate_To_v1beta2_ClusterClassTemplateReference(in, &out.TemplateRef, s) - return nil -} - -func convert_v1alpha4_LocalObjectTemplate_To_v1beta2_ClusterClassTemplateReference(in *LocalObjectTemplate, out *clusterv1.ClusterClassTemplateReference, _ apimachineryconversion.Scope) { - if in == nil || in.Ref == nil { - return - } - - *out = clusterv1.ClusterClassTemplateReference{ - Kind: in.Ref.Kind, - Name: in.Ref.Name, - APIVersion: in.Ref.APIVersion, - } -} - -func Convert_v1beta2_ControlPlaneClassMachineInfrastructureTemplate_To_v1alpha4_LocalObjectTemplate(in *clusterv1.ControlPlaneClassMachineInfrastructureTemplate, out *LocalObjectTemplate, s apimachineryconversion.Scope) error { - Convert_v1beta2_ClusterClassTemplateReference_To_v1alpha4_LocalObjectTemplate(&in.TemplateRef, out, s) - return nil -} - -func Convert_v1beta2_MachineDeploymentClassBootstrapTemplate_To_v1alpha4_LocalObjectTemplate(in *clusterv1.MachineDeploymentClassBootstrapTemplate, out *LocalObjectTemplate, s apimachineryconversion.Scope) error { - Convert_v1beta2_ClusterClassTemplateReference_To_v1alpha4_LocalObjectTemplate(&in.TemplateRef, out, s) - return nil -} - -func Convert_v1beta2_MachineDeploymentClassInfrastructureTemplate_To_v1alpha4_LocalObjectTemplate(in *clusterv1.MachineDeploymentClassInfrastructureTemplate, out *LocalObjectTemplate, s apimachineryconversion.Scope) error { - Convert_v1beta2_ClusterClassTemplateReference_To_v1alpha4_LocalObjectTemplate(&in.TemplateRef, out, s) - return nil -} - -func Convert_v1beta2_ClusterClassTemplateReference_To_v1alpha4_LocalObjectTemplate(in *clusterv1.ClusterClassTemplateReference, out *LocalObjectTemplate, _ apimachineryconversion.Scope) { - if in == nil { - return - } - - out.Ref = &corev1.ObjectReference{ - Kind: in.Kind, - Name: in.Name, - APIVersion: in.APIVersion, - } -} - -func Convert_v1alpha4_MachinePoolSpec_To_v1beta2_MachinePoolSpec(in *MachinePoolSpec, out *clusterv1.MachinePoolSpec, s apimachineryconversion.Scope) error { - return autoConvert_v1alpha4_MachinePoolSpec_To_v1beta2_MachinePoolSpec(in, out, s) -} - -func Convert_v1alpha4_MachineRollingUpdateDeployment_To_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate(in *MachineRollingUpdateDeployment, out *clusterv1.MachineDeploymentRolloutStrategyRollingUpdate, _ apimachineryconversion.Scope) error { - out.MaxUnavailable = in.MaxUnavailable - out.MaxSurge = in.MaxSurge - return nil -} - -func Convert_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate_To_v1alpha4_MachineRollingUpdateDeployment(in *clusterv1.MachineDeploymentRolloutStrategyRollingUpdate, out *MachineRollingUpdateDeployment, _ apimachineryconversion.Scope) error { - out.MaxUnavailable = in.MaxUnavailable - out.MaxSurge = in.MaxSurge - return nil -} - -func Convert_v1alpha4_Bootstrap_To_v1beta2_Bootstrap(in *Bootstrap, out *clusterv1.Bootstrap, s apimachineryconversion.Scope) error { - if err := autoConvert_v1alpha4_Bootstrap_To_v1beta2_Bootstrap(in, out, s); err != nil { - return err - } - if in.ConfigRef != nil { - if err := clusterv1beta1.Convert_v1_ObjectReference_To_v1beta2_ContractVersionedObjectReference(in.ConfigRef, &out.ConfigRef, s); err != nil { - return err - } - } - return nil -} - -func Convert_v1beta2_Bootstrap_To_v1alpha4_Bootstrap(in *clusterv1.Bootstrap, out *Bootstrap, s apimachineryconversion.Scope) error { - if err := autoConvert_v1beta2_Bootstrap_To_v1alpha4_Bootstrap(in, out, s); err != nil { - return err - } - if in.ConfigRef.IsDefined() { - out.ConfigRef = &corev1.ObjectReference{} - if err := clusterv1beta1.Convert_v1beta2_ContractVersionedObjectReference_To_v1_ObjectReference(&in.ConfigRef, out.ConfigRef, s); err != nil { - return err - } - } - return nil -} - -func convertMachineSpecToContractVersionedObjectReference(src *MachineSpec, dst *clusterv1.MachineSpec) error { - infraRef, err := convertToContractVersionedObjectReference(&src.InfrastructureRef) - if err != nil { - return err - } - dst.InfrastructureRef = infraRef - - if src.Bootstrap.ConfigRef != nil { - bootstrapRef, err := convertToContractVersionedObjectReference(src.Bootstrap.ConfigRef) - if err != nil { - return err - } - dst.Bootstrap.ConfigRef = bootstrapRef - } - - return nil -} - -func convertMachineSpecToObjectReference(src *clusterv1.MachineSpec, dst *MachineSpec, namespace string) error { - if src.InfrastructureRef.IsDefined() { - infraRef, err := convertToObjectReference(src.InfrastructureRef, namespace) - if err != nil { - return err - } - dst.InfrastructureRef = *infraRef - } - - if src.Bootstrap.ConfigRef.IsDefined() { - bootstrapRef, err := convertToObjectReference(src.Bootstrap.ConfigRef, namespace) - if err != nil { - return err - } - dst.Bootstrap.ConfigRef = bootstrapRef - } - - return nil -} - -func convertToContractVersionedObjectReference(ref *corev1.ObjectReference) (clusterv1.ContractVersionedObjectReference, error) { - var apiGroup string - if ref.APIVersion != "" { - gv, err := schema.ParseGroupVersion(ref.APIVersion) - if err != nil { - return clusterv1.ContractVersionedObjectReference{}, fmt.Errorf("failed to convert object: failed to parse apiVersion: %v", err) - } - apiGroup = gv.Group - } - return clusterv1.ContractVersionedObjectReference{ - APIGroup: apiGroup, - Kind: ref.Kind, - Name: ref.Name, - }, nil -} - -func convertToObjectReference(ref clusterv1.ContractVersionedObjectReference, namespace string) (*corev1.ObjectReference, error) { - apiVersion, err := apiVersionGetter(schema.GroupKind{ - Group: ref.APIGroup, - Kind: ref.Kind, - }) - if err != nil { - return nil, fmt.Errorf("failed to convert object: %v", err) - } - return &corev1.ObjectReference{ - APIVersion: apiVersion, - Kind: ref.Kind, - Namespace: namespace, - Name: ref.Name, - }, nil -} - -func dropEmptyStringsMachineSpec(spec *MachineSpec) { - dropEmptyString(&spec.Version) - dropEmptyString(&spec.ProviderID) - dropEmptyString(&spec.FailureDomain) -} - -func dropEmptyString(s **string) { - if *s != nil && **s == "" { - *s = nil - } -} diff --git a/internal/api/core/v1alpha4/machine_types.go b/internal/api/core/v1alpha4/machine_types.go index 9928bfc128f4..89116bfab200 100644 --- a/internal/api/core/v1alpha4/machine_types.go +++ b/internal/api/core/v1alpha4/machine_types.go @@ -20,7 +20,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/internal/api/core/v1alpha4/machinepool_types.go b/internal/api/core/v1alpha4/machinepool_types.go index ce9c6f3a3b62..97edd37a2cb0 100644 --- a/internal/api/core/v1alpha4/machinepool_types.go +++ b/internal/api/core/v1alpha4/machinepool_types.go @@ -20,7 +20,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/internal/api/core/v1alpha4/machineset_types.go b/internal/api/core/v1alpha4/machineset_types.go index e37acf63c995..f44634b5a120 100644 --- a/internal/api/core/v1alpha4/machineset_types.go +++ b/internal/api/core/v1alpha4/machineset_types.go @@ -22,7 +22,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/validation/field" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" ) const ( diff --git a/internal/api/core/v1alpha4/zz_generated.conversion.go b/internal/api/core/v1alpha4/zz_generated.conversion.go deleted file mode 100644 index aca82dc6be1d..000000000000 --- a/internal/api/core/v1alpha4/zz_generated.conversion.go +++ /dev/null @@ -1,1947 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -/* -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 conversion-gen. DO NOT EDIT. - -package v1alpha4 - -import ( - unsafe "unsafe" - - corev1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - v1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" - v1beta2 "sigs.k8s.io/cluster-api/api/core/v1beta2" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*APIEndpoint)(nil), (*v1beta2.APIEndpoint)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_APIEndpoint_To_v1beta2_APIEndpoint(a.(*APIEndpoint), b.(*v1beta2.APIEndpoint), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.APIEndpoint)(nil), (*APIEndpoint)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_APIEndpoint_To_v1alpha4_APIEndpoint(a.(*v1beta2.APIEndpoint), b.(*APIEndpoint), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*Cluster)(nil), (*v1beta2.Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_Cluster_To_v1beta2_Cluster(a.(*Cluster), b.(*v1beta2.Cluster), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.Cluster)(nil), (*Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_Cluster_To_v1alpha4_Cluster(a.(*v1beta2.Cluster), b.(*Cluster), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterClass)(nil), (*v1beta2.ClusterClass)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterClass_To_v1beta2_ClusterClass(a.(*ClusterClass), b.(*v1beta2.ClusterClass), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterClassList)(nil), (*v1beta2.ClusterClassList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterClassList_To_v1beta2_ClusterClassList(a.(*ClusterClassList), b.(*v1beta2.ClusterClassList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterClassList)(nil), (*ClusterClassList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterClassList_To_v1alpha4_ClusterClassList(a.(*v1beta2.ClusterClassList), b.(*ClusterClassList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterClassSpec)(nil), (*v1beta2.ClusterClassSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterClassSpec_To_v1beta2_ClusterClassSpec(a.(*ClusterClassSpec), b.(*v1beta2.ClusterClassSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ClusterList)(nil), (*v1beta2.ClusterList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterList_To_v1beta2_ClusterList(a.(*ClusterList), b.(*v1beta2.ClusterList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ClusterList)(nil), (*ClusterList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterList_To_v1alpha4_ClusterList(a.(*v1beta2.ClusterList), b.(*ClusterList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*Condition)(nil), (*v1beta2.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_Condition_To_v1beta2_Condition(a.(*Condition), b.(*v1beta2.Condition), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.Condition)(nil), (*Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_Condition_To_v1alpha4_Condition(a.(*v1beta2.Condition), b.(*Condition), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ControlPlaneTopology)(nil), (*v1beta2.ControlPlaneTopology)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ControlPlaneTopology_To_v1beta2_ControlPlaneTopology(a.(*ControlPlaneTopology), b.(*v1beta2.ControlPlaneTopology), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*Machine)(nil), (*v1beta2.Machine)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_Machine_To_v1beta2_Machine(a.(*Machine), b.(*v1beta2.Machine), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.Machine)(nil), (*Machine)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_Machine_To_v1alpha4_Machine(a.(*v1beta2.Machine), b.(*Machine), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineAddress)(nil), (*v1beta2.MachineAddress)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineAddress_To_v1beta2_MachineAddress(a.(*MachineAddress), b.(*v1beta2.MachineAddress), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineAddress)(nil), (*MachineAddress)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineAddress_To_v1alpha4_MachineAddress(a.(*v1beta2.MachineAddress), b.(*MachineAddress), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineDeployment)(nil), (*v1beta2.MachineDeployment)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineDeployment_To_v1beta2_MachineDeployment(a.(*MachineDeployment), b.(*v1beta2.MachineDeployment), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineDeployment)(nil), (*MachineDeployment)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeployment_To_v1alpha4_MachineDeployment(a.(*v1beta2.MachineDeployment), b.(*MachineDeployment), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineDeploymentList)(nil), (*v1beta2.MachineDeploymentList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineDeploymentList_To_v1beta2_MachineDeploymentList(a.(*MachineDeploymentList), b.(*v1beta2.MachineDeploymentList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineDeploymentList)(nil), (*MachineDeploymentList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentList_To_v1alpha4_MachineDeploymentList(a.(*v1beta2.MachineDeploymentList), b.(*MachineDeploymentList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineDeploymentTopology)(nil), (*v1beta2.MachineDeploymentTopology)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineDeploymentTopology_To_v1beta2_MachineDeploymentTopology(a.(*MachineDeploymentTopology), b.(*v1beta2.MachineDeploymentTopology), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineHealthCheck)(nil), (*v1beta2.MachineHealthCheck)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineHealthCheck_To_v1beta2_MachineHealthCheck(a.(*MachineHealthCheck), b.(*v1beta2.MachineHealthCheck), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineHealthCheck)(nil), (*MachineHealthCheck)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineHealthCheck_To_v1alpha4_MachineHealthCheck(a.(*v1beta2.MachineHealthCheck), b.(*MachineHealthCheck), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineHealthCheckList)(nil), (*v1beta2.MachineHealthCheckList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineHealthCheckList_To_v1beta2_MachineHealthCheckList(a.(*MachineHealthCheckList), b.(*v1beta2.MachineHealthCheckList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineHealthCheckList)(nil), (*MachineHealthCheckList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineHealthCheckList_To_v1alpha4_MachineHealthCheckList(a.(*v1beta2.MachineHealthCheckList), b.(*MachineHealthCheckList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineHealthCheckStatus)(nil), (*v1beta2.MachineHealthCheckStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus(a.(*MachineHealthCheckStatus), b.(*v1beta2.MachineHealthCheckStatus), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineList)(nil), (*v1beta2.MachineList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineList_To_v1beta2_MachineList(a.(*MachineList), b.(*v1beta2.MachineList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineList)(nil), (*MachineList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineList_To_v1alpha4_MachineList(a.(*v1beta2.MachineList), b.(*MachineList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachinePool)(nil), (*v1beta2.MachinePool)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachinePool_To_v1beta2_MachinePool(a.(*MachinePool), b.(*v1beta2.MachinePool), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachinePool)(nil), (*MachinePool)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachinePool_To_v1alpha4_MachinePool(a.(*v1beta2.MachinePool), b.(*MachinePool), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachinePoolList)(nil), (*v1beta2.MachinePoolList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachinePoolList_To_v1beta2_MachinePoolList(a.(*MachinePoolList), b.(*v1beta2.MachinePoolList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachinePoolList)(nil), (*MachinePoolList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachinePoolList_To_v1alpha4_MachinePoolList(a.(*v1beta2.MachinePoolList), b.(*MachinePoolList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachinePoolSpec)(nil), (*MachinePoolSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachinePoolSpec_To_v1alpha4_MachinePoolSpec(a.(*v1beta2.MachinePoolSpec), b.(*MachinePoolSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineSet)(nil), (*v1beta2.MachineSet)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineSet_To_v1beta2_MachineSet(a.(*MachineSet), b.(*v1beta2.MachineSet), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineSet)(nil), (*MachineSet)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineSet_To_v1alpha4_MachineSet(a.(*v1beta2.MachineSet), b.(*MachineSet), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineSetList)(nil), (*v1beta2.MachineSetList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineSetList_To_v1beta2_MachineSetList(a.(*MachineSetList), b.(*v1beta2.MachineSetList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineSetList)(nil), (*MachineSetList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineSetList_To_v1alpha4_MachineSetList(a.(*v1beta2.MachineSetList), b.(*MachineSetList), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*MachineTemplateSpec)(nil), (*v1beta2.MachineTemplateSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(a.(*MachineTemplateSpec), b.(*v1beta2.MachineTemplateSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.MachineTemplateSpec)(nil), (*MachineTemplateSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineTemplateSpec_To_v1alpha4_MachineTemplateSpec(a.(*v1beta2.MachineTemplateSpec), b.(*MachineTemplateSpec), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*NetworkRanges)(nil), (*v1beta2.NetworkRanges)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_NetworkRanges_To_v1beta2_NetworkRanges(a.(*NetworkRanges), b.(*v1beta2.NetworkRanges), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.NetworkRanges)(nil), (*NetworkRanges)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_NetworkRanges_To_v1alpha4_NetworkRanges(a.(*v1beta2.NetworkRanges), b.(*NetworkRanges), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ObjectMeta)(nil), (*v1beta2.ObjectMeta)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(a.(*ObjectMeta), b.(*v1beta2.ObjectMeta), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*v1beta2.ObjectMeta)(nil), (*ObjectMeta)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(a.(*v1beta2.ObjectMeta), b.(*ObjectMeta), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*WorkersClass)(nil), (*v1beta2.WorkersClass)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_WorkersClass_To_v1beta2_WorkersClass(a.(*WorkersClass), b.(*v1beta2.WorkersClass), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*WorkersTopology)(nil), (*v1beta2.WorkersTopology)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_WorkersTopology_To_v1beta2_WorkersTopology(a.(*WorkersTopology), b.(*v1beta2.WorkersTopology), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1.Condition)(nil), (*Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_Condition_To_v1alpha4_Condition(a.(*v1.Condition), b.(*Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*Bootstrap)(nil), (*v1beta2.Bootstrap)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_Bootstrap_To_v1beta2_Bootstrap(a.(*Bootstrap), b.(*v1beta2.Bootstrap), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ClusterNetwork)(nil), (*v1beta2.ClusterNetwork)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterNetwork_To_v1beta2_ClusterNetwork(a.(*ClusterNetwork), b.(*v1beta2.ClusterNetwork), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ClusterSpec)(nil), (*v1beta2.ClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterSpec_To_v1beta2_ClusterSpec(a.(*ClusterSpec), b.(*v1beta2.ClusterSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ClusterStatus)(nil), (*v1beta2.ClusterStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ClusterStatus_To_v1beta2_ClusterStatus(a.(*ClusterStatus), b.(*v1beta2.ClusterStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*Condition)(nil), (*v1.Condition)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_Condition_To_v1_Condition(a.(*Condition), b.(*v1.Condition), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*ControlPlaneClass)(nil), (*v1beta2.ControlPlaneClass)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_ControlPlaneClass_To_v1beta2_ControlPlaneClass(a.(*ControlPlaneClass), b.(*v1beta2.ControlPlaneClass), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*LocalObjectTemplate)(nil), (*v1beta2.ControlPlaneClassMachineInfrastructureTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_ControlPlaneClassMachineInfrastructureTemplate(a.(*LocalObjectTemplate), b.(*v1beta2.ControlPlaneClassMachineInfrastructureTemplate), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*LocalObjectTemplate)(nil), (*v1beta2.InfrastructureClass)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_InfrastructureClass(a.(*LocalObjectTemplate), b.(*v1beta2.InfrastructureClass), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*LocalObjectTemplate)(nil), (*v1beta2.MachineDeploymentClassBootstrapTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_MachineDeploymentClassBootstrapTemplate(a.(*LocalObjectTemplate), b.(*v1beta2.MachineDeploymentClassBootstrapTemplate), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*LocalObjectTemplate)(nil), (*v1beta2.MachineDeploymentClassInfrastructureTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_MachineDeploymentClassInfrastructureTemplate(a.(*LocalObjectTemplate), b.(*v1beta2.MachineDeploymentClassInfrastructureTemplate), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineDeploymentClass)(nil), (*v1beta2.MachineDeploymentClass)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineDeploymentClass_To_v1beta2_MachineDeploymentClass(a.(*MachineDeploymentClass), b.(*v1beta2.MachineDeploymentClass), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineDeploymentSpec)(nil), (*v1beta2.MachineDeploymentSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineDeploymentSpec_To_v1beta2_MachineDeploymentSpec(a.(*MachineDeploymentSpec), b.(*v1beta2.MachineDeploymentSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineDeploymentStatus)(nil), (*v1beta2.MachineDeploymentStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineDeploymentStatus_To_v1beta2_MachineDeploymentStatus(a.(*MachineDeploymentStatus), b.(*v1beta2.MachineDeploymentStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineHealthCheckSpec)(nil), (*v1beta2.MachineHealthCheckSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineHealthCheckSpec_To_v1beta2_MachineHealthCheckSpec(a.(*MachineHealthCheckSpec), b.(*v1beta2.MachineHealthCheckSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachinePoolSpec)(nil), (*v1beta2.MachinePoolSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachinePoolSpec_To_v1beta2_MachinePoolSpec(a.(*MachinePoolSpec), b.(*v1beta2.MachinePoolSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachinePoolStatus)(nil), (*v1beta2.MachinePoolStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachinePoolStatus_To_v1beta2_MachinePoolStatus(a.(*MachinePoolStatus), b.(*v1beta2.MachinePoolStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineRollingUpdateDeployment)(nil), (*v1beta2.MachineDeploymentRolloutStrategyRollingUpdate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineRollingUpdateDeployment_To_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate(a.(*MachineRollingUpdateDeployment), b.(*v1beta2.MachineDeploymentRolloutStrategyRollingUpdate), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineSetSpec)(nil), (*v1beta2.MachineSetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineSetSpec_To_v1beta2_MachineSetSpec(a.(*MachineSetSpec), b.(*v1beta2.MachineSetSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineSetStatus)(nil), (*v1beta2.MachineSetStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineSetStatus_To_v1beta2_MachineSetStatus(a.(*MachineSetStatus), b.(*v1beta2.MachineSetStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineSpec)(nil), (*v1beta2.MachineSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineSpec_To_v1beta2_MachineSpec(a.(*MachineSpec), b.(*v1beta2.MachineSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*MachineStatus)(nil), (*v1beta2.MachineStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_MachineStatus_To_v1beta2_MachineStatus(a.(*MachineStatus), b.(*v1beta2.MachineStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*Topology)(nil), (*v1beta2.Topology)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1alpha4_Topology_To_v1beta2_Topology(a.(*Topology), b.(*v1beta2.Topology), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.Bootstrap)(nil), (*Bootstrap)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_Bootstrap_To_v1alpha4_Bootstrap(a.(*v1beta2.Bootstrap), b.(*Bootstrap), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterClassSpec)(nil), (*ClusterClassSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterClassSpec_To_v1alpha4_ClusterClassSpec(a.(*v1beta2.ClusterClassSpec), b.(*ClusterClassSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterClass)(nil), (*ClusterClass)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterClass_To_v1alpha4_ClusterClass(a.(*v1beta2.ClusterClass), b.(*ClusterClass), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterNetwork)(nil), (*ClusterNetwork)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterNetwork_To_v1alpha4_ClusterNetwork(a.(*v1beta2.ClusterNetwork), b.(*ClusterNetwork), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterSpec)(nil), (*ClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterSpec_To_v1alpha4_ClusterSpec(a.(*v1beta2.ClusterSpec), b.(*ClusterSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ClusterStatus)(nil), (*ClusterStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ClusterStatus_To_v1alpha4_ClusterStatus(a.(*v1beta2.ClusterStatus), b.(*ClusterStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ControlPlaneClassMachineInfrastructureTemplate)(nil), (*LocalObjectTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ControlPlaneClassMachineInfrastructureTemplate_To_v1alpha4_LocalObjectTemplate(a.(*v1beta2.ControlPlaneClassMachineInfrastructureTemplate), b.(*LocalObjectTemplate), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ControlPlaneClass)(nil), (*ControlPlaneClass)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ControlPlaneClass_To_v1alpha4_ControlPlaneClass(a.(*v1beta2.ControlPlaneClass), b.(*ControlPlaneClass), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.ControlPlaneTopology)(nil), (*ControlPlaneTopology)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_ControlPlaneTopology_To_v1alpha4_ControlPlaneTopology(a.(*v1beta2.ControlPlaneTopology), b.(*ControlPlaneTopology), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.InfrastructureClass)(nil), (*LocalObjectTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_InfrastructureClass_To_v1alpha4_LocalObjectTemplate(a.(*v1beta2.InfrastructureClass), b.(*LocalObjectTemplate), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineDeploymentClassBootstrapTemplate)(nil), (*LocalObjectTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentClassBootstrapTemplate_To_v1alpha4_LocalObjectTemplate(a.(*v1beta2.MachineDeploymentClassBootstrapTemplate), b.(*LocalObjectTemplate), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineDeploymentClassInfrastructureTemplate)(nil), (*LocalObjectTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentClassInfrastructureTemplate_To_v1alpha4_LocalObjectTemplate(a.(*v1beta2.MachineDeploymentClassInfrastructureTemplate), b.(*LocalObjectTemplate), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineDeploymentClass)(nil), (*MachineDeploymentClass)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentClass_To_v1alpha4_MachineDeploymentClass(a.(*v1beta2.MachineDeploymentClass), b.(*MachineDeploymentClass), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineDeploymentRolloutStrategyRollingUpdate)(nil), (*MachineRollingUpdateDeployment)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentRolloutStrategyRollingUpdate_To_v1alpha4_MachineRollingUpdateDeployment(a.(*v1beta2.MachineDeploymentRolloutStrategyRollingUpdate), b.(*MachineRollingUpdateDeployment), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineDeploymentSpec)(nil), (*MachineDeploymentSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentSpec_To_v1alpha4_MachineDeploymentSpec(a.(*v1beta2.MachineDeploymentSpec), b.(*MachineDeploymentSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineDeploymentStatus)(nil), (*MachineDeploymentStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentStatus_To_v1alpha4_MachineDeploymentStatus(a.(*v1beta2.MachineDeploymentStatus), b.(*MachineDeploymentStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineDeploymentTopology)(nil), (*MachineDeploymentTopology)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineDeploymentTopology_To_v1alpha4_MachineDeploymentTopology(a.(*v1beta2.MachineDeploymentTopology), b.(*MachineDeploymentTopology), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineHealthCheckSpec)(nil), (*MachineHealthCheckSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineHealthCheckSpec_To_v1alpha4_MachineHealthCheckSpec(a.(*v1beta2.MachineHealthCheckSpec), b.(*MachineHealthCheckSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineHealthCheckStatus)(nil), (*MachineHealthCheckStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineHealthCheckStatus_To_v1alpha4_MachineHealthCheckStatus(a.(*v1beta2.MachineHealthCheckStatus), b.(*MachineHealthCheckStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachinePoolStatus)(nil), (*MachinePoolStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachinePoolStatus_To_v1alpha4_MachinePoolStatus(a.(*v1beta2.MachinePoolStatus), b.(*MachinePoolStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineSetSpec)(nil), (*MachineSetSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineSetSpec_To_v1alpha4_MachineSetSpec(a.(*v1beta2.MachineSetSpec), b.(*MachineSetSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineSetStatus)(nil), (*MachineSetStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineSetStatus_To_v1alpha4_MachineSetStatus(a.(*v1beta2.MachineSetStatus), b.(*MachineSetStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineSpec)(nil), (*MachineSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineSpec_To_v1alpha4_MachineSpec(a.(*v1beta2.MachineSpec), b.(*MachineSpec), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.MachineStatus)(nil), (*MachineStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_MachineStatus_To_v1alpha4_MachineStatus(a.(*v1beta2.MachineStatus), b.(*MachineStatus), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.Topology)(nil), (*Topology)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_Topology_To_v1alpha4_Topology(a.(*v1beta2.Topology), b.(*Topology), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.WorkersClass)(nil), (*WorkersClass)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_WorkersClass_To_v1alpha4_WorkersClass(a.(*v1beta2.WorkersClass), b.(*WorkersClass), scope) - }); err != nil { - return err - } - if err := s.AddConversionFunc((*v1beta2.WorkersTopology)(nil), (*WorkersTopology)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1beta2_WorkersTopology_To_v1alpha4_WorkersTopology(a.(*v1beta2.WorkersTopology), b.(*WorkersTopology), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha4_APIEndpoint_To_v1beta2_APIEndpoint(in *APIEndpoint, out *v1beta2.APIEndpoint, s conversion.Scope) error { - out.Host = in.Host - out.Port = in.Port - return nil -} - -// Convert_v1alpha4_APIEndpoint_To_v1beta2_APIEndpoint is an autogenerated conversion function. -func Convert_v1alpha4_APIEndpoint_To_v1beta2_APIEndpoint(in *APIEndpoint, out *v1beta2.APIEndpoint, s conversion.Scope) error { - return autoConvert_v1alpha4_APIEndpoint_To_v1beta2_APIEndpoint(in, out, s) -} - -func autoConvert_v1beta2_APIEndpoint_To_v1alpha4_APIEndpoint(in *v1beta2.APIEndpoint, out *APIEndpoint, s conversion.Scope) error { - out.Host = in.Host - out.Port = in.Port - return nil -} - -// Convert_v1beta2_APIEndpoint_To_v1alpha4_APIEndpoint is an autogenerated conversion function. -func Convert_v1beta2_APIEndpoint_To_v1alpha4_APIEndpoint(in *v1beta2.APIEndpoint, out *APIEndpoint, s conversion.Scope) error { - return autoConvert_v1beta2_APIEndpoint_To_v1alpha4_APIEndpoint(in, out, s) -} - -func autoConvert_v1alpha4_Bootstrap_To_v1beta2_Bootstrap(in *Bootstrap, out *v1beta2.Bootstrap, s conversion.Scope) error { - // WARNING: in.ConfigRef requires manual conversion: inconvertible types (*k8s.io/api/core/v1.ObjectReference vs sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference) - out.DataSecretName = (*string)(unsafe.Pointer(in.DataSecretName)) - return nil -} - -func autoConvert_v1beta2_Bootstrap_To_v1alpha4_Bootstrap(in *v1beta2.Bootstrap, out *Bootstrap, s conversion.Scope) error { - // WARNING: in.ConfigRef requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference vs *k8s.io/api/core/v1.ObjectReference) - out.DataSecretName = (*string)(unsafe.Pointer(in.DataSecretName)) - return nil -} - -func autoConvert_v1alpha4_Cluster_To_v1beta2_Cluster(in *Cluster, out *v1beta2.Cluster, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha4_ClusterSpec_To_v1beta2_ClusterSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha4_ClusterStatus_To_v1beta2_ClusterStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_Cluster_To_v1beta2_Cluster is an autogenerated conversion function. -func Convert_v1alpha4_Cluster_To_v1beta2_Cluster(in *Cluster, out *v1beta2.Cluster, s conversion.Scope) error { - return autoConvert_v1alpha4_Cluster_To_v1beta2_Cluster(in, out, s) -} - -func autoConvert_v1beta2_Cluster_To_v1alpha4_Cluster(in *v1beta2.Cluster, out *Cluster, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_ClusterSpec_To_v1alpha4_ClusterSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_ClusterStatus_To_v1alpha4_ClusterStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_Cluster_To_v1alpha4_Cluster is an autogenerated conversion function. -func Convert_v1beta2_Cluster_To_v1alpha4_Cluster(in *v1beta2.Cluster, out *Cluster, s conversion.Scope) error { - return autoConvert_v1beta2_Cluster_To_v1alpha4_Cluster(in, out, s) -} - -func autoConvert_v1alpha4_ClusterClass_To_v1beta2_ClusterClass(in *ClusterClass, out *v1beta2.ClusterClass, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha4_ClusterClassSpec_To_v1beta2_ClusterClassSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_ClusterClass_To_v1beta2_ClusterClass is an autogenerated conversion function. -func Convert_v1alpha4_ClusterClass_To_v1beta2_ClusterClass(in *ClusterClass, out *v1beta2.ClusterClass, s conversion.Scope) error { - return autoConvert_v1alpha4_ClusterClass_To_v1beta2_ClusterClass(in, out, s) -} - -func autoConvert_v1beta2_ClusterClass_To_v1alpha4_ClusterClass(in *v1beta2.ClusterClass, out *ClusterClass, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_ClusterClassSpec_To_v1alpha4_ClusterClassSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - // WARNING: in.Status requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_ClusterClassList_To_v1beta2_ClusterClassList(in *ClusterClassList, out *v1beta2.ClusterClassList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.ClusterClass, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_ClusterClass_To_v1beta2_ClusterClass(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha4_ClusterClassList_To_v1beta2_ClusterClassList is an autogenerated conversion function. -func Convert_v1alpha4_ClusterClassList_To_v1beta2_ClusterClassList(in *ClusterClassList, out *v1beta2.ClusterClassList, s conversion.Scope) error { - return autoConvert_v1alpha4_ClusterClassList_To_v1beta2_ClusterClassList(in, out, s) -} - -func autoConvert_v1beta2_ClusterClassList_To_v1alpha4_ClusterClassList(in *v1beta2.ClusterClassList, out *ClusterClassList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterClass, len(*in)) - for i := range *in { - if err := Convert_v1beta2_ClusterClass_To_v1alpha4_ClusterClass(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_ClusterClassList_To_v1alpha4_ClusterClassList is an autogenerated conversion function. -func Convert_v1beta2_ClusterClassList_To_v1alpha4_ClusterClassList(in *v1beta2.ClusterClassList, out *ClusterClassList, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterClassList_To_v1alpha4_ClusterClassList(in, out, s) -} - -func autoConvert_v1alpha4_ClusterClassSpec_To_v1beta2_ClusterClassSpec(in *ClusterClassSpec, out *v1beta2.ClusterClassSpec, s conversion.Scope) error { - if err := Convert_v1alpha4_LocalObjectTemplate_To_v1beta2_InfrastructureClass(&in.Infrastructure, &out.Infrastructure, s); err != nil { - return err - } - if err := Convert_v1alpha4_ControlPlaneClass_To_v1beta2_ControlPlaneClass(&in.ControlPlane, &out.ControlPlane, s); err != nil { - return err - } - if err := Convert_v1alpha4_WorkersClass_To_v1beta2_WorkersClass(&in.Workers, &out.Workers, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_ClusterClassSpec_To_v1beta2_ClusterClassSpec is an autogenerated conversion function. -func Convert_v1alpha4_ClusterClassSpec_To_v1beta2_ClusterClassSpec(in *ClusterClassSpec, out *v1beta2.ClusterClassSpec, s conversion.Scope) error { - return autoConvert_v1alpha4_ClusterClassSpec_To_v1beta2_ClusterClassSpec(in, out, s) -} - -func autoConvert_v1beta2_ClusterClassSpec_To_v1alpha4_ClusterClassSpec(in *v1beta2.ClusterClassSpec, out *ClusterClassSpec, s conversion.Scope) error { - // WARNING: in.AvailabilityGates requires manual conversion: does not exist in peer-type - if err := Convert_v1beta2_InfrastructureClass_To_v1alpha4_LocalObjectTemplate(&in.Infrastructure, &out.Infrastructure, s); err != nil { - return err - } - if err := Convert_v1beta2_ControlPlaneClass_To_v1alpha4_ControlPlaneClass(&in.ControlPlane, &out.ControlPlane, s); err != nil { - return err - } - if err := Convert_v1beta2_WorkersClass_To_v1alpha4_WorkersClass(&in.Workers, &out.Workers, s); err != nil { - return err - } - // WARNING: in.Variables requires manual conversion: does not exist in peer-type - // WARNING: in.Patches requires manual conversion: does not exist in peer-type - // WARNING: in.Upgrade requires manual conversion: does not exist in peer-type - // WARNING: in.KubernetesVersions requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_ClusterList_To_v1beta2_ClusterList(in *ClusterList, out *v1beta2.ClusterList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.Cluster, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_Cluster_To_v1beta2_Cluster(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha4_ClusterList_To_v1beta2_ClusterList is an autogenerated conversion function. -func Convert_v1alpha4_ClusterList_To_v1beta2_ClusterList(in *ClusterList, out *v1beta2.ClusterList, s conversion.Scope) error { - return autoConvert_v1alpha4_ClusterList_To_v1beta2_ClusterList(in, out, s) -} - -func autoConvert_v1beta2_ClusterList_To_v1alpha4_ClusterList(in *v1beta2.ClusterList, out *ClusterList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Cluster, len(*in)) - for i := range *in { - if err := Convert_v1beta2_Cluster_To_v1alpha4_Cluster(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_ClusterList_To_v1alpha4_ClusterList is an autogenerated conversion function. -func Convert_v1beta2_ClusterList_To_v1alpha4_ClusterList(in *v1beta2.ClusterList, out *ClusterList, s conversion.Scope) error { - return autoConvert_v1beta2_ClusterList_To_v1alpha4_ClusterList(in, out, s) -} - -func autoConvert_v1alpha4_ClusterNetwork_To_v1beta2_ClusterNetwork(in *ClusterNetwork, out *v1beta2.ClusterNetwork, s conversion.Scope) error { - if err := v1.Convert_Pointer_int32_To_int32(&in.APIServerPort, &out.APIServerPort, s); err != nil { - return err - } - // WARNING: in.Services requires manual conversion: inconvertible types (*sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.NetworkRanges vs sigs.k8s.io/cluster-api/api/core/v1beta2.NetworkRanges) - // WARNING: in.Pods requires manual conversion: inconvertible types (*sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.NetworkRanges vs sigs.k8s.io/cluster-api/api/core/v1beta2.NetworkRanges) - out.ServiceDomain = in.ServiceDomain - return nil -} - -func autoConvert_v1beta2_ClusterNetwork_To_v1alpha4_ClusterNetwork(in *v1beta2.ClusterNetwork, out *ClusterNetwork, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.APIServerPort, &out.APIServerPort, s); err != nil { - return err - } - // WARNING: in.Services requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.NetworkRanges vs *sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.NetworkRanges) - // WARNING: in.Pods requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.NetworkRanges vs *sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.NetworkRanges) - out.ServiceDomain = in.ServiceDomain - return nil -} - -func autoConvert_v1alpha4_ClusterSpec_To_v1beta2_ClusterSpec(in *ClusterSpec, out *v1beta2.ClusterSpec, s conversion.Scope) error { - if err := v1.Convert_bool_To_Pointer_bool(&in.Paused, &out.Paused, s); err != nil { - return err - } - // WARNING: in.ClusterNetwork requires manual conversion: inconvertible types (*sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.ClusterNetwork vs sigs.k8s.io/cluster-api/api/core/v1beta2.ClusterNetwork) - if err := Convert_v1alpha4_APIEndpoint_To_v1beta2_APIEndpoint(&in.ControlPlaneEndpoint, &out.ControlPlaneEndpoint, s); err != nil { - return err - } - // WARNING: in.ControlPlaneRef requires manual conversion: inconvertible types (*k8s.io/api/core/v1.ObjectReference vs sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference) - // WARNING: in.InfrastructureRef requires manual conversion: inconvertible types (*k8s.io/api/core/v1.ObjectReference vs sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference) - // WARNING: in.Topology requires manual conversion: inconvertible types (*sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.Topology vs sigs.k8s.io/cluster-api/api/core/v1beta2.Topology) - return nil -} - -func autoConvert_v1beta2_ClusterSpec_To_v1alpha4_ClusterSpec(in *v1beta2.ClusterSpec, out *ClusterSpec, s conversion.Scope) error { - if err := v1.Convert_Pointer_bool_To_bool(&in.Paused, &out.Paused, s); err != nil { - return err - } - // WARNING: in.ClusterNetwork requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.ClusterNetwork vs *sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.ClusterNetwork) - if err := Convert_v1beta2_APIEndpoint_To_v1alpha4_APIEndpoint(&in.ControlPlaneEndpoint, &out.ControlPlaneEndpoint, s); err != nil { - return err - } - // WARNING: in.ControlPlaneRef requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference vs *k8s.io/api/core/v1.ObjectReference) - // WARNING: in.InfrastructureRef requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.ContractVersionedObjectReference vs *k8s.io/api/core/v1.ObjectReference) - // WARNING: in.Topology requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.Topology vs *sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.Topology) - // WARNING: in.AvailabilityGates requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_ClusterStatus_To_v1beta2_ClusterStatus(in *ClusterStatus, out *v1beta2.ClusterStatus, s conversion.Scope) error { - // WARNING: in.FailureDomains requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.FailureDomains vs []sigs.k8s.io/cluster-api/api/core/v1beta2.FailureDomain) - // WARNING: in.FailureReason requires manual conversion: does not exist in peer-type - // WARNING: in.FailureMessage requires manual conversion: does not exist in peer-type - out.Phase = in.Phase - // WARNING: in.InfrastructureReady requires manual conversion: does not exist in peer-type - // WARNING: in.ControlPlaneReady requires manual conversion: does not exist in peer-type - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - out.ObservedGeneration = in.ObservedGeneration - return nil -} - -func autoConvert_v1beta2_ClusterStatus_To_v1alpha4_ClusterStatus(in *v1beta2.ClusterStatus, out *ClusterStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha4_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - // WARNING: in.Initialization requires manual conversion: does not exist in peer-type - // WARNING: in.ControlPlane requires manual conversion: does not exist in peer-type - // WARNING: in.Workers requires manual conversion: does not exist in peer-type - // WARNING: in.FailureDomains requires manual conversion: inconvertible types ([]sigs.k8s.io/cluster-api/api/core/v1beta2.FailureDomain vs sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.FailureDomains) - out.Phase = in.Phase - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_Condition_To_v1beta2_Condition(in *Condition, out *v1beta2.Condition, s conversion.Scope) error { - out.Type = v1beta2.ConditionType(in.Type) - out.Status = corev1.ConditionStatus(in.Status) - out.Severity = v1beta2.ConditionSeverity(in.Severity) - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v1alpha4_Condition_To_v1beta2_Condition is an autogenerated conversion function. -func Convert_v1alpha4_Condition_To_v1beta2_Condition(in *Condition, out *v1beta2.Condition, s conversion.Scope) error { - return autoConvert_v1alpha4_Condition_To_v1beta2_Condition(in, out, s) -} - -func autoConvert_v1beta2_Condition_To_v1alpha4_Condition(in *v1beta2.Condition, out *Condition, s conversion.Scope) error { - out.Type = ConditionType(in.Type) - out.Status = corev1.ConditionStatus(in.Status) - out.Severity = ConditionSeverity(in.Severity) - out.LastTransitionTime = in.LastTransitionTime - out.Reason = in.Reason - out.Message = in.Message - return nil -} - -// Convert_v1beta2_Condition_To_v1alpha4_Condition is an autogenerated conversion function. -func Convert_v1beta2_Condition_To_v1alpha4_Condition(in *v1beta2.Condition, out *Condition, s conversion.Scope) error { - return autoConvert_v1beta2_Condition_To_v1alpha4_Condition(in, out, s) -} - -func autoConvert_v1alpha4_ControlPlaneClass_To_v1beta2_ControlPlaneClass(in *ControlPlaneClass, out *v1beta2.ControlPlaneClass, s conversion.Scope) error { - if err := Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(&in.Metadata, &out.Metadata, s); err != nil { - return err - } - // WARNING: in.LocalObjectTemplate requires manual conversion: does not exist in peer-type - // WARNING: in.MachineInfrastructure requires manual conversion: inconvertible types (*sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.LocalObjectTemplate vs sigs.k8s.io/cluster-api/api/core/v1beta2.ControlPlaneClassMachineInfrastructureTemplate) - return nil -} - -func autoConvert_v1beta2_ControlPlaneClass_To_v1alpha4_ControlPlaneClass(in *v1beta2.ControlPlaneClass, out *ControlPlaneClass, s conversion.Scope) error { - if err := Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(&in.Metadata, &out.Metadata, s); err != nil { - return err - } - // WARNING: in.TemplateRef requires manual conversion: does not exist in peer-type - // WARNING: in.MachineInfrastructure requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.ControlPlaneClassMachineInfrastructureTemplate vs *sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.LocalObjectTemplate) - // WARNING: in.HealthCheck requires manual conversion: does not exist in peer-type - // WARNING: in.Naming requires manual conversion: does not exist in peer-type - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - // WARNING: in.ReadinessGates requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_ControlPlaneTopology_To_v1beta2_ControlPlaneTopology(in *ControlPlaneTopology, out *v1beta2.ControlPlaneTopology, s conversion.Scope) error { - if err := Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(&in.Metadata, &out.Metadata, s); err != nil { - return err - } - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - return nil -} - -// Convert_v1alpha4_ControlPlaneTopology_To_v1beta2_ControlPlaneTopology is an autogenerated conversion function. -func Convert_v1alpha4_ControlPlaneTopology_To_v1beta2_ControlPlaneTopology(in *ControlPlaneTopology, out *v1beta2.ControlPlaneTopology, s conversion.Scope) error { - return autoConvert_v1alpha4_ControlPlaneTopology_To_v1beta2_ControlPlaneTopology(in, out, s) -} - -func autoConvert_v1beta2_ControlPlaneTopology_To_v1alpha4_ControlPlaneTopology(in *v1beta2.ControlPlaneTopology, out *ControlPlaneTopology, s conversion.Scope) error { - if err := Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(&in.Metadata, &out.Metadata, s); err != nil { - return err - } - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - // WARNING: in.HealthCheck requires manual conversion: does not exist in peer-type - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - // WARNING: in.ReadinessGates requires manual conversion: does not exist in peer-type - // WARNING: in.Variables requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_Machine_To_v1beta2_Machine(in *Machine, out *v1beta2.Machine, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha4_MachineSpec_To_v1beta2_MachineSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha4_MachineStatus_To_v1beta2_MachineStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_Machine_To_v1beta2_Machine is an autogenerated conversion function. -func Convert_v1alpha4_Machine_To_v1beta2_Machine(in *Machine, out *v1beta2.Machine, s conversion.Scope) error { - return autoConvert_v1alpha4_Machine_To_v1beta2_Machine(in, out, s) -} - -func autoConvert_v1beta2_Machine_To_v1alpha4_Machine(in *v1beta2.Machine, out *Machine, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_MachineSpec_To_v1alpha4_MachineSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineStatus_To_v1alpha4_MachineStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_Machine_To_v1alpha4_Machine is an autogenerated conversion function. -func Convert_v1beta2_Machine_To_v1alpha4_Machine(in *v1beta2.Machine, out *Machine, s conversion.Scope) error { - return autoConvert_v1beta2_Machine_To_v1alpha4_Machine(in, out, s) -} - -func autoConvert_v1alpha4_MachineAddress_To_v1beta2_MachineAddress(in *MachineAddress, out *v1beta2.MachineAddress, s conversion.Scope) error { - out.Type = v1beta2.MachineAddressType(in.Type) - out.Address = in.Address - return nil -} - -// Convert_v1alpha4_MachineAddress_To_v1beta2_MachineAddress is an autogenerated conversion function. -func Convert_v1alpha4_MachineAddress_To_v1beta2_MachineAddress(in *MachineAddress, out *v1beta2.MachineAddress, s conversion.Scope) error { - return autoConvert_v1alpha4_MachineAddress_To_v1beta2_MachineAddress(in, out, s) -} - -func autoConvert_v1beta2_MachineAddress_To_v1alpha4_MachineAddress(in *v1beta2.MachineAddress, out *MachineAddress, s conversion.Scope) error { - out.Type = MachineAddressType(in.Type) - out.Address = in.Address - return nil -} - -// Convert_v1beta2_MachineAddress_To_v1alpha4_MachineAddress is an autogenerated conversion function. -func Convert_v1beta2_MachineAddress_To_v1alpha4_MachineAddress(in *v1beta2.MachineAddress, out *MachineAddress, s conversion.Scope) error { - return autoConvert_v1beta2_MachineAddress_To_v1alpha4_MachineAddress(in, out, s) -} - -func autoConvert_v1alpha4_MachineDeployment_To_v1beta2_MachineDeployment(in *MachineDeployment, out *v1beta2.MachineDeployment, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha4_MachineDeploymentSpec_To_v1beta2_MachineDeploymentSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha4_MachineDeploymentStatus_To_v1beta2_MachineDeploymentStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_MachineDeployment_To_v1beta2_MachineDeployment is an autogenerated conversion function. -func Convert_v1alpha4_MachineDeployment_To_v1beta2_MachineDeployment(in *MachineDeployment, out *v1beta2.MachineDeployment, s conversion.Scope) error { - return autoConvert_v1alpha4_MachineDeployment_To_v1beta2_MachineDeployment(in, out, s) -} - -func autoConvert_v1beta2_MachineDeployment_To_v1alpha4_MachineDeployment(in *v1beta2.MachineDeployment, out *MachineDeployment, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_MachineDeploymentSpec_To_v1alpha4_MachineDeploymentSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineDeploymentStatus_To_v1alpha4_MachineDeploymentStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_MachineDeployment_To_v1alpha4_MachineDeployment is an autogenerated conversion function. -func Convert_v1beta2_MachineDeployment_To_v1alpha4_MachineDeployment(in *v1beta2.MachineDeployment, out *MachineDeployment, s conversion.Scope) error { - return autoConvert_v1beta2_MachineDeployment_To_v1alpha4_MachineDeployment(in, out, s) -} - -func autoConvert_v1alpha4_MachineDeploymentClass_To_v1beta2_MachineDeploymentClass(in *MachineDeploymentClass, out *v1beta2.MachineDeploymentClass, s conversion.Scope) error { - out.Class = in.Class - // WARNING: in.Template requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_MachineDeploymentClass_To_v1alpha4_MachineDeploymentClass(in *v1beta2.MachineDeploymentClass, out *MachineDeploymentClass, s conversion.Scope) error { - // WARNING: in.Metadata requires manual conversion: does not exist in peer-type - out.Class = in.Class - // WARNING: in.Bootstrap requires manual conversion: does not exist in peer-type - // WARNING: in.Infrastructure requires manual conversion: does not exist in peer-type - // WARNING: in.HealthCheck requires manual conversion: does not exist in peer-type - // WARNING: in.FailureDomain requires manual conversion: does not exist in peer-type - // WARNING: in.Naming requires manual conversion: does not exist in peer-type - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - // WARNING: in.MinReadySeconds requires manual conversion: does not exist in peer-type - // WARNING: in.ReadinessGates requires manual conversion: does not exist in peer-type - // WARNING: in.Rollout requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_MachineDeploymentList_To_v1beta2_MachineDeploymentList(in *MachineDeploymentList, out *v1beta2.MachineDeploymentList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.MachineDeployment, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_MachineDeployment_To_v1beta2_MachineDeployment(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha4_MachineDeploymentList_To_v1beta2_MachineDeploymentList is an autogenerated conversion function. -func Convert_v1alpha4_MachineDeploymentList_To_v1beta2_MachineDeploymentList(in *MachineDeploymentList, out *v1beta2.MachineDeploymentList, s conversion.Scope) error { - return autoConvert_v1alpha4_MachineDeploymentList_To_v1beta2_MachineDeploymentList(in, out, s) -} - -func autoConvert_v1beta2_MachineDeploymentList_To_v1alpha4_MachineDeploymentList(in *v1beta2.MachineDeploymentList, out *MachineDeploymentList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MachineDeployment, len(*in)) - for i := range *in { - if err := Convert_v1beta2_MachineDeployment_To_v1alpha4_MachineDeployment(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_MachineDeploymentList_To_v1alpha4_MachineDeploymentList is an autogenerated conversion function. -func Convert_v1beta2_MachineDeploymentList_To_v1alpha4_MachineDeploymentList(in *v1beta2.MachineDeploymentList, out *MachineDeploymentList, s conversion.Scope) error { - return autoConvert_v1beta2_MachineDeploymentList_To_v1alpha4_MachineDeploymentList(in, out, s) -} - -func autoConvert_v1alpha4_MachineDeploymentSpec_To_v1beta2_MachineDeploymentSpec(in *MachineDeploymentSpec, out *v1beta2.MachineDeploymentSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - out.Selector = in.Selector - if err := Convert_v1alpha4_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - // WARNING: in.Strategy requires manual conversion: does not exist in peer-type - // WARNING: in.MinReadySeconds requires manual conversion: does not exist in peer-type - // WARNING: in.RevisionHistoryLimit requires manual conversion: does not exist in peer-type - if err := v1.Convert_bool_To_Pointer_bool(&in.Paused, &out.Paused, s); err != nil { - return err - } - // WARNING: in.ProgressDeadlineSeconds requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_MachineDeploymentSpec_To_v1alpha4_MachineDeploymentSpec(in *v1beta2.MachineDeploymentSpec, out *MachineDeploymentSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - // WARNING: in.Rollout requires manual conversion: does not exist in peer-type - out.Selector = in.Selector - if err := Convert_v1beta2_MachineTemplateSpec_To_v1alpha4_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - // WARNING: in.MachineNaming requires manual conversion: does not exist in peer-type - // WARNING: in.Remediation requires manual conversion: does not exist in peer-type - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - if err := v1.Convert_Pointer_bool_To_bool(&in.Paused, &out.Paused, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1alpha4_MachineDeploymentStatus_To_v1beta2_MachineDeploymentStatus(in *MachineDeploymentStatus, out *v1beta2.MachineDeploymentStatus, s conversion.Scope) error { - out.ObservedGeneration = in.ObservedGeneration - out.Selector = in.Selector - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - // WARNING: in.UpdatedReplicas requires manual conversion: does not exist in peer-type - if err := v1.Convert_int32_To_Pointer_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - // WARNING: in.UnavailableReplicas requires manual conversion: does not exist in peer-type - out.Phase = in.Phase - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -func autoConvert_v1beta2_MachineDeploymentStatus_To_v1alpha4_MachineDeploymentStatus(in *v1beta2.MachineDeploymentStatus, out *MachineDeploymentStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha4_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - out.ObservedGeneration = in.ObservedGeneration - out.Selector = in.Selector - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - // WARNING: in.UpToDateReplicas requires manual conversion: does not exist in peer-type - out.Phase = in.Phase - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_MachineDeploymentTopology_To_v1beta2_MachineDeploymentTopology(in *MachineDeploymentTopology, out *v1beta2.MachineDeploymentTopology, s conversion.Scope) error { - if err := Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(&in.Metadata, &out.Metadata, s); err != nil { - return err - } - out.Class = in.Class - out.Name = in.Name - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - return nil -} - -// Convert_v1alpha4_MachineDeploymentTopology_To_v1beta2_MachineDeploymentTopology is an autogenerated conversion function. -func Convert_v1alpha4_MachineDeploymentTopology_To_v1beta2_MachineDeploymentTopology(in *MachineDeploymentTopology, out *v1beta2.MachineDeploymentTopology, s conversion.Scope) error { - return autoConvert_v1alpha4_MachineDeploymentTopology_To_v1beta2_MachineDeploymentTopology(in, out, s) -} - -func autoConvert_v1beta2_MachineDeploymentTopology_To_v1alpha4_MachineDeploymentTopology(in *v1beta2.MachineDeploymentTopology, out *MachineDeploymentTopology, s conversion.Scope) error { - if err := Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(&in.Metadata, &out.Metadata, s); err != nil { - return err - } - out.Class = in.Class - out.Name = in.Name - // WARNING: in.FailureDomain requires manual conversion: does not exist in peer-type - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - // WARNING: in.HealthCheck requires manual conversion: does not exist in peer-type - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - // WARNING: in.MinReadySeconds requires manual conversion: does not exist in peer-type - // WARNING: in.ReadinessGates requires manual conversion: does not exist in peer-type - // WARNING: in.Rollout requires manual conversion: does not exist in peer-type - // WARNING: in.Variables requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_MachineHealthCheck_To_v1beta2_MachineHealthCheck(in *MachineHealthCheck, out *v1beta2.MachineHealthCheck, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha4_MachineHealthCheckSpec_To_v1beta2_MachineHealthCheckSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha4_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_MachineHealthCheck_To_v1beta2_MachineHealthCheck is an autogenerated conversion function. -func Convert_v1alpha4_MachineHealthCheck_To_v1beta2_MachineHealthCheck(in *MachineHealthCheck, out *v1beta2.MachineHealthCheck, s conversion.Scope) error { - return autoConvert_v1alpha4_MachineHealthCheck_To_v1beta2_MachineHealthCheck(in, out, s) -} - -func autoConvert_v1beta2_MachineHealthCheck_To_v1alpha4_MachineHealthCheck(in *v1beta2.MachineHealthCheck, out *MachineHealthCheck, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_MachineHealthCheckSpec_To_v1alpha4_MachineHealthCheckSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineHealthCheckStatus_To_v1alpha4_MachineHealthCheckStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_MachineHealthCheck_To_v1alpha4_MachineHealthCheck is an autogenerated conversion function. -func Convert_v1beta2_MachineHealthCheck_To_v1alpha4_MachineHealthCheck(in *v1beta2.MachineHealthCheck, out *MachineHealthCheck, s conversion.Scope) error { - return autoConvert_v1beta2_MachineHealthCheck_To_v1alpha4_MachineHealthCheck(in, out, s) -} - -func autoConvert_v1alpha4_MachineHealthCheckList_To_v1beta2_MachineHealthCheckList(in *MachineHealthCheckList, out *v1beta2.MachineHealthCheckList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.MachineHealthCheck, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_MachineHealthCheck_To_v1beta2_MachineHealthCheck(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha4_MachineHealthCheckList_To_v1beta2_MachineHealthCheckList is an autogenerated conversion function. -func Convert_v1alpha4_MachineHealthCheckList_To_v1beta2_MachineHealthCheckList(in *MachineHealthCheckList, out *v1beta2.MachineHealthCheckList, s conversion.Scope) error { - return autoConvert_v1alpha4_MachineHealthCheckList_To_v1beta2_MachineHealthCheckList(in, out, s) -} - -func autoConvert_v1beta2_MachineHealthCheckList_To_v1alpha4_MachineHealthCheckList(in *v1beta2.MachineHealthCheckList, out *MachineHealthCheckList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MachineHealthCheck, len(*in)) - for i := range *in { - if err := Convert_v1beta2_MachineHealthCheck_To_v1alpha4_MachineHealthCheck(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_MachineHealthCheckList_To_v1alpha4_MachineHealthCheckList is an autogenerated conversion function. -func Convert_v1beta2_MachineHealthCheckList_To_v1alpha4_MachineHealthCheckList(in *v1beta2.MachineHealthCheckList, out *MachineHealthCheckList, s conversion.Scope) error { - return autoConvert_v1beta2_MachineHealthCheckList_To_v1alpha4_MachineHealthCheckList(in, out, s) -} - -func autoConvert_v1alpha4_MachineHealthCheckSpec_To_v1beta2_MachineHealthCheckSpec(in *MachineHealthCheckSpec, out *v1beta2.MachineHealthCheckSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Selector = in.Selector - // WARNING: in.UnhealthyConditions requires manual conversion: does not exist in peer-type - // WARNING: in.MaxUnhealthy requires manual conversion: does not exist in peer-type - // WARNING: in.UnhealthyRange requires manual conversion: does not exist in peer-type - // WARNING: in.NodeStartupTimeout requires manual conversion: does not exist in peer-type - // WARNING: in.RemediationTemplate requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_MachineHealthCheckSpec_To_v1alpha4_MachineHealthCheckSpec(in *v1beta2.MachineHealthCheckSpec, out *MachineHealthCheckSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Selector = in.Selector - // WARNING: in.Checks requires manual conversion: does not exist in peer-type - // WARNING: in.Remediation requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus(in *MachineHealthCheckStatus, out *v1beta2.MachineHealthCheckStatus, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.ExpectedMachines, &out.ExpectedMachines, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.CurrentHealthy, &out.CurrentHealthy, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.RemediationsAllowed, &out.RemediationsAllowed, s); err != nil { - return err - } - out.ObservedGeneration = in.ObservedGeneration - out.Targets = *(*[]string)(unsafe.Pointer(&in.Targets)) - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -// Convert_v1alpha4_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus is an autogenerated conversion function. -func Convert_v1alpha4_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus(in *MachineHealthCheckStatus, out *v1beta2.MachineHealthCheckStatus, s conversion.Scope) error { - return autoConvert_v1alpha4_MachineHealthCheckStatus_To_v1beta2_MachineHealthCheckStatus(in, out, s) -} - -func autoConvert_v1beta2_MachineHealthCheckStatus_To_v1alpha4_MachineHealthCheckStatus(in *v1beta2.MachineHealthCheckStatus, out *MachineHealthCheckStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha4_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - if err := v1.Convert_Pointer_int32_To_int32(&in.ExpectedMachines, &out.ExpectedMachines, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.CurrentHealthy, &out.CurrentHealthy, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.RemediationsAllowed, &out.RemediationsAllowed, s); err != nil { - return err - } - out.ObservedGeneration = in.ObservedGeneration - out.Targets = *(*[]string)(unsafe.Pointer(&in.Targets)) - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_MachineList_To_v1beta2_MachineList(in *MachineList, out *v1beta2.MachineList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.Machine, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_Machine_To_v1beta2_Machine(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha4_MachineList_To_v1beta2_MachineList is an autogenerated conversion function. -func Convert_v1alpha4_MachineList_To_v1beta2_MachineList(in *MachineList, out *v1beta2.MachineList, s conversion.Scope) error { - return autoConvert_v1alpha4_MachineList_To_v1beta2_MachineList(in, out, s) -} - -func autoConvert_v1beta2_MachineList_To_v1alpha4_MachineList(in *v1beta2.MachineList, out *MachineList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Machine, len(*in)) - for i := range *in { - if err := Convert_v1beta2_Machine_To_v1alpha4_Machine(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_MachineList_To_v1alpha4_MachineList is an autogenerated conversion function. -func Convert_v1beta2_MachineList_To_v1alpha4_MachineList(in *v1beta2.MachineList, out *MachineList, s conversion.Scope) error { - return autoConvert_v1beta2_MachineList_To_v1alpha4_MachineList(in, out, s) -} - -func autoConvert_v1alpha4_MachinePool_To_v1beta2_MachinePool(in *MachinePool, out *v1beta2.MachinePool, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha4_MachinePoolSpec_To_v1beta2_MachinePoolSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha4_MachinePoolStatus_To_v1beta2_MachinePoolStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_MachinePool_To_v1beta2_MachinePool is an autogenerated conversion function. -func Convert_v1alpha4_MachinePool_To_v1beta2_MachinePool(in *MachinePool, out *v1beta2.MachinePool, s conversion.Scope) error { - return autoConvert_v1alpha4_MachinePool_To_v1beta2_MachinePool(in, out, s) -} - -func autoConvert_v1beta2_MachinePool_To_v1alpha4_MachinePool(in *v1beta2.MachinePool, out *MachinePool, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_MachinePoolSpec_To_v1alpha4_MachinePoolSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_MachinePoolStatus_To_v1alpha4_MachinePoolStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_MachinePool_To_v1alpha4_MachinePool is an autogenerated conversion function. -func Convert_v1beta2_MachinePool_To_v1alpha4_MachinePool(in *v1beta2.MachinePool, out *MachinePool, s conversion.Scope) error { - return autoConvert_v1beta2_MachinePool_To_v1alpha4_MachinePool(in, out, s) -} - -func autoConvert_v1alpha4_MachinePoolList_To_v1beta2_MachinePoolList(in *MachinePoolList, out *v1beta2.MachinePoolList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.MachinePool, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_MachinePool_To_v1beta2_MachinePool(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha4_MachinePoolList_To_v1beta2_MachinePoolList is an autogenerated conversion function. -func Convert_v1alpha4_MachinePoolList_To_v1beta2_MachinePoolList(in *MachinePoolList, out *v1beta2.MachinePoolList, s conversion.Scope) error { - return autoConvert_v1alpha4_MachinePoolList_To_v1beta2_MachinePoolList(in, out, s) -} - -func autoConvert_v1beta2_MachinePoolList_To_v1alpha4_MachinePoolList(in *v1beta2.MachinePoolList, out *MachinePoolList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MachinePool, len(*in)) - for i := range *in { - if err := Convert_v1beta2_MachinePool_To_v1alpha4_MachinePool(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_MachinePoolList_To_v1alpha4_MachinePoolList is an autogenerated conversion function. -func Convert_v1beta2_MachinePoolList_To_v1alpha4_MachinePoolList(in *v1beta2.MachinePoolList, out *MachinePoolList, s conversion.Scope) error { - return autoConvert_v1beta2_MachinePoolList_To_v1alpha4_MachinePoolList(in, out, s) -} - -func autoConvert_v1alpha4_MachinePoolSpec_To_v1beta2_MachinePoolSpec(in *MachinePoolSpec, out *v1beta2.MachinePoolSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - if err := Convert_v1alpha4_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - // WARNING: in.MinReadySeconds requires manual conversion: does not exist in peer-type - out.ProviderIDList = *(*[]string)(unsafe.Pointer(&in.ProviderIDList)) - out.FailureDomains = *(*[]string)(unsafe.Pointer(&in.FailureDomains)) - return nil -} - -func autoConvert_v1beta2_MachinePoolSpec_To_v1alpha4_MachinePoolSpec(in *v1beta2.MachinePoolSpec, out *MachinePoolSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - if err := Convert_v1beta2_MachineTemplateSpec_To_v1alpha4_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - out.ProviderIDList = *(*[]string)(unsafe.Pointer(&in.ProviderIDList)) - out.FailureDomains = *(*[]string)(unsafe.Pointer(&in.FailureDomains)) - return nil -} - -// Convert_v1beta2_MachinePoolSpec_To_v1alpha4_MachinePoolSpec is an autogenerated conversion function. -func Convert_v1beta2_MachinePoolSpec_To_v1alpha4_MachinePoolSpec(in *v1beta2.MachinePoolSpec, out *MachinePoolSpec, s conversion.Scope) error { - return autoConvert_v1beta2_MachinePoolSpec_To_v1alpha4_MachinePoolSpec(in, out, s) -} - -func autoConvert_v1alpha4_MachinePoolStatus_To_v1beta2_MachinePoolStatus(in *MachinePoolStatus, out *v1beta2.MachinePoolStatus, s conversion.Scope) error { - out.NodeRefs = *(*[]corev1.ObjectReference)(unsafe.Pointer(&in.NodeRefs)) - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - // WARNING: in.UnavailableReplicas requires manual conversion: does not exist in peer-type - // WARNING: in.FailureReason requires manual conversion: does not exist in peer-type - // WARNING: in.FailureMessage requires manual conversion: does not exist in peer-type - out.Phase = in.Phase - // WARNING: in.BootstrapReady requires manual conversion: does not exist in peer-type - // WARNING: in.InfrastructureReady requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -func autoConvert_v1beta2_MachinePoolStatus_To_v1alpha4_MachinePoolStatus(in *v1beta2.MachinePoolStatus, out *MachinePoolStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha4_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - // WARNING: in.Initialization requires manual conversion: does not exist in peer-type - out.NodeRefs = *(*[]corev1.ObjectReference)(unsafe.Pointer(&in.NodeRefs)) - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - // WARNING: in.UpToDateReplicas requires manual conversion: does not exist in peer-type - out.Phase = in.Phase - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_MachineSet_To_v1beta2_MachineSet(in *MachineSet, out *v1beta2.MachineSet, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1alpha4_MachineSetSpec_To_v1beta2_MachineSetSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1alpha4_MachineSetStatus_To_v1beta2_MachineSetStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_MachineSet_To_v1beta2_MachineSet is an autogenerated conversion function. -func Convert_v1alpha4_MachineSet_To_v1beta2_MachineSet(in *MachineSet, out *v1beta2.MachineSet, s conversion.Scope) error { - return autoConvert_v1alpha4_MachineSet_To_v1beta2_MachineSet(in, out, s) -} - -func autoConvert_v1beta2_MachineSet_To_v1alpha4_MachineSet(in *v1beta2.MachineSet, out *MachineSet, s conversion.Scope) error { - out.ObjectMeta = in.ObjectMeta - if err := Convert_v1beta2_MachineSetSpec_To_v1alpha4_MachineSetSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineSetStatus_To_v1alpha4_MachineSetStatus(&in.Status, &out.Status, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_MachineSet_To_v1alpha4_MachineSet is an autogenerated conversion function. -func Convert_v1beta2_MachineSet_To_v1alpha4_MachineSet(in *v1beta2.MachineSet, out *MachineSet, s conversion.Scope) error { - return autoConvert_v1beta2_MachineSet_To_v1alpha4_MachineSet(in, out, s) -} - -func autoConvert_v1alpha4_MachineSetList_To_v1beta2_MachineSetList(in *MachineSetList, out *v1beta2.MachineSetList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1beta2.MachineSet, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_MachineSet_To_v1beta2_MachineSet(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1alpha4_MachineSetList_To_v1beta2_MachineSetList is an autogenerated conversion function. -func Convert_v1alpha4_MachineSetList_To_v1beta2_MachineSetList(in *MachineSetList, out *v1beta2.MachineSetList, s conversion.Scope) error { - return autoConvert_v1alpha4_MachineSetList_To_v1beta2_MachineSetList(in, out, s) -} - -func autoConvert_v1beta2_MachineSetList_To_v1alpha4_MachineSetList(in *v1beta2.MachineSetList, out *MachineSetList, s conversion.Scope) error { - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MachineSet, len(*in)) - for i := range *in { - if err := Convert_v1beta2_MachineSet_To_v1alpha4_MachineSet(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Items = nil - } - return nil -} - -// Convert_v1beta2_MachineSetList_To_v1alpha4_MachineSetList is an autogenerated conversion function. -func Convert_v1beta2_MachineSetList_To_v1alpha4_MachineSetList(in *v1beta2.MachineSetList, out *MachineSetList, s conversion.Scope) error { - return autoConvert_v1beta2_MachineSetList_To_v1alpha4_MachineSetList(in, out, s) -} - -func autoConvert_v1alpha4_MachineSetSpec_To_v1beta2_MachineSetSpec(in *MachineSetSpec, out *v1beta2.MachineSetSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - // WARNING: in.MinReadySeconds requires manual conversion: does not exist in peer-type - // WARNING: in.DeletePolicy requires manual conversion: does not exist in peer-type - out.Selector = in.Selector - if err := Convert_v1alpha4_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - return nil -} - -func autoConvert_v1beta2_MachineSetSpec_To_v1alpha4_MachineSetSpec(in *v1beta2.MachineSetSpec, out *MachineSetSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - out.Replicas = (*int32)(unsafe.Pointer(in.Replicas)) - out.Selector = in.Selector - if err := Convert_v1beta2_MachineTemplateSpec_To_v1alpha4_MachineTemplateSpec(&in.Template, &out.Template, s); err != nil { - return err - } - // WARNING: in.MachineNaming requires manual conversion: does not exist in peer-type - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_MachineSetStatus_To_v1beta2_MachineSetStatus(in *MachineSetStatus, out *v1beta2.MachineSetStatus, s conversion.Scope) error { - out.Selector = in.Selector - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - // WARNING: in.FullyLabeledReplicas requires manual conversion: does not exist in peer-type - if err := v1.Convert_int32_To_Pointer_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_int32_To_Pointer_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.FailureReason requires manual conversion: does not exist in peer-type - // WARNING: in.FailureMessage requires manual conversion: does not exist in peer-type - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -func autoConvert_v1beta2_MachineSetStatus_To_v1alpha4_MachineSetStatus(in *v1beta2.MachineSetStatus, out *MachineSetStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha4_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - out.Selector = in.Selector - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.ReadyReplicas, &out.ReadyReplicas, s); err != nil { - return err - } - if err := v1.Convert_Pointer_int32_To_int32(&in.AvailableReplicas, &out.AvailableReplicas, s); err != nil { - return err - } - // WARNING: in.UpToDateReplicas requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_MachineSpec_To_v1beta2_MachineSpec(in *MachineSpec, out *v1beta2.MachineSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - if err := Convert_v1alpha4_Bootstrap_To_v1beta2_Bootstrap(&in.Bootstrap, &out.Bootstrap, s); err != nil { - return err - } - if err := v1beta1.Convert_v1_ObjectReference_To_v1beta2_ContractVersionedObjectReference(&in.InfrastructureRef, &out.InfrastructureRef, s); err != nil { - return err - } - if err := v1.Convert_Pointer_string_To_string(&in.Version, &out.Version, s); err != nil { - return err - } - if err := v1.Convert_Pointer_string_To_string(&in.ProviderID, &out.ProviderID, s); err != nil { - return err - } - if err := v1.Convert_Pointer_string_To_string(&in.FailureDomain, &out.FailureDomain, s); err != nil { - return err - } - // WARNING: in.NodeDrainTimeout requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1beta2_MachineSpec_To_v1alpha4_MachineSpec(in *v1beta2.MachineSpec, out *MachineSpec, s conversion.Scope) error { - out.ClusterName = in.ClusterName - if err := Convert_v1beta2_Bootstrap_To_v1alpha4_Bootstrap(&in.Bootstrap, &out.Bootstrap, s); err != nil { - return err - } - if err := v1beta1.Convert_v1beta2_ContractVersionedObjectReference_To_v1_ObjectReference(&in.InfrastructureRef, &out.InfrastructureRef, s); err != nil { - return err - } - if err := v1.Convert_string_To_Pointer_string(&in.Version, &out.Version, s); err != nil { - return err - } - if err := v1.Convert_string_To_Pointer_string(&in.ProviderID, &out.ProviderID, s); err != nil { - return err - } - if err := v1.Convert_string_To_Pointer_string(&in.FailureDomain, &out.FailureDomain, s); err != nil { - return err - } - // WARNING: in.MinReadySeconds requires manual conversion: does not exist in peer-type - // WARNING: in.ReadinessGates requires manual conversion: does not exist in peer-type - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_MachineStatus_To_v1beta2_MachineStatus(in *MachineStatus, out *v1beta2.MachineStatus, s conversion.Scope) error { - // WARNING: in.NodeRef requires manual conversion: inconvertible types (*k8s.io/api/core/v1.ObjectReference vs sigs.k8s.io/cluster-api/api/core/v1beta2.MachineNodeReference) - out.NodeInfo = (*corev1.NodeSystemInfo)(unsafe.Pointer(in.NodeInfo)) - // WARNING: in.LastUpdated requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.Time vs k8s.io/apimachinery/pkg/apis/meta/v1.Time) - // WARNING: in.Version requires manual conversion: does not exist in peer-type - // WARNING: in.FailureReason requires manual conversion: does not exist in peer-type - // WARNING: in.FailureMessage requires manual conversion: does not exist in peer-type - out.Addresses = *(*v1beta2.MachineAddresses)(unsafe.Pointer(&in.Addresses)) - out.Phase = in.Phase - // WARNING: in.BootstrapReady requires manual conversion: does not exist in peer-type - // WARNING: in.InfrastructureReady requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_Condition_To_v1_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - return nil -} - -func autoConvert_v1beta2_MachineStatus_To_v1alpha4_MachineStatus(in *v1beta2.MachineStatus, out *MachineStatus, s conversion.Scope) error { - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - if err := Convert_v1_Condition_To_v1alpha4_Condition(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.Conditions = nil - } - // WARNING: in.Initialization requires manual conversion: does not exist in peer-type - // WARNING: in.NodeRef requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.MachineNodeReference vs *k8s.io/api/core/v1.ObjectReference) - out.NodeInfo = (*corev1.NodeSystemInfo)(unsafe.Pointer(in.NodeInfo)) - // WARNING: in.LastUpdated requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/apis/meta/v1.Time vs *k8s.io/apimachinery/pkg/apis/meta/v1.Time) - out.Addresses = *(*MachineAddresses)(unsafe.Pointer(&in.Addresses)) - out.Phase = in.Phase - // WARNING: in.CertificatesExpiryDate requires manual conversion: does not exist in peer-type - out.ObservedGeneration = in.ObservedGeneration - // WARNING: in.Deletion requires manual conversion: does not exist in peer-type - // WARNING: in.Deprecated requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(in *MachineTemplateSpec, out *v1beta2.MachineTemplateSpec, s conversion.Scope) error { - if err := Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, s); err != nil { - return err - } - if err := Convert_v1alpha4_MachineSpec_To_v1beta2_MachineSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1alpha4_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec is an autogenerated conversion function. -func Convert_v1alpha4_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(in *MachineTemplateSpec, out *v1beta2.MachineTemplateSpec, s conversion.Scope) error { - return autoConvert_v1alpha4_MachineTemplateSpec_To_v1beta2_MachineTemplateSpec(in, out, s) -} - -func autoConvert_v1beta2_MachineTemplateSpec_To_v1alpha4_MachineTemplateSpec(in *v1beta2.MachineTemplateSpec, out *MachineTemplateSpec, s conversion.Scope) error { - if err := Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(&in.ObjectMeta, &out.ObjectMeta, s); err != nil { - return err - } - if err := Convert_v1beta2_MachineSpec_To_v1alpha4_MachineSpec(&in.Spec, &out.Spec, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_MachineTemplateSpec_To_v1alpha4_MachineTemplateSpec is an autogenerated conversion function. -func Convert_v1beta2_MachineTemplateSpec_To_v1alpha4_MachineTemplateSpec(in *v1beta2.MachineTemplateSpec, out *MachineTemplateSpec, s conversion.Scope) error { - return autoConvert_v1beta2_MachineTemplateSpec_To_v1alpha4_MachineTemplateSpec(in, out, s) -} - -func autoConvert_v1alpha4_NetworkRanges_To_v1beta2_NetworkRanges(in *NetworkRanges, out *v1beta2.NetworkRanges, s conversion.Scope) error { - out.CIDRBlocks = *(*[]string)(unsafe.Pointer(&in.CIDRBlocks)) - return nil -} - -// Convert_v1alpha4_NetworkRanges_To_v1beta2_NetworkRanges is an autogenerated conversion function. -func Convert_v1alpha4_NetworkRanges_To_v1beta2_NetworkRanges(in *NetworkRanges, out *v1beta2.NetworkRanges, s conversion.Scope) error { - return autoConvert_v1alpha4_NetworkRanges_To_v1beta2_NetworkRanges(in, out, s) -} - -func autoConvert_v1beta2_NetworkRanges_To_v1alpha4_NetworkRanges(in *v1beta2.NetworkRanges, out *NetworkRanges, s conversion.Scope) error { - out.CIDRBlocks = *(*[]string)(unsafe.Pointer(&in.CIDRBlocks)) - return nil -} - -// Convert_v1beta2_NetworkRanges_To_v1alpha4_NetworkRanges is an autogenerated conversion function. -func Convert_v1beta2_NetworkRanges_To_v1alpha4_NetworkRanges(in *v1beta2.NetworkRanges, out *NetworkRanges, s conversion.Scope) error { - return autoConvert_v1beta2_NetworkRanges_To_v1alpha4_NetworkRanges(in, out, s) -} - -func autoConvert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(in *ObjectMeta, out *v1beta2.ObjectMeta, s conversion.Scope) error { - out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) - out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) - return nil -} - -// Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta is an autogenerated conversion function. -func Convert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(in *ObjectMeta, out *v1beta2.ObjectMeta, s conversion.Scope) error { - return autoConvert_v1alpha4_ObjectMeta_To_v1beta2_ObjectMeta(in, out, s) -} - -func autoConvert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(in *v1beta2.ObjectMeta, out *ObjectMeta, s conversion.Scope) error { - out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) - out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) - return nil -} - -// Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta is an autogenerated conversion function. -func Convert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(in *v1beta2.ObjectMeta, out *ObjectMeta, s conversion.Scope) error { - return autoConvert_v1beta2_ObjectMeta_To_v1alpha4_ObjectMeta(in, out, s) -} - -func autoConvert_v1alpha4_Topology_To_v1beta2_Topology(in *Topology, out *v1beta2.Topology, s conversion.Scope) error { - // WARNING: in.Class requires manual conversion: does not exist in peer-type - out.Version = in.Version - // WARNING: in.RolloutAfter requires manual conversion: does not exist in peer-type - if err := Convert_v1alpha4_ControlPlaneTopology_To_v1beta2_ControlPlaneTopology(&in.ControlPlane, &out.ControlPlane, s); err != nil { - return err - } - // WARNING: in.Workers requires manual conversion: inconvertible types (*sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.WorkersTopology vs sigs.k8s.io/cluster-api/api/core/v1beta2.WorkersTopology) - return nil -} - -func autoConvert_v1beta2_Topology_To_v1alpha4_Topology(in *v1beta2.Topology, out *Topology, s conversion.Scope) error { - // WARNING: in.ClassRef requires manual conversion: does not exist in peer-type - out.Version = in.Version - if err := Convert_v1beta2_ControlPlaneTopology_To_v1alpha4_ControlPlaneTopology(&in.ControlPlane, &out.ControlPlane, s); err != nil { - return err - } - // WARNING: in.Workers requires manual conversion: inconvertible types (sigs.k8s.io/cluster-api/api/core/v1beta2.WorkersTopology vs *sigs.k8s.io/cluster-api/internal/api/core/v1alpha4.WorkersTopology) - // WARNING: in.Variables requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_WorkersClass_To_v1beta2_WorkersClass(in *WorkersClass, out *v1beta2.WorkersClass, s conversion.Scope) error { - if in.MachineDeployments != nil { - in, out := &in.MachineDeployments, &out.MachineDeployments - *out = make([]v1beta2.MachineDeploymentClass, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_MachineDeploymentClass_To_v1beta2_MachineDeploymentClass(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.MachineDeployments = nil - } - return nil -} - -// Convert_v1alpha4_WorkersClass_To_v1beta2_WorkersClass is an autogenerated conversion function. -func Convert_v1alpha4_WorkersClass_To_v1beta2_WorkersClass(in *WorkersClass, out *v1beta2.WorkersClass, s conversion.Scope) error { - return autoConvert_v1alpha4_WorkersClass_To_v1beta2_WorkersClass(in, out, s) -} - -func autoConvert_v1beta2_WorkersClass_To_v1alpha4_WorkersClass(in *v1beta2.WorkersClass, out *WorkersClass, s conversion.Scope) error { - if in.MachineDeployments != nil { - in, out := &in.MachineDeployments, &out.MachineDeployments - *out = make([]MachineDeploymentClass, len(*in)) - for i := range *in { - if err := Convert_v1beta2_MachineDeploymentClass_To_v1alpha4_MachineDeploymentClass(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.MachineDeployments = nil - } - // WARNING: in.MachinePools requires manual conversion: does not exist in peer-type - return nil -} - -func autoConvert_v1alpha4_WorkersTopology_To_v1beta2_WorkersTopology(in *WorkersTopology, out *v1beta2.WorkersTopology, s conversion.Scope) error { - if in.MachineDeployments != nil { - in, out := &in.MachineDeployments, &out.MachineDeployments - *out = make([]v1beta2.MachineDeploymentTopology, len(*in)) - for i := range *in { - if err := Convert_v1alpha4_MachineDeploymentTopology_To_v1beta2_MachineDeploymentTopology(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.MachineDeployments = nil - } - return nil -} - -// Convert_v1alpha4_WorkersTopology_To_v1beta2_WorkersTopology is an autogenerated conversion function. -func Convert_v1alpha4_WorkersTopology_To_v1beta2_WorkersTopology(in *WorkersTopology, out *v1beta2.WorkersTopology, s conversion.Scope) error { - return autoConvert_v1alpha4_WorkersTopology_To_v1beta2_WorkersTopology(in, out, s) -} - -func autoConvert_v1beta2_WorkersTopology_To_v1alpha4_WorkersTopology(in *v1beta2.WorkersTopology, out *WorkersTopology, s conversion.Scope) error { - if in.MachineDeployments != nil { - in, out := &in.MachineDeployments, &out.MachineDeployments - *out = make([]MachineDeploymentTopology, len(*in)) - for i := range *in { - if err := Convert_v1beta2_MachineDeploymentTopology_To_v1alpha4_MachineDeploymentTopology(&(*in)[i], &(*out)[i], s); err != nil { - return err - } - } - } else { - out.MachineDeployments = nil - } - // WARNING: in.MachinePools requires manual conversion: does not exist in peer-type - return nil -} diff --git a/internal/api/core/v1alpha4/zz_generated.deepcopy.go b/internal/api/core/v1alpha4/zz_generated.deepcopy.go index 6d3e29cb0b60..4f7479549ae6 100644 --- a/internal/api/core/v1alpha4/zz_generated.deepcopy.go +++ b/internal/api/core/v1alpha4/zz_generated.deepcopy.go @@ -25,7 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" - "sigs.k8s.io/cluster-api/errors" + "sigs.k8s.io/cluster-api/api/core/errors" ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. diff --git a/internal/controllers/cluster/cluster_controller_phases.go b/internal/controllers/cluster/cluster_controller_phases.go index d63670755f30..228322308554 100644 --- a/internal/controllers/cluster/cluster_controller_phases.go +++ b/internal/controllers/cluster/cluster_controller_phases.go @@ -34,9 +34,9 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/handler" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" "sigs.k8s.io/cluster-api/controllers/external" - capierrors "sigs.k8s.io/cluster-api/errors" "sigs.k8s.io/cluster-api/internal/contract" "sigs.k8s.io/cluster-api/util" v1beta1conditions "sigs.k8s.io/cluster-api/util/conditions/deprecated/v1beta1" diff --git a/internal/controllers/cluster/suite_test.go b/internal/controllers/cluster/suite_test.go index 3f5de63038a7..129dbba75be2 100644 --- a/internal/controllers/cluster/suite_test.go +++ b/internal/controllers/cluster/suite_test.go @@ -36,11 +36,11 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" machinecontroller "sigs.k8s.io/cluster-api/internal/controllers/machine" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) const ( diff --git a/internal/controllers/clusterclass/suite_test.go b/internal/controllers/clusterclass/suite_test.go index d01f4f7a58f6..56795e363e47 100644 --- a/internal/controllers/clusterclass/suite_test.go +++ b/internal/controllers/clusterclass/suite_test.go @@ -39,10 +39,10 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/feature" fakeruntimeclient "sigs.k8s.io/cluster-api/internal/runtime/client/fake" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) var ( diff --git a/internal/controllers/clusterresourceset/suite_test.go b/internal/controllers/clusterresourceset/suite_test.go index a8e6abb1bde4..0a9a3381623c 100644 --- a/internal/controllers/clusterresourceset/suite_test.go +++ b/internal/controllers/clusterresourceset/suite_test.go @@ -35,11 +35,11 @@ import ( addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta2" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" "sigs.k8s.io/cluster-api/internal/controllers/clusterresourcesetbinding" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) var ( diff --git a/internal/controllers/extensionconfig/suite_test.go b/internal/controllers/extensionconfig/suite_test.go index 617fbf886310..b02477ed18ef 100644 --- a/internal/controllers/extensionconfig/suite_test.go +++ b/internal/controllers/extensionconfig/suite_test.go @@ -30,8 +30,8 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) var ( diff --git a/internal/controllers/machine/machine_controller.go b/internal/controllers/machine/machine_controller.go index 428ed8195fad..10a668bb39c2 100644 --- a/internal/controllers/machine/machine_controller.go +++ b/internal/controllers/machine/machine_controller.go @@ -48,7 +48,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/reconcile" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/external" "sigs.k8s.io/cluster-api/controllers/noderefutil" @@ -62,6 +61,7 @@ import ( "sigs.k8s.io/cluster-api/util/conditions" v1beta1conditions "sigs.k8s.io/cluster-api/util/conditions/deprecated/v1beta1" "sigs.k8s.io/cluster-api/util/finalizers" + "sigs.k8s.io/cluster-api/util/index" clog "sigs.k8s.io/cluster-api/util/log" "sigs.k8s.io/cluster-api/util/patch" "sigs.k8s.io/cluster-api/util/paused" diff --git a/internal/controllers/machine/machine_controller_noderef.go b/internal/controllers/machine/machine_controller_noderef.go index 2c07c215eeb4..4fda14252cfe 100644 --- a/internal/controllers/machine/machine_controller_noderef.go +++ b/internal/controllers/machine/machine_controller_noderef.go @@ -33,12 +33,12 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/internal/controllers/machinedeployment/mdutil" "sigs.k8s.io/cluster-api/internal/util/taints" "sigs.k8s.io/cluster-api/util" "sigs.k8s.io/cluster-api/util/annotations" v1beta1conditions "sigs.k8s.io/cluster-api/util/conditions/deprecated/v1beta1" + "sigs.k8s.io/cluster-api/util/index" "sigs.k8s.io/cluster-api/util/labels" ) diff --git a/internal/controllers/machine/machine_controller_noderef_test.go b/internal/controllers/machine/machine_controller_noderef_test.go index a1114c0979b8..69640a272450 100644 --- a/internal/controllers/machine/machine_controller_noderef_test.go +++ b/internal/controllers/machine/machine_controller_noderef_test.go @@ -36,11 +36,11 @@ import ( "sigs.k8s.io/controller-runtime/pkg/reconcile" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" "sigs.k8s.io/cluster-api/internal/topology/ownerrefs" "sigs.k8s.io/cluster-api/util" + "sigs.k8s.io/cluster-api/util/index" "sigs.k8s.io/cluster-api/util/kubeconfig" "sigs.k8s.io/cluster-api/util/test/builder" ) diff --git a/internal/controllers/machine/machine_controller_phases.go b/internal/controllers/machine/machine_controller_phases.go index 27380dce14a2..9a1298aca960 100644 --- a/internal/controllers/machine/machine_controller_phases.go +++ b/internal/controllers/machine/machine_controller_phases.go @@ -34,7 +34,7 @@ import ( clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" "sigs.k8s.io/cluster-api/controllers/external" - capierrors "sigs.k8s.io/cluster-api/errors" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" "sigs.k8s.io/cluster-api/internal/contract" "sigs.k8s.io/cluster-api/util" v1beta1conditions "sigs.k8s.io/cluster-api/util/conditions/deprecated/v1beta1" diff --git a/internal/controllers/machine/machine_controller_test.go b/internal/controllers/machine/machine_controller_test.go index e6ecb5c8459c..4386634f5bab 100644 --- a/internal/controllers/machine/machine_controller_test.go +++ b/internal/controllers/machine/machine_controller_test.go @@ -44,7 +44,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/source" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/external" externalfake "sigs.k8s.io/cluster-api/controllers/external/fake" @@ -54,6 +53,7 @@ import ( "sigs.k8s.io/cluster-api/util/cache" "sigs.k8s.io/cluster-api/util/conditions" v1beta1conditions "sigs.k8s.io/cluster-api/util/conditions/deprecated/v1beta1" + "sigs.k8s.io/cluster-api/util/index" "sigs.k8s.io/cluster-api/util/patch" "sigs.k8s.io/cluster-api/util/test/builder" ) diff --git a/internal/controllers/machine/suite_test.go b/internal/controllers/machine/suite_test.go index b37fc2a11bd7..fbe700752ee5 100644 --- a/internal/controllers/machine/suite_test.go +++ b/internal/controllers/machine/suite_test.go @@ -36,10 +36,10 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) const ( diff --git a/internal/controllers/machinedeployment/suite_test.go b/internal/controllers/machinedeployment/suite_test.go index 55648e3961a0..94c687d79fd8 100644 --- a/internal/controllers/machinedeployment/suite_test.go +++ b/internal/controllers/machinedeployment/suite_test.go @@ -40,12 +40,12 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" machinecontroller "sigs.k8s.io/cluster-api/internal/controllers/machine" machinesetcontroller "sigs.k8s.io/cluster-api/internal/controllers/machineset" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) const ( diff --git a/internal/controllers/machinehealthcheck/machinehealthcheck_controller.go b/internal/controllers/machinehealthcheck/machinehealthcheck_controller.go index b92ce679409a..ac5b6a03e67e 100644 --- a/internal/controllers/machinehealthcheck/machinehealthcheck_controller.go +++ b/internal/controllers/machinehealthcheck/machinehealthcheck_controller.go @@ -45,7 +45,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/reconcile" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/external" "sigs.k8s.io/cluster-api/internal/controllers/machine" @@ -53,6 +52,7 @@ import ( "sigs.k8s.io/cluster-api/util/annotations" "sigs.k8s.io/cluster-api/util/conditions" v1beta1conditions "sigs.k8s.io/cluster-api/util/conditions/deprecated/v1beta1" + "sigs.k8s.io/cluster-api/util/index" "sigs.k8s.io/cluster-api/util/patch" "sigs.k8s.io/cluster-api/util/paused" "sigs.k8s.io/cluster-api/util/predicates" diff --git a/internal/controllers/machinehealthcheck/machinehealthcheck_controller_test.go b/internal/controllers/machinehealthcheck/machinehealthcheck_controller_test.go index 6d8eb6e86465..f11a8c0d3128 100644 --- a/internal/controllers/machinehealthcheck/machinehealthcheck_controller_test.go +++ b/internal/controllers/machinehealthcheck/machinehealthcheck_controller_test.go @@ -42,12 +42,12 @@ import ( "sigs.k8s.io/controller-runtime/pkg/webhook/admission" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/internal/webhooks" "sigs.k8s.io/cluster-api/util" "sigs.k8s.io/cluster-api/util/conditions" v1beta1conditions "sigs.k8s.io/cluster-api/util/conditions/deprecated/v1beta1" + "sigs.k8s.io/cluster-api/util/index" "sigs.k8s.io/cluster-api/util/patch" "sigs.k8s.io/cluster-api/util/test/builder" ) diff --git a/internal/controllers/machinehealthcheck/suite_test.go b/internal/controllers/machinehealthcheck/suite_test.go index e55e63f4c5c5..5672bd075325 100644 --- a/internal/controllers/machinehealthcheck/suite_test.go +++ b/internal/controllers/machinehealthcheck/suite_test.go @@ -33,12 +33,12 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" machinecontroller "sigs.k8s.io/cluster-api/internal/controllers/machine" machinesetcontroller "sigs.k8s.io/cluster-api/internal/controllers/machineset" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) const ( diff --git a/internal/controllers/machinepool/machinepool_controller.go b/internal/controllers/machinepool/machinepool_controller.go index c499fd8a3ef7..c5bf3b0c19e5 100644 --- a/internal/controllers/machinepool/machinepool_controller.go +++ b/internal/controllers/machinepool/machinepool_controller.go @@ -41,7 +41,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/reconcile" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/external" "sigs.k8s.io/cluster-api/internal/util/ssa" @@ -49,6 +48,7 @@ import ( "sigs.k8s.io/cluster-api/util/conditions" v1beta1conditions "sigs.k8s.io/cluster-api/util/conditions/deprecated/v1beta1" "sigs.k8s.io/cluster-api/util/finalizers" + "sigs.k8s.io/cluster-api/util/index" "sigs.k8s.io/cluster-api/util/labels/format" "sigs.k8s.io/cluster-api/util/patch" "sigs.k8s.io/cluster-api/util/paused" diff --git a/internal/controllers/machinepool/machinepool_controller_phases.go b/internal/controllers/machinepool/machinepool_controller_phases.go index 07596b643b41..07f649b36b78 100644 --- a/internal/controllers/machinepool/machinepool_controller_phases.go +++ b/internal/controllers/machinepool/machinepool_controller_phases.go @@ -36,9 +36,9 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/handler" + capierrors "sigs.k8s.io/cluster-api/api/core/errors" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" "sigs.k8s.io/cluster-api/controllers/external" - capierrors "sigs.k8s.io/cluster-api/errors" "sigs.k8s.io/cluster-api/internal/contract" "sigs.k8s.io/cluster-api/internal/util/ssa" "sigs.k8s.io/cluster-api/util" diff --git a/internal/controllers/machinepool/suite_test.go b/internal/controllers/machinepool/suite_test.go index 23fe04bebad5..edb362ee659c 100644 --- a/internal/controllers/machinepool/suite_test.go +++ b/internal/controllers/machinepool/suite_test.go @@ -31,10 +31,10 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) var ( diff --git a/internal/controllers/machineset/suite_test.go b/internal/controllers/machineset/suite_test.go index c8122b40b50e..3f186a6d4952 100644 --- a/internal/controllers/machineset/suite_test.go +++ b/internal/controllers/machineset/suite_test.go @@ -39,11 +39,11 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" machinecontroller "sigs.k8s.io/cluster-api/internal/controllers/machine" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) const ( diff --git a/internal/controllers/topology/cluster/cluster_controller.go b/internal/controllers/topology/cluster/cluster_controller.go index 0fd7706b4f12..5f0b8abf13a7 100644 --- a/internal/controllers/topology/cluster/cluster_controller.go +++ b/internal/controllers/topology/cluster/cluster_controller.go @@ -45,7 +45,6 @@ import ( clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" runtimehooksv1 "sigs.k8s.io/cluster-api/api/runtime/hooks/v1alpha1" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/external" @@ -61,6 +60,8 @@ import ( "sigs.k8s.io/cluster-api/util/annotations" "sigs.k8s.io/cluster-api/util/conditions" "sigs.k8s.io/cluster-api/util/conversion" + "sigs.k8s.io/cluster-api/util/converter" + "sigs.k8s.io/cluster-api/util/index" "sigs.k8s.io/cluster-api/util/patch" "sigs.k8s.io/cluster-api/util/predicates" ) @@ -437,7 +438,7 @@ func (r *Reconciler) callBeforeClusterCreateHook(ctx context.Context, s *scope.S if !s.Current.Cluster.Spec.InfrastructureRef.IsDefined() && !s.Current.Cluster.Spec.ControlPlaneRef.IsDefined() { v1beta1Cluster := &clusterv1beta1.Cluster{} // DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation. - if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil { + if err := converter.ConvertClusterHubToV1Beta1(ctx, s.Current.Cluster.DeepCopy(), v1beta1Cluster); err != nil { return ctrl.Result{}, errors.Wrap(err, "error converting Cluster to v1beta1 Cluster") } @@ -531,7 +532,7 @@ func (r *Reconciler) reconcileDelete(ctx context.Context, cluster *clusterv1.Clu if !hooks.IsOkToDelete(cluster) { v1beta1Cluster := &clusterv1beta1.Cluster{} // DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation. - if err := v1beta1Cluster.ConvertFrom(cluster.DeepCopy()); err != nil { + if err := converter.ConvertClusterHubToV1Beta1(ctx, cluster.DeepCopy(), v1beta1Cluster); err != nil { return ctrl.Result{}, errors.Wrap(err, "error converting Cluster to v1beta1 Cluster") } diff --git a/internal/controllers/topology/cluster/reconcile_state.go b/internal/controllers/topology/cluster/reconcile_state.go index 83c285b4f4f9..298997d52fb9 100644 --- a/internal/controllers/topology/cluster/reconcile_state.go +++ b/internal/controllers/topology/cluster/reconcile_state.go @@ -49,6 +49,7 @@ import ( topologynames "sigs.k8s.io/cluster-api/internal/topology/names" "sigs.k8s.io/cluster-api/internal/topology/ownerrefs" "sigs.k8s.io/cluster-api/util" + "sigs.k8s.io/cluster-api/util/converter" ) const ( @@ -198,7 +199,7 @@ func (r *Reconciler) callAfterControlPlaneInitialized(ctx context.Context, s *sc if isControlPlaneInitialized(s.Current.Cluster) { v1beta1Cluster := &clusterv1beta1.Cluster{} // DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation. - if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil { + if err := converter.ConvertClusterHubToV1Beta1(ctx, s.Current.Cluster.DeepCopy(), v1beta1Cluster); err != nil { return errors.Wrap(err, "error converting Cluster to v1beta1 Cluster") } @@ -252,7 +253,7 @@ func (r *Reconciler) callAfterClusterUpgrade(ctx context.Context, s *scope.Scope !s.UpgradeTracker.MachinePools.DeferredUpgrade() { // No MachinePools have deferred an upgrade v1beta1Cluster := &clusterv1beta1.Cluster{} // DeepCopy cluster because ConvertFrom has side effects like adding the conversion annotation. - if err := v1beta1Cluster.ConvertFrom(s.Current.Cluster.DeepCopy()); err != nil { + if err := converter.ConvertClusterHubToV1Beta1(ctx, s.Current.Cluster.DeepCopy(), v1beta1Cluster); err != nil { return errors.Wrap(err, "error converting Cluster to v1beta1 Cluster") } diff --git a/internal/controllers/topology/cluster/suite_test.go b/internal/controllers/topology/cluster/suite_test.go index 15111a4c01b4..cc3f84eb31d4 100644 --- a/internal/controllers/topology/cluster/suite_test.go +++ b/internal/controllers/topology/cluster/suite_test.go @@ -36,12 +36,12 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" "sigs.k8s.io/cluster-api/internal/controllers/clusterclass" fakeruntimeclient "sigs.k8s.io/cluster-api/internal/runtime/client/fake" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) var ( diff --git a/internal/test/envtest/environment.go b/internal/test/envtest/environment.go index 48baf781b846..0e3a1e3fb6f5 100644 --- a/internal/test/envtest/environment.go +++ b/internal/test/envtest/environment.go @@ -59,16 +59,31 @@ import ( metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server" "sigs.k8s.io/controller-runtime/pkg/webhook" + addonsv1beta1 "sigs.k8s.io/cluster-api/api/addons/v1beta1" addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta2" + bootstrapv1beta1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta1" bootstrapv1 "sigs.k8s.io/cluster-api/api/bootstrap/kubeadm/v1beta2" + controlplanev1beta1 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta1" controlplanev1 "sigs.k8s.io/cluster-api/api/controlplane/kubeadm/v1beta2" + clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" + ipamv1alpha1 "sigs.k8s.io/cluster-api/api/ipam/v1alpha1" + ipamv1beta1 "sigs.k8s.io/cluster-api/api/ipam/v1beta1" ipamv1 "sigs.k8s.io/cluster-api/api/ipam/v1beta2" + runtimev1alpha1 "sigs.k8s.io/cluster-api/api/runtime/v1alpha1" runtimev1 "sigs.k8s.io/cluster-api/api/runtime/v1beta2" bootstrapwebhooks "sigs.k8s.io/cluster-api/bootstrap/kubeadm/webhooks" "sigs.k8s.io/cluster-api/cmd/clusterctl/log" controlplanewebhooks "sigs.k8s.io/cluster-api/controlplane/kubeadm/webhooks" "sigs.k8s.io/cluster-api/feature" + addonsv1alpha3 "sigs.k8s.io/cluster-api/internal/api/addons/v1alpha3" + addonsv1alpha4 "sigs.k8s.io/cluster-api/internal/api/addons/v1alpha4" + bootstrapv1alpha3 "sigs.k8s.io/cluster-api/internal/api/bootstrap/kubeadm/v1alpha3" + bootstrapv1alpha4 "sigs.k8s.io/cluster-api/internal/api/bootstrap/kubeadm/v1alpha4" + controlplanev1alpha3 "sigs.k8s.io/cluster-api/internal/api/controlplane/kubeadm/v1alpha3" + controlplanev1alpha4 "sigs.k8s.io/cluster-api/internal/api/controlplane/kubeadm/v1alpha4" + clusterv1alpha3 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha3" + clusterv1alpha4 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha4" internalwebhooks "sigs.k8s.io/cluster-api/internal/webhooks" "sigs.k8s.io/cluster-api/util/kubeconfig" "sigs.k8s.io/cluster-api/util/test/builder" diff --git a/internal/topology/upgrade/suite_test.go b/internal/topology/upgrade/suite_test.go index 75db9afb399c..402fbb49a4b6 100644 --- a/internal/topology/upgrade/suite_test.go +++ b/internal/topology/upgrade/suite_test.go @@ -36,13 +36,13 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/controllers" "sigs.k8s.io/cluster-api/controllers/clustercache" "sigs.k8s.io/cluster-api/controllers/remote" "sigs.k8s.io/cluster-api/internal/controllers/clusterclass" fakeruntimeclient "sigs.k8s.io/cluster-api/internal/runtime/client/fake" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) var ( diff --git a/internal/webhooks/cluster.go b/internal/webhooks/cluster.go index f93c24e6c265..0e7c9715bff6 100644 --- a/internal/webhooks/cluster.go +++ b/internal/webhooks/cluster.go @@ -44,6 +44,7 @@ import ( "sigs.k8s.io/cluster-api/internal/topology/check" "sigs.k8s.io/cluster-api/internal/topology/variables" "sigs.k8s.io/cluster-api/util/conditions" + "sigs.k8s.io/cluster-api/util/converter" "sigs.k8s.io/cluster-api/util/version" ) @@ -57,6 +58,7 @@ func (webhook *Cluster) SetupWebhookWithManager(mgr ctrl.Manager) error { For(&clusterv1.Cluster{}). WithDefaulter(webhook). WithValidator(webhook). + WithConverter(converter.Cluster). Complete() } diff --git a/internal/webhooks/clusterclass.go b/internal/webhooks/clusterclass.go index f984f369b5a2..f4ffc0245cd7 100644 --- a/internal/webhooks/clusterclass.go +++ b/internal/webhooks/clusterclass.go @@ -35,11 +35,11 @@ import ( "sigs.k8s.io/controller-runtime/pkg/webhook/admission" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/feature" "sigs.k8s.io/cluster-api/internal/topology/check" topologynames "sigs.k8s.io/cluster-api/internal/topology/names" "sigs.k8s.io/cluster-api/internal/topology/variables" + "sigs.k8s.io/cluster-api/util/index" clog "sigs.k8s.io/cluster-api/util/log" "sigs.k8s.io/cluster-api/util/version" ) diff --git a/internal/webhooks/clusterclass_test.go b/internal/webhooks/clusterclass_test.go index 600fa24c304a..1a1d8b1008df 100644 --- a/internal/webhooks/clusterclass_test.go +++ b/internal/webhooks/clusterclass_test.go @@ -33,9 +33,9 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client/fake" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/feature" "sigs.k8s.io/cluster-api/internal/topology/variables" + "sigs.k8s.io/cluster-api/util/index" "sigs.k8s.io/cluster-api/util/test/builder" ) diff --git a/internal/webhooks/test/suite_test.go b/internal/webhooks/test/suite_test.go index 2082873c4a53..2763a1fdfaed 100644 --- a/internal/webhooks/test/suite_test.go +++ b/internal/webhooks/test/suite_test.go @@ -26,11 +26,11 @@ import ( ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/controller" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" "sigs.k8s.io/cluster-api/feature" "sigs.k8s.io/cluster-api/internal/controllers/clusterclass" fakeruntimeclient "sigs.k8s.io/cluster-api/internal/runtime/client/fake" "sigs.k8s.io/cluster-api/internal/test/envtest" + "sigs.k8s.io/cluster-api/util/index" ) var ( diff --git a/main.go b/main.go index f8056b6efc17..369969079bd3 100644 --- a/main.go +++ b/main.go @@ -58,7 +58,6 @@ import ( addonsv1 "sigs.k8s.io/cluster-api/api/addons/v1beta2" clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - "sigs.k8s.io/cluster-api/api/core/v1beta2/index" ipamv1alpha1 "sigs.k8s.io/cluster-api/api/ipam/v1alpha1" ipamv1beta1 "sigs.k8s.io/cluster-api/api/ipam/v1beta1" ipamv1 "sigs.k8s.io/cluster-api/api/ipam/v1beta2" @@ -74,13 +73,13 @@ import ( "sigs.k8s.io/cluster-api/feature" addonsv1alpha3 "sigs.k8s.io/cluster-api/internal/api/addons/v1alpha3" addonsv1alpha4 "sigs.k8s.io/cluster-api/internal/api/addons/v1alpha4" - clusterv1alpha3 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha3" - clusterv1alpha4 "sigs.k8s.io/cluster-api/internal/api/core/v1alpha4" "sigs.k8s.io/cluster-api/internal/contract" internalruntimeclient "sigs.k8s.io/cluster-api/internal/runtime/client" runtimeregistry "sigs.k8s.io/cluster-api/internal/runtime/registry" "sigs.k8s.io/cluster-api/util/apiwarnings" + "sigs.k8s.io/cluster-api/util/converter" "sigs.k8s.io/cluster-api/util/flags" + "sigs.k8s.io/cluster-api/util/index" "sigs.k8s.io/cluster-api/version" "sigs.k8s.io/cluster-api/webhooks" ) @@ -139,8 +138,6 @@ func init() { _ = apiextensionsv1.AddToScheme(scheme) _ = storagev1.AddToScheme(scheme) - _ = clusterv1alpha3.AddToScheme(scheme) - _ = clusterv1alpha4.AddToScheme(scheme) _ = clusterv1beta1.AddToScheme(scheme) _ = clusterv1.AddToScheme(scheme) @@ -427,7 +424,7 @@ func main() { setupChecks(mgr) setupIndexes(ctx, mgr) clusterCache := setupReconcilers(ctx, mgr, watchNamespaces, &syncPeriod) - setupWebhooks(ctx, mgr, clusterCache) + setupWebhooks(mgr, clusterCache) setupLog.Info("Starting manager", "version", version.Get().String()) if err := mgr.Start(ctx); err != nil { @@ -760,14 +757,12 @@ func setupReconcilers(ctx context.Context, mgr ctrl.Manager, watchNamespaces map return clusterCache } -func setupWebhooks(ctx context.Context, mgr ctrl.Manager, clusterCacheReader webhooks.ClusterCacheReader) { +func setupWebhooks(mgr ctrl.Manager, clusterCacheReader webhooks.ClusterCacheReader) { // Setup the func to retrieve apiVersion for a GroupKind for conversion webhooks. - apiVersionGetter := func(gk schema.GroupKind) (string, error) { + apiVersionGetter := func(ctx context.Context, gk schema.GroupKind) (string, error) { return contract.GetAPIVersion(ctx, mgr.GetClient(), gk) } - clusterv1alpha3.SetAPIVersionGetter(apiVersionGetter) - clusterv1alpha4.SetAPIVersionGetter(apiVersionGetter) - clusterv1beta1.SetAPIVersionGetter(apiVersionGetter) + converter.SetAPIVersionGetter(apiVersionGetter) // NOTE: ClusterClass and managed topologies are behind ClusterTopology feature gate flag; the webhook // is going to prevent creating or updating new objects in case the feature flag is disabled. diff --git a/netlify.toml b/netlify.toml index f395dce1a2d0..4e4ac19fce76 100644 --- a/netlify.toml +++ b/netlify.toml @@ -4,7 +4,7 @@ publish = "docs/book/book" [build.environment] - GO_VERSION = "1.24.7" + GO_VERSION = "1.25.3" # Standard Netlify redirects [[redirects]] diff --git a/test/go.mod b/test/go.mod index 72109ee3e970..0054e13db4b4 100644 --- a/test/go.mod +++ b/test/go.mod @@ -1,9 +1,13 @@ module sigs.k8s.io/cluster-api/test -go 1.24.0 +go 1.25.0 + +replace sigs.k8s.io/cluster-api/api/core => ../api/core replace sigs.k8s.io/cluster-api => ../ +replace sigs.k8s.io/controller-runtime => ../../controller-runtime + require ( github.com/blang/semver/v4 v4.0.0 github.com/docker/docker v28.4.0+incompatible @@ -16,23 +20,24 @@ require ( github.com/onsi/ginkgo/v2 v2.25.3 github.com/onsi/gomega v1.38.2 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.22.0 - github.com/prometheus/common v0.62.0 + github.com/prometheus/client_golang v1.23.2 + github.com/prometheus/common v0.66.1 github.com/spf13/pflag v1.0.10 github.com/vincent-petithory/dataurl v1.0.0 go.etcd.io/etcd/api/v3 v3.6.5 go.etcd.io/etcd/client/v3 v3.6.5 golang.org/x/net v0.44.0 google.golang.org/grpc v1.72.3 - k8s.io/api v0.34.1 - k8s.io/apiextensions-apiserver v0.34.1 - k8s.io/apimachinery v0.34.1 - k8s.io/apiserver v0.34.1 - k8s.io/client-go v0.34.1 - k8s.io/component-base v0.34.1 + k8s.io/api v0.35.0-alpha.1 + k8s.io/apiextensions-apiserver v0.35.0-alpha.1 + k8s.io/apimachinery v0.35.0-alpha.1 + k8s.io/apiserver v0.35.0-alpha.1 + k8s.io/client-go v0.35.0-alpha.1 + k8s.io/component-base v0.35.0-alpha.1 k8s.io/klog/v2 v2.130.1 - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 sigs.k8s.io/cluster-api v0.0.0-00010101000000-000000000000 + sigs.k8s.io/cluster-api/api/core v0.0.0 sigs.k8s.io/controller-runtime v0.22.1 sigs.k8s.io/kind v0.30.0 sigs.k8s.io/randfill v1.0.0 @@ -116,8 +121,8 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/rivo/uniseg v0.4.2 // indirect github.com/sagikazarmark/locafero v0.11.0 // indirect github.com/shopspring/decimal v1.4.0 // indirect @@ -133,14 +138,14 @@ require ( go.etcd.io/etcd/client/pkg/v3 v3.6.5 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/otel v1.36.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 // indirect - go.opentelemetry.io/otel/metric v1.35.0 // indirect - go.opentelemetry.io/otel/sdk v1.34.0 // indirect - go.opentelemetry.io/otel/trace v1.35.0 // indirect + go.opentelemetry.io/otel/metric v1.36.0 // indirect + go.opentelemetry.io/otel/sdk v1.36.0 // indirect + go.opentelemetry.io/otel/trace v1.36.0 // indirect go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/automaxprocs v1.6.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -158,15 +163,15 @@ require ( golang.org/x/tools v0.36.0 // indirect gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect - google.golang.org/protobuf v1.36.7 // indirect - gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect + google.golang.org/protobuf v1.36.8 // indirect + gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.4.0 // indirect k8s.io/cluster-bootstrap v0.34.1 // indirect - k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect + k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect - sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect ) diff --git a/test/go.sum b/test/go.sum index de9ff79cf12b..205482ebd67c 100644 --- a/test/go.sum +++ b/test/go.sum @@ -244,14 +244,14 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.2 h1:YwD0ulJSJytLpiaWua0sBDusfsCZohxjxzVTYjwxfV8= github.com/rivo/uniseg v0.4.2/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -333,24 +333,24 @@ go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJyS go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= +go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 h1:FyjCyI9jVEfqhUh2MoSkmolPjfh5fp2hnV0b0irxH4Q= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0/go.mod h1:hYwym2nDEeZfG/motx0p7L7J1N1vyzIThemQsb4g2qY= -go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= -go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= +go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= +go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= +go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= +go.opentelemetry.io/otel/sdk/metric v1.36.0 h1:r0ntwwGosWGaa0CrSt8cuNuTcccMXERFwHX4dThiPis= +go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4= +go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= +go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= @@ -431,17 +431,17 @@ gomodules.xyz/jsonpatch/v2 v2.5.0 h1:JELs8RLM12qJGXU4u/TO3V25KW8GreMKl9pdkk14RM0 gomodules.xyz/jsonpatch/v2 v2.5.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:jbe3Bkdp+Dh2IrslsFCklNhweNTBgSYanP1UXhJDhKg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= google.golang.org/grpc v1.72.3 h1:6sysal2a4j9trATt+J/TSSEA/Q45ZrXzNh5zy4NMWuA= google.golang.org/grpc v1.72.3/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= -google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A= -google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= +gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= @@ -452,32 +452,30 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= -k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM= -k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk= -k8s.io/apiextensions-apiserver v0.34.1 h1:NNPBva8FNAPt1iSVwIE0FsdrVriRXMsaWFMqJbII2CI= -k8s.io/apiextensions-apiserver v0.34.1/go.mod h1:hP9Rld3zF5Ay2Of3BeEpLAToP+l4s5UlxiHfqRaRcMc= -k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4= -k8s.io/apimachinery v0.34.1/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= -k8s.io/apiserver v0.34.1 h1:U3JBGdgANK3dfFcyknWde1G6X1F4bg7PXuvlqt8lITA= -k8s.io/apiserver v0.34.1/go.mod h1:eOOc9nrVqlBI1AFCvVzsob0OxtPZUCPiUJL45JOTBG0= -k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY= -k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8= +k8s.io/api v0.35.0-alpha.1 h1:aL5Q6ZV4MQ2NZMmlnAsV7wj9a30gLhlLnGbx6GUmuBs= +k8s.io/api v0.35.0-alpha.1/go.mod h1:BoZqpN+rs1nX+WI4b+iOCpHIAZT1A5Cx29nfk4Kn4DY= +k8s.io/apiextensions-apiserver v0.35.0-alpha.1 h1:x/nDc4Ic4j9Pjn8trEuRIkbLgVWkSPTNkDWrNGUnCtg= +k8s.io/apiextensions-apiserver v0.35.0-alpha.1/go.mod h1:g00cZRV928nCiZtLlyedrVInFkJJHxzy8QWCyYJslWQ= +k8s.io/apimachinery v0.35.0-alpha.1 h1:FZCO78xXJf7Bb7oLzw5p6nakz/SWaGTi4+IaOl7uAYk= +k8s.io/apimachinery v0.35.0-alpha.1/go.mod h1:1YSL0XujdSTcnuHOR73D16EdW+d49JOdd8TXjCo6Dhc= +k8s.io/apiserver v0.35.0-alpha.1 h1:y30xMnHnusLzP3IU5rn9prng1dBNdWIXWnDbpEKT914= +k8s.io/apiserver v0.35.0-alpha.1/go.mod h1:Xeoi42Em6YeTr+yx3kFByqlCMIP4nbArQBWSblaH7Vs= +k8s.io/client-go v0.35.0-alpha.1 h1:DbQuaoETvFkhWfIckZj3hj1iNnBvEIdiWjSlosmtlX4= +k8s.io/client-go v0.35.0-alpha.1/go.mod h1:CI5Ggq6AukXNEBV2UeBgY4tfrOZfDSa7KuoWwLfHqGA= k8s.io/cluster-bootstrap v0.34.1 h1:lyCwJKoeYzGI93vk5Sn/Gz2rzfTRXkRuZYOk2rUsHfA= k8s.io/cluster-bootstrap v0.34.1/go.mod h1:9EJfkp7Fu4YBU0F6ysvrI5TndWLo8zufmDSjIWBNd94= -k8s.io/component-base v0.34.1 h1:v7xFgG+ONhytZNFpIz5/kecwD+sUhVE6HU7qQUiRM4A= -k8s.io/component-base v0.34.1/go.mod h1:mknCpLlTSKHzAQJJnnHVKqjxR7gBeHRv0rPXA7gdtQ0= +k8s.io/component-base v0.35.0-alpha.1 h1:k7wtwWeS+YbH85qfNimsaDOLhnO28wXazq1YTOjnbQI= +k8s.io/component-base v0.35.0-alpha.1/go.mod h1:TczxAPFOtycFi0/MQwZEJAiaGgXb3/XwZib3CgpgA60= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/controller-runtime v0.22.1 h1:Ah1T7I+0A7ize291nJZdS1CabF/lB4E++WizgV24Eqg= -sigs.k8s.io/controller-runtime v0.22.1/go.mod h1:FwiwRjkRPbiN+zp2QRp7wlTCzbUXxZ/D4OzuQUDwBHY= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/kind v0.30.0 h1:2Xi1KFEfSMm0XDcvKnUt15ZfgRPCT0OnCBbpgh8DztY= sigs.k8s.io/kind v0.30.0/go.mod h1:FSqriGaoTPruiXWfRnUXNykF8r2t+fHtK0P0m1AbGF8= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= diff --git a/util/converter/all.go b/util/converter/all.go new file mode 100644 index 000000000000..f55607ffbdfd --- /dev/null +++ b/util/converter/all.go @@ -0,0 +1,472 @@ +package converter +// +//import ( +// "fmt" +// "reflect" +// +// "k8s.io/utils/ptr" +// "sigs.k8s.io/controller-runtime/pkg/conversion" +// +// clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" +//) +// +//func (src *ClusterClass) ConvertTo(dstRaw conversion.Hub) error { +// dst := dstRaw.(*clusterv1.ClusterClass) +// +// if err := Convert_v1beta1_ClusterClass_To_v1beta2_ClusterClass(src, dst, nil); err != nil { +// return err +// } +// +// restored := &clusterv1.ClusterClass{} +// ok, err := utilconversion.UnmarshalData(src, restored) +// if err != nil { +// return err +// } +// +// // Recover intent for bool values converted to *bool. +// for i, patch := range dst.Spec.Patches { +// for j, definition := range patch.Definitions { +// var srcDefinition = &PatchDefinition{} +// for _, p := range src.Spec.Patches { +// if p.Name == patch.Name { +// if len(p.Definitions) == len(patch.Definitions) { +// srcDefinition = &p.Definitions[j] +// } +// break +// } +// } +// if srcDefinition == nil { +// return fmt.Errorf("definition %d for patch %s not found in source data", j, patch.Name) +// } +// var restoredPatchMatchControlPlane, restoredPatchMatchInfrastructureCluster *bool +// for _, p := range restored.Spec.Patches { +// if p.Name == patch.Name { +// if len(p.Definitions) == len(patch.Definitions) { +// restoredPatchMatchInfrastructureCluster = p.Definitions[j].Selector.MatchResources.InfrastructureCluster +// restoredPatchMatchControlPlane = p.Definitions[j].Selector.MatchResources.ControlPlane +// } +// break +// } +// } +// clusterv1.Convert_bool_To_Pointer_bool(srcDefinition.Selector.MatchResources.InfrastructureCluster, ok, restoredPatchMatchInfrastructureCluster, &definition.Selector.MatchResources.InfrastructureCluster) +// clusterv1.Convert_bool_To_Pointer_bool(srcDefinition.Selector.MatchResources.ControlPlane, ok, restoredPatchMatchControlPlane, &definition.Selector.MatchResources.ControlPlane) +// dst.Spec.Patches[i].Definitions[j] = definition +// } +// } +// +// for i, variable := range dst.Spec.Variables { +// var srcVariable *ClusterClassVariable +// for _, v := range src.Spec.Variables { +// if v.Name == variable.Name { +// srcVariable = &v +// break +// } +// } +// if srcVariable == nil { +// return fmt.Errorf("variable %q not found in source data", variable.Name) +// } +// var restoredVariableOpenAPIV3Schema *clusterv1.JSONSchemaProps +// for _, v := range restored.Spec.Variables { +// if v.Name == variable.Name { +// restoredVariableOpenAPIV3Schema = &v.Schema.OpenAPIV3Schema +// break +// } +// } +// if err := restoreBoolIntentJSONSchemaProps(&srcVariable.Schema.OpenAPIV3Schema, &variable.Schema.OpenAPIV3Schema, ok, restoredVariableOpenAPIV3Schema); err != nil { +// return err +// } +// dst.Spec.Variables[i] = variable +// } +// +// for i, variable := range dst.Status.Variables { +// var srcVariable *ClusterClassStatusVariable +// for _, v := range src.Status.Variables { +// if v.Name == variable.Name { +// srcVariable = &v +// break +// } +// } +// if srcVariable == nil { +// return fmt.Errorf("variable %q not found in source data", variable.Name) +// } +// var restoredVariable *clusterv1.ClusterClassStatusVariable +// var restoredVariableDefinitionsConflict *bool +// for _, v := range restored.Status.Variables { +// if v.Name == variable.Name { +// restoredVariable = &v +// restoredVariableDefinitionsConflict = v.DefinitionsConflict +// break +// } +// } +// clusterv1.Convert_bool_To_Pointer_bool(srcVariable.DefinitionsConflict, ok, restoredVariableDefinitionsConflict, &variable.DefinitionsConflict) +// +// for j, definition := range variable.Definitions { +// var srcDefinition *ClusterClassStatusVariableDefinition +// for _, d := range srcVariable.Definitions { +// if d.From == definition.From { +// srcDefinition = &d +// } +// } +// if srcDefinition == nil { +// return fmt.Errorf("definition %d for variable %s not found in source data", j, variable.Name) +// } +// var restoredVariableOpenAPIV3Schema *clusterv1.JSONSchemaProps +// if restoredVariable != nil { +// for _, d := range restoredVariable.Definitions { +// if d.From == definition.From { +// restoredVariableOpenAPIV3Schema = &d.Schema.OpenAPIV3Schema +// } +// } +// } +// if err := restoreBoolIntentJSONSchemaProps(&srcDefinition.Schema.OpenAPIV3Schema, &definition.Schema.OpenAPIV3Schema, ok, restoredVariableOpenAPIV3Schema); err != nil { +// return err +// } +// variable.Definitions[j] = definition +// } +// dst.Status.Variables[i] = variable +// } +// +// dst.Spec.KubernetesVersions = restored.Spec.KubernetesVersions +// +// dst.Spec.Upgrade.External.GenerateUpgradePlanExtension = restored.Spec.Upgrade.External.GenerateUpgradePlanExtension +// +// return nil +//} +// +//func restoreBoolIntentJSONSchemaProps(src *JSONSchemaProps, dst *clusterv1.JSONSchemaProps, hasRestored bool, restored *clusterv1.JSONSchemaProps) error { +// var restoredUniqueItems, restoreExclusiveMaximum, restoredExclusiveMinimum, restoreXPreserveUnknownFields, restoredXIntOrString *bool +// if restored != nil { +// restoredUniqueItems = restored.UniqueItems +// restoreExclusiveMaximum = restored.ExclusiveMaximum +// restoredExclusiveMinimum = restored.ExclusiveMinimum +// restoreXPreserveUnknownFields = restored.XPreserveUnknownFields +// restoredXIntOrString = restored.XIntOrString +// } +// clusterv1.Convert_bool_To_Pointer_bool(src.UniqueItems, hasRestored, restoredUniqueItems, &dst.UniqueItems) +// clusterv1.Convert_bool_To_Pointer_bool(src.ExclusiveMaximum, hasRestored, restoreExclusiveMaximum, &dst.ExclusiveMaximum) +// clusterv1.Convert_bool_To_Pointer_bool(src.ExclusiveMinimum, hasRestored, restoredExclusiveMinimum, &dst.ExclusiveMinimum) +// clusterv1.Convert_bool_To_Pointer_bool(src.XPreserveUnknownFields, hasRestored, restoreXPreserveUnknownFields, &dst.XPreserveUnknownFields) +// clusterv1.Convert_bool_To_Pointer_bool(src.XIntOrString, hasRestored, restoredXIntOrString, &dst.XIntOrString) +// +// for name, property := range dst.Properties { +// srcProperty, ok := src.Properties[name] +// if !ok { +// return fmt.Errorf("property %s not found in source data", name) +// } +// var restoredPropertyOpenAPIV3Schema *clusterv1.JSONSchemaProps +// if restored != nil { +// if v, ok := restored.Properties[name]; ok { +// restoredPropertyOpenAPIV3Schema = &v +// } +// } +// if err := restoreBoolIntentJSONSchemaProps(&srcProperty, &property, hasRestored, restoredPropertyOpenAPIV3Schema); err != nil { +// return err +// } +// dst.Properties[name] = property +// } +// if src.AdditionalProperties != nil { +// var restoredAdditionalPropertiesOpenAPIV3Schema *clusterv1.JSONSchemaProps +// if restored != nil { +// restoredAdditionalPropertiesOpenAPIV3Schema = restored.AdditionalProperties +// } +// if err := restoreBoolIntentJSONSchemaProps(src.AdditionalProperties, dst.AdditionalProperties, hasRestored, restoredAdditionalPropertiesOpenAPIV3Schema); err != nil { +// return err +// } +// } +// if src.Items != nil { +// var restoreItemsOpenAPIV3Schema *clusterv1.JSONSchemaProps +// if restored != nil { +// restoreItemsOpenAPIV3Schema = restored.Items +// } +// if err := restoreBoolIntentJSONSchemaProps(src.Items, dst.Items, hasRestored, restoreItemsOpenAPIV3Schema); err != nil { +// return err +// } +// } +// for i, value := range dst.AllOf { +// srcValue := src.AllOf[i] +// var restoredValueOpenAPIV3Schema *clusterv1.JSONSchemaProps +// if restored != nil && len(src.AllOf) == len(dst.AllOf) { +// restoredValueOpenAPIV3Schema = &restored.AllOf[i] +// } +// if err := restoreBoolIntentJSONSchemaProps(&srcValue, &value, hasRestored, restoredValueOpenAPIV3Schema); err != nil { +// return err +// } +// dst.AllOf[i] = value +// } +// for i, value := range dst.OneOf { +// srcValue := src.OneOf[i] +// var restoredValueOpenAPIV3Schema *clusterv1.JSONSchemaProps +// if restored != nil && len(src.OneOf) == len(dst.OneOf) { +// restoredValueOpenAPIV3Schema = &restored.OneOf[i] +// } +// if err := restoreBoolIntentJSONSchemaProps(&srcValue, &value, hasRestored, restoredValueOpenAPIV3Schema); err != nil { +// return err +// } +// dst.OneOf[i] = value +// } +// for i, value := range dst.AnyOf { +// srcValue := src.AnyOf[i] +// var restoredValueOpenAPIV3Schema *clusterv1.JSONSchemaProps +// if restored != nil && len(src.AnyOf) == len(dst.AnyOf) { +// restoredValueOpenAPIV3Schema = &restored.AnyOf[i] +// } +// if err := restoreBoolIntentJSONSchemaProps(&srcValue, &value, hasRestored, restoredValueOpenAPIV3Schema); err != nil { +// return err +// } +// dst.AnyOf[i] = value +// } +// if src.Not != nil { +// var restoredNotOpenAPIV3Schema *clusterv1.JSONSchemaProps +// if restored != nil { +// restoredNotOpenAPIV3Schema = restored.Not +// } +// if err := restoreBoolIntentJSONSchemaProps(src.Not, dst.Not, hasRestored, restoredNotOpenAPIV3Schema); err != nil { +// return err +// } +// } +// return nil +//} +// +//func (dst *ClusterClass) ConvertFrom(srcRaw conversion.Hub) error { +// src := srcRaw.(*clusterv1.ClusterClass) +// if err := Convert_v1beta2_ClusterClass_To_v1beta1_ClusterClass(src, dst, nil); err != nil { +// return err +// } +// +// if dst.Spec.ControlPlane.MachineHealthCheck != nil && dst.Spec.ControlPlane.MachineHealthCheck.RemediationTemplate != nil { +// dst.Spec.ControlPlane.MachineHealthCheck.RemediationTemplate.Namespace = dst.Namespace +// } +// for _, md := range dst.Spec.Workers.MachineDeployments { +// if md.MachineHealthCheck != nil && md.MachineHealthCheck.RemediationTemplate != nil { +// md.MachineHealthCheck.RemediationTemplate.Namespace = dst.Namespace +// } +// } +// dropEmptyStringsClusterClass(dst) +// +// return utilconversion.MarshalData(src, dst) +//} +// +//func (src *Machine) ConvertTo(dstRaw conversion.Hub) error { +// dst := dstRaw.(*clusterv1.Machine) +// +// if err := Convert_v1beta1_Machine_To_v1beta2_Machine(src, dst, nil); err != nil { +// return err +// } +// +// if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec, &dst.Spec); err != nil { +// return err +// } +// +// restored := &clusterv1.Machine{} +// ok, err := utilconversion.UnmarshalData(src, restored) +// if err != nil { +// return err +// } +// +// // Recover intent for bool values converted to *bool. +// initialization := clusterv1.MachineInitializationStatus{} +// restoredBootstrapDataSecretCreated := restored.Status.Initialization.BootstrapDataSecretCreated +// restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned +// clusterv1.Convert_bool_To_Pointer_bool(src.Status.BootstrapReady, ok, restoredBootstrapDataSecretCreated, &initialization.BootstrapDataSecretCreated) +// clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) +// if !reflect.DeepEqual(initialization, clusterv1.MachineInitializationStatus{}) { +// dst.Status.Initialization = initialization +// } +// +// // Recover other values. +// if ok { +// dst.Spec.MinReadySeconds = restored.Spec.MinReadySeconds +// } +// +// return nil +//} +// +//func (dst *Machine) ConvertFrom(srcRaw conversion.Hub) error { +// src := srcRaw.(*clusterv1.Machine) +// +// if err := Convert_v1beta2_Machine_To_v1beta1_Machine(src, dst, nil); err != nil { +// return err +// } +// +// if err := convertMachineSpecToObjectReference(&src.Spec, &dst.Spec, src.Namespace); err != nil { +// return err +// } +// +// dropEmptyStringsMachineSpec(&dst.Spec) +// +// return utilconversion.MarshalData(src, dst) +//} +// +//func (src *MachineSet) ConvertTo(dstRaw conversion.Hub) error { +// dst := dstRaw.(*clusterv1.MachineSet) +// +// if err := Convert_v1beta1_MachineSet_To_v1beta2_MachineSet(src, dst, nil); err != nil { +// return err +// } +// +// if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { +// return err +// } +// +// if src.Spec.MinReadySeconds == 0 { +// dst.Spec.Template.Spec.MinReadySeconds = nil +// } else { +// dst.Spec.Template.Spec.MinReadySeconds = &src.Spec.MinReadySeconds +// } +// +// return nil +//} +// +//func (dst *MachineSet) ConvertFrom(srcRaw conversion.Hub) error { +// src := srcRaw.(*clusterv1.MachineSet) +// +// if err := Convert_v1beta2_MachineSet_To_v1beta1_MachineSet(src, dst, nil); err != nil { +// return err +// } +// +// if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { +// return err +// } +// +// dst.Spec.MinReadySeconds = ptr.Deref(src.Spec.Template.Spec.MinReadySeconds, 0) +// +// dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) +// return nil +//} +// +//func (src *MachineDeployment) ConvertTo(dstRaw conversion.Hub) error { +// dst := dstRaw.(*clusterv1.MachineDeployment) +// +// if err := Convert_v1beta1_MachineDeployment_To_v1beta2_MachineDeployment(src, dst, nil); err != nil { +// return err +// } +// +// if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { +// return err +// } +// +// dst.Spec.Template.Spec.MinReadySeconds = src.Spec.MinReadySeconds +// +// restored := &clusterv1.MachineDeployment{} +// ok, err := utilconversion.UnmarshalData(src, restored) +// if err != nil { +// return err +// } +// +// // Recover intent for bool values converted to *bool. +// clusterv1.Convert_bool_To_Pointer_bool(src.Spec.Paused, ok, restored.Spec.Paused, &dst.Spec.Paused) +// +// return nil +//} +// +//func (dst *MachineDeployment) ConvertFrom(srcRaw conversion.Hub) error { +// src := srcRaw.(*clusterv1.MachineDeployment) +// +// if err := Convert_v1beta2_MachineDeployment_To_v1beta1_MachineDeployment(src, dst, nil); err != nil { +// return err +// } +// +// if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { +// return err +// } +// +// dst.Spec.MinReadySeconds = src.Spec.Template.Spec.MinReadySeconds +// +// dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) +// +// return utilconversion.MarshalData(src, dst) +//} +// +//func (src *MachineHealthCheck) ConvertTo(dstRaw conversion.Hub) error { +// dst := dstRaw.(*clusterv1.MachineHealthCheck) +// +// if err := Convert_v1beta1_MachineHealthCheck_To_v1beta2_MachineHealthCheck(src, dst, nil); err != nil { +// return err +// } +// +// // Manually restore data. +// restored := &clusterv1.MachineHealthCheck{} +// ok, err := utilconversion.UnmarshalData(src, restored) +// if err != nil { +// return err +// } +// +// clusterv1.Convert_int32_To_Pointer_int32(src.Status.ExpectedMachines, ok, restored.Status.ExpectedMachines, &dst.Status.ExpectedMachines) +// clusterv1.Convert_int32_To_Pointer_int32(src.Status.CurrentHealthy, ok, restored.Status.CurrentHealthy, &dst.Status.CurrentHealthy) +// clusterv1.Convert_int32_To_Pointer_int32(src.Status.RemediationsAllowed, ok, restored.Status.RemediationsAllowed, &dst.Status.RemediationsAllowed) +// +// return nil +//} +// +//func (dst *MachineHealthCheck) ConvertFrom(srcRaw conversion.Hub) error { +// src := srcRaw.(*clusterv1.MachineHealthCheck) +// if err := Convert_v1beta2_MachineHealthCheck_To_v1beta1_MachineHealthCheck(src, dst, nil); err != nil { +// return err +// } +// +// if dst.Spec.RemediationTemplate != nil { +// dst.Spec.RemediationTemplate.Namespace = src.Namespace +// } +// +// return utilconversion.MarshalData(src, dst) +//} +// +//func (src *MachinePool) ConvertTo(dstRaw conversion.Hub) error { +// dst := dstRaw.(*clusterv1.MachinePool) +// +// if err := Convert_v1beta1_MachinePool_To_v1beta2_MachinePool(src, dst, nil); err != nil { +// return err +// } +// +// if err := convertMachineSpecToContractVersionedObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec); err != nil { +// return err +// } +// +// dst.Spec.Template.Spec.MinReadySeconds = src.Spec.MinReadySeconds +// +// restored := &clusterv1.MachinePool{} +// ok, err := utilconversion.UnmarshalData(src, restored) +// if err != nil { +// return err +// } +// +// // Recover intent for bool values converted to *bool. +// initialization := clusterv1.MachinePoolInitializationStatus{} +// restoredBootstrapDataSecretCreated := restored.Status.Initialization.BootstrapDataSecretCreated +// restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned +// clusterv1.Convert_bool_To_Pointer_bool(src.Status.BootstrapReady, ok, restoredBootstrapDataSecretCreated, &initialization.BootstrapDataSecretCreated) +// clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) +// if !reflect.DeepEqual(initialization, clusterv1.MachinePoolInitializationStatus{}) { +// dst.Status.Initialization = initialization +// } +// +// return nil +//} +// +//func (dst *MachinePool) ConvertFrom(srcRaw conversion.Hub) error { +// src := srcRaw.(*clusterv1.MachinePool) +// +// if err := Convert_v1beta2_MachinePool_To_v1beta1_MachinePool(src, dst, nil); err != nil { +// return err +// } +// +// if err := convertMachineSpecToObjectReference(&src.Spec.Template.Spec, &dst.Spec.Template.Spec, src.Namespace); err != nil { +// return err +// } +// +// dst.Spec.MinReadySeconds = src.Spec.Template.Spec.MinReadySeconds +// +// dropEmptyStringsMachineSpec(&dst.Spec.Template.Spec) +// +// return utilconversion.MarshalData(src, dst) +//} +// +//func (src *MachineDrainRule) ConvertTo(dstRaw conversion.Hub) error { +// dst := dstRaw.(*clusterv1.MachineDrainRule) +// return Convert_v1beta1_MachineDrainRule_To_v1beta2_MachineDrainRule(src, dst, nil) +//} +// +//func (dst *MachineDrainRule) ConvertFrom(srcRaw conversion.Hub) error { +// src := srcRaw.(*clusterv1.MachineDrainRule) +// return Convert_v1beta2_MachineDrainRule_To_v1beta1_MachineDrainRule(src, dst, nil) +//} diff --git a/util/converter/cluster.go b/util/converter/cluster.go new file mode 100644 index 000000000000..9ce018b0e87b --- /dev/null +++ b/util/converter/cluster.go @@ -0,0 +1,178 @@ +/* +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 converter + +import ( + "context" + "errors" + "fmt" + "reflect" + + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + webhookconversion "sigs.k8s.io/controller-runtime/pkg/webhook/conversion" + + clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" + clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" + "sigs.k8s.io/cluster-api/util/conversion" +) + +var apiVersionGetter = func(context.Context, schema.GroupKind) (string, error) { + return "", errors.New("apiVersionGetter not set") +} + +func SetAPIVersionGetter(f func(context.Context, schema.GroupKind) (string, error)) { + apiVersionGetter = f +} + +var Cluster = webhookconversion.NewHubSpokeConverter(&clusterv1.Cluster{}, + webhookconversion.NewSpokeConverter(&clusterv1beta1.Cluster{}, ConvertClusterHubToV1Beta1, ConvertClusterV1Beta1ToHub), +) + +func ConvertClusterV1Beta1ToHub(_ context.Context, src *clusterv1beta1.Cluster, dst *clusterv1.Cluster) error { + if err := clusterv1beta1.Convert_v1beta1_Cluster_To_v1beta2_Cluster(src, dst, nil); err != nil { + return err + } + + if src.Spec.InfrastructureRef != nil { + infraRef, err := convertToContractVersionedObjectReference(src.Spec.InfrastructureRef) + if err != nil { + return err + } + dst.Spec.InfrastructureRef = infraRef + } + + if src.Spec.ControlPlaneRef != nil { + controlPlaneRef, err := convertToContractVersionedObjectReference(src.Spec.ControlPlaneRef) + if err != nil { + return err + } + dst.Spec.ControlPlaneRef = controlPlaneRef + } + + restored := &clusterv1.Cluster{} + ok, err := conversion.UnmarshalData(src, restored) + if err != nil { + return err + } + + // Recover intent for bool values converted to *bool. + clusterv1.Convert_bool_To_Pointer_bool(src.Spec.Paused, ok, restored.Spec.Paused, &dst.Spec.Paused) + + initialization := clusterv1.ClusterInitializationStatus{} + restoredControlPlaneInitialized := restored.Status.Initialization.ControlPlaneInitialized + restoredInfrastructureProvisioned := restored.Status.Initialization.InfrastructureProvisioned + clusterv1.Convert_bool_To_Pointer_bool(src.Status.ControlPlaneReady, ok, restoredControlPlaneInitialized, &initialization.ControlPlaneInitialized) + clusterv1.Convert_bool_To_Pointer_bool(src.Status.InfrastructureReady, ok, restoredInfrastructureProvisioned, &initialization.InfrastructureProvisioned) + if !reflect.DeepEqual(initialization, clusterv1.ClusterInitializationStatus{}) { + dst.Status.Initialization = initialization + } + return nil +} + +func ConvertClusterHubToV1Beta1(ctx context.Context, src *clusterv1.Cluster, dst *clusterv1beta1.Cluster) error { + if err := clusterv1beta1.Convert_v1beta2_Cluster_To_v1beta1_Cluster(src, dst, nil); err != nil { + return err + } + + if src.Spec.InfrastructureRef.IsDefined() { + infraRef, err := convertToObjectReference(ctx, src.Spec.InfrastructureRef, src.Namespace) + if err != nil { + return err + } + dst.Spec.InfrastructureRef = infraRef + } + + if src.Spec.ControlPlaneRef.IsDefined() { + controlPlaneRef, err := convertToObjectReference(ctx, src.Spec.ControlPlaneRef, src.Namespace) + if err != nil { + return err + } + dst.Spec.ControlPlaneRef = controlPlaneRef + } + + if dst.Spec.ClusterNetwork != nil && dst.Spec.ClusterNetwork.APIServerPort != nil && + *dst.Spec.ClusterNetwork.APIServerPort == 0 { + dst.Spec.ClusterNetwork.APIServerPort = nil + } + + if dst.Spec.Topology != nil { + if dst.Spec.Topology.ControlPlane.MachineHealthCheck != nil && dst.Spec.Topology.ControlPlane.MachineHealthCheck.RemediationTemplate != nil { + dst.Spec.Topology.ControlPlane.MachineHealthCheck.RemediationTemplate.Namespace = dst.Namespace + } + if dst.Spec.Topology.Workers != nil { + for _, md := range dst.Spec.Topology.Workers.MachineDeployments { + if md.MachineHealthCheck != nil && md.MachineHealthCheck.RemediationTemplate != nil { + md.MachineHealthCheck.RemediationTemplate.Namespace = dst.Namespace + } + } + } + } + + dropEmptyStringsCluster(dst) + + return conversion.MarshalData(src, dst) +} + +func convertToContractVersionedObjectReference(ref *corev1.ObjectReference) (clusterv1.ContractVersionedObjectReference, error) { + var apiGroup string + if ref.APIVersion != "" { + gv, err := schema.ParseGroupVersion(ref.APIVersion) + if err != nil { + return clusterv1.ContractVersionedObjectReference{}, fmt.Errorf("failed to convert object: failed to parse apiVersion: %v", err) + } + apiGroup = gv.Group + } + return clusterv1.ContractVersionedObjectReference{ + APIGroup: apiGroup, + Kind: ref.Kind, + Name: ref.Name, + }, nil +} + +func convertToObjectReference(ctx context.Context, ref clusterv1.ContractVersionedObjectReference, namespace string) (*corev1.ObjectReference, error) { + apiVersion, err := apiVersionGetter(ctx, schema.GroupKind{ + Group: ref.APIGroup, + Kind: ref.Kind, + }) + if err != nil { + return nil, fmt.Errorf("failed to convert object: %v", err) + } + return &corev1.ObjectReference{ + APIVersion: apiVersion, + Kind: ref.Kind, + Namespace: namespace, + Name: ref.Name, + }, nil +} + +func dropEmptyStringsCluster(dst *clusterv1beta1.Cluster) { + if dst.Spec.Topology != nil { + if dst.Spec.Topology.Workers != nil { + for i, md := range dst.Spec.Topology.Workers.MachineDeployments { + dropEmptyString(&md.FailureDomain) + dst.Spec.Topology.Workers.MachineDeployments[i] = md + } + } + } +} + +func dropEmptyString(s **string) { + if *s != nil && **s == "" { + *s = nil + } +} diff --git a/util/converter/common.go b/util/converter/common.go new file mode 100644 index 000000000000..c1b752c44aac --- /dev/null +++ b/util/converter/common.go @@ -0,0 +1,57 @@ +package converter + +import clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" + +func dropEmptyStringsClusterClass(dst *clusterv1beta1.ClusterClass) { + if dst.Spec.InfrastructureNamingStrategy != nil { + dropEmptyString(&dst.Spec.InfrastructureNamingStrategy.Template) + } + + if dst.Spec.ControlPlane.NamingStrategy != nil { + dropEmptyString(&dst.Spec.ControlPlane.NamingStrategy.Template) + } + + for i, md := range dst.Spec.Workers.MachineDeployments { + if md.NamingStrategy != nil { + dropEmptyString(&md.NamingStrategy.Template) + } + dropEmptyString(&md.FailureDomain) + dst.Spec.Workers.MachineDeployments[i] = md + } + + for i, mp := range dst.Spec.Workers.MachinePools { + if mp.NamingStrategy != nil { + dropEmptyString(&mp.NamingStrategy.Template) + } + + dst.Spec.Workers.MachinePools[i] = mp + } + + for i, p := range dst.Spec.Patches { + dropEmptyString(&p.EnabledIf) + if p.External != nil { + dropEmptyString(&p.External.GenerateExtension) + dropEmptyString(&p.External.ValidateExtension) + dropEmptyString(&p.External.DiscoverVariablesExtension) + } + + for j, d := range p.Definitions { + for k, jp := range d.JSONPatches { + if jp.ValueFrom != nil { + dropEmptyString(&jp.ValueFrom.Variable) + dropEmptyString(&jp.ValueFrom.Template) + } + d.JSONPatches[k] = jp + } + p.Definitions[j] = d + } + + dst.Spec.Patches[i] = p + } +} + +func dropEmptyStringsMachineSpec(spec *clusterv1beta1.MachineSpec) { + dropEmptyString(&spec.Version) + dropEmptyString(&spec.ProviderID) + dropEmptyString(&spec.FailureDomain) +} diff --git a/api/core/v1beta1/conversion_test.go b/util/converter/conversion_test.go similarity index 74% rename from api/core/v1beta1/conversion_test.go rename to util/converter/conversion_test.go index 10d557048460..53b31b9e0883 100644 --- a/api/core/v1beta1/conversion_test.go +++ b/util/converter/conversion_test.go @@ -16,9 +16,10 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1beta1 +package converter import ( + "context" "fmt" "reflect" "slices" @@ -28,7 +29,6 @@ import ( corev1 "k8s.io/api/core/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" @@ -36,14 +36,14 @@ import ( "k8s.io/utils/ptr" "sigs.k8s.io/randfill" + clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1" clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2" - utilconversion "sigs.k8s.io/cluster-api/util/conversion" ) // Test is disabled when the race detector is enabled (via "//go:build !race" above) because otherwise the fuzz tests would just time out. func TestFuzzyConversion(t *testing.T) { - SetAPIVersionGetter(func(gk schema.GroupKind) (string, error) { + SetAPIVersionGetter(func(_ context.Context, gk schema.GroupKind) (string, error) { for _, gvk := range testGVKs { if gvk.GroupKind() == gk { return schema.GroupVersion{ @@ -55,41 +55,42 @@ func TestFuzzyConversion(t *testing.T) { return "", fmt.Errorf("failed to map GroupKind %s to version", gk.String()) }) - t.Run("for Cluster", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &clusterv1.Cluster{}, - Spoke: &Cluster{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{ClusterFuzzFuncs}, - })) - t.Run("for ClusterClass", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &clusterv1.ClusterClass{}, - Spoke: &ClusterClass{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{ClusterClassFuncs}, - })) - t.Run("for Machine", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &clusterv1.Machine{}, - Spoke: &Machine{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{MachineFuzzFuncs}, - })) - t.Run("for MachineSet", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &clusterv1.MachineSet{}, - Spoke: &MachineSet{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{MachineSetFuzzFuncs}, - })) - t.Run("for MachineDeployment", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &clusterv1.MachineDeployment{}, - Spoke: &MachineDeployment{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{MachineDeploymentFuzzFuncs}, - })) - t.Run("for MachineHealthCheck", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &clusterv1.MachineHealthCheck{}, - Spoke: &MachineHealthCheck{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{MachineHealthCheckFuzzFuncs}, - })) - t.Run("for MachinePool", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &clusterv1.MachinePool{}, - Spoke: &MachinePool{}, - FuzzerFuncs: []fuzzer.FuzzerFuncs{MachinePoolFuzzFuncs}, - })) + // FIXME: implement a new test util for the new conversion. + //t.Run("for Cluster", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ + // Hub: &clusterv1.Cluster{}, + // Spoke: &Cluster{}, + // FuzzerFuncs: []fuzzer.FuzzerFuncs{ClusterFuzzFuncs}, + //})) + //t.Run("for ClusterClass", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ + // Hub: &clusterv1.ClusterClass{}, + // Spoke: &ClusterClass{}, + // FuzzerFuncs: []fuzzer.FuzzerFuncs{ClusterClassFuncs}, + //})) + //t.Run("for Machine", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ + // Hub: &clusterv1.Machine{}, + // Spoke: &Machine{}, + // FuzzerFuncs: []fuzzer.FuzzerFuncs{MachineFuzzFuncs}, + //})) + //t.Run("for MachineSet", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ + // Hub: &clusterv1.MachineSet{}, + // Spoke: &MachineSet{}, + // FuzzerFuncs: []fuzzer.FuzzerFuncs{MachineSetFuzzFuncs}, + //})) + //t.Run("for MachineDeployment", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ + // Hub: &clusterv1.MachineDeployment{}, + // Spoke: &MachineDeployment{}, + // FuzzerFuncs: []fuzzer.FuzzerFuncs{MachineDeploymentFuzzFuncs}, + //})) + //t.Run("for MachineHealthCheck", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ + // Hub: &clusterv1.MachineHealthCheck{}, + // Spoke: &MachineHealthCheck{}, + // FuzzerFuncs: []fuzzer.FuzzerFuncs{MachineHealthCheckFuzzFuncs}, + //})) + //t.Run("for MachinePool", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ + // Hub: &clusterv1.MachinePool{}, + // Spoke: &MachinePool{}, + // FuzzerFuncs: []fuzzer.FuzzerFuncs{MachinePoolFuzzFuncs}, + //})) } func ClusterFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} { @@ -177,7 +178,7 @@ func hubUnhealthyNodeCondition(in *clusterv1.UnhealthyNodeCondition, c randfill. } } -func spokeCluster(in *Cluster, c randfill.Continue) { +func spokeCluster(in *clusterv1beta1.Cluster, c randfill.Continue) { c.FillNoCustom(in) in.Namespace = "foo" @@ -219,44 +220,44 @@ func spokeCluster(in *Cluster, c randfill.Continue) { } if in.Spec.ClusterNetwork != nil { - if in.Spec.ClusterNetwork.Services != nil && reflect.DeepEqual(in.Spec.ClusterNetwork.Services, &NetworkRanges{}) { + if in.Spec.ClusterNetwork.Services != nil && reflect.DeepEqual(in.Spec.ClusterNetwork.Services, &clusterv1beta1.NetworkRanges{}) { in.Spec.ClusterNetwork.Services = nil } - if in.Spec.ClusterNetwork.Pods != nil && reflect.DeepEqual(in.Spec.ClusterNetwork.Pods, &NetworkRanges{}) { + if in.Spec.ClusterNetwork.Pods != nil && reflect.DeepEqual(in.Spec.ClusterNetwork.Pods, &clusterv1beta1.NetworkRanges{}) { in.Spec.ClusterNetwork.Pods = nil } - if reflect.DeepEqual(in.Spec.ClusterNetwork, &ClusterNetwork{}) { + if reflect.DeepEqual(in.Spec.ClusterNetwork, &clusterv1beta1.ClusterNetwork{}) { in.Spec.ClusterNetwork = nil } } - if in.Spec.Topology != nil && reflect.DeepEqual(in.Spec.Topology, &Topology{}) { + if in.Spec.Topology != nil && reflect.DeepEqual(in.Spec.Topology, &clusterv1beta1.Topology{}) { in.Spec.Topology = nil } } -func spokeClusterTopology(in *Topology, c randfill.Continue) { +func spokeClusterTopology(in *clusterv1beta1.Topology, c randfill.Continue) { c.FillNoCustom(in) // RolloutAfter was unused and has been removed in v1beta2. in.RolloutAfter = nil - if in.Workers != nil && reflect.DeepEqual(in.Workers, &WorkersTopology{}) { + if in.Workers != nil && reflect.DeepEqual(in.Workers, &clusterv1beta1.WorkersTopology{}) { in.Workers = nil } } -func spokeClusterStatus(in *ClusterStatus, c randfill.Continue) { +func spokeClusterStatus(in *clusterv1beta1.ClusterStatus, c randfill.Continue) { c.FillNoCustom(in) // Drop empty structs with only omit empty fields. if in.V1Beta2 != nil { - if reflect.DeepEqual(in.V1Beta2, &ClusterV1Beta2Status{}) { + if reflect.DeepEqual(in.V1Beta2, &clusterv1beta1.ClusterV1Beta2Status{}) { in.V1Beta2 = nil } } } -func spokeClusterVariable(in *ClusterVariable, c randfill.Continue) { +func spokeClusterVariable(in *clusterv1beta1.ClusterVariable, c randfill.Continue) { c.FillNoCustom(in) in.Value = apiextensionsv1.JSON{Raw: []byte(strconv.FormatBool(c.Bool()))} @@ -372,7 +373,7 @@ func fillHubJSONSchemaProps(in *clusterv1.JSONSchemaProps, c randfill.Continue) return in } -func spokeClusterClass(in *ClusterClass, c randfill.Continue) { +func spokeClusterClass(in *clusterv1beta1.ClusterClass, c randfill.Continue) { c.FillNoCustom(in) in.Namespace = "foo" @@ -387,63 +388,63 @@ func spokeClusterClass(in *ClusterClass, c randfill.Continue) { } in.Spec.Workers.MachineDeployments[i] = md } - if reflect.DeepEqual(in.Spec.InfrastructureNamingStrategy, &InfrastructureNamingStrategy{}) { + if reflect.DeepEqual(in.Spec.InfrastructureNamingStrategy, &clusterv1beta1.InfrastructureNamingStrategy{}) { in.Spec.InfrastructureNamingStrategy = nil } - if reflect.DeepEqual(in.Spec.ControlPlane.NamingStrategy, &ControlPlaneClassNamingStrategy{}) { + if reflect.DeepEqual(in.Spec.ControlPlane.NamingStrategy, &clusterv1beta1.ControlPlaneClassNamingStrategy{}) { in.Spec.ControlPlane.NamingStrategy = nil } for i, md := range in.Spec.Workers.MachineDeployments { - if reflect.DeepEqual(md.NamingStrategy, &MachineDeploymentClassNamingStrategy{}) { + if reflect.DeepEqual(md.NamingStrategy, &clusterv1beta1.MachineDeploymentClassNamingStrategy{}) { md.NamingStrategy = nil } in.Spec.Workers.MachineDeployments[i] = md } for i, mp := range in.Spec.Workers.MachinePools { - if reflect.DeepEqual(mp.NamingStrategy, &MachinePoolClassNamingStrategy{}) { + if reflect.DeepEqual(mp.NamingStrategy, &clusterv1beta1.MachinePoolClassNamingStrategy{}) { mp.NamingStrategy = nil } in.Spec.Workers.MachinePools[i] = mp } } -func spokeClusterClassStatus(in *ClusterClassStatus, c randfill.Continue) { +func spokeClusterClassStatus(in *clusterv1beta1.ClusterClassStatus, c randfill.Continue) { c.FillNoCustom(in) // Drop empty structs with only omit empty fields. if in.V1Beta2 != nil { - if reflect.DeepEqual(in.V1Beta2, &ClusterClassV1Beta2Status{}) { + if reflect.DeepEqual(in.V1Beta2, &clusterv1beta1.ClusterClassV1Beta2Status{}) { in.V1Beta2 = nil } } } -func spokeSONPatch(in *JSONPatch, c randfill.Continue) { +func spokeSONPatch(in *clusterv1beta1.JSONPatch, c randfill.Continue) { c.FillNoCustom(in) // Not every random byte array is valid JSON, e.g. a string without `""`,so we're setting a valid value. in.Value = &apiextensionsv1.JSON{Raw: []byte("5")} } -func spokeJSONSchemaProps(in *JSONSchemaProps, c randfill.Continue) { +func spokeJSONSchemaProps(in *clusterv1beta1.JSONSchemaProps, c randfill.Continue) { // NOTE: We have to fuzz the individual fields manually, // because we cannot call `FillNoCustom` as it would lead // to an infinite recursion. _ = fillSpokeJSONSchemaProps(in, c) // Fill one level recursion. - in.AdditionalProperties = fillSpokeJSONSchemaProps(&JSONSchemaProps{}, c) - in.Properties = map[string]JSONSchemaProps{} + in.AdditionalProperties = fillSpokeJSONSchemaProps(&clusterv1beta1.JSONSchemaProps{}, c) + in.Properties = map[string]clusterv1beta1.JSONSchemaProps{} for range c.Intn(5) { - in.Properties[c.String(0)] = *fillSpokeJSONSchemaProps(&JSONSchemaProps{}, c) + in.Properties[c.String(0)] = *fillSpokeJSONSchemaProps(&clusterv1beta1.JSONSchemaProps{}, c) } - in.Items = fillSpokeJSONSchemaProps(&JSONSchemaProps{}, c) - in.AllOf = []JSONSchemaProps{*fillSpokeJSONSchemaProps(&JSONSchemaProps{}, c)} - in.OneOf = []JSONSchemaProps{*fillSpokeJSONSchemaProps(&JSONSchemaProps{}, c)} - in.AnyOf = []JSONSchemaProps{*fillSpokeJSONSchemaProps(&JSONSchemaProps{}, c)} - in.Not = fillSpokeJSONSchemaProps(&JSONSchemaProps{}, c) + in.Items = fillSpokeJSONSchemaProps(&clusterv1beta1.JSONSchemaProps{}, c) + in.AllOf = []clusterv1beta1.JSONSchemaProps{*fillSpokeJSONSchemaProps(&clusterv1beta1.JSONSchemaProps{}, c)} + in.OneOf = []clusterv1beta1.JSONSchemaProps{*fillSpokeJSONSchemaProps(&clusterv1beta1.JSONSchemaProps{}, c)} + in.AnyOf = []clusterv1beta1.JSONSchemaProps{*fillSpokeJSONSchemaProps(&clusterv1beta1.JSONSchemaProps{}, c)} + in.Not = fillSpokeJSONSchemaProps(&clusterv1beta1.JSONSchemaProps{}, c) } -func fillSpokeJSONSchemaProps(in *JSONSchemaProps, c randfill.Continue) *JSONSchemaProps { +func fillSpokeJSONSchemaProps(in *clusterv1beta1.JSONSchemaProps, c randfill.Continue) *clusterv1beta1.JSONSchemaProps { in.Format = c.String(0) in.Pattern = c.String(0) if c.Bool() { @@ -472,7 +473,7 @@ func fillSpokeJSONSchemaProps(in *JSONSchemaProps, c randfill.Continue) *JSONSch return in } -func spokeLocalObjectTemplate(in *LocalObjectTemplate, c randfill.Continue) { +func spokeLocalObjectTemplate(in *clusterv1beta1.LocalObjectTemplate, c randfill.Continue) { c.FillNoCustom(in) if in.Ref == nil { @@ -522,7 +523,7 @@ func hubMachineStatus(in *clusterv1.MachineStatus, c randfill.Continue) { } } -func spokeMachine(in *Machine, c randfill.Continue) { +func spokeMachine(in *clusterv1beta1.Machine, c randfill.Continue) { c.FillNoCustom(in) fillMachineSpec(&in.Spec, c, in.Namespace) @@ -530,7 +531,7 @@ func spokeMachine(in *Machine, c randfill.Continue) { dropEmptyStringsMachineSpec(&in.Spec) } -func fillMachineSpec(spec *MachineSpec, c randfill.Continue, namespace string) { +func fillMachineSpec(spec *clusterv1beta1.MachineSpec, c randfill.Continue, namespace string) { // Ensure ref fields are always set to realistic values. if spec.Bootstrap.ConfigRef != nil { gvk := testGVKs[c.Int31n(4)] @@ -550,7 +551,7 @@ func fillMachineSpec(spec *MachineSpec, c randfill.Continue, namespace string) { spec.InfrastructureRef.FieldPath = "" } -func spokeMachineSpec(in *MachineSpec, c randfill.Continue) { +func spokeMachineSpec(in *clusterv1beta1.MachineSpec, c randfill.Continue) { c.FillNoCustom(in) if in.NodeDrainTimeout != nil { @@ -564,11 +565,11 @@ func spokeMachineSpec(in *MachineSpec, c randfill.Continue) { } } -func spokeMachineStatus(in *MachineStatus, c randfill.Continue) { +func spokeMachineStatus(in *clusterv1beta1.MachineStatus, c randfill.Continue) { c.FillNoCustom(in) // Drop empty structs with only omit empty fields. if in.V1Beta2 != nil { - if reflect.DeepEqual(in.V1Beta2, &MachineV1Beta2Status{}) { + if reflect.DeepEqual(in.V1Beta2, &clusterv1beta1.MachineV1Beta2Status{}) { in.V1Beta2 = nil } } @@ -623,23 +624,23 @@ func hubMachineSetStatus(in *clusterv1.MachineSetStatus, c randfill.Continue) { } } -func spokeMachineSet(in *MachineSet, c randfill.Continue) { +func spokeMachineSet(in *clusterv1beta1.MachineSet, c randfill.Continue) { c.FillNoCustom(in) fillMachineSpec(&in.Spec.Template.Spec, c, in.Namespace) dropEmptyStringsMachineSpec(&in.Spec.Template.Spec) - if reflect.DeepEqual(in.Spec.MachineNamingStrategy, &MachineNamingStrategy{}) { + if reflect.DeepEqual(in.Spec.MachineNamingStrategy, &clusterv1beta1.MachineNamingStrategy{}) { in.Spec.MachineNamingStrategy = nil } } -func spokeMachineSetStatus(in *MachineSetStatus, c randfill.Continue) { +func spokeMachineSetStatus(in *clusterv1beta1.MachineSetStatus, c randfill.Continue) { c.FillNoCustom(in) // Drop empty structs with only omit empty fields. if in.V1Beta2 != nil { - if reflect.DeepEqual(in.V1Beta2, &MachineSetV1Beta2Status{}) { + if reflect.DeepEqual(in.V1Beta2, &clusterv1beta1.MachineSetV1Beta2Status{}) { in.V1Beta2 = nil } } @@ -672,19 +673,19 @@ func hubMachineDeploymentStatus(in *clusterv1.MachineDeploymentStatus, c randfil } } -func spokeMachineDeployment(in *MachineDeployment, c randfill.Continue) { +func spokeMachineDeployment(in *clusterv1beta1.MachineDeployment, c randfill.Continue) { c.FillNoCustom(in) fillMachineSpec(&in.Spec.Template.Spec, c, in.Namespace) dropEmptyStringsMachineSpec(&in.Spec.Template.Spec) - if reflect.DeepEqual(in.Spec.MachineNamingStrategy, &MachineNamingStrategy{}) { + if reflect.DeepEqual(in.Spec.MachineNamingStrategy, &clusterv1beta1.MachineNamingStrategy{}) { in.Spec.MachineNamingStrategy = nil } } -func spokeMachineDeploymentSpec(in *MachineDeploymentSpec, c randfill.Continue) { +func spokeMachineDeploymentSpec(in *clusterv1beta1.MachineDeploymentSpec, c randfill.Continue) { c.FillNoCustom(in) // Drop ProgressDeadlineSeconds as we intentionally don't preserve it. @@ -699,14 +700,14 @@ func spokeMachineDeploymentSpec(in *MachineDeploymentSpec, c randfill.Continue) // &"" Is not a valid value for DeletePolicy as the enum validation enforces an enum value if DeletePolicy is set. in.Strategy.RollingUpdate.DeletePolicy = nil } - if reflect.DeepEqual(in.Strategy.RollingUpdate, &MachineRollingUpdateDeployment{}) { + if reflect.DeepEqual(in.Strategy.RollingUpdate, &clusterv1beta1.MachineRollingUpdateDeployment{}) { in.Strategy.RollingUpdate = nil } } - if in.Strategy.Remediation != nil && reflect.DeepEqual(in.Strategy.Remediation, &RemediationStrategy{}) { + if in.Strategy.Remediation != nil && reflect.DeepEqual(in.Strategy.Remediation, &clusterv1beta1.RemediationStrategy{}) { in.Strategy.Remediation = nil } - if reflect.DeepEqual(in.Strategy, &MachineDeploymentStrategy{}) { + if reflect.DeepEqual(in.Strategy, &clusterv1beta1.MachineDeploymentStrategy{}) { in.Strategy = nil } } @@ -715,11 +716,11 @@ func spokeMachineDeploymentSpec(in *MachineDeploymentSpec, c randfill.Continue) } } -func spokeMachineDeploymentStatus(in *MachineDeploymentStatus, c randfill.Continue) { +func spokeMachineDeploymentStatus(in *clusterv1beta1.MachineDeploymentStatus, c randfill.Continue) { c.FillNoCustom(in) // Drop empty structs with only omit empty fields. if in.V1Beta2 != nil { - if reflect.DeepEqual(in.V1Beta2, &MachineDeploymentV1Beta2Status{}) { + if reflect.DeepEqual(in.V1Beta2, &clusterv1beta1.MachineDeploymentV1Beta2Status{}) { in.V1Beta2 = nil } } @@ -747,7 +748,7 @@ func hubMachineHealthCheckStatus(in *clusterv1.MachineHealthCheckStatus, c randf } } -func spokeMachineHealthCheck(in *MachineHealthCheck, c randfill.Continue) { +func spokeMachineHealthCheck(in *clusterv1beta1.MachineHealthCheck, c randfill.Continue) { c.FillNoCustom(in) in.Namespace = "foo" @@ -755,11 +756,11 @@ func spokeMachineHealthCheck(in *MachineHealthCheck, c randfill.Continue) { dropEmptyString(&in.Spec.UnhealthyRange) } -func spokeMachineHealthCheckStatus(in *MachineHealthCheckStatus, c randfill.Continue) { +func spokeMachineHealthCheckStatus(in *clusterv1beta1.MachineHealthCheckStatus, c randfill.Continue) { c.FillNoCustom(in) // Drop empty structs with only omit empty fields. if in.V1Beta2 != nil { - if reflect.DeepEqual(in.V1Beta2, &MachineHealthCheckV1Beta2Status{}) { + if reflect.DeepEqual(in.V1Beta2, &clusterv1beta1.MachineHealthCheckV1Beta2Status{}) { in.V1Beta2 = nil } } @@ -806,7 +807,7 @@ func hubMachinePoolStatus(in *clusterv1.MachinePoolStatus, c randfill.Continue) } } -func spokeMachinePool(in *MachinePool, c randfill.Continue) { +func spokeMachinePool(in *clusterv1beta1.MachinePool, c randfill.Continue) { c.FillNoCustom(in) fillMachineSpec(&in.Spec.Template.Spec, c, in.Namespace) @@ -814,17 +815,17 @@ func spokeMachinePool(in *MachinePool, c randfill.Continue) { dropEmptyStringsMachineSpec(&in.Spec.Template.Spec) } -func spokeMachinePoolStatus(in *MachinePoolStatus, c randfill.Continue) { +func spokeMachinePoolStatus(in *clusterv1beta1.MachinePoolStatus, c randfill.Continue) { c.FillNoCustom(in) // Drop empty structs with only omit empty fields. if in.V1Beta2 != nil { - if reflect.DeepEqual(in.V1Beta2, &MachinePoolV1Beta2Status{}) { + if reflect.DeepEqual(in.V1Beta2, &clusterv1beta1.MachinePoolV1Beta2Status{}) { in.V1Beta2 = nil } } } -func spokeControlPlaneTopology(in *ControlPlaneTopology, c randfill.Continue) { +func spokeControlPlaneTopology(in *clusterv1beta1.ControlPlaneTopology, c randfill.Continue) { c.FillNoCustom(in) if in.NodeDrainTimeout != nil { @@ -837,12 +838,12 @@ func spokeControlPlaneTopology(in *ControlPlaneTopology, c randfill.Continue) { in.NodeDeletionTimeout = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) } - if in.Variables != nil && reflect.DeepEqual(in.Variables, &ControlPlaneVariables{}) { + if in.Variables != nil && reflect.DeepEqual(in.Variables, &clusterv1beta1.ControlPlaneVariables{}) { in.Variables = nil } } -func spokeMachineDeploymentTopology(in *MachineDeploymentTopology, c randfill.Continue) { +func spokeMachineDeploymentTopology(in *clusterv1beta1.MachineDeploymentTopology, c randfill.Continue) { c.FillNoCustom(in) if in.NodeDrainTimeout != nil { @@ -854,7 +855,7 @@ func spokeMachineDeploymentTopology(in *MachineDeploymentTopology, c randfill.Co if in.NodeDeletionTimeout != nil { in.NodeDeletionTimeout = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) } - if in.Variables != nil && reflect.DeepEqual(in.Variables, &MachineDeploymentVariables{}) { + if in.Variables != nil && reflect.DeepEqual(in.Variables, &clusterv1beta1.MachineDeploymentVariables{}) { in.Variables = nil } if in.Strategy != nil { @@ -863,20 +864,20 @@ func spokeMachineDeploymentTopology(in *MachineDeploymentTopology, c randfill.Co // &"" Is not a valid value for DeletePolicy as the enum validation enforces an enum value if DeletePolicy is set. in.Strategy.RollingUpdate.DeletePolicy = nil } - if reflect.DeepEqual(in.Strategy.RollingUpdate, &MachineRollingUpdateDeployment{}) { + if reflect.DeepEqual(in.Strategy.RollingUpdate, &clusterv1beta1.MachineRollingUpdateDeployment{}) { in.Strategy.RollingUpdate = nil } } - if in.Strategy.Remediation != nil && reflect.DeepEqual(in.Strategy.Remediation, &RemediationStrategy{}) { + if in.Strategy.Remediation != nil && reflect.DeepEqual(in.Strategy.Remediation, &clusterv1beta1.RemediationStrategy{}) { in.Strategy.Remediation = nil } - if reflect.DeepEqual(in.Strategy, &MachineDeploymentStrategy{}) { + if reflect.DeepEqual(in.Strategy, &clusterv1beta1.MachineDeploymentStrategy{}) { in.Strategy = nil } } } -func spokeMachinePoolTopology(in *MachinePoolTopology, c randfill.Continue) { +func spokeMachinePoolTopology(in *clusterv1beta1.MachinePoolTopology, c randfill.Continue) { c.FillNoCustom(in) if in.NodeDrainTimeout != nil { @@ -888,12 +889,12 @@ func spokeMachinePoolTopology(in *MachinePoolTopology, c randfill.Continue) { if in.NodeDeletionTimeout != nil { in.NodeDeletionTimeout = ptr.To[metav1.Duration](metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second}) } - if in.Variables != nil && reflect.DeepEqual(in.Variables, &MachinePoolVariables{}) { + if in.Variables != nil && reflect.DeepEqual(in.Variables, &clusterv1beta1.MachinePoolVariables{}) { in.Variables = nil } } -func spokeMachineHealthCheckClass(in *MachineHealthCheckClass, c randfill.Continue) { +func spokeMachineHealthCheckClass(in *clusterv1beta1.MachineHealthCheckClass, c randfill.Continue) { c.FillNoCustom(in) if in.NodeStartupTimeout != nil { @@ -901,7 +902,7 @@ func spokeMachineHealthCheckClass(in *MachineHealthCheckClass, c randfill.Contin } } -func spokeControlPlaneClass(in *ControlPlaneClass, c randfill.Continue) { +func spokeControlPlaneClass(in *clusterv1beta1.ControlPlaneClass, c randfill.Continue) { c.FillNoCustom(in) if in.NodeDrainTimeout != nil { @@ -915,7 +916,7 @@ func spokeControlPlaneClass(in *ControlPlaneClass, c randfill.Continue) { } } -func spokeMachineDeploymentClass(in *MachineDeploymentClass, c randfill.Continue) { +func spokeMachineDeploymentClass(in *clusterv1beta1.MachineDeploymentClass, c randfill.Continue) { c.FillNoCustom(in) if in.NodeDrainTimeout != nil { @@ -933,20 +934,20 @@ func spokeMachineDeploymentClass(in *MachineDeploymentClass, c randfill.Continue // &"" Is not a valid value for DeletePolicy as the enum validation enforces an enum value if DeletePolicy is set. in.Strategy.RollingUpdate.DeletePolicy = nil } - if reflect.DeepEqual(in.Strategy.RollingUpdate, &MachineRollingUpdateDeployment{}) { + if reflect.DeepEqual(in.Strategy.RollingUpdate, &clusterv1beta1.MachineRollingUpdateDeployment{}) { in.Strategy.RollingUpdate = nil } } - if in.Strategy.Remediation != nil && reflect.DeepEqual(in.Strategy.Remediation, &RemediationStrategy{}) { + if in.Strategy.Remediation != nil && reflect.DeepEqual(in.Strategy.Remediation, &clusterv1beta1.RemediationStrategy{}) { in.Strategy.Remediation = nil } - if reflect.DeepEqual(in.Strategy, &MachineDeploymentStrategy{}) { + if reflect.DeepEqual(in.Strategy, &clusterv1beta1.MachineDeploymentStrategy{}) { in.Strategy = nil } } } -func spokeMachinePoolClass(in *MachinePoolClass, c randfill.Continue) { +func spokeMachinePoolClass(in *clusterv1beta1.MachinePoolClass, c randfill.Continue) { c.FillNoCustom(in) if in.NodeDrainTimeout != nil { @@ -960,7 +961,7 @@ func spokeMachinePoolClass(in *MachinePoolClass, c randfill.Continue) { } } -func spokeMachineHealthCheckSpec(in *MachineHealthCheckSpec, c randfill.Continue) { +func spokeMachineHealthCheckSpec(in *clusterv1beta1.MachineHealthCheckSpec, c randfill.Continue) { c.FillNoCustom(in) if in.NodeStartupTimeout != nil { @@ -968,12 +969,50 @@ func spokeMachineHealthCheckSpec(in *MachineHealthCheckSpec, c randfill.Continue } } -func spokeUnhealthyCondition(in *UnhealthyCondition, c randfill.Continue) { +func spokeUnhealthyCondition(in *clusterv1beta1.UnhealthyCondition, c randfill.Continue) { c.FillNoCustom(in) in.Timeout = metav1.Duration{Duration: time.Duration(c.Int31()) * time.Second} } +func convertMachineSpecToContractVersionedObjectReference(src *clusterv1beta1.MachineSpec, dst *clusterv1.MachineSpec) error { + infraRef, err := convertToContractVersionedObjectReference(&src.InfrastructureRef) + if err != nil { + return err + } + dst.InfrastructureRef = infraRef + + if src.Bootstrap.ConfigRef != nil { + bootstrapRef, err := convertToContractVersionedObjectReference(src.Bootstrap.ConfigRef) + if err != nil { + return err + } + dst.Bootstrap.ConfigRef = bootstrapRef + } + + return nil +} + +func convertMachineSpecToObjectReference(ctx context.Context, src *clusterv1.MachineSpec, dst *clusterv1beta1.MachineSpec, namespace string) error { + if src.InfrastructureRef.IsDefined() { + infraRef, err := convertToObjectReference(ctx, src.InfrastructureRef, namespace) + if err != nil { + return err + } + dst.InfrastructureRef = *infraRef + } + + if src.Bootstrap.ConfigRef.IsDefined() { + bootstrapRef, err := convertToObjectReference(ctx, src.Bootstrap.ConfigRef, namespace) + if err != nil { + return err + } + dst.Bootstrap.ConfigRef = bootstrapRef + } + + return nil +} + var testGVKs = []schema.GroupVersionKind{ { Group: "controlplane.cluster.x-k8s.io", diff --git a/api/core/v1beta2/index/.import-restrictions b/util/index/.import-restrictions similarity index 100% rename from api/core/v1beta2/index/.import-restrictions rename to util/index/.import-restrictions diff --git a/api/core/v1beta2/index/cluster.go b/util/index/cluster.go similarity index 100% rename from api/core/v1beta2/index/cluster.go rename to util/index/cluster.go diff --git a/api/core/v1beta2/index/cluster_test.go b/util/index/cluster_test.go similarity index 100% rename from api/core/v1beta2/index/cluster_test.go rename to util/index/cluster_test.go diff --git a/api/core/v1beta2/index/index.go b/util/index/index.go similarity index 100% rename from api/core/v1beta2/index/index.go rename to util/index/index.go diff --git a/api/core/v1beta2/index/machine.go b/util/index/machine.go similarity index 100% rename from api/core/v1beta2/index/machine.go rename to util/index/machine.go diff --git a/api/core/v1beta2/index/machine_test.go b/util/index/machine_test.go similarity index 100% rename from api/core/v1beta2/index/machine_test.go rename to util/index/machine_test.go diff --git a/api/core/v1beta2/index/machinepool.go b/util/index/machinepool.go similarity index 100% rename from api/core/v1beta2/index/machinepool.go rename to util/index/machinepool.go diff --git a/api/core/v1beta2/index/machinepool_test.go b/util/index/machinepool_test.go similarity index 100% rename from api/core/v1beta2/index/machinepool_test.go rename to util/index/machinepool_test.go diff --git a/api/core/v1beta2/index/node.go b/util/index/node.go similarity index 100% rename from api/core/v1beta2/index/node.go rename to util/index/node.go diff --git a/api/core/v1beta2/index/node_test.go b/util/index/node_test.go similarity index 100% rename from api/core/v1beta2/index/node_test.go rename to util/index/node_test.go