Configuration reference¶
All persistent configuration lives in dekube.yaml. This file is created on first run and preserved across re-runs. User edits are never overwritten.
This is your territory. The engine converts; the config file is where you tell it what to ignore, what to override, and what to pretend was never there. Think of it as the leash on a machine that has no business existing — short enough to control, long enough to be useful.
Full example¶
name: my-platform
volume_root: ./data
extensions:
caddy:
email: admin@example.com
distribution_version: v3.1.0
depends:
- keycloak
- cert-manager==0.3.0
- trust-manager
volumes:
data-postgresql:
driver: local
myapp-data:
host_path: app
other:
host_path: ./custom
exclude:
- prometheus-operator
- meet-celery-*
replacements:
- old: 'path_style_buckets = false'
new: 'path_style_buckets = true'
overrides:
redis-master:
image: redis:7-alpine
command: ["redis-server", "--requirepass", "$secret:redis:redis-password"]
volumes: ["$volume_root/redis:/data"]
environment: null
services:
minio-init:
image: quay.io/minio/mc:latest
restart: on-failure
entrypoint: ["/bin/sh", "-c"]
command:
- mc alias set local http://minio:9000 $secret:minio:rootUser $secret:minio:rootPassword
&& mc mb --ignore-existing local/my-bucket
Engine keys¶
These are the controls that let you steer the heresy — what to exclude, what to override, what to pretend doesn't exist. All documented in the engine reference; they work identically in helmfile2compose:
name— compose project name (auto-detected on first run)volume_root— base path for PVC bind mounts (default:./data)volumes— PVC-to-volume mappings (auto-populated on first run)exclude— workload names to skip (fnmatchwildcards)replacements— global find/replace in env vars, ConfigMap files, and proxy upstreamsoverrides— deep merge into generated services (nulldeletes keys)services— custom compose services added verbatimextensions— per-extension config (Caddy email/TLS, enable/disable)ingress_types— customingressClassName→ rewriter mappingdisable_ingress— skip reverse proxy generationnetwork— external compose network override
See the full engine configuration reference for detailed descriptions, examples, placeholders ($secret:, $volume_root), and legacy key migration.
Distribution-specific keys¶
These keys are for the package manager, not the engine. The engine doesn't care what version it is; the manager cares so you don't wake up to a breaking change on a Tuesday morning.
distribution_version¶
Pin the distribution version for dekube-manager.
core_version is accepted as a backwards-compatible alias.
distribution¶
Select which distribution dekube-manager installs. Default: helmfile2compose. Use core for the bare engine (dekube.py).
depends¶
List of dekube extensions required by this project. dekube-manager reads this list and installs them automatically.
Bare names pull the latest release. Pin with ==version for reproducibility (recommended — see Your project).
See dekube-manager — declarative dependencies for override behavior and details.