3 Commits

Author SHA1 Message Date
Riccardo Schirone 111a6cd995 Validate rendered cloud-init templates against official schema (#63)
* Validate rendered cloud-init templates against official schema

Add jsonschema dev dependency and two new tests that render the Jinja2
cloud-init template (with and without Tailscale) then validate the
output against canonical/cloud-init's JSON schema. Tests skip gracefully
when the network is unavailable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Pin cloud-init schema to 22.4.2 and load from local test data

Replace the network-fetched schema (from cloud-init main) with a local
copy pinned to version 22.4.2 — the oldest cloud-init shipped by any
currently supported DigitalOcean image (Debian 12 bookworm). This
addresses review feedback to avoid validating against a schema newer
than what target distros actually support, and removes the network
dependency so tests work offline.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 17:03:16 +02:00
dm 2bf36e2304 Fix Docker APT source to work with both Ubuntu and Debian images (#59)
The cloud-init template hardcoded the Docker APT repo URL for Ubuntu,
which breaks on Debian images (e.g. Debian 13 "trixie"). Replace the
static apt.sources block with a runcmd script that detects the distro
via /etc/os-release and configures the correct Docker repo dynamically.
Also uses dpkg --print-architecture instead of hardcoding amd64.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:33:11 +02:00
Riccardo Schirone 0efeea52bb Add Jinja2 template validation test and pre-commit hook (#45)
* Remove escaped chars in comments

* Add Jinja2 template validation test and pre-commit hook

Catch template syntax errors early with a unit test that parses and
renders the default cloud-init template, and a pre-commit hook that
validates all templates in dropkit/templates/ on change.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:23:39 +01:00