Можно ли создать карту конфигурации с пустым / пустым ключом? Если да, каким должно быть ожидаемое поведение в отношении стручков?
Хотите понять, возможно ли создать карту конфигурации с пустым или пустым ключом. Однако значение не пустое.
1 ответ
Нет, это невозможно. Хотя синтаксис 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:
$ 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"
$