배포 전 YAML 버그 잡는 toolchain
yamllint — 스타일 + 정확성
yamllint 가 표준 YAML linter. 들여쓰기 drift, trailing whitespace, 줄 길이, syntax error, 혼합 quote 스타일, 흔한 함정 잡음. 리포 루트의 .yamllint 로 설정. CI 에서 실행; 에러에 빌드 실패시켜.
Schema validation — 같은 JSON Schema, YAML 에 적용
YAML 이 JSON 과 같은 데이터 모델로 파싱, 그래서 JSON Schema 가 YAML 검증, 변경 없이. 도구: check-jsonschema, ajv (YAML loader 플러그인), kubeconform (Kubernetes 전용).
도구별 validator
- kubeval / kubeconform — Kubernetes manifest 를 공식 OpenAPI schema 로 검증.
- actionlint — GitHub Actions workflow 파일.
uses:오타, 정의 안 된 env var, 누락된checkout단계 잡음. - docker compose config —
compose.yaml검증과 정규화, anchor 확장 포함. - helm lint — Helm chart YAML.
원칙: YAML 이 파스 시 관대하고 배포 시 가혹. 수정은 검증을 왼쪽으로 shift — 클러스터가 아니라 pre-commit 에서 lint 와 schema 체크.
actionlint 30 초 설정이 로컬에서 잡힌 깨진 workflow 와 깨진 main 브랜치 차이.