Configs
A config is the reusable, versioned set of settings a workload runs with — kept separate from the image so the same build can run many ways.
What a config holds
- env — environment variables, literal or secret references.
- resources — requests and limits (
250mCPU,256Mimemory). - scaling — a fixed replica count, or autoscaling between a floor and a ceiling.
- routes — how the component is exposed (routes & ingress).
- secret refs — pointers to secrets, never the values themselves.
Layering & reuse
Configs are versioned and reusable across stages. A stage resolves an ordered chain of configs — a shared base plus per-stage overrides — where later layers win. So prod inherits everything from your base and changes only what it must, and the diff between environments is exactly that override, nothing more.
components:
web:
resources: { cpuRequest: 250m, memRequest: 256Mi }
scaling: { mode: static, replicas: 2 }
env: { LOG_LEVEL: info }components:
web:
scaling: { mode: auto, replicas: 3, max: 10 }
env: { LOG_LEVEL: warn }Resolved for prod, web runs 3–10 replicas at LOG_LEVEL=warn, keeping the base's resource requests — no duplication, no drift.