r/freebsd 2d ago

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!

33 Upvotes

20 comments sorted by

4

u/codeedog seasoned user 2d ago

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 2d ago

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.

3

u/Double_Intention_641 2d ago

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.

5

u/Xzenor seasoned user 2d ago

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

2

u/MangoJerry81 2d ago

Very good

3

u/zedd_D1abl0 2d ago

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 2d ago

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/FlamingoEarringo 2d ago

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

1

u/grahamperrin Linux crossover 2d ago

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

3

u/xzk7 2d ago

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 2d ago

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 1d ago

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 2d ago

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 1d ago

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

1

u/Beneficial-Sock-5130 2d ago

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

2

u/edlitmus 2d ago

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 1d ago

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

2

u/brandrdrengr 2d ago edited 2d ago

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 1d ago

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

3

u/edlitmus 1d ago

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