@@ -18,33 +18,272 @@ package v1beta1
1818
1919import (
2020 "strings"
21+ "unsafe"
2122
23+ corev1 "k8s.io/api/core/v1"
24+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25+ apiconversion "k8s.io/apimachinery/pkg/conversion"
2226 "k8s.io/utils/ptr"
27+ clusterv1beta1 "sigs.k8s.io/cluster-api/api/core/v1beta1"
28+ clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
29+ utilconversion "sigs.k8s.io/cluster-api/util/conversion"
30+ ctrlconversion "sigs.k8s.io/controller-runtime/pkg/conversion"
31+
32+ infrav1beta2 "sigs.k8s.io/cluster-api-provider-openstack/api/v1beta2"
2333)
2434
25- // Hub marks OpenStackCluster as a conversion hub.
26- func (* OpenStackCluster ) Hub () {}
35+ // ConvertTo converts this OpenStackCluster to the Hub version (v1beta2).
36+ func (src * OpenStackCluster ) ConvertTo (dstRaw ctrlconversion.Hub ) error {
37+ dst := dstRaw .(* infrav1beta2.OpenStackCluster )
38+ if err := Convert_v1beta1_OpenStackCluster_To_v1beta2_OpenStackCluster (src , dst , nil ); err != nil {
39+ return err
40+ }
41+ for i := range dst .Status .Conditions {
42+ dst .Status .Conditions [i ].ObservedGeneration = src .Generation
43+ }
44+ return utilconversion .MarshalData (src , dst )
45+ }
46+
47+ // ConvertFrom converts from the Hub version (v1beta2) to this version.
48+ //
49+ //nolint:revive // dst is the receiver here (converting FROM hub TO spoke)
50+ func (dst * OpenStackCluster ) ConvertFrom (srcRaw ctrlconversion.Hub ) error {
51+ src := srcRaw .(* infrav1beta2.OpenStackCluster )
52+ if err := Convert_v1beta2_OpenStackCluster_To_v1beta1_OpenStackCluster (src , dst , nil ); err != nil {
53+ return err
54+ }
55+ _ , err := utilconversion .UnmarshalData (src , dst )
56+ return err
57+ }
58+
59+ // ConvertTo converts this OpenStackMachine to the Hub version (v1beta2).
60+ func (src * OpenStackMachine ) ConvertTo (dstRaw ctrlconversion.Hub ) error {
61+ dst := dstRaw .(* infrav1beta2.OpenStackMachine )
62+ if err := Convert_v1beta1_OpenStackMachine_To_v1beta2_OpenStackMachine (src , dst , nil ); err != nil {
63+ return err
64+ }
65+ for i := range dst .Status .Conditions {
66+ dst .Status .Conditions [i ].ObservedGeneration = src .Generation
67+ }
68+ return utilconversion .MarshalData (src , dst )
69+ }
70+
71+ // ConvertFrom converts from the Hub version (v1beta2) to this version.
72+ //
73+ //nolint:revive // dst is the receiver here (converting FROM hub TO spoke)
74+ func (dst * OpenStackMachine ) ConvertFrom (srcRaw ctrlconversion.Hub ) error {
75+ src := srcRaw .(* infrav1beta2.OpenStackMachine )
76+ if err := Convert_v1beta2_OpenStackMachine_To_v1beta1_OpenStackMachine (src , dst , nil ); err != nil {
77+ return err
78+ }
79+ _ , err := utilconversion .UnmarshalData (src , dst )
80+ return err
81+ }
82+
83+ // ConvertTo converts this OpenStackClusterTemplate to the Hub version (v1beta2).
84+ func (src * OpenStackClusterTemplate ) ConvertTo (dstRaw ctrlconversion.Hub ) error {
85+ dst := dstRaw .(* infrav1beta2.OpenStackClusterTemplate )
86+ if err := Convert_v1beta1_OpenStackClusterTemplate_To_v1beta2_OpenStackClusterTemplate (src , dst , nil ); err != nil {
87+ return err
88+ }
89+ return utilconversion .MarshalData (src , dst )
90+ }
91+
92+ // ConvertFrom converts from the Hub version (v1beta2) to this version.
93+ //
94+ //nolint:revive // dst is the receiver here (converting FROM hub TO spoke)
95+ func (dst * OpenStackClusterTemplate ) ConvertFrom (srcRaw ctrlconversion.Hub ) error {
96+ src := srcRaw .(* infrav1beta2.OpenStackClusterTemplate )
97+ if err := Convert_v1beta2_OpenStackClusterTemplate_To_v1beta1_OpenStackClusterTemplate (src , dst , nil ); err != nil {
98+ return err
99+ }
100+ _ , err := utilconversion .UnmarshalData (src , dst )
101+ return err
102+ }
103+
104+ // ConvertTo converts this OpenStackMachineTemplate to the Hub version (v1beta2).
105+ func (src * OpenStackMachineTemplate ) ConvertTo (dstRaw ctrlconversion.Hub ) error {
106+ dst := dstRaw .(* infrav1beta2.OpenStackMachineTemplate )
107+ if err := Convert_v1beta1_OpenStackMachineTemplate_To_v1beta2_OpenStackMachineTemplate (src , dst , nil ); err != nil {
108+ return err
109+ }
110+ return utilconversion .MarshalData (src , dst )
111+ }
112+
113+ // ConvertFrom converts from the Hub version (v1beta2) to this version.
114+ //
115+ //nolint:revive // dst is the receiver here (converting FROM hub TO spoke)
116+ func (dst * OpenStackMachineTemplate ) ConvertFrom (srcRaw ctrlconversion.Hub ) error {
117+ src := srcRaw .(* infrav1beta2.OpenStackMachineTemplate )
118+ if err := Convert_v1beta2_OpenStackMachineTemplate_To_v1beta1_OpenStackMachineTemplate (src , dst , nil ); err != nil {
119+ return err
120+ }
121+ _ , err := utilconversion .UnmarshalData (src , dst )
122+ return err
123+ }
27124
28- // Hub marks OpenStackClusterList as a conversion hub.
29- func (* OpenStackClusterList ) Hub () {}
125+ // ConvertTo converts this OpenStackClusterList to the Hub version (v1beta2).
126+ func (src * OpenStackClusterList ) ConvertTo (dstRaw ctrlconversion.Hub ) error {
127+ dst := dstRaw .(* infrav1beta2.OpenStackClusterList )
128+ return Convert_v1beta1_OpenStackClusterList_To_v1beta2_OpenStackClusterList (src , dst , nil )
129+ }
30130
31- // Hub marks OpenStackClusterTemplate as a conversion hub.
32- func (* OpenStackClusterTemplate ) Hub () {}
131+ // ConvertFrom converts from the Hub version (v1beta2) to this version.
132+ //
133+ //nolint:revive // dst is the receiver here (converting FROM hub TO spoke)
134+ func (dst * OpenStackClusterList ) ConvertFrom (srcRaw ctrlconversion.Hub ) error {
135+ src := srcRaw .(* infrav1beta2.OpenStackClusterList )
136+ return Convert_v1beta2_OpenStackClusterList_To_v1beta1_OpenStackClusterList (src , dst , nil )
137+ }
33138
34- // Hub marks OpenStackClusterTemplateList as a conversion hub.
35- func (* OpenStackClusterTemplateList ) Hub () {}
139+ // ConvertTo converts this OpenStackMachineList to the Hub version (v1beta2).
140+ func (src * OpenStackMachineList ) ConvertTo (dstRaw ctrlconversion.Hub ) error {
141+ dst := dstRaw .(* infrav1beta2.OpenStackMachineList )
142+ return Convert_v1beta1_OpenStackMachineList_To_v1beta2_OpenStackMachineList (src , dst , nil )
143+ }
36144
37- // Hub marks OpenStackMachine as a conversion hub.
38- func (* OpenStackMachine ) Hub () {}
145+ // ConvertFrom converts from the Hub version (v1beta2) to this version.
146+ //
147+ //nolint:revive // dst is the receiver here (converting FROM hub TO spoke)
148+ func (dst * OpenStackMachineList ) ConvertFrom (srcRaw ctrlconversion.Hub ) error {
149+ src := srcRaw .(* infrav1beta2.OpenStackMachineList )
150+ return Convert_v1beta2_OpenStackMachineList_To_v1beta1_OpenStackMachineList (src , dst , nil )
151+ }
39152
40- // Hub marks OpenStackMachineList as a conversion hub.
41- func (* OpenStackMachineList ) Hub () {}
153+ // ConvertTo converts this OpenStackClusterTemplateList to the Hub version (v1beta2).
154+ func (src * OpenStackClusterTemplateList ) ConvertTo (dstRaw ctrlconversion.Hub ) error {
155+ dst := dstRaw .(* infrav1beta2.OpenStackClusterTemplateList )
156+ return Convert_v1beta1_OpenStackClusterTemplateList_To_v1beta2_OpenStackClusterTemplateList (src , dst , nil )
157+ }
42158
43- // Hub marks OpenStackMachineTemplate as a conversion hub.
44- func (* OpenStackMachineTemplate ) Hub () {}
159+ // ConvertFrom converts from the Hub version (v1beta2) to this version.
160+ //
161+ //nolint:revive // dst is the receiver here (converting FROM hub TO spoke)
162+ func (dst * OpenStackClusterTemplateList ) ConvertFrom (srcRaw ctrlconversion.Hub ) error {
163+ src := srcRaw .(* infrav1beta2.OpenStackClusterTemplateList )
164+ return Convert_v1beta2_OpenStackClusterTemplateList_To_v1beta1_OpenStackClusterTemplateList (src , dst , nil )
165+ }
45166
46- // Hub marks OpenStackMachineTemplateList as a conversion hub.
47- func (* OpenStackMachineTemplateList ) Hub () {}
167+ // ConvertTo converts this OpenStackMachineTemplateList to the Hub version (v1beta2).
168+ func (src * OpenStackMachineTemplateList ) ConvertTo (dstRaw ctrlconversion.Hub ) error {
169+ dst := dstRaw .(* infrav1beta2.OpenStackMachineTemplateList )
170+ return Convert_v1beta1_OpenStackMachineTemplateList_To_v1beta2_OpenStackMachineTemplateList (src , dst , nil )
171+ }
172+
173+ // ConvertFrom converts from the Hub version (v1beta2) to this version.
174+ //
175+ //nolint:revive // dst is the receiver here (converting FROM hub TO spoke)
176+ func (dst * OpenStackMachineTemplateList ) ConvertFrom (srcRaw ctrlconversion.Hub ) error {
177+ src := srcRaw .(* infrav1beta2.OpenStackMachineTemplateList )
178+ return Convert_v1beta2_OpenStackMachineTemplateList_To_v1beta1_OpenStackMachineTemplateList (src , dst , nil )
179+ }
180+
181+ // Manual conversion functions for Status types that conversion-gen cannot
182+ // auto-generate due to FailureDomains (map↔slice), Conditions (CAPI↔metav1),
183+ // and deprecated fields (Ready, FailureReason, FailureMessage).
184+
185+ func Convert_v1beta1_OpenStackClusterStatus_To_v1beta2_OpenStackClusterStatus (in * OpenStackClusterStatus , out * infrav1beta2.OpenStackClusterStatus , _ apiconversion.Scope ) error {
186+ out .Initialization = (* infrav1beta2 .ClusterInitialization )(unsafe .Pointer (in .Initialization ))
187+ out .Network = (* infrav1beta2 .NetworkStatusWithSubnets )(unsafe .Pointer (in .Network ))
188+ out .ExternalNetwork = (* infrav1beta2 .NetworkStatus )(unsafe .Pointer (in .ExternalNetwork ))
189+ out .Router = (* infrav1beta2 .Router )(unsafe .Pointer (in .Router ))
190+ out .APIServerLoadBalancer = (* infrav1beta2 .LoadBalancer )(unsafe .Pointer (in .APIServerLoadBalancer ))
191+ out .ControlPlaneSecurityGroup = (* infrav1beta2 .SecurityGroupStatus )(unsafe .Pointer (in .ControlPlaneSecurityGroup ))
192+ out .WorkerSecurityGroup = (* infrav1beta2 .SecurityGroupStatus )(unsafe .Pointer (in .WorkerSecurityGroup ))
193+ out .BastionSecurityGroup = (* infrav1beta2 .SecurityGroupStatus )(unsafe .Pointer (in .BastionSecurityGroup ))
194+ out .Bastion = (* infrav1beta2 .BastionStatus )(unsafe .Pointer (in .Bastion ))
195+
196+ if len (in .FailureDomains ) > 0 {
197+ out .FailureDomains = make ([]clusterv1.FailureDomain , 0 , len (in .FailureDomains ))
198+ for name , fd := range in .FailureDomains {
199+ out .FailureDomains = append (out .FailureDomains , clusterv1.FailureDomain {
200+ Name : name ,
201+ ControlPlane : ptr .To (fd .ControlPlane ),
202+ Attributes : fd .Attributes ,
203+ })
204+ }
205+ }
206+
207+ out .Conditions = infrav1beta2 .ConvertConditionsToV1Beta2 (in .Conditions , 0 )
208+
209+ return nil
210+ }
211+
212+ func Convert_v1beta2_OpenStackClusterStatus_To_v1beta1_OpenStackClusterStatus (in * infrav1beta2.OpenStackClusterStatus , out * OpenStackClusterStatus , _ apiconversion.Scope ) error {
213+ out .Initialization = (* ClusterInitialization )(unsafe .Pointer (in .Initialization ))
214+ out .Network = (* NetworkStatusWithSubnets )(unsafe .Pointer (in .Network ))
215+ out .ExternalNetwork = (* NetworkStatus )(unsafe .Pointer (in .ExternalNetwork ))
216+ out .Router = (* Router )(unsafe .Pointer (in .Router ))
217+ out .APIServerLoadBalancer = (* LoadBalancer )(unsafe .Pointer (in .APIServerLoadBalancer ))
218+ out .ControlPlaneSecurityGroup = (* SecurityGroupStatus )(unsafe .Pointer (in .ControlPlaneSecurityGroup ))
219+ out .WorkerSecurityGroup = (* SecurityGroupStatus )(unsafe .Pointer (in .WorkerSecurityGroup ))
220+ out .BastionSecurityGroup = (* SecurityGroupStatus )(unsafe .Pointer (in .BastionSecurityGroup ))
221+ out .Bastion = (* BastionStatus )(unsafe .Pointer (in .Bastion ))
222+
223+ if len (in .FailureDomains ) > 0 {
224+ out .FailureDomains = make (clusterv1beta1.FailureDomains , len (in .FailureDomains ))
225+ for _ , fd := range in .FailureDomains {
226+ out .FailureDomains [fd .Name ] = clusterv1beta1.FailureDomainSpec {
227+ ControlPlane : ptr .Deref (fd .ControlPlane , false ),
228+ Attributes : fd .Attributes ,
229+ }
230+ }
231+ }
232+
233+ out .Conditions = infrav1beta2 .ConvertConditionsFromV1Beta2 (in .Conditions )
234+ out .Ready = infrav1beta2 .IsReady (in .Conditions )
235+
236+ return nil
237+ }
238+
239+ func Convert_v1beta1_OpenStackMachineStatus_To_v1beta2_OpenStackMachineStatus (in * OpenStackMachineStatus , out * infrav1beta2.OpenStackMachineStatus , _ apiconversion.Scope ) error {
240+ out .Initialization = (* infrav1beta2 .MachineInitialization )(unsafe .Pointer (in .Initialization ))
241+ out .InstanceID = in .InstanceID
242+ out .Addresses = in .Addresses
243+ out .InstanceState = (* infrav1beta2 .InstanceState )(unsafe .Pointer (in .InstanceState ))
244+ out .Resolved = (* infrav1beta2 .ResolvedMachineSpec )(unsafe .Pointer (in .Resolved ))
245+ out .Resources = (* infrav1beta2 .MachineResources )(unsafe .Pointer (in .Resources ))
246+
247+ out .Conditions = infrav1beta2 .ConvertConditionsToV1Beta2 (in .Conditions , 0 )
248+
249+ return nil
250+ }
251+
252+ func Convert_v1beta2_OpenStackMachineStatus_To_v1beta1_OpenStackMachineStatus (in * infrav1beta2.OpenStackMachineStatus , out * OpenStackMachineStatus , _ apiconversion.Scope ) error {
253+ out .Initialization = (* MachineInitialization )(unsafe .Pointer (in .Initialization ))
254+ out .InstanceID = in .InstanceID
255+ out .Addresses = in .Addresses
256+ out .InstanceState = (* InstanceState )(unsafe .Pointer (in .InstanceState ))
257+ out .Resolved = (* ResolvedMachineSpec )(unsafe .Pointer (in .Resolved ))
258+ out .Resources = (* MachineResources )(unsafe .Pointer (in .Resources ))
259+
260+ out .Conditions = infrav1beta2 .ConvertConditionsFromV1Beta2 (in .Conditions )
261+ out .Ready = infrav1beta2 .IsReady (in .Conditions )
262+
263+ return nil
264+ }
265+
266+ // Element-level Condition conversion functions required by conversion-gen's
267+ // autoConvert functions for Status types. The actual condition conversion is
268+ // handled at the Status level by the manual Convert_*_Status_* functions above.
269+
270+ func Convert_v1beta1_Condition_To_v1_Condition (in * clusterv1beta1.Condition , out * metav1.Condition , _ apiconversion.Scope ) error {
271+ out .Type = string (in .Type )
272+ out .Status = metav1 .ConditionStatus (in .Status )
273+ out .LastTransitionTime = in .LastTransitionTime
274+ out .Reason = in .Reason
275+ out .Message = in .Message
276+ return nil
277+ }
278+
279+ func Convert_v1_Condition_To_v1beta1_Condition (in * metav1.Condition , out * clusterv1beta1.Condition , _ apiconversion.Scope ) error {
280+ out .Type = clusterv1beta1 .ConditionType (in .Type )
281+ out .Status = corev1 .ConditionStatus (in .Status )
282+ out .LastTransitionTime = in .LastTransitionTime
283+ out .Reason = in .Reason
284+ out .Message = in .Message
285+ return nil
286+ }
48287
49288// LegacyCalicoSecurityGroupRules returns a list of security group rules for calico
50289// that need to be applied to the control plane and worker security groups when
0 commit comments