content/operate/kubernetes/active-active/prepare-clusters.md
Before you prepare your clusters to participate in an Active-Active database, make sure you've completed all the following steps and have gathered the information listed below each step.
Configure the [admission controller and ValidatingWebhook]({{< relref "/operate/kubernetes/deployment/quick-start#enable-the-admission-controller/" >}}).
Create two or more [RedisEnterpriseCluster (REC) custom resources]({{< relref "/operate/kubernetes/deployment/quick-start#create-a-redis-enterprise-cluster-rec" >}}) with enough [memory resources]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}).
<rec-name>)<rec-namespace>)Configure the REC [ingressOrRoutes field]({{< relref "/operate/kubernetes/networking/ingressorroutespec" >}}) and [create DNS records]({{< relref "/operate/kubernetes/networking/ingressorroutespec#configure-dns/" >}}).
api-<rec-name>-<rec-namespace>.<subdomain>)-db-<rec-name>-<rec-namespace>.<subdomain>)Next you'll collect credentials for your participating clusters and create secrets for the RedisEnterprsieRemoteCluster (RERC) to use.
For a list of example values used throughout this article, see the Example values section.
To communicate with other clusters, all participating clusters will need access to the admin credentials for all other clusters.
Create a file to hold the admin credentials for all participating RECs (such as all-rec-secrets.yaml).
Within that file, create a new secret for each participating cluster named redis-enterprise-<rerc-name>.
The example below shows a file (all-rec-secrets.yaml) holding secrets for two participating clusters:
apiVersion: v1
data:
password:
username:
kind: Secret
metadata:
name: redis-enterprise-rerc-ohare
type: Opaque
---
apiVersion: v1
data:
password:
username:
kind: Secret
metadata:
name: redis-enterprise-rerc-reagan
type: Opaque
Get the REC credentials secret for each participating cluster.
kubectl get secret -o yaml <rec-name>
The admin credentials secret for an REC named rec-chicago would be similar to this:
apiVersion: v1
data:
password: ABcdef12345
username: GHij56789
kind: Secret
metadata:
name: rec-chicago
type: Opaque
{{< note >}}
The username and password values should be base64 encoded, not plain text.
{{< /note >}}
Add the username and password to the new secret for that REC and namespace.
This example shows the collected secrets file (all-rec-secrets.yaml) for rerc-ohare (representing rec-chicago in namespace ns-illinois) and rerc-reagan (representing rec-arlington in namespace ns-virginia).
apiVersion: v1
data:
password: ABcdef12345
username: GHij56789
kind: Secret
metadata:
name: redis-enterprise-rerc-ohare
type: Opaque
---
apiVersion: v1
data:
password: KLmndo123456
username: PQrst789010
kind: Secret
metadata:
name: redis-enterprise-rerc-reagan
type: Opaque
Apply the file of collected secrets to every participating REC.
kubectl apply -f <all-rec-secrets-file>
If the admin credentials for any of the clusters changes, the file will need to be updated and reapplied to all clusters.
Now you are ready to [create your Redis Enterprise Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb" >}}).
This article uses the example values listed below. They can also be found in the [YAML examples]({{< relref "/operate/kubernetes/reference/yaml/active-active" >}}) section.
Example cluster 1:
rec-chicagons-illinoisrerc-ohareredis-enterprise-rerc-ohareapi-rec-chicago-ns-illinois.example.com-db-rec-chicago-ns-illinois.example.comExample cluster 2:
rec-arlingtonns-virginiarerc-raeganredis-enterprise-rerc-reaganapi-rec-arlington-ns-virginia.example.com-db-rec-arlington-ns-virginia.example.com