{
  "id": "create-reaadb",
  "title": "Create Active-Active database (REAADB)",
  "url": "https://redis.io/docs/latest/operate/kubernetes/8.0/active-active/create-reaadb/",
  "summary": "",
  "content": "\n\n\n## Prerequisites\n\nTo create 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](https://redis.io/docs/latest/operate/kubernetes/deployment/quick-start#enable-the-admission-controller/).\n   These are installed and enabled by default on clusters created via the OpenShift OperatorHub. \n\n2. Create two or more [RedisEnterpriseCluster (REC) custom resources](https://redis.io/docs/latest/operate/kubernetes/deployment/quick-start#create-a-redis-enterprise-cluster-rec) with enough [memory resources](https://redis.io/docs/latest/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements).\n   * Name of each REC (`\u003crec-name\u003e`)\n   * Namespace for each REC (`\u003crec-namespace\u003e`)\n\n3. Configure the REC [`ingressOrRoutes` field](https://redis.io/docs/latest/operate/kubernetes/networking/ingressorroutespec) and [create DNS records](https://redis.io/docs/latest/operate/kubernetes/networking/ingressorroutespec#configure-dns/).\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\n4. [Prepare participating clusters](https://redis.io/docs/latest/operate/kubernetes/active-active/prepare-clusters)\n   * RERC name (`\u003crerc-name`\u003e)\n   * RERC secret name (`redis-enterprise-\u003crerc-name\u003e`)\n\nFor a list of example values used throughout this article, see the [Example values](#example-values) section.\n\n## Create RERC custom resources {#create-rerc}\n\n1. Create a `RedisEnterpriseRemoteCluster` (RERC) custom resource file for each participating Redis Enterprise cluster (REC).\n\nBelow are examples of RERC resources for two participating clusters. Substitute your own values to create your own resource.\n\nExample RERC (`rerc-ohare`) for the REC named `rec-chicago` in the namespace `ns-illinois`:\n\n\n\nExample RERC (`rerc-raegan`) for the REC named `rec-arlington` in the namespace `ns-virginia`:\n\n\n\nFor more details on RERC fields, see the [RERC API reference](https://redis.io/docs/latest/operate/kubernetes/reference/api/redis_enterprise_remote_cluster_api).\n\n2. Create a Redis Enterprise remote cluster from each RERC custom resource file.\n  \n```sh\nkubectl create -f \u003crerc-file\u003e\n```\n\n3. Check the status of your RERC. If `STATUS` is `Active` and `SPEC STATUS` is `Valid`, then your configurations are correct.\n  \n```sh\nkubectl get rerc \u003crerc-name\u003e\n```\n\nThe output should look similar to:\n\n```sh\nkubectl get rerc rerc-ohare\n\nNAME        STATUS   SPEC STATUS   LOCAL\nrerc-ohare   Active   Valid         true\n```\n  \nIn case of errors, review the RERC custom resource events and the Redis Enterprise operator logs.\n\n## Create the REAADB {#create-reaadb}\n\n1. Create a `RedisEnterpriseActiveActiveDatabase` (REAADB) custom resource file meeting the naming requirements and listing the names of the RERC custom resources created in the last step.\n\nNaming requirements:\n* less than 63 characters\n* contains only lowercase letters, numbers, or hyphens\n* starts with a letter\n* ends with a letter or digit\n* **must be unique across all participating clusters**\n\n   The admission controller prevents duplicate database names when databases are created via the Kubernetes operator. Ensure database names are unique across all participating clusters to avoid service deletion and database unavailability.\n\nExample REAADB named `reaadb-boeing` linked to the REC named `rec-chicago` with two participating clusters and a global database configuration with shard count set to 3:\n\n\n\nSharding is disabled on Active-Active databases created with a `shardCount` of 1. Sharding cannot be enabled after database creation. \n\nFor more details on RERC fields, see the [RERC API reference](https://redis.io/docs/latest/operate/kubernetes/reference/api/redis_enterprise_remote_cluster_api).\n\n2. Create a Redis Enterprise Active-Active database from the REAADB custom resource file.\n  \n```sh\nkubectl create -f \u003creaadb-file\u003e\n```\n\n3. Check the status of your RERC. If `STATUS` is `Active` and `SPEC STATUS` is `Valid`, your configurations are correct.\n  \n```sh\nkubectl get reaadb \u003creaadb-name\u003e\n```\n\nThe output should look similar to:\n\n```sh\nkubectl get reaadb reaadb-boeing\n\nNAME              STATUS   SPEC STATUS   LINKED REDBS   REPLICATION STATUS\nreaadb-boeing     active   Valid                        up             \n```\n  \nIn case of errors, review the REAADB custom resource events and the Redis Enterprise operator logs.\n\n## Example values\n\nThis article uses the example values listed below. You can also find them in the [YAML examples](https://redis.io/docs/latest/operate/kubernetes/reference/yaml/active-active) section.\n\nExample 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\nExample 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\n",
  "tags": ["docs","operate","kubernetes"],
  "last_updated": "2026-06-04T14:49:57+01:00"
}
