Skip to content

Deploy to Cluster

Basic Deploy

helm-me deploy deploy.yaml
helm-me deploy deploy.py

You'll be prompted to confirm before applying. Use --yes to skip:

helm-me deploy deploy.yaml --yes

Preview Changes Before Deploying

Use diff to see what would change without applying anything — renders the manifests and pipes them to kubectl diff:

helm-me diff deploy.yaml
helm-me diff deploy.yaml --namespace production

Exit code follows kubectl diff semantics: 0 = no changes, 1 = diff found.

Re-Deploy Without Specifying the Spec File

After the first deploy, the spec path is saved to the registry. Use update to re-deploy the active app (or a named app) without passing the spec path again:

helm-me update            # re-deploy the active app
helm-me update my-app     # re-deploy a specific app
helm-me update --yes      # skip confirmation
helm-me update --no-wait  # don't wait for rollout

Wait for Pods to Be Ready

By default, deploy and update block until all Deployments have their desired replicas available (equivalent to kubectl rollout status):

helm-me deploy deploy.yaml --yes            # waits up to 300 s (default)
helm-me deploy deploy.yaml --yes --wait-timeout 120  # custom timeout
helm-me deploy deploy.yaml --yes --no-wait  # fire-and-forget

Target a Specific Cluster

helm-me deploy deploy.yaml \
  --kubeconfig ~/.kube/staging.yaml \
  --context staging-eu \
  --namespace my-team

What Happens During Deploy

  1. The spec is parsed and validated (lint check)
  2. Kubernetes manifests are rendered
  3. The target namespace is created if it doesn't exist
  4. Resources are applied (create-or-update)
  5. The CLI waits for Deployments to become available (unless --no-wait)
  6. The deployment is saved to the local registry (~/.helm-me/deployments/)

After deploy, you can manage the app without specifying the spec file again:

helm-me ops pods
helm-me ops logs backend -f
helm-me update --yes

Force Image Pull

Force Kubernetes to re-pull images (useful when the tag hasn't changed but the image has):

helm-me deploy deploy.yaml --force-pull --yes

Rolling Restart After Deploy

helm-me deploy deploy.yaml --restart --yes

Active App

After deploying, helm-me automatically sets the app as active:

helm-me app current
# ▸ my-app

helm-me ops pods
# Uses my-app automatically