Skip to content

Repository files navigation

helm-compose

A single generic Helm chart that turns a docker-compose-style values file into Kubernetes resources. Every top-level key in your values file is a service; its kind selects which template renders it (deployment, pvc, configmap, secret, pg-database, pg-backup, ray, ballancer). Helpers in templates/_helpers.tpl compute everything cross-service (internal DNS, ingress URLs, secret refs, Postgres host/password, named ports) so values files never hand-code names that depend on other services.

If you are configuring a values file, start at docs/ — the per-kind walkthroughs. For the full reference (every helper, every field), see AGENTS.md. For a runnable example exercising every kind, see example.yaml.

Installing

The chart is context-aware: the same values file produces different resources depending on the release name you install with. Contexts and their release names are declared at the top of the values file:

xDeployment:
  persist: prod-persist
  core:    prod-core
  mds:     prod-mds
  apps:    prod-apps

A service entry's context: field is matched against these mappings; only services whose context resolves to the current release name render. Pick context names by how you want to split work across helm install calls — the typical split keeps data and applications separate so you can re-install applications without touching PVCs and databases.

Once a deployment is live, never rename xDeployment entries. Resource names embed these values; changing them orphans every running resource.

Order matters. Install persist first (creates PVCs and databases), then core, then the rest. Each call uses the matching release name and the same values file:

# Dry-run first — inspect output before applying
helm install -f ./instances/my-values.yaml --dry-run prod-persist . > prod-persist.yaml

# Then actually install
helm install -f ./instances/my-values.yaml prod-persist .
helm install -f ./instances/my-values.yaml prod-core    .

To debug a rendering issue without installing:

helm template --debug -f ./instances/my-values.yaml prod-core .

Do not pass --values values.yaml against the chart's own values.yaml-shaped defaults; there are none. Always point -f at your own file.

Layout

  • templates/ — the rendering templates and _helpers.tpl. Don't edit unless you're adding a new kind or helper; the templates are the contract every values file relies on.
  • docs/ — user-facing per-kind walkthroughs (this is what you read while writing a values file).
  • example.yaml — a single file demonstrating every kind, renderable end-to-end.
  • mixins/ — standalone manifests applied by hand (BACKUP_RESTORE.md, restore-cluster.yaml). Not part of the chart proper.
  • AGENTS.md — directives and full reference for anyone (human or AI) editing the chart itself.
  • charts/ — unused, excluded from packaging.

About

docker-compose like helm deployments

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages