Skip to content

Commit cf12569

Browse files
committed
Change Arg.Value from string to *string
1 parent c5bbc0c commit cf12569

File tree

20 files changed

+463
-50
lines changed

20 files changed

+463
-50
lines changed

api/bootstrap/kubeadm/v1beta1/conversion_test.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,43 @@ func hubKubeadmConfigSpec(in *bootstrapv1.KubeadmConfigSpec, c randfill.Continue
124124
if in.ClusterConfiguration.Etcd.Local.ExtraEnvs != nil && *in.ClusterConfiguration.Etcd.Local.ExtraEnvs == nil {
125125
in.ClusterConfiguration.Etcd.Local.ExtraEnvs = nil
126126
}
127+
128+
for i, arg := range in.ClusterConfiguration.APIServer.ExtraArgs {
129+
if arg.Value == nil {
130+
arg.Value = ptr.To("")
131+
}
132+
in.ClusterConfiguration.APIServer.ExtraArgs[i] = arg
133+
}
134+
for i, arg := range in.ClusterConfiguration.ControllerManager.ExtraArgs {
135+
if arg.Value == nil {
136+
arg.Value = ptr.To("")
137+
}
138+
in.ClusterConfiguration.ControllerManager.ExtraArgs[i] = arg
139+
}
140+
for i, arg := range in.ClusterConfiguration.Scheduler.ExtraArgs {
141+
if arg.Value == nil {
142+
arg.Value = ptr.To("")
143+
}
144+
in.ClusterConfiguration.Scheduler.ExtraArgs[i] = arg
145+
}
146+
for i, arg := range in.ClusterConfiguration.Etcd.Local.ExtraArgs {
147+
if arg.Value == nil {
148+
arg.Value = ptr.To("")
149+
}
150+
in.ClusterConfiguration.Etcd.Local.ExtraArgs[i] = arg
151+
}
152+
for i, arg := range in.InitConfiguration.NodeRegistration.KubeletExtraArgs {
153+
if arg.Value == nil {
154+
arg.Value = ptr.To("")
155+
}
156+
in.InitConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg
157+
}
158+
for i, arg := range in.JoinConfiguration.NodeRegistration.KubeletExtraArgs {
159+
if arg.Value == nil {
160+
arg.Value = ptr.To("")
161+
}
162+
in.JoinConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg
163+
}
127164
}
128165

129166
func hubNodeRegistrationOptions(in *bootstrapv1.NodeRegistrationOptions, c randfill.Continue) {

api/bootstrap/kubeadm/v1beta2/conversion.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ package v1beta2
1818

1919
import (
2020
"sort"
21+
22+
"k8s.io/utils/ptr"
2123
)
2224

2325
func (*KubeadmConfig) Hub() {}
@@ -36,11 +38,11 @@ func ConvertToArgs(in map[string]string) []Arg {
3638
}
3739
args := make([]Arg, 0, len(in))
3840
for k, v := range in {
39-
args = append(args, Arg{Name: k, Value: v})
41+
args = append(args, Arg{Name: k, Value: ptr.To(v)})
4042
}
4143
sort.Slice(args, func(i, j int) bool {
4244
if args[i].Name == args[j].Name {
43-
return args[i].Value < args[j].Value
45+
return ptr.Deref(args[i].Value, "") < ptr.Deref(args[j].Value, "")
4446
}
4547
return args[i].Name < args[j].Name
4648
})
@@ -56,7 +58,7 @@ func ConvertFromArgs(in []Arg) map[string]string {
5658
}
5759
args := make(map[string]string, len(in))
5860
for _, arg := range in {
59-
args[arg.Name] = arg.Value
61+
args[arg.Name] = ptr.Deref(arg.Value, "")
6062
}
6163
return args
6264
}

api/bootstrap/kubeadm/v1beta2/conversion_test.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"testing"
2121

2222
. "github.com/onsi/gomega"
23+
"k8s.io/utils/ptr"
2324
)
2425

2526
func TestConvertArgs(t *testing.T) {
@@ -28,15 +29,15 @@ func TestConvertArgs(t *testing.T) {
2829
argList := []Arg{
2930
{
3031
Name: "foo",
31-
Value: "1",
32+
Value: ptr.To("1"),
3233
},
3334
{
3435
Name: "bar",
35-
Value: "1",
36+
Value: ptr.To("1"),
3637
},
3738
{
3839
Name: "foo",
39-
Value: "2",
40+
Value: ptr.To("2"),
4041
},
4142
}
4243
argMap := ConvertFromArgs(argList)
@@ -46,10 +47,11 @@ func TestConvertArgs(t *testing.T) {
4647
g.Expect(argList).To(ConsistOf(
4748
Arg{
4849
Name: "bar",
49-
Value: "1"},
50+
Value: ptr.To("1"),
51+
},
5052
Arg{
5153
Name: "foo",
52-
Value: "2",
54+
Value: ptr.To("2"),
5355
},
5456
))
5557
}

api/bootstrap/kubeadm/v1beta2/kubeadm_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1036,7 +1036,7 @@ type Arg struct {
10361036
// +required
10371037
// +kubebuilder:validation:MinLength=0
10381038
// +kubebuilder:validation:MaxLength=1024
1039-
Value string `json:"value"`
1039+
Value *string `json:"value,omitempty"`
10401040
}
10411041

10421042
// EnvVar represents an environment variable present in a Container.

api/bootstrap/kubeadm/v1beta2/zz_generated.deepcopy.go

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

api/controlplane/kubeadm/v1beta1/conversion_test.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,43 @@ func hubKubeadmConfigSpec(in *bootstrapv1.KubeadmConfigSpec, c randfill.Continue
127127
if in.ClusterConfiguration.Etcd.Local.ExtraEnvs != nil && *in.ClusterConfiguration.Etcd.Local.ExtraEnvs == nil {
128128
in.ClusterConfiguration.Etcd.Local.ExtraEnvs = nil
129129
}
130+
131+
for i, arg := range in.ClusterConfiguration.APIServer.ExtraArgs {
132+
if arg.Value == nil {
133+
arg.Value = ptr.To("")
134+
}
135+
in.ClusterConfiguration.APIServer.ExtraArgs[i] = arg
136+
}
137+
for i, arg := range in.ClusterConfiguration.ControllerManager.ExtraArgs {
138+
if arg.Value == nil {
139+
arg.Value = ptr.To("")
140+
}
141+
in.ClusterConfiguration.ControllerManager.ExtraArgs[i] = arg
142+
}
143+
for i, arg := range in.ClusterConfiguration.Scheduler.ExtraArgs {
144+
if arg.Value == nil {
145+
arg.Value = ptr.To("")
146+
}
147+
in.ClusterConfiguration.Scheduler.ExtraArgs[i] = arg
148+
}
149+
for i, arg := range in.ClusterConfiguration.Etcd.Local.ExtraArgs {
150+
if arg.Value == nil {
151+
arg.Value = ptr.To("")
152+
}
153+
in.ClusterConfiguration.Etcd.Local.ExtraArgs[i] = arg
154+
}
155+
for i, arg := range in.InitConfiguration.NodeRegistration.KubeletExtraArgs {
156+
if arg.Value == nil {
157+
arg.Value = ptr.To("")
158+
}
159+
in.InitConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg
160+
}
161+
for i, arg := range in.JoinConfiguration.NodeRegistration.KubeletExtraArgs {
162+
if arg.Value == nil {
163+
arg.Value = ptr.To("")
164+
}
165+
in.JoinConfiguration.NodeRegistration.KubeletExtraArgs[i] = arg
166+
}
130167
}
131168

132169
func hubNodeRegistrationOptions(in *bootstrapv1.NodeRegistrationOptions, c randfill.Continue) {

bootstrap/kubeadm/types/upstreamv1beta3/conversion_test.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,13 @@ func hubJoinConfigurationFuzzer(obj *bootstrapv1.JoinConfiguration, c randfill.C
171171
} else {
172172
obj.Timeouts = bootstrapv1.Timeouts{}
173173
}
174+
175+
for i, arg := range obj.NodeRegistration.KubeletExtraArgs {
176+
if arg.Value == nil {
177+
arg.Value = ptr.To("")
178+
}
179+
obj.NodeRegistration.KubeletExtraArgs[i] = arg
180+
}
174181
}
175182

176183
func spokeNodeRegistrationOptionsFuzzer(obj *NodeRegistrationOptions, c randfill.Continue) {
@@ -239,6 +246,13 @@ func hubInitConfigurationFuzzer(obj *bootstrapv1.InitConfiguration, c randfill.C
239246
c.FillNoCustom(obj)
240247

241248
obj.Timeouts = bootstrapv1.Timeouts{}
249+
250+
for i, arg := range obj.NodeRegistration.KubeletExtraArgs {
251+
if arg.Value == nil {
252+
arg.Value = ptr.To("")
253+
}
254+
obj.NodeRegistration.KubeletExtraArgs[i] = arg
255+
}
242256
}
243257

244258
func hubHostPathMountFuzzer(obj *bootstrapv1.HostPathMount, c randfill.Continue) {
@@ -262,4 +276,29 @@ func hubClusterConfigurationFuzzer(obj *bootstrapv1.ClusterConfiguration, c rand
262276

263277
obj.CertificateValidityPeriodDays = 0
264278
obj.CACertificateValidityPeriodDays = 0
279+
280+
for i, arg := range obj.APIServer.ExtraArgs {
281+
if arg.Value == nil {
282+
arg.Value = ptr.To("")
283+
}
284+
obj.APIServer.ExtraArgs[i] = arg
285+
}
286+
for i, arg := range obj.ControllerManager.ExtraArgs {
287+
if arg.Value == nil {
288+
arg.Value = ptr.To("")
289+
}
290+
obj.ControllerManager.ExtraArgs[i] = arg
291+
}
292+
for i, arg := range obj.Scheduler.ExtraArgs {
293+
if arg.Value == nil {
294+
arg.Value = ptr.To("")
295+
}
296+
obj.Scheduler.ExtraArgs[i] = arg
297+
}
298+
for i, arg := range obj.Etcd.Local.ExtraArgs {
299+
if arg.Value == nil {
300+
arg.Value = ptr.To("")
301+
}
302+
obj.Etcd.Local.ExtraArgs[i] = arg
303+
}
265304
}

bootstrap/kubeadm/types/upstreamv1beta4/conversion.go

Lines changed: 49 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,15 @@ func Convert_upstreamv1beta4_BootstrapToken_To_v1beta2_BootstrapToken(in *Bootst
181181
}
182182

183183
func Convert_upstreamv1beta4_APIServer_To_v1beta2_APIServer(in *APIServer, out *bootstrapv1.APIServer, s apimachineryconversion.Scope) error {
184-
out.ExtraArgs = *(*[]bootstrapv1.Arg)(unsafe.Pointer(&in.ExtraArgs)) //nolint:gosec // copied over from generated code, fuzzer should detect if we run into issues
184+
if in.ExtraArgs != nil {
185+
out.ExtraArgs = make([]bootstrapv1.Arg, len(in.ExtraArgs))
186+
for i := range in.ExtraArgs {
187+
if err := Convert_upstreamv1beta4_Arg_To_v1beta2_Arg(&(in.ExtraArgs)[i], &(out.ExtraArgs)[i], s); err != nil {
188+
return err
189+
}
190+
}
191+
}
192+
185193
if in.ExtraEnvs == nil {
186194
out.ExtraEnvs = nil
187195
} else {
@@ -194,7 +202,14 @@ func Convert_upstreamv1beta4_APIServer_To_v1beta2_APIServer(in *APIServer, out *
194202
}
195203

196204
func Convert_upstreamv1beta4_ControlPlaneComponent_To_v1beta2_ControllerManager(in *ControlPlaneComponent, out *bootstrapv1.ControllerManager, s apimachineryconversion.Scope) error {
197-
out.ExtraArgs = *(*[]bootstrapv1.Arg)(unsafe.Pointer(&in.ExtraArgs)) //nolint:gosec // copied over from generated code, fuzzer should detect if we run into issues
205+
if in.ExtraArgs != nil {
206+
out.ExtraArgs = make([]bootstrapv1.Arg, len(in.ExtraArgs))
207+
for i := range in.ExtraArgs {
208+
if err := Convert_upstreamv1beta4_Arg_To_v1beta2_Arg(&(in.ExtraArgs)[i], &(out.ExtraArgs)[i], s); err != nil {
209+
return err
210+
}
211+
}
212+
}
198213
if in.ExtraEnvs == nil {
199214
out.ExtraEnvs = nil
200215
} else {
@@ -204,7 +219,14 @@ func Convert_upstreamv1beta4_ControlPlaneComponent_To_v1beta2_ControllerManager(
204219
}
205220

206221
func Convert_upstreamv1beta4_ControlPlaneComponent_To_v1beta2_Scheduler(in *ControlPlaneComponent, out *bootstrapv1.Scheduler, s apimachineryconversion.Scope) error {
207-
out.ExtraArgs = *(*[]bootstrapv1.Arg)(unsafe.Pointer(&in.ExtraArgs)) //nolint:gosec // copied over from generated code, fuzzer should detect if we run into issues
222+
if in.ExtraArgs != nil {
223+
out.ExtraArgs = make([]bootstrapv1.Arg, len(in.ExtraArgs))
224+
for i := range in.ExtraArgs {
225+
if err := Convert_upstreamv1beta4_Arg_To_v1beta2_Arg(&(in.ExtraArgs)[i], &(out.ExtraArgs)[i], s); err != nil {
226+
return err
227+
}
228+
}
229+
}
208230
if in.ExtraEnvs == nil {
209231
out.ExtraEnvs = nil
210232
} else {
@@ -312,7 +334,14 @@ func Convert_v1beta2_JoinConfiguration_To_upstreamv1beta4_JoinConfiguration(in *
312334
func Convert_v1beta2_APIServer_To_upstreamv1beta4_APIServer(in *bootstrapv1.APIServer, out *APIServer, s apimachineryconversion.Scope) error {
313335
// Following fields do not exist in kubeadm v1beta4 version:
314336
// - TimeoutForControlPlane (this field has been migrated to Init/JoinConfiguration; migration is handled by ConvertFromClusterConfiguration custom converters.
315-
out.ExtraArgs = *(*[]Arg)(unsafe.Pointer(&in.ExtraArgs)) //nolint:gosec // copied over from generated code, fuzzer should detect if we run into issues
337+
if in.ExtraArgs != nil {
338+
out.ExtraArgs = make([]Arg, len(in.ExtraArgs))
339+
for i := range in.ExtraArgs {
340+
if err := Convert_v1beta2_Arg_To_upstreamv1beta4_Arg(&(in.ExtraArgs)[i], &(out.ExtraArgs)[i], s); err != nil {
341+
return err
342+
}
343+
}
344+
}
316345
if in.ExtraEnvs == nil {
317346
out.ExtraEnvs = nil
318347
} else {
@@ -326,7 +355,14 @@ func Convert_v1beta2_APIServer_To_upstreamv1beta4_APIServer(in *bootstrapv1.APIS
326355

327356
func Convert_v1beta2_ControllerManager_To_upstreamv1beta4_ControlPlaneComponent(in *bootstrapv1.ControllerManager, out *ControlPlaneComponent, s apimachineryconversion.Scope) error {
328357
// Following fields require a custom conversions.
329-
out.ExtraArgs = *(*[]Arg)(unsafe.Pointer(&in.ExtraArgs)) //nolint:gosec // copied over from generated code, fuzzer should detect if we run into issues
358+
if in.ExtraArgs != nil {
359+
out.ExtraArgs = make([]Arg, len(in.ExtraArgs))
360+
for i := range in.ExtraArgs {
361+
if err := Convert_v1beta2_Arg_To_upstreamv1beta4_Arg(&(in.ExtraArgs)[i], &(out.ExtraArgs)[i], s); err != nil {
362+
return err
363+
}
364+
}
365+
}
330366
if in.ExtraEnvs == nil {
331367
out.ExtraEnvs = nil
332368
} else {
@@ -337,7 +373,14 @@ func Convert_v1beta2_ControllerManager_To_upstreamv1beta4_ControlPlaneComponent(
337373

338374
func Convert_v1beta2_Scheduler_To_upstreamv1beta4_ControlPlaneComponent(in *bootstrapv1.Scheduler, out *ControlPlaneComponent, s apimachineryconversion.Scope) error {
339375
// Following fields require a custom conversions.
340-
out.ExtraArgs = *(*[]Arg)(unsafe.Pointer(&in.ExtraArgs)) //nolint:gosec // copied over from generated code, fuzzer should detect if we run into issues
376+
if in.ExtraArgs != nil {
377+
out.ExtraArgs = make([]Arg, len(in.ExtraArgs))
378+
for i := range in.ExtraArgs {
379+
if err := Convert_v1beta2_Arg_To_upstreamv1beta4_Arg(&(in.ExtraArgs)[i], &(out.ExtraArgs)[i], s); err != nil {
380+
return err
381+
}
382+
}
383+
}
341384
if in.ExtraEnvs == nil {
342385
out.ExtraEnvs = nil
343386
} else {

0 commit comments

Comments
 (0)