2025-12-11 23:54:43 -03:00
# titan-iac
2026-04-08 19:22:56 -03:00
Flux-managed Kubernetes desired-state config for `bstein.dev` .
2026-04-07 12:30:28 -03:00
2026-04-08 19:22:56 -03:00
Canonical source URL:
2026-04-07 12:30:28 -03:00
- `ssh://git@scm.bstein.dev:2242/bstein/titan-iac.git`
2026-04-08 19:22:56 -03:00
## Scope
2026-04-07 12:30:28 -03:00
2026-04-08 19:22:56 -03:00
This repo contains cluster configuration consumed by Flux:
- platform/infrastructure manifests
- service manifests and kustomizations
- operational scripts for render/reconcile workflows
2026-04-07 12:30:28 -03:00
2026-04-08 19:22:56 -03:00
This repo is **not** the Ananke application source repo.
Ananke lives in `bstein/ananke` and orchestrates host-side shutdown/startup behavior around this desired state.
2026-04-07 12:30:28 -03:00
2026-07-16 03:25:30 -03:00
Terraform lives under `terraform/atlas` for declarative day-zero inventory, Kubernetes Node labels, and generated Ananke inventory input. It must not take ownership of Flux-managed workload manifests.
2026-04-08 19:22:56 -03:00
## Validation workflow
2026-04-07 12:30:28 -03:00
```bash
2026-04-08 19:22:56 -03:00
kustomize build services/< app >
kubectl apply --server-side --dry-run=client -k services/< app >
flux reconcile kustomization < name > --namespace flux-system --with-source
2026-04-07 12:30:28 -03:00
```
2026-04-08 19:22:56 -03:00
## Apply model
2026-04-07 12:30:28 -03:00
2026-04-08 19:22:56 -03:00
Use Git + Flux as the source of truth.
Avoid manual in-cluster edits for durable changes.