Skip to content

Commit 4b1b469

Browse files
committed
[DOC-13229] Create a Release Note for CAO 2.8.1
1 parent 872b19e commit 4b1b469

File tree

3 files changed

+147
-67
lines changed

3 files changed

+147
-67
lines changed

modules/ROOT/pages/release-notes.adoc

Lines changed: 39 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
= Release Notes for Couchbase Autonomous Operator {operator-version-minor}
22
include::partial$constants.adoc[]
33

4-
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.
4+
Autonomous Operator {operator-version-minor} introduces a preview of our new Cluster Migration functionality well as a number of other improvements and minor fixes.
55

66
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.
77

@@ -22,108 +22,80 @@ There is no direct upgrade path from versions prior to 2.2.0.
2222
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.
2323
Refer to the xref:2.4@operator::howto-operator-upgrade.adoc[Operator 2.4 upgrade steps] if upgrading from a pre-2.2 release.
2424

25-
=== Upgrading from 2.2, 2.3, 2.4, 2.5, or 2.6
25+
=== Upgrading from 2.2, 2.3, 2.4, 2.5, 2.6, or 2.7
2626

2727
There are no additional upgrade steps when upgrading from these versions, and you may follow the xref:howto-operator-upgrade.adoc[standard upgrade process].
28-
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).
29-
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.
30-
[IMPORTANT]
31-
====
32-
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.
33-
The time taken to perform this operation is dependent on network bandwidth, disk IO and the amount of data resident in the database.
34-
For large, production databases, ensure an adequate maintenance window is scheduled as to minimize any disruption to clients and other business critical functions.
3528

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

39-
[#release-v270]
40-
== Release 2.7.0
31+
include::partial$couchbase-operator-release-notes-2.8.1.adoc[]
4132

42-
Couchbase Autonomous Operator 2.7.0 was released in August 2024.
43-
44-
[#changes-in-behavior-v270]
45-
=== Changes in Behaviour
33+
[#release-v280]
34+
== Release 2.8.0
4635

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

49-
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.
38+
[#changes-in-behavior-v280]
39+
=== Changes in Behaviour
5040

51-
==== Storage Backend Migration
41+
==== Admission Controller Changes
5242

53-
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].
54-
Operator will automatically start the required Rebalances if it detects an unresolved Storage backend change.
55-
Storage Backend can also be configured using annotations, see xref:reference-annotations.adoc#bucket-backend-configuration[Bucket Backend Configuration] for more details.
43+
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].
5644

57-
==== Query Service Settings
45+
The DAC will now prevent changes to the `CouchbaseCluster` spec while a hibernation is taking place.
46+
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.
5847

59-
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.
60-
This has been addressed in CAO 2.7.0, and the following cluster-wide settings are now available:
48+
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.
49+
Any invalid resources will be skipped for reconciliation, marked as `NotValid`, and logged.
6150

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

66-
Note that `queryNodeQuota` is being exposed via the existing xref:resource/couchbasecluster.adoc#couchbaseclusters-spec-cluster-queryservicememoryquota[`spec.cluster.queryServiceMemoryQuota`].
67-
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^]).
53+
In a previous version of the Operator, `enablePageBloomFilter` was unfortunately missed from the Index Service settings.
54+
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`].
6855

69-
Note that `queryNumCpus` requires a restart of the Query Service to take effect.
70-
In practice in a Kubernetes environment, this means that this will only affect Pods started after the setting has been updated.
56+
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`].
57+
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`].
7158

7259
[IMPORTANT]
7360
====
74-
Prior to Operator 2.7.0, the above Query Service settings could still be set directly on the cluster.
61+
Prior to Operator 2.8.0, the above settings could still be set directly on the cluster.
7562
76-
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.
63+
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.
7764
7865
Specifically, this needs to be done _after_ updating the CRDs, and _before_ installing the new Operator
7966
8067
For further information see xref:howto-operator-upgrade.adoc#update-existing-resources[Update Existing Resources].
8168
====
8269

83-
==== Audit Log Pruning
84-
85-
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.
86-
87-
==== Miscellaneous Changes
88-
89-
* `cao collect logs` now has improved handling of larger clusters (https://issues.couchbase.com/browse/K8S-3322[K8S-3322^]).
90-
* 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^]).
91-
* 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^]).
92-
* 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^]).
93-
* A number of new metrics have been added, see xref:reference-prometheus-metrics.adoc[Prometheus Metrics Reference] for details.
70+
==== Metrics Changes
9471

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

98-
[#table-fixed-issues-v270,cols="25,66"]
99-
|===
100-
| Issue | Description
74+
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.
75+
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].
10176

102-
a| https://issues.couchbase.com/browse/K8S-3377[K8S-3377^]
103-
a| *Summary:* Previously the `TestTLSRotateCAKillPodAndKillOperator` test was failing with Server 7.6.
77+
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.
78+
Some had separate labels for `namespace` and `name`, and some had a combined `namespace/name` label.
79+
In order to provide consistency, all metrics by default now have separate `name` and `namespace` labels.
80+
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].
10481

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

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

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

114-
|===
88+
* 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`].
89+
* 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`].
11590

116-
[#known-issues-v270]
117-
=== Known Issues
91+
===== History Retention
11892

119-
[#table-known-issues-v270,cols="25,66"]
120-
|===
121-
| Issue | Description
93+
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.
12294

123-
a| https://issues.couchbase.com/browse/K8S-3632[K8S-3632^]
124-
a| *Summary:* It is not currently possible to set xref:resource/couchbasecollection.adoc#couchbasecollections-spec-maxttl[`couchbasecollections.spec.maxTTL`] to `-1` to disable expiry.
95+
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.
96+
Care should be taken to make sure that the annotations are removed as soon as the resources have been updated with the new attributes.
12597

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

128100
== Feedback
129101

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
2+
[#fixed-issues-v280]
3+
=== Fixed Issues
4+
5+
[#table-fixed-issues-v280,cols="25,66"]
6+
|===
7+
| Issue | Description
8+
9+
a| https://jira.issues.couchbase.com/browse/K8S-3558[K8S-3558^]
10+
a| *Summary:* Operator commences an In-place Upgrade when the cluster is under-resourced.
11+
12+
a| https://jira.issues.couchbase.com/browse/K8S-3579[K8S-3579^]
13+
a| *Summary:* Operator tries to change invalid bucket configurations in a loop.
14+
15+
a| https://jira.issues.couchbase.com/browse/K8S-3591[K8S-3591^]
16+
a| *Summary:* Operator crashes if Incremental Backup is missing schedule.
17+
18+
a| https://jira.issues.couchbase.com/browse/K8S-3596[K8S-3596^]
19+
a| *Summary:* Crash in Operator due to invalid memory access.
20+
21+
a| https://jira.issues.couchbase.com/browse/K8S-3605[K8S-3605^]
22+
a| *Summary:* Upgrade Swap Rebalance is retried with different parameters on Operator Pod deletion.
23+
24+
a| https://jira.issues.couchbase.com/browse/K8S-3609[K8S-3609^]
25+
a| *Summary:* Hibernation fails to bring back any Pod with error extracting image version.
26+
27+
a| https://jira.issues.couchbase.com/browse/K8S-3621[K8S-3621^]
28+
a| *Summary:* Shadowed Secret did not get updated.
29+
30+
a| https://jira.issues.couchbase.com/browse/K8S-3632[K8S-3632^]
31+
a| *Summary:* Unable to set -1 for Collection-level `maxTTL`.
32+
33+
a| https://jira.issues.couchbase.com/browse/K8S-3639[K8S-3639^]
34+
a| *Summary:* Operator loses track of pending Pods when an Eviction of the Operator Pod occurs.
35+
36+
a| https://jira.issues.couchbase.com/browse/K8S-3641[K8S-3641^]
37+
a| *Summary:* Crash in `handleVolumeExpansion` if `enableOnlineVolumeExpansion` is True but no Volume Mounts configured.
38+
39+
a| https://jira.issues.couchbase.com/browse/K8S-3655[K8S-3655^]
40+
a| *Summary:* Clear Upgrade condition if the Operator isn't performing an upgrade.
41+
42+
a| https://jira.issues.couchbase.com/browse/K8S-3659[K8S-3659^]
43+
a| *Summary:* When scaling down, Cluster does not maintain balance across Server Groups.
44+
45+
a| https://jira.issues.couchbase.com/browse/K8S-3696[K8S-3696^]
46+
a| *Summary:* DAC prevents configuration of multiple XDCR Replications of same Buckets to different remote Clusters.
47+
48+
a| https://jira.issues.couchbase.com/browse/K8S-3772[K8S-3772^]
49+
a| *Summary:* Self-Certification: Artifacts PVC should use `--storage-class` parameter when creating the Certification Pod.
50+
51+
a| https://jira.issues.couchbase.com/browse/K8S-3788[K8S-3788^]
52+
a| *Summary:* Operator container crashes when there is a managed Scope/Collection Group added for the Ephemeral Bucket.
53+
54+
|===
55+
56+
57+
[#known-issues-v280]
58+
=== Known Issues
59+
60+
[#table-known-issues-v280,cols="25,66"]
61+
|===
62+
| Issue | Description
63+
64+
a| https://jira.issues.couchbase.com/browse/K8S-3617[K8S-3617^]
65+
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.
66+
67+
a| https://jira.issues.couchbase.com/browse/K8S-3908[K8S-3908^]
68+
a| *Summary:* Metric `couchbase_operator_memory_under_management_bytes` is incorrectly showing 0.
69+
70+
a| https://jira.issues.couchbase.com/browse/K8S-3909[K8S-3909^]
71+
a| *Summary:* Metric `couchbase_operator_cpu_under_management` is incorrectly showing 0.
72+
73+
a| https://jira.issues.couchbase.com/browse/K8S-3910[K8S-3910^]
74+
a| *Summary:* Operator tries to migrate storage backend of buckets even before couchbase cluster is in 7.6.0+.
75+
76+
|===
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
[#release-281]
2+
== Release 2.8.1 (June 2025)
3+
4+
Couchbase Operator 2.8.1 was released in June 2025.
5+
This maintenance release contains fixes to issues.
6+
7+
[#fixed-issues-v281]
8+
== Fixed Issues
9+
10+
11+
[#table-fixed-issues-v281,cols="25,66"]
12+
13+
14+
*https://jira.issues.couchbase.com/browse/K8S-3773/[K8S-3773]*::
15+
16+
Adding the annotation `cao.couchbase.com/networking.initPodsWithNodeHostname` while also having `cao.couchbase.com/networking.improvedHostNetwork` will result in Couchbase Server pods being initialized with the Nodes hostnames instead of the Kubernetes Service name.
17+
18+
*https://jira.issues.couchbase.com/browse/K8S-3793/[K8S-3793]*::
19+
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.
20+
21+
*https://jira.issues.couchbase.com/browse/K8S-3840/[K8S-3840]*::
22+
23+
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.
24+
25+
*https://jira.issues.couchbase.com/browse/K8S-3889/[K8S-3889]*::
26+
27+
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.
28+
29+
30+
31+
32+

0 commit comments

Comments
 (0)