Best practice: Always run the upgrade on a staging or test cluster first before applying it to production. A dedicated test cluster that mirrors production is strongly recommended as part of your standard upgrade process.
Pre-Upgrade Checklist
Before beginning the upgrade:-
Verify the cluster is healthy — confirm all server and keeper pods are running and ready, and the
ClickhouseClusterCR status shows no errors:Do not proceed if any pods are crashlooping or the cluster is degraded. -
(Highly recommended for production) Take a full backup of your cluster — see Back Up and Restore ClickHouse. Verify the backup completes successfully (
status = BACKUP_DONEinsystem.backups) before proceeding. - Ensure the previous version is available for rollback — verify that the previous artifact versions are still accessible in your internal ECR. Having the images and charts present is sufficient to roll back quickly if needed.
- Copy all images for the new version to your internal ECR. Use the Component Versions reference for the target release.
- Run preflight checks. Preflight checks validate additional requirements and checks for deprecated feature flags. For more details see the How To: Run Preflight Checks page.
Upgrade Procedure
1. Upgrade the Operator Helm Chart
Keep all existing helm values the same, updating only the operator versions to the new target versions.Note: Upgrading the operator may trigger a rolling restart of all ClickHouse clusters it manages. If you have multiple clusters and want to validate the upgrade on one before allowing the operator to reconcile others, see Protecting Clusters During Upgrade below.
2. Validate the Upgraded Operator
Confirm the operator deployment is running and healthy:3. Upgrade the onprem-clickhouse-cluster Helm Chart
Upgrade theonprem-clickhouse-cluster helm chart for each cluster. Keep all existing helm values the same, updating only the ClickHouse server and keeper image versions to the new target versions.
4. Validate the Upgraded Cluster
After the rolling restart completes, confirm the cluster is healthy:Running state and the ClickhouseCluster CR should show no errors. To further validate connectivity, port-forward the ClickHouse service (see the Port-forward section in the relevant tutorial) and run a test query.
Protecting Clusters During Upgrade
If you manage multiple clusters under a single operator and want to validate the operator upgrade on one cluster before allowing it to reconcile others (e.g., test on a staging cluster before production), pause reconciliation on specific clusters using theclickhouse.com/skip-reconcile annotation.
Add the annotation to any cluster you want to protect before upgrading the operator:
Rollback
If issues are detected after the upgrade:- Operator rollback: redeploy the previous operator helm chart version.
- Cluster rollback: redeploy the previous
onprem-clickhouse-clusterhelm chart version with the previous server and keeper image versions. - Data recovery: if data issues are suspected, restore from the backup taken in the pre-upgrade checklist — see Back Up and Restore ClickHouse.