kubernetes/pkg/util
Kubernetes Submit Queue bda57b8fb6 Merge pull request #31353 from juanvallejo/jvallejo_fix-duplicate-errors-kubectl-set-env
Automatic merge from submit-queue

fix duplicate validation/field/errors

**Release note**:

``` release-note
release-note-none
```

Related PR: https://github.com/kubernetes/kubernetes/pull/30313

PR #30313 fixed duplicate errors for invalid aggregate errors in
https://github.com/kubernetes/kubernetes/blob/master/pkg/kubectl/cmd/util/helpers.go

However, duplicate aggregate errors that went through
https://github.com/kubernetes/kubernetes/blob/master/pkg/util/validation/field/errors.go
were not affected by that patch.

This patch adds duplicate aggregate error checking to
`pkg/util/validation/field/errors.go`
##### Before

`$ kubectl set env rc/idling-echo-1 test-abc=1234`

```
error: ReplicationController "idling-echo-1" is invalid:
[spec.template.spec.containers[0].env[0].name: Invalid value:
"test-abc": must be a C identifier (matching regex
[A-Za-z_][A-Za-z0-9_]*): e.g. "my_name" or "MyName",
spec.template.spec.containers[1].env[0].name: Invalid value: "test-abc":
must be a C identifier (matching regex [A-Za-z_][A-Za-z0-9_]*): e.g.
"my_name" or "MyName", spec.template.spec.containers[0].env[0].name:
Invalid value: "test-abc": must be a C identifier (matching regex
[A-Za-z_][A-Za-z0-9_]*): e.g. "my_name" or "MyName",
spec.template.spec.containers[1].env[0].name: Invalid value: "test-abc":
must be a C identifier (matching regex [A-Za-z_][A-Za-z0-9_]*): e.g.
"my_name" or "MyName"]
```

`$ kubectl set env rc/node-1 test-abc=1234`

```
error: ReplicationController "idling-echo-1" is invalid:
[spec.template.spec.containers[0].env[0].name: Invalid value:
"test-abc": must be a C identifier (matching regex
[A-Za-z_][A-Za-z0-9_]*): e.g. "my_name" or "MyName",
spec.template.spec.containers[1].env[0].name: Invalid value: "test-abc":
must be a C identifier (matching regex [A-Za-z_][A-Za-z0-9_]*): e.g.
"my_name" or "MyName"]
```
##### After

`$ kubectl set env rc/idling-echo-1 test-abc=1234`

```
error: ReplicationController "idling-echo-1" is invalid:
[spec.template.spec.containers[0].env[0].name: Invalid value:
"test-abc": must be a C identifier (matching regex
[A-Za-z_][A-Za-z0-9_]*): e.g. "my_name" or "MyName",
spec.template.spec.containers[1].env[0].name: Invalid value: "test-abc":
must be a C identifier (matching regex [A-Za-z_][A-Za-z0-9_]*): e.g.
"my_name" or "MyName"]
```

`$ kubectl set env rc/node-1 test-abc=1234`

```
error: ReplicationController "node-1" is invalid:
spec.template.spec.containers[0].env[0].name: Invalid value: "test-abc":
must be a C identifier (matching regex [A-Za-z_][A-Za-z0-9_]*): e.g.
"my_name" or "MyName"
```
2016-12-10 14:57:43 -08:00
..
async autogenerated 2016-10-21 17:32:32 -07:00
bandwidth autogenerated 2016-10-21 17:32:32 -07:00
cache autogenerated 2016-10-21 17:32:32 -07:00
cert join client CA bundles into the accept path for genericapiserver 2016-12-06 09:56:13 -05:00
chmod autogenerated 2016-10-21 17:32:32 -07:00
chown autogenerated 2016-10-21 17:32:32 -07:00
clock autogenerated 2016-10-21 17:32:32 -07:00
codeinspector autogenerated 2016-10-21 17:32:32 -07:00
config generated: refactor 2016-11-23 22:30:47 -06:00
configz autogenerated 2016-10-21 17:32:32 -07:00
crlf autogenerated 2016-10-21 17:32:32 -07:00
dbus autogenerated 2016-10-21 17:32:32 -07:00
diff autogenerated 2016-10-21 17:32:32 -07:00
ebtables generated: refactor 2016-11-23 22:30:47 -06:00
env autogenerated 2016-10-21 17:32:32 -07:00
errors autogenerated 2016-10-21 17:32:32 -07:00
exec autogenerated 2016-10-21 17:32:32 -07:00
flag autogenerated 2016-10-21 17:32:32 -07:00
flock autogenerated 2016-10-21 17:32:32 -07:00
flowcontrol Add a multi-threaded test for ratelimiter 2016-12-07 16:40:37 -05:00
flushwriter autogenerated 2016-10-21 17:32:32 -07:00
framer autogenerated 2016-10-21 17:32:32 -07:00
goroutinemap autogenerated 2016-10-21 17:32:32 -07:00
hash autogenerated 2016-10-21 17:32:32 -07:00
homedir Added support for HOME environment variable on Windows 2016-10-27 20:50:07 -04:00
httpstream refactor: generated 2016-12-03 19:10:46 -05:00
initsystem autogenerated 2016-10-21 17:32:32 -07:00
integer autogenerated 2016-10-21 17:32:32 -07:00
interrupt autogenerated 2016-10-21 17:32:32 -07:00
intstr kubectl: add create pdb subcommand 2016-12-02 18:42:25 +01:00
io run hack/update-all.sh 2016-11-23 15:53:09 -08:00
iptables Merge pull request #37594 from thockin/fix-old-iptables-mark-extra-zeroes 2016-12-06 17:41:31 -08:00
json autogenerated 2016-10-21 17:32:32 -07:00
jsonpath autogenerated 2016-10-21 17:32:32 -07:00
keymutex autogenerated 2016-10-21 17:32:32 -07:00
labels refactor: generated 2016-12-03 19:10:46 -05:00
limitwriter autogenerated 2016-10-21 17:32:32 -07:00
logs autogenerated 2016-10-21 17:32:32 -07:00
maps autogenerated 2016-10-21 17:32:32 -07:00
metrics autogenerated 2016-10-21 17:32:32 -07:00
mount Fix unmountDevice issue caused by shared mount in GCI 2016-12-08 13:34:45 -08:00
net Merge pull request #35956 from xiangpengzhao/add-port-split-testcase 2016-12-08 19:51:54 -08:00
netsh Fixed copyright headers. 2016-11-07 09:18:07 +00:00
node Use PatchStatus to update node status in kubelet. 2016-12-08 17:13:59 -08:00
oom Add some sleep between each retry to set container's oom scroe 2016-12-01 19:28:44 +08:00
parsers autogenerated 2016-10-21 17:32:32 -07:00
procfs fix tests by declaring testdata 2016-10-21 17:32:32 -07:00
proxy autogenerated 2016-10-21 17:32:32 -07:00
rand Remove vowels from rand.String, to avoid 'bad words' 2016-11-23 21:53:25 -08:00
resourcecontainer autogenerated 2016-10-21 17:32:32 -07:00
rlimit autogenerated 2016-10-21 17:32:32 -07:00
runtime autogenerated 2016-10-21 17:32:32 -07:00
selinux Refactor pkg/util/selinux 2016-10-26 09:38:03 -04:00
sets bazel: implement set-gen as a bazel genrule 2016-10-27 15:16:30 -07:00
slice autogenerated 2016-10-21 17:32:32 -07:00
strategicpatch Revert "support patch list of primitives" 2016-11-22 21:06:36 -08:00
strings Correct the article in generated documents 2016-10-31 09:46:29 +10:00
sysctl generated: refactor 2016-11-23 22:30:47 -06:00
system run hack/update-all.sh 2016-11-23 15:53:09 -08:00
taints add a configuration for kubelet to register as a node with taints 2016-12-06 10:32:54 -08:00
term autogenerated 2016-10-21 17:32:32 -07:00
testing Replica set/rc controller changes for Conditions 2016-11-02 10:30:09 +01:00
threading autogenerated 2016-10-21 17:32:32 -07:00
uuid autogenerated 2016-10-21 17:32:32 -07:00
validation Merge pull request #31353 from juanvallejo/jvallejo_fix-duplicate-errors-kubectl-set-env 2016-12-10 14:57:43 -08:00
wait Expand documention for wait package 2016-11-04 09:31:26 -07:00
workqueue Re-use juju ratelimit 2016-12-07 10:32:47 -05:00
wsstream autogenerated 2016-10-21 17:32:32 -07:00
yaml autogenerated 2016-10-21 17:32:32 -07:00
BUILD autogenerated 2016-10-21 17:32:32 -07:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
template.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
template_test.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
trace.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
trie.go Make Kubernetes OpenAPI operation IDs unique 2016-10-12 14:54:12 -07:00
umask.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
umask_windows.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
util.go kubelet: storage: don't hang kubelet on unresponsive nfs 2016-10-18 08:45:40 -05:00
util_test.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00