---
# yamllint configuration for Ansible project
# Aligned with .ansible-lint skip-list rationale.
# 'yaml[line-length]' is advisory: Jinja2 templates and Traefik labels
# routinely exceed 80 chars and wrapping them reduces readability.
#
# Rules below also satisfy ansible-lint's required yamllint constraints:
#   comments.min-spaces-from-content: 1
#   comments-indentation: false
#   braces.max-spaces-inside: 1
#   octal-values.forbid-implicit-octal: true
#   octal-values.forbid-explicit-octal: true

extends: default

rules:
  # Allow up to 160 chars — matches the rationale in .ansible-lint:
  # "Many legitimate cases exceed 160 chars" (Traefik labels, Jinja2 expressions)
  line-length:
    max: 160
    level: warning

  # Docker Compose / Swarm stack files do not use YAML document start markers.
  # Ansible playbooks do. Make this a warning rather than an error so stack
  # templates are not penalised while playbooks are still encouraged to use ---.
  document-start:
    level: warning

  # Required by ansible-lint compatibility rules:
  comments:
    min-spaces-from-content: 1
  comments-indentation: false
  braces:
    max-spaces-inside: 1
  octal-values:
    forbid-implicit-octal: true
    forbid-explicit-octal: true
