@@ -23,6 +23,7 @@ import (
2323
2424 capiv1alpha3 "sigs.k8s.io/cluster-api/api/v1alpha3"
2525 capiv1beta1 "sigs.k8s.io/cluster-api/api/v1beta1"
26+ utilconversion "sigs.k8s.io/cluster-api/util/conversion"
2627
2728 infrav1beta1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1"
2829)
@@ -62,13 +63,41 @@ func (dst *IBMVPCClusterList) ConvertFrom(srcRaw conversion.Hub) error {
6263func (src * IBMVPCMachine ) ConvertTo (dstRaw conversion.Hub ) error {
6364 dst := dstRaw .(* infrav1beta1.IBMVPCMachine )
6465
65- return Convert_v1alpha3_IBMVPCMachine_To_v1beta1_IBMVPCMachine (src , dst , nil )
66+ if err := Convert_v1alpha3_IBMVPCMachine_To_v1beta1_IBMVPCMachine (src , dst , nil ); err != nil {
67+ return err
68+ }
69+
70+ for _ , sshKey := range src .Spec .SSHKeys {
71+ dst .Spec .SSHKeysRef = append (dst .Spec .SSHKeysRef , & infrav1beta1.IBMVPCResourceReference {
72+ ID : sshKey ,
73+ })
74+ }
75+
76+ return nil
6677}
6778
6879func (dst * IBMVPCMachine ) ConvertFrom (srcRaw conversion.Hub ) error {
6980 src := srcRaw .(* infrav1beta1.IBMVPCMachine )
7081
71- return Convert_v1beta1_IBMVPCMachine_To_v1alpha3_IBMVPCMachine (src , dst , nil )
82+ if err := Convert_v1beta1_IBMVPCMachine_To_v1alpha3_IBMVPCMachine (src , dst , nil ); err != nil {
83+ return err
84+ }
85+
86+ // Preserve Hub data on down-conversion except for metadata
87+ if err := utilconversion .MarshalData (src , dst ); err != nil {
88+ return err
89+ }
90+
91+ if src .Spec .SSHKeysRef != nil {
92+ for _ , sshKey := range src .Spec .SSHKeysRef {
93+ if sshKey .ID != nil {
94+ // Only source keys with ID will be converted
95+ dst .Spec .SSHKeys = append (dst .Spec .SSHKeys , sshKey .ID )
96+ }
97+ }
98+ }
99+
100+ return nil
72101}
73102
74103func (src * IBMVPCMachineList ) ConvertTo (dstRaw conversion.Hub ) error {
@@ -86,13 +115,41 @@ func (dst *IBMVPCMachineList) ConvertFrom(srcRaw conversion.Hub) error {
86115func (src * IBMVPCMachineTemplate ) ConvertTo (dstRaw conversion.Hub ) error {
87116 dst := dstRaw .(* infrav1beta1.IBMVPCMachineTemplate )
88117
89- return Convert_v1alpha3_IBMVPCMachineTemplate_To_v1beta1_IBMVPCMachineTemplate (src , dst , nil )
118+ if err := Convert_v1alpha3_IBMVPCMachineTemplate_To_v1beta1_IBMVPCMachineTemplate (src , dst , nil ); err != nil {
119+ return err
120+ }
121+
122+ for _ , sshKey := range src .Spec .Template .Spec .SSHKeys {
123+ dst .Spec .Template .Spec .SSHKeysRef = append (dst .Spec .Template .Spec .SSHKeysRef , & infrav1beta1.IBMVPCResourceReference {
124+ ID : sshKey ,
125+ })
126+ }
127+
128+ return nil
90129}
91130
92131func (dst * IBMVPCMachineTemplate ) ConvertFrom (srcRaw conversion.Hub ) error {
93132 src := srcRaw .(* infrav1beta1.IBMVPCMachineTemplate )
94133
95- return Convert_v1beta1_IBMVPCMachineTemplate_To_v1alpha3_IBMVPCMachineTemplate (src , dst , nil )
134+ if err := Convert_v1beta1_IBMVPCMachineTemplate_To_v1alpha3_IBMVPCMachineTemplate (src , dst , nil ); err != nil {
135+ return err
136+ }
137+
138+ // Preserve Hub data on down-conversion except for metadata
139+ if err := utilconversion .MarshalData (src , dst ); err != nil {
140+ return err
141+ }
142+
143+ if src .Spec .Template .Spec .SSHKeysRef != nil {
144+ for _ , sshKey := range src .Spec .Template .Spec .SSHKeysRef {
145+ if sshKey .ID != nil {
146+ // Only source keys with ID will be converted
147+ dst .Spec .Template .Spec .SSHKeys = append (dst .Spec .Template .Spec .SSHKeys , sshKey .ID )
148+ }
149+ }
150+ }
151+
152+ return nil
96153}
97154
98155func (src * IBMVPCMachineTemplateList ) ConvertTo (dstRaw conversion.Hub ) error {
@@ -124,3 +181,11 @@ func Convert_v1beta1_IBMVPCClusterStatus_To_v1alpha3_IBMVPCClusterStatus(in *inf
124181func Convert_v1beta1_VPCEndpoint_To_v1alpha3_VPCEndpoint (in * infrav1beta1.VPCEndpoint , out * VPCEndpoint , s apiconversion.Scope ) error {
125182 return autoConvert_v1beta1_VPCEndpoint_To_v1alpha3_VPCEndpoint (in , out , s )
126183}
184+
185+ func Convert_v1beta1_IBMVPCMachineSpec_To_v1alpha3_IBMVPCMachineSpec (in * infrav1beta1.IBMVPCMachineSpec , out * IBMVPCMachineSpec , s apiconversion.Scope ) error {
186+ return autoConvert_v1beta1_IBMVPCMachineSpec_To_v1alpha3_IBMVPCMachineSpec (in , out , s )
187+ }
188+
189+ func Convert_v1alpha3_IBMVPCMachineSpec_To_v1beta1_IBMVPCMachineSpec (in * IBMVPCMachineSpec , out * infrav1beta1.IBMVPCMachineSpec , s apiconversion.Scope ) error {
190+ return autoConvert_v1alpha3_IBMVPCMachineSpec_To_v1beta1_IBMVPCMachineSpec (in , out , s )
191+ }
0 commit comments