想了解是否可以使用空白或空键创建配置映射。该值不是空的。
3842 次
1 回答
2
不,这是不可能的。虽然 YAML 语法允许将空字符串指定为键,但 Kubernetes 验证不会接受它:
$ cat test-cm.yaml
apiVersion: v1
data:
key1: value1
key2: value2
"": value3
kind: ConfigMap
metadata:
name: test-cm
$ kubectl apply -f test-cm.yaml
The ConfigMap "test-cm" is invalid: data[]: Invalid value: "": a valid config key must consist of alphanumeric characters, '-', '_' or '.' (e.g. 'key.name', or 'KEY_NAME', or 'key-name', regex used for validation is '[-._a-zA-Z0-9]+')
$
错误消息中打印的验证正则表达式[-._a-zA-Z0-9]+明确指出密钥长度可能不为零。
Kubernetes 也不能接受使用 null 键:
$ cat test-cm.yaml
apiVersion: v1
data:
key1: value1
key2: value2
?
: value3
kind: ConfigMap
metadata:
name: test-cm
$ kubectl apply -f test-cm.yaml
error: error converting YAML to JSON: Unsupported map key of type: %!s(<nil>), key: <nil>, value: "value3"
$
于 2019-01-18T08:47:56.427 回答