Kubernetes: Цитируемый YAML требуется, когда он не нужен

Созданный на 14 сент. 2016  ·  3Комментарии  ·  Источник: kubernetes/kubernetes

Это просьба о помощи?

нет

Какие ключевые слова вы искали в выпусках Kubernetes перед тем, как подать это?

yaml цитаты цитаты

Это ОТЧЕТ ОБ ОШИБКЕ или ЗАПРОС О ФУНКЦИОНИРОВАНИИ? (Выбери один):

Версия Kubernetes (используйте kubectl version ): 1.3.6

Окружающая среда :

  • Облачный провайдер или конфигурация оборудования : GCE
  • ОС (например, из / etc / os-release): Alpine Linux 3.4.0
  • Ядро (например, 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
  • Установить инструменты : apk
  • Другие :

Что произошло : при создании секретов / конфигурационных карт кажется довольно случайным, когда ожидается, что значения будут заключены в кавычки или нет. Иногда это числа, иногда - строка, и не всегда из-за того, что они начинаются с нестандартных символов.

Мы используем NodeJS для генерации наших конфигураций, и (что удивительно) ни одна из библиотек не поддерживает принудительные кавычки вокруг значений и генерирует действительный YAML для всех других наших вариантов использования. Мы прибегаем к некоторой пост-сгенерированной 'sed' / magic /, чтобы добавить кавычки, но это не идеально.

Возможно ли, что проверка YAML, которую использует kubectl, является слишком строгой / нарушенной, когда требуется цитирование значений или нет?

Что вы ожидали : не требовать добавления кавычек вручную после использования действующего генератора YAML

Как это воспроизвести (максимально минимально и точно):
вот значение configmap, которое требует цитирования

dbconnectiontimeout: '60'

или

remoteip: 'какой-то-хост-здесь'

Что еще нам нужно знать :

arekubectl siapi-machinery

Все 3 Комментарий

@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, если это упрощает

Была ли эта страница полезной?
0 / 5 - 0 рейтинги