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  }