@@ -18,6 +18,7 @@ package v1alpha3
1818
1919import  (
2020	"maps" 
21+ 	"reflect" 
2122	"slices" 
2223	"sort" 
2324
@@ -41,26 +42,46 @@ func (src *DockerCluster) ConvertTo(dstRaw conversion.Hub) error {
4142
4243	// Manually restore data. 
4344	restored  :=  & infrav1.DockerCluster {}
44- 	if  ok , err  :=  utilconversion .UnmarshalData (src , restored ); err  !=  nil  ||  ! ok  {
45+ 	ok , err  :=  utilconversion .UnmarshalData (src , restored )
46+ 	if  err  !=  nil  {
4547		return  err 
4648	}
4749
48- 	if  restored .Spec .LoadBalancer .ImageRepository  !=  ""  {
49- 		dst .Spec .LoadBalancer .ImageRepository  =  restored .Spec .LoadBalancer .ImageRepository 
50+ 	// Recover intent for bool values converted to *bool. 
51+ 	initialization  :=  infrav1.DockerClusterInitializationStatus {}
52+ 	restoredDockerClusterProvisioned  :=  restored .Status .Initialization .Provisioned 
53+ 	clusterv1 .Convert_bool_To_Pointer_bool (src .Status .Ready , ok , restoredDockerClusterProvisioned , & initialization .Provisioned )
54+ 	if  ! reflect .DeepEqual (initialization , infrav1.DockerClusterInitializationStatus {}) {
55+ 		dst .Status .Initialization  =  initialization 
5056	}
5157
52- 	if  restored . Spec . LoadBalancer . ImageTag   !=   ""  {
53- 		dst .Spec . LoadBalancer . ImageTag   =   restored .Spec . LoadBalancer . ImageTag 
58+ 	if  ok  {
59+ 		RestoreDockerClusterSpec ( & restored .Spec ,  & dst .Spec ) 
5460	}
5561
56- 	if  restored .Spec .LoadBalancer .CustomHAProxyConfigTemplateRef  !=  nil  {
57- 		dst .Spec .LoadBalancer .CustomHAProxyConfigTemplateRef  =  restored .Spec .LoadBalancer .CustomHAProxyConfigTemplateRef 
62+ 	RestoreDockerClusterStatus (& restored .Status , & dst .Status )
63+ 
64+ 	return  nil 
65+ }
66+ 
67+ func  RestoreDockerClusterSpec (restored  * infrav1.DockerClusterSpec , dst  * infrav1.DockerClusterSpec ) {
68+ 	// Restore fields added in v1beta2. 
69+ 	if  restored .LoadBalancer .ImageRepository  !=  ""  {
70+ 		dst .LoadBalancer .ImageRepository  =  restored .LoadBalancer .ImageRepository 
71+ 	}
72+ 
73+ 	if  restored .LoadBalancer .ImageTag  !=  ""  {
74+ 		dst .LoadBalancer .ImageTag  =  restored .LoadBalancer .ImageTag 
5875	}
5976
60- 	dst .Status .Conditions  =  restored .Status .Conditions 
61- 	dst .Status .Initialization  =  restored .Status .Initialization 
77+ 	if  restored .LoadBalancer .CustomHAProxyConfigTemplateRef  !=  nil  {
78+ 		dst .LoadBalancer .CustomHAProxyConfigTemplateRef  =  restored .LoadBalancer .CustomHAProxyConfigTemplateRef 
79+ 	}
80+ }
6281
63- 	return  nil 
82+ func  RestoreDockerClusterStatus (restored  * infrav1.DockerClusterStatus , dst  * infrav1.DockerClusterStatus ) {
83+ 	// Restore fields added in v1beta2. 
84+ 	dst .Conditions  =  restored .Conditions 
6485}
6586
6687func  (dst  * DockerCluster ) ConvertFrom (srcRaw  conversion.Hub ) error  {
@@ -70,12 +91,7 @@ func (dst *DockerCluster) ConvertFrom(srcRaw conversion.Hub) error {
7091		return  err 
7192	}
7293
73- 	// Preserve Hub data on down-conversion except for metadata 
74- 	if  err  :=  utilconversion .MarshalData (src , dst ); err  !=  nil  {
75- 		return  err 
76- 	}
77- 
78- 	return  nil 
94+ 	return  utilconversion .MarshalData (src , dst )
7995}
8096
8197func  (src  * DockerMachine ) ConvertTo (dstRaw  conversion.Hub ) error  {
@@ -87,20 +103,40 @@ func (src *DockerMachine) ConvertTo(dstRaw conversion.Hub) error {
87103
88104	// Manually restore data. 
89105	restored  :=  & infrav1.DockerMachine {}
90- 	if  ok , err  :=  utilconversion .UnmarshalData (src , restored ); err  !=  nil  ||  ! ok  {
106+ 	ok , err  :=  utilconversion .UnmarshalData (src , restored )
107+ 	if  err  !=  nil  {
91108		return  err 
92109	}
93110
94- 	if  restored .Spec .BootstrapTimeout  !=  nil  {
95- 		dst .Spec .BootstrapTimeout  =  restored .Spec .BootstrapTimeout 
111+ 	// Recover intent for bool values converted to *bool. 
112+ 	initialization  :=  infrav1.DockerMachineInitializationStatus {}
113+ 	restoredDockerMachineProvisioned  :=  restored .Status .Initialization .Provisioned 
114+ 	clusterv1 .Convert_bool_To_Pointer_bool (src .Status .Ready , ok , restoredDockerMachineProvisioned , & initialization .Provisioned )
115+ 	if  ! reflect .DeepEqual (initialization , infrav1.DockerMachineInitializationStatus {}) {
116+ 		dst .Status .Initialization  =  initialization 
117+ 	}
118+ 
119+ 	if  ok  {
120+ 		RestoreDockerMachineSpec (& restored .Spec , & dst .Spec )
96121	}
97122
98- 	dst .Status .Conditions  =  restored .Status .Conditions 
99- 	dst .Status .Initialization  =  restored .Status .Initialization 
123+ 	RestoreDockerMachineStatus (& restored .Status , & dst .Status )
100124
101125	return  nil 
102126}
103127
128+ func  RestoreDockerMachineSpec (restored  * infrav1.DockerMachineSpec , dst  * infrav1.DockerMachineSpec ) {
129+ 	// Restore fields added in v1beta2. 
130+ 	if  restored .BootstrapTimeout  !=  nil  {
131+ 		dst .BootstrapTimeout  =  restored .BootstrapTimeout 
132+ 	}
133+ }
134+ 
135+ func  RestoreDockerMachineStatus (restored  * infrav1.DockerMachineStatus , dst  * infrav1.DockerMachineStatus ) {
136+ 	// Restore fields added in v1beta2. 
137+ 	dst .Conditions  =  restored .Conditions 
138+ }
139+ 
104140func  (dst  * DockerMachine ) ConvertFrom (srcRaw  conversion.Hub ) error  {
105141	src  :=  srcRaw .(* infrav1.DockerMachine )
106142
@@ -112,11 +148,7 @@ func (dst *DockerMachine) ConvertFrom(srcRaw conversion.Hub) error {
112148		dst .Spec .ProviderID  =  nil 
113149	}
114150
115- 	if  err  :=  utilconversion .MarshalData (src , dst ); err  !=  nil  {
116- 		return  err 
117- 	}
118- 
119- 	return  nil 
151+ 	return  utilconversion .MarshalData (src , dst )
120152}
121153
122154func  (src  * DockerMachineTemplate ) ConvertTo (dstRaw  conversion.Hub ) error  {
@@ -128,16 +160,24 @@ func (src *DockerMachineTemplate) ConvertTo(dstRaw conversion.Hub) error {
128160
129161	// Manually restore data. 
130162	restored  :=  & infrav1.DockerMachineTemplate {}
131- 	if  ok , err  :=  utilconversion .UnmarshalData (src , restored ); err  !=  nil  ||  ! ok  {
163+ 	ok , err  :=  utilconversion .UnmarshalData (src , restored )
164+ 	if  err  !=  nil  {
132165		return  err 
133166	}
134167
135- 	dst .Spec .Template .ObjectMeta  =  restored .Spec .Template .ObjectMeta 
136- 	dst .Spec .Template .Spec .BootstrapTimeout  =  restored .Spec .Template .Spec .BootstrapTimeout 
168+ 	if  ok  {
169+ 		RestoreDockerMachineTemplateSpec (& restored .Spec , & dst .Spec )
170+ 	}
137171
138172	return  nil 
139173}
140174
175+ func  RestoreDockerMachineTemplateSpec (restored  * infrav1.DockerMachineTemplateSpec , dst  * infrav1.DockerMachineTemplateSpec ) {
176+ 	// Restore fields added in v1beta2. 
177+ 	dst .Template .ObjectMeta  =  restored .Template .ObjectMeta 
178+ 	dst .Template .Spec .BootstrapTimeout  =  restored .Template .Spec .BootstrapTimeout 
179+ }
180+ 
141181func  (dst  * DockerMachineTemplate ) ConvertFrom (srcRaw  conversion.Hub ) error  {
142182	src  :=  srcRaw .(* infrav1.DockerMachineTemplate )
143183
@@ -149,12 +189,7 @@ func (dst *DockerMachineTemplate) ConvertFrom(srcRaw conversion.Hub) error {
149189		dst .Spec .Template .Spec .ProviderID  =  nil 
150190	}
151191
152- 	// Preserve Hub data on down-conversion except for metadata 
153- 	if  err  :=  utilconversion .MarshalData (src , dst ); err  !=  nil  {
154- 		return  err 
155- 	}
156- 
157- 	return  nil 
192+ 	return  utilconversion .MarshalData (src , dst )
158193}
159194
160195// Convert_v1beta2_DockerClusterSpec_To_v1alpha3_DockerClusterSpec is an autogenerated conversion function. 
@@ -201,9 +236,7 @@ func Convert_v1beta2_DockerClusterStatus_To_v1alpha3_DockerClusterStatus(in *inf
201236		clusterv1alpha3 .Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions (& in .Deprecated .V1Beta1 .Conditions , & out .Conditions )
202237	}
203238
204- 	if  in .Initialization .Provisioned  !=  nil  {
205- 		out .Ready  =  * in .Initialization .Provisioned 
206- 	}
239+ 	out .Ready  =  ptr .Deref (in .Initialization .Provisioned , false )
207240
208241	// Move FailureDomains 
209242	if  in .FailureDomains  !=  nil  {
@@ -231,9 +264,7 @@ func Convert_v1beta2_DockerMachineStatus_To_v1alpha3_DockerMachineStatus(in *inf
231264		clusterv1alpha3 .Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions (& in .Deprecated .V1Beta1 .Conditions , & out .Conditions )
232265	}
233266
234- 	if  in .Initialization .Provisioned  !=  nil  {
235- 		out .Ready  =  * in .Initialization .Provisioned 
236- 	}
267+ 	out .Ready  =  ptr .Deref (in .Initialization .Provisioned , false )
237268
238269	return  nil 
239270}
@@ -263,10 +294,6 @@ func Convert_v1alpha3_DockerMachineStatus_To_v1beta2_DockerMachineStatus(in *Doc
263294		clusterv1alpha3 .Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions (& in .Conditions , & out .Deprecated .V1Beta1 .Conditions )
264295	}
265296
266- 	if  in .Ready  {
267- 		out .Initialization .Provisioned  =  ptr .To (in .Ready )
268- 	}
269- 
270297	return  nil 
271298}
272299
@@ -285,10 +312,6 @@ func Convert_v1alpha3_DockerClusterStatus_To_v1beta2_DockerClusterStatus(in *Doc
285312		clusterv1alpha3 .Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions (& in .Conditions , & out .Deprecated .V1Beta1 .Conditions )
286313	}
287314
288- 	if  in .Ready  {
289- 		out .Initialization .Provisioned  =  ptr .To (in .Ready )
290- 	}
291- 
292315	// Move FailureDomains 
293316	if  in .FailureDomains  !=  nil  {
294317		out .FailureDomains  =  []clusterv1.FailureDomain {}
0 commit comments