{
  "schema_version": 2,
  "id": "operate/kubernetes/active-active/edit-clusters",
  "title": "Edit participating clusters for Active-Active database",
  "url": "https://redis.io/docs/latest/operate/kubernetes/active-active/edit-clusters/",
  "summary": "Steps to add or remove a participating cluster to an existing Active-Active database with Redis Enterprise for Kubernetes.",
  "tags": [
    "docs",
    "operate",
    "kubernetes"
  ],
  "last_updated": "2026-09-28T15:03:12+01:00",
  "page_type": "content",
  "content_hash": "8d3789934f026939c8cbf2275b971fb1a78c079d258c77f0d26eb2a645ae1561",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "> [!NOTE]\n> This feature is supported for general availability in releases 6.4.2-6 and later. Some of these features were available as a preview in 6.4.2-4 and 6.4.2-5. Please upgrade to 6.4.2-6 for the full set of general availability features and bug fixes. and later."
    },
    {
      "id": "add-a-participating-cluster",
      "title": "Add a participating cluster",
      "role": "content",
      "text": "Use the following steps to add a participating cluster to an existing Redis Enterprise Active-Active database (REAADB) for Kubernetes."
    },
    {
      "id": "prerequisites",
      "title": "Prerequisites",
      "role": "content",
      "text": "To prepare the Redis Enterprise cluster (REC) to participate in an Active-Active database, perform the following tasks from [Prepare participating clusters](https://redis.io/docs/latest/operate/kubernetes/active-active/prepare-clusters):\n\n- Make sure the cluster meets the hardware and naming requirements.\n- Enable the Active-Active controllers.\n- Configure external routing.\n- Configure `ValidatingWebhookConfiguration`."
    },
    {
      "id": "collect-rec-credentials",
      "title": "Collect REC credentials",
      "role": "content",
      "text": "To communicate with other clusters, all participating clusters need access to the admin credentials for all other clusters.\n\n1. Get the REC credentials secret for the new participating cluster.\n\n    [code example]\n\n    This example shows an admin credentials secret for an REC named `rec-boston`:\n\n    [code example]\n\n1. Create a secret for the new participating cluster named `redis-enterprise-<rerc>` and add the username and password.\n\n    The example below shows a secret file for a remote cluster named `rerc-logan` .\n\n    [code example]\n\n1. Apply the file of collected secrets to every participating REC.\n\n    [code example]\n\n If the admin credentials for any of the clusters change, update and reapply the file to all clusters."
    },
    {
      "id": "create-rerc",
      "title": "Create RERC",
      "role": "content",
      "text": "1. From one of the existing participating clusters, create a `RedisEnterpriseRemoteCluster` (RERC) custom resource for the new participating cluster.\n\n    This example (rerc-logan) shows an RERC custom resource for an REC named `rec-boston` in the namespace `ns-massachusetts`. \n\n    [code example]\n\n1. Create the RERC custom resource.\n\n    [code example]\n\n1. Check the status of the newly created RERC custom resource.\n\n    [code example]\n\n    The output should look like this:\n\n    [code example]"
    },
    {
      "id": "edit-reaadb-spec",
      "title": "Edit REAADB spec",
      "role": "content",
      "text": "1. Patch the REAADB spec to add the new RERC name to the `participatingClusters`, replacing `<reaadb-name>` and `<rerc-name>` with your own values.\n\n    [code example]\n\n1. View the REAADB `participatingClusters` status to verify the cluster was added.\n\n    [code example]\n\n    The output should look like this:\n\n    [code example]"
    },
    {
      "id": "remove-a-participating-cluster",
      "title": "Remove a participating cluster",
      "role": "content",
      "text": "1. On an existing participating cluster,remove the desired cluster from the `participatingCluster` section of the REAADB spec.\n\n    [code example]\n\n1. On each of the other participating clusters, verify the status is `active` and the spec status is `Valid` and the cluster was removed.\n\n   [code example]\n   \n    The output should look like this:\n    \n    [code example]\n\n1. On the removed participating cluster, list all REAADB resources on the cluster to verify they were deleted.\n\n    [code example]\n\n1. List the status of all the participating clusters.\n\n[code example]"
    }
  ],
  "examples": [
    {
      "id": "collect-rec-credentials-ex0",
      "language": "sh",
      "code": "kubectl get secret -o yaml <rec-name>",
      "section_id": "collect-rec-credentials"
    },
    {
      "id": "collect-rec-credentials-ex1",
      "language": "yaml",
      "code": "apiVersion: v1\n    data:\n      password: ABcdef12345\n      username: GHij56789\n    kind: Secret\n    metadata:\n      name: rec-boston\n    type: Opaque",
      "section_id": "collect-rec-credentials"
    },
    {
      "id": "collect-rec-credentials-ex2",
      "language": "yaml",
      "code": "apiVersion: v1\n    data:\n      password: ABcdef12345\n      username: GHij56789\n    kind: Secret\n    metadata:\n      name: redis-enterprise-rerc-logan\n    type: Opaque",
      "section_id": "collect-rec-credentials"
    },
    {
      "id": "collect-rec-credentials-ex3",
      "language": "sh",
      "code": "kubectl apply -f <rec-secret-file>",
      "section_id": "collect-rec-credentials"
    },
    {
      "id": "create-rerc-ex0",
      "language": "yaml",
      "code": "apiVersion: app.redislabs.com/v1alpha1\n    kind: RedisEnterpriseRemoteCluster\n    metadata:\n      name: rerc-logan\n    spec:\n      recName: rec-boston\n      recNamespace: ns-massachusetts\n      apiFqdnUrl: test-example-api-rec-boston-ns-massachusetts.example.com\n      dbFqdnSuffix: .example-cluster-rec-boston-ns-massachusetts.example.com\n      secretName: redis-enterprise-rerc-logan",
      "section_id": "create-rerc"
    },
    {
      "id": "create-rerc-ex1",
      "language": "sh",
      "code": "kubectl create -f <new-RERC-file>",
      "section_id": "create-rerc"
    },
    {
      "id": "create-rerc-ex2",
      "language": "sh",
      "code": "kubectl get rerc <RERC-name>",
      "section_id": "create-rerc"
    },
    {
      "id": "create-rerc-ex3",
      "language": "sh",
      "code": "NAME        STATUS   SPEC STATUS   LOCAL\n    rerc-logan   Active   Valid         true",
      "section_id": "create-rerc"
    },
    {
      "id": "edit-reaadb-spec-ex0",
      "language": "sh",
      "code": "kubectl patch reaadb <reaadb-name> < --type merge --patch '{\"spec\": {\"participatingClusters\": [{\"name\": \"<rerc-name>\"}]}}'",
      "section_id": "edit-reaadb-spec"
    },
    {
      "id": "edit-reaadb-spec-ex1",
      "language": "sh",
      "code": "kubectl get reaadb <reaadb-name> -o=jsonpath='{.status.participatingClusters}'",
      "section_id": "edit-reaadb-spec"
    },
    {
      "id": "edit-reaadb-spec-ex2",
      "language": "sh",
      "code": "[{\"id\":1,\"name\":\"rerc-ohare\"},{\"id\":2,\"name\":\"rerc-reagan\"},{\"id\":3,\"name\":\"rerc-logan\"}]",
      "section_id": "edit-reaadb-spec"
    },
    {
      "id": "remove-a-participating-cluster-ex0",
      "language": "sh",
      "code": "kubectl edit reaadb <reaadb-name>",
      "section_id": "remove-a-participating-cluster"
    },
    {
      "id": "remove-a-participating-cluster-ex1",
      "language": "sh",
      "code": "kubectl get reaadb <reaadb-name> -o=jsonpath='{.status}'",
      "section_id": "remove-a-participating-cluster"
    },
    {
      "id": "remove-a-participating-cluster-ex2",
      "language": "sh",
      "code": "{... ,\"participatingClusters\":[{\"id\":1,\"name\":\"rerc1\"},{\"id\":2,\"name\":\"rerc2\"}],\"redisEnterpriseCluster\":\"rec1\",\"specStatus\":\"Valid\",\"status\":\"active\"}",
      "section_id": "remove-a-participating-cluster"
    },
    {
      "id": "remove-a-participating-cluster-ex3",
      "language": "sh",
      "code": "kubectl get reaadb -o jsonpath='{range .items[*]}{.metadata.name}{\"\\n\"}{end}'",
      "section_id": "remove-a-participating-cluster"
    },
    {
      "id": "remove-a-participating-cluster-ex4",
      "language": "sh",
      "code": "kubectl get reaadb <reaadb-name> -o=jsonpath='{.status.participatingClusters}'",
      "section_id": "remove-a-participating-cluster"
    }
  ]
}
