Status update, May 2023

Unfortunately I had to take a little leave for personal reasons, so this update will be rather small.

My main adventures last month were in Alpine packaging. My motivation was to set up a package repo for Anemos. Alpine’s apk is pretty great, but I found the workflow for maintaining a repository and updating individual packages automatically a bit lacking. There are a bunch of tools to help with repository management, but for all I can tell they all assume that you build the packages on the same machine that serves the repository, which strikes me as odd. Me lacking knowledge is an obvious candidate here, but here is how the sr.ht repository is managed, and this still looks pretty complex to me.

What I wanted was to build the packages in CI (i.e. builds.sr.ht) and upload them - along with a new index - via rsync. This way, the file server can be locked down with rrsync and does not need any to have any apk-specific tooling installed.

The result is not perfect, but certainly works for me: apk-index-update can be used together with some of the existing tools to achieve just that. Usage is best illustrated by looking at how it uses itself to upload new packages from CI. It does have some obvious issues, such as a race condition between reading the existing index and then uploading the new one, but my repositories are small enough that I can live with this for now. I’m using it to maintain my personal repo and the Anemos repo. Maybe it’ll be useful for others…

Speaking of Anemos - the packaging frenzy led to many changes under the hood, such as the initramfs finally being built on Alpine and the makeimg online man pages being updated by CI. But most notably, there are now signatures for the base initramfs downloads. I also resisted the NIH urge and just went with Hugo for the new website. It’s still lacking content, but at least this way I can focus on that.

Last but not least, as sort of a teaser, we finally also have CephFS running in our Amsterdam setup. CephFS is a true cluster file system, and we can now e.g. mount the same storage volume - writable - on multiple hosts/pods. I can’t vouch for its performance (it won’t be much of an issue for our use case so far), but having this available puts a whole bunch of interesting options on the table. More to come soon.

So this is it for this month. As always, don’t hesitate to send something to my public inbox or find me in the #sr.ht.watercooler IRC channel! And thanks to Olivier for making me aware that I’ve been pasting broken links for a few months :)