Writing Your First Komposer
A Komposer defines where Orkestra loads Katalogs from. A Katalog defines what your operator does — a Komposer defines where those Katalogs come from.
You do not need a Komposer to use Orkestra. ork run -f katalog.yaml works without one. Komposers become useful when you want to compose Katalogs from multiple sources or apply overrides.
The Simplest Komposer
apiVersion: orkestra.orkspace.io/v1
kind: Komposer
metadata:
name: my-komposer
imports:
files:
- ./katalog.yaml
Run it the same way:
ork run -f komposer.yaml
Loading Multiple Katalogs
imports:
files:
- ./katalogs/app.yaml
- ./katalogs/database.yaml
- ./katalogs/cache.yaml
Orkestra merges them. If two Katalogs define the same CRD name, the later one wins — or you can use the spec.crds block in the Komposer itself to override specific fields.
Loading From a Registry
imports:
registry:
- url: ghcr.io/orkspace/orkestra-registry/postgres@v14
oci: true
Pulls the Postgres operator pattern from the OCI registry and merges it with any other sources.
Loading From a Helm Chart
imports:
helm:
- repo: https://charts.myorg.io
chart: platform-crds
version: 2.1.0
Overriding Fields
The spec.crds block in a Komposer always wins over imported Katalogs. Use it to tune imported patterns:
imports:
registry:
- url: ghcr.io/orkspace/orkestra-registry/postgres@v14
oci: true
spec:
crds:
postgres:
workers: 8
resync: 30s
Validating Without Running
ork validate -f komposer.yaml
Resolves all sources, merges everything, and reports errors — without touching the cluster.