Kyndex
/Docs
Request a Demo
Deployment

Upgrade Guide

Upgrade the API, worker, and console charts in sequence. Review each release and migration against your environment before applying changes. Availability and compatibility depend on the version, infrastructure, and migration.

Standard Upgrade (Helm)

Note

The Helm Diff plugin is optional. Review rendered manifests and values with your normal change process before upgrading.
# 0. Update the image tags in:
# - infra/environments/<env>/api.values.yaml
# - infra/environments/<env>/worker.values.yaml
# - infra/environments/<env>/console.values.yaml

# 1. Optional: inspect changes (requires the Helm Diff plugin)
helm diff upgrade worker infra/helm/apps/worker \
  --namespace kyndex \
  -f infra/environments/<env>/common.values.yaml \
  -f infra/environments/<env>/worker.values.yaml

helm diff upgrade api infra/helm/apps/api \
  --namespace kyndex \
  -f infra/environments/<env>/common.values.yaml \
  -f infra/environments/<env>/api.values.yaml

helm diff upgrade console infra/helm/apps/console \
  --namespace kyndex \
  -f infra/environments/<env>/common.values.yaml \
  -f infra/environments/<env>/console.values.yaml

# 2. Upgrade the worker. Its init container runs Alembic migrations.
helm upgrade --install worker infra/helm/apps/worker \
  --namespace kyndex \
  -f infra/environments/<env>/common.values.yaml \
  -f infra/environments/<env>/worker.values.yaml

helm upgrade --install api infra/helm/apps/api \
  --namespace kyndex \
  -f infra/environments/<env>/common.values.yaml \
  -f infra/environments/<env>/api.values.yaml

helm upgrade --install console infra/helm/apps/console \
  --namespace kyndex \
  -f infra/environments/<env>/common.values.yaml \
  -f infra/environments/<env>/console.values.yaml

# 3. Wait for and inspect each rollout
kubectl rollout status deployment/worker -n kyndex
kubectl rollout status deployment/api -n kyndex
kubectl rollout status deployment/console -n kyndex

Migration Order

Installing or upgrading the worker chart starts an init container that runsalembic upgrade head before that worker pod starts. This does not guarantee that every migration is backward-compatible with API pods already running.

  1. Worker init container attempts alembic upgrade head.
  2. Inspect migration logs and confirm the worker rollout is ready.
  3. Upgrade the API, then the console, and inspect each rollout.
  4. Verify application behavior and health endpoints for your deployment.

Rollback

Warning

Helm rollback reverts Kubernetes manifests and image tags, not the database schema. A rollback may fail if the older application is incompatible with the migrated schema. Use a tested database recovery plan; do not run an Alembic downgrade without verifying its reverse operation and effects on data.
# Inspect release history
helm history console -n kyndex
helm history api -n kyndex
helm history worker -n kyndex

# Roll back each app release to a specific revision
helm rollback console REVISION -n kyndex
helm rollback api REVISION -n kyndex
helm rollback worker REVISION -n kyndex

Pre-upgrade checks

  • Back up the database and confirm a recovery procedure before schema changes.
  • Review migration scripts and whether old and new application versions can share the resulting schema.
  • The API chart uses a rolling update strategy and readiness probe; this does not establish zero downtime.
  • Check database connection limits, persistent storage, Redis, and provider availability for the rollout.
  • Test the release and migration with representative data before production.

Inspect a failed rollout

kubectl get pods -n kyndex
kubectl logs -l app.kubernetes.io/name=api -n kyndex --tail=100

kubectl rollout status deployment/api -n kyndex
kubectl describe deployment/api -n kyndex