Yeah but I really really don't like tools doing black magic to be honest, I'd like some documentation what it does. And if it is just cloud-init, no big deal, I already know more than I'd ever wanted about this particular piece of annoyance from wrestling with AWS, just tell me what exactly the Pi userland expects me to hand to cloud-init...

Thanks anyway for digging into the source, really appreciated!

It feels odd to complain about "tools doing black magic" when the new way is "cloud init, a tool used by a ton of infra platforms" and the old way is "drop a file in this directory and it will somehow get slurped into the right space at the right time".

Isn't cloud init just slurping its own config file, then generating the "real" config files and slurping those into the right spaces?

To me, "copies a file named wpa_supplicant.conf from /boot to /etc on first init" is simpler than "parses some yaml, the generates /etc/wpa_supplicant".

Maybe I'd find it worthwhile if I had encountered cloud init years ago before I invested in learning the other 900 linux networking configuration tools, but now it just feels like a case of XKCD 927 (+1 competing standards). If cloud init is even better, it definitely doesn't seem 10x better to be worth the change.

Cloud init is a tool with documentation and a file format for config, that’s used all over the place.

I’m not making the case that it’s better, just that it’s no more “black magic” than wpa_supplicant’s config file is, and it’s less magical than dropping a wpa_supplicant file into /boot and the raspberry pi doing a bespoke RPi-specific shuffle to move it into place.

Alas I don't know much more than that; I only remembered about the CLI bit in 1.x and went to check it was still there.

You may be able to build exactly what you want with the image generation tools, as it goes:

https://github.com/raspberrypi/rpi-image-gen

https://github.com/RPi-Distro/pi-gen

Customising the OS with pi-gen is not that bad. It's an idiosyncratic tool but it works; I've not used the newer rpi-image-gen stuff.