Kubernetes получает лучший Yaml

Язык сериализации данных, используемый для развертывания и запуска Kubernetes, получил капитальный ремонт.

Предстоящий 1.34 выпуск Kubernetes может поступать с Kyaml, строгим подмножеством форматированного YAML, особенно для пользователей Kubernetes.

«Yaml — это язык программирования Kubernetes», — отметил Найджел Дуглас, глава отдела по связям с разработчиками в Cloudsmith, облачной службе управления нативными пакетами, в интервью TNS.

Тем не менее, многие пользователи чувствуют себя разочарованными из-за ряда дизайнерских причудликов в YAML, которые вызывают дополнительную работу и дополнительную отладку (даже несмотря на то, что сам создатель работает над тем, чтобы сделать YAML полноценным языком программирования).

Решение проблем Ямла? Добавьте в щепотку JSON.

Пейджинг доктор Нулл

YAML используется по всей экосистеме Kubernetes: для создания сетевой политики, для написания манифеста развертывания или для файлов развертывания руля.

Одна проблема: Yaml плохо переваривает белые пространства. В частности, когда пользователи поставляются с вложенными инструкциями, они должны уделять пристальное внимание количеству используемых углублений. Форматирование — это утомительное упражнение для облачного воина, но, например, наличие неправильного количества идентификаторов в коде может сбросить руль.

Аналогичным образом, дополнительные цитаты в YAML привели к неоднозначности, которая всегда опасна для компьютера. Задача с цитатами удачно проиллюстрирована с помощью «Проблема Норвегии», в которой неспособность инкапсулировать двухбуквенную страну Сокралением с набором цитат может сбить анализатор в поисках зарезервированных ключевых слов, таких как «нет» для Норвегии.

Или, в другом случае, last_name = null для тех, кто действительно по имени Ричард Нулл.

Как многие отмечали, JSON также можно использовать вместо YAML, хотя он поставляется с собственными ограничениями в среде Kubernetes: без поддержки комментариев и строгой приверженности следствию запятых и цитируемых ключей.

Еще один язык разметки

«Самая разочаровывающая часть YAML — это то, что это не должно быть так плохо. Yaml — очень широкая спецификация. Внутри эта спецификация является разумной грамматикой, которая будет выпущена», — заявляет предложение Kubernetes KEP 5295.

Kyaml — это эта спецификация, по крайней мере, для пользователей Kubernetes. Кьямл «построен так, как это, как и вполне совместим с существующим дизайном вокруг объектов Kubernetes», сказал Дуглас.

Kyaml — это строгая подмножество YAML. Все файлы KAYML также являются действительными YAML, и их можно использовать для написания манифестов и диаграмм шлеров, без каких -либо дополнительных флагов для K8s.

В случае включения в Kubernetes 1.34 (все еще пребываемое), Kyaml будет работать с командной строкой Kubectl Kubernetes, которая будет выходить в Kyaml с специальным флагом (то есть kubectl get -o kyaml).

Вот дополнительные правила для Kyaml.

  • Двойные цитаты-это строки стоимости.
  • Ключи не подвергаются катированию, если не потенциально двусмысленные.
  • Сопоставления (ассоциативные массивы) Используйте скоб {}.
  • Списки используют скобки []Полем

Эти правила имитируют JSON, хотя, в отличие от JSON, Kyaml поддерживает комментарии и следующий запятой и не нуждается в цитируемых ключах.

Кроме того, Kyaml не чувствителен к белому пространству.

Вот образец, предоставленная предложением:

Но я все еще ненавижу это

Как и в любом модифицированном формате данных, изменения будут горячо оспариваны. Разработчики ожидают этого.

«Синтаксис всегда был магнитом для аргументов в нашей отрасли. Мы ожидаем, что это не будет исключением. Разумные люди не согласятся с нашим выбором, что в порядке, но мы должны придерживаться твердого мнения по этому поводу», — предупредили разработчики в файле Readme, первоначально автором которого является Тим Хокин.

И реакции уже входят.

«Это лучше, чем JSON, и я понимаю, почему это лучше, чем Yaml, но я все еще ненавижу это», — написал один пользователь на Reddit.

Быстрый поиск показал, что, по крайней мере, одна специфическая для программирования реализация Kyaml была создана для языка программирования GO.

Были приняты другие подходы, в том числе урезанный строгий, хотя у Кьямла есть быстрый трек в новой версии Kubernetes. Давайте посмотрим, где еще это можно использовать.

Ожидается, что Kubernetes 1.34 будет выпущен в конце августа.

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Joab Jackson является старшим редактором нового стека, охватывающего облачные нативные вычисления и системы системы. Он сообщил об инфраструктуре и развитии IT более 25 лет, в том числе в IDG и государственных компьютерных новостях. До этого он … читал больше от Джоаба Джексона

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *