YAML

YAML Batch Key Extractor

Извлечь значение одного пути сразу из нескольких YAML-документов в таблицу.

Как это работает

Десять Kubernetes-манифестов, и нужно быстро понять, какой image указан в каждом deployment, не открывая файлы по одному и не листая глазами в поисках нужной строки. YAML Batch Key Extractor online берёт путь к полю, например image или metadata.name, и вытаскивает его значение сразу из всех вставленных документов в аккуратную таблицу.

Путь указывается через точку, ровно как в dot-нотации после flatten, поддерживаются вложенные поля любой глубины, а если в конкретном документе такого поля не оказалось, в таблице просто будет пусто, а не ошибка, ломающая всю выборку из-за одного нестандартного манифеста.

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

Частые вопросы

Как указать путь до вложенного поля, например image контейнера?

Через точку между уровнями вложенности, например spec.template.spec.containers.0.image для доступа к первому элементу массива containers, нумерация массивов идёт с нуля, как в большинстве языков программирования.

Что если поле отсутствует в одном из документов?

Соответствующая ячейка результирующей таблицы останется пустой, вся остальная выборка по другим документам при этом не прерывается и не ломается из-за одного нетипичного файла.

Как разделять несколько YAML-документов во вводе?

Стандартным разделителем YAML — строкой из трёх дефисов на отдельной строке, тем же самым, что используют Kubernetes-манифесты и другие batch-инструменты этого сайта.

Можно ли извлечь сразу несколько разных полей одновременно?

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