Skip to content

Commit df58e36

Browse files
K8s: add REAADB multi-ns content (#1439)
* add REAADB content * add step 4 for secrets * review fix * review edits
1 parent 6b62ea9 commit df58e36

File tree

1 file changed

+39
-3
lines changed

1 file changed

+39
-3
lines changed

content/operate/kubernetes/re-clusters/multi-namespace.md

+39-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ Multiple Redis Enterprise database resources (REDBs) can be associated with a si
1616

1717
To learn more about designing a multi-namespace Redis Enterprise cluster, see [flexible deployment options]({{< relref "/operate/kubernetes/architecture/deployment-options.md" >}}).
1818

19-
{{<warning>}} Multi-namespace installations don't support Active-Active databases (REAADB). Only databases created with the REDB resource are supported in multi-namespace deployments at this time.{{</warning>}}
19+
{{<note>}}
20+
Multi-namespace installations now support Active-Active databases (REAADB) with certain configuration requirements. For details, see [Multi-namespace Active-Active databases](#multi-namespace-active-active-databases).
21+
{{</note>}}
2022

2123
## Prerequisites
2224

@@ -98,7 +100,6 @@ kubectl apply -f role_binding.yaml -n <managed-namespace>
98100
If the REC is configured to watch a namespace without setting the role and role binding permissions, or a namespace that is not yet created, the operator will fail and halt normal operations.
99101
{{</note>}}
100102

101-
102103
## Update Redis Enterprise operator ConfigMap
103104

104105
There are two methods of updating the operator ConfigMap (`operator-environment-config`) to specify which namespaces to manage.
@@ -108,6 +109,9 @@ There are two methods of updating the operator ConfigMap (`operator-environment-
108109

109110
You can create this ConfigMap manually before deployment, or it will be created automatically after the operator was deployed.
110111

112+
{{<warning>}}
113+
Only configure the operator to watch a namespace after the namespace is created and configured with the role/role_binding as explained above. If configured to watch a namespace without setting those permissions or a namespace that is not created yet, the operator will fail and not perform normal operations.
114+
{{</warning>}}
111115

112116
### Method 1: Namespace label (available in versions 6.4.2-4 or later)
113117

@@ -185,6 +189,38 @@ kubectl patch ConfigMap/operator-environment-config \
185189
-p '{"data":{"REDB_NAMESPACES": "<comma,separated,list,of,namespaces,to,watch"}}'
186190
```
187191

192+
## Multi-namespace Active-Active databases
193+
194+
You can also deploy `RedisEnterpriseActiveActiveDatabase` (REAADB) objects in consumer namespaces separate from the Redis Enterprise operator or cluster (REC) namespace.
195+
196+
To do this:
197+
198+
1. Configure each participating cluster’s operator to watch the relevant consumer namespace. See [multi-namespace operator setup](#update-redis-enterprise-operator-configmap).
199+
2. Ensure all Active-Active prerequisites are met as described in [Configure Active-Active]({{<relref "content/operate/kubernetes/active-active/create-reaadb/">}}).
200+
3. In your REAADB custom resource, specify the target consumer namespace using `metadata.namespace`. For each participating cluster, use the `namespace` field under `spec.participatingClusters` to indicate the namespace where the REAADB should be deployed.
201+
4. If you are using a [global database secret]({{<relref "operate/kubernetes/active-active/global-db-secret/">}}), deploy the secret in each consumer namespace.
202+
203+
{{<note>}}
204+
Apply the REAADB object to only one Kubernetes cluster. Based on the specified participating clusters and namespaces, the operator automatically creates the necessary resources in the other clusters.
205+
{{</note>}}
206+
207+
For example:
208+
209+
```yaml
210+
apiVersion: app.redislabs.com/v1alpha1
211+
kind: RedisEnterpriseActiveActiveDatabase
212+
metadata:
213+
name: consumer-reaadb
214+
namespace: consumer-namespace-main
215+
spec:
216+
participatingClusters:
217+
- name: participating-cluster-main
218+
- name: participating-cluster-peer
219+
namespace: consumer-namespace-peer
220+
globalConfigurations:
221+
<your global configurations>
222+
```
223+
188224
{{<warning>}}
189-
Only configure the operator to watch a namespace after the namespace is created and configured with the role/role_binding as explained above. If configured to watch a namespace without setting those permissions or a namespace that is not created yet, the operator will fail and not perform normal operations.
225+
Configure the operator to watch a namespace only after the namespace exists and the required `Role` and `RoleBinding` resources have been applied. If the operator is configured to watch a namespace that lacks these permissions or does not exist, it will fail and halt normal operations.
190226
{{</warning>}}

0 commit comments

Comments
 (0)