{
  "id": "prepare-clusters",
  "title": "Prepare participating clusters",
  "url": "https://redis.io/docs/latest/operate/kubernetes/7.8.4/active-active/prepare-clusters/",
  "summary": "Prepare your participating RECs to be part of an Active-Active database deployment.",
  "content": "\n\n\n## Prepare participating clusters\n\nBefore 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.\n\n1. Configure the [admission controller and ValidatingWebhook]().\n\n2. Create two or more [RedisEnterpriseCluster (REC) custom resources]() with enough [memory resources]().\n   * Name of each REC (`\u003crec-name\u003e`)\n   * Namespace for each REC (`\u003crec-namespace\u003e`)\n\n3. Configure the REC [`ingressOrRoutes` field]() and [create DNS records]().\n   * REC API hostname (`api-\u003crec-name\u003e-\u003crec-namespace\u003e.\u003csubdomain\u003e`)\n   * Database hostname suffix (`-db-\u003crec-name\u003e-\u003crec-namespace\u003e.\u003csubdomain\u003e`)\n\nNext you'll [collect credentials](#collect-rec-credentials) for your participating clusters and create secrets for the RedisEnterprsieRemoteCluster (RERC) to use.\n\nFor a list of example values used throughout this article, see the [Example values](#example-values) section.\n\n### Preview versions\n\nIf you are using a preview version of these features (operator version 6.4.2-4 or 6.4.2-5), you'll need to enable the Active-Active controller with the following steps. You need to do this only once per cluster. We recommend using the fully supported 6.4.2-6 version.\n\n1. Download the custom resource definitions (CRDs) for the most recent release (6.4.2-4) from [redis-enterprise-k8s-docs Github](https://github.com/RedisLabs/redis-enterprise-k8s-docs/tree/master/crds).\n\n1. Apply the new CRDs for the Redis Enterprise Active-Active database (REAADB) and Redis Enterprise remote cluster (RERC) to install those controllers.\n\n    ```sh\n    kubectl apply -f crds/reaadb_crd.yaml\n    kubectl apply -f crds/rerc_crd.yaml\n    ```\n\n1. Enable the Active-Active and remote cluster controllers on the operator ConfigMap.\n\n    ```sh\n    kubectl patch cm  operator-environment-config --type merge --patch \"{\\\"data\\\": \\\n    {\\\"ACTIVE_ACTIVE_DATABASE_CONTROLLER_ENABLED\\\":\\\"true\\\", \\\n    \\\"REMOTE_CLUSTER_CONTROLLER_ENABLED\\\":\\\"true\\\"}}\"\n\n## Collect REC credentials\n\nTo communicate with other clusters, all participating clusters will need access to the admin credentials for all other clusters.\n\n1. Create a file to hold the admin credentials for all participating RECs (such as `all-rec-secrets.yaml`).\n\n1. Within that file, create a new secret for each participating cluster named `redis-enterprise-\u003crerc-name\u003e`.\n\n    The example below shows a file (`all-rec-secrets.yaml`) holding secrets for two participating clusters:\n\n    ```yaml\n    apiVersion: v1\n    data:\n      password: \n      username: \n    kind: Secret\n    metadata:\n      name: redis-enterprise-rerc-ohare\n    type: Opaque\n\n    ---\n\n    apiVersion: v1\n    data:\n      password: \n      username: \n    kind: Secret\n    metadata:\n      name: redis-enterprise-rerc-reagan\n    type: Opaque\n\n    ```\n\n1. Get the REC credentials secret for each participating cluster.\n\n    ```sh\n    kubectl get secret -o yaml \u003crec-name\u003e\n    ```\n\n    The admin credentials secret for an REC named `rec-chicago` would be similar to this:\n\n    ```yaml\n    apiVersion: v1\n    data:\n      password: ABcdef12345\n      username: GHij56789\n    kind: Secret\n    metadata:\n      name: rec-chicago\n    type: Opaque\n    ```\n\n1. Add the username and password to the new secret for that REC and namespace.\n\n    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`).\n\n    ```yaml\n    apiVersion: v1\n    data:\n      password: ABcdef12345\n      username: GHij56789\n    kind: Secret\n    metadata:\n      name: redis-enterprise-rerc-ohare\n    type: Opaque\n\n    ---\n\n    apiVersion: v1\n    data:\n      password: KLmndo123456\n      username: PQrst789010\n    kind: Secret\n    metadata:\n      name: redis-enterprise-rerc-reagan\n    type: Opaque\n\n    ```\n\n1. Apply the file of collected secrets to every participating REC.\n\n    ```sh\n    kubectl apply -f \u003call-rec-secrets-file\u003e\n    ```\n\n   If the admin credentials for any of the clusters changes, the file will need to be updated and reapplied to all clusters.\n\n## Next steps\n\nNow you are ready to [create your Redis Enterprise Active-Active database]().\n\n## Example values\n\nThis article uses the following example values:\n\n#### Example cluster 1\n\n* REC name: `rec-chicago`\n* REC namespace: `ns-illinois`\n* RERC name: `rerc-ohare`\n* RERC secret name: `redis-enterprise-rerc-ohare`\n* API FQDN: `api-rec-chicago-ns-illinois.example.com`\n* DB FQDN suffix: `-db-rec-chicago-ns-illinois.example.com`\n\n#### Example cluster 2\n\n* REC name: `rec-arlington`\n* REC namespace: `ns-virginia`\n* RERC name: `rerc-raegan`\n* RERC secret name: `redis-enterprise-rerc-reagan`\n* API FQDN: `api-rec-arlington-ns-virginia.example.com`\n* DB FQDN suffix: `-db-rec-arlington-ns-virginia.example.com`\n",
  "tags": ["docs","operate","kubernetes"],
  "last_updated": "2026-04-08T12:21:52-07:00"
}

