cluster GitOps (flux) — pipeline head; codeberg someara/seanfarm is the flux source + rebuild seed
  • Shell 71.1%
  • HCL 9.5%
  • TLA 6.2%
  • Go 5.7%
  • Makefile 4.5%
  • Other 3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
pipeline-release-prepare 3cd90b6177
All checks were successful
pipeline/ci trusted release-prepare: version bump + changelog on already-CI'd trunk code; no CI needed
release: v0.1.113 (auto-release)
2026-07-24 15:00:51 +00:00
bootstrap chore(nodes): promote node-bootc seanfarm25 snapshot 405120883 (auto-bake) 2026-07-05 12:19:53 +00:00
docs docs: sweep pruned-singleton namespaces to bare names (olly/openbao/minio/forgejo) 2026-07-23 08:44:07 +00:00
kubernetes/flux fix(admission): retire obsolete shipd workflow guard 2026-07-24 16:56:32 +02:00
notes refactor: consolidate flux layout and LE issuer switch 2026-04-13 21:00:10 +02:00
research refactor: consolidate flux layout and LE issuer switch 2026-04-13 21:00:10 +02:00
scripts feat(argo): vendor v4.0.8 workflow CRDs 2026-07-24 16:31:22 +02:00
secrets backup(vault): SOPS-encrypted unseal-key + root-token snapshot 2026-05-13 03:14:10 +02:00
services/hydra-token-hook Fix MinIO IAM crash, BuildKit/Kyverno policies, token hook subject parsing 2026-02-28 10:39:07 +01:00
src fix(node-snapshot-bake): retry codeberg clone + registry pull (transient 504s) 2026-06-13 20:17:11 +02:00
terraform chore: drop legacy stubs replaced by Crossplane CRs and abandoned dirs 2026-05-08 12:26:54 +02:00
tests fix(admission): retire obsolete shipd workflow guard 2026-07-24 16:56:32 +02:00
tla spec(tla): model-check the in-place CI-spine cutover contract 2026-07-19 13:04:05 +00:00
.checkov.yaml cleanups 2026-04-22 17:38:44 +02:00
.gitattributes chore: adopt semver (VERSION + CHANGELOG) for the gitops-flux release beat 2026-07-06 16:47:46 +02:00
.gitignore chore: gitignore .claude/scheduled_tasks.lock 2026-05-01 23:47:06 +02:00
.kube-linter.yaml cleanups 2026-04-22 17:38:44 +02:00
.sops.yaml feat(tenants): remove bob (sean.bar) from seanfarm + always GC vault GCP SAs on rebuild 2026-06-11 13:14:50 +02:00
AGENTS.md docs: sweep pruned-singleton namespaces to bare names (olly/openbao/minio/forgejo) 2026-07-23 08:44:07 +00:00
CHANGELOG.md release: v0.1.113 (auto-release) 2026-07-24 15:00:51 +00:00
CLAUDE.md chore: nuke all jitsi-related files to start fresh 2026-04-21 18:23:36 +02:00
LICENSE chore: add Apache-2.0 LICENSE + NOTICE 2026-06-16 09:20:11 +00:00
Makefile feat(argo): vendor v4.0.8 workflow CRDs 2026-07-24 16:31:22 +02:00
NOTICE chore: add Apache-2.0 LICENSE + NOTICE 2026-06-16 09:20:11 +00:00
README.md chore(cleanup): remove retired ArgoCD-era kubernetes/argocd tree 2026-06-15 13:10:54 +00:00
SECURITY.md chore(security): scrub committed residential IPs; add SECURITY.md 2026-06-16 09:11:22 +00:00
VERSION release: v0.1.113 (auto-release) 2026-07-24 15:00:51 +00:00

seanfarm

GitOps repo for sean.farm Kubernetes, storage, and build infrastructure.

Facts

  • Flux bootstraps from Codeberg and reconciles kubernetes/flux/clusters/seanfarm/.
  • Most manifests live in this repo. Some components also pull from separate Codeberg repos.
  • Bootstrap secrets live in secrets/*.yaml.enc and are decrypted by make.

Layout

Path Purpose
kubernetes/flux/clusters/seanfarm/ Flux cluster entrypoint
kubernetes/flux/clusters/seanfarm/infrastructure/ Cluster Flux Kustomizations
kubernetes/flux/infrastructure/ Component manifests
terraform/roots/ reusable Terraform roots for tofu-controller
secrets/ encrypted bootstrap inputs
docs/ short operational docs

Common Commands

brew install age sops hcloud kubectl flux
age-keygen -o ~/seanfarm-age-key.txt

make create
make rebuild
make destroy
make status

Makefile reads ~/seanfarm-age-key.txt by default.

Rules

  • Edit manifests, test, commit, push, reconcile, verify.
  • Prefer declarative changes over imperative cluster changes.
  • Do not use kubectl apply for routine Flux-managed development.
  • Use kubectl apply only for bootstrap/setup, emergency recovery, or temporary local verification before the matching commit is pushed.
  • Use internal service DNS for in-cluster traffic.
  • Pin images by version or digest. Do not use :latest.

Style

  • Prefer manifest.yaml inside component directories.
  • Use a semantic filename only when a directory contains multiple peer manifests.
  • Avoid repeating a long dashed directory name in the filename.
  • Let the directory name carry the component identity.

Docs

  • Architecture — 4-layer overview, DNS / TLS / secrets / observability cross-cuts
  • Development Workflow — daily edit → push → reconcile → verify loop
  • Style — naming, file conventions, commit messages
  • Crossplane Primer — XRD vs Composition, placeholder pattern, patch types, gotchas (in the platform repo)
  • AGENTS.md — repo conventions for human and AI contributors