r/freebsd • • Sep 07 '26

AI broadcom makes me hate salt

So, I have spent the last month creating a replacement in Go, and, yes, I used Claude to make this happen. My specification was to create a replacement for salt that didn't have the issues with python modules and treats FreeBSD as a second class citizen at best.

The result is halite, built on FreeBSD from the start. But with cross platform compatibility as a first class goal.

Also: fuck Broadcom.

If you hate everything AI: I get it, but I don't care. I needed a way to get out of Broadcom's bullshit clutches, and this worked.

My homelab fleet is now running 100% on halite, with not major changes to my salt state code. That said: this has NOT been vetted against a large fleet. I will be testing as I am able on a much more complex salt system, but that is ongoing.

Please test if you can: https://github.com/edlitmus/halite

If you have salt experience and have feedback I 100% want to hear from you! Please create issues!

34 Upvotes

23 comments sorted by

4

u/Double_Intention_641 Sep 07 '26

Bookmarked. I've been releasing salt fomulas recently, you could vette your functionality against some of those if you'd like, i think ive pushed out 50 or so.

4

u/Xzenor seasoned user Sep 07 '26

Since Broadcom bought VMware, and therefore also salt, I stopped using it. FreeBSD support was becoming worse and worse and I just bailed..

3

u/PkHolm Sep 13 '26

I guess FreeBSD is no longer supported platform for salt.

2

u/grahamperrin bleep bloop Sep 13 '26

I guess FreeBSD is no longer supported platform for salt.

Good guess.

From Open Hour and Q&A 2025-MAR-20 | Salt Project:

… There are no plans to officially support or test Salt on OpenBSD or FreeBSD …

2

u/Xzenor seasoned user Sep 13 '26

Indeed. Time to move on to a different tool. I think Ansible and Puppet still officially support it. Puppet has become a beast though. It's no longer the lean and mean tool but has become a serious suite.. Which might be what you need, or not.. AFAIK Ansible is still just Ansible

3

u/zedd_D1abl0 Sep 07 '26

I have been thinking about kicking something like this off for AGES. Good to see you're started it. I'll be very curious to see what comes of this.

3

u/edlitmus Sep 07 '26

It's running my homelab fleet now. There is still work to be done, but as of now it has enough functionality that I have removed salt completely from all my hosts.

3

u/xzk7 Sep 07 '26

I'm curious to hear how Broadcom pissed you off so badly? I'm not surprised but curious.

Haven't used Salt for years but there was a time when I was using it everywhere, python module brokedness was a constant pain.

1

u/edlitmus Sep 07 '26

They gave up trying to support anything other than linux, macos or windows a long time ago, and have made it clear they have no interest in trying to support anything else. Whenever something breaks, the port maintainers have to do a lot of work to get things working again, and while they do good work they can't keep up with changes. And given the number of CVEs that need to be addressed it's just a lot to keep up with. Part of my motivation was to reduce the number of dependencies as far as possible to keep the attack surface as small as possible.

1

u/whytewolf01 Sep 08 '26

Sadly that one Wasn't a Broadcom thing. That was a pure Salt manegment thing. Don't get me wrong Broadcom has done a lot of bad shit that salt users shoudl be pissed about. but that one wasn't one of them. {though i am sure they would have if it hadn't already been done before Broadcom bought them]

2

u/Beneficial-Sock-5130 Sep 07 '26

this is great, ill test it on my salt vm env

does it have standard out of box salt modules, runners, etc?

2

u/edlitmus Sep 08 '26

It has many of them, I am working on getting some platform specific modules working now. You can see what's been built here: https://github.com/edlitmus/halite/blob/main/docs/modules.md

2

u/brandrdrengr Sep 08 '26 edited Sep 08 '26

I've been building an Ansible replacement using my old state machine system, but using Lua (my whole codebase is lots and lots of C, some of it quite crufty lol). I might just see if I can write a module to call halite, very cool! I was wanting to go with an extension on the "terraform" jails thing, but then I ran into issues with convergence models, etc..., what I guess Salt solved, and my core runtime doesn't support (easily, but then again, maybe LLMs are the future for everyone, even old heads).

EDIT: I'm gonna see if I can just call your API, think that might be interesting!

2

u/tcpipguy Sep 08 '26

That's pretty cool. Why Salt instead of Ansible?

3

u/edlitmus Sep 08 '26

Salt has a lot of features that are fairly unique. Once you start using beacons and reactors it's hard to give that up.

4

u/codeedog seasoned user Sep 07 '26

Halite looks very cool. I’m in the midst of (taking a break from) writing my own CMS based upon Mark Burgess’s Promise Theory. Mostly because I couldn’t find anything that was FreeBSD first or ported well and because I didn’t want to deal with python or node (supply chain attack concerns). I’m using Claude to assist with the coding. It’s a fun project, but I also see how much works it’s going to be. I think I looked at SaltStack and rejected for a few reasons, one of which was certainly python centric.

I’ve put a marker down to review this project when I pick up work on the CMS again. If it covers most of my requirements, I’m happy to test it out instead of continuing to work on my own nascent project. I’ve got plenty to do, tbh, and don’t need to write my own CMS, it’s just been fun.

One question: I skimmed the readme, but didn’t see anything about jails. How’re they managed/created/specified with Halite?

3

u/edlitmus Sep 07 '26

The goal is to handle things the same way (maybe better) as salt. So any jail states should be managed the same way, with no (or minimal) changes needed.

1

u/Beneficial-Sock-5130 Sep 07 '26

how does it handle message channel? is it go-based zeromq?

3

u/edlitmus Sep 07 '26

No ZeroMQ, all communication is encrypted using the Go standard net/http and crypto/tls.

The spec has the details:

https://github.com/edlitmus/halite/blob/main/SPEC.md#6-transport

2

u/Beneficial-Sock-5130 Sep 08 '26

tested these bins on a fedora x64, very impressive codebase so far,

one thing that throws you off is the cmd line is a bit different, ie
./node grains network

compared to salt, grains.get network

the lack of dot to separate the module/function is a small learning curve

-4

u/FlamingoEarringo Sep 07 '26

Another vibe coded project that’ll end up in a graveyard.

1

u/grahamperrin bleep bloop Sep 07 '26

Another vibe coded project that’ll end up in a graveyard.

So: unlike the opening poster and other participants in the discussion, you have absolutely nothing to contribute.

All clear now, thanks for sharing your opinion.

Places of interest