Можно ли создать конфигурационную карту типа array в Kubernetes

#kubernetes

#kubernetes

Вопрос:

Создает ли следующая конфигурация для ConfigMap файл test.json типа empty array или string []

 kind: ConfigMap
apiVersion: v1
metadata:
  name: myconfigmap
data:
  test.json: |-
    []
  

Преобразователь в JSON предлагает строку:

 {
    "kind": "ConfigMap",
    "apiVersion": "v1",
    "metadata": {
        "name": "myconfigmap"
    },
    "data": {
        "test.json": "[]"
    }
}
  

Моя цель — создать файл ConfigMap с пустым массивом.

Комментарии:

1. Каково ваше определение файла с пустым массивом? Что она содержит? Является ли файл двоичным или текстовым файлом? Каково представление пустого массива в файле?

2. Синтаксис Kubernetes позволяет ее создать, вы ее тестировали?

Ответ №1:

Конечно, вы можете создать любую строку, какую захотите, это просто должна быть строка. Чего вы не можете сделать, так это test.json: [] того, что это массив. Тот факт, что ваша строка является допустимым JSON, не является чем-то, о чем K8s знает или заботится.

Комментарии:

1. Вы имеете в виду, что значение ключа должно быть строкой, но на самом деле это создает файл с пустым массивом?

2. Если вы имеете в виду, что монтируете это как том, содержимое строки является содержимым файла.

3. Более важный вопрос заключается в том, как приложение операционной системы обрабатывает пустой файл массива? CSV может быть файлом массива, где каждое поле является элементом массива. Следовательно, чтобы иметь 0 элементов CSV, все, что ему нужно, это пустой файл.

4. Там написано test.json , поэтому я надеюсь, что это «файл» в формате JSON 🙂

5. Это JSON, приложение для начала обработает этот файл как JSON с пустым массивом и обновит его с помощью k8 API. Теперь, если это действительно массив, его можно обновить с помощью PATCH . Но если это строка, то это проблема.