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  }