March 23, 2025
+ 12
Couchbase Operator uses special annotations to configure specific resources.

Bucket Backend Configuration

Managed Buckets

cao.couchbase.com/buckets.defaultStorageBackend

Used to configure the default storage backend for managed CouchbaseBucket. Changing the storage backend of a pre-existing bucket is only supported on Couchbase Server version 7.6.0 Defaults to couchstore, accepts either couchstore or magma.

Unmanaged Buckets

cao.couchbase.com/buckets.targetUnmanagedBucketStorageBackend

Used to force a storage backend on all buckets in a Couchbase Cluster. This configuration only takes action if bucket management is disabled When configured the Couchbase Operator will attempt to force all buckets in a cluster to a particular storage backend. This config is only used with Couchbase Server 7.6.0. Accepts either couchstore or magma.

Bucket Migrations

cao.couchbase.com/buckets.enableBucketMigrationRoutines

By default, bucket storage backend migrations are not enabled as they will result in a swap-rebalance of every effected couchbase node. This means changing the bucket storage backend will be prevented unless this annotation is set to "true". Accepts either true or false.

cao.couchbase.com/buckets.maxConcurrentPodSwaps

Used to change the number of pods affected by a bucket storage backend migration. By default, only one pod will be migrated at a time. This field must be a number greater than 0.

Sample buckets

cao.couchbase.com/sampleBucket

SampleBucket indicates whether the bucket should be treated as a sample bucket. If set to "true", the bucket name will define the sample bucket used and the bucket will be created with the sample bucket configuration, not the CRD specification. SampleBuckets have a memory quota of 200Mi and a couchstore storage backend. If this annotation is changed to false or removed, the bucket will then be updated with the CRD specification. This annotation cannot be added to an existing bucket and should not be used for production clusters.

Cluster Scheduling

Rescheduling To Different Server Groups On Failed Scheduling

cao.couchbase.com/rescheduleDifferentServerGroup

Used to allow Couchbase Operator to attempt to reschedule a pod to a different server group if the pod fails to schedule on the original server group. By default Couchbase Operator will continue to try to schedule the pod on the original server group if it fails to schedule. With this annotation applied to a cluster the operator will try to schedule the pod to a different server group that has the same number of Couchbase Pods in it as the original server group. This is to ensure that the cluster remains balanced across the server groups. This is a best effort attempt and may not always succeed. If there are no server groups with the same number of pods as the original server group the pod will be scheduled on the original server group. Accepts either true or false.

Server Group Shuffling

cao.couchbase.com/shuffleServerGroups

Used to allow Couchbase Operator to shuffle the order that pods are scheduled to defined server groups. By default Couchbase Operator will schedule pods to server groups in lexical order. The shuffling is pseudo-random and is based on the cluster name and namespace, so the same cluster/namespace combination will always shuffle the server groups in the same order. Accepts either true or false.

Pod Rescheduling

Individual Pod Rescheduling

cao.couchbase.com/reschedule

Used to force a pod to be rescheduled. When this annotation is applied to a Couchbase pod, the operator will detect it and reschedule the pod. The pods will either be Swap Rebalanced or go through a InPlaceUpgrade depending on couchbaseclusters.spec.upgradeProcess. Accepts either true or false.

Host Network

Improved Host Network Support

cao.couchbase.com/networking.improvedHostNetwork

Used to enable improved host network support. This annotation is used to enable improved host network support for Couchbase Server pods. When enabled on a cluster the operator will skip SAN validation and will add the underlying Kubernetes hostname a pod is running on to the alternate addresses list.

Cloud Native Gateway

OTLP Endpoint

cao.couchbase.com/networking.cloudNativeGateway.otlp.endpoint

Used to set a custom OTLP endpoint for on Cloud Native Gateway. This annotation is applied to the cluster, and takes a string value (e.g. "https://otel:1234"). The value is passed directly to the Cloud Native Gateway container.