diff --git a/content/embeds/k8s/ns-illinois.md b/content/embeds/k8s/ns-illinois.md new file mode 100644 index 000000000..89ee3870b --- /dev/null +++ b/content/embeds/k8s/ns-illinois.md @@ -0,0 +1,6 @@ +```yaml +apiVersion: v1 +kind: Namespace +metadata: + name: ns-illinois +``` diff --git a/content/embeds/k8s/ns-virginia.md b/content/embeds/k8s/ns-virginia.md new file mode 100644 index 000000000..ed8e04446 --- /dev/null +++ b/content/embeds/k8s/ns-virginia.md @@ -0,0 +1,6 @@ +```yaml +apiVersion: v1 +kind: Namespace +metadata: + name: ns-virginia +``` diff --git a/content/embeds/k8s/reaadb-boeing.md b/content/embeds/k8s/reaadb-boeing.md new file mode 100644 index 000000000..22a2fedfe --- /dev/null +++ b/content/embeds/k8s/reaadb-boeing.md @@ -0,0 +1,14 @@ +```yaml +apiVersion: app.redislabs.com/v1alpha1 +kind: RedisEnterpriseActiveActiveDatabase +metadata: + name: reaadb-boeing +spec: + globalConfigurations: + databaseSecretName: + memorySize: 200MB + shardCount: 3 + participatingClusters: + - name: rerc-ohare + - name: rerc-raegan +``` diff --git a/content/embeds/k8s/rec-arlington.md b/content/embeds/k8s/rec-arlington.md new file mode 100644 index 000000000..5ffe7dd63 --- /dev/null +++ b/content/embeds/k8s/rec-arlington.md @@ -0,0 +1,19 @@ +```yaml +apiVersion: app.redislabs.com/v1 +kind: RedisEnterpriseCluster +metadata: + name: rec-arlington + namespace: ns-virginia +spec: + nodes: 3 + persistentSpec: + enabled: true + volumeSize: 20Gi + redisEnterpriseNodeResources: + requests: + cpu: 2 + memory: 4Gi + limits: + cpu: 2 + memory: 4Gi +``` diff --git a/content/embeds/k8s/rec-chicago.md b/content/embeds/k8s/rec-chicago.md new file mode 100644 index 000000000..6c8e16fcc --- /dev/null +++ b/content/embeds/k8s/rec-chicago.md @@ -0,0 +1,19 @@ +```yaml +apiVersion: app.redislabs.com/v1 +kind: RedisEnterpriseCluster +metadata: + name: rec-chicago + namespace: ns-illinois +spec: + nodes: 3 + persistentSpec: + enabled: true + volumeSize: 20Gi + redisEnterpriseNodeResources: + requests: + cpu: 2 + memory: 4Gi + limits: + cpu: 2 + memory: 4Gi +``` diff --git a/content/embeds/k8s/rerc-ohare.md b/content/embeds/k8s/rerc-ohare.md new file mode 100644 index 000000000..661695f00 --- /dev/null +++ b/content/embeds/k8s/rerc-ohare.md @@ -0,0 +1,12 @@ +```yaml +apiVersion: app.redislabs.com/v1alpha1 +kind: RedisEnterpriseRemoteCluster +metadata: + name: rerc-ohare +spec: + recName: rec-chicago + recNamespace: ns-illinois + apiFqdnUrl: api-rec-chicago-ns-illinois.example.com + dbFqdnSuffix: -db-rec-chicago-ns-illinois.example.com + secretName: redis-enterprise-rerc-ohare +``` diff --git a/content/embeds/k8s/rerc-raegan.md b/content/embeds/k8s/rerc-raegan.md new file mode 100644 index 000000000..1c2dc5bbc --- /dev/null +++ b/content/embeds/k8s/rerc-raegan.md @@ -0,0 +1,12 @@ +```yaml +apiVersion: app.redislabs.com/v1alpha1 +kind: RedisEnterpriseRemoteCluster +metadata: + name: rerc-raegan +spec: + recName: rec-arlington + recNamespace: ns-virginia + apiFqdnUrl: test-example-api-rec-arlington-ns-virginia.example.com + dbFqdnSuffix: -example-cluster-rec-arlington-ns-virginia.example.com + secretName: redis-enterprise-rerc-raegan +``` diff --git a/content/operate/kubernetes/active-active/_index.md b/content/operate/kubernetes/active-active/_index.md index d34689c32..3e1042f53 100644 --- a/content/operate/kubernetes/active-active/_index.md +++ b/content/operate/kubernetes/active-active/_index.md @@ -52,39 +52,22 @@ For versions 6.4.2 or earlier, this Active-Active setup method includes the foll To create an Active-Active Redis Enterprise deployment for Kubernetes with these new features, first [prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters" >}}) then [create an Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb" >}}). -### Preview versions - -If 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. - -1. 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). - -1. Apply the new CRDs for the Redis Enterprise Active-Active database (REAADB) and Redis Enterprise remote cluster (RERC) to install those controllers. - - ```sh - kubectl apply -f crds/reaadb_crd.yaml - kubectl apply -f crds/rerc_crd.yaml - ``` - -1. Enable the Active-Active and remote cluster controllers on the operator ConfigMap. - - ```sh - kubectl patch cm operator-environment-config --type merge --patch "{\"data\": \ - {\"ACTIVE_ACTIVE_DATABASE_CONTROLLER_ENABLED\":\"true\", \ - \"REMOTE_CLUSTER_CONTROLLER_ENABLED\":\"true\"}}" - - ### REAADB custom resource Redis Enterprise Active-Active database (REAADB) contains a link to the RERC for each participating cluster, and provides configuration and status to the management plane. For a full list of fields and options, see the [REAADB API reference]({{}}). +For examples, see the [YAML examples]({{< relref "/operate/kubernetes/reference/yaml/active-active" >}}) section. + ### RERC custom resource Redis Enterprise remote cluster (RERC) custom resource contains configuration details for all the participating clusters. For a full list of fields and options, see the [RERC API reference]({{}}). +For examples, see the [YAML examples]({{< relref "/operate/kubernetes/reference/yaml/active-active" >}}) section. + ### Limitations * Existing Redis databases cannot be migrated to a REAADB. (DOC-3594) diff --git a/content/operate/kubernetes/active-active/create-reaadb.md b/content/operate/kubernetes/active-active/create-reaadb.md index 100795006..1631ee551 100644 --- a/content/operate/kubernetes/active-active/create-reaadb.md +++ b/content/operate/kubernetes/active-active/create-reaadb.md @@ -33,127 +33,91 @@ To create an Active-Active database, make sure you've completed all the followin For a list of example values used throughout this article, see the [Example values](#example-values) section. -## Create `RedisEnterpriseRemoteCluster` resources {#create-rerc} +## Create RERC custom resources {#create-rerc} 1. Create a `RedisEnterpriseRemoteCluster` (RERC) custom resource file for each participating Redis Enterprise cluster (REC). - Below are examples of RERC resources for two participating clusters. Substitute your own values to create your own resource. - - Example RERC (`rerc-ohare`) for the REC named `rec-chicago` in the namespace `ns-illinois`: - - ```yaml - apiVersion: app.redislabs.com/v1alpha1 - kind: RedisEnterpriseRemoteCluster - metadata: - name: rerc-ohare - spec: - recName: rec-chicago - recNamespace: ns-illinois - apiFqdnUrl: api-rec-chicago-ns-illinois.example.com - dbFqdnSuffix: -db-rec-chicago-ns-illinois.example.com - secretName: redis-enterprise-rerc-ohare - ``` - - Example RERC (`rerc-raegan`) for the REC named `rec-arlington` in the namespace `ns-virginia`: - - ```yaml - apiVersion: app.redislabs.com/v1alpha1 - kind: RedisEnterpriseRemoteCluster - metadata: - name: rerc-reagan - spec: - recName: rec-arlington - recNamespace: ns-virginia - apiFqdnUrl: test-example-api-rec-arlington-ns-virginia.example.com - dbFqdnSuffix: -example-cluster-rec-arlington-ns-virginia.example.com - secretName: redis-enterprise-rerc-reagan - ``` - - For more details on RERC fields, see the [RERC API reference]({{}}). - -1. Create a Redis Enterprise remote cluster from each RERC custom resource file. +Below are examples of RERC resources for two participating clusters. Substitute your own values to create your own resource. + +Example RERC (`rerc-ohare`) for the REC named `rec-chicago` in the namespace `ns-illinois`: + +{{}} + +Example RERC (`rerc-raegan`) for the REC named `rec-arlington` in the namespace `ns-virginia`: + +{{}} + +For more details on RERC fields, see the [RERC API reference]({{}}). + +2. Create a Redis Enterprise remote cluster from each RERC custom resource file. - ```sh - kubectl create -f - ``` +```sh +kubectl create -f +``` -1. Check the status of your RERC. If `STATUS` is `Active` and `SPEC STATUS` is `Valid`, then your configurations are correct. +3. Check the status of your RERC. If `STATUS` is `Active` and `SPEC STATUS` is `Valid`, then your configurations are correct. - ```sh - kubectl get rerc - ``` +```sh +kubectl get rerc +``` - The output should look similar to: +The output should look similar to: - ```sh - kubectl get rerc rerc-ohare +```sh +kubectl get rerc rerc-ohare - NAME STATUS SPEC STATUS LOCAL - rerc-ohare Active Valid true - ``` +NAME STATUS SPEC STATUS LOCAL +rerc-ohare Active Valid true +``` - In case of errors, review the RERC custom resource events and the Redis Enterprise operator logs. +In case of errors, review the RERC custom resource events and the Redis Enterprise operator logs. -## Create `RedisEnterpriseActiveActiveDatabase` resource {#create-reaadb} +## Create the REAADB {#create-reaadb} 1. 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. - Naming requirements: - * less than 63 characters - * contains only lowercase letters, numbers, or hyphens - * starts with a letter - * ends with a letter or digit - - Example 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: - - ```yaml - apiVersion: app.redislabs.com/v1alpha1 - kind: RedisEnterpriseActiveActiveDatabase - metadata: - name: reaadb-boeing - spec: - globalConfigurations: - databaseSecretName: - memorySize: 200MB - shardCount: 3 - participatingClusters: - - name: rerc-ohare - - name: rerc-reagan - ``` - - {{}}Sharding is disabled on Active-Active databases created with a `shardCount` of 1. Sharding cannot be enabled after database creation. {{}} - - For more details on RERC fields, see the [RERC API reference]({{}}). - -1. Create a Redis Enterprise Active-Active database from the REAADB custom resource file. - - ```sh - kubectl create -f - ``` +Naming requirements: +* less than 63 characters +* contains only lowercase letters, numbers, or hyphens +* starts with a letter +* ends with a letter or digit + +Example 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: + +{{}} -1. Check the status of your RERC. If `STATUS` is `Active` and `SPEC STATUS` is `Valid`, your configurations are correct. +{{}}Sharding is disabled on Active-Active databases created with a `shardCount` of 1. Sharding cannot be enabled after database creation. {{}} + +For more details on RERC fields, see the [RERC API reference]({{}}). + +2. Create a Redis Enterprise Active-Active database from the REAADB custom resource file. - ```sh - kubectl get reaadb - ``` +```sh +kubectl create -f +``` - The output should look similar to: +3. Check the status of your RERC. If `STATUS` is `Active` and `SPEC STATUS` is `Valid`, your configurations are correct. + +```sh +kubectl get reaadb +``` - ```sh - kubectl get reaadb reaadb-boeing +The output should look similar to: - NAME STATUS SPEC STATUS LINKED REDBS REPLICATION STATUS - reaadb-boeing active Valid up - ``` +```sh +kubectl get reaadb reaadb-boeing +NAME STATUS SPEC STATUS LINKED REDBS REPLICATION STATUS +reaadb-boeing active Valid up +``` - In case of errors, review the REAADB custom resource events and the Redis Enterprise operator logs. +In case of errors, review the REAADB custom resource events and the Redis Enterprise operator logs. ## Example values -This article uses the following example values: +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 +Example cluster 1: * REC name: `rec-chicago` * REC namespace: `ns-illinois` @@ -162,7 +126,7 @@ This article uses the following example values: * API FQDN: `api-rec-chicago-ns-illinois.example.com` * DB FQDN suffix: `-db-rec-chicago-ns-illinois.example.com` -#### Example cluster 2 +Example cluster 2: * REC name: `rec-arlington` * REC namespace: `ns-virginia` diff --git a/content/operate/kubernetes/active-active/edit-clusters.md b/content/operate/kubernetes/active-active/edit-clusters.md index 680581dba..017cf9675 100644 --- a/content/operate/kubernetes/active-active/edit-clusters.md +++ b/content/operate/kubernetes/active-active/edit-clusters.md @@ -75,7 +75,7 @@ To communicate with other clusters, all participating clusters need access to th 1. From one of the existing participating clusters, create a `RedisEnterpriseRemoteCluster` (RERC) custom resource for the new participating cluster. - This example shows an RERC custom resource for an REC named `rec-boston` in the namespace `ns-massachusetts`. + This example (rerc-logan) shows an RERC custom resource for an REC named `rec-boston` in the namespace `ns-massachusetts`. ```yaml apiVersion: app.redislabs.com/v1alpha1 diff --git a/content/operate/kubernetes/active-active/edit-rerc.md b/content/operate/kubernetes/active-active/edit-rerc.md index f5a3bdbb7..6cc0189c6 100644 --- a/content/operate/kubernetes/active-active/edit-rerc.md +++ b/content/operate/kubernetes/active-active/edit-rerc.md @@ -73,10 +73,13 @@ If the credentials are changed or updated for a REC participating cluster, you n ```sh kubectl get reaadb reaadb-boeing - - NAME STATUS SPEC STATUS LINKED REDBS REPLICATION STATUS - reaadb-boeing active Valid up ``` + The output should look similar to: + + ```sh + NAME STATUS SPEC STATUS LINKED REDBS REPLICATION STATUS + reaadb-boeing active Valid up + ``` To troubleshoot invalid configurations, view the RERC custom resource events and the [Redis Enterprise operator logs]({{< relref "/operate/kubernetes/logs/" >}}). diff --git a/content/operate/kubernetes/active-active/prepare-clusters.md b/content/operate/kubernetes/active-active/prepare-clusters.md index df8fcad85..204a61454 100644 --- a/content/operate/kubernetes/active-active/prepare-clusters.md +++ b/content/operate/kubernetes/active-active/prepare-clusters.md @@ -29,26 +29,6 @@ Next you'll [collect credentials](#collect-rec-credentials) for your participati For a list of example values used throughout this article, see the [Example values](#example-values) section. -### Preview versions - -If 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. - -1. 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). - -1. Apply the new CRDs for the Redis Enterprise Active-Active database (REAADB) and Redis Enterprise remote cluster (RERC) to install those controllers. - - ```sh - kubectl apply -f crds/reaadb_crd.yaml - kubectl apply -f crds/rerc_crd.yaml - ``` - -1. Enable the Active-Active and remote cluster controllers on the operator ConfigMap. - - ```sh - kubectl patch cm operator-environment-config --type merge --patch "{\"data\": \ - {\"ACTIVE_ACTIVE_DATABASE_CONTROLLER_ENABLED\":\"true\", \ - \"REMOTE_CLUSTER_CONTROLLER_ENABLED\":\"true\"}}" - ## Collect REC credentials To communicate with other clusters, all participating clusters will need access to the admin credentials for all other clusters. @@ -142,9 +122,9 @@ Now you are ready to [create your Redis Enterprise Active-Active database]({{< r ## Example values -This article uses the following example values: +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 +Example cluster 1: * REC name: `rec-chicago` * REC namespace: `ns-illinois` @@ -153,7 +133,7 @@ This article uses the following example values: * API FQDN: `api-rec-chicago-ns-illinois.example.com` * DB FQDN suffix: `-db-rec-chicago-ns-illinois.example.com` -#### Example cluster 2 +Example cluster 2: * REC name: `rec-arlington` * REC namespace: `ns-virginia` diff --git a/content/operate/kubernetes/re-clusters/multi-namespace.md b/content/operate/kubernetes/re-clusters/multi-namespace.md index b13513f4d..8a32e1d45 100644 --- a/content/operate/kubernetes/re-clusters/multi-namespace.md +++ b/content/operate/kubernetes/re-clusters/multi-namespace.md @@ -26,68 +26,20 @@ Before configuring a multi-namespace deployment, you must have a running [Redis ## Create role and role binding for managed namespaces -Both the operator and the RedisEnterpriseCluster (REC) resource need access to each namespace the REC will manage. For each **managed** namespace, create a `role.yaml` and `role_binding.yaml` file within the managed namespace, as shown in the examples below. +Both the operator and the RedisEnterpriseCluster (REC) resource need access to each namespace the REC will manage. For each **managed** namespace, create a `consumer_role.yaml` and `consumer_role_binding.yaml` file within the managed namespace, as shown in the examples below. {{}}These will need to be reapplied each time you [upgrade]({{< relref "/operate/kubernetes/upgrade/upgrade-redis-cluster" >}}). {{}} Replace `` with the namespace the REC resides in. Replace `` with your own value (defaults to the REC name). -`role.yaml` example: +`consumer_role.yaml` example: -```yaml -kind: Role -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: redb-role - labels: - app: redis-enterprise -rules: - - apiGroups: - - app.redislabs.com - resources: ["redisenterpriseclusters", "redisenterpriseclusters/status", "redisenterpriseclusters/finalizers", - "redisenterprisedatabases", "redisenterprisedatabases/status", "redisenterprisedatabases/finalizers", - "redisenterpriseremoteclusters", "redisenterpriseremoteclusters/status", - "redisenterpriseremoteclusters/finalizers", - "redisenterpriseactiveactivedatabases", "redisenterpriseactiveactivedatabases/status", - "redisenterpriseactiveactivedatabases/finalizers"] - verbs: ["delete", "deletecollection", "get", "list", "patch", "create", "update", "watch"] - - apiGroups: [""] - resources: ["secrets"] - verbs: ["update", "get", "read", "list", "listallnamespaces", "watch", "watchlist", - "watchlistallnamespaces", "create","patch","replace","delete","deletecollection"] - - apiGroups: [""] - resources: ["endpoints"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["create"] - - apiGroups: [""] - resources: ["services"] - verbs: ["get", "watch", "list", "update", "patch", "create", "delete"] -``` +{{}} -`role_binding.yaml` example: +`consumer_role_binding.yaml` example: -```yaml -kind: RoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: redb-role - labels: - app: redis-enterprise -subjects: -- kind: ServiceAccount - name: redis-enterprise-operator - namespace: -- kind: ServiceAccount - name: - namespace: -roleRef: - kind: Role - name: redb-role - apiGroup: rbac.authorization.k8s.io -``` +{{}} {{}} **Alternative approach**: Instead of creating individual `Role` objects for each namespace, you can create a single `ClusterRole` and bind it with multiple `RoleBinding` objects. This reduces the number of objects and simplifies role management. @@ -101,8 +53,8 @@ To use this approach: Apply the files, replacing `` with your own values: ```sh -kubectl apply -f role.yaml -n -kubectl apply -f role_binding.yaml -n +kubectl apply -f consumer_role.yaml -n +kubectl apply -f consumer_role_binding.yaml -n ``` {{}} @@ -128,37 +80,11 @@ Only configure the operator to watch a namespace after the namespace is created `operator_cluster_role.yaml` example: - ```yaml - apiVersion: rbac.authorization.k8s.io/v1 - kind: ClusterRole - metadata: - name: redis-enterprise-operator-consumer-ns - labels: - app: redis-enterprise - rules: - - apiGroups: [""] - resources: ["namespaces"] - verbs: ["list", "watch"] - ``` +{{}} `operator_cluster_role_binding.yaml` example: - ```yaml - kind: ClusterRoleBinding - apiVersion: rbac.authorization.k8s.io/v1 - metadata: - name: redis-enterprise-operator-consumer-ns - labels: - app: redis-enterprise - subjects: - - kind: ServiceAccount - name: redis-enterprise-operator - namespace: - roleRef: - kind: ClusterRole - name: redis-enterprise-operator-consumer-ns - apiGroup: rbac.authorization.k8s.io - ``` +{{}} 2. Apply the files. diff --git a/content/operate/kubernetes/reference/yaml/active-active.md b/content/operate/kubernetes/reference/yaml/active-active.md index a84309636..2693c1929 100644 --- a/content/operate/kubernetes/reference/yaml/active-active.md +++ b/content/operate/kubernetes/reference/yaml/active-active.md @@ -12,52 +12,82 @@ weight: 30 This page provides YAML examples for deploying Active-Active Redis Enterprise databases across multiple Kubernetes clusters. Active-Active databases provide multi-master replication with conflict resolution, enabling global distribution and local read/write access. -To learn more, see [Active-Active databases]({{< relref "/operate/kubernetes/active-active" >}}). +For complete deployment instructions, see [Active-Active databases]({{< relref "/operate/kubernetes/active-active" >}}). -## Architecture +## Applying the configuration -This example shows a two-cluster Active-Active setup: -- Cluster 1: `rec-chicago` in namespace `ns-chicago` -- Cluster 2: `rec-boston` in namespace `ns-boston` +To deploy Active-Active databases using these YAML files, follow [Create Active-Active database (REAADB)]({{< relref "/operate/kubernetes/active-active/create-reaadb" >}}), which provides detailed instructions for preparing clusters, creating RERC resources, and deploying REAADB configurations. -For complete deployment instructions, see [Active-Active databases]({{< relref "/operate/kubernetes/active-active" >}}). +## Namespace examples + +A namespace is an abstraction used by Kubernetes to support multiple virtual clusters on the same physical cluster. + +`ns-illinois.yaml` is used in [Create Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb#example-values" >}}). + +{{}} + +`ns-virginia.yaml` is used in [Create Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb#example-values" >}}). + +{{}} + +## REC examples + +A Redis Enterprise cluster is a collection of Redis Enterprise nodes that pools system resources across nodes and supports multi-tenant database instances. + +`rec-chicago.yaml` is used in [Create Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb#prerequisites" >}}) and [Create RERC]({{< relref "/operate/kubernetes/active-active/create-reaadb#create-rerc" >}}). + +{{}} -## RERC for Chicago cluster +`rec-arlington.yaml` is used in [Create Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb#prerequisites" >}}) and [Create RERC]({{< relref "/operate/kubernetes/active-active/create-reaadb#create-rerc" >}}). -Create a RedisEnterpriseRemoteCluster (RERC) resource on each participating cluster that points to the other clusters. +{{}} -{{}} +## RERC examples -RERC configuration: -- `metadata.name`: Unique name for this remote cluster reference -- `spec.recName`: Name of the remote REC -- `spec.recNamespace`: Namespace of the remote REC -- `spec.apiFqdnUrl`: API endpoint URL for the remote cluster -- `spec.dbFqdnSuffix`: Database hostname suffix for the remote cluster -- `spec.secretName`: Secret containing authentication credentials +RedisEnterpriseRemoteCluster represents a remote participating cluster. + +`rerc-ohare.yaml` is used in the [Create RERC]({{< relref "/operate/kubernetes/active-active/create-reaadb#create-rerc" >}}) section. + +{{}} + +`rerc-raegan.yaml` is used in the [Create RERC]({{< relref "/operate/kubernetes/active-active/create-reaadb#create-rerc" >}}) section. + +{{}} + +### RERC configuration + +- [metadata.name]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_remote_cluster_api#appredislabscomv1alpha1" >}}): Unique name for this remote cluster reference +- [spec.recName]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_remote_cluster_api#spec" >}}): Name of the remote REC +- [spec.recNamespace]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_remote_cluster_api#spec" >}}): Namespace of the remote REC +- [spec.apiFqdnUrl]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_remote_cluster_api#spec" >}}): API endpoint URL for the remote cluster +- [spec.dbFqdnSuffix]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_remote_cluster_api#spec" >}}): Database hostname suffix for the remote cluster +- [spec.secretName]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_remote_cluster_api#spec" >}}): Secret containing authentication credentials Edit the values in the downloaded YAML file for your specific setup, updating the remote cluster details, API endpoints, and secret names to match your actual environment. -## Active-Active database +## Active-Active database examples -The RedisEnterpriseActiveActiveDatabase (REAADB) resource defines the Active-Active database. +Active-Active databases are geo-distributed databases that span multiple Redis Enterprise clusters and use multi-primary replication and conflict-free replicated data types (CRDTs). -{{}} +`reaadb-boeing.yaml` is used in [Create Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb#create-reaadb" >}}) section. -REAADB configuration: -- `metadata.name`: Active-Active database name -- `spec.participatingClusters`: List of RERC names that participate in this database -- `spec.globalConfigurations`: Database settings applied to all participating clusters +{{}} -Edit the downloaded YAML file to add global database settings such as memory allocation, shard count, replication settings, database secrets, Redis modules, and database-specific Redis configuration. +### REAADB configuration -## Applying the configuration +- [metadata.name]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_active_active_database_api#appredislabscomv1alpha1" >}}): Active-Active database name +- [spec.participatingClusters]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_active_active_database_api#specparticipatingclusters" >}}): List of RERC names that participate in this database +- [spec.globalConfigurations]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_active_active_database_api#specglobalconfigurations" >}}): Database settings applied to all participating clusters -To deploy Active-Active databases using these YAML files, follow [Create Active-Active database (REAADB)]({{< relref "/operate/kubernetes/active-active/create-reaadb" >}}), which provides detailed instructions for preparing clusters, creating RERC resources, and deploying REAADB configurations. +Edit the downloaded YAML file to add global database settings such as memory allocation, shard count, replication settings, database secrets, Redis modules, and database-specific Redis configuration. ## Related documentation +- [Active-Active databases (index)]({{< relref "/operate/kubernetes/active-active" >}}) +- [Prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters" >}}) - [Create Active-Active database (REAADB)]({{< relref "/operate/kubernetes/active-active/create-reaadb" >}}) -- [REAADB API reference]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_active_active_database_api" >}}) +- [Edit global configuration]({{< relref "/operate/kubernetes/active-active/global-config" >}}) +- [Sync global database secret]({{< relref "/operate/kubernetes/active-active/global-db-secret" >}}) - [RERC API reference]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_remote_cluster_api" >}}) +- [REAADB API reference]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_active_active_database_api" >}}) - [Networking configuration]({{< relref "/operate/kubernetes/networking" >}})