배포 전 YAML 버그 잡는 toolchain
yamllint — 스타일 + 정확성
yamllint 가 사실상 표준 YAML linter 야. 들여쓰기가 흐트러진 곳, 줄 끝 공백, 너무 긴 줄, 문법 오류, 따옴표 스타일이 뒤섞인 곳 같은 흔한 함정을 잡아줘. 설정은 리포 루트의 .yamllint 에 두고. CI 에서 돌리면서 에러가 나면 빌드를 세워버려.
Schema validation — 같은 JSON Schema, YAML 에 적용
YAML 은 JSON 과 똑같은 데이터 모델로 파싱돼. 그래서 JSON Schema 로 YAML 을 그대로 검증할 수 있어. 고칠 것도 없어. 쓸 도구는 check-jsonschema, ajv (YAML loader 플러그인을 얹어서), Kubernetes 전용이면 kubeconform 이 있어.
도구별 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 은 파싱할 땐 한없이 너그럽고 배포할 땐 가차 없어. 그러니 검증을 앞으로 당겨. 클러스터에서 터뜨리지 말고 pre-commit 에서 lint 와 schema 검사를 돌려.
actionlint 를 붙이는 데 드는 30 초가, 로컬에서 잡힌 깨진 workflow 와 깨진 main 브랜치를 가르는 차이야.