sigs.k8s.io/cluster-api@v1.7.1/internal/apis/core/exp/v1alpha3/conversion.go (about) 1 /* 2 Copyright 2020 The Kubernetes Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package v1alpha3 18 19 import ( 20 apimachineryconversion "k8s.io/apimachinery/pkg/conversion" 21 "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" 22 "sigs.k8s.io/controller-runtime/pkg/conversion" 23 24 expv1 "sigs.k8s.io/cluster-api/exp/api/v1beta1" 25 utilconversion "sigs.k8s.io/cluster-api/util/conversion" 26 ) 27 28 // Convert_v1alpha3_MachinePoolSpec_To_v1beta1_MachinePoolSpec is an autogenerated conversion function. 29 func Convert_v1alpha3_MachinePoolSpec_To_v1beta1_MachinePoolSpec(in *MachinePoolSpec, out *expv1.MachinePoolSpec, s apimachineryconversion.Scope) error { 30 return autoConvert_v1alpha3_MachinePoolSpec_To_v1beta1_MachinePoolSpec(in, out, s) 31 } 32 33 func Convert_v1alpha3_MachinePool_To_v1beta1_MachinePool(in *MachinePool, out *expv1.MachinePool, s apimachineryconversion.Scope) error { 34 if err := autoConvert_v1alpha3_MachinePool_To_v1beta1_MachinePool(in, out, s); err != nil { 35 return err 36 } 37 38 // Replace v1alpha3 finalizer to allow old MachinePools to get deleted. 39 if controllerutil.ContainsFinalizer(out, MachinePoolFinalizer) { 40 controllerutil.RemoveFinalizer(out, MachinePoolFinalizer) 41 controllerutil.AddFinalizer(out, expv1.MachinePoolFinalizer) 42 } 43 44 return nil 45 } 46 47 func Convert_v1beta1_MachinePool_To_v1alpha3_MachinePool(in *expv1.MachinePool, out *MachinePool, s apimachineryconversion.Scope) error { 48 if err := autoConvert_v1beta1_MachinePool_To_v1alpha3_MachinePool(in, out, s); err != nil { 49 return err 50 } 51 52 // Replace v1beta1 finalizer to allow old MachinePools to get deleted. 53 if controllerutil.ContainsFinalizer(out, expv1.MachinePoolFinalizer) { 54 controllerutil.RemoveFinalizer(out, expv1.MachinePoolFinalizer) 55 controllerutil.AddFinalizer(out, MachinePoolFinalizer) 56 } 57 58 return nil 59 } 60 61 func (src *MachinePool) ConvertTo(dstRaw conversion.Hub) error { 62 dst := dstRaw.(*expv1.MachinePool) 63 64 if err := Convert_v1alpha3_MachinePool_To_v1beta1_MachinePool(src, dst, nil); err != nil { 65 return err 66 } 67 68 // Manually restore data. 69 restored := &expv1.MachinePool{} 70 if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok { 71 return err 72 } 73 dst.Spec.Template.Spec.NodeDeletionTimeout = restored.Spec.Template.Spec.NodeDeletionTimeout 74 dst.Spec.Template.Spec.NodeVolumeDetachTimeout = restored.Spec.Template.Spec.NodeVolumeDetachTimeout 75 return nil 76 } 77 78 func (dst *MachinePool) ConvertFrom(srcRaw conversion.Hub) error { 79 src := srcRaw.(*expv1.MachinePool) 80 81 if err := Convert_v1beta1_MachinePool_To_v1alpha3_MachinePool(src, dst, nil); err != nil { 82 return err 83 } 84 85 return utilconversion.MarshalData(src, dst) 86 } 87 88 func (src *MachinePoolList) ConvertTo(dstRaw conversion.Hub) error { 89 dst := dstRaw.(*expv1.MachinePoolList) 90 91 return Convert_v1alpha3_MachinePoolList_To_v1beta1_MachinePoolList(src, dst, nil) 92 } 93 94 func (dst *MachinePoolList) ConvertFrom(srcRaw conversion.Hub) error { 95 src := srcRaw.(*expv1.MachinePoolList) 96 97 return Convert_v1beta1_MachinePoolList_To_v1alpha3_MachinePoolList(src, dst, nil) 98 }