Проверка конфигураций

Сравнение YAMLОтделите изменения данных от правок текста

Сопоставляйте структуру потоков YAML 1.2 или просматривайте их исходный текст.

Сравнение YAML

До

После

Оба входа обрабатываются в этом браузере; содержимое не отправляется на сервер.

Пример: ["/0/metadata/time"]. /0 — первый документ; /0/ — его пустой ключ. Для ~ используйте ~0, для / — ~1. Поддеревья исключаются из структурных счётчиков и отчётов; индексы списков сохраняются. Текст не фильтруется.

YAML 1.2 core + явные теги timestamp/binary. Порядок ключей не учитывается; документы и списки сопоставляются по индексу. Целые и вещественные числа различаются. Временные метки сравниваются по записи, а не по моменту времени.

На сторону: 200 000 символов / 800 000 байт UTF-8; 100 документов, 50 000 развёрнутых узлов, глубина 100, суммарно 5 000 записей якорей/псевдонимов. До 5 000 изменений, 1 млн символов путей и 4 млн символов отчёта. Worker: 5 с. Текст: 500 мс, расстояние редактирования 2 000, 50 000 токенов.

Введите конфигурации или запустите сравнение.

Изменения

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

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

Зачем нужно сравнение YAML

Разные представления отвечают на разные вопросы

Не пропустить документы в потоке

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

Две стопки документов соединены по позиции; выделены изменённое значение и последний документ без пары.

Проверить комментарии отдельно

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

Одни и те же исходники ведут к дереву структуры и отдельному списку строк с выделенными правками комментария и порядка.

Задайте смысл проверки

Позиции, исключения и актуальность влияют на отчёт

01

Выровняйте порядок документов

Первый документ сравнивается с первым, второй со вторым. Пути начинаются с /0, /1 и далее. Вставка в середину сдвигает следующие пары. Поля kind, namespace и metadata.name не используются для автоматического поиска соответствий.

02

Укажите точные исключения

Нужен JSON-массив строк, например ["/0/metadata/time"]. Путь исключает узел вместе с потомками. Запишите / как ~1, а ~ как ~0; экранирование JSON позволяет передать перевод строки. /0 исключает первый документ целиком, /0/ — только его пустой ключ.

03

Выберите нужный отчёт

Структура экспортирует типизированные изменения JSON после исключений. Текст экспортирует нефильтрованные блоки, включая неизменённые. Любая правка сразу отключает устаревший экспорт. Автоматика ждёт 350 мс; вручную работает Ctrl/Cmd+Enter. Применённую замену можно отменить один раз.

Типы и позиции остаются явными

Сравнение не сводит значения к обычному JSON

Полный поток документов

Учитываются и явно пустые документы. Добавленный или удалённый документ имеет отдельную отметку. Списки сопоставляются по исходному индексу: вставка в начало может изменить несколько следующих позиций.

Точное сравнение чисел

Целые сохраняют все цифры в пределах длины токена. Десятичные вещественные числа сравниваются по коэффициенту и степени: 1.0 равно 1e0, но отличается от целого 1. Отрицательный вещественный ноль отличается от положительного; NaN считается равным NaN.

Фильтры работают до сопоставления

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

Описательный формат с типами

Скаляр хранит явный тип и строковое значение, сохраняя большие целые и бесконечности и NaN. Контейнеры содержат ключи или индексы. Экран, буфер обмена и загрузка используют один актуальный отчёт; применить его как патч нельзя.

Границы схемы и равенства

Что именно означает отсутствие изменений

Явное подмножество YAML 1.2
Используется YAML 1.2 core с явными timestamp и binary. Отклоняются директивы 1.1, нестроковые и составные ключи, дубликаты, неизвестные теги, set/omap/pairs и неподдерживаемые записи скаляров. YES и NO остаются строками. Не всякое корректное представление YAML поддерживается.
Псевдонимы и необязательное слияние
Псевдоним разрешается в ближайший предшествующий одноимённый якорь того же документа. Ссылки вперёд, между документами и циклы запрещены. Слияние изначально выключено; при включении первые источники имеют приоритет, явные ключи перекрывают их. Слияние поверхностное. << в кавычках или с явным строковым тегом — обычный ключ.
Временные метки по записи, binary по байтам
Явно помеченный timestamp сравнивается по исходной записи со всеми дробными цифрами и ранними годами. Календарная корректность и эквивалентность часовых поясов не проверяются: это не сравнение моментов времени. Binary требует канонический Base64 с дополнением, допускает пробельные символы YAML и сравнивается по декодированным байтам.
Исключение не скрывает секреты
Фильтры меняют только структурные счётчики и отчёты. Редакторы, предпросмотр замены и текстовые отчёты остаются полными, включая неизменённые блоки. Имена полей с паролями автоматически не распознаются.
Проверка без слияния и развёртывания
Нет сопоставления по идентификаторам, поиска перемещений в списках, трёхстороннего слияния, рендеринга Helm, импорта URL или серверной истории. Шаблоны Helm сначала обработайте отдельно. Структура игнорирует оформление; исходный текст сохраняет его.
Ограничения с явной ошибкой
На вход: 200 000 символов, 800 000 байт UTF-8, 100 документов, 50 000 развёрнутых узлов, глубина 100 и суммарно 5 000 записей якорей/псевдонимов. Также: 5 000 изменений, 1 млн символов путей с обеих сторон, 1 000 символов на числовой токен и 4 млн символов отчёта. Фильтры: 100 указателей и 20 000 символов. Worker останавливается через 5 с; текст дополнительно ограничен 500 мс, расстоянием редактирования 2 000 и 50 000 токенов. Ошибка запрещает экспорт вместо выдачи частичного результата. Работа с развёрнутыми скалярами и сформированный YAML ограничены 2 млн символов каждый.

Вопросы про сравнение YAML

Потоки, списки и результаты Helm

Почему разное оформление не даёт структурных изменений?

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

Сравниваются ли элементы списка по позиции?

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

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

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

Подходит ли сравнение для результата helm template?

Да, если результат укладывается в поддерживаемое подмножество YAML. Сначала отрендерите шаблон вне этой страницы. Ресурсы сопоставляются по порядку документов, а не по kind, namespace или metadata.name; перед проверкой выровняйте порядок.

Учитываются ли комментарии в структуре данных?

Нет. Комментарии видны в текстовом режиме вместе с пробелами, порядком ключей и окончаниями строк. Исключённые структурные пути не фильтруют текстовый отчёт, поэтому он может содержать весь исходник.

Не хватает сценария проверки?

Начать сравнение YAML

Сравнение YAML показывает изменения с сохранением типов. Затем просмотрите исходный текст и выберите отчёт, который хотите передать на проверку.

Отчёты исходного текста не фильтруются.