Можно ли создать карту конфигурации с пустым / пустым ключом? Если да, каким должно быть ожидаемое поведение в отношении стручков?

Хотите понять, возможно ли создать карту конфигурации с пустым или пустым ключом. Однако значение не пустое.

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"
$
Другие вопросы по тегам