sigs.k8s.io/cluster-api-provider-aws@v1.5.5/api/v1alpha4/awsmachine_conversion.go (about) 1 /* 2 Copyright 2021 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 v1alpha4 18 19 import ( 20 apiconversion "k8s.io/apimachinery/pkg/conversion" 21 "sigs.k8s.io/cluster-api-provider-aws/api/v1beta1" 22 infrav1 "sigs.k8s.io/cluster-api-provider-aws/api/v1beta1" 23 utilconversion "sigs.k8s.io/cluster-api/util/conversion" 24 "sigs.k8s.io/controller-runtime/pkg/conversion" 25 ) 26 27 // ConvertTo converts the v1alpha4 AWSMachine receiver to a v1beta1 AWSMachine. 28 func (src *AWSMachine) ConvertTo(dstRaw conversion.Hub) error { 29 dst := dstRaw.(*infrav1.AWSMachine) 30 if err := Convert_v1alpha4_AWSMachine_To_v1beta1_AWSMachine(src, dst, nil); err != nil { 31 return err 32 } 33 34 // Manually restore data. 35 restored := &v1beta1.AWSMachine{} 36 if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok { 37 return err 38 } 39 40 dst.Spec.Ignition = restored.Spec.Ignition 41 42 return nil 43 } 44 45 // ConvertFrom converts the v1beta1 AWSMachine to a v1alpha4 AWSMachine. 46 func (dst *AWSMachine) ConvertFrom(srcRaw conversion.Hub) error { 47 src := srcRaw.(*infrav1.AWSMachine) 48 49 if err := Convert_v1beta1_AWSMachine_To_v1alpha4_AWSMachine(src, dst, nil); err != nil { 50 return err 51 } 52 53 // Preserve Hub data on down-conversion except for metadata. 54 return utilconversion.MarshalData(src, dst) 55 } 56 57 // ConvertTo converts the v1alpha4 AWSMachineList receiver to a v1beta1 AWSMachineList. 58 func (src *AWSMachineList) ConvertTo(dstRaw conversion.Hub) error { 59 dst := dstRaw.(*infrav1.AWSMachineList) 60 return Convert_v1alpha4_AWSMachineList_To_v1beta1_AWSMachineList(src, dst, nil) 61 } 62 63 // ConvertFrom converts the v1beta1 AWSMachineList to a v1alpha4 AWSMachineList. 64 func (dst *AWSMachineList) ConvertFrom(srcRaw conversion.Hub) error { 65 src := srcRaw.(*infrav1.AWSMachineList) 66 67 return Convert_v1beta1_AWSMachineList_To_v1alpha4_AWSMachineList(src, dst, nil) 68 } 69 70 // ConvertTo converts the v1alpha3 AWSCluster receiver to a v1beta1 AWSCluster. 71 func (r *AWSMachineTemplate) ConvertTo(dstRaw conversion.Hub) error { 72 dst := dstRaw.(*infrav1.AWSMachineTemplate) 73 74 if err := Convert_v1alpha4_AWSMachineTemplate_To_v1beta1_AWSMachineTemplate(r, dst, nil); err != nil { 75 return err 76 } 77 78 // Manually restore data. 79 restored := &infrav1.AWSMachineTemplate{} 80 if ok, err := utilconversion.UnmarshalData(r, restored); err != nil || !ok { 81 return err 82 } 83 84 dst.Spec.Template.ObjectMeta = restored.Spec.Template.ObjectMeta 85 dst.Spec.Template.Spec.Ignition = restored.Spec.Template.Spec.Ignition 86 87 return nil 88 } 89 90 // ConvertFrom converts the v1beta1 AWSCluster receiver to a v1alpha3 AWSCluster. 91 func (r *AWSMachineTemplate) ConvertFrom(srcRaw conversion.Hub) error { 92 src := srcRaw.(*infrav1.AWSMachineTemplate) 93 94 if err := Convert_v1beta1_AWSMachineTemplate_To_v1alpha4_AWSMachineTemplate(src, r, nil); err != nil { 95 return err 96 } 97 98 // Preserve Hub data on down-conversion. 99 if err := utilconversion.MarshalData(src, r); err != nil { 100 return err 101 } 102 103 return nil 104 } 105 106 // ConvertTo converts the v1alpha4 AWSMachineTemplateList receiver to a v1beta1 AWSMachineTemplateList. 107 func (src *AWSMachineTemplateList) ConvertTo(dstRaw conversion.Hub) error { 108 dst := dstRaw.(*infrav1.AWSMachineTemplateList) 109 return Convert_v1alpha4_AWSMachineTemplateList_To_v1beta1_AWSMachineTemplateList(src, dst, nil) 110 } 111 112 // ConvertFrom converts the v1beta1 AWSMachineTemplateList to a v1alpha4 AWSMachineTemplateList. 113 func (dst *AWSMachineTemplateList) ConvertFrom(srcRaw conversion.Hub) error { 114 src := srcRaw.(*infrav1.AWSMachineTemplateList) 115 116 return Convert_v1beta1_AWSMachineTemplateList_To_v1alpha4_AWSMachineTemplateList(src, dst, nil) 117 } 118 119 func Convert_v1beta1_AWSMachineTemplateResource_To_v1alpha4_AWSMachineTemplateResource(in *infrav1.AWSMachineTemplateResource, out *AWSMachineTemplateResource, s apiconversion.Scope) error { 120 return autoConvert_v1beta1_AWSMachineTemplateResource_To_v1alpha4_AWSMachineTemplateResource(in, out, s) 121 } 122 123 func Convert_v1beta1_AWSMachineSpec_To_v1alpha4_AWSMachineSpec(in *v1beta1.AWSMachineSpec, out *AWSMachineSpec, s apiconversion.Scope) error { 124 return autoConvert_v1beta1_AWSMachineSpec_To_v1alpha4_AWSMachineSpec(in, out, s) 125 }