Skip to content

kyma deploy

A wizard that provisions the deployment topology for you. It resolves each axis (flag → interactive prompt → default), validates the combination, renders the right artifact into a private workspace, and runs the tool for you.

Commands

CommandWhat it does
kyma deploy initResolve axes + credentials, materialize ~/.kyma/deploy/<name>/, render the artifact.
kyma deploy upProvision: terraform/pulumi apply (fargate/eks; EKS then runs helm upgrade --install), helm upgrade --install (helm), or docker run (local). Prints the engine URL.
kyma deploy statusWorkspace summary (compute/db/storage/auth), outputs, live /health probe.
kyma deploy destroyTear down (with confirmation).

Axis flags

FlagDefaultPurpose
--computeprompt / fargatefargate · eks · helm · local.
--databaseprompt / supabasesupabase · rds · external.
--database-urlprompt (secret)postgresql://… for --database external.
--storagederiveds3 · supabase · external. Defaults to supabase with a Supabase DB, else s3 on AWS, else external.
--storage-endpoint / --storage-bucket / --storage-region / --storage-access-key / --storage-secret / --storage-path-stylepromptExternal S3-compatible store (MinIO/R2/…).
--authderivedsupabase · token · oidc. Defaults to supabase with a Supabase DB, else token (a minted admin token).
--oidc-issuer / --oidc-client-idpromptFor --auth oidc.

Other flags

FlagDefaultPurpose
--nameprodWorkspace name — run several deployments side by side.
--toolterraformterraform or pulumi (fargate/eks).
--regionprompt / us-east-1AWS + Supabase region.
--supabase-orginteractive pickerSupabase organization id (when a Supabase backend is used).
--domainprompt / noneCustom domain + ACM/HTTPS (fargate).
--ingress-hostprompt / noneKubernetes ingress host (helm/eks).
--kube-contextcurrent contextkubectl context to deploy into (helm).
--admin-emailpromptComma-separated emails granted the kyma admin role (supabase/oidc).
--targetDeprecated alias for --compute (awsfargate, locallocal).
--yesoffNon-interactive (supply the relevant flags).
--print-onlyoffRender the artifact + print planned commands; runs nothing.
--forceoffRegenerate a workspace's rendered config.

Credential acquisition

When a Supabase backend is in use, init obtains a Management-API token in this order: SUPABASE_ACCESS_TOKEN → your supabase login session (~/.supabase/access-token) → browser OAuth (PKCE, when KYMA_SUPABASE_OAUTH_CLIENT_ID is set) → guided paste. AWS compute uses the standard AWS credential chain (aws configure, SSO, env vars). Non-Supabase deployments need neither — only what the chosen backends require.

Workspaces

Everything lives in ~/.kyma/deploy/<name>/ (rendered files are 0600 and hold secrets — never commit them):

terraform/                   # materialized stack (fargate/eks)
terraform/terraform.tfvars   # rendered answers
helm/kyma-engine/            # the engine Helm chart (helm/eks)
helm-values.yaml             # rendered Helm values (helm/eks)
local.env                    # docker env file (local)
answers.json                 # persisted axis answers (helm/eks/local)
deploy.json                  # compute/db/storage/auth + state

Re-running init refreshes the embedded templates but never overwrites your terraform.tfvars (use --force). State stays in the workspace by default; see Terraform → State for the team setup.

Per-target notes

  • fargateterraform/pulumi apply; ALB + (optional) ACM/Route53.
  • eksterraform apply provisions the cluster + IRSA, then up runs aws eks update-kubeconfig and helm upgrade --install, wiring the resolved catalog URL, created bucket, and IRSA role into the chart. See Kubernetes / EKS.
  • helm — renders helm-values.yaml at init; up runs helm upgrade --install kyma … -n kyma --create-namespace. See Helm.
  • local — provisions a Supabase project (if used) or wires your external Postgres/storage, then docker runs the engine on :8080.

With --storage supabase, the wizard opens the dashboard's S3-keys page (Supabase has no API to mint them) and waits for the paste — one manual step.

An open-source project · MIT licensed.