Это просьба о помощи?
нет
Какие ключевые слова вы искали в выпусках Kubernetes перед тем, как подать это?
Это ОТЧЕТ ОБ ОШИБКЕ или ЗАПРОС О ФУНКЦИОНИРОВАНИИ? (Выбери один):
Версия Kubernetes (используйте kubectl version
): 1.3.6
Окружающая среда :
uname -a
): Linux kash-api-4080102595-t21vs 3.16.0-4-amd64 # 1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 LinuxЧто произошло : при создании секретов / конфигурационных карт кажется довольно случайным, когда ожидается, что значения будут заключены в кавычки или нет. Иногда это числа, иногда - строка, и не всегда из-за того, что они начинаются с нестандартных символов.
Мы используем NodeJS для генерации наших конфигураций, и (что удивительно) ни одна из библиотек не поддерживает принудительные кавычки вокруг значений и генерирует действительный YAML для всех других наших вариантов использования. Мы прибегаем к некоторой пост-сгенерированной 'sed' / magic /, чтобы добавить кавычки, но это не идеально.
Возможно ли, что проверка YAML, которую использует kubectl, является слишком строгой / нарушенной, когда требуется цитирование значений или нет?
Что вы ожидали : не требовать добавления кавычек вручную после использования действующего генератора YAML
Как это воспроизвести (максимально минимально и точно):
вот значение configmap, которое требует цитирования
dbconnectiontimeout: '60'
или
remoteip: 'какой-то-хост-здесь'
Что еще нам нужно знать :
@theothermike привет, это похоже на известную проблему и, похоже, нет реального решения для нее. т.е. вы должны указать тип правильно .. Я бы посоветовал посмотреть обсуждение здесь https://github.com/kubernetes/kubernetes/issues/2763 Множество хороших комментариев от @liggitt Это была еще одна аналогичная проблема, о которой сообщалось и закрыто https: / /github.com/kubernetes/kubernetes/issues/28974 Если вас это @liggitt имеет смысл?
Я могу использовать числа без кавычек, добавляя к значениям префикс !!integer
. Но !!int
не работает. (Используя Kubernetes 1.8)
Бывший:
apiVersion: v1
kind: ConfigMap
metadata:
name: identity-config
data:
TC_HOST: 192.168.1.10
TC_PORT: !!integer 8080
Согласитесь со spzala, тип нужно указывать правильно в виде строки. Yaml требует, чтобы в кавычки были только числовые и логические значения (альфа-значения считаются строками), но вы можете заключить в кавычки все значения данных configmap, если это упрощает