SaltStack

Salt on Alpine | saltext-alpine | saltext-incus | saltext-nebula | saltext-s3fs

Packaging

I maintain both Salt and Salt LTS for Alpine Linux. There's ongoing work to ensure compatibility, and being the person who both packages it and uses it in production means I catch things that might otherwise slip through. I also contribute upstream to ensure Salt works well on musl, because the packaging is only as good as the underlying compatibility allows.

SaltStack is in the middle of a significant architectural shift, moving internal extension modules out to community-maintained packages under the salt-extensions organization. This is the same pattern Ansible, Puppet, and Chef have all followed: keep the core stable and let the ecosystem grow independently. I've been packaging these saltext modules for Alpine as they come out, and most of the APKBUILDs I currently have in the MR queue are saltext packages. If I'm responsible for the core package, it makes sense to also make the extensions available to Alpine users.

saltext-alpine

saltext-alpine is a Salt extension that I migrated, then modernized and extended to better support Alpine Linux. That's my primary OS, where I do most of my contributions, so naturally it makes sense for me to take over this. Ensuring Salt works well on Alpine is 1 part packaging 1 part saltext. And yes, I also maintain the apk for this on Alpine, it's part of our default install of salt.

saltext-incus

saltext-incus is a Salt extension that I wrote to manage Incus hypervisor deployments. I use this in my homelab and on production systems to spin up containers. It also includes a thin provisioning handler so that you can apply states and run salt modules inside of incus containers without deploying a full salt-minion into the container being targetted. This is frankly a huge part of my own workflow and usage of salt, I scale containerized workloads up and down at whim, and this allows me to do that without running N many minions where N = containers.

saltext-nebula

saltext-nebula is a Salt extension I wrote to fully manage the lifecycle of Nebula mesh networking certificates. It started as a personal infrastructure need. I use Nebula for my mesh network, and managing certificate creation, signing, renewal, and revocation through Salt states is how I want to manage infrastructure. Declaratively, with the same tool that handles everything else. It's part of a larger on going effort that I hope to speak more candidly about in the near future.

saltext-s3fs

saltext-s3fs is a different kind of contribution. When SaltStack began migrating internal modules to community ownership, I stepped up to take over the S3 filesystem backend. I got it published to PyPI under the official project and have been maintaining it since. I depend on it in some capacity, so it makes sense to raise my hand, apply a skillset I'm confident in, and hopefully others while helping myself.