scaleway/compute-instance v0.7.0
scaleway/compute-instance gains a new profile input ("rclone" or "docker", defaults to "rclone") that selects between two cloud-init provisioning shapes:
profile = "rclone"(default, matches prior behavior): installsrcloneandneovim, and writes/root/.config/rclone/rclone.conffromvar.bucketsexactly as before.profile = "docker": installs Docker CE (official apt repo/key bootstrap) plusdocker-ce-cli,containerd.io, anddocker-compose-plugin, and enables + starts thedockerservice.
build-essential, pkg-config, and libssl-dev are removed from the cloud-init package list entirely, under both profiles — they were only ever installed to support mise's build-toolchain use case, not rclone, and aren't needed by either new profile. Any existing instance relying on those packages being present will lose them on its next apply.
buckets now has a validation guard: it's rejected (non-empty) when profile != "rclone", since bucket config would otherwise silently do nothing.
Full design rationale in ADR-0087.
Existing callers are unaffected by the interface change (new input defaults to "rclone"), but — as with every prior change to this module's cloud-init content — any existing instance gets replaced on its next apply (ADR-0084's force-replace-on-cloud-init-change lifecycle).
Test plan
-
terraform fmt -checkclean -
terraform init -backend=false && terraform validateclean -
Rendered both profiles via a scratch config and confirmed correct package lists /
write_files/runcmdbranching, and thatbuckets+profile = "docker"is rejected by the new validation
🤖 Generated with Claude Code