@@ -19,6 +19,7 @@ package v1alpha4
1919import (
2020 apiconversion "k8s.io/apimachinery/pkg/conversion"
2121 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1"
22+ utilconversion "sigs.k8s.io/cluster-api/util/conversion"
2223 "sigs.k8s.io/controller-runtime/pkg/conversion"
2324)
2425
@@ -49,13 +50,36 @@ func (dst *IBMPowerVSClusterList) ConvertFrom(srcRaw conversion.Hub) error {
4950func (src * IBMPowerVSMachine ) ConvertTo (dstRaw conversion.Hub ) error {
5051 dst := dstRaw .(* v1beta1.IBMPowerVSMachine )
5152
52- return Convert_v1alpha4_IBMPowerVSMachine_To_v1beta1_IBMPowerVSMachine (src , dst , nil )
53+ if err := Convert_v1alpha4_IBMPowerVSMachine_To_v1beta1_IBMPowerVSMachine (src , dst , nil ); err != nil {
54+ return err
55+ }
56+
57+ dst .Spec .Image = (* v1beta1 .IBMPowerVSResourceReference )(& src .Spec .Image )
58+
59+ return nil
5360}
5461
5562func (dst * IBMPowerVSMachine ) ConvertFrom (srcRaw conversion.Hub ) error {
5663 src := srcRaw .(* v1beta1.IBMPowerVSMachine )
5764
58- return Convert_v1beta1_IBMPowerVSMachine_To_v1alpha4_IBMPowerVSMachine (src , dst , nil )
65+ if err := Convert_v1beta1_IBMPowerVSMachine_To_v1alpha4_IBMPowerVSMachine (src , dst , nil ); err != nil {
66+ return err
67+ }
68+
69+ // Preserve Hub data on down-conversion except for metadata
70+ if err := utilconversion .MarshalData (src , dst ); err != nil {
71+ return err
72+ }
73+
74+ if src .Spec .Image == nil && src .Spec .ImageRef != nil {
75+ dst .Spec .Image .Name = & src .Spec .ImageRef .Name
76+ }
77+
78+ if src .Spec .Image != nil && src .Spec .ImageRef == nil {
79+ dst .Spec .Image = IBMPowerVSResourceReference (* src .Spec .Image )
80+ }
81+
82+ return nil
5983}
6084
6185func (src * IBMPowerVSMachineList ) ConvertTo (dstRaw conversion.Hub ) error {
@@ -73,13 +97,36 @@ func (dst *IBMPowerVSMachineList) ConvertFrom(srcRaw conversion.Hub) error {
7397func (src * IBMPowerVSMachineTemplate ) ConvertTo (dstRaw conversion.Hub ) error {
7498 dst := dstRaw .(* v1beta1.IBMPowerVSMachineTemplate )
7599
76- return Convert_v1alpha4_IBMPowerVSMachineTemplate_To_v1beta1_IBMPowerVSMachineTemplate (src , dst , nil )
100+ if err := Convert_v1alpha4_IBMPowerVSMachineTemplate_To_v1beta1_IBMPowerVSMachineTemplate (src , dst , nil ); err != nil {
101+ return err
102+ }
103+
104+ dst .Spec .Template .Spec .Image = (* v1beta1 .IBMPowerVSResourceReference )(& src .Spec .Template .Spec .Image )
105+
106+ return nil
77107}
78108
79109func (dst * IBMPowerVSMachineTemplate ) ConvertFrom (srcRaw conversion.Hub ) error {
80110 src := srcRaw .(* v1beta1.IBMPowerVSMachineTemplate )
81111
82- return Convert_v1beta1_IBMPowerVSMachineTemplate_To_v1alpha4_IBMPowerVSMachineTemplate (src , dst , nil )
112+ if err := Convert_v1beta1_IBMPowerVSMachineTemplate_To_v1alpha4_IBMPowerVSMachineTemplate (src , dst , nil ); err != nil {
113+ return err
114+ }
115+
116+ // Preserve Hub data on down-conversion except for metadata
117+ if err := utilconversion .MarshalData (src , dst ); err != nil {
118+ return err
119+ }
120+
121+ if src .Spec .Template .Spec .Image == nil && src .Spec .Template .Spec .ImageRef != nil {
122+ dst .Spec .Template .Spec .Image .Name = & src .Spec .Template .Spec .ImageRef .Name
123+ }
124+
125+ if src .Spec .Template .Spec .Image != nil && src .Spec .Template .Spec .ImageRef == nil {
126+ dst .Spec .Template .Spec .Image = IBMPowerVSResourceReference (* src .Spec .Template .Spec .Image )
127+ }
128+
129+ return nil
83130}
84131
85132func (src * IBMPowerVSMachineTemplateList ) ConvertTo (dstRaw conversion.Hub ) error {
@@ -99,3 +146,13 @@ func (dst *IBMPowerVSMachineTemplateList) ConvertFrom(srcRaw conversion.Hub) err
99146func Convert_v1beta1_IBMPowerVSMachineStatus_To_v1alpha4_IBMPowerVSMachineStatus (in * v1beta1.IBMPowerVSMachineStatus , out * IBMPowerVSMachineStatus , s apiconversion.Scope ) error {
100147 return autoConvert_v1beta1_IBMPowerVSMachineStatus_To_v1alpha4_IBMPowerVSMachineStatus (in , out , s )
101148}
149+
150+ // Convert_v1beta1_IBMPowerVSMachineSpec_To_v1alpha4_IBMPowerVSMachineSpec is an autogenerated conversion function.
151+ // Requires manual conversion as ImageRef does not exist in v1alpha4 version of IBMPowerVSMachineSpec.
152+ func Convert_v1beta1_IBMPowerVSMachineSpec_To_v1alpha4_IBMPowerVSMachineSpec (in * v1beta1.IBMPowerVSMachineSpec , out * IBMPowerVSMachineSpec , s apiconversion.Scope ) error {
153+ return autoConvert_v1beta1_IBMPowerVSMachineSpec_To_v1alpha4_IBMPowerVSMachineSpec (in , out , s )
154+ }
155+
156+ func Convert_v1alpha4_IBMPowerVSMachineSpec_To_v1beta1_IBMPowerVSMachineSpec (in * IBMPowerVSMachineSpec , out * v1beta1.IBMPowerVSMachineSpec , s apiconversion.Scope ) error {
157+ return autoConvert_v1alpha4_IBMPowerVSMachineSpec_To_v1beta1_IBMPowerVSMachineSpec (in , out , s )
158+ }
0 commit comments