Goal
Track the cloud-config surface emitted by Cluster API's kubeadm worker-node template and make support status explicit. Butane Init must reject unsupported stanzas rather than silently discard them.
Authoritative source: Cluster API v1.11.1 worker node template .
Coverage
Cloud-config stanza
Cluster API usage
Status
Expected Butane implementation
write_files
Required for the kubeadm join config, scripts, certificates, and extra files
Unsupported
storage.files
runcmd
Required to run pre-kubeadm commands, kubeadm join, the sentinel command, and post-kubeadm commands
Unsupported
Generated scripts and systemd oneshot units
users
Optional extra worker users
Partial
passwd.users; currently supports name, passwd, gecos, homedir, shell, and ssh_authorized_keys
bootcmd
Optional early boot commands
Unsupported
Generated scripts and systemd oneshot units
ntp
Optional NTP configuration
Unsupported
Flatcar time-sync configuration/files and units
disk_setup
Optional partition-table setup
Unsupported
Butane storage configuration where semantics can be preserved
fs_setup
Optional filesystem setup
Unsupported
Butane storage.filesystems
mounts
Optional mounts
Unsupported
Butane filesystems and/or systemd mount units
Nested users work
Priority
Complete users group semantics.
Support write_files.
Support runcmd sufficiently to boot and join a worker.
Prove the minimum worker path with the QEMU CI test tracked in Run Flatcar QEMU provisioning test in CI #5 .
Add optional bootcmd, ntp, disk_setup, fs_setup, and mounts based on actual Cluster API fixtures.
Completion criteria
README contains an up-to-date support matrix.
Each supported stanza has positive, invalid-input, and unsupported-field tests.
Unsupported stanzas produce explicit path-aware errors.
The default Cluster API worker cloud-config transpiles without silently changing semantics.
Goal
Track the cloud-config surface emitted by Cluster API's kubeadm worker-node template and make support status explicit. Butane Init must reject unsupported stanzas rather than silently discard them.
Authoritative source: Cluster API v1.11.1 worker node template.
Coverage
write_filesstorage.filesruncmduserspasswd.users; currently supportsname,passwd,gecos,homedir,shell, andssh_authorized_keysbootcmdntpdisk_setupfs_setupstorage.filesystemsmountsNested users work
users[].groupsandusers[].primary_groupare tracked in Support Cluster API supplementary and primary groups #4.inactive,lock_passwd, andsudoremain unsupported and must continue to fail conversion until separately designed.Priority
usersgroup semantics.write_files.runcmdsufficiently to boot and join a worker.bootcmd,ntp,disk_setup,fs_setup, andmountsbased on actual Cluster API fixtures.Completion criteria