Kubernetes operator that reconciles BrewFormula custom resources by running Linuxbrew. Yes, really.
- Go 78.7%
- Makefile 13.1%
- Shell 4.8%
- Go Template 2%
- Dockerfile 1.4%
closes #9 AGENTS.md symlinks to canonical agentic-os-kai/AGENTS.md, so catalog-doc-size (canonical is intentionally comprehensive) and catalog-trifecta (validator needs symlink-transparent resolution) both defer here. Add docs/FEATURES.md so the trifecta is structurally complete for the future re-enable. Refs coilysiren/agentic-os-kai#557. |
||
|---|---|---|
| .coily | ||
| .devcontainer | ||
| .github/workflows | ||
| api/v1alpha1 | ||
| chart | ||
| cmd | ||
| config | ||
| docs | ||
| hack | ||
| internal/controller | ||
| test | ||
| .custom-gcl.yml | ||
| .dockerignore | ||
| .gitignore | ||
| .golangci.yml | ||
| .pre-commit-config.yaml | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| Makefile | ||
| PROJECT | ||
| README.md | ||
linuxbrew-operator
A Kubernetes operator that reconciles BrewFormula custom resources by running Linuxbrew. Yes, really.
What
Declare a Homebrew formula as a Kubernetes resource. The operator installs it.
apiVersion: brew.coilysiren.me/v1alpha1
kind: BrewFormula
metadata:
name: personal-dashboard
spec:
tap: coilysiren/tap
formula: personal-dashboard
version: latest
installTarget: pod
$ kubectl get brewformula
NAME FORMULA VERSION TARGET PHASE AGE
personal-dashboard personal-dashboard 1.2.3 pod Ready 3m
How
Two install targets, both in scope. Shipping pod first.
installTarget: pod- the operator spawns an ephemeralJobusing the officialhomebrew/brewimage, runsbrew install <tap>/<formula>into aPersistentVolumeClaim, then creates aDeploymentthat mounts the PVC and execs the brewed binary. Reproducible, no host privileges.installTarget: host- the operator drives a privilegedDaemonSetthat runsbrew installagainst the node's Linuxbrew prefix and emits asystemdunit viansenter. The cursed shape. Phase 2.
Status
v1alpha1, bootstrapping. Umbrella tracking at #1. Not yet usable.
Why
Because the niche was empty and the joke was too good to leave on the table. Filed origin: personal-dashboard#63.
Stack
- Go + Kubebuilder. Standard operator scaffold.
- Helm chart (forthcoming) at
chart/deploys the CRD + controller + RBAC. - Tested against k3s on the host that owns the Linuxbrew prefix.
License
Apache 2.0.
See also
- AGENTS.md - agent-facing operating rules.
- docs/FEATURES.md - inventory of what ships today.
- .coily/coily.yaml - allowlisted commands.
Cross-reference convention from coilysiren/agentic-os#59.