Как пользоваться: Валидатор YAML
- Вставьте YAML или откройте файл
.yml/.yaml. - Ошибки показывают строку, столбец и указатель на точное место.
- Просмотрите предупреждения линтера о табах, пробелах в конце строк и ловушках YAML 1.1.
- Скопируйте отформатированный YAML или его эквивалент в JSON.
Почему YAML так легко ломается
YAML использует отступы для структуры, поэтому один лишний или пропущенный пробел меняет смысл или делает файл невалидным. Самые частые ошибки:
| Ошибка | Причина |
|---|---|
| bad indentation of a mapping entry | Ключ имеет другой отступ, чем его соседи на том же уровне |
| found a tab character | YAML запрещает табуляцию для отступов — используйте пробелы |
| duplicated mapping key | Один и тот же ключ встречается дважды в одном объекте; большинство парсеров молча сохраняют последнее значение |
| incomplete explicit mapping pair / unexpected end | Незакрытая кавычка, скобка или двоеточие внутри строки без кавычек |
| end of the stream or a document separator is expected | Содержимое с неверным отступом после списка или блока |
Ловушки YAML 1.1 и 1.2
Многие инструменты (PyYAML, более старые библиотеки для Ruby и Go) по-прежнему следуют YAML 1.1, где yes, no, on, off являются булевыми значениями, а 012 — восьмеричным числом. Это известная «проблема Норвегии»: код страны NO превращается в false. YAML 1.2 воспринимает такие значения как строки. Линтер отмечает подобные значения, чтобы вы могли взять их в кавычки и получить одинаковый результат везде.
Многодокументные файлы
Манифесты Kubernetes часто объединяют несколько ресурсов, разделённых ---. Каждый документ проверяется и выводится в JSON-результате в виде массива.
Проверка смысла, а не только синтаксиса
Корректный YAML может описывать неверную конфигурацию. Для проверки структуры по схеме преобразуйте файл в JSON и используйте валидатор JSON Schema; для спецификаций API подойдёт валидатор OpenAPI. Создавать новые файлы помогут генератор Docker Compose и генератор GitHub Actions, а конвертировать форматы можно с помощью YAML в JSON.
Также ищут как: yamllint онлайн, валидатор yaml для kubernetes.
Инструменты, которые хорошо сочетаются с Валидатор YAML
- JSON в YAML — Вставьте JSON и получите аккуратный YAML для манифестов Kubernetes, Docker Compose, GitHub Actions или любого конфигурационного файла.
- Генератор YAML для Kubernetes — Укажите имя приложения, образ и порт, и вы получите готовый к продакшену YAML для Kubernetes: Deployment с пробами, лимитами ресурсов и защищённым security context, а также выбранные вами Service, Ingress с TLS, ConfigMap, Secret и HorizontalPodAutoscaler — всё в одном файле, готовом для kubectl apply.
- Генератор systemd service — Запускайте приложение как полноценный сервис Linux, который стартует при загрузке и перезапускается после сбоя.
- GitLab CI генератор — Выберите стек и получите рабочий .gitlab-ci.yml: установка с кешированием, джобы линтинга и тестов, сборка с артефактами, Docker-образ, который отправляется в реестр GitLab, или деплой в GitLab Pages.