files/cloud-init/README.md
The files in this directory have STRICT FORMAT REQUIREMENTS that must not be changed by linters or automated formatting tools.
The first line of base.yml MUST be exactly:
#cloud-config
# cloud-config (space after #) - BREAKS CLOUD-INIT PARSING--- - NOT ALLOWED IN CLOUD-INITCloud-init's YAML parser expects the exact string #cloud-config as the first line. Any deviation causes:
See GitHub issue #14800 for full technical details.
These files are excluded from:
yamllint (.yamllint config)ansible-lint (.ansible-lint config)This prevents automated tools from "fixing" the format and breaking deployments.
The cloud-init files use Jinja2 templating:
{{ ssh_port }} - Configured SSH port (typically 4160){{ lookup('file', '{{ SSH_keys.public }}') }} - SSH public key#cloud-config