# Aerospike Kubernetes Operator limitations and restrictions

The following limitations and restrictions apply to any cluster managed by AKO.

## Limitations

-   Any strong consistency namespaces that exist on any given rack should also exist on all other racks. In other words, if a rack `R1` has SC namespaces `N1` and `N2`, all other racks should also have SC namespaces `N1` and `N2`. This requirement affects only namespace names, so internal configurations can be different between identically-named namespaces on different racks.

### When updating a cluster

The following restrictions apply to an already-deployed cluster:

-   Persistent storage volumes cannot be added, removed, or updated in the `storage.Volumes` configuration. You can adjust `storage.Volumes` and namespace storage using the [workaround described here](https://aerospike.com/docs/kubernetes/4.1.x/manage/configure/scaling#aerospike-namespace-storage-scaling).
-   `replication-factor` and `strong-consistency` parameters cannot be changed in the `aerospikeConfig.Namespaces` configuration.
-   The cluster security stanza `security: {}` can only be activated if security is not enabled. Cluster security cannot be disabled on an already-deployed cluster.
-   A namespace storage device cannot be resized. No new storage devices can be added.
-   Block device re-usage requires two update operations: one to remove the block device from a namespace, and a second to add the block device to a different namespace.
-   MultiPodPerHost cannot be updated.

## Restricted configuration parameters

Several of the following parameters either cannot be changed at any time, or cannot be updated after the cluster has been deployed.

### Cannot be set

These values cannot be given in the `aerospikeConfig` section of the YAML configuration file. These are fixed or determined at runtime.

-   namespaces\[<index>\].rack-id
-   service.node-id
-   service.cluster-name
-   network.service.access-address
-   network.service.alternate-access-address
-   network.service.tls-access-address
-   network.service.tls-alternate-access-address
-   network.heartbeat.mode

### Cannot be updated

The following values cannot be changed after the first deployment of a cluster:

-   network.service.port
-   network.service.access-port
-   network.service.alternate-access-port
-   network.service.tls-port
-   network.service.tls-access-port
-   network.service.tls-alternate-access-port
-   network.heartbeat.port
-   network.heartbeat.tls-port
-   network.fabric.port
-   network.fabric.tls-port

## Other limitations

-   Aerospike Database Community Edition is not supported. AKO only supports Aerospike Database Enterprise and Federal editions.
-   Multi-site clustering is not supported. Aerospike clusters cannot be deployed across multiple Kubernetes clusters.
-   In-memory only namespaces cannot be configured with strong consistency on a Kubernetes deployment.
-   Batch scale-down is not supported for strong consistency clusters.
-   IPv6 is not supported.