Release Notes for Couchbase Kubernetes Operator 2.9
This page summarizes the fixes and known issues in Couchbase Kubernetes Operator 2.9.x, and links to the associated issues.
New Features
For information about new features and major improvements made in Couchbase Kubernetes Operator 2.9, see What’s New.
Release 2.9.1 (April 2026)
Couchbase Kubernetes Operator 2.9.1 was released in April 2026. This release contains fixes to issues.
Fixed Issues in 2.9.1
- K8S-3517
-
cao collect logsnow has the option--backup-logswhich allows the collection of backup logs. - K8S-3828
-
Fixed a race condition that allowed Operator to attempt to add a pod before it’s ready on port 18091.
- K8S-3839
-
Fixed an issue could cause the Operator to fail to reconcile the cluster when removing a server group from a cluster that uses
InPlaceUpgrades. - K8S-3918
-
Operator will now allow multiple pods to be attempted to be created and then use all pods that are successfully created.
- K8S-4033
-
Reschedule Annotations can now happen, even while other operations are taking place.
- K8S-4163
-
Fixed an issue with
cao collect logs --upload-logsto ensure it appropriately names the archive. - K8S-4200
-
InPlace Upgrades can now be performed in parallel as long as serverGroups are selected as the UpgradeOrder.
- K8S-4347
-
By default, the operator will now upgrade arbiter nodes last where possible.
- K8S-4361
-
Fixed an issue where a user could take an action on a user that would have no effect.
- K8S-4373
-
Fixed an issue where inconsistent values for vbucket count could lead to repeated failed reconciliations.
- K8S-4431
-
Added the flag
--use-high-cardinality-metrics=trueto thecao create operatorcommand. - K8S-4433
-
Fixed an issue where creating a Memcached bucket could cause the Operator to fail reconciliation if running in mixed mode and before an upgrade to 8.0 completes.
- K8S-4436
-
Fixed an issue where upgrading the Couchbase Kubernetes Operator while the cluster is not fully upgraded causes the Operator to complete the cluster upgrade immediately.
- K8S-4445
-
Fixed an issue where CouchbaseRestore resource status could fail to update from Couchbase Backup containers.
- K8S-4448
-
Fixed an issue where changing the server groups applied to a server class while the Operator was recovering a pod could block reconciliation.
- K8S-4469
-
Fixed an issue where editing a Couchbase bucket storage backend while enabling or disabling
BucketMigrationRoutineson a CouchbaseCluster could trigger a race condition that lead to an unreconcilable state. - K8S-4471
-
Fixed an issue where if
spec.networking.addressFamilyis set toIPv6PriorityorIPv6Only, the Operator created the cluster Service as IPv4 SingleStack, which caused pod launch failures. - K8S-4474
-
Fixed an issue where attempting to change bucket settings during a storage backend migration causes the Operator to fail to reconcile the cluster.
- K8S-4477
-
It’s no longer possible for the admission controller to allow the setting of
collectionHistoryDefaultvalue on Couchstore buckets. - K8S-4482
-
Fixed an issue where attempting to change the
evictionPolicysetting during a storage backend migration whileOnlineEvictionPolicyChangeistruecould lead to an unreconcilable state. - K8S-4485
-
Fixed an issue where manually editing a bucket’s storage backend with
BucketMigrationRoutinesdisabled could prevent the Operator from reconciling the cluster. - K8S-4486
-
Fixed an issue where it was possible to start a Couchbase Server upgrade while a Bucket Storage Backend Migration is in progress.
- K8S-4487
-
Manual Intervention Watchdog now clears the rebalancing condition when entering the Manual Intervention Required condition.
- K8S-4488
-
Fixed an issue where reconciliation can begin before the Manual Intervention Watchdog is fully disabled.
- K8S-4490
-
Fixed an issue where operator would not reconcile cluster settings during stabilization.
- K8S-4496
-
It’s no longer possible to set replicas lower than the minimum required for a CouchbaseCluster when using an Ephemeral bucket.
- K8S-4497
-
Fixed an issue where the dynamic admission controller treated the default bucket storage backend as Couchstore, even on 8.0 clusters.
- K8S-4498
-
Fixed a reconciliation order issue where password policy and user passwords order could cause aborted reconciles.
- K8S-4499
-
Fixed an issue where the operator would not check that a password adheres to the password policy before attempting to rotate it.
- K8S-4504
-
Fixed issues where new values were possible while in mixed mode.
- K8S-4507
-
Fixed issues where new features could be enabled while in mixed mode.
- K8S-4510
-
Fixed issues where new settings could be attempted while in mixed mode.
- K8S-4511
-
You can now specify 'Arbiter' nodes in the services order during an upgrade.
- K8S-4512
-
The Kubernetes Operator no longer updates Index Storage settings twice.
- K8S-4514
-
The Kubernetes Operator no longer updates the Fluent Bit configuration accidentally.
- K8S-4515
-
Fixed an issue where the Kubernetes Operator would not send the correct online change flag when changing the Eviction Policy value.
- K8S-4520
-
The admission controller no longer allows encryption at rest to be enabled in mixed mode.
- K8S-4521
-
Fixed an issue where the admission controller allowed the use of CouchbaseUser’s
spec.userfield for users that reference clusters not running version 8.0.0. - K8S-4566
-
Fixed an issue where a pod on a previous version as part of previous version pod count could inadvertently be upgraded due to a non-image change.
- K8S-4580
-
Added
cao.couchbase.com/upgrade.swapRebalanceIndexServiceUpgradeswhich allows Index service nodes to be swap rebalanced while in place upgrading the rest of the cluster. - K8S-4607
-
Fixed an issue where operator would not respect stabilization period on InPlace upgrades.
- K8S-4614
-
Fixed an issue where version checks were lexicographical and not numerical.
Known Issues in 2.9.1
- K8S-4691
-
If a bucket resource exists and the storage backend is manually changed via the Couchbase Server API, the operator will not perform the swap rebalances necessary to make these changes, even if the cluster’s
spec.buckets.managedisfalse.
Release 2.9 (December 2025)
Couchbase Kubernetes Operator 2.9 was released in December 2025. This release contains fixes to issues and known issues.
Fixed Issues in 2.9
- K8S-1537
-
The cluster UUID is no longer required when creating remote cluster connections.
- K8S-2829
-
You can now specify the
cao.couchbase.com/additionalArgsannotation on CouchbaseBackup and CouchbaseRestore resources to pass additionalcbbackupmgrarguments to the container. - K8S-3016
-
You can now specify the Couchbase Server password policy using the CouchbaseCluster resource.
- K8S-3121
-
You can now specify to preserve the CouchbaseBackupRestore resource after the restore completes.
- K8S-3153
-
New TCP tunables (
tcpKeepAliveIdle,tcpKeepAliveInterval,tcpKeepAliveProbes,tcpUserTimeout) are now available through the CouchbaseCluster resource when using Couchbase Server 8.0. - K8S-3258
-
Added the
logging.configNameReleasePrefixboolean to the Helm chart. The default value isfalse. When set totrue, the Operator prefixes the Fluent Bit configuration with the release name.Couchbase recommends enabling this setting only on new clusters because enabling it on existing clusters triggers recreation of all pods.
- K8S-3371
-
You can now specify environment variables for the CouchbaseBackup and CouchbaseBackupRestore pods to allow
cbbackupmgrtuning. - K8S-3434
-
spec.monitoringis deprecated and no longer attaches an exporter sidecar to the Couchbase Server pod. - K8S-3535
-
If
couchbasecluster.spec.buckets.managedis set tofalse, restoring from backup automatically creates buckets. - K8S-3616
-
New REST API bucket settings for the Data Service are now available in Couchbase Server 8.0.
- K8S-3638
-
You can now specify a merge schedule on the CouchbaseBackup resource.
- K8S-3646
-
You can now set the Query Service
CompletedStreamSizeusing the CouchbaseCluster resource. - K8S-3650
-
When using Couchbase Server 8.0, you can no longer create Memcached buckets.
- K8S-3715
-
Added RBAC roles for users to match new roles added in Couchbase Server 8.0.
- K8S-3786
-
You can now specify
defaultanddisk_io_optimizedfor the Data Service reader threads. - K8S-3917
-
You can now set
overheadMemoryforautoResourceAllocationto specify a static overhead amount. - K8S-3951
-
cao.couchbase.com/autoCompaction.magmaFragmentationPercentagehas been replaced by a field in the CouchbaseCluster CRD. - K8S-4013
-
You can now disable DNS resolution verification when creating pods before activating them in the cluster.
- K8S-4016
-
Fixed a bug that caused a panic when a member pod became unresponsive.
- K8S-4028
-
Added an upgrade stanza to the CouchbaseCluster resource to give users more control over upgrades.
- K8S-4091
-
Updated
spec.networking.addressFamilyto acceptIPv4Only,IPv4Priority,IPv6Only, andIPv6Priority. The existingIPv4andIPv6values retain theIPv4OnlyandIPv6Onlybehavior, so no change is required for existing configurations.These values are deprecated and will be removed in a future release.
The priority or only option determines whether
addressFamilyOnlyis set totrueorfalse. - K8S-4097
-
The MirWatchdog is an out-of-band check that provides additional alerting. It is used when the Operator cannot reconcile a cluster due to reasons outside its control and requires manual user intervention. Scenarios include, but are not limited to, TLS expiration, Couchbase authentication errors, and loss of quorum. This feature is disabled by default but can be enabled and configured by using the
mirWatchdogfield in the CouchbaseCluster CRD. If the cluster enters this condition, it will:-
Set the
cluster_manual_interventiongauge metric to1. -
Add the
ManualInterventionRequiredcondition to the cluster, where possible, with a message describing the reason for entering the MIR state. -
Raise a
ManualInterventionRequiredKubernetes event, with the message describing the reason for entering manual intervention. -
Optionally, skips reconciliation until the manual intervention required state is resolved, that is, until the issue that caused the condition is fixed.
-
- K8S-4101
-
Added support for the Encryption at Rest feature of Couchbase Server 8.0.
- K8S-4108
-
The CouchbaseUser resource now includes an
enabledflag to allow administrators to enable or disable user accounts. - K8S-4109
-
The CouchbaseUser resource now allows the administrators to enforce password change on a user’s first login using the
couchbaseuser.spec.userPassword.requireInitialChangefield. - K8S-4111
-
CouchbaseBucket resources now support
durabilityImpossibleFallbackwith valuesdisabledandfallbackToActiveAck. - K8S-4112
-
Added multiple settings to CouchbaseBucket resources to configure XDCR Conflict Logging.
- K8S-4114
-
Added a CouchbaseCluster resource setting that enables auto‑failover of Ephemeral Buckets with no replicas in Couchbase Server 8.0 and later versions.
- K8S-4117
-
Added
data.diskUsageLimitto the CouchbaseCluster resource to enable Disk Usage Guardrails. - K8S-4118
-
Added support for SDK Telemetry settings in Couchbase Server 8.0 and later versions.
- K8S-4120
-
For CouchbaseBuckets, now the default storage engine is
magmaand the vBucketCount is128. - K8S-4144
-
In the earlier versions of Couchbase Kubernetes Operator, the metrics port annotation
prometheus.io/portwas set to8091, even when TLS was enabled. It now correctly sets to18091. - K8S-4158
-
EvictionPolicy changes can now be applied to an online bucket during a swap rebalance.
- K8S-4161
-
Operator 2.9.0 allows you to set
spec.cluster.analytics.numReplicas. This feature is supported only on Couchbase Server 7.6 and later versions. - K8S-4203
-
Fixed an issue where metrics scrapes became too large when the Operator managed many clusters.
- K8S-4209
-
Full backups can now be resumed.
- K8S-4273
-
Fixed an issue where the Operator failed to remove pods from the cluster.
- K8S-4279
-
Fixed an issue where log message tags were inconsistent.
- K8S-4404
-
Fixed an issue that caused upgrades to fail when image definitions used SHA256 digests.
Known Issues in 2.9
For Couchbase Kubernetes Operator 2.9 released in December 2025, these are the known issues that aren’t yet resolved.
- K8S-3839
-
Removing a server group from a cluster that uses InPlaceUpgrades can cause the Operator to fail to reconcile the cluster.
- K8S-4349
-
The CouchbaseCluster CRD now exceeds the size limit for client-side apply. Use the
--server-sideoption withkubectl applyto apply the resource. - K8S-4433
-
When running in mixed mode and before the upgrade to 8.0 completes, creating a Memcached bucket can cause the Operator to fail reconciliation.
- K8S-4436
-
Upgrading the Couchbase Kubernetes Operator while the cluster is not fully upgraded causes the Operator to complete the cluster upgrade immediately.
- K8S-4445
-
The CouchbaseRestore resource status may fail to update from Couchbase Backup containers. This does not prevent the restore from occurring.
- K8S-4448
-
Changing the server groups applied to a server class while the Operator is recovering a pod can block reconciliation.
- K8S-4456
-
Operator must be paused when using
cao create pod. Otherwise, the Operator identifies the pod as foreign and removes it. - K8S-4469
-
Editing a Couchbase bucket storage backend while enabling or disabling
BucketMigrationRoutineson a CouchbaseCluster can trigger a race condition that leads to an unreconcilable state. - K8S-4471
-
When
spec.networking.addressFamilyis set toIPv6PriorityorIPv6Only, the Operator creates the cluster Service as IPv4 SingleStack, which causes pod launch failures. Patching the Service toPreferDualStack(IPv4, IPv6) allows the cluster to be created. - K8S-4474
-
Attempting to change bucket settings during a storage backend migration causes the Operator to fail to reconcile the cluster.
- K8S-4477
-
The admission controller allows you to set the
collectionHistoryDefaultvalue on Couchstore buckets. This setting has no effect on Couchstore buckets. - K8S-4482
-
Attempting to change the
evictionPolicysetting during a storage backend migration whileOnlineEvictionPolicyChangeistruecan lead to an unreconcilable state. - K8S-4485
-
Manually editing a bucket’s storage backend with BucketMigrationRoutines disabled can prevent the Operator from reconciling the cluster.
- K8S-4486
-
You can start a Couchbase Server upgrade while a Bucket Storage Backend Migration is in progress. This can result in an unreconcilable state.
- K8S-4487
-
Manual Intervention Watchdog does not clear the rebalancing condition when entering the Manual Intervention Required condition.
- K8S-4488
-
Reconciliation can begin before the Manual Intervention Watchdog is fully disabled.
- K8S-4490
-
During stabilization, the Operator reconciles some, but not all CouchbaseCluster settings.
- K8S-4496
-
It is possible to set replicas lower than the minimum required for a CouchbaseCluster when using an Ephemeral bucket.
- K8S-4497
-
The dynamic admission controller treats the default bucket storage backend as Couchstore, even on 8.0 clusters.
- K8S-4498
-
The order of password policy updates and user password changes can affect whether the Operator can make these changes successfully.
- K8S-4499
-
It’s possible to rotate admin credentials to a password that does not meet the cluster password policy, which can prevent the Operator from reconciling the cluster.
- K8S-4504
-
Setting reader and writer threads to
balancedduring an upgrade from Couchbase Server 7.6 to 8.0 can cause memcached to crash. Removing the reader and writer thread settings from the CRD resolves the issue. - K8S-4507
-
Enabling shard affinity in mixed mode, before the cluster fully supports the setting, can cause the Operator to fail reconciliation.
- K8S-4508
-
The Operator may not clear the unreconcilable condition after the resource is fixed.
- K8S-4509
-
Holding a cluster in mixed mode between 7.2.x and 7.6.x can prevent the Operator from reconciling some cluster settings.
- K8S-4510
-
Remaining in mixed mode on older Couchbase Server versions can cause the Operator to log errors due to incorrect version checks.
- K8S-4511
-
You cannot currently specify Arbiter nodes in the services order during an upgrade.
- K8S-4512
-
The Operator can update Index Storage settings twice accidentally.
- K8S-4514
-
The Operator can update the Fluent Bit configuration accidentally.
- K8S-4515
-
While processing a bucket migration, the Operator does not send the correct online change flag for modifications to Couchbase Server when changing the Eviction Policy.
- K8S-4520
-
The admission controller allows encryption at rest to be enabled in mixed mode.
- K8S-4521
-
The admission controller allows use of the Couchbase User
spec.userfield for users that reference clusters not running version 8.0.0.
Feedback
You can have a big impact on future versions of the Operator (and its documentation) by providing Couchbase with your direct feedback and observations. Please feel free to post your questions and comments to the Couchbase Forums.
Licenses for Third-Party Components
The complete list of licenses for Couchbase products is available on the Legal Agreements page. Couchbase is thankful to all of the individuals that have created these third-party components.