Skip to content

Commit 5783dcb

Browse files
committed
add status initialization to DockerMachine and DevMachine
Signed-off-by: sivchari <[email protected]>
1 parent 2ebc80d commit 5783dcb

19 files changed

+254
-81
lines changed

Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -942,6 +942,11 @@ test-cover: ## Run unit and integration tests and generate a coverage report
942942
.PHONY: test-docker-infrastructure
943943
test-docker-infrastructure: $(SETUP_ENVTEST) ## Run unit and integration tests for docker infrastructure provider
944944
cd $(CAPD_DIR); KUBEBUILDER_ASSETS="$(KUBEBUILDER_ASSETS)" go test -race ./... $(TEST_ARGS)
945+
$(MAKE) test-docker-infrastructure-conversions TEST_ARGS="$(TEST_ARGS) "
946+
947+
.PHONY: test-docker-infrastructure-conversions
948+
test-docker-infrastructure-conversions: $(SETUP_ENVTEST) ## Run conversions test for docker infrastructure provider
949+
cd $(CAPD_DIR); KUBEBUILDER_ASSETS="$(KUBEBUILDER_ASSETS)" go test -run "^TestFuzzyConversion$$" ./... $(TEST_ARGS)
945950

946951
.PHONY: test-docker-infrastructure-verbose
947952
test-docker-infrastructure-verbose: ## Run unit and integration tests for docker infrastructure provider with verbose flag

test/infrastructure/docker/api/v1alpha3/conversion.go

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -94,16 +94,6 @@ func (src *DockerMachine) ConvertTo(dstRaw conversion.Hub) error {
9494
return err
9595
}
9696

97-
// Reset conditions from autogenerated conversions
98-
// NOTE: v1alpha3 conditions should not be automatically be converted into v1beta2 conditions.
99-
dst.Status.Conditions = nil
100-
101-
if src.Status.Conditions != nil {
102-
dst.Status.Deprecated = &infrav1.DockerMachineDeprecatedStatus{}
103-
dst.Status.Deprecated.V1Beta1 = &infrav1.DockerMachineV1Beta1DeprecatedStatus{}
104-
clusterv1alpha3.Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions)
105-
}
106-
10797
// Manually restore data.
10898
restored := &infrav1.DockerMachine{}
10999
if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok {
@@ -126,13 +116,6 @@ func (dst *DockerMachine) ConvertFrom(srcRaw conversion.Hub) error {
126116
return err
127117
}
128118

129-
// Reset conditions from autogenerated conversions
130-
// NOTE: v1beta2 conditions should not be automatically be converted into v1alpha3 conditions.
131-
dst.Status.Conditions = nil
132-
if src.Status.Deprecated != nil && src.Status.Deprecated.V1Beta1 != nil && src.Status.Deprecated.V1Beta1.Conditions != nil {
133-
clusterv1alpha3.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions)
134-
}
135-
136119
if err := utilconversion.MarshalData(src, dst); err != nil {
137120
return err
138121
}
@@ -196,7 +179,22 @@ func Convert_v1beta2_DockerClusterStatus_To_v1alpha3_DockerClusterStatus(in *inf
196179
}
197180

198181
func Convert_v1beta2_DockerMachineStatus_To_v1alpha3_DockerMachineStatus(in *infrav1.DockerMachineStatus, out *DockerMachineStatus, s apiconversion.Scope) error {
199-
return autoConvert_v1beta2_DockerMachineStatus_To_v1alpha3_DockerMachineStatus(in, out, s)
182+
if err := autoConvert_v1beta2_DockerMachineStatus_To_v1alpha3_DockerMachineStatus(in, out, s); err != nil {
183+
return err
184+
}
185+
186+
// Reset conditions from autogenerated conversions
187+
// NOTE: v1beta2 conditions should not be automatically be converted into v1alpha3 conditions.
188+
out.Conditions = nil
189+
if in.Deprecated != nil && in.Deprecated.V1Beta1 != nil && in.Deprecated.V1Beta1.Conditions != nil {
190+
clusterv1alpha3.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha3_Conditions(&in.Deprecated.V1Beta1.Conditions, &out.Conditions)
191+
}
192+
193+
if in.Initialization != nil && in.Initialization.Provisioned {
194+
out.Ready = in.Initialization.Provisioned
195+
}
196+
197+
return nil
200198
}
201199

202200
// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94)
@@ -208,3 +206,28 @@ func Convert_v1alpha3_Condition_To_v1_Condition(in *clusterv1alpha3.Condition, o
208206
func Convert_v1_Condition_To_v1alpha3_Condition(in *metav1.Condition, out *clusterv1alpha3.Condition, s apiconversion.Scope) error {
209207
return clusterv1alpha3.Convert_v1_Condition_To_v1alpha3_Condition(in, out, s)
210208
}
209+
210+
func Convert_v1alpha3_DockerMachineStatus_To_v1beta2_DockerMachineStatus(in *DockerMachineStatus, out *infrav1.DockerMachineStatus, s apiconversion.Scope) error {
211+
if err := autoConvert_v1alpha3_DockerMachineStatus_To_v1beta2_DockerMachineStatus(in, out, s); err != nil {
212+
return err
213+
}
214+
215+
// Reset conditions from autogenerated conversions
216+
// NOTE: v1alpha3 conditions should not be automatically be converted into v1beta2 conditions.
217+
out.Conditions = nil
218+
219+
if in.Conditions != nil {
220+
out.Deprecated = &infrav1.DockerMachineDeprecatedStatus{}
221+
out.Deprecated.V1Beta1 = &infrav1.DockerMachineV1Beta1DeprecatedStatus{}
222+
clusterv1alpha3.Convert_v1alpha3_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&in.Conditions, &out.Deprecated.V1Beta1.Conditions)
223+
}
224+
225+
out.Initialization = nil
226+
if in.Ready {
227+
out.Initialization = &infrav1.DockerMachineInitializationStatus{
228+
Provisioned: true,
229+
}
230+
}
231+
232+
return nil
233+
}

test/infrastructure/docker/api/v1alpha3/conversion_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,10 @@ func hubDockerMachineStatus(in *infrav1.DockerMachineStatus, c randfill.Continue
8181
in.Deprecated = nil
8282
}
8383
}
84+
85+
if in.Initialization != nil {
86+
if reflect.DeepEqual(in.Initialization, &infrav1.DockerMachineInitializationStatus{}) {
87+
in.Initialization = nil
88+
}
89+
}
8490
}

test/infrastructure/docker/api/v1alpha3/zz_generated.conversion.go

Lines changed: 7 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/infrastructure/docker/api/v1alpha4/conversion.go

Lines changed: 40 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,6 @@ func (src *DockerMachine) ConvertTo(dstRaw conversion.Hub) error {
122122
return err
123123
}
124124

125-
// Reset conditions from autogenerated conversions
126-
// NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions.
127-
dst.Status.Conditions = nil
128-
if src.Status.Conditions != nil {
129-
dst.Status.Deprecated = &infrav1.DockerMachineDeprecatedStatus{}
130-
dst.Status.Deprecated.V1Beta1 = &infrav1.DockerMachineV1Beta1DeprecatedStatus{}
131-
clusterv1alpha4.Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&src.Status.Conditions, &dst.Status.Deprecated.V1Beta1.Conditions)
132-
}
133-
134125
// Manually restore data.
135126
restored := &infrav1.DockerMachine{}
136127
if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok {
@@ -153,13 +144,6 @@ func (dst *DockerMachine) ConvertFrom(srcRaw conversion.Hub) error {
153144
return err
154145
}
155146

156-
// Reset conditions from autogenerated conversions
157-
// NOTE: v1beta2 conditions should not be automatically be converted into v1alpha4 conditions.
158-
dst.Status.Conditions = nil
159-
if src.Status.Deprecated != nil && src.Status.Deprecated.V1Beta1 != nil && src.Status.Deprecated.V1Beta1.Conditions != nil {
160-
clusterv1alpha4.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(&src.Status.Deprecated.V1Beta1.Conditions, &dst.Status.Conditions)
161-
}
162-
163147
if err := utilconversion.MarshalData(src, dst); err != nil {
164148
return err
165149
}
@@ -224,7 +208,22 @@ func Convert_v1beta2_DockerClusterStatus_To_v1alpha4_DockerClusterStatus(in *inf
224208
}
225209

226210
func Convert_v1beta2_DockerMachineStatus_To_v1alpha4_DockerMachineStatus(in *infrav1.DockerMachineStatus, out *DockerMachineStatus, s apiconversion.Scope) error {
227-
return autoConvert_v1beta2_DockerMachineStatus_To_v1alpha4_DockerMachineStatus(in, out, s)
211+
if err := autoConvert_v1beta2_DockerMachineStatus_To_v1alpha4_DockerMachineStatus(in, out, s); err != nil {
212+
return err
213+
}
214+
215+
// Reset conditions from autogenerated conversions
216+
// NOTE: v1beta2 conditions should not be automatically be converted into v1alpha4 conditions.
217+
out.Conditions = nil
218+
if in.Deprecated != nil && in.Deprecated.V1Beta1 != nil && in.Deprecated.V1Beta1.Conditions != nil {
219+
clusterv1alpha4.Convert_v1beta2_Deprecated_V1Beta1_Conditions_To_v1alpha4_Conditions(&in.Deprecated.V1Beta1.Conditions, &out.Conditions)
220+
}
221+
222+
if in.Initialization != nil && in.Initialization.Provisioned {
223+
out.Ready = in.Initialization.Provisioned
224+
}
225+
226+
return nil
228227
}
229228

230229
func Convert_v1beta2_DockerCluster_To_v1alpha4_DockerCluster(in *infrav1.DockerCluster, out *DockerCluster, s apiconversion.Scope) error {
@@ -252,3 +251,27 @@ func Convert_v1alpha4_Condition_To_v1_Condition(in *clusterv1alpha4.Condition, o
252251
func Convert_v1_Condition_To_v1alpha4_Condition(in *metav1.Condition, out *clusterv1alpha4.Condition, s apiconversion.Scope) error {
253252
return clusterv1alpha4.Convert_v1_Condition_To_v1alpha4_Condition(in, out, s)
254253
}
254+
255+
func Convert_v1alpha4_DockerMachineStatus_To_v1beta2_DockerMachineStatus(in *DockerMachineStatus, out *infrav1.DockerMachineStatus, s apiconversion.Scope) error {
256+
if err := autoConvert_v1alpha4_DockerMachineStatus_To_v1beta2_DockerMachineStatus(in, out, s); err != nil {
257+
return err
258+
}
259+
260+
// Reset conditions from autogenerated conversions
261+
// NOTE: v1alpha4 conditions should not be automatically be converted into v1beta2 conditions.
262+
out.Conditions = nil
263+
if in.Conditions != nil {
264+
out.Deprecated = &infrav1.DockerMachineDeprecatedStatus{}
265+
out.Deprecated.V1Beta1 = &infrav1.DockerMachineV1Beta1DeprecatedStatus{}
266+
clusterv1alpha4.Convert_v1alpha4_Conditions_To_v1beta2_Deprecated_V1Beta1_Conditions(&in.Conditions, &out.Deprecated.V1Beta1.Conditions)
267+
}
268+
269+
out.Initialization = nil
270+
if in.Ready {
271+
out.Initialization = &infrav1.DockerMachineInitializationStatus{
272+
Provisioned: in.Ready,
273+
}
274+
}
275+
276+
return nil
277+
}

test/infrastructure/docker/api/v1alpha4/conversion_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,10 @@ func hubDockerMachineStatus(in *infrav1.DockerMachineStatus, c randfill.Continue
8686
in.Deprecated = nil
8787
}
8888
}
89+
90+
if in.Initialization != nil {
91+
if reflect.DeepEqual(in.Initialization, &infrav1.DockerMachineInitializationStatus{}) {
92+
in.Initialization = nil
93+
}
94+
}
8995
}

test/infrastructure/docker/api/v1alpha4/zz_generated.conversion.go

Lines changed: 7 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/infrastructure/docker/api/v1beta1/conversion.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,13 @@ func Convert_v1beta1_DevMachineStatus_To_v1beta2_DevMachineStatus(in *DevMachine
189189
return err
190190
}
191191

192+
out.Initialization = nil
193+
if in.Ready {
194+
out.Initialization = &infrav1.DevMachineInitializationStatus{
195+
Provisioned: in.Ready,
196+
}
197+
}
198+
192199
// Reset conditions from autogenerated conversions
193200
// NOTE: v1beta1 conditions should not be automatically be converted into v1beta2 conditions.
194201
out.Conditions = nil
@@ -219,6 +226,10 @@ func Convert_v1beta2_DevMachineStatus_To_v1beta1_DevMachineStatus(in *infrav1.De
219226
return err
220227
}
221228

229+
if in.Initialization != nil && in.Initialization.Provisioned {
230+
out.Ready = in.Initialization.Provisioned
231+
}
232+
222233
// Reset conditions from autogenerated conversions
223234
// NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1beta1).
224235
out.Conditions = nil
@@ -235,6 +246,7 @@ func Convert_v1beta2_DevMachineStatus_To_v1beta1_DevMachineStatus(in *infrav1.De
235246

236247
out.V1Beta2 = &DevMachineV1Beta2Status{}
237248
out.V1Beta2.Conditions = in.Conditions
249+
238250
return nil
239251
}
240252

@@ -297,6 +309,13 @@ func Convert_v1beta1_DockerMachineStatus_To_v1beta2_DockerMachineStatus(in *Dock
297309
return err
298310
}
299311

312+
out.Initialization = nil
313+
if in.Ready {
314+
out.Initialization = &infrav1.DockerMachineInitializationStatus{
315+
Provisioned: in.Ready,
316+
}
317+
}
318+
300319
// Reset conditions from autogenerated conversions
301320
// NOTE: v1beta1 conditions should not be automatically be converted into v1beta2 conditions.
302321
out.Conditions = nil
@@ -327,6 +346,10 @@ func Convert_v1beta2_DockerMachineStatus_To_v1beta1_DockerMachineStatus(in *infr
327346
return err
328347
}
329348

349+
if in.Initialization != nil && in.Initialization.Provisioned {
350+
out.Ready = in.Initialization.Provisioned
351+
}
352+
330353
// Reset conditions from autogenerated conversions
331354
// NOTE: v1beta2 conditions should not be automatically be converted into legacy conditions (v1beta1).
332355
out.Conditions = nil
@@ -343,6 +366,7 @@ func Convert_v1beta2_DockerMachineStatus_To_v1beta1_DockerMachineStatus(in *infr
343366

344367
out.V1Beta2 = &DockerMachineV1Beta2Status{}
345368
out.V1Beta2.Conditions = in.Conditions
369+
346370
return nil
347371
}
348372

test/infrastructure/docker/api/v1beta1/conversion_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,12 @@ func hubDockerMachineStatus(in *infrav1.DockerMachineStatus, c randfill.Continue
121121
in.Deprecated = nil
122122
}
123123
}
124+
125+
if in.Initialization != nil {
126+
if reflect.DeepEqual(in.Initialization, &infrav1.DockerMachineInitializationStatus{}) {
127+
in.Initialization = nil
128+
}
129+
}
124130
}
125131

126132
func spokeDockerMachineStatus(in *DockerMachineStatus, c randfill.Continue) {
@@ -177,6 +183,12 @@ func hubDevMachineStatus(in *infrav1.DevMachineStatus, c randfill.Continue) {
177183
in.Deprecated = nil
178184
}
179185
}
186+
187+
if in.Initialization != nil {
188+
if reflect.DeepEqual(in.Initialization, &infrav1.DevMachineInitializationStatus{}) {
189+
in.Initialization = nil
190+
}
191+
}
180192
}
181193

182194
func spokeDevMachineStatus(in *DevMachineStatus, c randfill.Continue) {

0 commit comments

Comments
 (0)