Skip to content

Commit 8059056

Browse files
authored
Merge pull request #6144 from sbueringer/pr-fix-conversions
🐛 Fix panics in conversions
2 parents d4df78a + 3684417 commit 8059056

File tree

5 files changed

+49
-0
lines changed

5 files changed

+49
-0
lines changed

api/v1alpha4/conversion.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,14 @@ func (src *Cluster) ConvertTo(dstRaw conversion.Hub) error {
3838
}
3939

4040
if restored.Spec.Topology != nil {
41+
if dst.Spec.Topology == nil {
42+
dst.Spec.Topology = &clusterv1.Topology{}
43+
}
4144
dst.Spec.Topology.Variables = restored.Spec.Topology.Variables
4245
if restored.Spec.Topology.Workers != nil {
46+
if dst.Spec.Topology.Workers == nil {
47+
dst.Spec.Topology.Workers = &clusterv1.WorkersTopology{}
48+
}
4349
for i := range restored.Spec.Topology.Workers.MachineDeployments {
4450
dst.Spec.Topology.Workers.MachineDeployments[i].FailureDomain = restored.Spec.Topology.Workers.MachineDeployments[i].FailureDomain
4551
dst.Spec.Topology.Workers.MachineDeployments[i].Variables = restored.Spec.Topology.Workers.MachineDeployments[i].Variables

bootstrap/kubeadm/api/v1alpha3/conversion.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,15 @@ func (src *KubeadmConfig) ConvertTo(dstRaw conversion.Hub) error {
5454

5555
dst.Spec.Ignition = restored.Spec.Ignition
5656
if restored.Spec.InitConfiguration != nil {
57+
if dst.Spec.InitConfiguration == nil {
58+
dst.Spec.InitConfiguration = &bootstrapv1.InitConfiguration{}
59+
}
5760
dst.Spec.InitConfiguration.Patches = restored.Spec.InitConfiguration.Patches
5861
}
5962
if restored.Spec.JoinConfiguration != nil {
63+
if dst.Spec.JoinConfiguration == nil {
64+
dst.Spec.JoinConfiguration = &bootstrapv1.JoinConfiguration{}
65+
}
6066
dst.Spec.JoinConfiguration.Patches = restored.Spec.JoinConfiguration.Patches
6167
}
6268

@@ -119,9 +125,15 @@ func (src *KubeadmConfigTemplate) ConvertTo(dstRaw conversion.Hub) error {
119125

120126
dst.Spec.Template.Spec.Ignition = restored.Spec.Template.Spec.Ignition
121127
if restored.Spec.Template.Spec.InitConfiguration != nil {
128+
if dst.Spec.Template.Spec.InitConfiguration == nil {
129+
dst.Spec.Template.Spec.InitConfiguration = &bootstrapv1.InitConfiguration{}
130+
}
122131
dst.Spec.Template.Spec.InitConfiguration.Patches = restored.Spec.Template.Spec.InitConfiguration.Patches
123132
}
124133
if restored.Spec.Template.Spec.JoinConfiguration != nil {
134+
if dst.Spec.Template.Spec.JoinConfiguration == nil {
135+
dst.Spec.Template.Spec.JoinConfiguration = &bootstrapv1.JoinConfiguration{}
136+
}
125137
dst.Spec.Template.Spec.JoinConfiguration.Patches = restored.Spec.Template.Spec.JoinConfiguration.Patches
126138
}
127139

bootstrap/kubeadm/api/v1alpha4/conversion.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,15 @@ func (src *KubeadmConfig) ConvertTo(dstRaw conversion.Hub) error {
3939

4040
dst.Spec.Ignition = restored.Spec.Ignition
4141
if restored.Spec.InitConfiguration != nil {
42+
if dst.Spec.InitConfiguration == nil {
43+
dst.Spec.InitConfiguration = &bootstrapv1.InitConfiguration{}
44+
}
4245
dst.Spec.InitConfiguration.Patches = restored.Spec.InitConfiguration.Patches
4346
}
4447
if restored.Spec.JoinConfiguration != nil {
48+
if dst.Spec.JoinConfiguration == nil {
49+
dst.Spec.JoinConfiguration = &bootstrapv1.JoinConfiguration{}
50+
}
4551
dst.Spec.JoinConfiguration.Patches = restored.Spec.JoinConfiguration.Patches
4652
}
4753

@@ -85,9 +91,15 @@ func (src *KubeadmConfigTemplate) ConvertTo(dstRaw conversion.Hub) error {
8591

8692
dst.Spec.Template.Spec.Ignition = restored.Spec.Template.Spec.Ignition
8793
if restored.Spec.Template.Spec.InitConfiguration != nil {
94+
if dst.Spec.Template.Spec.InitConfiguration == nil {
95+
dst.Spec.Template.Spec.InitConfiguration = &bootstrapv1.InitConfiguration{}
96+
}
8897
dst.Spec.Template.Spec.InitConfiguration.Patches = restored.Spec.Template.Spec.InitConfiguration.Patches
8998
}
9099
if restored.Spec.Template.Spec.JoinConfiguration != nil {
100+
if dst.Spec.Template.Spec.JoinConfiguration == nil {
101+
dst.Spec.Template.Spec.JoinConfiguration = &bootstrapv1.JoinConfiguration{}
102+
}
91103
dst.Spec.Template.Spec.JoinConfiguration.Patches = restored.Spec.Template.Spec.JoinConfiguration.Patches
92104
}
93105

controlplane/kubeadm/api/v1alpha3/conversion.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,15 @@ func (src *KubeadmControlPlane) ConvertTo(dstRaw conversion.Hub) error {
5757

5858
dst.Spec.KubeadmConfigSpec.Ignition = restored.Spec.KubeadmConfigSpec.Ignition
5959
if restored.Spec.KubeadmConfigSpec.InitConfiguration != nil {
60+
if dst.Spec.KubeadmConfigSpec.InitConfiguration == nil {
61+
dst.Spec.KubeadmConfigSpec.InitConfiguration = &bootstrapv1.InitConfiguration{}
62+
}
6063
dst.Spec.KubeadmConfigSpec.InitConfiguration.Patches = restored.Spec.KubeadmConfigSpec.InitConfiguration.Patches
6164
}
6265
if restored.Spec.KubeadmConfigSpec.JoinConfiguration != nil {
66+
if dst.Spec.KubeadmConfigSpec.JoinConfiguration == nil {
67+
dst.Spec.KubeadmConfigSpec.JoinConfiguration = &bootstrapv1.JoinConfiguration{}
68+
}
6369
dst.Spec.KubeadmConfigSpec.JoinConfiguration.Patches = restored.Spec.KubeadmConfigSpec.JoinConfiguration.Patches
6470
}
6571

controlplane/kubeadm/api/v1alpha4/conversion.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"sigs.k8s.io/controller-runtime/pkg/conversion"
2222

2323
bootstrapv1alpha4 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha4"
24+
bootstrapv1 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1beta1"
2425
controlplanev1 "sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1beta1"
2526
utilconversion "sigs.k8s.io/cluster-api/util/conversion"
2627
)
@@ -40,9 +41,15 @@ func (src *KubeadmControlPlane) ConvertTo(dstRaw conversion.Hub) error {
4041

4142
dst.Spec.KubeadmConfigSpec.Ignition = restored.Spec.KubeadmConfigSpec.Ignition
4243
if restored.Spec.KubeadmConfigSpec.InitConfiguration != nil {
44+
if dst.Spec.KubeadmConfigSpec.InitConfiguration == nil {
45+
dst.Spec.KubeadmConfigSpec.InitConfiguration = &bootstrapv1.InitConfiguration{}
46+
}
4347
dst.Spec.KubeadmConfigSpec.InitConfiguration.Patches = restored.Spec.KubeadmConfigSpec.InitConfiguration.Patches
4448
}
4549
if restored.Spec.KubeadmConfigSpec.JoinConfiguration != nil {
50+
if dst.Spec.KubeadmConfigSpec.JoinConfiguration == nil {
51+
dst.Spec.KubeadmConfigSpec.JoinConfiguration = &bootstrapv1.JoinConfiguration{}
52+
}
4653
dst.Spec.KubeadmConfigSpec.JoinConfiguration.Patches = restored.Spec.KubeadmConfigSpec.JoinConfiguration.Patches
4754
}
4855

@@ -88,9 +95,15 @@ func (src *KubeadmControlPlaneTemplate) ConvertTo(dstRaw conversion.Hub) error {
8895
dst.Spec.Template.Spec.KubeadmConfigSpec.Ignition = restored.Spec.Template.Spec.KubeadmConfigSpec.Ignition
8996
dst.Spec.Template.Spec.MachineTemplate = restored.Spec.Template.Spec.MachineTemplate
9097
if restored.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration != nil {
98+
if dst.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration == nil {
99+
dst.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration = &bootstrapv1.InitConfiguration{}
100+
}
91101
dst.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration.Patches = restored.Spec.Template.Spec.KubeadmConfigSpec.InitConfiguration.Patches
92102
}
93103
if restored.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration != nil {
104+
if dst.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration == nil {
105+
dst.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration = &bootstrapv1.JoinConfiguration{}
106+
}
94107
dst.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration.Patches = restored.Spec.Template.Spec.KubeadmConfigSpec.JoinConfiguration.Patches
95108
}
96109

0 commit comments

Comments
 (0)