Generated outputs
The real artifacts Rhodd emits — compose, env files, Kubernetes manifests, scaffolds, docs — plus the .rhodd/ state and deployment export.
generate emits standard, human-readable artifacts. Nothing is proprietary; everything is a file you could have written by hand, just generated deterministically.
Emit targets
- docker-compose — a
compose.yamlfor the declared services and modules. - env files —
.envtemplates for each service. - Kubernetes manifests — plus a Kubernetes plan describing the intended objects.
- service scaffolds — a starting tree per service, by
kindand runtime. - generic files & markdown docs — supporting files and generated documentation.
The .rhodd/ state
Alongside the targets, Rhodd writes its state directory — the core artifacts:
.rhodd/
├── model.json # the resolved system
├── graph.json # services, modules, edges (acyclic)
├── plan.json # the write set (dry-run)
├── manifest.json # what was emitted, by kind
├── ownership.json # generated vs user-owned
├── quality.json # gate results
└── ai/ # the handoff context pack
.rhodd.lock # input/output hashes · reproducible: trueThe manifest.json records each emitted target by kind:
{
"stage": "generate",
"targets": [
{ "kind": "service-scaffold", "path": "services/api" },
{ "kind": "docker-compose", "path": "compose.yaml" },
{ "kind": "kubernetes-manifests", "path": "k8s/" },
{ "kind": "envfiles", "path": ".env.example" }
],
"files": 24
}Deployment export
Separately, Rhodd can export a deployment representation as manifest files — Argo CD, Flux, or generic Kubernetes YAML (plus Backstage metadata):
# .rhodd/export/argocd/api.application.yaml — a file, not a live deploy
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: api
spec:
source:
repoURL: https://github.com/rhodd-fdn/rhodd
path: k8s/api
syncPolicy: {} # manual sync — nothing applies on its ownThese are files. Rhodd makes no cluster calls by default; applying them is a separate, opt-in step — see Safety & boundaries. Rhodd never emits Terraform.