> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enterprise.falkordb.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upgrade FalkorDB Enterprise

> Upgrade the FalkorDB Enterprise Helm release safely.

## Prechecks

Confirm the current release and namespaces:

```bash theme={null}
helm status falkordb-enterprise -n falkordb-system
kubectl get pods -n falkordb-system
```

Back up mutable admin resources:

```bash theme={null}
kubectl -n falkordb-system get secret -l 'falkordb.io/user-type' -o yaml > falkordb-admin-users.backup.yaml
kubectl -n falkordb-system get configmap falkordb-rbac falkordb-admin-settings -o yaml > falkordb-admin-config.backup.yaml
```

Save current Helm values:

```bash theme={null}
helm get values falkordb-enterprise -n falkordb-system -o yaml > falkordb-enterprise.current-values.yaml
```

## Recommended upgrade path

Prefer a maintained values file over `--reuse-values`. This avoids carrying old image tag overrides forward accidentally.

```bash theme={null}
bash scripts/install.sh \
  --kube-context production-cluster \
  --release falkordb-enterprise \
  --namespace falkordb-system \
  --kubeblocks-namespace kb-system \
  --chart-version '<chart-version>' \
  --values production-values.yaml \
  --yes
```

The installer uses `helm upgrade --install`, so rerunning it upgrades the Enterprise release. It also updates KubeBlocks and Snapshot Controller unless skipped.

## Enterprise-only upgrade

If KubeBlocks and Snapshot Controller are already managed separately and should not be touched:

```bash theme={null}
bash scripts/install.sh \
  --release falkordb-enterprise \
  --namespace falkordb-system \
  --skip-kubeblocks \
  --skip-snapshot-controller \
  --skip-crds \
  --values production-values.yaml \
  --yes
```

## Manual Helm upgrade

```bash theme={null}
helm upgrade falkordb-enterprise \
  oci://ghcr.io/falkordb/helm-charts/falkordb-enterprise \
  --version '<chart-version>' \
  --namespace falkordb-system \
  -f production-values.yaml \
  --wait --timeout 20m
```

If you must use `--reuse-values`, set image tags explicitly:

```bash theme={null}
helm upgrade falkordb-enterprise \
  oci://ghcr.io/falkordb/helm-charts/falkordb-enterprise \
  --version '<chart-version>' \
  --namespace falkordb-system \
  --reuse-values \
  --set adminServer.image.tag='<chart-version>' \
  --set adminUi.image.tag='<chart-version>' \
  --wait --timeout 20m
```

## Post-upgrade validation

```bash theme={null}
helm status falkordb-enterprise -n falkordb-system
kubectl rollout status deployment -n falkordb-system -l app.kubernetes.io/component=admin-server
kubectl rollout status deployment -n falkordb-system -l app.kubernetes.io/component=admin-ui
kubectl get pods -n falkordb-system
```

Port-forward and check health:

```bash theme={null}
kubectl -n falkordb-system port-forward svc/falkordb-enterprise-admin-server 3000:3000
curl http://localhost:3000/health
```

Open the Admin UI and verify login, deployment list, diagnostics, logs, and metrics.

## Rollback

List revisions:

```bash theme={null}
helm history falkordb-enterprise -n falkordb-system
```

Rollback to a previous revision:

```bash theme={null}
helm rollback falkordb-enterprise <revision> -n falkordb-system --wait --timeout 20m
```

After rollback, rerun the post-upgrade validation commands.
