helm-charts

Upgrading Currents on EKS

These docs are for chart 0.8.x. For the current chart, see the current docs. To upgrade to 1.0, follow Upgrading to Chart 1.0.

This guide covers upgrading an existing Currents deployment installed with the Helm chart on EKS.

For reference, the Docker Compose environment has a separate upgrade flow: Upgrading Currents On-Prem.

Before You Begin

  1. Check the chart CHANGELOG for the target release.
  2. Review any breaking changes and required values or secrets updates.

Infrastructure backups and third-party dependencies are customer-managed. See Currents Service Dependencies and Support Policy.

How Versioning Works

Two versions matter during upgrades:

By default, helm upgrade --install without --version upgrades to the latest published chart, which is 1.0 or later. The commands here pin --version 0.8.1 to stay on 0.8.x.

Upgrade Types

Chart/Image Updates (No Config Changes)

Use this when release notes do not require values or secret changes:

kubectl config set-context --current --namespace=currents

helm upgrade --install currents currents \
  --repo https://currents-dev.github.io/helm-charts/ \
  --version 0.8.1 \
  -f currents-helm-config.yaml

To target a specific chart version:

helm upgrade --install currents currents \
  --repo https://currents-dev.github.io/helm-charts/ \
  --version 0.7.0 \
  -f currents-helm-config.yaml

Updates with Values File Changes

Use this when release notes mention new or renamed values:

  1. Compare your currents-helm-config.yaml with the latest chart values reference:
  2. Add/update required values in your currents-helm-config.yaml.
  3. Run helm upgrade --install with the updated file.

Updates with New Secrets

Use this when release notes require new secrets:

  1. Create any required Kubernetes secrets before the upgrade (for example auth, SMTP, SSO, storage).
  2. Ensure your values file references those secret names and keys.
  3. Run helm upgrade --install.

Running the Upgrade

Recommended upgrade command:

kubectl config set-context --current --namespace=currents

helm upgrade --install currents currents \
  --repo https://currents-dev.github.io/helm-charts/ \
  --version 0.8.1 \
  -f currents-helm-config.yaml

Optional: if you use the Helm diff plugin, preview changes first:

helm diff upgrade currents currents \
  --repo https://currents-dev.github.io/helm-charts/ \
  --version 0.8.1 \
  -f currents-helm-config.yaml

Watch rollout:

kubectl get pods
kubectl rollout status deploy -l app.kubernetes.io/instance=currents --timeout=5m

Version Checking

Check installed chart and app version:

helm list -n currents

Check applied values:

helm get values currents -n currents

Check running container images:

kubectl get pods -n currents -o custom-columns=NAME:.metadata.name,IMAGE:.spec.containers[*].image

Database Migrations and Startup Tasks

The scheduler component runs startup tasks (including migrations) on startup and logs Startup tasks complete when they finish. On a large dataset they can take several minutes. The scheduler pod reports ready while they run, so a finished kubectl rollout status doesn’t mean the migrations are done.

Check scheduler logs during/after upgrades:

kubectl logs -n currents deploy/currents-scheduler --tail=200

If a migration fails, for example with a ClickHouse Timeout error. on a busy cluster, the scheduler logs the error and keeps running, but the remaining migrations don’t run until it starts again. Restart it:

kubectl rollout restart deploy/currents-scheduler -n currents

Finished migrations are skipped, and an interrupted backfill skips the records it already updated, so a restart is safe to repeat.

Rollback

If you need to rollback:

helm history currents -n currents
helm rollback currents <revision> -n currents

Then verify pod health:

kubectl get pods -n currents

Troubleshooting

Pods Do Not Start (CrashLoopBackOff / Pending)

kubectl get pods -n currents
kubectl describe pod <pod-name> -n currents
kubectl logs <pod-name> -n currents --all-containers --tail=200

Connection Errors in Logs

If services report MongoDB/ClickHouse/Redis/object storage connection errors, dependencies may still be initializing. Restart the affected deployment:

kubectl rollout restart deploy/<deployment-name> -n currents

Missing Secrets or Config

If pods fail with missing env var or secret errors:

kubectl get secrets -n currents
helm get values currents -n currents

Confirm secret names/keys match the values in Configuration Reference.

Image Pull Errors

If pods fail with ECR pull errors, verify EKS IAM access for image pulls:

Out of Scope

This guide covers upgrading Currents Helm chart releases and application images.

Upgrading third-party infrastructure (MongoDB operators, ClickHouse operators, storage platform, cluster components) is customer-managed. See: