Skip to content

Upgrade AKO using Helm

Overview

This page describes how to upgrade Aerospike Kubernetes Operator (AKO) to the latest version using Helm.

Prerequisites

  • Helm 3.x

Do not skip intermediate AKO versions if you are starting from version 3.0.0. Upgrade to version 4.0.2 or later before upgrading to version 4.1.2:

Upgrade CRD

Helm 3.x does not support the upgrade of Custom Resource Definitions (CRDs). You need to manually upgrade the CRD.

  1. Replace the old CRDs with the new CRD:

    Do not remove the old CRDs. This deletes all the Aerospike related CRs like AerospikeClusters, AerospikeBackups. Do not use kubectl replace with the --force flag as this also deletes all the Aerospike related CRs.

    Terminal window
    kubectl replace -f https://raw.githubusercontent.com/aerospike/aerospike-kubernetes-operator/v4.1.2/config/crd/bases/asdb.aerospike.com_aerospikeclusters.yaml
    kubectl replace -f https://raw.githubusercontent.com/aerospike/aerospike-kubernetes-operator/v4.1.2/config/crd/bases/asdb.aerospike.com_aerospikebackupservices.yaml
    kubectl replace -f https://raw.githubusercontent.com/aerospike/aerospike-kubernetes-operator/v4.1.2/config/crd/bases/asdb.aerospike.com_aerospikebackups.yaml
    kubectl replace -f https://raw.githubusercontent.com/aerospike/aerospike-kubernetes-operator/v4.1.2/config/crd/bases/asdb.aerospike.com_aerospikerestores.yaml
  2. Run the following command to add the Helm repository.

    Terminal window
    helm repo add aerospike https://aerospike.github.io/aerospike-kubernetes-enterprise

    If the Helm repository is already added, update the index:

    helm repo update
  3. Run the following command to upgrade AKO:

    Terminal window
    helm upgrade aerospike-kubernetes-operator aerospike/aerospike-kubernetes-operator --version=4.1.2

Check AKO logs

AKO runs as two replicas by default for higher availability. Run the following command to follow the logs for the AKO pods.

kubectl -n RELEASE_NAMESPACE logs -f deployments/aerospike-kubernetes-operator manager
Sample output:
Terminal window
2025-08-06T08:42:37Z INFO setup Initializing webhook certificate watcher using provided certificates {"webhook-cert-path": "/tmp/k8s-webhook-server/serving-certs", "webhook-cert-name": "tls.crt", "webhook-cert-key": "tls.key"}
2025-08-06T08:42:37Z INFO controller-runtime.certwatcher Updated current TLS certificate
2025-08-06T08:42:37Z INFO setup Init aerospike-server config schemas
2025-08-06T08:42:37Z DEBUG setup Config schema added {"version": "6.0.0"}
2025-08-06T08:42:37Z DEBUG setup Config schema added {"version": "6.3.0"}
2025-08-06T08:42:37Z DEBUG setup Config schema added {"version": "7.1.0"}
2025-08-06T08:42:37Z DEBUG setup Config schema added {"version": "8.0.0"}
2025-08-06T08:42:37Z DEBUG setup Config schema added {"version": "8.1.0"}
2025-08-06T08:42:37Z DEBUG setup Config schema added {"version": "6.1.0"}
2025-08-06T08:42:37Z DEBUG setup Config schema added {"version": "6.2.0"}
2025-08-06T08:42:37Z DEBUG setup Config schema added {"version": "6.4.0"}
2025-08-06T08:42:37Z DEBUG setup Config schema added {"version": "7.0.0"}
2025-08-06T08:42:37Z DEBUG setup Config schema added {"version": "7.2.0"}
2025-08-06T08:42:37Z INFO controller-runtime.builder Registering a mutating webhook {"GVK": "asdb.aerospike.com/v1, Kind=AerospikeCluster", "path": "/mutate-asdb-aerospike-com-v1-aerospikecluster"}
2025-08-06T08:42:37Z INFO controller-runtime.webhook Registering webhook {"path": "/mutate-asdb-aerospike-com-v1-aerospikecluster"}
2025-08-06T08:42:37Z INFO controller-runtime.builder Registering a validating webhook {"GVK": "asdb.aerospike.com/v1, Kind=AerospikeCluster", "path": "/validate-asdb-aerospike-com-v1-aerospikecluster"}
2025-08-06T08:42:37Z INFO controller-runtime.webhook Registering webhook {"path": "/validate-asdb-aerospike-com-v1-aerospikecluster"}
2025-08-06T08:42:37Z INFO controller-runtime.builder Registering a mutating webhook {"GVK": "asdb.aerospike.com/v1beta1, Kind=AerospikeBackupService", "path": "/mutate-asdb-aerospike-com-v1beta1-aerospikebackupservice"}
2025-08-06T08:42:37Z INFO controller-runtime.webhook Registering webhook {"path": "/mutate-asdb-aerospike-com-v1beta1-aerospikebackupservice"}
2025-08-06T08:42:37Z INFO controller-runtime.builder Registering a validating webhook {"GVK": "asdb.aerospike.com/v1beta1, Kind=AerospikeBackupService", "path": "/validate-asdb-aerospike-com-v1beta1-aerospikebackupservice"}
2025-08-06T08:42:37Z INFO controller-runtime.webhook Registering webhook {"path": "/validate-asdb-aerospike-com-v1beta1-aerospikebackupservice"}
2025-08-06T08:42:37Z INFO controller-runtime.builder Registering a mutating webhook {"GVK": "asdb.aerospike.com/v1beta1, Kind=AerospikeBackup", "path": "/mutate-asdb-aerospike-com-v1beta1-aerospikebackup"}
2025-08-06T08:42:37Z INFO controller-runtime.webhook Registering webhook {"path": "/mutate-asdb-aerospike-com-v1beta1-aerospikebackup"}
2025-08-06T08:42:37Z INFO controller-runtime.builder Registering a validating webhook {"GVK": "asdb.aerospike.com/v1beta1, Kind=AerospikeBackup", "path": "/validate-asdb-aerospike-com-v1beta1-aerospikebackup"}
2025-08-06T08:42:37Z INFO controller-runtime.webhook Registering webhook {"path": "/validate-asdb-aerospike-com-v1beta1-aerospikebackup"}
2025-08-06T08:42:37Z INFO controller-runtime.builder Registering a mutating webhook {"GVK": "asdb.aerospike.com/v1beta1, Kind=AerospikeRestore", "path": "/mutate-asdb-aerospike-com-v1beta1-aerospikerestore"}
2025-08-06T08:42:37Z INFO controller-runtime.webhook Registering webhook {"path": "/mutate-asdb-aerospike-com-v1beta1-aerospikerestore"}
2025-08-06T08:42:37Z INFO controller-runtime.builder Registering a validating webhook {"GVK": "asdb.aerospike.com/v1beta1, Kind=AerospikeRestore", "path": "/validate-asdb-aerospike-com-v1beta1-aerospikerestore"}
2025-08-06T08:42:37Z INFO controller-runtime.webhook Registering webhook {"path": "/validate-asdb-aerospike-com-v1beta1-aerospikerestore"}
2025-08-06T08:42:37Z INFO setup Adding webhook certificate watcher to manager
2025-08-06T08:42:37Z INFO setup Starting manager
2025-08-06T08:42:37Z INFO controller-runtime.metrics Starting metrics server
2025-08-06T08:42:37Z INFO starting server {"name": "health probe", "addr": "[::]:8081"}
2025-08-06T08:42:37Z INFO setup disabling http/2
2025-08-06T08:42:37Z INFO controller-runtime.webhook Starting webhook server
2025-08-06T08:42:37Z INFO setup disabling http/2
2025-08-06T08:42:37Z INFO controller-runtime.webhook Serving webhook server {"host": "", "port": 9443}
Feedback

Was this page helpful?

What type of feedback are you giving?

What would you like us to know?

+Capture screenshot

Can we reach out to you?