#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
. Но если это строка, то это проблема.