Skip to content

Commit 46bc323

Browse files
authored
[kubectl-plugin] Validate empty resouce quantity strings (#3821)
Signed-off-by: win5923 <[email protected]>
1 parent ea0b9c5 commit 46bc323

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

kubectl-plugin/pkg/cmd/create/create_cluster.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -205,11 +205,10 @@ func (options *CreateClusterOptions) Validate(cmd *cobra.Command) error {
205205
}
206206

207207
for name, value := range resourceFields {
208-
if (name == "head-ephemeral-storage" || name == "worker-ephemeral-storage") && value == "" {
209-
continue
210-
}
211-
if err := util.ValidateResourceQuantity(value, name); err != nil {
212-
return fmt.Errorf("%w", err)
208+
if value != "" || cmd.Flags().Changed(name) {
209+
if err := util.ValidateResourceQuantity(value, name); err != nil {
210+
return fmt.Errorf("%w", err)
211+
}
213212
}
214213
}
215214
}

kubectl-plugin/pkg/cmd/job/job_submit.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,8 +300,10 @@ func (options *SubmitJobOptions) Validate(cmd *cobra.Command) error {
300300
}
301301

302302
for name, value := range resourceFields {
303-
if err := util.ValidateResourceQuantity(value, name); err != nil {
304-
return fmt.Errorf("%w", err)
303+
if value != "" || cmd.Flags().Changed(name) {
304+
if err := util.ValidateResourceQuantity(value, name); err != nil {
305+
return fmt.Errorf("%w", err)
306+
}
305307
}
306308
}
307309

kubectl-plugin/pkg/util/validation.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ import (
99
const tpuDocURL = "https://cloud.google.com/kubernetes-engine/docs/concepts/plan-tpus#availability"
1010

1111
func ValidateResourceQuantity(value string, name string) error {
12-
if value == "" {
13-
return nil
14-
}
15-
1612
q, err := resource.ParseQuantity(value)
1713
if err != nil {
1814
return fmt.Errorf("%s is not a valid resource quantity: %w", name, err)

kubectl-plugin/pkg/util/validation_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ func TestValidateResourceQuantity(t *testing.T) {
1616
{"aaa", "cpu", true},
1717
{"10Gi", "memory", false},
1818
{"bbb", "memory", true},
19-
{"", "memory", false},
19+
{"", "memory", true},
20+
{"", "ephemeral-storage", true},
21+
{"100Gi", "head-ephemeral-storage", false},
22+
{"-100Gi", "worker-ephemeral-storage", true},
2023
}
2124

2225
for _, tt := range tests {

0 commit comments

Comments
 (0)