Biomes: Packaged, Versioned Workloads
Package any workload that runs as an LXC container or a KVM VM — cloud-init and resource sizing baked in — as a versioned Biome you deploy repeatably, the way a Kubernetes Deployment rolls out a service, but without being Kubernetes. A Kubernetes node, a Nextcloud server, a Windows AD domain controller, or your own image are all Biomes.
- Every Biome declares a workload_type of lxc or vm, so the instance Gough creates for it is a system container or a full virtual machine, plus cloud-init content and CPU/memory/disk sizing.
- Built-in catalog: k8s-primary (Kubernetes control plane), k8s-worker (join a worker), nest-agent (Nest-backed storage), and longhorn-agent (Longhorn-backed storage) — four Biomes among the kinds Gough supports (infrastructure, Kubernetes, monitoring, storage, and your own custom workloads).
- Because a Biome is just an LXC container or a KVM VM plus cloud-init, its payload can be almost any OS or appliance — a Windows Active Directory domain controller or a database VM, a Nextcloud or self-hosted app container — authored as a custom Biome. Kubernetes is one built-in kind, not a requirement.
- The four built-in Biomes ship pre-verified as part of the Gough release itself. Cosign signing and SBOM generation for a custom Biome you author is on the roadmap — today's API records and audits a signing request but does not yet execute a cryptographic signature, so treat custom Biomes as unverified until that ships.
- Full lifecycle from the CLI: gough biome new/validate to author, promote/rollback/diff to manage versions, and deploy/eligibility-check/upgrade to roll out.
- Custom biomes can be authored and deployed alongside the built-in set; distribution today is via git repositories.