Skip to content

[DOC-13229] Create the Release Note for CAO 2.8.1 #10

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 39 additions & 67 deletions modules/ROOT/pages/release-notes.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
= Release Notes for Couchbase Autonomous Operator {operator-version-minor}
include::partial$constants.adoc[]

Autonomous Operator {operator-version-minor} release provides full support for Couchbase Server 7.6, and several improvements to Pod Scheduling and Networking, as well as a number of minor fixes.
Autonomous Operator {operator-version-minor} introduces a preview of our new Cluster Migration functionality well as a number of other improvements and minor fixes.

Take a look at the xref:whats-new.adoc[What's New] page for a list of new features and improvements that are available in this release.

Expand All @@ -22,108 +22,80 @@ There is no direct upgrade path from versions prior to 2.2.0.
To upgrade from a 1.x, 2.0.x, or 2.1.x release, you must first upgrade to 2.4.x, paying particular attention to supported Kubernetes platforms and Couchbase Server versions.
Refer to the xref:2.4@operator::howto-operator-upgrade.adoc[Operator 2.4 upgrade steps] if upgrading from a pre-2.2 release.

=== Upgrading from 2.2, 2.3, 2.4, 2.5, or 2.6
=== Upgrading from 2.2, 2.3, 2.4, 2.5, 2.6, or 2.7

There are no additional upgrade steps when upgrading from these versions, and you may follow the xref:howto-operator-upgrade.adoc[standard upgrade process].
However, due to https://issues.couchbase.com/browse/K8S-3097[K8S-3097^], all users will encounter a mandatory upgrade cycle when upgrading from a release older than 2.5.0, to versions 2.5.0, 2.5.1, or 2.6.0 through 2.6.3, to expose the missing Indexer HTTPS Port (see xref:server:install:install-ports.adoc#detailed-port-description[Detailed Port Description] for network port requirements).
This behavior has changed in versions 2.5.2, 2.6.4, and 2.7.0, and there is no mandatory upgrade cycle -- the missing port is added the next time there is a regular maintenance activity that involves Pod creation.
[IMPORTANT]
====
An upgrade cycle is a relatively heavyweight operation that requires all pods in the cluster to be replaced, and data transferred between the old and new pods.
The time taken to perform this operation is dependent on network bandwidth, disk IO and the amount of data resident in the database.
For large, production databases, ensure an adequate maintenance window is scheduled as to minimize any disruption to clients and other business critical functions.

For further information read the xref:concept-upgrade.adoc[Couchbase Upgrade] concepts page.
====

[#release-v270]
== Release 2.7.0
include::partial$couchbase-operator-release-notes-2.8.1.adoc[]

Couchbase Autonomous Operator 2.7.0 was released in August 2024.

[#changes-in-behavior-v270]
=== Changes in Behaviour
[#release-v280]
== Release 2.8.0

==== Delta Recovery / In-Place Upgrades
Couchbase Autonomous Operator 2.8.0 was released in March 2025.

The `DeltaRecovery` upgrade strategy added in Operator 2.6 has been replaced by `InPlaceUpgrade`, to better reflect the actual behaviour (not every Service can be Delta Recovered), and `DeltaRecovery` is now deprecated.
[#changes-in-behavior-v280]
=== Changes in Behaviour

==== Storage Backend Migration
==== Admission Controller Changes

In Server 7.6 it is now possible to migrate between the Couchstore and Magma storage backends, as described in xref:7.6@server:manage/manage-buckets/migrate-bucket.adoc[Migrate a Bucket’s Storage Backend].
Operator will automatically start the required Rebalances if it detects an unresolved Storage backend change.
Storage Backend can also be configured using annotations, see xref:reference-annotations.adoc#bucket-backend-configuration[Bucket Backend Configuration] for more details.
The Dynamic Admission Controller (DAC) will now warn if any cluster settings don't match our xref:best-practices.adoc#production-deployments[Best Practices for Production Deployments].

==== Query Service Settings
The DAC will now prevent changes to the `CouchbaseCluster` spec while a hibernation is taking place.
If hibernation is enabled while a cluster is migrating, upgrading, scaling, or rebalancing, that process will conclude before the cluster enters hibernation. The DAC will warn when this is the case, and it will be visible in the operator logs.

Over time, a significant gap had appeared between the Query Service settings available in Couchbase Server, and the ones exposed via the `CouchbaseCluster` CRD in Autonomous Operator.
This has been addressed in CAO 2.7.0, and the following cluster-wide settings are now available:
To prevent any invalid resources failing to reconcile (i.e. if the DAC is not deployed in the current environment), the DAC Validation is now run at the beginning of the reconciliation loop.
Any invalid resources will be skipped for reconciliation, marked as `NotValid`, and logged.

* Server 6.5+: `queryPipelineBatch`, `queryPipelineCap`, `queryScanCap`, `queryTimeout`, `queryPreparedLimit`, `queryCompletedLimit`, `queryCompletedThreshold`, `queryLogLevel`, `queryMaxParallelism`.
* Server 7.0+: `queryTxTimeout`, `queryMemoryQuota`, `queryUseCBO`, `queryCleanupClientAttempts`, `queryCleanupLostAttempts`, `queryCleanupWindow`, `queryNumAtrs`.
* Server 7.6+: `queryNodeQuota`, `queryUseReplica`, `queryNodeQuotaValPercent`, `queryNumCpus`, `queryCompletedMaxPlanSize`.
==== Bucket and Index Service Settings

Note that `queryNodeQuota` is being exposed via the existing xref:resource/couchbasecluster.adoc#couchbaseclusters-spec-cluster-queryservicememoryquota[`spec.cluster.queryServiceMemoryQuota`].
For Server versions prior to 7.6, this value is used to determine Pod resource requirements, and from version 7.6 onwards will also be used to set `queryNodeQuota` on the Couchbase Server cluster (see https://issues.couchbase.com/browse/K8S-3436[K8S-3436^]).
In a previous version of the Operator, `enablePageBloomFilter` was unfortunately missed from the Index Service settings.
This has been addressed in CAO 2.8.0, and it is now available as xref:resource/couchbasecluster.adoc#couchbaseclusters-spec-cluster-indexer-enablepagebloomfilter[`couchbaseclusters.spec.cluster.indexer.enablePageBloomFilter`].

Note that `queryNumCpus` requires a restart of the Query Service to take effect.
In practice in a Kubernetes environment, this means that this will only affect Pods started after the setting has been updated.
Until CAO 2.8.0, Bucket Compaction settings were only available to be set in the xref:resource/couchbasecluster.adoc[`CouchbaseCluster`] resource, at xref:resource/couchbasecluster.adoc#couchbaseclusters-spec-cluster-autocompaction[`couchbaseclusters.spec.cluster.autoCompaction`].
These settings have now been added to the xref:resource/couchbasebucket.adoc[`CouchbaseBucket`] resource at xref:resource/couchbasebucket.adoc#couchbasebuckets-spec-autocompaction[`couchbasebuckets.spec.autoCompaction`].

[IMPORTANT]
====
Prior to Operator 2.7.0, the above Query Service settings could still be set directly on the cluster.
Prior to Operator 2.8.0, the above settings could still be set directly on the cluster.

To avoid these being reset to default values during the CAO upgrade, any of the above settings that have been changed must be added to the `CouchbaseCluster` resource during the upgrade.
To avoid these being reset to default values during the CAO upgrade, any of the above settings that have been changed must be added to the appropriate resource during the upgrade.

Specifically, this needs to be done _after_ updating the CRDs, and _before_ installing the new Operator

For further information see xref:howto-operator-upgrade.adoc#update-existing-resources[Update Existing Resources].
====

==== Audit Log Pruning

With the addition of native pruning of rotated Audit Logs in Server 7.6, the xref:resource/couchbasecluster.adoc#couchbaseclusters-spec-logging-audit-garbagecollection[`garbageCollection`] sidecar is now deprecated.

==== Miscellaneous Changes

* `cao collect logs` now has improved handling of larger clusters (https://issues.couchbase.com/browse/K8S-3322[K8S-3322^]).
* xref:resource/couchbasecluster.adoc#couchbaseclusters-spec-networking-exposedfeatures[`couchbaseclusters.spec.networking.exposedFeatures`] now includes `backup` as an option, allowing external access for the `cbbackupmgr` tool (https://issues.couchbase.com/browse/K8S-3508[K8S-3508^]).
* Any options specified at xref:resource/couchbasecluster.adoc#couchbaseclusters-spec-security-securitycontext[`couchbaseclusters.spec.security.securityContext`] are now also applied to the Operator Backup container (https://issues.couchbase.com/browse/K8S-3417[K8S-3417^]).
* It is possible to set a longer Termination Grace Period on the Cloud Native Gateway container with xref:resource/couchbasecluster.adoc#couchbaseclusters-spec-networking-cloudnativegateway-terminationgraceperiodseconds[`terminationGracePeriodSeconds`] (https://issues.couchbase.com/browse/K8S-3257[K8S-3257^]).
* A number of new metrics have been added, see xref:reference-prometheus-metrics.adoc[Prometheus Metrics Reference] for details.
==== Metrics Changes

[#fixed-issues-v270]
=== Fixed Issues
A number of new metrics have been added, see xref:reference-prometheus-metrics.adoc[Prometheus Metrics Reference] for details.

[#table-fixed-issues-v270,cols="25,66"]
|===
| Issue | Description
It is now possible to include the Couchbase Cluster UUID, or Cluster UUID and Cluster Name, as labels with any Operator metric that is related to a specific Couchbase Cluster.
This can be enabled by setting `optional-metric-labels` to either `uuid-only` or `uuid-and-name`, when using xref:tools/cao.adoc#cao-create-operator-flags[cao create operator] or xref:tools/cao.adoc#cao-generate-operator-flags[cao generate operator].

a| https://issues.couchbase.com/browse/K8S-3377[K8S-3377^]
a| *Summary:* Previously the `TestTLSRotateCAKillPodAndKillOperator` test was failing with Server 7.6.
While adding the Couchbase Cluster UUID and Cluster Name labels, it was discovered that there were inconsistencies regarding the Kubernetes Namespace and Cluster Resource Name labels in some of the existing metrics.
Some had separate labels for `namespace` and `name`, and some had a combined `namespace/name` label.
In order to provide consistency, all metrics by default now have separate `name` and `namespace` labels.
The previous behavior, where a small number of metrics had the combined form of the label, can be achieved by setting `separate-cluster-namespace-and-name` to `false`, when using xref:tools/cao.adoc#cao-create-operator-flags[cao create operator] or xref:tools/cao.adoc#cao-generate-operator-flags[cao generate operator].

a| https://issues.couchbase.com/browse/K8S-3391[K8S-3391^]
a| *Summary:* Previously the Operator was not correctly deleting unmanaged XDCR Remote Cluster References.
==== Annotation Changes

a| https://issues.couchbase.com/browse/K8S-3452[K8S-3452^]
a| *Summary:* Previously the Operator was triggering a mandatory upgrade cycle when upgrading from 2.4.x or earlier.
===== Storage Backend Migration

a| https://issues.couchbase.com/browse/K8S-3587[K8S-3587^]
a| *Summary:* Previously the `eventing_manage_functions` RBAC role was missing from the list of cluster roles.
As an enhancement to the Couchstore/Magma migration functionality added in Operator 2.7, CAO 2.8.0 adds two new annotations:

|===
* Bucket Migrations are now disabled by default, to prevent unexpected node rebalances. These can be enabled with xref:reference-annotations.adoc#cao-couchbase-combuckets-enablebucketmigrationroutines[`cao.couchbase.com/buckets.enableBucketMigrationRoutines`].
* Similar to a maintenance upgrade, it is now possible to specify how many Pods can be migrated at a time with xref:reference-annotations.adoc#cao-couchbase-combuckets-maxconcurrentpodswaps[`cao.couchbase.com/buckets.maxConcurrentPodSwaps`].

[#known-issues-v270]
=== Known Issues
===== History Retention

[#table-known-issues-v270,cols="25,66"]
|===
| Issue | Description
The annotations related to History Retention, that were added in Operator 2.4.1, have now been added to the xref:resource/couchbasebucket.adoc[`CouchbaseBucket`], and xref:resource/couchbasecollection.adoc[`CouchbaseCollection`] resources, at xref:resource/couchbasebucket.adoc#couchbasebuckets-spec-historyretention[`couchbasebuckets.spec.historyRetention`], and xref:resource/couchbasecollection.adoc#couchbasecollections-spec-history[`couchbasecollections.spec.history`], respectively.

a| https://issues.couchbase.com/browse/K8S-3632[K8S-3632^]
a| *Summary:* It is not currently possible to set xref:resource/couchbasecollection.adoc#couchbasecollections-spec-maxttl[`couchbasecollections.spec.maxTTL`] to `-1` to disable expiry.
The History Retention annotations should be considered deprecated, and it should be noted that if used, they will take precedence over the equivalent values in the resources.
Care should be taken to make sure that the annotations are removed as soon as the resources have been updated with the new attributes.

|===
include::partial$couchbase-operator-release-notes-2.8.0.adoc[]

== Feedback

Expand Down
76 changes: 76 additions & 0 deletions modules/ROOT/partials/couchbase-operator-release-notes-2.8.0.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@

[#fixed-issues-v280]
=== Fixed Issues

[#table-fixed-issues-v280,cols="25,66"]
|===
| Issue | Description

a| https://jira.issues.couchbase.com/browse/K8S-3558[K8S-3558^]
a| *Summary:* Operator commences an In-place Upgrade when the cluster is under-resourced.

a| https://jira.issues.couchbase.com/browse/K8S-3579[K8S-3579^]
a| *Summary:* Operator tries to change invalid bucket configurations in a loop.

a| https://jira.issues.couchbase.com/browse/K8S-3591[K8S-3591^]
a| *Summary:* Operator crashes if Incremental Backup is missing schedule.

a| https://jira.issues.couchbase.com/browse/K8S-3596[K8S-3596^]
a| *Summary:* Crash in Operator due to invalid memory access.

a| https://jira.issues.couchbase.com/browse/K8S-3605[K8S-3605^]
a| *Summary:* Upgrade Swap Rebalance is retried with different parameters on Operator Pod deletion.

a| https://jira.issues.couchbase.com/browse/K8S-3609[K8S-3609^]
a| *Summary:* Hibernation fails to bring back any Pod with error extracting image version.

a| https://jira.issues.couchbase.com/browse/K8S-3621[K8S-3621^]
a| *Summary:* Shadowed Secret did not get updated.

a| https://jira.issues.couchbase.com/browse/K8S-3632[K8S-3632^]
a| *Summary:* Unable to set -1 for Collection-level `maxTTL`.

a| https://jira.issues.couchbase.com/browse/K8S-3639[K8S-3639^]
a| *Summary:* Operator loses track of pending Pods when an Eviction of the Operator Pod occurs.

a| https://jira.issues.couchbase.com/browse/K8S-3641[K8S-3641^]
a| *Summary:* Crash in `handleVolumeExpansion` if `enableOnlineVolumeExpansion` is True but no Volume Mounts configured.

a| https://jira.issues.couchbase.com/browse/K8S-3655[K8S-3655^]
a| *Summary:* Clear Upgrade condition if the Operator isn't performing an upgrade.

a| https://jira.issues.couchbase.com/browse/K8S-3659[K8S-3659^]
a| *Summary:* When scaling down, Cluster does not maintain balance across Server Groups.

a| https://jira.issues.couchbase.com/browse/K8S-3696[K8S-3696^]
a| *Summary:* DAC prevents configuration of multiple XDCR Replications of same Buckets to different remote Clusters.

a| https://jira.issues.couchbase.com/browse/K8S-3772[K8S-3772^]
a| *Summary:* Self-Certification: Artifacts PVC should use `--storage-class` parameter when creating the Certification Pod.

a| https://jira.issues.couchbase.com/browse/K8S-3788[K8S-3788^]
a| *Summary:* Operator container crashes when there is a managed Scope/Collection Group added for the Ephemeral Bucket.

|===


[#known-issues-v280]
=== Known Issues

[#table-known-issues-v280,cols="25,66"]
|===
| Issue | Description

a| https://jira.issues.couchbase.com/browse/K8S-3617[K8S-3617^]
a| *Summary:* It is not currently possible to set xref:resource/couchbasecluster.adoc#couchbaseclusters-spec-cluster-indexer-redistributeindexes[`couchbaseclusters.spec.cluster.indexer.redistributeIndexes`] from True to False during a reconciliation.

a| https://jira.issues.couchbase.com/browse/K8S-3908[K8S-3908^]
a| *Summary:* Metric `couchbase_operator_memory_under_management_bytes` is incorrectly showing 0.

a| https://jira.issues.couchbase.com/browse/K8S-3909[K8S-3909^]
a| *Summary:* Metric `couchbase_operator_cpu_under_management` is incorrectly showing 0.

a| https://jira.issues.couchbase.com/browse/K8S-3910[K8S-3910^]
a| *Summary:* Operator tries to migrate storage backend of buckets even before couchbase cluster is in 7.6.0+.

|===
29 changes: 29 additions & 0 deletions modules/ROOT/partials/couchbase-operator-release-notes-2.8.1.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
[#release-281]
== Release 2.8.1 (June 2025)

Couchbase Operator 2.8.1 was released in June 2025.
This maintenance release contains fixes to issues.

[#fixed-issues-v281]
== Fixed Issues


[#table-fixed-issues-v281,cols="25,66"]


*https://jira.issues.couchbase.com/browse/K8S-3793/[K8S-3793]*::

Fixed a bug in Local Persistent Volume comparison logic that previously triggered unnecessary pod rebalancing when comparing existing and desired states, despite no actual differences being detected.

*https://jira.issues.couchbase.com/browse/K8S-3840/[K8S-3840]*::

Due to ephemeral volumes removing the staging directory, backups will fail if the defaultRecoveryMethod is set to resume. The admission controller will now invalidate backups using ephemeral volumes unless the defaultRecoveryMethod is set to either purge or none.

*https://jira.issues.couchbase.com/browse/K8S-3889/[K8S-3889]*::

Inplace upgrades are not supported prior to Couchbase Server Versions 7.2.x due to a required change in the startup files required by Couchbase Server.