Skip to content

Commit ed4e6b2

Browse files
authored
⚠️ Change type of *string fields with invalid zero value to string (#12429)
* Change type of *string fields with invalid zero value to string * Fix rebase issues
1 parent 173d580 commit ed4e6b2

File tree

142 files changed

+1945
-1136
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

142 files changed

+1945
-1136
lines changed

api/bootstrap/kubeadm/v1beta1/conversion.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,9 @@ func (dst *KubeadmConfig) ConvertFrom(srcRaw conversion.Hub) error {
262262
// Convert timeouts moved from one struct to another.
263263
dst.Spec.ConvertFrom(&src.Spec)
264264

265+
dropEmptyStringsKubeadmConfigSpec(&dst.Spec)
266+
dropEmptyStringsKubeadmConfigStatus(&dst.Status)
267+
265268
// Preserve Hub data on down-conversion except for metadata.
266269
return utilconversion.MarshalData(src, dst)
267270
}
@@ -324,6 +327,8 @@ func (dst *KubeadmConfigTemplate) ConvertFrom(srcRaw conversion.Hub) error {
324327
// Convert timeouts moved from one struct to another.
325328
dst.Spec.Template.Spec.ConvertFrom(&src.Spec.Template.Spec)
326329

330+
dropEmptyStringsKubeadmConfigSpec(&dst.Spec.Template.Spec)
331+
327332
// Preserve Hub data on down-conversion except for metadata.
328333
return utilconversion.MarshalData(src, dst)
329334
}
@@ -494,3 +499,38 @@ func Convert_v1_Condition_To_v1beta1_Condition(in *metav1.Condition, out *cluste
494499
func Convert_v1beta1_Condition_To_v1_Condition(in *clusterv1beta1.Condition, out *metav1.Condition, s apimachineryconversion.Scope) error {
495500
return clusterv1beta1.Convert_v1beta1_Condition_To_v1_Condition(in, out, s)
496501
}
502+
503+
func dropEmptyStringsKubeadmConfigSpec(dst *KubeadmConfigSpec) {
504+
for i, u := range dst.Users {
505+
dropEmptyString(&u.Gecos)
506+
dropEmptyString(&u.Groups)
507+
dropEmptyString(&u.HomeDir)
508+
dropEmptyString(&u.Shell)
509+
dropEmptyString(&u.Passwd)
510+
dropEmptyString(&u.PrimaryGroup)
511+
dropEmptyString(&u.Sudo)
512+
dst.Users[i] = u
513+
}
514+
515+
if dst.DiskSetup != nil {
516+
for i, p := range dst.DiskSetup.Partitions {
517+
dropEmptyString(&p.TableType)
518+
dst.DiskSetup.Partitions[i] = p
519+
}
520+
for i, f := range dst.DiskSetup.Filesystems {
521+
dropEmptyString(&f.Partition)
522+
dropEmptyString(&f.ReplaceFS)
523+
dst.DiskSetup.Filesystems[i] = f
524+
}
525+
}
526+
}
527+
528+
func dropEmptyStringsKubeadmConfigStatus(dst *KubeadmConfigStatus) {
529+
dropEmptyString(&dst.DataSecretName)
530+
}
531+
532+
func dropEmptyString(s **string) {
533+
if *s != nil && **s == "" {
534+
*s = nil
535+
}
536+
}

api/bootstrap/kubeadm/v1beta1/conversion_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ func spokeKubeadmConfigSpec(in *KubeadmConfigSpec, c randfill.Continue) {
133133

134134
// Drop UseExperimentalRetryJoin as we intentionally don't preserve it.
135135
in.UseExperimentalRetryJoin = false
136+
137+
dropEmptyStringsKubeadmConfigSpec(in)
136138
}
137139

138140
func spokeClusterConfiguration(in *ClusterConfiguration, c randfill.Continue) {
@@ -178,4 +180,6 @@ func spokeKubeadmConfigStatus(in *KubeadmConfigStatus, c randfill.Continue) {
178180
in.V1Beta2 = nil
179181
}
180182
}
183+
184+
dropEmptyStringsKubeadmConfigStatus(in)
181185
}

api/bootstrap/kubeadm/v1beta1/zz_generated.conversion.go

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

0 commit comments

Comments
 (0)