How insuperposition/firmament works
Firmament declaratively provisions one Kubernetes host: the local environment composes an OrbStack VM, Ubuntu readiness checks, and k0s, then bootstraps Flux and Cilium. Flux reconciles the GitOps packages, including its own installation. The README documents this ordering and the shared state and kubeconfig; source excerpts were unavailable, so implementation-level wiring beyond those documented relationships is omitted.
Main entry points: main.tf Local Environment · kustomization.yaml Cilium Package · bootstrap.tf Cluster Bootstrap · fluxinstance.yaml Flux
Components 15
Environment
- Local Environment
environment/local/main.tf - Cluster Bootstrap
environment/local/bootstrap.tf - OpenTofu State
- Kubeconfig
Infrastructure Modules
- OrbStack VM
modules/vm-orb/main.tf - Ubuntu Readiness
modules/os-ubuntu/main.tf - k0s Node
modules/orch-k0s/main.tf
GitOps Packages
- Flux Package
components/gitops-flux/kustomization.yaml - Cilium Package
components/cni-cilium/kustomization.yaml
Cluster Services
Other components
- Operator
- OrbStack
Connections 18
- Operator → Local Environment: applies
- Local Environment → OrbStack VM: composes
- Local Environment → Ubuntu Readiness: composes
- Local Environment → k0s Node: composes
- Local Environment → OpenTofu State: stores state
- Local Environment → Kubeconfig: owns file
- OrbStack VM → OrbStack: provisions VM
- Local Environment → Ubuntu Readiness: checks readiness
- Local Environment → k0s Node: installs k0s
- k0s Node → Kubernetes Cluster: creates cluster
- Local Environment → Cluster Bootstrap: runs bootstrap
- Cluster Bootstrap → Flux Package: installs
- Cluster Bootstrap → Cilium Package: installs
- Flux → Flux Package: reconciles
- Flux → Cilium Package: reconciles
- Flux Package → Flux: installs
- Cilium Package → Cilium: installs
- Cilium Package → Hubble: installs