Skip to content

Commit 0713944

Browse files
authored
Release Notes for CAO - Couchbase Operator 2-9-0 (#45)
* draft 1 of release notes for cao 2-9-0 * Updated preview file * Updated preview file-a * testing preview * RN regenerated * testing preview 2 * Regenerated the updated release notes * Updated RN and generated whats new * minor edit * minor fix in RN main page * Minor edit in whatsnew * Another minor fix in whatsnew * Formatting fixes * Added n edited whats new from PM * generated the edited n rewritten fixed issues * Minor formatting fixes * replace the term operator with kubernetes * Added Known Issues * minor grammar fix * Additional sections * Added link to Server docs * changed 2-9-0 to 2-9 for consistency * Listed and rewrote 8 more known issues * Added 5 more Known Issues * Updated preview file * Added 11 more Known Issues * Added known issue for K8S 4485
1 parent fc63ec4 commit 0713944

File tree

3 files changed

+385
-54
lines changed

3 files changed

+385
-54
lines changed
Lines changed: 320 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,350 @@
1+
= Release Notes for Couchbase Kubernetes Operator 2.9
2+
:page-toclevels: 2
3+
4+
This page summarizes the fixes and known issues in Couchbase Kubernetes Operator 2.9, and links to the associated issues.
5+
6+
== New Features
7+
8+
For information about new features and major improvements made in Couchbase Kubernetes Operator 2.9, see xref:whats-new.adoc[What's New].
9+
110
[#release-290]
2-
== Release 2.9.0 (November 2025)
11+
== Release 2.9 (December 2025)
312

4-
Couchbase Operator 2.9.0 was released in November 2025.
5-
This maintenance release contains fixes to issues.
13+
Couchbase Kubernetes Operator 2.9 was released in December 2025.
14+
This release contains fixes to issues and known issues.
615

716
[#fixed-issues-v290]
8-
== Fixed Issues
17+
=== Fixed Issues in 2.9
18+
19+
For Couchbase Kubernetes Operator 2.9 released in December 2025, these are the fixed issues.
20+
21+
*https://jira.issues.couchbase.com/browse/K8S-1537/[K8S-1537]*::
22+
23+
The cluster UUID is no longer required when creating remote cluster connections.
24+
25+
*https://jira.issues.couchbase.com/browse/K8S-2829/[K8S-2829]*::
26+
27+
You can now specify the `cao.couchbase.com/additionalArgs` annotation on CouchbaseBackup and CouchbaseRestore resources to pass additional `cbbackupmgr` arguments to the container.
928

29+
*https://jira.issues.couchbase.com/browse/K8S-3016/[K8S-3016]*::
30+
31+
You can now specify the Couchbase Server password policy using the CouchbaseCluster resource.
32+
33+
*https://jira.issues.couchbase.com/browse/K8S-3121/[K8S-3121]*::
34+
35+
You can now specify to preserve the CouchbaseBackupRestore resource after the restore completes.
36+
37+
*https://jira.issues.couchbase.com/browse/K8S-3153/[K8S-3153]*::
38+
39+
New TCP tunables (`tcpKeepAliveIdle`, `tcpKeepAliveInterval`, `tcpKeepAliveProbes`, `tcpUserTimeout`) are now available through the CouchbaseCluster resource when using Couchbase Server 8.0.
1040

1141
*https://jira.issues.couchbase.com/browse/K8S-3258/[K8S-3258]*::
1242

13-
Added a new `logging.configNameReleasePrefix` boolean to the helm chart.
14-
This defaults to false, but setting it to true will prefix the fluent-bit config with the release name.
15-
Setting this to true for existing clusters will trigger recreation of all pods so should only really be used for new clusters.
43+
Added the `logging.configNameReleasePrefix` boolean to the Helm chart.
44+
The default value is `false`.
45+
When set to `true`, the Operator prefixes the Fluent Bit configuration with the release name.
46+
+
47+
Couchbase recommends enabling this setting only on new clusters because enabling it on existing clusters triggers recreation of all pods.
1648

17-
*https://jira.issues.couchbase.com/browse/K8S-4091/[K8S-4091]*::
49+
*https://jira.issues.couchbase.com/browse/K8S-3371/[K8S-3371]*::
50+
51+
You can now specify environment variables for the CouchbaseBackup and CouchbaseBackupRestore pods to allow `cbbackupmgr` tuning.
52+
53+
*https://jira.issues.couchbase.com/browse/K8S-3434/[K8S-3434]*::
54+
55+
`spec.monitoring` is deprecated and no longer attaches an exporter sidecar to the Couchbase Server pod.
56+
57+
*https://jira.issues.couchbase.com/browse/K8S-3535/[K8S-3535]*::
58+
59+
If `couchbasecluster.spec.buckets.managed` is set to `false`, restoring from backup automatically creates buckets.
60+
61+
*https://jira.issues.couchbase.com/browse/K8S-3616/[K8S-3616]*::
62+
63+
New REST API bucket settings for the Data Service are now available in Couchbase Server 8.0.
64+
65+
*https://jira.issues.couchbase.com/browse/K8S-3638/[K8S-3638]*::
66+
67+
You can now specify a merge schedule on the CouchbaseBackup resource.
68+
69+
*https://jira.issues.couchbase.com/browse/K8S-3646/[K8S-3646]*::
70+
71+
You can now set the Query Service `CompletedStreamSize` using the CouchbaseCluster resource.
72+
73+
*https://jira.issues.couchbase.com/browse/K8S-3650/[K8S-3650]*::
74+
75+
When using Couchbase Server 8.0, you can no longer create Memcached buckets.
76+
77+
*https://jira.issues.couchbase.com/browse/K8S-3715/[K8S-3715]*::
78+
79+
Added RBAC roles for users to match new roles added in Couchbase Server 8.0.
80+
81+
*https://jira.issues.couchbase.com/browse/K8S-3786/[K8S-3786]*::
82+
83+
You can now specify `default` and `disk_io_optimized` for the Data Service reader threads.
84+
85+
*https://jira.issues.couchbase.com/browse/K8S-3917/[K8S-3917]*::
86+
87+
You can now set `overheadMemory` for `autoResourceAllocation` to specify a static overhead amount.
1888

19-
Updated the `spec.networking.addressFamily` field to accept `IPv4Only`, `IPv4Priority`, `IPv6Only` and `IPv6Priority`.
20-
The current `IPv4/IPv6` values will have the `Ipv4/6Only` functionality.
21-
I.e.
22-
customers that have set the fields will not see any change.
89+
*https://jira.issues.couchbase.com/browse/K8S-3951/[K8S-3951]*::
2390

91+
`cao.couchbase.com/autoCompaction.magmaFragmentationPercentage` has been replaced by a field in the CouchbaseCluster CRD.
92+
93+
*https://jira.issues.couchbase.com/browse/K8S-4013/[K8S-4013]*::
94+
95+
You can now disable DNS resolution verification when creating pods before activating them in the cluster.
96+
97+
*https://jira.issues.couchbase.com/browse/K8S-4016/[K8S-4016]*::
98+
99+
Fixed a bug that caused a panic when a member pod became unresponsive.
100+
101+
*https://jira.issues.couchbase.com/browse/K8S-4028/[K8S-4028]*::
102+
103+
Added an upgrade stanza to the CouchbaseCluster resource to give users more control over upgrades.
104+
105+
*https://jira.issues.couchbase.com/browse/K8S-4091/[K8S-4091]*::
106+
107+
Updated `spec.networking.addressFamily` to accept `IPv4Only`, `IPv4Priority`, `IPv6Only`, and `IPv6Priority`.
108+
The existing `IPv4` and `IPv6` values retain the `IPv4Only` and `IPv6Only` behavior, so no change is required for existing configurations.
24109
+
25-
These should be considered deprecated and will be removed in a future release.
26-
+
27-
The priority/only choice determines whether `addressFamilyOnly` is true or false.
110+
These values are deprecated and will be removed in a future release.
111+
+
112+
The priority or only option determines whether `addressFamilyOnly` is set to `true` or `false`.
28113

29114
*https://jira.issues.couchbase.com/browse/K8S-4097/[K8S-4097]*::
30115

31-
The MirWatchdog is an out-of-band check that allows for additional alerting to be in place in the unlikely scenario that an Operator is unable to reconcile a cluster due to reasons outside of its controls/capabilities and which therefore require manual intervention by a user to resolve.
32-
Scenarios include but are not limited to, tls expiration, couchbase authentication errors and loss of quorum.
33-
By default this is disabled, but can be enabled and configured using the `mirWatchdog` field in the couchbase cluster CRD.
116+
The MirWatchdog is an out-of-band check that provides additional alerting.
117+
It is used when the Operator cannot reconcile a cluster due to reasons outside its control and requires manual user intervention.
118+
Scenarios include, but are not limited to, TLS expiration, Couchbase authentication errors, and loss of quorum.
119+
This feature is disabled by default but can be enabled and configured by using the `mirWatchdog` field in the CouchbaseCluster CRD.
34120
If the cluster enters this condition, it will:
35121
+
36-
* Set the cluster_manual_intervention gauge metric to 1
37-
* Add (where possible) the `ManualInterventionRequired` condition to the cluster, with a message detailing the reason for entering the MIR state.
38-
* Raise a `ManualInterventionRequired` Kubernetes event, with the event message set to the reason for entering manual intervention
39-
* Optionally, reconciliation will be skipped until the manual intervention required state has been resolved, i.e.
40-
the issue that put the cluster into that condition has been fixed.
122+
. Set the `cluster_manual_intervention` gauge metric to `1`.
123+
. Add the `ManualInterventionRequired` condition to the cluster, where possible, with a message describing the reason for entering the MIR state.
124+
. Raise a `ManualInterventionRequired` Kubernetes event, with the message describing the reason for entering manual intervention.
125+
. Optionally, skips reconciliation until the manual intervention required state is resolved, that is, until the issue that caused the condition is fixed.
126+
127+
*https://jira.issues.couchbase.com/browse/K8S-4101/[K8S-4101]*::
128+
129+
Added support for the Encryption at Rest feature of Couchbase Server 8.0.
130+
131+
*https://jira.issues.couchbase.com/browse/K8S-4108/[K8S-4108]*::
132+
133+
The CouchbaseUser resource now includes an `enabled` flag to allow administrators to enable or disable user accounts.
134+
135+
*https://jira.issues.couchbase.com/browse/K8S-4109/[K8S-4109]*::
136+
137+
The CouchbaseUser resource now allows the administrators to enforce password change on a user’s first login using the `couchbaseuser.spec.userPassword.requireInitialChange` field.
138+
139+
*https://jira.issues.couchbase.com/browse/K8S-4111/[K8S-4111]*::
140+
141+
CouchbaseBucket resources now support `durabilityImpossibleFallback` with values `disabled` and `fallbackToActiveAck`.
142+
143+
*https://jira.issues.couchbase.com/browse/K8S-4112/[K8S-4112]*::
144+
145+
Added multiple settings to CouchbaseBucket resources to configure XDCR Conflict Logging.
146+
147+
*https://jira.issues.couchbase.com/browse/K8S-4114/[K8S-4114]*::
148+
149+
Added a CouchbaseCluster resource setting that enables auto‑failover of Ephemeral Buckets with no replicas in Couchbase Server 8.0 and later versions.
150+
151+
*https://jira.issues.couchbase.com/browse/K8S-4117/[K8S-4117]*::
152+
153+
Added `data.diskUsageLimit` to the CouchbaseCluster resource to enable Disk Usage Guardrails.
154+
155+
*https://jira.issues.couchbase.com/browse/K8S-4118/[K8S-4118]*::
156+
157+
Added support for SDK Telemetry settings in Couchbase Server 8.0 and later versions.
158+
159+
*https://jira.issues.couchbase.com/browse/K8S-4120/[K8S-4120]*::
160+
161+
For CouchbaseBuckets, now the default storage engine is `magma` and the vBucketCount is `128`.
41162

42163
*https://jira.issues.couchbase.com/browse/K8S-4144/[K8S-4144]*::
43164

44-
In prior versions of Couchbase Operator, the metrics port annotation (`prometheus.io/port`) was set to 8091, even if TLS was enabled.
45-
It will now correctly set to 18091.
165+
In the earlier versions of Couchbase Kubernetes Operator, the metrics port annotation `prometheus.io/port` was set to `8091`, even when TLS was enabled.
166+
It now correctly sets to `18091`.
167+
168+
*https://jira.issues.couchbase.com/browse/K8S-4158/[K8S-4158]*::
169+
170+
EvictionPolicy changes can now be applied to an online bucket during a swap rebalance.
46171

47172
*https://jira.issues.couchbase.com/browse/K8S-4161/[K8S-4161]*::
48173

49-
Operator 2.9.0 now allows you to set `spec.cluster.analytics.numReplicas`.
50-
This feature is only supported for couchbase server versions 7.6+.
174+
Operator 2.9.0 allows you to set `spec.cluster.analytics.numReplicas`.
175+
This feature is supported only on Couchbase Server 7.6 and later versions.
176+
177+
*https://jira.issues.couchbase.com/browse/K8S-4203/[K8S-4203]*::
178+
179+
Fixed an issue where metrics scrapes became too large when the Operator managed many clusters.
180+
181+
*https://jira.issues.couchbase.com/browse/K8S-4209/[K8S-4209]*::
182+
183+
Full backups can now be resumed.
184+
185+
*https://jira.issues.couchbase.com/browse/K8S-4273/[K8S-4273]*::
186+
187+
Fixed an issue where the Operator failed to remove pods from the cluster.
188+
189+
*https://jira.issues.couchbase.com/browse/K8S-4279/[K8S-4279]*::
190+
191+
Fixed an issue where log message tags were inconsistent.
192+
193+
*https://jira.issues.couchbase.com/browse/K8S-4404/[K8S-4404]*::
194+
195+
Fixed an issue that caused upgrades to fail when image definitions used SHA256 digests.
196+
197+
[#known-issues-29]
198+
=== Known Issues in 2.9
199+
200+
For Couchbase Kubernetes Operator 2.9 released in December 2025, these are the known issues that aren’t yet resolved.
201+
202+
*https://jira.issues.couchbase.com/browse/K8S-3839/[K8S-3839]*::
203+
204+
Removing a server group from a cluster that uses InPlaceUpgrades can cause the Operator to fail to reconcile the cluster.
205+
206+
*https://jira.issues.couchbase.com/browse/K8S-4349/[K8S-4349]*::
207+
208+
The CouchbaseCluster CRD now exceeds the size limit for client-side apply.
209+
Use the `--server-side` option with `kubectl apply` to apply the resource.
210+
211+
*https://jira.issues.couchbase.com/browse/K8S-4433/[K8S-4433]*::
212+
213+
When running in mixed mode and before the upgrade to 8.0 completes, creating a Memcached bucket can cause the Operator to fail reconciliation.
214+
215+
*https://jira.issues.couchbase.com/browse/K8S-4436/[K8S-4436]*::
216+
217+
Upgrading the Couchbase Kubernetes Operator while the cluster is not fully upgraded causes the Operator to complete the cluster upgrade immediately.
218+
219+
*https://jira.issues.couchbase.com/browse/K8S-4445/[K8S-4445]*::
220+
221+
The CouchbaseRestore resource status may fail to update from Couchbase Backup containers.
222+
This does not prevent the restore from occurring.
223+
224+
*https://jira.issues.couchbase.com/browse/K8S-4448/[K8S-4448]*::
225+
226+
Changing the server groups applied to a server class while the Operator is recovering a pod can block reconciliation.
227+
228+
*https://jira.issues.couchbase.com/browse/K8S-4456/[K8S-4456]*::
229+
230+
Operator must be paused when using `cao create pod`.
231+
Otherwise, the Operator identifies the pod as foreign and removes it.
232+
233+
*https://jira.issues.couchbase.com/browse/K8S-4469/[K8S-4469]*::
234+
235+
Editing a Couchbase bucket storage backend while enabling or disabling `BucketMigrationRoutines` on a CouchbaseCluster can trigger a race condition that leads to an unreconcilable state.
236+
237+
*https://jira.issues.couchbase.com/browse/K8S-4471/[K8S-4471]*::
238+
239+
When `spec.networking.addressFamily` is set to `IPv6Priority` or `IPv6Only`, the Operator creates the cluster Service as IPv4 SingleStack, which causes pod launch failures.
240+
Patching the Service to `PreferDualStack` (IPv4, IPv6) allows the cluster to be created.
241+
242+
*https://jira.issues.couchbase.com/browse/K8S-4474/[K8S-4474]*::
243+
244+
Attempting to change bucket settings during a storage backend migration causes the Operator to fail to reconcile the cluster.
245+
246+
*https://jira.issues.couchbase.com/browse/K8S-4477/[K8S-4477]*::
247+
248+
The admission controller allows you to set the `collectionHistoryDefault` value on Couchstore buckets.
249+
This setting has no effect on Couchstore buckets.
250+
251+
*https://jira.issues.couchbase.com/browse/K8S-4482/[K8S-4482]*::
252+
253+
Attempting to change the `evictionPolicy` setting during a storage backend migration while `OnlineEvictionPolicyChange` is `true` can lead to an unreconcilable state.
254+
255+
*https://jira.issues.couchbase.com/browse/K8S-4485/[K8S-4485]*::
256+
257+
Manually editing a bucket’s storage backend with BucketMigrationRoutines disabled can prevent the Operator from reconciling the cluster.
258+
259+
*https://jira.issues.couchbase.com/browse/K8S-4486/[K8S-4486]*::
260+
261+
You can start a Couchbase Server upgrade while a Bucket Storage Backend Migration is in progress.
262+
This can result in an unreconcilable state.
263+
264+
*https://jira.issues.couchbase.com/browse/K8S-4487/[K8S-4487]*::
265+
266+
Manual Intervention Watchdog does not clear the rebalancing condition when entering the Manual Intervention Required condition.
267+
268+
*https://jira.issues.couchbase.com/browse/K8S-4488/[K8S-4488]*::
269+
270+
Reconciliation can begin before the Manual Intervention Watchdog is fully disabled.
271+
272+
*https://jira.issues.couchbase.com/browse/K8S-4490/[K8S-4490]*::
273+
274+
During stabilization, the Operator reconciles some, but not all CouchbaseCluster settings.
275+
276+
*https://jira.issues.couchbase.com/browse/K8S-4496/[K8S-4496]*::
277+
278+
It is possible to set replicas lower than the minimum required for a CouchbaseCluster when using an Ephemeral bucket.
279+
280+
*https://jira.issues.couchbase.com/browse/K8S-4497/[K8S-4497]*::
281+
282+
The dynamic admission controller treats the default bucket storage backend as Couchstore, even on 8.0 clusters.
283+
284+
*https://jira.issues.couchbase.com/browse/K8S-4498/[K8S-4498]*::
285+
286+
The order of password policy updates and user password changes can affect whether the Operator can make these changes successfully.
287+
288+
*https://jira.issues.couchbase.com/browse/K8S-4499/[K8S-4499]*::
289+
290+
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.
291+
292+
*https://jira.issues.couchbase.com/browse/K8S-4504/[K8S-4504]*::
293+
294+
Setting reader and writer threads to `balanced` during an upgrade from Couchbase Server 7.6 to 8.0 can cause memcached to crash.
295+
Removing the reader and writer thread settings from the CRD resolves the issue.
296+
297+
*https://jira.issues.couchbase.com/browse/K8S-4507/[K8S-4507]*::
298+
299+
Enabling shard affinity in mixed mode, before the cluster fully supports the setting, can cause the Operator to fail reconciliation.
300+
301+
*https://jira.issues.couchbase.com/browse/K8S-4508/[K8S-4508]*::
302+
303+
The Operator may not clear the unreconcilable condition after the resource is fixed.
304+
305+
*https://jira.issues.couchbase.com/browse/K8S-4509/[K8S-4509]*::
306+
307+
Holding a cluster in mixed mode between 7.2.x and 7.6.x can prevent the Operator from reconciling some cluster settings.
308+
309+
*https://jira.issues.couchbase.com/browse/K8S-4510/[K8S-4510]*::
310+
311+
Remaining in mixed mode on older Couchbase Server versions can cause the Operator to log errors due to incorrect version checks.
312+
313+
*https://jira.issues.couchbase.com/browse/K8S-4511/[K8S-4511]*::
314+
315+
You cannot currently specify Arbiter nodes in the services order during an upgrade.
316+
317+
*https://jira.issues.couchbase.com/browse/K8S-4512/[K8S-4512]*::
318+
319+
The Operator can update Index Storage settings twice accidentally.
320+
321+
*https://jira.issues.couchbase.com/browse/K8S-4514/[K8S-4514]*::
322+
323+
The Operator can update the Fluent Bit configuration accidentally.
324+
325+
*https://jira.issues.couchbase.com/browse/K8S-4515/[K8S-4515]*::
326+
327+
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.
328+
329+
*https://jira.issues.couchbase.com/browse/K8S-4520/[K8S-4520]*::
330+
331+
The admission controller allows encryption at rest to be enabled in mixed mode.
332+
333+
*https://jira.issues.couchbase.com/browse/K8S-4521/[K8S-4521]*::
51334

52-
*https://jira.issues.couchbase.com/browse/K8S-4270/[K8S-4270]*::
335+
The admission controller allows use of the Couchbase User `spec.user` field for users that reference clusters not running version 8.0.0.
53336

54-
Potentially where we use `kubectl apply` for CRDS, we add a note that this error is possible in 2.9+, and to add `--server-side` to the `kubectl apply` command.
337+
== Feedback
55338

56-
*https://jira.issues.couchbase.com/browse/K8S-4286/[K8S-4286]*::
339+
You can have a big impact on future versions of the Operator (and its documentation) by providing Couchbase with your direct feedback and observations.
340+
Please feel free to post your questions and comments to the https://forums.couchbase.com/c/couchbase-server/Kubernetes[Couchbase Forums].
57341

58-
In the latest build,
59-
the mirWatchdog feature is now set to off by default.
60-
The sequence has been adjusted to move the skip function after the validationRunner,
61-
and changes have been included in the CRD.
62-
Additionally,
63-
the system now skips the DAC during status changes.
64-
These updates aim to streamline operations and improve efficiency.
65-
// Generated by [chatgpt:gpt-4o]
342+
== Licenses for Third-Party Components
66343

344+
The complete list of licenses for Couchbase products is available on the https://www.couchbase.com/legal/agreements[Legal Agreements] page.
345+
Couchbase is thankful to all of the individuals that have created these third-party components.
67346

347+
== More Information
68348

349+
* xref:server:release-notes:relnotes.adoc[Couchbase Server Release Notes Version 8.0]
350+
* xref:server:introduction:whats-new.adoc[What's New in Couchbase Server Version 8.0]

0 commit comments

Comments
 (0)