sigs.k8s.io/cluster-api-provider-aws@v1.5.5/bootstrap/eks/api/v1alpha3/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 v1alpha3 18 19 import ( 20 apiconversion "k8s.io/apimachinery/pkg/conversion" 21 utilconversion "sigs.k8s.io/cluster-api/util/conversion" 22 "sigs.k8s.io/controller-runtime/pkg/conversion" 23 24 "sigs.k8s.io/cluster-api-provider-aws/bootstrap/eks/api/v1beta1" 25 ) 26 27 // ConvertTo converts the v1alpha3 EKSConfig receiver to a v1beta1 EKSConfig. 28 func (r *EKSConfig) ConvertTo(dstRaw conversion.Hub) error { 29 dst := dstRaw.(*v1beta1.EKSConfig) 30 31 if err := Convert_v1alpha3_EKSConfig_To_v1beta1_EKSConfig(r, dst, nil); err != nil { 32 return err 33 } 34 35 restored := &v1beta1.EKSConfig{} 36 if ok, err := utilconversion.UnmarshalData(r, restored); err != nil || !ok { 37 return err 38 } 39 40 restoreSpec(&restored.Spec, &dst.Spec) 41 42 return nil 43 } 44 45 func restoreSpec(rSpec, dSpec *v1beta1.EKSConfigSpec) { 46 dSpec.ContainerRuntime = rSpec.ContainerRuntime 47 dSpec.DNSClusterIP = rSpec.DNSClusterIP 48 dSpec.DockerConfigJSON = rSpec.DockerConfigJSON 49 dSpec.APIRetryAttempts = rSpec.APIRetryAttempts 50 if rSpec.PauseContainer != nil { 51 dSpec.PauseContainer = &v1beta1.PauseContainer{ 52 AccountNumber: rSpec.PauseContainer.AccountNumber, 53 Version: rSpec.PauseContainer.Version, 54 } 55 } 56 dSpec.UseMaxPods = rSpec.UseMaxPods 57 } 58 59 // ConvertFrom converts the v1beta1 EKSConfig receiver to a v1alpha3 EKSConfig. 60 func (r *EKSConfig) ConvertFrom(srcRaw conversion.Hub) error { 61 src := srcRaw.(*v1beta1.EKSConfig) 62 63 if err := Convert_v1beta1_EKSConfig_To_v1alpha3_EKSConfig(src, r, nil); err != nil { 64 return err 65 } 66 67 if err := utilconversion.MarshalData(src, r); err != nil { 68 return err 69 } 70 71 return nil 72 } 73 74 // ConvertTo converts the v1alpha3 EKSConfigList receiver to a v1beta1 EKSConfigList. 75 func (r *EKSConfigList) ConvertTo(dstRaw conversion.Hub) error { 76 dst := dstRaw.(*v1beta1.EKSConfigList) 77 78 return Convert_v1alpha3_EKSConfigList_To_v1beta1_EKSConfigList(r, dst, nil) 79 } 80 81 // ConvertFrom converts the v1beta1 EKSConfigList receiver to a v1alpha3 EKSConfigList. 82 func (r *EKSConfigList) ConvertFrom(srcRaw conversion.Hub) error { 83 src := srcRaw.(*v1beta1.EKSConfigList) 84 85 return Convert_v1beta1_EKSConfigList_To_v1alpha3_EKSConfigList(src, r, nil) 86 } 87 88 // ConvertTo converts the v1alpha3 EKSConfigTemplate receiver to a v1beta1 EKSConfigTemplate. 89 func (r *EKSConfigTemplate) ConvertTo(dstRaw conversion.Hub) error { 90 dst := dstRaw.(*v1beta1.EKSConfigTemplate) 91 92 if err := Convert_v1alpha3_EKSConfigTemplate_To_v1beta1_EKSConfigTemplate(r, dst, nil); err != nil { 93 return err 94 } 95 96 restored := &v1beta1.EKSConfigTemplate{} 97 if ok, err := utilconversion.UnmarshalData(r, restored); err != nil || !ok { 98 return err 99 } 100 101 restoreSpec(&restored.Spec.Template.Spec, &dst.Spec.Template.Spec) 102 103 return nil 104 } 105 106 // ConvertFrom converts the v1beta1 EKSConfigTemplate receiver to a v1alpha3 EKSConfigTemplate. 107 func (r *EKSConfigTemplate) ConvertFrom(srcRaw conversion.Hub) error { 108 src := srcRaw.(*v1beta1.EKSConfigTemplate) 109 110 if err := Convert_v1beta1_EKSConfigTemplate_To_v1alpha3_EKSConfigTemplate(src, r, nil); err != nil { 111 return err 112 } 113 114 if err := utilconversion.MarshalData(src, r); err != nil { 115 return err 116 } 117 118 return nil 119 } 120 121 // ConvertTo converts the v1alpha3 EKSConfigTemplateList receiver to a v1beta1 EKSConfigTemplateList. 122 func (r *EKSConfigTemplateList) ConvertTo(dstRaw conversion.Hub) error { 123 dst := dstRaw.(*v1beta1.EKSConfigTemplateList) 124 125 return Convert_v1alpha3_EKSConfigTemplateList_To_v1beta1_EKSConfigTemplateList(r, dst, nil) 126 } 127 128 // ConvertFrom converts the v1beta1 EKSConfigTemplateList receiver to a v1alpha3 EKSConfigTemplateList. 129 func (r *EKSConfigTemplateList) ConvertFrom(srcRaw conversion.Hub) error { 130 src := srcRaw.(*v1beta1.EKSConfigTemplateList) 131 132 return Convert_v1beta1_EKSConfigTemplateList_To_v1alpha3_EKSConfigTemplateList(src, r, nil) 133 } 134 135 func Convert_v1beta1_EKSConfigSpec_To_v1alpha3_EKSConfigSpec(in *v1beta1.EKSConfigSpec, out *EKSConfigSpec, s apiconversion.Scope) error { 136 out.KubeletExtraArgs = in.KubeletExtraArgs 137 138 return nil 139 }