From b29f30a936a5b2c795e9b3516cd7079b0288c4ed Mon Sep 17 00:00:00 2001 From: Andy Stark Date: Mon, 28 Sep 2026 13:28:36 +0100 Subject: [PATCH] DOC-7120 unit 9: convert kubernetes 8.0.18/ to render hooks Mechanical conversion of content/operate/kubernetes/8.0.18/ off relref and callout shortcodes onto native Markdown render hooks, using build/migrate_shortcode_links.py's `all` stage. This is the final unit (9 of 9) of DOC-7120, and completes content/operate/kubernetes/'s migration off shortcodes. Hand-fixed the recurring list-nested callout indentation-loss bug in 13 blocks across 12 files (the conversion script preserves indentation only on a blockquote's header line, not continuation/closing lines), plus one non-list stray-indent case and one stray-whitespace-artifact case found independently in this snapshot. security/vault.md's angle-bracket `alert` shortcode converted cleanly to `[!NOTE] Important notes` with its bulleted body intact, matching prior units. Co-Authored-By: Claude Sonnet 5 --- content/operate/kubernetes/8.0.18/_index.md | 78 ++++++------ .../kubernetes/8.0.18/active-active/_index.md | 29 ++--- .../active-active/create-aa-crdb-cli.md | 40 +++---- .../8.0.18/active-active/create-reaadb.md | 20 ++-- .../8.0.18/active-active/edit-clusters.md | 5 +- .../8.0.18/active-active/edit-rerc.md | 11 +- .../8.0.18/active-active/global-config.md | 14 ++- .../8.0.18/active-active/global-db-secret.md | 2 +- .../8.0.18/active-active/prepare-clusters.md | 15 ++- .../kubernetes/8.0.18/architecture/_index.md | 56 ++++----- .../8.0.18/architecture/deployment-options.md | 6 +- .../kubernetes/8.0.18/deployment/_index.md | 24 ++-- .../8.0.18/deployment/container-images.md | 16 +-- .../kubernetes/8.0.18/deployment/helm.md | 28 ++--- .../8.0.18/deployment/openshift/_index.md | 8 +- .../deployment/openshift/openshift-cli.md | 63 +++++----- .../openshift/openshift-operatorhub.md | 22 ++-- .../8.0.18/deployment/quick-start.md | 47 ++++---- .../operate/kubernetes/8.0.18/flex/_index.md | 15 +-- .../kubernetes/8.0.18/flex/auto-tiering.md | 28 ++--- .../kubernetes/8.0.18/flex/get-started.md | 22 ++-- .../operate/kubernetes/8.0.18/flex/plan.md | 4 +- .../operate/kubernetes/8.0.18/flex/scale.md | 7 +- .../operate/kubernetes/8.0.18/logs/_index.md | 2 +- .../kubernetes/8.0.18/logs/collect-logs.md | 9 +- .../kubernetes/8.0.18/networking/_index.md | 16 +-- .../networking/cluster-aware-clients.md | 5 +- .../networking/database-connectivity.md | 12 +- .../kubernetes/8.0.18/networking/ingress.md | 5 +- .../8.0.18/networking/ingressorroutespec.md | 2 +- .../8.0.18/networking/istio-ingress.md | 11 +- .../kubernetes/8.0.18/re-clusters/_index.md | 27 ++--- .../8.0.18/re-clusters/cluster-recovery.md | 12 +- .../connect-prometheus-operator.md | 11 +- .../re-clusters/connect-to-admin-console.md | 12 +- .../re-clusters/delete-custom-resources.md | 11 +- .../8.0.18/re-clusters/expand-pvc.md | 24 ++-- .../8.0.18/re-clusters/multi-namespace.md | 56 ++++----- .../kubernetes/8.0.18/re-databases/_index.md | 24 ++-- .../8.0.18/re-databases/db-controller.md | 15 ++- .../kubernetes/8.0.18/re-databases/modules.md | 57 ++++----- .../8.0.18/re-databases/replica-redb.md | 7 +- .../8.0.18/recommendations/_index.md | 10 +- .../8.0.18/recommendations/node-selection.md | 36 +++--- .../recommendations/persistent-volumes.md | 35 +++--- .../recommendations/sizing-on-kubernetes.md | 16 +-- .../kubernetes/8.0.18/reference/_index.md | 20 ++-- .../kubernetes/8.0.18/reference/api/_index.md | 2 +- .../reference/supported_k8s_distributions.md | 3 +- .../8.0.18/reference/yaml/_index.md | 18 +-- .../8.0.18/reference/yaml/active-active.md | 52 ++++---- .../8.0.18/reference/yaml/basic-deployment.md | 10 +- .../reference/yaml/log-collector-rbac.md | 14 +-- .../8.0.18/reference/yaml/multi-namespace.md | 12 +- .../8.0.18/reference/yaml/rack-awareness.md | 28 ++--- .../kubernetes/8.0.18/security/_index.md | 20 ++-- .../security/allow-resource-adjustment.md | 7 +- .../8.0.18/security/cert-manager.md | 24 ++-- .../8.0.18/security/configuration-secrets.md | 24 ++-- .../8.0.18/security/internode-encryption.md | 8 +- .../kubernetes/8.0.18/security/ldap.md | 8 +- .../security/manage-rec-certificates.md | 26 ++-- .../8.0.18/security/manage-rec-credentials.md | 19 ++- .../operate/kubernetes/8.0.18/security/sso.md | 29 ++--- .../kubernetes/8.0.18/security/vault.md | 113 ++++++++---------- .../kubernetes/8.0.18/upgrade/_index.md | 17 +-- .../8.0.18/upgrade/openshift-cli.md | 54 ++++----- .../kubernetes/8.0.18/upgrade/upgrade-olm.md | 28 ++--- .../8.0.18/upgrade/upgrade-redis-cluster.md | 55 ++++----- 69 files changed, 762 insertions(+), 804 deletions(-) diff --git a/content/operate/kubernetes/8.0.18/_index.md b/content/operate/kubernetes/8.0.18/_index.md index 8196107cd3..96c9e372bf 100644 --- a/content/operate/kubernetes/8.0.18/_index.md +++ b/content/operate/kubernetes/8.0.18/_index.md @@ -33,81 +33,81 @@ Redis Enterprise for Kubernetes is compatible with [CNCF-conformant](https://www Deploy Redis Enterprise on your Kubernetes cluster and create your first database. -- [Quick start deployment]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}) -- [Deploy with Helm]({{< relref "/operate/kubernetes/8.0.18/deployment/helm" >}}) -- [Deploy on OpenShift]({{< relref "/operate/kubernetes/8.0.18/deployment/openshift" >}}) -- [Supported Kubernetes distributions]({{< relref "/operate/kubernetes/8.0.18/reference/supported_k8s_distributions" >}}) +- [Quick start deployment](/content/operate/kubernetes/8.0.18/deployment/quick-start.md) +- [Deploy with Helm](/content/operate/kubernetes/8.0.18/deployment/helm.md) +- [Deploy on OpenShift](/content/operate/kubernetes/8.0.18/deployment/openshift/_index.md) +- [Supported Kubernetes distributions](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md) ## Redis Enterprise clusters (REC) -Create and manage [Redis Enterprise clusters]({{< relref "/operate/kubernetes/8.0.18/re-clusters" >}}) on Kubernetes. +Create and manage [Redis Enterprise clusters](/content/operate/kubernetes/8.0.18/re-clusters/_index.md) on Kubernetes. -- [Connect to admin console]({{< relref "/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console" >}}) -- [Redis Flex]({{< relref "/operate/kubernetes/8.0.18/flex" >}}) -- [Multi-namespace deployment]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace" >}}) -- [Cluster recovery]({{< relref "/operate/kubernetes/8.0.18/re-clusters/cluster-recovery" >}}) -- [REC API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) +- [Connect to admin console](/content/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console.md) +- [Redis Flex](/content/operate/kubernetes/8.0.18/flex/_index.md) +- [Multi-namespace deployment](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md) +- [Cluster recovery](/content/operate/kubernetes/8.0.18/re-clusters/cluster-recovery.md) +- [REC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) ## Redis Enterprise databases (REDB) -Create and manage [Redis Enterprise databases]({{< relref "/operate/kubernetes/8.0.18/re-databases" >}}) using Kubernetes resources. +Create and manage [Redis Enterprise databases](/content/operate/kubernetes/8.0.18/re-databases/_index.md) using Kubernetes resources. -- [Database controller]({{< relref "/operate/kubernetes/8.0.18/re-databases/db-controller" >}}) -- [Create replica databases]({{< relref "/operate/kubernetes/8.0.18/re-databases/replica-redb" >}}) -- [REDB API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}) +- [Database controller](/content/operate/kubernetes/8.0.18/re-databases/db-controller.md) +- [Create replica databases](/content/operate/kubernetes/8.0.18/re-databases/replica-redb.md) +- [REDB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md) ## Active-Active databases -Set up globally distributed [Active-Active databases]({{< relref "/operate/kubernetes/8.0.18/active-active" >}}) across multiple Kubernetes clusters. +Set up globally distributed [Active-Active databases](/content/operate/kubernetes/8.0.18/active-active/_index.md) across multiple Kubernetes clusters. -- [Prepare participating clusters]({{< relref "/operate/kubernetes/8.0.18/active-active/prepare-clusters" >}}) -- [Create Active-Active database]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb" >}}) -- [Global configuration]({{< relref "/operate/kubernetes/8.0.18/active-active/global-config" >}}) -- [REAADB API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api" >}}) -- [Remote cluster API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api" >}}) +- [Prepare participating clusters](/content/operate/kubernetes/8.0.18/active-active/prepare-clusters.md) +- [Create Active-Active database](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md) +- [Global configuration](/content/operate/kubernetes/8.0.18/active-active/global-config.md) +- [REAADB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md) +- [Remote cluster API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md) ## Security -Manage [secure connections]({{< relref "/operate/kubernetes/8.0.18/security" >}}) and access control for your Redis Enterprise deployment. +Manage [secure connections](/content/operate/kubernetes/8.0.18/security/_index.md) and access control for your Redis Enterprise deployment. -- [Manage REC credentials]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-credentials" >}}) -- [Manage REC certificates]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-certificates" >}}) -- [Internode encryption]({{< relref "/operate/kubernetes/8.0.18/security/internode-encryption" >}}) -- [LDAP authentication]({{< relref "/operate/kubernetes/8.0.18/security/ldap" >}}) +- [Manage REC credentials](/content/operate/kubernetes/8.0.18/security/manage-rec-credentials.md) +- [Manage REC certificates](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) +- [Internode encryption](/content/operate/kubernetes/8.0.18/security/internode-encryption.md) +- [LDAP authentication](/content/operate/kubernetes/8.0.18/security/ldap.md) ## Reference Use the Kubernetes API and command-line tools to manage your Redis Enterprise deployment. -- [Redis Enterprise cluster API (REC)]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) -- [Redis Enterprise database API (REDB)]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}) -- [Active-Active database API (REAADB)]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api" >}}) -- [Remote cluster API (RERC)]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api" >}}) +- [Redis Enterprise cluster API (REC)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) +- [Redis Enterprise database API (REDB)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md) +- [Active-Active database API (REAADB)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md) +- [Remote cluster API (RERC)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md) ## Logs & monitoring Monitor and troubleshoot your Redis Enterprise deployment. -- [Collect logs]({{< relref "/operate/kubernetes/8.0.18/logs/collect-logs" >}}) -- [Connect to Prometheus operator]({{< relref "/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator" >}}) +- [Collect logs](/content/operate/kubernetes/8.0.18/logs/collect-logs.md) +- [Connect to Prometheus operator](/content/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator.md) ## Upgrade Keep your Redis Enterprise deployment up to date. -- [Upgrade Redis cluster]({{< relref "/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster" >}}) -- [Upgrade with OpenShift CLI]({{< relref "/operate/kubernetes/8.0.18/upgrade/openshift-cli" >}}) -- [Upgrade with OLM]({{< relref "/operate/kubernetes/8.0.18/upgrade/upgrade-olm" >}}) +- [Upgrade Redis cluster](/content/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster.md) +- [Upgrade with OpenShift CLI](/content/operate/kubernetes/8.0.18/upgrade/openshift-cli.md) +- [Upgrade with OLM](/content/operate/kubernetes/8.0.18/upgrade/upgrade-olm.md) ## Release notes Stay informed about new features, enhancements, and fixes. -- [Release notes]({{< relref "/operate/kubernetes/release-notes" >}}) +- [Release notes](/content/operate/kubernetes/release-notes/_index.md) ## Related info -- [Redis Enterprise Software]({{< relref "/operate/rs" >}}) -- [Redis Cloud]({{< relref "/operate/rc" >}}) -- [Redis Open Source]({{< relref "/operate/oss_and_stack" >}}) -- [Glossary]({{< relref "/glossary" >}}) \ No newline at end of file +- [Redis Enterprise Software](/content/operate/rs/_index.md) +- [Redis Cloud](/content/operate/rc/_index.md) +- [Redis Open Source](/content/operate/oss_and_stack/_index.md) +- [Glossary](/content/glossary/_index.md) \ No newline at end of file diff --git a/content/operate/kubernetes/8.0.18/active-active/_index.md b/content/operate/kubernetes/8.0.18/active-active/_index.md index 403fb62262..331350c7ad 100644 --- a/content/operate/kubernetes/8.0.18/active-active/_index.md +++ b/content/operate/kubernetes/8.0.18/active-active/_index.md @@ -12,7 +12,7 @@ weight: 40 url: '/operate/kubernetes/8.0.18/active-active/' --- -Redis Enterprise [Active-Active]({{< relref "/operate/rs/databases/active-active/" >}}) databases on Kubernetes provide read and write access to the same dataset from different Kubernetes clusters. This enables globally distributed applications with local read and write access, automatic conflict resolution, and seamless failover capabilities. +Redis Enterprise [Active-Active](/content/operate/rs/databases/active-active/_index.md) databases on Kubernetes provide read and write access to the same dataset from different Kubernetes clusters. This enables globally distributed applications with local read and write access, automatic conflict resolution, and seamless failover capabilities. Active-Active databases use multi-master replication to keep data synchronized across participating clusters, allowing applications to read and write data locally while maintaining global consistency. @@ -32,9 +32,9 @@ Versions 6.4.2-6 or later fully support the Active-Active controller. Some of th This setup method includes the following steps: -1. Gather REC credentials and [prepare participating clusters]({{< relref "/operate/kubernetes/8.0.18/active-active/prepare-clusters" >}}). -2. Create [`RedisEnterpriseRemoteCluster` (RERC)]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb#create-rerc" >}}) resources. -3. Create [`RedisEnterpriseActiveActiveDatabase` (REAADB)]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb#create-reaadb" >}}) resource. +1. Gather REC credentials and [prepare participating clusters](/content/operate/kubernetes/8.0.18/active-active/prepare-clusters.md). +2. Create [`RedisEnterpriseRemoteCluster` (RERC)](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md#create-rerc) resources. +3. Create [`RedisEnterpriseActiveActiveDatabase` (REAADB)](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md#create-reaadb) resource. ### `crdb-cli` method @@ -47,33 +47,34 @@ For versions 6.4.2 or earlier, this Active-Active setup method includes the foll ## Redis Enterprise Active-Active controller for Kubernetes -{{}}These features are supported for general availability in releases 6.4.2-6 and later.{{}} +> [!NOTE] +> These features are supported for general availability in releases 6.4.2-6 and later. -[Active-Active]({{< relref "/operate/rs/databases/active-active/" >}}) databases give you read-and-write access to Redis Enterprise clusters (REC) in different Kubernetes clusters or namespaces. Active-Active deployments managed by the Redis Enterprise operator require two additional custom resources: Redis Enterprise Active-Active database (REAADB) and Redis Enterprise remote cluster (RERC). +[Active-Active](/content/operate/rs/databases/active-active/_index.md) databases give you read-and-write access to Redis Enterprise clusters (REC) in different Kubernetes clusters or namespaces. Active-Active deployments managed by the Redis Enterprise operator require two additional custom resources: Redis Enterprise Active-Active database (REAADB) and Redis Enterprise remote cluster (RERC). -To create an Active-Active Redis Enterprise deployment for Kubernetes with these new features, first [prepare participating clusters]({{< relref "/operate/kubernetes/8.0.18/active-active/prepare-clusters" >}}) then [create an Active-Active database]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb" >}}). +To create an Active-Active Redis Enterprise deployment for Kubernetes with these new features, first [prepare participating clusters](/content/operate/kubernetes/8.0.18/active-active/prepare-clusters.md) then [create an Active-Active database](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md). ### 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 a full list of fields and options, see the [REAADB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md). -For examples, see the [YAML examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/active-active" >}}) section. +For examples, see the [YAML examples](/content/operate/kubernetes/8.0.18/reference/yaml/active-active.md) 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 a full list of fields and options, see the [RERC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md). -For examples, see the [YAML examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/active-active" >}}) section. +For examples, see the [YAML examples](/content/operate/kubernetes/8.0.18/reference/yaml/active-active.md) section. ### Manage certificates The operator automates Active-Active certificate updates. When you update the proxy or syncer certificate secret on a participating cluster's REC, the operator detects the change and propagates the new certificate to the other participating clusters. -For details, see [Manage REC certificates]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-certificates" >}}) and [cert-manager integration]({{< relref "/operate/kubernetes/8.0.18/security/cert-manager" >}}). +For details, see [Manage REC certificates](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) and [cert-manager integration](/content/operate/kubernetes/8.0.18/security/cert-manager.md). ### Limitations @@ -84,8 +85,8 @@ For details, see [Manage REC certificates]({{< relref "/operate/kubernetes/8.0.1 * Only global database options are supported, no support for specifying configuration per location. * No support for migration from old (`crdb-cli`) Active-Active database method to new Active-Active controller. * No support for REAADB with participating clusters co-located within the same Kubernetes cluster, except for a single designated local participating cluster. -* Active-Active databases cannot be configured as [Redis Flex]({{< relref "/operate/kubernetes/8.0.18/flex" >}}) deployments. +* Active-Active databases cannot be configured as [Redis Flex](/content/operate/kubernetes/8.0.18/flex/_index.md) deployments. ## More info -For more general information about Active-Active, see the [Redis Enterprise Software docs]({{< relref "/operate/rs/databases/active-active/" >}}). +For more general information about Active-Active, see the [Redis Enterprise Software docs](/content/operate/rs/databases/active-active/_index.md). diff --git a/content/operate/kubernetes/8.0.18/active-active/create-aa-crdb-cli.md b/content/operate/kubernetes/8.0.18/active-active/create-aa-crdb-cli.md index da49419971..a5c2d9454d 100644 --- a/content/operate/kubernetes/8.0.18/active-active/create-aa-crdb-cli.md +++ b/content/operate/kubernetes/8.0.18/active-active/create-aa-crdb-cli.md @@ -11,11 +11,12 @@ linkTitle: Create Active-Active with crdb-cli weight: 99 url: '/operate/kubernetes/8.0.18/active-active/create-aa-crdb-cli/' --- -{{}} Versions 6.4.2 and later support the Active-Active database controller. This controller allows you to create Redis Enterprise Active-Active databases (REAADB) and Redis Enterprise remote clusters (RERC) with custom resources. We recommend using the [REAADB method for creating Active-Active databases]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb" >}}).{{}} +> [!NOTE] +> Versions 6.4.2 and later support the Active-Active database controller. This controller allows you to create Redis Enterprise Active-Active databases (REAADB) and Redis Enterprise remote clusters (RERC) with custom resources. We recommend using the [REAADB method for creating Active-Active databases](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md). -On Kubernetes, Redis Enterprise [Active-Active]({{< relref "/operate/rs/databases/active-active/" >}}) databases provide read-and-write access to the same dataset from different Kubernetes clusters. For more general information about Active-Active, see the [Redis Enterprise Software docs]({{< relref "/operate/rs/databases/active-active/" >}}). +On Kubernetes, Redis Enterprise [Active-Active](/content/operate/rs/databases/active-active/_index.md) databases provide read-and-write access to the same dataset from different Kubernetes clusters. For more general information about Active-Active, see the [Redis Enterprise Software docs](/content/operate/rs/databases/active-active/_index.md). -Creating an Active-Active database requires routing [network access]({{< relref "/operate/kubernetes/8.0.18/networking/" >}}) between two Redis Enterprise clusters residing in different Kubernetes clusters. Without the proper access configured for each cluster, syncing between the databases instances will fail. +Creating an Active-Active database requires routing [network access](/content/operate/kubernetes/8.0.18/networking/_index.md) between two Redis Enterprise clusters residing in different Kubernetes clusters. Without the proper access configured for each cluster, syncing between the databases instances will fail. This process consists of: @@ -27,11 +28,12 @@ This process consists of: Before creating Active-Active databases, you'll need admin access to two or more working Kubernetes clusters that each have: -- Routing for external access with an [ingress resources]({{< relref "/operate/kubernetes/8.0.18/networking/ingress" >}}) (or [route resources]({{< relref "/operate/kubernetes/8.0.18/networking/routes" >}}) on OpenShift). -- A working [Redis Enterprise cluster (REC)]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) with a unique name. -- Enough memory resources available for the database (see [hardware requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}})). +- Routing for external access with an [ingress resources](/content/operate/kubernetes/8.0.18/networking/ingress.md) (or [route resources](/content/operate/kubernetes/8.0.18/networking/routes.md) on OpenShift). +- A working [Redis Enterprise cluster (REC)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) with a unique name. +- Enough memory resources available for the database (see [hardware requirements](/content/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md)). -{{}} The `activeActive` field and the `ingressOrRouteSpec` field cannot coexist in the same REC. If you configured your ingress via the `ingressOrRouteSpec` field in the REC, create your Active-Active database with the RedisEnterpriseActiveActiveDatabase (REAADB) custom resource.{{}} +> [!NOTE] +> The `activeActive` field and the `ingressOrRouteSpec` field cannot coexist in the same REC. If you configured your ingress via the `ingressOrRouteSpec` field in the REC, create your Active-Active database with the RedisEnterpriseActiveActiveDatabase (REAADB) custom resource. ## Document required parameters @@ -50,9 +52,8 @@ The most common mistake when setting up Active-Active databases is incorrect or You'll need the following information for each participating Redis Enterprise cluster (REC): -{{}} -You'll need to create DNS aliases to resolve your API hostname ``,``, `` to the IP address for the ingress controller’s LoadBalancer (or routes in Openshift) for each database. To avoid entering multiple DNS records, you can use a wildcard in your alias (such as *.ijk.example.com). -{{}} +> [!NOTE] +> You'll need to create DNS aliases to resolve your API hostname ``,``, `` to the IP address for the ingress controller’s LoadBalancer (or routes in Openshift) for each database. To avoid entering multiple DNS records, you can use a wildcard in your alias (such as *.ijk.example.com). - **REC hostname** ``: - Description: Hostname used to identify your Redis Enterprise cluster in the `crdb-cli` command. This MUST be different from other participating clusters. @@ -70,7 +71,7 @@ You'll need to create DNS aliases to resolve your API hostname ``, - Description: Combined with database name to create the Active-Active database hostname - Format: string - Example value: `-cluster.ijk.example.com` -- [**REC admin credentials**]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-credentials" >}}) ` `: +- [**REC admin credentials**](/content/operate/kubernetes/8.0.18/security/manage-rec-credentials.md) ` `: - Description: Admin username and password for the REC stored in a secret - Format: string - Example value: username: `user@example.com`, password: `something` @@ -100,7 +101,7 @@ From inside your K8s cluster, edit your Redis Enterprise cluster (REC) resource ### Using ingress controller -1. If your cluster uses an [ingress controller]({{< relref "/operate/kubernetes/8.0.18/networking/ingress" >}}), add the following to the `spec` section of your REC resource file. +1. If your cluster uses an [ingress controller](/content/operate/kubernetes/8.0.18/networking/ingress.md), add the following to the `spec` section of your REC resource file. Nginx: @@ -147,11 +148,10 @@ HAproxy: #### If using Istio Gateway and VirtualService -No changes are required to the REC spec if you are using [Istio]({{< relref "/operate/kubernetes/8.0.18/networking/istio-ingress" >}}) in place of an ingress controller. The `activeActive` section added above creates ingress resources. The two custom resources used to configure Istio (Gateway and VirtualService) replace the need for ingress resources. +No changes are required to the REC spec if you are using [Istio](/content/operate/kubernetes/8.0.18/networking/istio-ingress.md) in place of an ingress controller. The `activeActive` section added above creates ingress resources. The two custom resources used to configure Istio (Gateway and VirtualService) replace the need for ingress resources. -{{}} -These custom resources are not controlled by the operator and will need to be configured and maintained manually. -{{}} +> [!WARNING] +> These custom resources are not controlled by the operator and will need to be configured and maintained manually. For each cluster, verify the VirtualService resource has two `- match:` blocks in the `tls` section. The hostname under `sniHosts:` should match your ``. @@ -174,7 +174,7 @@ For each cluster, verify the VirtualService resource has two `- match:` blocks i 1. Make sure you have DNS aliases for each database that resolve your API hostname ``,``, `` to the route IP address. To avoid entering multiple DNS records, you can use a wildcard in your alias (such as `*.ijk.example.com`). -1. If your cluster uses [OpenShift routes]({{< relref "/operate/kubernetes/8.0.18/networking/routes" >}}), add the following to the `spec` section of your Redis Enterprise cluster (REC) resource file. +1. If your cluster uses [OpenShift routes](/content/operate/kubernetes/8.0.18/networking/routes.md), add the following to the `spec` section of your Redis Enterprise cluster (REC) resource file. ```sh activeActive: @@ -195,7 +195,7 @@ For each cluster, verify the VirtualService resource has two `- match:` blocks i ## Create an Active-Active database with `crdb-cli` -The `crdb-cli` command can be run from any Redis Enterprise pod hosted on any participating K8s cluster. You'll need the values for the [required parameters]({{< relref "/operate/kubernetes/8.0.18/active-active/create-aa-crdb-cli#document-required-parameters" >}}) for each Redis Enterprise cluster. +The `crdb-cli` command can be run from any Redis Enterprise pod hosted on any participating K8s cluster. You'll need the values for the [required parameters](/content/operate/kubernetes/8.0.18/active-active/create-aa-crdb-cli.md#document-required-parameters) for each Redis Enterprise cluster. ```sh crdb-cli crdb create \ @@ -208,10 +208,10 @@ crdb-cli crdb create \ To create a database that syncs between more than two instances, add additional `--instance` arguments. -See the [`crdb-cli` reference]({{< relref "/operate/rs/references/cli-utilities/crdb-cli" >}}) for more options. +See the [`crdb-cli` reference](/content/operate/rs/references/cli-utilities/crdb-cli/_index.md) for more options. ## Test your database The easiest way to test your Active-Active database is to set a key-value pair in one database and retrieve it from the other. -You can connect to your databases with the instructions in [Manage databases]({{< relref "/operate/kubernetes/8.0.18/re-databases/db-controller#connect-to-a-database" >}}). Set a test key with `SET foo bar` in the first database. If your Active-Active deployment is working properly, when connected to your second database, `GET foo` should output `bar`. +You can connect to your databases with the instructions in [Manage databases](/content/operate/kubernetes/8.0.18/re-databases/db-controller.md#connect-to-a-database). Set a test key with `SET foo bar` in the first database. If your Active-Active deployment is working properly, when connected to your second database, `GET foo` should output `bar`. diff --git a/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md b/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md index da6a4b7b56..d7dbdf5fc2 100644 --- a/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md +++ b/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md @@ -17,18 +17,19 @@ url: '/operate/kubernetes/8.0.18/active-active/create-reaadb/' To create an Active-Active database, make sure you've completed all the following steps and have gathered the information listed below each step. -1. Configure the [admission controller and ValidatingWebhook]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start#enable-the-admission-controller/" >}}). - {{}}These are installed and enabled by default on clusters created via the OpenShift OperatorHub. {{}} +1. Configure the [admission controller and ValidatingWebhook](/content/operate/kubernetes/8.0.18/deployment/quick-start.md#enable-the-admission-controller/). + > [!NOTE] + > These are installed and enabled by default on clusters created via the OpenShift OperatorHub. -2. Create two or more [RedisEnterpriseCluster (REC) custom resources]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start#create-a-redis-enterprise-cluster-rec" >}}) with enough [memory resources]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). +2. Create two or more [RedisEnterpriseCluster (REC) custom resources](/content/operate/kubernetes/8.0.18/deployment/quick-start.md#create-a-redis-enterprise-cluster-rec) with enough [memory resources](/content/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md). * Name of each REC (``) * Namespace for each REC (``) -3. Configure the REC [`ingressOrRoutes` field]({{< relref "/operate/kubernetes/8.0.18/networking/ingressorroutespec" >}}) and [create DNS records]({{< relref "/operate/kubernetes/8.0.18/networking/ingressorroutespec#configure-dns/" >}}). +3. Configure the REC [`ingressOrRoutes` field](/content/operate/kubernetes/8.0.18/networking/ingressorroutespec.md) and [create DNS records](/content/operate/kubernetes/8.0.18/networking/ingressorroutespec.md#configure-dns/). * REC API hostname (`api--.`) * Database hostname suffix (`-db--.`) -4. [Prepare participating clusters]({{< relref "/operate/kubernetes/8.0.18/active-active/prepare-clusters" >}}) +4. [Prepare participating clusters](/content/operate/kubernetes/8.0.18/active-active/prepare-clusters.md) * RERC name (`) * RERC secret name (`redis-enterprise-`) @@ -48,7 +49,7 @@ Example RERC (`rerc-raegan`) for the REC named `rec-arlington` in the namespace {{}} -For more details on RERC fields, see the [RERC API reference]({{}}). +For more details on RERC fields, see the [RERC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md). 2. Create a Redis Enterprise remote cluster from each RERC custom resource file. @@ -90,9 +91,10 @@ Example REAADB named `reaadb-boeing` linked to the REC named `rec-chicago` with {{}} -{{}}Sharding is disabled on Active-Active databases created with a `shardCount` of 1. Sharding cannot be enabled after database creation. {{}} +> [!NOTE] +> 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]({{}}). +For more details on RERC fields, see the [RERC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md). 2. Create a Redis Enterprise Active-Active database from the REAADB custom resource file. @@ -119,7 +121,7 @@ In case of errors, review the REAADB custom resource events and the Redis Enterp ## Example values -This article uses the example values listed below. You can also find them in the [YAML examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/active-active" >}}) section. +This article uses the example values listed below. You can also find them in the [YAML examples](/content/operate/kubernetes/8.0.18/reference/yaml/active-active.md) section. Example cluster 1: diff --git a/content/operate/kubernetes/8.0.18/active-active/edit-clusters.md b/content/operate/kubernetes/8.0.18/active-active/edit-clusters.md index 47bae7ff9f..56a3b4ebfa 100644 --- a/content/operate/kubernetes/8.0.18/active-active/edit-clusters.md +++ b/content/operate/kubernetes/8.0.18/active-active/edit-clusters.md @@ -11,7 +11,8 @@ linkTitle: Edit participating clusters weight: 40 url: '/operate/kubernetes/8.0.18/active-active/edit-clusters/' --- -{{}}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.{{}} +> [!NOTE] +> 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. ## Add a participating cluster @@ -19,7 +20,7 @@ Use the following steps to add a participating cluster to an existing Redis Ente ### Prerequisites -To prepare the Redis Enterprise cluster (REC) to participate in an Active-Active database, perform the following tasks from [Prepare participating clusters]({{< relref "/operate/kubernetes/8.0.18/active-active/prepare-clusters" >}}): +To prepare the Redis Enterprise cluster (REC) to participate in an Active-Active database, perform the following tasks from [Prepare participating clusters](/content/operate/kubernetes/8.0.18/active-active/prepare-clusters.md): - Make sure the cluster meets the hardware and naming requirements. - Enable the Active-Active controllers. diff --git a/content/operate/kubernetes/8.0.18/active-active/edit-rerc.md b/content/operate/kubernetes/8.0.18/active-active/edit-rerc.md index d7c09108b3..5813bfb7a2 100644 --- a/content/operate/kubernetes/8.0.18/active-active/edit-rerc.md +++ b/content/operate/kubernetes/8.0.18/active-active/edit-rerc.md @@ -11,17 +11,18 @@ linkTitle: Edit RERC weight: 60 url: '/operate/kubernetes/8.0.18/active-active/edit-rerc/' --- -{{}}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.{{}} +> [!NOTE] +> 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. Before a RedisEnterpriseCluster (REC) can participate in an Active-Active database, it needs an accompanying RedisEnterpriseRemoteCluster (RERC) custom resource. The RERC contains details allowing the REC to link to the RedisEnterpriseActiveActiveDatabase (REAADB). The RERC resource is listed in the REAADB resource to become a participating cluster for the Active-Active database. The RERC controller periodically connects to the local REC endpoint via its external address, to ensure it’s setup correctly. For this to work, the external load balancer must support [NAT hairpinning](https://en.wikipedia.org/wiki/Network_address_translation#NAT_loopback). In some cloud environments, this may involve disabling IP preservation for the load balancer target groups. -For more details, see the [RERC API reference]({{}}). +For more details, see the [RERC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md). ## Edit RERC -Use the `kubectl patch rerc --type merge --patch` command to patch the local RERC custom resource with your changes. For a full list of available fields, see the [RERC API reference]({{}}). +Use the `kubectl patch rerc --type merge --patch` command to patch the local RERC custom resource with your changes. For a full list of available fields, see the [RERC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md). The following example edits the `dbFqdnSuffix` field for the RERC named `rerc-ohare`. @@ -68,7 +69,7 @@ If the credentials are changed or updated for a REC participating cluster, you n rerc-ohare Active Valid true ``` - To troubleshoot invalid configurations, view the RERC custom resource events and the [Redis Enterprise operator logs]({{< relref "/operate/kubernetes/8.0.18/logs/" >}}). + To troubleshoot invalid configurations, view the RERC custom resource events and the [Redis Enterprise operator logs](/content/operate/kubernetes/8.0.18/logs/_index.md). 1. Verify the status of each REAADB using that RERC is "Active" and the spec status is "Valid." @@ -82,6 +83,6 @@ If the credentials are changed or updated for a REC participating cluster, you n reaadb-boeing active Valid up ``` - To troubleshoot invalid configurations, view the RERC custom resource events and the [Redis Enterprise operator logs]({{< relref "/operate/kubernetes/8.0.18/logs/" >}}). + To troubleshoot invalid configurations, view the RERC custom resource events and the [Redis Enterprise operator logs](/content/operate/kubernetes/8.0.18/logs/_index.md). 1. Repeat the above steps on all other participating clusters. \ No newline at end of file diff --git a/content/operate/kubernetes/8.0.18/active-active/global-config.md b/content/operate/kubernetes/8.0.18/active-active/global-config.md index 8240c4a682..292282e94e 100644 --- a/content/operate/kubernetes/8.0.18/active-active/global-config.md +++ b/content/operate/kubernetes/8.0.18/active-active/global-config.md @@ -15,7 +15,7 @@ url: '/operate/kubernetes/8.0.18/active-active/global-config/' The Redis Enterprise Active-Active database (REAADB) custom resource contains the field `.spec.globalConfigurations`. This field sets configurations for the Active-Active database across all participating clusters, such as memory size, shard count, and the global database secrets. -The [REAADB API reference]({{}}) contains a full list of available fields. +The [REAADB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md) contains a full list of available fields. ## Edit global configurations @@ -47,7 +47,7 @@ The [REAADB API reference]({{}}). +This section edits the secrets under the REAADB `.spec.globalConfigurations` section. For more information and all available fields, see the [REAADB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md). 1. On an existing participating cluster, generate a YAML file containing the database secret with the relevant data. @@ -109,7 +109,8 @@ This section edits the secrets under the REAADB `.spec.globalConfigurations` sec You can configure role-based access control (RBAC) permissions for Active-Active databases using the `rolesPermissions` field in the REAADB `.spec.globalConfigurations` section. The role permissions configuration is propagated across all participating clusters, but the underlying roles and Redis ACLs must be manually created on each cluster. -{{}}You must manually create the specified roles and Redis ACLs on all participating clusters before configuring role permissions. The operator only propagates the role permissions configuration—it does not create the underlying roles and ACLs. If roles or ACLs are missing on any cluster, the operator will log errors and dispatch an Event associated with the REAADB object until they are manually created.{{}} +> [!NOTE] +> You must manually create the specified roles and Redis ACLs on all participating clusters before configuring role permissions. The operator only propagates the role permissions configuration—it does not create the underlying roles and ACLs. If roles or ACLs are missing on any cluster, the operator will log errors and dispatch an Event associated with the REAADB object until they are manually created. ### Prerequisites @@ -119,7 +120,8 @@ Before configuring role permissions: 2. Ensure role and ACL names match exactly across all clusters (names are case-sensitive). 3. Verify that roles and ACLs are properly configured on each cluster. -{{}}The operator does not automatically create or synchronize roles and ACLs across clusters. You are responsible for manually creating identical roles and ACLs on each participating cluster.{{}} +> [!WARNING] +> The operator does not automatically create or synchronize roles and ACLs across clusters. You are responsible for manually creating identical roles and ACLs on each participating cluster. ### Add role permissions to REAADB @@ -161,7 +163,7 @@ Before configuring role permissions: '{"spec": {"globalConfigurations": {"rolesPermissions": [{"role": "", "acl": "", "type": "redis-enterprise"}]}}}' ``` -3. After the REAADB is active and its replication status is "Up", verify role permissions are applied to the local database using the Redis Enterprise REST API. See [Database requests]({{}}) for details. +3. After the REAADB is active and its replication status is "Up", verify role permissions are applied to the local database using the Redis Enterprise REST API. See [Database requests](/content/operate/rs/references/rest-api/requests/bdbs/_index.md#get-bdbs) for details. ### Troubleshooting role permissions @@ -171,4 +173,4 @@ If you encounter issues with role permissions: - **Permission propagation failures**: Verify that the roles and ACLs are properly configured and accessible on each cluster. Remember that you must manually create identical roles and ACLs on every participating cluster. - **Case sensitivity issues**: Verify that role and ACL names match exactly, including capitalization, across all clusters. -For more details on the `rolesPermissions` field structure, see the [REAADB API reference]({{}}). \ No newline at end of file +For more details on the `rolesPermissions` field structure, see the [REAADB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md#specglobalconfigurationsrolespermissions). \ No newline at end of file diff --git a/content/operate/kubernetes/8.0.18/active-active/global-db-secret.md b/content/operate/kubernetes/8.0.18/active-active/global-db-secret.md index 0eb39d29c6..36926eb982 100644 --- a/content/operate/kubernetes/8.0.18/active-active/global-db-secret.md +++ b/content/operate/kubernetes/8.0.18/active-active/global-db-secret.md @@ -17,7 +17,7 @@ url: '/operate/kubernetes/8.0.18/active-active/global-db-secret/' One of the fields available for `globalConfigurations` is `databaseSecretName` which can point to a secret containing the database password. To set the database secret name and sync the data to all participating clusters, follow the steps below. -To edit other global configruations, see [global configuration]({{< relref "/operate/kubernetes/8.0.18/active-active/global-config" >}}) +To edit other global configruations, see [global configuration](/content/operate/kubernetes/8.0.18/active-active/global-config.md) 1. On an existing participating cluster, generate a YAML file containing the database secret with the database password. diff --git a/content/operate/kubernetes/8.0.18/active-active/prepare-clusters.md b/content/operate/kubernetes/8.0.18/active-active/prepare-clusters.md index 167bf46b36..9a5e402121 100644 --- a/content/operate/kubernetes/8.0.18/active-active/prepare-clusters.md +++ b/content/operate/kubernetes/8.0.18/active-active/prepare-clusters.md @@ -16,13 +16,13 @@ url: '/operate/kubernetes/8.0.18/active-active/prepare-clusters/' 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. -1. Configure the [admission controller and ValidatingWebhook]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start#enable-the-admission-controller/" >}}). +1. Configure the [admission controller and ValidatingWebhook](/content/operate/kubernetes/8.0.18/deployment/quick-start.md#enable-the-admission-controller/). -2. Create two or more [RedisEnterpriseCluster (REC) custom resources]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start#create-a-redis-enterprise-cluster-rec" >}}) with enough [memory resources]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). +2. Create two or more [RedisEnterpriseCluster (REC) custom resources](/content/operate/kubernetes/8.0.18/deployment/quick-start.md#create-a-redis-enterprise-cluster-rec) with enough [memory resources](/content/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md). * Name of each REC (``) * Namespace for each REC (``) -3. Configure the REC [`ingressOrRoutes` field]({{< relref "/operate/kubernetes/8.0.18/networking/ingressorroutespec" >}}) and [create DNS records]({{< relref "/operate/kubernetes/8.0.18/networking/ingressorroutespec#configure-dns/" >}}). +3. Configure the REC [`ingressOrRoutes` field](/content/operate/kubernetes/8.0.18/networking/ingressorroutespec.md) and [create DNS records](/content/operate/kubernetes/8.0.18/networking/ingressorroutespec.md#configure-dns/). * REC API hostname (`api--.`) * Database hostname suffix (`-db--.`) @@ -82,9 +82,8 @@ To communicate with other clusters, all participating clusters will need access type: Opaque ``` - {{< note >}} - The `username` and `password` values should be base64 encoded, not plain text. - {{< /note >}} + > [!NOTE] + > The `username` and `password` values should be base64 encoded, not plain text. 1. Add the username and password to the new secret for that REC and namespace. @@ -123,11 +122,11 @@ To communicate with other clusters, all participating clusters will need access ## Next steps -Now you are ready to [create your Redis Enterprise Active-Active database]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb" >}}). +Now you are ready to [create your Redis Enterprise Active-Active database](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md). ## Example values -This article uses the example values listed below. They can also be found in the [YAML examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/active-active" >}}) section. +This article uses the example values listed below. They can also be found in the [YAML examples](/content/operate/kubernetes/8.0.18/reference/yaml/active-active.md) section. Example cluster 1: diff --git a/content/operate/kubernetes/8.0.18/architecture/_index.md b/content/operate/kubernetes/8.0.18/architecture/_index.md index 69149f2a4b..6749989007 100644 --- a/content/operate/kubernetes/8.0.18/architecture/_index.md +++ b/content/operate/kubernetes/8.0.18/architecture/_index.md @@ -19,9 +19,9 @@ Redis Enterprise for Kubernetes gives you the speed and durability of [Redis Ent Redis Enterprise for Kubernetes is compatible with [CNCF-conformant](https://www.cncf.io/training/certification/software-conformance/) Kubernetes platforms. The operator follows standard Kubernetes APIs and practices and is designed to run consistently across certified Kubernetes environments. -Each version of Redis Enterprise for Kubernetes is tested to ensure the version of Redis Enterprise works with the [supported Kubernetes distributions]({{}}) at the time. Both the Kubernetes version and the Redis Enterprise version must be supported for the operator to function correctly. We encourage you to upgrade Redis Enterprise for Kubernetes frequently, not only to get the benefit of enhancements and bug fixes, but to keep your software supported. +Each version of Redis Enterprise for Kubernetes is tested to ensure the version of Redis Enterprise works with the [supported Kubernetes distributions](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md) at the time. Both the Kubernetes version and the Redis Enterprise version must be supported for the operator to function correctly. We encourage you to upgrade Redis Enterprise for Kubernetes frequently, not only to get the benefit of enhancements and bug fixes, but to keep your software supported. -Supported platforms are listed in the [release notes]({{}}) and in the [supported platforms reference.]({{}}) +Supported platforms are listed in the [release notes](/content/operate/kubernetes/release-notes/_index.md) and in the [supported platforms reference.](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md) ## Architecture @@ -47,15 +47,15 @@ When the operator is installed, the following resources are created: The Redis Enterprise [operator](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) is deployed within a [namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/). Each namespace can host only one operator and one [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec). Namespaces create logical boundaries between resources, allowing organization and security. Some resources are limited to a namespace, while others are cluster-wide. -Redis Enterprise for Kubernetes also supports [multi-namespace deployments]({{}}), meaning the operator can monitor other namespaces (that host applications) for custom resources and apply any changes. +Redis Enterprise for Kubernetes also supports [multi-namespace deployments](/content/operate/kubernetes/8.0.18/architecture/deployment-options.md), meaning the operator can monitor other namespaces (that host applications) for custom resources and apply any changes. ## Custom resources Kubernetes [custom resources (CRs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) are commonly used by databases and other applications to extend the cluster's behavior without changing its underlying code. [Custom resources (CRs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) extend the Kubernetes API, enabling users to manage Redis databases the Kubernetes way. Custom resources are created and managed using YAML configuration files. -This [declarative configuration approach](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/) allows you to specify the desired state for your resources, and the operator makes the necessary changes to achieve that state. This simplifies [installation]({{}}), [upgrades]({{}}), and [scaling]({{}}) both vertically and horizontally. +This [declarative configuration approach](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/) allows you to specify the desired state for your resources, and the operator makes the necessary changes to achieve that state. This simplifies [installation](/content/operate/kubernetes/8.0.18/deployment/_index.md), [upgrades](/content/operate/kubernetes/8.0.18/upgrade/_index.md), and [scaling](/content/operate/kubernetes/8.0.18/recommendations/sizing-on-kubernetes.md) both vertically and horizontally. -The operator continuously monitors CRs for changes, automatically reconciling any differences between the desired state you specified in your YAML configuration file, and the actual state of your resources. Custom resources can also reside in separate namespaces from the operator managing them, such as in [multi-namespace installations]({{}}). +The operator continuously monitors CRs for changes, automatically reconciling any differences between the desired state you specified in your YAML configuration file, and the actual state of your resources. Custom resources can also reside in separate namespaces from the operator managing them, such as in [multi-namespace installations](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md). ## Custom resource definitions @@ -65,49 +65,49 @@ For settings managed by the operator, any changes made outside of the CR YAML fi ## RedisEnterpriseCluster REC -A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. Each node is capable of running multiple Redis instances ([shards]({{}})). +A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. Each node is capable of running multiple Redis instances ([shards](/content/operate/rs/references/terminology.md)). {{< image filename="/images/k8s/k8s-node-arch.png">}} -A Redis cluster is created and managed by the [RedisEnterpriseCluster (REC)]({{}}) [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). Changes to the REC configuration file prompt the operator to make changes to the cluster. The REC is required for both standard databases ([REDB](#redisenterprisedatabase-redb)) and Active-Active databases ([REAADB](#redisenterpriseactiveactivedatabase-reaadb)). +A Redis cluster is created and managed by the [RedisEnterpriseCluster (REC)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). Changes to the REC configuration file prompt the operator to make changes to the cluster. The REC is required for both standard databases ([REDB](#redisenterprisedatabase-redb)) and Active-Active databases ([REAADB](#redisenterpriseactiveactivedatabase-reaadb)). -See the [RedisEnterpriseCluster API Reference]({{}}) for a full list of fields and settings. +See the [RedisEnterpriseCluster API Reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) for a full list of fields and settings. ## RedisEnterpriseDatabase REDB -A Redis Enterprise database is a logical entity that manages your entire dataset across multiple Redis instances. A Redis instance is a single-threaded database process ([commonly referred to as a shard]({{}})). +A Redis Enterprise database is a logical entity that manages your entire dataset across multiple Redis instances. A Redis instance is a single-threaded database process ([commonly referred to as a shard](/content/operate/rs/references/terminology.md)). -Redis databases are created and managed by the [RedisEnterpriseDatabase (REDB)]({{}}) [custom resource (CR)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). Changes to the REDB YAML configuration file prompt the operator to make changes to the database. +Redis databases are created and managed by the [RedisEnterpriseDatabase (REDB)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md) [custom resource (CR)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). Changes to the REDB YAML configuration file prompt the operator to make changes to the database. -An operator can manage a database in the same namespace, or a different namespace. See ["Flexible deployment"]({{}}) options and ["Manage databases in multiple namespaces"]({{}}) for more information. +An operator can manage a database in the same namespace, or a different namespace. See ["Flexible deployment"](/content/operate/kubernetes/8.0.18/architecture/deployment-options.md) options and ["Manage databases in multiple namespaces"](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md) for more information. -See the [RedisEnterpriseDatabase (REDB) API Reference]({{}}) for a full list of fields and settings. +See the [RedisEnterpriseDatabase (REDB) API Reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md) for a full list of fields and settings. ## Security -Redis Enterprise for Kubernetes uses [secrets](https://kubernetes.io/docs/concepts/configuration/secret/) to manage your cluster credentials, cluster certificates, and client certificates. You can configure [LDAP]({{}}) and [internode encryption]({{}}) using the [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec) spec. +Redis Enterprise for Kubernetes uses [secrets](https://kubernetes.io/docs/concepts/configuration/secret/) to manage your cluster credentials, cluster certificates, and client certificates. You can configure [LDAP](/content/operate/kubernetes/8.0.18/security/ldap.md) and [internode encryption](/content/operate/kubernetes/8.0.18/security/internode-encryption.md) using the [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec) spec. ### REC credentials -Redis Enterprise for Kubernetes uses the [RedisEnterpriseCluster (REC)]({{}}) [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) to create a Redis Enterprise cluster. During creation it generates random credentials for the operator to use. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the name of the cluster. +Redis Enterprise for Kubernetes uses the [RedisEnterpriseCluster (REC)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) to create a Redis Enterprise cluster. During creation it generates random credentials for the operator to use. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the name of the cluster. -See [Manage REC credentials]({{}}) for more details. +See [Manage REC credentials](/content/operate/kubernetes/8.0.18/security/manage-rec-credentials.md) for more details. ### REC certificates By default, Redis Enterprise Software for Kubernetes generates TLS certificates for the cluster during creation. These self-signed certificates are generated on the first node of each Redis Enterprise cluster (REC) and are copied to all other nodes in the cluster. -See [Manage REC certificates]({{}}) for more details. +See [Manage REC certificates](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) for more details. ### Client certificates For each client certificate you want to use, you need to create a [Kubernetes secret](https://kubernetes.io/docs/concepts/configuration/secret/) to hold it. You can then reference that secret in your [Redis Enterprise database (REDB)](#redisenterprisedatabase-redb) custom resource. -See [Add client certificates]({{}}) for more details. +See [Add client certificates](/content/operate/kubernetes/8.0.18/security/add-client-certificates.md) for more details. ## Storage -[Persistent storage is mandatory for Redis Enterprise.]({{}}) Redis Enterprise for Kubernetes [requires network-attached storage](https://en.wikipedia.org/wiki/Network-attached_storage). +[Persistent storage is mandatory for Redis Enterprise.](/content/operate/rs/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md) Redis Enterprise for Kubernetes [requires network-attached storage](https://en.wikipedia.org/wiki/Network-attached_storage). Redis Enterprise for Kubernetes uses [PersistentVolumeClaims (PVC)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) to manage storage resources. The PVC is an abstract representation of the [PersistentVolume (PV)](https://kubernetes.io/docs/concepts/storage/persistent-volumes) resources used by your Redis pods. PVCs are created by the Redis Enterprise operator and used by the [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec). @@ -115,7 +115,7 @@ PVCs are created with a specific size and [can be expanded](https://kubernetes.i ### Redis Flex -Redis Enterprise Software for Kubernetes supports [Redis Flex]({{}}) (previously known as Redis on Flash), which extends your node memory to use both RAM and flash storage. SSDs (solid state drives) can store infrequently used (warm) keys and values while frequently used (hot) keys and values are stored in RAM. This improves performance and lowers costs for large datasets. +Redis Enterprise Software for Kubernetes supports [Redis Flex](/content/operate/kubernetes/8.0.18/flex/_index.md) (previously known as Redis on Flash), which extends your node memory to use both RAM and flash storage. SSDs (solid state drives) can store infrequently used (warm) keys and values while frequently used (hot) keys and values are stored in RAM. This improves performance and lowers costs for large datasets. NVMe (non-volatile memory express) SSDs are strongly recommended to achieve the best performance. @@ -125,13 +125,13 @@ By default, Kubernetes doesn't allow you to access your Redis database from outs - Ingress controllers [HAProxy](https://haproxy-ingress.github.io/) and [NGINX](https://kubernetes.github.io/ingress-nginx/) require an `ingress` API resource. - [Istio](https://istio.io/latest/docs/setup/getting-started/) requires `Gateway` and `VirtualService` API resources. -- OpenShift uses [routes]({{< relref "/operate/kubernetes/8.0.18/networking/routes" >}}) to route external traffic. +- OpenShift uses [routes](/content/operate/kubernetes/8.0.18/networking/routes.md) to route external traffic. -The [Active-Active databases](#active-active-databases) require one of above routing methods to be configured in the REC with the [ingressOrRouteSpec field]({{}}). +The [Active-Active databases](#active-active-databases) require one of above routing methods to be configured in the REC with the [ingressOrRouteSpec field](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specingressorroutespec). ## Services Rigger -The services rigger is responsible for creating and updating services related to database objects. It identifies database objects within the cluster and creates services in accordance with [`redisEnterpriseCluster.Spec.servicesRiggerSpec` setting]({{}}) to allow access to those databases. By default, each database has two services, a `cluster_ip` Service with the same name as the database and a `headless` Service with the same name as the database suffixed with `-headless`. It also creates other types of Services such as Ingress Services or OpenshiftRoutes (defined in `redisEnterpriseCluster.Spec.ingressOrRouteSpec`) meant to provide access to REAADB objects. +The services rigger is responsible for creating and updating services related to database objects. It identifies database objects within the cluster and creates services in accordance with [`redisEnterpriseCluster.Spec.servicesRiggerSpec` setting](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specservicesriggerspec) to allow access to those databases. By default, each database has two services, a `cluster_ip` Service with the same name as the database and a `headless` Service with the same name as the database suffixed with `-headless`. It also creates other types of Services such as Ingress Services or OpenshiftRoutes (defined in `redisEnterpriseCluster.Spec.ingressOrRouteSpec`) meant to provide access to REAADB objects. You can view a list of services with the `kubectl get services` command. @@ -139,22 +139,22 @@ Kubernetes is a dynamic environment, with nodes and pods changing as needed. The ## Active-Active databases -On Kubernetes, Redis Enterprise [Active-Active]({{< relref "/operate/rs/databases/active-active/" >}}) databases provide read and write access to the same dataset from different Kubernetes clusters. Creating an Active-Active database requires routing [network access]({{< relref "/operate/kubernetes/8.0.18/networking/" >}}) between two Redis Enterprise clusters residing in different Kubernetes clusters. Without the proper access configured for each cluster, syncing between the databases instances will fail.The admission controller is also required for Active-Active databases on Kubernetes, to validate changes to the custom resources. +On Kubernetes, Redis Enterprise [Active-Active](/content/operate/rs/databases/active-active/_index.md) databases provide read and write access to the same dataset from different Kubernetes clusters. Creating an Active-Active database requires routing [network access](/content/operate/kubernetes/8.0.18/networking/_index.md) between two Redis Enterprise clusters residing in different Kubernetes clusters. Without the proper access configured for each cluster, syncing between the databases instances will fail.The admission controller is also required for Active-Active databases on Kubernetes, to validate changes to the custom resources. -For more details and installation information, see [Active-Active databases]({{}}). For more general information about Active-Active, see the [Redis Enterprise Software docs]({{< relref "/operate/rs/databases/active-active/" >}}). +For more details and installation information, see [Active-Active databases](/content/operate/kubernetes/8.0.18/active-active/_index.md). For more general information about Active-Active, see the [Redis Enterprise Software docs](/content/operate/rs/databases/active-active/_index.md). ## RedisEnterpriseRemoteCluster RERC -The [RedisEnterpriseRemoteCluster (RERC)]({{}}) contains details allowing the REC to link to the RedisEnterpriseActiveActiveDatabase (REAADB). The RERC resource is listed in the [REAADB](#redisenterpriseactiveactivedatabase-reaadb) resource to become a participating cluster for the Active-Active database. +The [RedisEnterpriseRemoteCluster (RERC)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md) contains details allowing the REC to link to the RedisEnterpriseActiveActiveDatabase (REAADB). The RERC resource is listed in the [REAADB](#redisenterpriseactiveactivedatabase-reaadb) resource to become a participating cluster for the Active-Active database. -See the [RERC API reference]({{}}) for a full list of fields and settings. +See the [RERC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md) for a full list of fields and settings. ## RedisEnterpriseActiveActiveDatabase REAADB The RedisEnterpriseActiveActiveDatabase (REAADB) resource creates and manages a database that spans more than one Kubernetes cluster. An REAADB requires [external routing](#networking), at least two [RECs](#redisenterprisecluster-rec), and at least two [RERCs](#redisenterpriseremotecluster-rerc). -See the [REAADB API reference]({{}}) for a full list of fields and settings. +See the [REAADB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md) for a full list of fields and settings. ## Metrics -To collect metrics data from your databases and Redis Enterprise cluster (REC), you can [connect your Prometheus]({{}}) server to an endpoint exposed on your REC. Redis Enterprise for Kubernetes creates a dedicated service to expose the `prometheus` port (8070) for data collection. A custom resource called `ServiceMonitor` allows the [Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/tree/main/Documentation) to connect to this port and collect data from Redis Enterprise. +To collect metrics data from your databases and Redis Enterprise cluster (REC), you can [connect your Prometheus](/content/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator.md) server to an endpoint exposed on your REC. Redis Enterprise for Kubernetes creates a dedicated service to expose the `prometheus` port (8070) for data collection. A custom resource called `ServiceMonitor` allows the [Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/tree/main/Documentation) to connect to this port and collect data from Redis Enterprise. diff --git a/content/operate/kubernetes/8.0.18/architecture/deployment-options.md b/content/operate/kubernetes/8.0.18/architecture/deployment-options.md index 3f658f4176..caa3fd2352 100644 --- a/content/operate/kubernetes/8.0.18/architecture/deployment-options.md +++ b/content/operate/kubernetes/8.0.18/architecture/deployment-options.md @@ -20,13 +20,13 @@ The Redis Enterprise cluster (REC) custom resource must reside in the same names ## Single REC and single namespace (one-to-one) -The standard and simplest deployment deploys your Redis Enterprise databases (REDB) in the same namespace as the Redis Enterprise cluster (REC). No additional configuration is required for this, since there is no communication required to cross namespaces. See [Deploy Redis Enterprise for Kubernetes]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}). +The standard and simplest deployment deploys your Redis Enterprise databases (REDB) in the same namespace as the Redis Enterprise cluster (REC). No additional configuration is required for this, since there is no communication required to cross namespaces. See [Deploy Redis Enterprise for Kubernetes](/content/operate/kubernetes/8.0.18/deployment/quick-start.md). {{< image filename="/images/k8s/k8s-deploy-one-to-one.png" >}} ## Single REC and multiple namespaces (one-to-many) -Multiple Redis Enterprise databases (REDB) spread across multiple namespaces within the same K8s cluster can be associated with the same Redis Enterprise cluster (REC). See [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace" >}}) for more information. +Multiple Redis Enterprise databases (REDB) spread across multiple namespaces within the same K8s cluster can be associated with the same Redis Enterprise cluster (REC). See [Manage databases in multiple namespaces](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md) for more information. {{< image filename="/images/k8s/k8s-deploy-one-to-many.png" >}} @@ -36,7 +36,7 @@ A single Kubernetes cluster can contain multiple Redis Enterprise clusters (REC) You have the flexibility to create databases in separate namespaces, or in the same namespace as the REC, or combine any of the supported deployment options above. This configuration is geared towards use cases that require multiple Redis Enterprise clusters with greater isolation or different cluster configurations. -See [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace" >}}) for more information. +See [Manage databases in multiple namespaces](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md) for more information. {{< image filename="/images/k8s/k8s-deploy-many-to-many-new.png" >}} diff --git a/content/operate/kubernetes/8.0.18/deployment/_index.md b/content/operate/kubernetes/8.0.18/deployment/_index.md index e512fdcfa0..104c1baf01 100644 --- a/content/operate/kubernetes/8.0.18/deployment/_index.md +++ b/content/operate/kubernetes/8.0.18/deployment/_index.md @@ -20,43 +20,43 @@ The Redis Enterprise operator uses custom resource definitions (CRDs) to manage Get started quickly with a basic Redis Enterprise deployment: -- [Deploy Redis Enterprise for Kubernetes]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}) - Step-by-step guide for most Kubernetes distributions -- [Deploy on OpenShift]({{< relref "/operate/kubernetes/8.0.18/deployment/openshift" >}}) - Specific instructions for OpenShift environments +- [Deploy Redis Enterprise for Kubernetes](/content/operate/kubernetes/8.0.18/deployment/quick-start.md) - Step-by-step guide for most Kubernetes distributions +- [Deploy on OpenShift](/content/operate/kubernetes/8.0.18/deployment/openshift/_index.md) - Specific instructions for OpenShift environments ## Deployment methods Choose the deployment method that best fits your environment: -- [Deploy with Helm]({{< relref "/operate/kubernetes/8.0.18/deployment/helm" >}}) - Use Helm charts for simplified deployment and management -- [Deploy with operator bundle]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}) - Direct deployment using kubectl and operator manifests +- [Deploy with Helm](/content/operate/kubernetes/8.0.18/deployment/helm.md) - Use Helm charts for simplified deployment and management +- [Deploy with operator bundle](/content/operate/kubernetes/8.0.18/deployment/quick-start.md) - Direct deployment using kubectl and operator manifests ## Container images Understand the container images used by the Redis Enterprise operator: -- [Container images]({{< relref "/operate/kubernetes/8.0.18/deployment/container-images" >}}) - Details about Redis Enterprise container images and registries +- [Container images](/content/operate/kubernetes/8.0.18/deployment/container-images.md) - Details about Redis Enterprise container images and registries ## Compatibility Before installing, verify compatibility with your environment: -- [Supported Kubernetes distributions]({{< relref "/operate/kubernetes/8.0.18/reference/supported_k8s_distributions" >}}) - Check which Redis Enterprise operator version supports your Kubernetes distribution +- [Supported Kubernetes distributions](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md) - Check which Redis Enterprise operator version supports your Kubernetes distribution ## Prerequisites Before deploying Redis Enterprise for Kubernetes, ensure you have: -- A Kubernetes cluster running a [supported distribution]({{< relref "/operate/kubernetes/8.0.18/reference/supported_k8s_distributions" >}}) +- A Kubernetes cluster running a [supported distribution](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md) - Minimum of three worker nodes for high availability - Kubernetes client (kubectl) configured to access your cluster - Access to container registries (DockerHub, Red Hat Container Catalog, or private registry) -- Sufficient resources as outlined in [sizing recommendations]({{< relref "/operate/kubernetes/8.0.18/recommendations/sizing-on-kubernetes" >}}) +- Sufficient resources as outlined in [sizing recommendations](/content/operate/kubernetes/8.0.18/recommendations/sizing-on-kubernetes.md) ## Next steps After deployment, you can: -- [Create a Redis Enterprise cluster (REC)]({{< relref "/operate/kubernetes/8.0.18/re-clusters" >}}) -- [Create Redis Enterprise databases (REDB)]({{< relref "/operate/kubernetes/8.0.18/re-databases" >}}) -- [Configure networking]({{< relref "/operate/kubernetes/8.0.18/networking" >}}) -- [Set up security]({{< relref "/operate/kubernetes/8.0.18/security" >}}) \ No newline at end of file +- [Create a Redis Enterprise cluster (REC)](/content/operate/kubernetes/8.0.18/re-clusters/_index.md) +- [Create Redis Enterprise databases (REDB)](/content/operate/kubernetes/8.0.18/re-databases/_index.md) +- [Configure networking](/content/operate/kubernetes/8.0.18/networking/_index.md) +- [Set up security](/content/operate/kubernetes/8.0.18/security/_index.md) \ No newline at end of file diff --git a/content/operate/kubernetes/8.0.18/deployment/container-images.md b/content/operate/kubernetes/8.0.18/deployment/container-images.md index 2b2e044a97..71a34a136a 100644 --- a/content/operate/kubernetes/8.0.18/deployment/container-images.md +++ b/content/operate/kubernetes/8.0.18/deployment/container-images.md @@ -27,7 +27,8 @@ For security reasons (e.g., in air-gapped environments), you may want to pull th from a public registry once and then push them to a private registry under your control. -{{}}It is very important that the images you are pushing to the private registry have the same exact version tag as the original images. {{}} +> [!WARNING] +> It is very important that the images you are pushing to the private registry have the same exact version tag as the original images. Furthermore, because [Docker rate limits public pulls](https://www.docker.com/blog/scaling-docker-to-serve-millions-more-developers-network-egress/), you may want to consider pulling images from a @@ -35,11 +36,10 @@ private registry to avoid deployment failures when you hit your DockerHub rate l The information below will help you track and configure where your deployments pull container images. -{{< note >}} -**IMPORTANT** -* Each version of the Redis Enterprise operator is mapped to a specific version of Redis Enterprise Software. The semantic versions always match (for example, 7.22.0), although the specific release numbers may be different (for example, 7.22.0-7 is the operator version for Redis Enterprise Software 7.22.0-28). -* A specific operator version only supports a specific Redis Enterprise version. Other combinations of operator and Redis Enterprise versions are **not supported**. -{{< /note >}} +> [!NOTE] +> **IMPORTANT** +> * Each version of the Redis Enterprise operator is mapped to a specific version of Redis Enterprise Software. The semantic versions always match (for example, 7.22.0), although the specific release numbers may be different (for example, 7.22.0-7 is the operator version for Redis Enterprise Software 7.22.0-28). +> * A specific operator version only supports a specific Redis Enterprise version. Other combinations of operator and Redis Enterprise versions are **not supported**. ## Find container sources @@ -124,7 +124,7 @@ require authentication. If you do need authentication, add a [pull secret](https The operator bundle contains the operator deployment and the reference to the operator image (`redislabs/operator`). This image includes both the operator functionality and the admission controller. To use a private container registry, you must change this image reference in your operator deployment file **before** you deploy the operator. If you apply this change to modify an existing operator deployment, the operator's pod will restart. -In the operator deployment file, 'containers:image' should point to the same repository and tag you used when [pushing]({{< relref "/operate/kubernetes/8.0.18/deployment/container-images#push-images-to-a-private-container-registry" >}}) to the private container registry: +In the operator deployment file, 'containers:image' should point to the same repository and tag you used when [pushing](/content/operate/kubernetes/8.0.18/deployment/container-images.md#push-images-to-a-private-container-registry) to the private container registry: ```sh ${PRIVATE_REPO}/redislabs/operator:${OPERATOR_VERSION} @@ -242,7 +242,7 @@ The admission controller is included as part of the operator container image and The admission controller runs within the operator pod and provides validation for Redis Enterprise database resources. It exposes an HTTPS endpoint on port 8443 that Kubernetes uses to validate resource configurations before they are applied to the cluster. -For more information about configuring the admission controller, see [Enable the admission controller]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start#enable-the-admission-controller" >}}). +For more information about configuring the admission controller, see [Enable the admission controller](/content/operate/kubernetes/8.0.18/deployment/quick-start.md#enable-the-admission-controller). ## Rate limiting with DockerHub diff --git a/content/operate/kubernetes/8.0.18/deployment/helm.md b/content/operate/kubernetes/8.0.18/deployment/helm.md index 5266ac83cb..a948fe7ae4 100644 --- a/content/operate/kubernetes/8.0.18/deployment/helm.md +++ b/content/operate/kubernetes/8.0.18/deployment/helm.md @@ -14,13 +14,13 @@ Helm charts provide a simple way to install the Redis Enterprise for Kubernetes ## Prerequisites -- A [supported distribution]({{< relref "/operate/kubernetes/8.0.18/reference/supported_k8s_distributions" >}}) of Kubernetes. +- A [supported distribution](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md) of Kubernetes. - At least three worker nodes. - [Kubernetes client (kubectl)](https://kubernetes.io/docs/tasks/tools/). - [Helm 3.10 or later](https://helm.sh/docs/intro/install/) or 3.18 for migrating from a non-Helm installation. -If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment" >}}). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. +If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. ### Example values @@ -136,11 +136,10 @@ helm install redis/redis-enterprise-operator \ ## Create the REC at install time -The chart can create the `RedisEnterpriseCluster` (REC) custom resource at install time, so a single `helm install` deploys both the operator and the cluster. To enable this, set `cluster.create` to `true` and define the cluster under `cluster.spec` in your values file. The `spec` field accepts any field from the `RedisEnterpriseCluster` CRD. For the full list, see the [RedisEnterpriseCluster API reference]({{}}). +The chart can create the `RedisEnterpriseCluster` (REC) custom resource at install time, so a single `helm install` deploys both the operator and the cluster. To enable this, set `cluster.create` to `true` and define the cluster under `cluster.spec` in your values file. The `spec` field accepts any field from the `RedisEnterpriseCluster` CRD. For the full list, see the [RedisEnterpriseCluster API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md). -{{}} -`cluster.create` defaults to `false`. When `false`, the chart installs only the operator and you create the REC yourself. -{{}} +> [!NOTE] +> `cluster.create` defaults to `false`. When `false`, the chart installs only the operator and you create the REC yourself. 1. Create a values file with a `cluster` section. For example: @@ -209,9 +208,8 @@ The upgrade process automatically updates the operator and its components, inclu After you upgrade the operator, you might need to upgrade your Redis Enterprise clusters, depending on the Redis software version bundled with the operator. For detailed information about the upgrade process, see [Redis Enterprise for Kubernetes upgrade documentation](https://redis.io/docs/latest/operate/kubernetes/upgrade/). -{{< note >}} -If your databases use user-defined modules (custom non-bundled modules), you must take additional steps during the upgrade process. See [Upgrade with user-defined modules]({{< relref "/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster#user-defined-modules" >}}) for details. -{{< /note >}} +> [!NOTE] +> If your databases use user-defined modules (custom non-bundled modules), you must take additional steps during the upgrade process. See [Upgrade with user-defined modules](/content/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster.md#user-defined-modules) for details. For more information and options when upgrading charts, see [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/). @@ -254,7 +252,7 @@ If you used `cluster.create: true`, change REC settings by editing `cluster.spec ## Uninstall -1. Delete any custom resources managed by the operator. See [Delete custom resources]({{}}) for detailed steps. You must delete custom resources in the correct order to avoid errors. +1. Delete any custom resources managed by the operator. See [Delete custom resources](/content/operate/kubernetes/re-clusters/delete-custom-resources.md) for detailed steps. You must delete custom resources in the correct order to avoid errors. 2. Uninstall the Helm chart. @@ -264,7 +262,8 @@ helm uninstall This removes all Kubernetes resources associated with the chart and deletes the release. -{{}}Custom Resource Definitions (CRDs) installed by the chart are not removed during chart uninstallation. To remove them manually after uninstalling the chart, run `kubectl delete crds -l app=redis-enterprise`.{{}} +> [!NOTE] +> Custom Resource Definitions (CRDs) installed by the chart are not removed during chart uninstallation. To remove them manually after uninstalling the chart, run `kubectl delete crds -l app=redis-enterprise`. ### Uninstall the REC and operator together @@ -280,15 +279,14 @@ Confirm all resources are gone. kubectl get all --namespace ``` -{{}} -This applies only to RECs the chart created. If you created the REC outside the chart, follow [Delete custom resources]({{}}) before you run `helm uninstall`. -{{}} +> [!NOTE] +> This applies only to RECs the chart created. If you created the REC outside the chart, follow [Delete custom resources](/content/operate/kubernetes/re-clusters/delete-custom-resources.md) before you run `helm uninstall`. ## Migrate from a non-Helm installation To migrate an existing non-Helm installation of the Redis Enterprise operator to a Helm-based installation: -1. [Upgrade]({{}}) your existing Redis Enterprise operator to match the version of the Helm chart you want to install. Use the same non-Helm method you used for the original installation. +1. [Upgrade](/content/operate/kubernetes/upgrade/_index.md) your existing Redis Enterprise operator to match the version of the Helm chart you want to install. Use the same non-Helm method you used for the original installation. 2. [Install](#install-the-operator) the Helm chart adding the `--take-ownership` flag: diff --git a/content/operate/kubernetes/8.0.18/deployment/openshift/_index.md b/content/operate/kubernetes/8.0.18/deployment/openshift/_index.md index f10651a539..de802143e0 100644 --- a/content/operate/kubernetes/8.0.18/deployment/openshift/_index.md +++ b/content/operate/kubernetes/8.0.18/deployment/openshift/_index.md @@ -28,16 +28,16 @@ workloads can use: ## For OpenShift via the OperatorHub -To [create a database on an OpenShift 4.x cluster via the OperatorHub]({{< relref "/operate/kubernetes/8.0.18/deployment/openshift/openshift-operatorhub" >}}) you only need to have the [OpenShift 4.x cluster installed](https://docs.openshift.com/container-platform/4.3/welcome/index.html) with at least three nodes that each meet the [minimum requirements for a development installation]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). +To [create a database on an OpenShift 4.x cluster via the OperatorHub](/content/operate/kubernetes/8.0.18/deployment/openshift/openshift-operatorhub.md) you only need to have the [OpenShift 4.x cluster installed](https://docs.openshift.com/container-platform/4.3/welcome/index.html) with at least three nodes that each meet the [minimum requirements for a development installation](/content/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md). ## For OpenShift via the CLI -To [create a database on an OpenShift cluster via the CLI]({{< relref "/operate/kubernetes/8.0.18/deployment/openshift/openshift-cli" >}}), you need: +To [create a database on an OpenShift cluster via the CLI](/content/operate/kubernetes/8.0.18/deployment/openshift/openshift-cli.md), you need: -1. An [OpenShift cluster installed](https://docs.openshift.com/container-platform/4.3/welcome/index.html) with at least three nodes that each meet the [minimum requirements for a development installation]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). +1. An [OpenShift cluster installed](https://docs.openshift.com/container-platform/4.3/welcome/index.html) with at least three nodes that each meet the [minimum requirements for a development installation](/content/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md). 1. The [kubectl package installed](https://kubernetes.io/docs/tasks/tools/install-kubectl/) at version 1.9 or higher 1. The [OpenShift cli installed](https://docs.openshift.com/container-platform/4.2/cli_reference/openshift_cli/getting-started-cli.html) ## Version compatibility -To see which version of Redis Enterprise for Kubernetes supports your OpenShift version, see [Supported Kubernetes distributions]({{< relref "/operate/kubernetes/8.0.18/reference/supported_k8s_distributions" >}}). \ No newline at end of file +To see which version of Redis Enterprise for Kubernetes supports your OpenShift version, see [Supported Kubernetes distributions](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md). \ No newline at end of file diff --git a/content/operate/kubernetes/8.0.18/deployment/openshift/openshift-cli.md b/content/operate/kubernetes/8.0.18/deployment/openshift/openshift-cli.md index b2ad6e6953..18c7b29bd0 100644 --- a/content/operate/kubernetes/8.0.18/deployment/openshift/openshift-cli.md +++ b/content/operate/kubernetes/8.0.18/deployment/openshift/openshift-cli.md @@ -16,14 +16,13 @@ Use these steps to set up a Redis Enterprise Software cluster with OpenShift. ## Prerequisites -- [OpenShift cluster](https://docs.openshift.com/container-platform/4.8/installing/index.html) with at least 3 nodes (each meeting the [minimum requirements for a development installation]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}})) +- [OpenShift cluster](https://docs.openshift.com/container-platform/4.8/installing/index.html) with at least 3 nodes (each meeting the [minimum requirements for a development installation](/content/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md)) - [OpenShift CLI](https://docs.openshift.com/container-platform/latest/cli_reference/openshift_cli/getting-started-cli.html) -To see which version of Redis Enterprise for Kubernetes supports your OpenShift version, see [Supported Kubernetes distributions]({{< relref "/operate/kubernetes/8.0.18/reference/supported_k8s_distributions" >}}). +To see which version of Redis Enterprise for Kubernetes supports your OpenShift version, see [Supported Kubernetes distributions](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md). -{{}} -If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment" >}}). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. -{{}} +> [!NOTE] +> If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. ## Deploy the operator @@ -53,9 +52,8 @@ If you suspect your file descriptor limits are below 100,000, you must either ma oc apply -f openshift.bundle.yaml ``` - {{< warning >}} -Changes to the `openshift.bundle.yaml` file can cause unexpected results. - {{< /warning >}} + > [!WARNING] + > Changes to the `openshift.bundle.yaml` file can cause unexpected results. 1. Verify that your `redis-enterprise-operator` deployment is running. @@ -70,35 +68,31 @@ Changes to the `openshift.bundle.yaml` file can cause unexpected results. redis-enterprise-operator 1/1 1 1 0m36s ``` - {{}} -DO NOT modify or delete the StatefulSet created during the deployment process. Doing so could destroy your Redis Enterprise cluster (REC). - {{}} + > [!WARNING] + > DO NOT modify or delete the StatefulSet created during the deployment process. Doing so could destroy your Redis Enterprise cluster (REC). ## Security context constraints -Versions 7.22.0-6 and later run in without permissions to [allow automatic resource adjustment]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment" >}}). If you use the recommended default security constraints, remove the existing `redis-enterprise-scc-v2` SCC and unbind it from the REC service account after upgrading. +Versions 7.22.0-6 and later run in without permissions to [allow automatic resource adjustment](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md). If you use the recommended default security constraints, remove the existing `redis-enterprise-scc-v2` SCC and unbind it from the REC service account after upgrading. ## Create a Redis Enterprise cluster custom resource 1. Apply the `RedisEnterpriseCluster` resource file ([rec_rhel.yaml](https://github.com/RedisLabs/redis-enterprise-k8s-docs/blob/master/openshift/rec_rhel.yaml)). - You can rename the file to `.yaml`, but it is not required. Examples below use `.yaml`. [Options for Redis Enterprise clusters]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) has more info about the Redis Enterprise cluster (REC) custom resource, or see the [Redis Enterprise cluster API]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) for a full list of options. + You can rename the file to `.yaml`, but it is not required. Examples below use `.yaml`. [Options for Redis Enterprise clusters](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) has more info about the Redis Enterprise cluster (REC) custom resource, or see the [Redis Enterprise cluster API](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) for a full list of options. - {{}} -If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment" >}}). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. - {{}} + > [!NOTE] + > If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. The REC name cannot be changed after cluster creation. - {{}} -Each Redis Enterprise cluster requires at least 3 nodes. Single-node RECs are not supported. - {{}} + > [!NOTE] + > Each Redis Enterprise cluster requires at least 3 nodes. Single-node RECs are not supported. 2. Apply the custom resource file to create your Redis Enterprise cluster. - {{}} -If you enabled automatic resource adjustment in your configuration, this step will trigger the operator to apply elevated capabilities. Ensure your security context allows it. - {{}} + > [!NOTE] + > If you enabled automatic resource adjustment in your configuration, this step will trigger the operator to apply elevated capabilities. Ensure your security context allows it. ```sh oc apply -f .yaml @@ -162,16 +156,15 @@ If not limited, the webhook intercepts requests from all namespaces. If you have redis-enterprise-admission --patch "$(cat modified-webhook.yaml)" ``` - {{}} -For releases before 6.4.2-4, use this command instead: - -```sh -oc patch ValidatingWebhookConfiguration \ - redb-admission --patch "$(cat modified-webhook.yaml)" -``` - -The 6.4.2-4 release introduces a new `ValidatingWebhookConfiguration` to replace `redb-admission`. See the [6.4.2-4 release notes]({{< relref "/operate/kubernetes/release-notes/previous-releases/" >}}). - {{}} + > [!NOTE] + > For releases before 6.4.2-4, use this command instead: + > + > ```sh + > oc patch ValidatingWebhookConfiguration \ + > redb-admission --patch "$(cat modified-webhook.yaml)" + > ``` + > + > The 6.4.2-4 release introduces a new `ValidatingWebhookConfiguration` to replace `redb-admission`. See the [6.4.2-4 release notes](/content/operate/kubernetes/release-notes/previous-releases/_index.md). ### Verify admission controller installation @@ -200,7 +193,7 @@ The operator uses the instructions in the Redis Enterprise database (REDB) custo 1. Create a `RedisEnterpriseDatabase` custom resource. - This example creates a test database. For production databases, see [create a database]({{< relref "/operate/kubernetes/8.0.18/re-databases/db-controller.md#create-a-database" >}}) and [RedisEnterpriseDatabase API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}). + This example creates a test database. For production databases, see [create a database](/content/operate/kubernetes/8.0.18/re-databases/db-controller.md#create-a-database) and [RedisEnterpriseDatabase API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md). ```sh cat << EOF > /tmp/redis-enterprise-database.yml @@ -221,5 +214,5 @@ The operator uses the instructions in the Redis Enterprise database (REDB) custo ## More info -- [Redis Enterprise cluster API]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) -- [Redis Enterprise database API]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}) +- [Redis Enterprise cluster API](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) +- [Redis Enterprise database API](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md) diff --git a/content/operate/kubernetes/8.0.18/deployment/openshift/openshift-operatorhub.md b/content/operate/kubernetes/8.0.18/deployment/openshift/openshift-operatorhub.md index 8a93739bee..92516720cf 100644 --- a/content/operate/kubernetes/8.0.18/deployment/openshift/openshift-operatorhub.md +++ b/content/operate/kubernetes/8.0.18/deployment/openshift/openshift-operatorhub.md @@ -13,13 +13,15 @@ url: '/operate/kubernetes/8.0.18/deployment/openshift/openshift-operatorhub/' --- You can deploy Redis Enterprise for Kubernetes from the Red Hat OpenShift CLI. You can also use a UI, [OperatorHub](https://docs.openshift.com/container-platform/4.11/operators/index.html) (Red Hat) to install operators and create custom resources. -{{}}If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment" >}}). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment.{{}} +> [!NOTE] +> If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. -To see which version of Redis Enterprise for Kubernetes supports your OpenShift version, see [Supported Kubernetes distributions]({{< relref "/operate/kubernetes/8.0.18/reference/supported_k8s_distributions" >}}). +To see which version of Redis Enterprise for Kubernetes supports your OpenShift version, see [Supported Kubernetes distributions](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md). ## Install the Redis Enterprise operator -{{}} If using version 6.2.18-41 or earlier, [Install the security context constraint](#install-security-context-constraint) before installing the operator. {{}} +> [!WARNING] +> If using version 6.2.18-41 or earlier, [Install the security context constraint](#install-security-context-constraint) before installing the operator. 1. Select **Operators > OperatorHub**. @@ -33,7 +35,7 @@ To see which version of Redis Enterprise for Kubernetes supports your OpenShift 4. Update the **channel** with the version you're installing. - For more information about specific versions, see the [release notes]({{< relref "/operate/kubernetes/release-notes/" >}}). + For more information about specific versions, see the [release notes](/content/operate/kubernetes/release-notes/_index.md). 5. Choose an approval strategy. @@ -43,11 +45,12 @@ To see which version of Redis Enterprise for Kubernetes supports your OpenShift You can monitor the subscription status in **Operators > Installed Operators**. -{{}}DO NOT modify or delete the StatefulSet created during the deployment process. Doing so could destroy your Redis Enterprise cluster (REC).{{}} +> [!WARNING] +> DO NOT modify or delete the StatefulSet created during the deployment process. Doing so could destroy your Redis Enterprise cluster (REC). ## Security context constraints -Versions 7.22.0-6 and later run in without permissions to [allow automatic resource adjustment]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment" >}}). If you use the recommended default security constraints, remove the existing `redis-enterprise-scc-v2` SCC and unbind it from the REC service account after upgrading. +Versions 7.22.0-6 and later run in without permissions to [allow automatic resource adjustment](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md). If you use the recommended default security constraints, remove the existing `redis-enterprise-scc-v2` SCC and unbind it from the REC service account after upgrading. ## Create Redis Enterprise custom resources @@ -56,10 +59,9 @@ The **Installed Operators**->**Operator details** page shows the provided APIs: Use the YAML view to create a custom resource file or let OperatorHub generate the YAML file for you by specifying your configuration options in the form view. -{{}} -If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment" >}}). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. -{{}} +> [!NOTE] +> If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. The REC name cannot be changed after cluster creation. -For more information on creating and maintaining Redis Enterprise custom resources, see [Redis Enterprise clusters (REC)]({{< relref "/operate/kubernetes/8.0.18/re-clusters/" >}}) and [Redis Enterprise databases (REDB)]({{< relref "/operate/kubernetes/8.0.18/re-databases/" >}}). +For more information on creating and maintaining Redis Enterprise custom resources, see [Redis Enterprise clusters (REC)](/content/operate/kubernetes/8.0.18/re-clusters/_index.md) and [Redis Enterprise databases (REDB)](/content/operate/kubernetes/8.0.18/re-databases/_index.md). diff --git a/content/operate/kubernetes/8.0.18/deployment/quick-start.md b/content/operate/kubernetes/8.0.18/deployment/quick-start.md index e924288b7f..523ca8ca60 100644 --- a/content/operate/kubernetes/8.0.18/deployment/quick-start.md +++ b/content/operate/kubernetes/8.0.18/deployment/quick-start.md @@ -17,20 +17,21 @@ To deploy Redis Enterprise Software for Kubernetes and start your Redis Enterpri - Apply the operator bundle and verify it's running. - Create a Redis Enterprise cluster (REC). -This guide works with most supported Kubernetes distributions. If you're using OpenShift, see [Redis Enterprise on OpenShift]({{< relref "/operate/kubernetes/8.0.18/deployment/openshift" >}}). For details on what is currently supported, see [supported distributions]({{< relref "/operate/kubernetes/8.0.18/reference/supported_k8s_distributions" >}}). +This guide works with most supported Kubernetes distributions. If you're using OpenShift, see [Redis Enterprise on OpenShift](/content/operate/kubernetes/8.0.18/deployment/openshift/_index.md). For details on what is currently supported, see [supported distributions](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md). ## Prerequisites To deploy Redis Enterprise for Kubernetes, you'll need: -- Kubernetes cluster in a [supported distribution]({{< relref "/operate/kubernetes/8.0.18/reference/supported_k8s_distributions" >}}) +- Kubernetes cluster in a [supported distribution](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md) - minimum of three worker nodes - Kubernetes client (kubectl) - access to DockerHub, RedHat Container Catalog, or a private repository that can hold the required images. -If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment" >}}). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. +If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. -{{}}If you are applying version 7.8.2-6 or above, check if the [OS](https://redis.io/docs/latest/operate/kubernetes/release-notes/7-8-2-releases/7-8-2-6-nov24/#breaking-changes) installed on the node is supported.{{}} +> [!NOTE] +> If you are applying version 7.8.2-6 or above, check if the [OS](https://redis.io/docs/latest/operate/kubernetes/release-notes/7-8-2-releases/7-8-2-6-nov24/#breaking-changes) installed on the node is supported. ### Create a new namespace @@ -54,13 +55,12 @@ You can use an existing namespace as long as it does not contain any existing Re ## Install the operator -Redis Enterprise for Kubernetes bundle is published as a container image. A list of required images is available in the [release notes]({{< relref "/operate/kubernetes/release-notes/_index" >}}) for each version. +Redis Enterprise for Kubernetes bundle is published as a container image. A list of required images is available in the [release notes](/content/operate/kubernetes/release-notes/_index.md) for each version. The operator [definition and reference materials](https://github.com/RedisLabs/redis-enterprise-k8s-docs) are available on GitHub. The operator definitions are [packaged as a single generic YAML file](https://github.com/RedisLabs/redis-enterprise-k8s-docs/blob/master/bundle.yaml). -{{}} -If you do not pull images from DockerHub or another public registry, you need to use a [private container registry]({{< relref "/operate/kubernetes/8.0.18/deployment/container-images#manage-image-sources" >}}). -{{}} +> [!NOTE] +> If you do not pull images from DockerHub or another public registry, you need to use a [private container registry](/content/operate/kubernetes/8.0.18/deployment/container-images.md#manage-image-sources). ### Download the operator bundle @@ -93,7 +93,8 @@ kubectl apply -f https://raw.githubusercontent.com/RedisLabs/redis-enterprise-k8 deployment.apps/redis-enterprise-operator created ``` -{{}}DO NOT modify or delete the StatefulSet created during the deployment process. Doing so could destroy your Redis Enterprise cluster (REC).{{}} +> [!WARNING] +> DO NOT modify or delete the StatefulSet created during the deployment process. Doing so could destroy your Redis Enterprise cluster (REC). #### Verify the operator is running @@ -115,17 +116,15 @@ redis-enterprise-operator 1/1 1 1 0m36s A Redis Enterprise cluster (REC) is created from a `RedisEnterpriseCluster` custom resource that contains cluster specifications. -The following example creates a minimal Redis Enterprise cluster. See the [RedisEnterpriseCluster API reference]({{}}) for more information on the various options available. +The following example creates a minimal Redis Enterprise cluster. See the [RedisEnterpriseCluster API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) for more information on the various options available. -{{}} -If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment" >}}). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. -{{}} +> [!NOTE] +> If you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md). Most major cloud providers and standard container runtime configurations set default file descriptor limits well above the minimum required by Redis Enterprise. In these environments, you can safely run without enabling automatic resource adjustment. 1. Create a file that defines a Redis Enterprise cluster with three nodes. - {{}} -The REC name (`my-rec` in this example) cannot be changed after cluster creation. - {{}} + > [!NOTE] + > The REC name (`my-rec` in this example) cannot be changed after cluster creation. ```sh cat < my-rec.yaml @@ -152,15 +151,13 @@ The REC name (`my-rec` in this example) cannot be changed after cluster creation memory: 16Gi ``` - {{}} -Each cluster must have at least 3 nodes. Single-node RECs are not supported. - {{}} + > [!NOTE] + > Each cluster must have at least 3 nodes. Single-node RECs are not supported. - See the [Redis Enterprise hardware requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}) for more information on sizing Redis Enterprise node resource requests. + See the [Redis Enterprise hardware requirements](/content/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md) for more information on sizing Redis Enterprise node resource requests. - {{}} -If you enabled automatic resource adjustment in your configuration, this step will trigger the operator to apply elevated capabilities. Ensure your security context allows it. - {{}} + > [!NOTE] + > If you enabled automatic resource adjustment in your configuration, this step will trigger the operator to apply elevated capabilities. Ensure your security context allows it. 1. Apply your custom resource file in the same namespace as `my-rec.yaml`. @@ -268,10 +265,10 @@ The operator bundle includes a webhook file. The webhook will intercept requests If you plan to create databases that use user-defined modules (custom non-bundled modules), you must add them to the REC custom resource before creating the databases. -See [User-defined modules]({{< relref "/operate/kubernetes/8.0.18/re-databases/modules#user-defined-modules" >}}) for detailed instructions on adding and configuring custom modules. +See [User-defined modules](/content/operate/kubernetes/8.0.18/re-databases/modules.md#user-defined-modules) for detailed instructions on adding and configuring custom modules. ## Create a Redis Enterprise Database (REDB) You can create multiple databases within the same namespace as your REC or in other namespaces. -See [manage Redis Enterprise databases for Kubernetes]({{< relref "/operate/kubernetes/8.0.18/re-databases/db-controller" >}}) to create a new REDB. +See [manage Redis Enterprise databases for Kubernetes](/content/operate/kubernetes/8.0.18/re-databases/db-controller.md) to create a new REDB. diff --git a/content/operate/kubernetes/8.0.18/flex/_index.md b/content/operate/kubernetes/8.0.18/flex/_index.md index 28d991cf47..d1a033b0b7 100644 --- a/content/operate/kubernetes/8.0.18/flex/_index.md +++ b/content/operate/kubernetes/8.0.18/flex/_index.md @@ -27,7 +27,7 @@ Flex moves data between RAM and flash based on access patterns: - Less active data moves to cost-efficient flash storage. - Data accessed from flash promotes back to RAM automatically. -Redis uses an [LRU (least recently used)]({{< relref "/develop/reference/eviction#apx-lru" >}}) eviction policy to manage data placement. When memory pressure increases, Flex identifies cold objects, transfers them to flash, and frees RAM for new or frequently accessed keys. +Redis uses an [LRU (least recently used)](/content/develop/reference/eviction/index.md#apx-lru) eviction policy to manage data placement. When memory pressure increases, Flex identifies cold objects, transfers them to flash, and frees RAM for new or frequently accessed keys. This process requires no application changes. Your existing Redis commands work across both storage tiers. @@ -74,11 +74,12 @@ Use Flex when you need to: - Operate large distributed caches with elastic scaling and consistent performance under heavy load - Reduce infrastructure costs by combining high-speed RAM with cost-efficient flash storage -{{}}Flex does not replace long-term data persistence. For workloads that require durability and recovery across restarts or failures, use Redis persistence features like [AOF (Append-Only File)]({{< relref "/operate/oss_and_stack/management/persistence#append-only-file" >}}), [RDB snapshots]({{< relref "/operate/oss_and_stack/management/persistence#snapshotting" >}}), or both. For more information, see [Database persistence]({{< relref "/operate/rs/databases/configure/database-persistence" >}}).{{}} +> [!WARNING] +> Flex does not replace long-term data persistence. For workloads that require durability and recovery across restarts or failures, use Redis persistence features like [AOF (Append-Only File)](/content/operate/oss_and_stack/management/persistence.md#append-only-file), [RDB snapshots](/content/operate/oss_and_stack/management/persistence.md#snapshotting), or both. For more information, see [Database persistence](/content/operate/rs/databases/configure/database-persistence.md). ## Flex and Auto Tiering -Flex replaces [Auto Tiering]({{< relref "/operate/kubernetes/7.22/re-clusters/auto-tiering" >}}) (formerly known as Redis on Flash). Redis Enterprise selects the implementation based on your database version: +Flex replaces [Auto Tiering](/content/operate/kubernetes/7.22/re-clusters/auto-tiering.md) (formerly known as Redis on Flash). Redis Enterprise selects the implementation based on your database version: | Redis database version | Operator version | Redis Flex | Auto Tiering | |------------------------|------------------|------------|--------------| @@ -86,7 +87,7 @@ Flex replaces [Auto Tiering]({{< relref "/operate/kubernetes/7.22/re-clusters/au | 7.4 | 7.8.2-6 and later | ✅ | ✅ | | 7.2 and earlier | 7.22.2-22 and earlier | ❌ | ✅ | -For Redis Enterprise for Kubernetes version 7.22.2-22 or earlier, see [Auto Tiering]({{< relref "/operate/kubernetes/7.22/re-clusters/auto-tiering" >}}). +For Redis Enterprise for Kubernetes version 7.22.2-22 or earlier, see [Auto Tiering](/content/operate/kubernetes/7.22/re-clusters/auto-tiering.md). ### Differences between Flex and Auto Tiering @@ -111,6 +112,6 @@ For Redis Enterprise for Kubernetes version 7.22.2-22 or earlier, see [Auto Tier ## Next steps -- [Plan your deployment]({{< relref "/operate/kubernetes/8.0.18/flex/plan" >}}): Review hardware requirements, sizing guidelines, and limitations. -- [Get started]({{< relref "/operate/kubernetes/8.0.18/flex/get-started" >}}): Configure Flex on your cluster. -- [Scale your deployment]({{< relref "/operate/kubernetes/8.0.18/flex/scale" >}}): Learn scaling strategies and best practices. +- [Plan your deployment](/content/operate/kubernetes/8.0.18/flex/plan.md): Review hardware requirements, sizing guidelines, and limitations. +- [Get started](/content/operate/kubernetes/8.0.18/flex/get-started.md): Configure Flex on your cluster. +- [Scale your deployment](/content/operate/kubernetes/8.0.18/flex/scale.md): Learn scaling strategies and best practices. diff --git a/content/operate/kubernetes/8.0.18/flex/auto-tiering.md b/content/operate/kubernetes/8.0.18/flex/auto-tiering.md index 6c8a32df59..1b0ba1668e 100644 --- a/content/operate/kubernetes/8.0.18/flex/auto-tiering.md +++ b/content/operate/kubernetes/8.0.18/flex/auto-tiering.md @@ -11,17 +11,15 @@ weight: 40 url: '/operate/kubernetes/8.0.18/flex/auto-tiering/' --- -{{}} -This page applies to Redis database version 7.4 and earlier. If you use version 8.0 or later, see [Redis Flex](https://redis.io/docs/latest/operate/kubernetes/re-clusters/redis-flex). -{{}} +> [!NOTE] +> This page applies to Redis database version 7.4 and earlier. If you use version 8.0 or later, see [Redis Flex](https://redis.io/docs/latest/operate/kubernetes/re-clusters/redis-flex). ## Prerequisites Redis Enterprise Software for Kubernetes supports using Auto Tiering (previously known as Redis on Flash), which extends your node memory to use both RAM and flash storage. SSDs (solid state drives) can store infrequently used (warm) values while your keys and frequently used (hot) values are still stored in RAM. This improves performance and lowers costs for large datasets. -{{}} -NVMe (non-volatile memory express) SSDs are strongly recommended to achieve the best performance. -{{}} +> [!NOTE] +> NVMe (non-volatile memory express) SSDs are strongly recommended to achieve the best performance. Before creating your Redis clusters or databases, these SSDs must be: @@ -32,11 +30,11 @@ Before creating your Redis clusters or databases, these SSDs must be: - You can use a [local volume provisioner](https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner/blob/master/README.md) to do this [dynamically](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#dynamic) - a [StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes/#local) resource with a unique name -For more information on node storage, see [Node persistent and ephemeral storage]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage" >}}). +For more information on node storage, see [Node persistent and ephemeral storage](/content/operate/rs/installing-upgrading/install/plan-deployment/persistent-ephemeral-storage.md). ## Create a Redis Enterprise cluster -To deploy a Redis Enterprise cluster (REC) with Auto Tiering, you'll need to specify the following in the `redisOnFlashSpec` section of your [REC custom resource]({{< relref "/operate/kubernetes/7.22/reference/api/redis_enterprise_cluster_api" >}}): +To deploy a Redis Enterprise cluster (REC) with Auto Tiering, you'll need to specify the following in the `redisOnFlashSpec` section of your [REC custom resource](/content/operate/kubernetes/7.22/reference/api/redis_enterprise_cluster_api.md): - enable Auto Tiering (`enabled: true`) - flash storage driver (`bigStoreDriver`) @@ -44,11 +42,14 @@ To deploy a Redis Enterprise cluster (REC) with Auto Tiering, you'll need to spe - storage class name (`storageClassName`) - minimal flash disk size (`flashDiskSize`) -{{}} Clusters upgraded to version 7.2.4-2 from an earlier version will change the `bigStoreDriver` (previously called `flashStorageEngine`) to the new default `speedb`, regardless of previous configuration. {{}} +> [!NOTE] +> Clusters upgraded to version 7.2.4-2 from an earlier version will change the `bigStoreDriver` (previously called `flashStorageEngine`) to the new default `speedb`, regardless of previous configuration. -{{}}Switching between storage engines (`speedb` and `rocksdb`) requires guidance by Redis Support or your Account Manager.{{}} +> [!WARNING] +> Switching between storage engines (`speedb` and `rocksdb`) requires guidance by Redis Support or your Account Manager. -{{}}PVC expansion is not supported when using Auto Tiering. Do not enable `enablePersistentVolumeResize` in the REC `persistentSpec` if you are using `redisOnFlashSpec` as this will result in conflicts. {{}} +> [!WARNING] +> PVC expansion is not supported when using Auto Tiering. Do not enable `enablePersistentVolumeResize` in the REC `persistentSpec` if you are using `redisOnFlashSpec` as this will result in conflicts. Here is an example of an REC custom resource with these attributes: @@ -89,6 +90,5 @@ spec: rofRamSize: 0.5GB ``` -{{< note >}} -This example defines both `memorySize` and `rofRamSize`. When using Auto Tiering, `memorySize` refers to the total combined memory size (RAM + flash) allocated for the database. `rofRamSize` specifies only the RAM capacity for the database. `rofRamSize` must be at least 10% of `memorySize`. -{{< /note >}} +> [!NOTE] +> This example defines both `memorySize` and `rofRamSize`. When using Auto Tiering, `memorySize` refers to the total combined memory size (RAM + flash) allocated for the database. `rofRamSize` specifies only the RAM capacity for the database. `rofRamSize` must be at least 10% of `memorySize`. diff --git a/content/operate/kubernetes/8.0.18/flex/get-started.md b/content/operate/kubernetes/8.0.18/flex/get-started.md index 9301e45509..003cd7ee4f 100644 --- a/content/operate/kubernetes/8.0.18/flex/get-started.md +++ b/content/operate/kubernetes/8.0.18/flex/get-started.md @@ -13,9 +13,8 @@ aliases: /operate/kubernetes/re-clusters/redis-flex/ url: '/operate/kubernetes/8.0.18/flex/get-started/' --- -{{}} -This page applies to Redis database version 7.4 and earlier using Auto Tiering. If you use version 8.0 or later, see [Redis Flex](https://redis.io/docs/latest/operate/kubernetes/flex/). -{{}} +> [!NOTE] +> This page applies to Redis database version 7.4 and earlier using Auto Tiering. If you use version 8.0 or later, see [Redis Flex](https://redis.io/docs/latest/operate/kubernetes/flex/). Flex extends your database capacity by combining RAM and flash (SSD) storage. This tiered architecture keeps frequently accessed (hot) data in RAM for sub-millisecond latency while storing less active (warm) data on flash to reduce costs and increase capacity. @@ -29,11 +28,11 @@ Before you begin, verify that you have: - Locally attached NVMe SSDs on your worker nodes - A StorageClass configured for flash storage with a unique name -For hardware requirements and sizing guidelines, see [Plan your deployment]({{< relref "/operate/kubernetes/8.0.18/flex/plan" >}}). +For hardware requirements and sizing guidelines, see [Plan your deployment](/content/operate/kubernetes/8.0.18/flex/plan.md). ## Configure the REC for Flex -To enable Flex, configure your `RedisEnterpriseCluster` (REC) resource with flash storage settings. Add the [`redisOnFlashSpec`]({{}}) section to your REC specification. +To enable Flex, configure your `RedisEnterpriseCluster` (REC) resource with flash storage settings. Add the [`redisOnFlashSpec`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specredisonflashspec) section to your REC specification. Key fields in `redisOnFlashSpec`: @@ -44,11 +43,10 @@ Key fields in `redisOnFlashSpec`: | `flashDiskSize` | Size of the flash storage per node. | | `storageEngine` | Storage engine. Set to `speedb` for Flex. | -For all available fields, see the [REC API reference]({{}}). +For all available fields, see the [REC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specredisonflashspec). -{{}} -PVC expansion is not supported when using Flex. Do not enable `enablePersistentVolumeResize` in the REC `persistentSpec` if you are using `redisOnFlashSpec` as this will result in conflicts. -{{}} +> [!WARNING] +> PVC expansion is not supported when using Flex. Do not enable `enablePersistentVolumeResize` in the REC `persistentSpec` if you are using `redisOnFlashSpec` as this will result in conflicts. 1. Create a REC specification file with flash storage settings similar to the following example: @@ -90,7 +88,7 @@ Key fields in the REDB: | `isRof` | Set to `true` to enable Flex for this database. | | `rofRamSize` | Amount of RAM allocated to the database. | -For all available fields, see the [REDB API reference]({{}}). +For all available fields, see the [REDB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md). 1. Create a database specification file with `isRof` set to `true` similar to the following example: @@ -133,5 +131,5 @@ To confirm that Flex is working: ## Next steps -- [Scale your deployment]({{< relref "/operate/kubernetes/8.0.18/flex/scale" >}}): Learn how to scale volume, throughput, and infrastructure. -- [Plan your deployment]({{< relref "/operate/kubernetes/8.0.18/flex/plan" >}}): Review sizing guidelines and best practices. +- [Scale your deployment](/content/operate/kubernetes/8.0.18/flex/scale.md): Learn how to scale volume, throughput, and infrastructure. +- [Plan your deployment](/content/operate/kubernetes/8.0.18/flex/plan.md): Review sizing guidelines and best practices. diff --git a/content/operate/kubernetes/8.0.18/flex/plan.md b/content/operate/kubernetes/8.0.18/flex/plan.md index 2349fef867..986bd66eb7 100644 --- a/content/operate/kubernetes/8.0.18/flex/plan.md +++ b/content/operate/kubernetes/8.0.18/flex/plan.md @@ -118,5 +118,5 @@ The `flashStorageEngine` field is deprecated. Use `bigStoreDriver` instead. ## Next steps -- [Get started]({{< relref "/operate/kubernetes/8.0.18/flex/get-started" >}}): Configure Redis Flex on your cluster. -- [Scale your deployment]({{< relref "/operate/kubernetes/8.0.18/flex/scale" >}}): Learn scaling strategies. +- [Get started](/content/operate/kubernetes/8.0.18/flex/get-started.md): Configure Redis Flex on your cluster. +- [Scale your deployment](/content/operate/kubernetes/8.0.18/flex/scale.md): Learn scaling strategies. diff --git a/content/operate/kubernetes/8.0.18/flex/scale.md b/content/operate/kubernetes/8.0.18/flex/scale.md index 136434b6c3..c9110d9cc8 100644 --- a/content/operate/kubernetes/8.0.18/flex/scale.md +++ b/content/operate/kubernetes/8.0.18/flex/scale.md @@ -138,10 +138,9 @@ For Flex deployments on Kubernetes, ensure the cluster has sufficient physical r - Adequate vCPU to support increased shard count or throughput. -{{}} -Scaling operations will fail or underperform if the underlying cluster is resource-constrained. -{{}} +> [!WARNING] +> Scaling operations will fail or underperform if the underlying cluster is resource-constrained. PVC expansion is not supported with `redisOnFlashSpec`. Plan flash storage capacity upfront and don't enable `enablePersistentVolumeResize` in the REC `persistentSpec`. -See Flex [hardware requirements]({{}}) for more information. +See Flex [hardware requirements](/content/operate/kubernetes/8.0.18/flex/plan.md#hardware-requirements) for more information. diff --git a/content/operate/kubernetes/8.0.18/logs/_index.md b/content/operate/kubernetes/8.0.18/logs/_index.md index 6f0a540dc5..fb695fd46d 100644 --- a/content/operate/kubernetes/8.0.18/logs/_index.md +++ b/content/operate/kubernetes/8.0.18/logs/_index.md @@ -18,7 +18,7 @@ Access and manage Redis Enterprise logs on Kubernetes for monitoring, troublesho Learn how to collect and access logs from your Redis Enterprise deployment: -- [Collect logs]({{< relref "/operate/kubernetes/8.0.18/logs/collect-logs" >}}) - Methods for collecting logs from Redis Enterprise pods and containers +- [Collect logs](/content/operate/kubernetes/8.0.18/logs/collect-logs.md) - Methods for collecting logs from Redis Enterprise pods and containers ## Log storage and access diff --git a/content/operate/kubernetes/8.0.18/logs/collect-logs.md b/content/operate/kubernetes/8.0.18/logs/collect-logs.md index b64f510642..cf1a855019 100644 --- a/content/operate/kubernetes/8.0.18/logs/collect-logs.md +++ b/content/operate/kubernetes/8.0.18/logs/collect-logs.md @@ -19,11 +19,12 @@ The log collector tool has two modes: - **restricted** collects only resources and logs created by the operator and Redis Enterprise deployments - **all** collects everything from your environment -{{}} This script requires Python 3.11 or later. {{}} +> [!NOTE] +> This script requires Python 3.11 or later. ## Prerequisites -Before running the log collector, ensure you have the appropriate RBAC permissions configured. See [Log collector RBAC examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/log-collector-rbac" >}}) for detailed RBAC configuration instructions. +Before running the log collector, ensure you have the appropriate RBAC permissions configured. See [Log collector RBAC examples](/content/operate/kubernetes/8.0.18/reference/yaml/log-collector-rbac.md) for detailed RBAC configuration instructions. ## Collect logs @@ -55,8 +56,8 @@ You can run `log_collector.py` with the following options: | `--collect_rbac_resources` | Temporary development flag. Collect all role based access control related custom resources. | | `-h`, `--help` | Show help message and exit. | -{{< note >}} If you get an error because the yaml module is not found, install the pyYAML module with `pip install pyyaml`. -{{< /note >}} +> [!NOTE] +> If you get an error because the yaml module is not found, install the pyYAML module with `pip install pyyaml`. 1. Upload the resulting `tar.gz` file containing all the logs to [Redis Support](https://support.redislabs.com/). diff --git a/content/operate/kubernetes/8.0.18/networking/_index.md b/content/operate/kubernetes/8.0.18/networking/_index.md index 0231b5880b..a36329f066 100644 --- a/content/operate/kubernetes/8.0.18/networking/_index.md +++ b/content/operate/kubernetes/8.0.18/networking/_index.md @@ -18,36 +18,36 @@ Configure networking and external access for your Redis Enterprise deployment on Connect applications to your Redis Enterprise databases: -- [Database connectivity]({{< relref "/operate/kubernetes/8.0.18/networking/database-connectivity" >}}) - Comprehensive guide to in-cluster and external database access, service discovery, and credentials management. +- [Database connectivity](/content/operate/kubernetes/8.0.18/networking/database-connectivity.md) - Comprehensive guide to in-cluster and external database access, service discovery, and credentials management. ## External routing methods Choose the appropriate method for your environment to enable external access: -- [Ingress routing]({{< relref "/operate/kubernetes/8.0.18/networking/ingress" >}}) - Use NGINX or HAProxy ingress controllers with `ingress` API resources -- [Istio ingress routing]({{< relref "/operate/kubernetes/8.0.18/networking/istio-ingress" >}}) - Use Istio service mesh with `Gateway` and `VirtualService` API resources -- [OpenShift routes]({{< relref "/operate/kubernetes/8.0.18/networking/routes" >}}) - Use OpenShift-specific route resources for external traffic +- [Ingress routing](/content/operate/kubernetes/8.0.18/networking/ingress.md) - Use NGINX or HAProxy ingress controllers with `ingress` API resources +- [Istio ingress routing](/content/operate/kubernetes/8.0.18/networking/istio-ingress.md) - Use Istio service mesh with `Gateway` and `VirtualService` API resources +- [OpenShift routes](/content/operate/kubernetes/8.0.18/networking/routes.md) - Use OpenShift-specific route resources for external traffic ## Automatic ingress configuration For Active-Active databases, configure automatic ingress creation: -- [REC external routing]({{< relref "/operate/kubernetes/8.0.18/networking/ingressorroutespec" >}}) - Use `ingressOrRouteSpec` field in RedisEnterpriseCluster (REC) for automatic ingress creation +- [REC external routing](/content/operate/kubernetes/8.0.18/networking/ingressorroutespec.md) - Use `ingressOrRouteSpec` field in RedisEnterpriseCluster (REC) for automatic ingress creation ## `ingressOrRouteSpec` for Active-Active databases -Versions 6.4.2 or later of Redis Enterprise for Kubernetes include a feature for ingress configuration. The `ingressOrRouteSpec` field is available in the RedisEnterpriseCluster spec to automatically create an Ingress (or route) for the API service and databases (REAADB) on that REC. See [REC external routing]({{< relref "/operate/kubernetes/8.0.18/networking/ingressorroutespec" >}}) for more details. +Versions 6.4.2 or later of Redis Enterprise for Kubernetes include a feature for ingress configuration. The `ingressOrRouteSpec` field is available in the RedisEnterpriseCluster spec to automatically create an Ingress (or route) for the API service and databases (REAADB) on that REC. See [REC external routing](/content/operate/kubernetes/8.0.18/networking/ingressorroutespec.md) for more details. This feature only supports automatic Ingress creation for Active-Active databases created and managed with the RedisEnterpriseActiveActiveDatabase (REAADB) custom resource. Use with the standard Redis Enterprise database (REDB) is not currently supported. ## OSS Cluster API support -[OSS Cluster API]({{< relref "/operate/kubernetes/8.0.18/networking/cluster-aware-clients" >}}) is supported for both internal and external clients: +[OSS Cluster API](/content/operate/kubernetes/8.0.18/networking/cluster-aware-clients.md) is supported for both internal and external clients: - **Internal clients** running on pods within the same Kubernetes cluster can connect directly to Redis Enterprise pods using pod IPs. - **External clients** outside the Kubernetes cluster can connect through LoadBalancer services when `enableExternalAccess: true` is configured in the database specification. This creates a separate LoadBalancer service for each Redis Enterprise pod. Note that LoadBalancers are resources that can significantly increase operational costs. -See [Enable cluster-aware clients (OSS Cluster API)]({{< relref "/operate/kubernetes/8.0.18/networking/cluster-aware-clients" >}}) for configuration details. +See [Enable cluster-aware clients (OSS Cluster API)](/content/operate/kubernetes/8.0.18/networking/cluster-aware-clients.md) for configuration details. ## REC domain name diff --git a/content/operate/kubernetes/8.0.18/networking/cluster-aware-clients.md b/content/operate/kubernetes/8.0.18/networking/cluster-aware-clients.md index 7867abb176..8b9a6aa8d2 100644 --- a/content/operate/kubernetes/8.0.18/networking/cluster-aware-clients.md +++ b/content/operate/kubernetes/8.0.18/networking/cluster-aware-clients.md @@ -13,9 +13,8 @@ url: '/operate/kubernetes/8.0.18/networking/cluster-aware-clients/' The OSS Cluster API improves performance by allowing cluster-aware Redis clients to discover database topology and route requests directly. This feature supports cluster-aware clients running on the same Kubernetes cluster (internal) and cluster-aware clients outside the Kubernetes cluster (external). -{{< note >}} -Enabling external access for OSS Cluster API creates a separate LoadBalancer service for each Redis Enterprise pod in addition to the LoadBalancer service for the cluster endpoint. LoadBalancers are resources that can significantly increase operational costs; plan your infrastructure budget accordingly. -{{< /note >}} +> [!NOTE] +> Enabling external access for OSS Cluster API creates a separate LoadBalancer service for each Redis Enterprise pod in addition to the LoadBalancer service for the cluster endpoint. LoadBalancers are resources that can significantly increase operational costs; plan your infrastructure budget accordingly. ## Prerequisites diff --git a/content/operate/kubernetes/8.0.18/networking/database-connectivity.md b/content/operate/kubernetes/8.0.18/networking/database-connectivity.md index c21ebc913c..6339b97e51 100644 --- a/content/operate/kubernetes/8.0.18/networking/database-connectivity.md +++ b/content/operate/kubernetes/8.0.18/networking/database-connectivity.md @@ -118,7 +118,7 @@ Redis Enterprise for Kubernetes only supports the following ingress controllers - HAProxy Ingress - Built-in SSL passthrough support - Istio Gateway - Service mesh integration with advanced traffic management -See [Ingress routing]({{< relref "/operate/kubernetes/8.0.18/networking/ingress" >}}) for detailed configuration steps. +See [Ingress routing](/content/operate/kubernetes/8.0.18/networking/ingress.md) for detailed configuration steps. ### OpenShift routes @@ -139,7 +139,7 @@ spec: termination: passthrough ``` -See [OpenShift routes]({{< relref "/operate/kubernetes/8.0.18/networking/routes" >}}) for complete setup instructions. +See [OpenShift routes](/content/operate/kubernetes/8.0.18/networking/routes.md) for complete setup instructions. ## Service ports and configuration @@ -294,7 +294,7 @@ client.on('connect', () => { ## Related topics -- [Ingress routing]({{< relref "/operate/kubernetes/8.0.18/networking/ingress" >}}) - Configure external access with ingress controllers -- [OpenShift routes]({{< relref "/operate/kubernetes/8.0.18/networking/routes" >}}) - External access using OpenShift routes -- [Database controller]({{< relref "/operate/kubernetes/8.0.18/re-databases/db-controller" >}}) - Database lifecycle management -- [Security]({{< relref "/operate/kubernetes/8.0.18/security" >}}) - TLS configuration and access control +- [Ingress routing](/content/operate/kubernetes/8.0.18/networking/ingress.md) - Configure external access with ingress controllers +- [OpenShift routes](/content/operate/kubernetes/8.0.18/networking/routes.md) - External access using OpenShift routes +- [Database controller](/content/operate/kubernetes/8.0.18/re-databases/db-controller.md) - Database lifecycle management +- [Security](/content/operate/kubernetes/8.0.18/security/_index.md) - TLS configuration and access control diff --git a/content/operate/kubernetes/8.0.18/networking/ingress.md b/content/operate/kubernetes/8.0.18/networking/ingress.md index 8efa6c7f4b..30a9f821d4 100644 --- a/content/operate/kubernetes/8.0.18/networking/ingress.md +++ b/content/operate/kubernetes/8.0.18/networking/ingress.md @@ -21,9 +21,10 @@ Before creating an Ingress, you'll need: - [Ingress-NGINX Controller](https://kubernetes.github.io/ingress-nginx/deploy/) - Be sure to use the `kubernetes/ingress-nginx` controller and NOT the `nginxinc/kubernetes-ingress` controller. - [HAProxy Ingress](https://haproxy-ingress.github.io/docs/getting-started/) - - To use Istio for your Ingress resources, see [Configure Istio for external routing]({{< relref "/operate/kubernetes/8.0.18/networking/istio-ingress" >}}) + - To use Istio for your Ingress resources, see [Configure Istio for external routing](/content/operate/kubernetes/8.0.18/networking/istio-ingress.md) -{{}}Make sure your Ingress controller has `ssl-passthrough`enabled. This is enabled by default for HAProxy, but disabled by default for NGINX. See the [NGINX User Guide](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#ssl-passthrough) for details. {{}} +> [!NOTE] +> Make sure your Ingress controller has `ssl-passthrough`enabled. This is enabled by default for HAProxy, but disabled by default for NGINX. See the [NGINX User Guide](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#ssl-passthrough) for details. ## Create an Ingress resource diff --git a/content/operate/kubernetes/8.0.18/networking/ingressorroutespec.md b/content/operate/kubernetes/8.0.18/networking/ingressorroutespec.md index f788896948..54db948640 100644 --- a/content/operate/kubernetes/8.0.18/networking/ingressorroutespec.md +++ b/content/operate/kubernetes/8.0.18/networking/ingressorroutespec.md @@ -19,7 +19,7 @@ Redis Enterprise for Kubernetes supports the Ingress controllers below: * [NGINX](https://kubernetes.github.io/ingress-nginx/) * [Istio](https://istio.io/latest/docs/setup/getting-started/) -OpenShift users can use [routes]({{< relref "/operate/kubernetes/8.0.18/networking/routes" >}}) instead of an Ingress. +OpenShift users can use [routes](/content/operate/kubernetes/8.0.18/networking/routes.md) instead of an Ingress. Install your chosen Ingress controller, making sure `ssl-passthrough` is enabled. `ssl-passthrough` is turned off by default for NGINX but enabled by default for HAProxy. diff --git a/content/operate/kubernetes/8.0.18/networking/istio-ingress.md b/content/operate/kubernetes/8.0.18/networking/istio-ingress.md index 538e288082..4e2b143027 100644 --- a/content/operate/kubernetes/8.0.18/networking/istio-ingress.md +++ b/content/operate/kubernetes/8.0.18/networking/istio-ingress.md @@ -18,9 +18,8 @@ Istio can also understand Ingress resources, but using that mechanism takes away To configure Istio to work with the Redis Kubernetes operator, we will use two custom resources: a `Gateway` and a `VirtualService`. Then you'll be able to establish external access to your database. -{{< note >}} -When using Istio ingress for Redis on Kubernetes, avoid partial wildcard hostnames in your REC configuration. Use only valid FQDNs or leftmost wildcards for Istio compatibility and stable external routing. For more information, see [Istio Ingress Fails for Redis on Kubernetes with Partial Wildcard Hostnames](https://support.redislabs.com/hc/en-us/articles/30446436267666-Istio-Ingress-Fails-for-Redis-on-Kubernetes-with-Partial-Wildcard-Hostnames). -{{< /note >}} +> [!NOTE] +> When using Istio ingress for Redis on Kubernetes, avoid partial wildcard hostnames in your REC configuration. Use only valid FQDNs or leftmost wildcards for Istio compatibility and stable external routing. For more information, see [Istio Ingress Fails for Redis on Kubernetes with Partial Wildcard Hostnames](https://support.redislabs.com/hc/en-us/articles/30446436267666-Istio-Ingress-Fails-for-Redis-on-Kubernetes-with-Partial-Wildcard-Hostnames). ## Install and configure Istio for Redis Enterprise @@ -150,10 +149,10 @@ When using Istio ingress for Redis on Kubernetes, avoid partial wildcard hostnam redis-vs ["redis-gateway"] ["*.istio.k8s.my.example.com"] 3h33m ``` -1. [Deploy the operator]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}), Redis Enterprise Cluster (REC), and Redis Enterprise Database (REDB) on the same namespace as the gateway and virtual service. +1. [Deploy the operator](/content/operate/kubernetes/8.0.18/deployment/quick-start.md), Redis Enterprise Cluster (REC), and Redis Enterprise Database (REDB) on the same namespace as the gateway and virtual service. ## Test your external access to the database -To [test your external access]({{< relref "/operate/kubernetes/8.0.18/networking/ingress" >}}) to the database, you need a client that supports [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) and [SNI](https://en.wikipedia.org/wiki/Server_Name_Indication). +To [test your external access](/content/operate/kubernetes/8.0.18/networking/ingress.md) to the database, you need a client that supports [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) and [SNI](https://en.wikipedia.org/wiki/Server_Name_Indication). -See [Test your access with Openssl]({{< relref "/operate/kubernetes/8.0.18/networking/ingress#test-your-access-with-openssl" >}}) or [Test your access with Python]({{< relref "/operate/kubernetes/8.0.18/networking/ingress#test-your-access-with-python" >}}) for more info. +See [Test your access with Openssl](/content/operate/kubernetes/8.0.18/networking/ingress.md#test-your-access-with-openssl) or [Test your access with Python](/content/operate/kubernetes/8.0.18/networking/ingress.md#test-your-access-with-python) for more info. diff --git a/content/operate/kubernetes/8.0.18/re-clusters/_index.md b/content/operate/kubernetes/8.0.18/re-clusters/_index.md index b35ad6587d..a763faffc8 100644 --- a/content/operate/kubernetes/8.0.18/re-clusters/_index.md +++ b/content/operate/kubernetes/8.0.18/re-clusters/_index.md @@ -20,22 +20,22 @@ REC resources define the cluster configuration, including node specifications, s Manage your Redis Enterprise cluster lifecycle and configuration: -- [Connect to admin console]({{< relref "/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console" >}}) - Access the Redis Enterprise web UI for cluster management -- [Multi-namespace deployment]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace" >}}) - Deploy clusters across multiple Kubernetes namespaces -- [Delete custom resources]({{< relref "/operate/kubernetes/8.0.18/re-clusters/delete-custom-resources" >}}) - Safely remove REC and related resources +- [Connect to admin console](/content/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console.md) - Access the Redis Enterprise web UI for cluster management +- [Multi-namespace deployment](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md) - Deploy clusters across multiple Kubernetes namespaces +- [Delete custom resources](/content/operate/kubernetes/8.0.18/re-clusters/delete-custom-resources.md) - Safely remove REC and related resources ## Storage and performance Optimize storage and performance for your Redis Enterprise cluster: -- [Redis Flex]({{< relref "/operate/kubernetes/8.0.18/flex" >}}) - Configure automatic data tiering between RAM and flash storage -- [Expand PVC]({{< relref "/operate/kubernetes/8.0.18/re-clusters/expand-pvc" >}}) - Expand persistent volume claims for additional storage +- [Redis Flex](/content/operate/kubernetes/8.0.18/flex/_index.md) - Configure automatic data tiering between RAM and flash storage +- [Expand PVC](/content/operate/kubernetes/8.0.18/re-clusters/expand-pvc.md) - Expand persistent volume claims for additional storage ## Monitoring and observability Monitor cluster health and performance: -- [Connect to Prometheus operator]({{< relref "/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator" >}}) - Integrate with Prometheus for metrics collection and monitoring +- [Connect to Prometheus operator](/content/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator.md) - Integrate with Prometheus for metrics collection and monitoring ### Call home client @@ -48,19 +48,18 @@ spec: disabled: true ``` -{{}} -The REST API approach used for Redis Software deployments will have no effect on Kubernetes deployments. You must use the REC specification method shown above. -{{}} +> [!NOTE] +> The REST API approach used for Redis Software deployments will have no effect on Kubernetes deployments. You must use the REC specification method shown above. ## Recovery and troubleshooting Handle cluster recovery and troubleshooting scenarios: -- [Cluster recovery]({{< relref "/operate/kubernetes/8.0.18/re-clusters/cluster-recovery" >}}) - Recover from cluster failures and restore operations +- [Cluster recovery](/content/operate/kubernetes/8.0.18/re-clusters/cluster-recovery.md) - Recover from cluster failures and restore operations ## Related topics -- [Redis Enterprise databases (REDB)]({{< relref "/operate/kubernetes/8.0.18/re-databases" >}}) - Create and manage databases on your cluster -- [Security]({{< relref "/operate/kubernetes/8.0.18/security" >}}) - Configure security settings for your cluster -- [Networking]({{< relref "/operate/kubernetes/8.0.18/networking" >}}) - Set up networking and ingress for cluster access -- [REC API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) - Complete API specification for REC resources +- [Redis Enterprise databases (REDB)](/content/operate/kubernetes/8.0.18/re-databases/_index.md) - Create and manage databases on your cluster +- [Security](/content/operate/kubernetes/8.0.18/security/_index.md) - Configure security settings for your cluster +- [Networking](/content/operate/kubernetes/8.0.18/networking/_index.md) - Set up networking and ingress for cluster access +- [REC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) - Complete API specification for REC resources diff --git a/content/operate/kubernetes/8.0.18/re-clusters/cluster-recovery.md b/content/operate/kubernetes/8.0.18/re-clusters/cluster-recovery.md index 4af462ea47..e9836143e2 100644 --- a/content/operate/kubernetes/8.0.18/re-clusters/cluster-recovery.md +++ b/content/operate/kubernetes/8.0.18/re-clusters/cluster-recovery.md @@ -23,15 +23,15 @@ The Redis Enterprise for Kubernetes automates these recovery steps: 1. Recovers the cluster configuration on the first node in the new cluster 1. Joins the remaining nodes to the new cluster. -{{}}Redis Enterprise for Kubernetes 7.2.4-2 introduces a new limitation. You cannot recover or upgrade your cluster if there are databases with old module versions or manually uploaded modules. See the [Redis Enterprise Software 7.2.4 known limitations]({{< relref "/operate/rs/release-notes/rs-7-2-4-releases/rs-7-2-4-52#cluster-recovery-with-manually-uploaded-modules" >}}) for more details.{{}} +> [!WARNING] +> Redis Enterprise for Kubernetes 7.2.4-2 introduces a new limitation. You cannot recover or upgrade your cluster if there are databases with old module versions or manually uploaded modules. See the [Redis Enterprise Software 7.2.4 known limitations](/content/operate/rs/release-notes/rs-7-2-4-releases/rs-7-2-4-52.md#cluster-recovery-with-manually-uploaded-modules) for more details. -{{< note >}} -If your cluster uses user-defined modules, the recovery process doesn't block on module validation errors (such as URL or credential issues). The cluster can recover successfully, and you can resolve any module configuration issues after recovery is complete. See [User-defined modules]({{< relref "/operate/kubernetes/8.0.18/re-databases/modules#user-defined-modules" >}}) for more information. -{{< /note >}} +> [!NOTE] +> If your cluster uses user-defined modules, the recovery process doesn't block on module validation errors (such as URL or credential issues). The cluster can recover successfully, and you can resolve any module configuration issues after recovery is complete. See [User-defined modules](/content/operate/kubernetes/8.0.18/re-databases/modules.md#user-defined-modules) for more information. ## Prerequisites -- For cluster recovery, the cluster must be [deployed with persistence]({{< relref "/operate/kubernetes/8.0.18/recommendations/persistent-volumes" >}}). +- For cluster recovery, the cluster must be [deployed with persistence](/content/operate/kubernetes/8.0.18/recommendations/persistent-volumes.md). ## Recover a cluster @@ -50,4 +50,4 @@ If your cluster uses user-defined modules, the recovery process doesn't block on watch "kubectl describe rec | grep State" ``` -1. To recover the database, see [Recover a failed database]({{< relref "/operate/rs/databases/recover" >}}). \ No newline at end of file +1. To recover the database, see [Recover a failed database](/content/operate/rs/databases/recover.md). \ No newline at end of file diff --git a/content/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator.md b/content/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator.md index 949e8aac3a..9600ccbc04 100644 --- a/content/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator.md +++ b/content/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator.md @@ -18,9 +18,9 @@ To collect metrics data from your databases and Redis Enterprise cluster (REC), Before connecting Redis Enterprise to Prometheus on your Kubernetes cluster, make sure you've done the following: -- [Deploy Redis Enterprise for Kubernetes]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}) (version 6.2.10-4 or newer) +- [Deploy Redis Enterprise for Kubernetes](/content/operate/kubernetes/8.0.18/deployment/quick-start.md) (version 6.2.10-4 or newer) - [Deploy the Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/getting-started.md) (version 0.19.0 or newer) -- [Create a Redis Enterprise cluster]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start#create-a-redis-enterprise-cluster-rec" >}}) +- [Create a Redis Enterprise cluster](/content/operate/kubernetes/8.0.18/deployment/quick-start.md#create-a-redis-enterprise-cluster-rec) ## Create a `ServiceMonitor` custom resource @@ -35,7 +35,8 @@ You'll need to configure the following fields to connect Prometheus to Redis Ent | `spec.selector` | `matchLabels` | REC service label (`app: redis.io/service=prom-metrics`) | Apply the file in the same namespace as your Redis Enterprise cluster (REC). - {{}}If Redis Enterprise and Prometheus are deployed in different namespaces, you'll also need to add the [`serviceMonitorNamespaceSelector`](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md) field to your Prometheus resource. See the [Prometheus operator documentation](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/running-exporters.md) for more details on cross-namespace `ServiceMonitor` configuration.{{}} +> [!NOTE] +> If Redis Enterprise and Prometheus are deployed in different namespaces, you'll also need to add the [`serviceMonitorNamespaceSelector`](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md) field to your Prometheus resource. See the [Prometheus operator documentation](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/running-exporters.md) for more details on cross-namespace `ServiceMonitor` configuration. ```YAML @@ -67,5 +68,5 @@ For more info about configuring the `ServiceMonitor` resource, see the [`Service - [Running exporters](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/running-exporters.md) - [Troubleshooting ServiceMonitor changes](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/platform/troubleshooting.md#troubleshooting-servicemonitor-changes) - redis.io/docs - - [Metrics in Prometheus]({{< relref "/integrate/prometheus-with-redis-enterprise/prometheus-metrics-definitions" >}}) - - [Monitoring and metrics]({{< relref "/operate/rs/monitoring/" >}}) + - [Metrics in Prometheus](/content/integrate/prometheus-with-redis-enterprise/prometheus-metrics-definitions.md) + - [Monitoring and metrics](/content/operate/rs/monitoring/_index.md) diff --git a/content/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console.md b/content/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console.md index b850b61414..19ed7f0e79 100644 --- a/content/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console.md +++ b/content/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console.md @@ -12,11 +12,10 @@ weight: 10 url: '/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console/' --- -The username and password for the Redis Enterprise Software [admin console]({{< relref "/operate/rs/" >}}) are stored in a Kubernetes [secret](https://kubernetes.io/docs/concepts/configuration/secret/). After retrieving your credentials, you can use port forwarding to connect to the admin console. +The username and password for the Redis Enterprise Software [admin console](/content/operate/rs/_index.md) are stored in a Kubernetes [secret](https://kubernetes.io/docs/concepts/configuration/secret/). After retrieving your credentials, you can use port forwarding to connect to the admin console. -{{}} -There are several methods for accessing the admin console. Port forwarding is the simplest, but not the most efficient method for long-term use. You could also use a load balancer service or Ingress. -{{}} +> [!NOTE] +> There are several methods for accessing the admin console. Port forwarding is the simplest, but not the most efficient method for long-term use. You could also use a load balancer service or Ingress. 1. Switch to the namespace with your Redis Enterprise cluster (REC). @@ -45,9 +44,8 @@ There are several methods for accessing the admin console. Port forwarding is th kubectl get service/-ui -o yaml ``` - {{}} - The default port is 8443. - {{}} + > [!NOTE] + > The default port is 8443. 1. Use `kubectl port-forward` to forward your local port to the service port. diff --git a/content/operate/kubernetes/8.0.18/re-clusters/delete-custom-resources.md b/content/operate/kubernetes/8.0.18/re-clusters/delete-custom-resources.md index d4c5b4e35b..23ce1ed076 100644 --- a/content/operate/kubernetes/8.0.18/re-clusters/delete-custom-resources.md +++ b/content/operate/kubernetes/8.0.18/re-clusters/delete-custom-resources.md @@ -52,7 +52,8 @@ To delete the operator from your K8s cluster, you can delete the operator bundle This will remove the operator and its custom resource definitions (CRDs) from your K8s cluster. -{{< warning >}} The Redis Enterprise CRDs are non-namespaced resources, meaning they are shared across your entire K8s cluster. Deleting CRDs in one namespace will delete custom resources in every other namespace across the K8s cluster.{{}} +> [!WARNING] +> The Redis Enterprise CRDs are non-namespaced resources, meaning they are shared across your entire K8s cluster. Deleting CRDs in one namespace will delete custom resources in every other namespace across the K8s cluster. ### Delete operator from one namespace @@ -68,7 +69,7 @@ kubectl delete -f admission-service.yaml kubectl delete -f operator.yaml ``` -You will also need to remove [the `namespaceSelector` section from the validating webhook]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start#webhook" >}}). +You will also need to remove [the `namespaceSelector` section from the validating webhook](/content/operate/kubernetes/8.0.18/deployment/quick-start.md#webhook). ## Delete an Active-Active database (REAADB) @@ -110,7 +111,8 @@ If the operator isn't running, or some other fatal error occurs, the finalizer i If this happens, you can remove the finalizer manually. -{{}} If you remove the finalizer manually, there is no guarantee that the underlying REDB has been deleted. This may cause resource issues and require manual intervention. {{}} +> [!WARNING] +> If you remove the finalizer manually, there is no guarantee that the underlying REDB has been deleted. This may cause resource issues and require manual intervention. ```sh kubectl patch redb --type=json -p \ @@ -125,7 +127,8 @@ If the operator isn't running, or some other fatal error occurs, the finalizer i If this happens, you can remove the finalizer manually. -{{}} If you remove the finalizer manually, there is no guarantee that the underlying REC has been deleted. This may cause resource issues and require manual intervention. {{}} +> [!WARNING] +> If you remove the finalizer manually, there is no guarantee that the underlying REC has been deleted. This may cause resource issues and require manual intervention. ```sh kubectl patch rec --type=json -p \ diff --git a/content/operate/kubernetes/8.0.18/re-clusters/expand-pvc.md b/content/operate/kubernetes/8.0.18/re-clusters/expand-pvc.md index a4812b9cc2..5d8c20ae92 100644 --- a/content/operate/kubernetes/8.0.18/re-clusters/expand-pvc.md +++ b/content/operate/kubernetes/8.0.18/re-clusters/expand-pvc.md @@ -13,28 +13,30 @@ url: '/operate/kubernetes/8.0.18/re-clusters/expand-pvc/' This article outlines steps to increase the size of the persistent volume claim for your Redis Enterprise cluster (REC). -{{}} This feature is only supported in versions 7.4.2-12 and above. {{}} +> [!NOTE] +> This feature is only supported in versions 7.4.2-12 and above. [PersistentVolumeClaims (PVC)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) are created by the Redis Enterprise operator and used by the RedisEnterpriseCluster (REC). PVCs are created with a specific size and [can be expanded](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) with the following steps, if the underlying [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) supports it. This process involves deleting and recreating the REC StatefulSet with a larger persistent volume size. The pods owned by the StatefulSet are not restarted or affected by the deletion and recreation process, except when they are left without an owner momentarily. -{{}}Shrinking (reducing the size) of your PVC is not allowed. This process only allows you to expand (size up) your PVC.{{}} +> [!NOTE] +> Shrinking (reducing the size) of your PVC is not allowed. This process only allows you to expand (size up) your PVC. ### Default PVC size -By default, if you omit [`spec.persistentSpec.volumeSize`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#specpersistentspec" >}}), the operator allocates a persistent volume that is five times (5x) the Redis Enterprise node memory request defined in [`spec.redisEnterpriseNodeResources.requests.memory`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#specredisenterprisenoderesources" >}}) (per node). This 5x ratio is the recommended minimum capacity. +By default, if you omit [`spec.persistentSpec.volumeSize`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specpersistentspec), the operator allocates a persistent volume that is five times (5x) the Redis Enterprise node memory request defined in [`spec.redisEnterpriseNodeResources.requests.memory`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specredisenterprisenoderesources) (per node). This 5x ratio is the recommended minimum capacity. -- If you set [`spec.persistentSpec.volumeSize`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#specpersistentspec" >}}) explicitly, that exact size is used and the 5x default does not apply. +- If you set [`spec.persistentSpec.volumeSize`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specpersistentspec) explicitly, that exact size is used and the 5x default does not apply. - Changing node memory requests does not automatically resize existing PVCs. Use the procedure below to expand the PVC if you want to maintain the 5x ratio after changing memory. -- If you omit [`spec.redisEnterpriseNodeResources.requests.memory`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#specredisenterprisenoderesources" >}}), the operator uses its default memory request (4Gi). With `volumeSize` omitted, this results in a default PVC size of approximately 20Gi per node (5 × 4Gi). See [sizing on Kubernetes]({{< relref "/operate/kubernetes/8.0.18/recommendations/sizing-on-kubernetes" >}}) for defaults. +- If you omit [`spec.redisEnterpriseNodeResources.requests.memory`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specredisenterprisenoderesources), the operator uses its default memory request (4Gi). With `volumeSize` omitted, this results in a default PVC size of approximately 20Gi per node (5 × 4Gi). See [sizing on Kubernetes](/content/operate/kubernetes/8.0.18/recommendations/sizing-on-kubernetes.md) for defaults. -- See the [volume size recommendations]({{< relref "/operate/kubernetes/8.0.18/recommendations/persistent-volumes#volume-size" >}}) and [hardware requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}) for guidance. +- See the [volume size recommendations](/content/operate/kubernetes/8.0.18/recommendations/persistent-volumes.md#volume-size) and [hardware requirements](/content/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md) for guidance. ## Prerequisites -{{}}Do not change any other REC fields related to the StatefulSet while resizing is in progress. -{{}} +> [!WARNING] +> Do not change any other REC fields related to the StatefulSet while resizing is in progress. - PVC expansion must be supported and enabled by the StorageClass and underlying storage driver of the REC PVCs. - The relevant StorageClass is the one associated with the REC PVCs. The StorageClass for existing PVCs cannot be changed. @@ -42,9 +44,11 @@ By default, if you omit [`spec.persistentSpec.volumeSize`]({{< relref "/operate/ - Your storage driver must support online expansion. - We highly recommend you backup your databases before beginning this PVC expansion process. -{{}} OpenShift users should be aware that (`ClusterResourceQuota`) can limit the PVC expansion. Check your quota before resizing using `oc describe clusterresourcequota `.{{}} +> [!WARNING] +> OpenShift users should be aware that (`ClusterResourceQuota`) can limit the PVC expansion. Check your quota before resizing using `oc describe clusterresourcequota `. -{{}} PVC expansion is not supported when using Redis Flex (previously Redis on Flash). Do not enable `enablePersistentVolumeResize` if your REC uses `redisOnFlashSpec` as this will result in conflicts. {{}} +> [!WARNING] +> PVC expansion is not supported when using Redis Flex (previously Redis on Flash). Do not enable `enablePersistentVolumeResize` if your REC uses `redisOnFlashSpec` as this will result in conflicts. ## Expand REC PVC diff --git a/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md b/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md index cefff45000..27822812be 100644 --- a/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md +++ b/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md @@ -15,21 +15,21 @@ url: '/operate/kubernetes/8.0.18/re-clusters/multi-namespace/' Multiple Redis Enterprise database resources (REDBs) can be associated with a single Redis Enterprise cluster resource (REC) even if they reside in different namespaces. -To learn more about designing a multi-namespace Redis Enterprise cluster, see [flexible deployment options]({{< relref "/operate/kubernetes/8.0.18/architecture/deployment-options" >}}). +To learn more about designing a multi-namespace Redis Enterprise cluster, see [flexible deployment options](/content/operate/kubernetes/8.0.18/architecture/deployment-options.md). -{{}} -Multi-namespace installations now support Active-Active databases (REAADB) with certain configuration requirements. For details, see [Multi-namespace Active-Active databases](#multi-namespace-active-active-databases). -{{}} +> [!NOTE] +> Multi-namespace installations now support Active-Active databases (REAADB) with certain configuration requirements. For details, see [Multi-namespace Active-Active databases](#multi-namespace-active-active-databases). ## Prerequisites -Before configuring a multi-namespace deployment, you must have a running [Redis Enterprise cluster (REC)]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}). See more information in the [deployment]({{< relref "/operate/kubernetes/8.0.18/deployment/" >}}) section. +Before configuring a multi-namespace deployment, you must have a running [Redis Enterprise cluster (REC)](/content/operate/kubernetes/8.0.18/deployment/quick-start.md). See more information in the [deployment](/content/operate/kubernetes/8.0.18/deployment/_index.md) section. ## 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 `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/8.0.18/upgrade/upgrade-redis-cluster" >}}). {{}} +> [!NOTE] +> These will need to be reapplied each time you [upgrade](/content/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster.md). Replace `` with the namespace the REC resides in. Replace `` with your own value (defaults to the REC name). @@ -42,14 +42,13 @@ Replace `` with your own value (defaults to the REC name). {{}} -{{}} -**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. - -To use this approach: -1. Change `kind: Role` to `kind: ClusterRole` in the role definition above -2. Change `roleRef.kind: Role` to `roleRef.kind: ClusterRole` in the role binding definition above -3. Apply the ClusterRole once globally, then apply a RoleBinding in each managed namespace -{{}} +> [!NOTE] +> **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. +> +> To use this approach: +> 1. Change `kind: Role` to `kind: ClusterRole` in the role definition above +> 2. Change `roleRef.kind: Role` to `roleRef.kind: ClusterRole` in the role binding definition above +> 3. Apply the ClusterRole once globally, then apply a RoleBinding in each managed namespace Apply the files, replacing `` with your own values: @@ -58,9 +57,8 @@ kubectl apply -f consumer_role.yaml -n kubectl apply -f consumer_role_binding.yaml -n ``` -{{}} -If the REC is configured to watch a namespace without setting the role and role binding permissions, or a namespace that is not yet created, the operator will fail and halt normal operations. -{{}} +> [!NOTE] +> If the REC is configured to watch a namespace without setting the role and role binding permissions, or a namespace that is not yet created, the operator will fail and halt normal operations. ## Update Redis Enterprise operator ConfigMap @@ -71,9 +69,8 @@ There are two methods of updating the operator ConfigMap (`operator-environment- You can create this ConfigMap manually before deployment, or it will be created automatically after the operator was deployed. -{{}} -Only configure the operator to watch a namespace after the namespace is created and configured with the role/role_binding as explained above. If configured to watch a namespace without setting those permissions or a namespace that is not created yet, the operator will fail and not perform normal operations. -{{}} +> [!WARNING] +> Only configure the operator to watch a namespace after the namespace is created and configured with the role/role_binding as explained above. If configured to watch a namespace without setting those permissions or a namespace that is not created yet, the operator will fail and not perform normal operations. ### Method 1: Namespace label (available in versions 6.4.2-4 or later) @@ -110,9 +107,8 @@ Only configure the operator to watch a namespace after the namespace is created kubectl label namespace = ``` -{{}} -The operator restarts when it detects a namespace label was added or removed. -{{}} +> [!NOTE] +> The operator restarts when it detects a namespace label was added or removed. ### Method 2: Explicit namespace list @@ -132,13 +128,12 @@ You can also deploy `RedisEnterpriseActiveActiveDatabase` (REAADB) objects in co To do this: 1. Configure each participating cluster’s operator to watch the relevant consumer namespace. See [multi-namespace operator setup](#update-redis-enterprise-operator-configmap). -2. Ensure all Active-Active prerequisites are met as described in [Configure Active-Active]({{}}). +2. Ensure all Active-Active prerequisites are met as described in [Configure Active-Active](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md). 3. In your REAADB custom resource, specify the target consumer namespace using `metadata.namespace`. For each participating cluster, use the `namespace` field under `spec.participatingClusters` to indicate the namespace where the REAADB should be deployed. -4. If you are using a [global database secret]({{}}), deploy the secret in each consumer namespace. +4. If you are using a [global database secret](/content/operate/kubernetes/active-active/global-db-secret.md), deploy the secret in each consumer namespace. -{{}} -Apply the REAADB object to only one Kubernetes cluster. Based on the specified participating clusters and namespaces, the operator automatically creates the necessary resources in the other clusters. -{{}} +> [!NOTE] +> Apply the REAADB object to only one Kubernetes cluster. Based on the specified participating clusters and namespaces, the operator automatically creates the necessary resources in the other clusters. For example: @@ -157,6 +152,5 @@ spec: ``` -{{}} -Configure the operator to watch a namespace only after the namespace exists and the required `Role` and `RoleBinding` resources have been applied. If the operator is configured to watch a namespace that lacks these permissions or does not exist, it will fail and halt normal operations. -{{}} +> [!WARNING] +> Configure the operator to watch a namespace only after the namespace exists and the required `Role` and `RoleBinding` resources have been applied. If the operator is configured to watch a namespace that lacks these permissions or does not exist, it will fail and halt normal operations. diff --git a/content/operate/kubernetes/8.0.18/re-databases/_index.md b/content/operate/kubernetes/8.0.18/re-databases/_index.md index d86c62fd83..745127f694 100644 --- a/content/operate/kubernetes/8.0.18/re-databases/_index.md +++ b/content/operate/kubernetes/8.0.18/re-databases/_index.md @@ -20,38 +20,38 @@ REDB resources define database specifications including memory limits, persisten Create and manage Redis Enterprise databases on your cluster: -- [Database controller]({{< relref "/operate/kubernetes/8.0.18/re-databases/db-controller" >}}) - Understand how the database controller manages REDB resources and database lifecycle +- [Database controller](/content/operate/kubernetes/8.0.18/re-databases/db-controller.md) - Understand how the database controller manages REDB resources and database lifecycle ## Replication and high availability Set up database replication for high availability and disaster recovery: -- [Create replica databases]({{< relref "/operate/kubernetes/8.0.18/re-databases/replica-redb" >}}) - Configure replica databases for read scaling and disaster recovery scenarios +- [Create replica databases](/content/operate/kubernetes/8.0.18/re-databases/replica-redb.md) - Configure replica databases for read scaling and disaster recovery scenarios ## Advanced database configurations Explore advanced database features and configurations: -- [Active-Active databases]({{< relref "/operate/kubernetes/8.0.18/active-active" >}}) - Set up globally distributed Active-Active databases across multiple Kubernetes clusters +- [Active-Active databases](/content/operate/kubernetes/8.0.18/active-active/_index.md) - Set up globally distributed Active-Active databases across multiple Kubernetes clusters ## Database connectivity Connect applications to your Redis Enterprise databases: -- [Database connectivity]({{< relref "/operate/kubernetes/8.0.18/networking/database-connectivity" >}}) - Comprehensive guide to in-cluster and external database access, service discovery, and credentials management. -- [Networking]({{< relref "/operate/kubernetes/8.0.18/networking" >}}) - Configure ingress, routes, and service exposure for database access -- [Security]({{< relref "/operate/kubernetes/8.0.18/security" >}}) - Set up TLS, authentication, and access control for secure database connections +- [Database connectivity](/content/operate/kubernetes/8.0.18/networking/database-connectivity.md) - Comprehensive guide to in-cluster and external database access, service discovery, and credentials management. +- [Networking](/content/operate/kubernetes/8.0.18/networking/_index.md) - Configure ingress, routes, and service exposure for database access +- [Security](/content/operate/kubernetes/8.0.18/security/_index.md) - Set up TLS, authentication, and access control for secure database connections ## Monitoring and troubleshooting Monitor database performance and troubleshoot issues: -- [Logs]({{< relref "/operate/kubernetes/8.0.18/logs" >}}) - Collect and analyze database logs for troubleshooting -- [Connect to Prometheus operator]({{< relref "/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator" >}}) - Monitor database metrics with Prometheus +- [Logs](/content/operate/kubernetes/8.0.18/logs/_index.md) - Collect and analyze database logs for troubleshooting +- [Connect to Prometheus operator](/content/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator.md) - Monitor database metrics with Prometheus ## Related topics -- [Redis Enterprise clusters (REC)]({{< relref "/operate/kubernetes/8.0.18/re-clusters" >}}) - Manage the underlying cluster infrastructure -- [REDB API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}) - Complete API specification for REDB resources -- [Active-Active database API]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api" >}}) - API reference for Active-Active databases -- [Remote cluster API]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api" >}}) - API reference for remote cluster configurations +- [Redis Enterprise clusters (REC)](/content/operate/kubernetes/8.0.18/re-clusters/_index.md) - Manage the underlying cluster infrastructure +- [REDB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md) - Complete API specification for REDB resources +- [Active-Active database API](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md) - API reference for Active-Active databases +- [Remote cluster API](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md) - API reference for remote cluster configurations diff --git a/content/operate/kubernetes/8.0.18/re-databases/db-controller.md b/content/operate/kubernetes/8.0.18/re-databases/db-controller.md index a9eaf83058..3959f3b9fb 100644 --- a/content/operate/kubernetes/8.0.18/re-databases/db-controller.md +++ b/content/operate/kubernetes/8.0.18/re-databases/db-controller.md @@ -26,18 +26,17 @@ If valid, the controller combines the values specified in the custom resource with default values to create a full specification. It then uses this full specification to create the database on the specified Redis Enterprise cluster (REC). -{{< note >}} -The admission controller prevents duplicate database names when databases are created via the Kubernetes operator. -{{< /note >}} +> [!NOTE] +> The admission controller prevents duplicate database names when databases are created via the Kubernetes operator. Once the database is created, it is exposed with the same service mechanisms by the service rigger for the Redis Enterprise cluster. -If the database [custom resource is deleted]({{< relref "/operate/kubernetes/8.0.18/re-clusters/delete-custom-resources" >}}), the database and its services are deleted from the cluster. +If the database [custom resource is deleted](/content/operate/kubernetes/8.0.18/re-clusters/delete-custom-resources.md), the database and its services are deleted from the cluster. ### Flexible deployment options -Databases in multiple namespaces can be managed by the same operator. To learn more, see [Manage databases in multiple namespaces]({{}}). +Databases in multiple namespaces can be managed by the same operator. To learn more, see [Manage databases in multiple namespaces](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md). -To learn more about designing a multi-namespace Redis Enterprise cluster, see [flexible deployment options]({{< relref "/operate/kubernetes/8.0.18/architecture/deployment-options" >}}). +To learn more about designing a multi-namespace Redis Enterprise cluster, see [flexible deployment options](/content/operate/kubernetes/8.0.18/architecture/deployment-options.md). ## Create a database @@ -89,7 +88,7 @@ To modify the database: ``` 1. Change the specification (only properties in `spec` section) and save the changes. - For more details, see [RedisEnterpriseDatabaseSpec](https://github.com/RedisLabs/redis-enterprise-k8s-docs/blob/master/redis_enterprise_database_api.md#redisenterprisedatabasespec) or [Options for Redis Enterprise databases]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}). + For more details, see [RedisEnterpriseDatabaseSpec](https://github.com/RedisLabs/redis-enterprise-k8s-docs/blob/master/redis_enterprise_database_api.md#redisenterprisedatabasespec) or [Options for Redis Enterprise databases](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md). 1. Monitor the status to see when the changes take effect: @@ -122,4 +121,4 @@ For comprehensive information about connecting to your database, including: - In-cluster and external access methods - Connection examples and troubleshooting -See [Database connectivity]({{< relref "/operate/kubernetes/8.0.18/networking/database-connectivity" >}}). +See [Database connectivity](/content/operate/kubernetes/8.0.18/networking/database-connectivity.md). diff --git a/content/operate/kubernetes/8.0.18/re-databases/modules.md b/content/operate/kubernetes/8.0.18/re-databases/modules.md index 340876671d..e773d3654a 100644 --- a/content/operate/kubernetes/8.0.18/re-databases/modules.md +++ b/content/operate/kubernetes/8.0.18/re-databases/modules.md @@ -17,8 +17,8 @@ Redis Enterprise modules extend Redis functionality with additional data types, Before you begin, verify the following: -- [Redis Enterprise operator deployed]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}) in your Kubernetes cluster -- [Redis Enterprise cluster (REC)]({{< relref "/operate/kubernetes/8.0.18/re-clusters" >}}) running and in a healthy state +- [Redis Enterprise operator deployed](/content/operate/kubernetes/8.0.18/deployment/quick-start.md) in your Kubernetes cluster +- [Redis Enterprise cluster (REC)](/content/operate/kubernetes/8.0.18/re-clusters/_index.md) running and in a healthy state ## Bundled modules @@ -28,14 +28,13 @@ Redis Enterprise includes several bundled modules that extend Redis functionalit | Module | Name | Description | Capabilities | |--------|------|-------------|--------------| -| **[RediSearch]({{< relref "/develop/ai/search-and-query/" >}})** | `search` | Full-text search and secondary indexing | Query, aggregation, full-text search, vector similarity search | -| **[RedisJSON]({{< relref "/develop/data-types/json" >}})** | `ReJSON` | JSON data type support | Store, update, and query JSON documents | -| **[RedisTimeSeries]({{< relref "/develop/data-types/timeseries" >}})** | `timeseries` | Time series data structures | Ingest and query time series data with downsampling and aggregation | -| **[RedisBloom]({{< relref "/develop/data-types/probabilistic" >}})** | `bf` | Probabilistic data structures | Bloom filters, Cuckoo filters, Count-Min Sketch, Top-K | +| **[RediSearch](/content/develop/ai/search-and-query/_index.md)** | `search` | Full-text search and secondary indexing | Query, aggregation, full-text search, vector similarity search | +| **[RedisJSON](/content/develop/data-types/json/_index.md)** | `ReJSON` | JSON data type support | Store, update, and query JSON documents | +| **[RedisTimeSeries](/content/develop/data-types/timeseries/_index.md)** | `timeseries` | Time series data structures | Ingest and query time series data with downsampling and aggregation | +| **[RedisBloom](/content/develop/data-types/probabilistic/_index.md)** | `bf` | Probabilistic data structures | Bloom filters, Cuckoo filters, Count-Min Sketch, Top-K | -{{< note >}} -When configuring databases with modules, use the `NAME` field (for example, `search` or `ReJSON`) instead of the `DISPLAY_NAME` field. -{{< /note >}} +> [!NOTE] +> When configuring databases with modules, use the `NAME` field (for example, `search` or `ReJSON`) instead of the `DISPLAY_NAME` field. ### Automatic enablement in Redis 8 and later @@ -81,9 +80,8 @@ User-defined modules are custom Redis modules that extend Redis functionality be To use user-defined modules with your databases, first add them to the Redis Enterprise cluster (REC) custom resource. This enables the operator to validate the modules and make them available for database creation. -{{< warning >}} -Add user-defined modules to the REC **before** you create any databases that use them. The admission controller validates that modules exist in the REC before allowing REDB creation. -{{< /warning >}} +> [!WARNING] +> Add user-defined modules to the REC **before** you create any databases that use them. The admission controller validates that modules exist in the REC before allowing REDB creation. 1. Edit your REC custom resource: @@ -111,7 +109,7 @@ Add user-defined modules to the REC **before** you create any databases that use --from-literal=password= ``` -If you use [HashiCorp Vault integration]({{< relref "/operate/kubernetes/8.0.18/security/vault" >}}), store the module credentials in Vault instead of creating a Kubernetes secret. The `credentialsSecret` field will reference the secret name in Vault. +If you use [HashiCorp Vault integration](/content/operate/kubernetes/8.0.18/security/vault.md), store the module credentials in Vault instead of creating a Kubernetes secret. The `credentialsSecret` field will reference the secret name in Vault. ### Module naming requirements @@ -129,9 +127,8 @@ For example, if your module manifest contains the following: You can use either `"rg"` or `"RedisGears"` as the `name` value in your REC spec. -{{< note >}} -If the names don't match, the operator can't validate the module. This can lead to preventable errors during database creation or upgrades. -{{< /note >}} +> [!NOTE] +> If the names don't match, the operator can't validate the module. This can lead to preventable errors during database creation or upgrades. ### Edit user-defined modules @@ -150,13 +147,11 @@ To modify the user-defined modules list, complete the following steps: 1. Save your changes. The operator validates and applies the updates. -{{< warning >}} -Don't remove modules that are currently in use by any database. The operator rejects the change and puts the REC into an error state. -{{< /warning >}} +> [!WARNING] +> Don't remove modules that are currently in use by any database. The operator rejects the change and puts the REC into an error state. -{{< note >}} -Changes to the `userDefinedModules` list trigger a rolling restart of the Redis Enterprise cluster pods. Plan module updates during a maintenance window to minimize potential impact on your databases. -{{< /note >}} +> [!NOTE] +> Changes to the `userDefinedModules` list trigger a rolling restart of the Redis Enterprise cluster pods. Plan module updates during a maintenance window to minimize potential impact on your databases. ### Verify user-defined modules @@ -204,8 +199,8 @@ For databases using user-defined modules, you must take additional steps during For detailed upgrade instructions, see the following: -- [Upgrade a Redis Enterprise cluster (REC)]({{< relref "/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster" >}}) -- [Upgrade Redis Enterprise on OpenShift]({{< relref "/operate/kubernetes/8.0.18/upgrade/openshift-cli" >}}) +- [Upgrade a Redis Enterprise cluster (REC)](/content/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster.md) +- [Upgrade Redis Enterprise on OpenShift](/content/operate/kubernetes/8.0.18/upgrade/openshift-cli.md) ## Troubleshooting @@ -341,13 +336,13 @@ kubectl get rec -o jsonpath='{.spec.userDefinedModules}' | jq ## Related information -- [Redis modules documentation]({{< relref "/develop/reference/modules" >}}) - Official Redis modules documentation -- [REDB API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}) - Complete API specification for REDB resources -- [REAADB API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api" >}}) - API reference for Active-Active databases +- [Redis modules documentation](/content/develop/reference/modules/_index.md) - Official Redis modules documentation +- [REDB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md) - Complete API specification for REDB resources +- [REAADB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md) - API reference for Active-Active databases ### Redis Software documentation -- [Add modules to a cluster]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-cluster" >}}) - Install module packages on Redis Enterprise Software clusters -- [Enable modules for a database]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-database" >}}) - Add modules to databases in Redis Enterprise Software -- [Upgrade modules]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module" >}}) - Upgrade module versions in Redis Enterprise Software -- [Module lifecycle]({{< relref "/operate/oss_and_stack/stack-with-enterprise/modules-lifecycle" >}}) - Module versioning and end-of-life schedule +- [Add modules to a cluster](/content/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-cluster.md) - Install module packages on Redis Enterprise Software clusters +- [Enable modules for a database](/content/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-database.md) - Add modules to databases in Redis Enterprise Software +- [Upgrade modules](/content/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module.md) - Upgrade module versions in Redis Enterprise Software +- [Module lifecycle](/content/operate/oss_and_stack/stack-with-enterprise/modules-lifecycle.md) - Module versioning and end-of-life schedule diff --git a/content/operate/kubernetes/8.0.18/re-databases/replica-redb.md b/content/operate/kubernetes/8.0.18/re-databases/replica-redb.md index e489e5a871..4dc380b845 100644 --- a/content/operate/kubernetes/8.0.18/re-databases/replica-redb.md +++ b/content/operate/kubernetes/8.0.18/re-databases/replica-redb.md @@ -12,11 +12,10 @@ url: '/operate/kubernetes/8.0.18/re-databases/replica-redb/' --- You can configure a replica of a database by creating an item in -the [`replicaSources`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#specreplicasources" >}}) section of the RedisEnterpriseDatabase (REDB) custom resource. +the [`replicaSources`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#specreplicasources) section of the RedisEnterpriseDatabase (REDB) custom resource. -{{< note >}} -If the source cluster is reached through an ingress route (for example, an OpenShift route or any TLS pass-through that relies on SNI), set [`tlsSniName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#specreplicasources" >}}) on each `replicaSources` item to the SNI hostname configured on the ingress. Without it, the syncer cannot route TLS to the source database's proxy and replication fails. -{{< /note >}} +> [!NOTE] +> If the source cluster is reached through an ingress route (for example, an OpenShift route or any TLS pass-through that relies on SNI), set [`tlsSniName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#specreplicasources) on each `replicaSources` item to the SNI hostname configured on the ingress. Without it, the syncer cannot route TLS to the source database's proxy and replication fails. A secret must be created with the `stringData` section containing the replica source URI as follows: diff --git a/content/operate/kubernetes/8.0.18/recommendations/_index.md b/content/operate/kubernetes/8.0.18/recommendations/_index.md index 649dbcfb37..d44c125f38 100644 --- a/content/operate/kubernetes/8.0.18/recommendations/_index.md +++ b/content/operate/kubernetes/8.0.18/recommendations/_index.md @@ -18,16 +18,16 @@ Follow these best practices and configuration recommendations to optimize your R Configure your Kubernetes infrastructure for optimal Redis Enterprise performance: -- [Node resources]({{< relref "/operate/kubernetes/8.0.18/recommendations/node-resources" >}}) - CPU, memory, and resource allocation recommendations -- [Node selection]({{< relref "/operate/kubernetes/8.0.18/recommendations/node-selection" >}}) - Best practices for selecting and configuring Kubernetes nodes -- [Persistent volumes]({{< relref "/operate/kubernetes/8.0.18/recommendations/persistent-volumes" >}}) - Storage configuration and persistent volume recommendations +- [Node resources](/content/operate/kubernetes/8.0.18/recommendations/node-resources.md) - CPU, memory, and resource allocation recommendations +- [Node selection](/content/operate/kubernetes/8.0.18/recommendations/node-selection.md) - Best practices for selecting and configuring Kubernetes nodes +- [Persistent volumes](/content/operate/kubernetes/8.0.18/recommendations/persistent-volumes.md) - Storage configuration and persistent volume recommendations ## Deployment recommendations Optimize your Redis Enterprise deployment configuration: -- [Sizing on Kubernetes]({{< relref "/operate/kubernetes/8.0.18/recommendations/sizing-on-kubernetes" >}}) - Guidelines for sizing clusters and databases -- [Pod stability]({{< relref "/operate/kubernetes/8.0.18/recommendations/pod-stability" >}}) - Ensure stable pod operations and prevent disruptions +- [Sizing on Kubernetes](/content/operate/kubernetes/8.0.18/recommendations/sizing-on-kubernetes.md) - Guidelines for sizing clusters and databases +- [Pod stability](/content/operate/kubernetes/8.0.18/recommendations/pod-stability.md) - Ensure stable pod operations and prevent disruptions ## Performance optimization diff --git a/content/operate/kubernetes/8.0.18/recommendations/node-selection.md b/content/operate/kubernetes/8.0.18/recommendations/node-selection.md index 58e3d67d1f..945c455506 100644 --- a/content/operate/kubernetes/8.0.18/recommendations/node-selection.md +++ b/content/operate/kubernetes/8.0.18/recommendations/node-selection.md @@ -20,7 +20,7 @@ Use these options to control pod placement: ## Use node selectors -The [`nodeSelector`]({{}}) field matches the Kubernetes [`nodeSelector`](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector) syntax. +The [`nodeSelector`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#spec) field matches the Kubernetes [`nodeSelector`](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector) syntax. Label the nodes you want to target. For example, if nodes 'n1' and 'n2' are labeled with `memory=high`: ```sh @@ -41,13 +41,13 @@ spec: memory: high ``` -The operator copies [`nodeSelector`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#spec" >}}) into the pod spec. The scheduler places pods only on nodes that match the selector. +The operator copies [`nodeSelector`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#spec) into the pod spec. The scheduler places pods only on nodes that match the selector. ## Use node pools Node pools group similar nodes. Providers label nodes by pool. -Use [`nodeSelector`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#spec" >}}) to target a pool by label. For example, on GKE: +Use [`nodeSelector`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#spec) to target a pool by label. For example, on GKE: ```yaml apiVersion: app.redislabs.com/v1 @@ -77,7 +77,7 @@ Cloud providers label nodes by pool. See links below for specific documentation. ## Use node taints -Use node taints and pod tolerations to control REC pod scheduling. Set tolerations with [`spec.podTolerations`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#specpodtolerations" >}}) (standard [Kubernetes tolerations](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/#concepts)). +Use node taints and pod tolerations to control REC pod scheduling. Set tolerations with [`spec.podTolerations`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specpodtolerations) (standard [Kubernetes tolerations](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/#concepts)). Example: on a single node pool, reserve nodes n1–n3 for REC by adding taints: @@ -171,9 +171,10 @@ Kubernetes will not schedule two pods with label `local/role: database` on the s Enable rack-zone awareness to improve availability during rack or zone failures. -{{%note%}}When creating your rack-zone ID, there are some constraints to consider; see [rack-zone awareness]({{< relref "/operate/rs/clusters/configure/rack-zone-awareness#rack-zone-id-rules" >}}) for more info. {{%/note%}} +> [!NOTE] +> When creating your rack-zone ID, there are some constraints to consider; see [rack-zone awareness](/content/operate/rs/clusters/configure/rack-zone-awareness.md#rack-zone-id-rules) for more info. -Configure it with [`spec.rackAwarenessNodeLabel`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#spec" >}}) in the REC. +Configure it with [`spec.rackAwarenessNodeLabel`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#spec) in the REC. ### Choose a node label @@ -183,11 +184,10 @@ If your platform doesn’t set this label automatically, you can use any custom ### Label all eligible nodes -{{< warning >}} -All eligible nodes **must** have the label for rack awareness to work. The operator requires every node that might run Redis Enterprise pods to be labeled. If any nodes are missing the label, reconciliation fails. -{{< /warning >}} +> [!WARNING] +> All eligible nodes **must** have the label for rack awareness to work. The operator requires every node that might run Redis Enterprise pods to be labeled. If any nodes are missing the label, reconciliation fails. -Eligible nodes are nodes where REC pods can run. By default, this means all worker nodes. You can limit eligibility with [`spec.nodeSelector`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#spec" >}}). +Eligible nodes are nodes where REC pods can run. By default, this means all worker nodes. You can limit eligibility with [`spec.nodeSelector`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#spec). Give each eligible node a label value that reflects its rack, zone, or region. @@ -226,21 +226,19 @@ After you apply the role and binding, you can configure rack awareness. ### Configure rack awareness -Set [`spec.rackAwarenessNodeLabel`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#spec" >}}) to the node label to use: +Set [`spec.rackAwarenessNodeLabel`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#spec) to the node label to use: {{}} -{{< note >}} -When you set [`spec.rackAwarenessNodeLabel`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#spec" >}}), the operator sets the anti-affinity `topologyKey` to that label unless you define [`spec.podAntiAffinity`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#specpodantiaffinity" >}}). If you define both, make sure `topologyKey` matches your node label. -{{< /note >}} +> [!NOTE] +> When you set [`spec.rackAwarenessNodeLabel`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#spec), the operator sets the anti-affinity `topologyKey` to that label unless you define [`spec.podAntiAffinity`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specpodantiaffinity). If you define both, make sure `topologyKey` matches your node label. ### Rack awareness limitations -{{< warning >}} -**Pod restart distribution maintenance**: When rack awareness is enabled, node pods and shards are initially deployed based on rack constraints to ensure proper distribution across zones. However, Redis Enterprise does not automatically maintain this distribution when node pods are restarted. - -After pod restarts, the rack awareness policy may be violated, requiring manual intervention to restore proper shard distribution. While Redis Enterprise provides tools to identify shards that need to be moved to restore correct rack distribution, it does not provide automated orchestration to perform these moves. -{{< /warning >}} +> [!WARNING] +> **Pod restart distribution maintenance**: When rack awareness is enabled, node pods and shards are initially deployed based on rack constraints to ensure proper distribution across zones. However, Redis Enterprise does not automatically maintain this distribution when node pods are restarted. +> +> After pod restarts, the rack awareness policy may be violated, requiring manual intervention to restore proper shard distribution. While Redis Enterprise provides tools to identify shards that need to be moved to restore correct rack distribution, it does not provide automated orchestration to perform these moves. **Important considerations for production deployments:** diff --git a/content/operate/kubernetes/8.0.18/recommendations/persistent-volumes.md b/content/operate/kubernetes/8.0.18/recommendations/persistent-volumes.md index cf9c8ccca9..1b47faab18 100644 --- a/content/operate/kubernetes/8.0.18/recommendations/persistent-volumes.md +++ b/content/operate/kubernetes/8.0.18/recommendations/persistent-volumes.md @@ -15,9 +15,8 @@ url: '/operate/kubernetes/8.0.18/recommendations/persistent-volumes/' Redis Enterprise for Kubernetes can only use storage classes supported by block storage. Block storage is mounted at the Kubernetes node level and utilizes EXT4 or XFS file systems. It can be sourced from enterprise-grade SANs or cloud environments such as EBS, Azure Managed Disks, or GCP persistent disks. -{{}} -NFS, NFS-like, and multi-read-write/shared storage options are not supported. These types of storage are often slow and can cause locking behaviors that are incompatible with the requirements of database storage. -{{}} +> [!WARNING] +> NFS, NFS-like, and multi-read-write/shared storage options are not supported. These types of storage are often slow and can cause locking behaviors that are incompatible with the requirements of database storage. ## REC `persistentSpec` field To deploy a Redis Enterprise cluster with Redis Enterprise operator the @@ -33,11 +32,10 @@ spec should include a *persistentSpec* section, in the Persistence storage is a requirement for production deployments. -{{< note >}} -For **production deployments** of Redis Enterprise Cluster on Kubernetes, -the Redis Enterprise Cluster (REC) must be deployed with persistence enabled. -The REC deployment files in the [Kubernetes documentation](https://github.com/RedisLabs/redis-enterprise-k8s-docs) contain this declaration by default. -{{< /note >}} +> [!NOTE] +> For **production deployments** of Redis Enterprise Cluster on Kubernetes, +> the Redis Enterprise Cluster (REC) must be deployed with persistence enabled. +> The REC deployment files in the [Kubernetes documentation](https://github.com/RedisLabs/redis-enterprise-k8s-docs) contain this declaration by default. ## Volume size @@ -45,17 +43,16 @@ The REC deployment files in the [Kubernetes documentation](https://github.com/Re omitted, operator allocates five times (5x) the amount of memory (RAM) defined for nodes (see example below), which is the recommended persistent storage size as described in the [Hardware -requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}) article. +requirements](/content/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md) article. To explicitly specify the persistent storage size, use the *volumeSize* property as described in the example above. -Persistent volume claims can be expanded, but not reduced after creation. See [Expand PersistentVolumeClaim (PVC)]({{}}) for details. +Persistent volume claims can be expanded, but not reduced after creation. See [Expand PersistentVolumeClaim (PVC)](/content/operate/kubernetes/8.0.18/re-clusters/expand-pvc.md) for details. -{{< note >}} -We recommend that you omit the volumeSize definition from the REC declaration -so that the Redis Enterprise Cluster deployment on Kubernetes use the default volume size. -{{< /note >}} +> [!NOTE] +> We recommend that you omit the volumeSize definition from the REC declaration +> so that the Redis Enterprise Cluster deployment on Kubernetes use the default volume size. ## Storage class name @@ -89,13 +86,11 @@ Below is an example of a response to the command. | *VolumeBindingMode:* | *Immediate* | | *Events:* | *\* | -{{< note >}} -storageClassName must be specified for this deployment type. -{{< /note >}} +> [!NOTE] +> storageClassName must be specified for this deployment type. -{{< warning >}} -The storage class cannot be changed after deployment. Trying to change this value after deployment could result in unexpected and potentially damaging behavior. -{{< /warning >}} +> [!WARNING] +> The storage class cannot be changed after deployment. Trying to change this value after deployment could result in unexpected and potentially damaging behavior. Example of the redisEnterpriseNodeResources definition: diff --git a/content/operate/kubernetes/8.0.18/recommendations/sizing-on-kubernetes.md b/content/operate/kubernetes/8.0.18/recommendations/sizing-on-kubernetes.md index d59df5b184..a2b1c3d578 100644 --- a/content/operate/kubernetes/8.0.18/recommendations/sizing-on-kubernetes.md +++ b/content/operate/kubernetes/8.0.18/recommendations/sizing-on-kubernetes.md @@ -15,7 +15,7 @@ The following article reviews the mechanism and methods available for sizing and scaling a Redis Enterprise cluster deployment. For minimum and recommended sizing, always follow the sizing guidelines -detailed in the [Redis Enterprise hardware requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). +detailed in the [Redis Enterprise hardware requirements](/content/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md). ## Sizing and scaling cluster nodes @@ -51,7 +51,8 @@ To apply the new cluster configuration run: kubectl apply -f redis-enterprise-cluster.yaml -{{}} Decreasing the number of nodes is not supported.{{}} +> [!WARNING] +> Decreasing the number of nodes is not supported. ### Sizing compute resources @@ -113,9 +114,8 @@ Then, apply the file by running: kubectl apply -f redis-enterprise-cluster.yaml -{{< warning >}} -When adjusting compute resources, make sure the ratio of persistent volume size and the new memory size are in accordance to the [Hardware -requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). - -Persistent volume claims can be expanded, but not reduced after creation. See [Expand PersistentVolumeClaim (PVC)]({{}}) for details. -{{< /warning >}} +> [!WARNING] +> When adjusting compute resources, make sure the ratio of persistent volume size and the new memory size are in accordance to the [Hardware +> requirements](/content/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md). +> +> Persistent volume claims can be expanded, but not reduced after creation. See [Expand PersistentVolumeClaim (PVC)](/content/operate/kubernetes/8.0.18/re-clusters/expand-pvc.md) for details. diff --git a/content/operate/kubernetes/8.0.18/reference/_index.md b/content/operate/kubernetes/8.0.18/reference/_index.md index e5653af093..2b7d19d9e0 100644 --- a/content/operate/kubernetes/8.0.18/reference/_index.md +++ b/content/operate/kubernetes/8.0.18/reference/_index.md @@ -66,14 +66,14 @@ kubectl edit redb my-database Find complete YAML examples for common deployment scenarios: -- [YAML examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml" >}}) - Ready-to-use YAML configurations for different deployment types +- [YAML examples](/content/operate/kubernetes/8.0.18/reference/yaml/_index.md) - Ready-to-use YAML configurations for different deployment types ### Example categories -- [Basic deployment]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/basic-deployment" >}}) - Essential YAML files for simple Redis Enterprise deployment -- [Rack awareness]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/rack-awareness" >}}) - YAML examples for rack-aware deployments across availability zones -- [Active-Active]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/active-active" >}}) - YAML examples for Active-Active databases across multiple clusters -- [Multi-namespace]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/multi-namespace" >}}) - YAML examples for deploying across multiple namespaces +- [Basic deployment](/content/operate/kubernetes/8.0.18/reference/yaml/basic-deployment.md) - Essential YAML files for simple Redis Enterprise deployment +- [Rack awareness](/content/operate/kubernetes/8.0.18/reference/yaml/rack-awareness.md) - YAML examples for rack-aware deployments across availability zones +- [Active-Active](/content/operate/kubernetes/8.0.18/reference/yaml/active-active.md) - YAML examples for Active-Active databases across multiple clusters +- [Multi-namespace](/content/operate/kubernetes/8.0.18/reference/yaml/multi-namespace.md) - YAML examples for deploying across multiple namespaces ## API reference @@ -81,19 +81,19 @@ Review complete API specifications for all Redis Enterprise custom resources: ### Core resources -- [Redis Enterprise cluster API (REC)]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) - Manage Redis Enterprise clusters -- [Redis Enterprise database API (REDB)]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}) - Manage Redis databases +- [Redis Enterprise cluster API (REC)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) - Manage Redis Enterprise clusters +- [Redis Enterprise database API (REDB)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md) - Manage Redis databases ### Active-Active resources -- [Active-Active database API (REAADB)]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api" >}}) - Manage Active-Active databases -- [Remote cluster API (RERC)]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api" >}}) - Configure remote cluster connections +- [Active-Active database API (REAADB)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md) - Manage Active-Active databases +- [Remote cluster API (RERC)](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md) - Configure remote cluster connections ## Compatibility Check supported Kubernetes distributions and versions: -- [Supported Kubernetes distributions]({{< relref "/operate/kubernetes/8.0.18/reference/supported_k8s_distributions" >}}) - Compatible Kubernetes platforms and versions +- [Supported Kubernetes distributions](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md) - Compatible Kubernetes platforms and versions ## Best practices diff --git a/content/operate/kubernetes/8.0.18/reference/api/_index.md b/content/operate/kubernetes/8.0.18/reference/api/_index.md index d63af04458..21f791e994 100644 --- a/content/operate/kubernetes/8.0.18/reference/api/_index.md +++ b/content/operate/kubernetes/8.0.18/reference/api/_index.md @@ -54,4 +54,4 @@ kubectl apply -f my-redis-config.yaml - Create `RedisEnterpriseDatabase` (REDB) resources within a cluster to provision individual databases - Use `RedisEnterpriseActiveActiveDatabase` (REAADB) with `RedisEnterpriseRemoteCluster (RERC)` resources to define participating clusters -For complete YAML configuration examples, see the [YAML examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/" >}}) section. +For complete YAML configuration examples, see the [YAML examples](/content/operate/kubernetes/8.0.18/reference/yaml/_index.md) section. diff --git a/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md b/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md index 358f3b8cdc..c6ca51cd66 100644 --- a/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md +++ b/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md @@ -59,7 +59,8 @@ The following tables list the Kubernetes distributions that Redis Enterprise for ❌ End of life – No longer tested. -{{}}Each platform is tested with its default configuration, including storage, network, security, and container runtime components.{{}} +> [!NOTE] +> Each platform is tested with its default configuration, including storage, network, security, and container runtime components. ## OpenShift Container Platform diff --git a/content/operate/kubernetes/8.0.18/reference/yaml/_index.md b/content/operate/kubernetes/8.0.18/reference/yaml/_index.md index 1fd79afd88..03565864d5 100644 --- a/content/operate/kubernetes/8.0.18/reference/yaml/_index.md +++ b/content/operate/kubernetes/8.0.18/reference/yaml/_index.md @@ -69,11 +69,11 @@ kubectl get events --sort-by=.metadata.creationTimestamp ## Example categories -- [Basic deployment examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/basic-deployment" >}}) - Service account, RBAC, cluster, and database configurations -- [Rack awareness examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/rack-awareness" >}}) - Rack-aware cluster configuration and required RBAC -- [Active-Active examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/active-active" >}}) - Multi-cluster Active-Active database setup -- [Multi-namespace examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/multi-namespace" >}}) - Cross-namespace operator and cluster configurations -- [Log collector RBAC examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/log-collector-rbac" >}}) - RBAC permissions for log collection in restricted and all modes +- [Basic deployment examples](/content/operate/kubernetes/8.0.18/reference/yaml/basic-deployment.md) - Service account, RBAC, cluster, and database configurations +- [Rack awareness examples](/content/operate/kubernetes/8.0.18/reference/yaml/rack-awareness.md) - Rack-aware cluster configuration and required RBAC +- [Active-Active examples](/content/operate/kubernetes/8.0.18/reference/yaml/active-active.md) - Multi-cluster Active-Active database setup +- [Multi-namespace examples](/content/operate/kubernetes/8.0.18/reference/yaml/multi-namespace.md) - Cross-namespace operator and cluster configurations +- [Log collector RBAC examples](/content/operate/kubernetes/8.0.18/reference/yaml/log-collector-rbac.md) - RBAC permissions for log collection in restricted and all modes ## Best practices @@ -83,7 +83,7 @@ kubectl get events --sort-by=.metadata.creationTimestamp ## Related documentation -- [Reference]({{< relref "/operate/kubernetes/8.0.18/reference" >}}) - Complete API specifications for all custom resources -- [Deploy Redis Enterprise Software for Kubernetes]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}) - Step-by-step deployment instructions -- [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace" >}}) - Detailed multi-namespace setup instructions -- [Active-Active databases]({{< relref "/operate/kubernetes/8.0.18/active-active" >}}) - Active-Active configuration and management +- [Reference](/content/operate/kubernetes/8.0.18/reference/_index.md) - Complete API specifications for all custom resources +- [Deploy Redis Enterprise Software for Kubernetes](/content/operate/kubernetes/8.0.18/deployment/quick-start.md) - Step-by-step deployment instructions +- [Manage databases in multiple namespaces](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md) - Detailed multi-namespace setup instructions +- [Active-Active databases](/content/operate/kubernetes/8.0.18/active-active/_index.md) - Active-Active configuration and management diff --git a/content/operate/kubernetes/8.0.18/reference/yaml/active-active.md b/content/operate/kubernetes/8.0.18/reference/yaml/active-active.md index 0e1100b493..f3f50fee18 100644 --- a/content/operate/kubernetes/8.0.18/reference/yaml/active-active.md +++ b/content/operate/kubernetes/8.0.18/reference/yaml/active-active.md @@ -13,21 +13,21 @@ url: '/operate/kubernetes/8.0.18/reference/yaml/active-active/' 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. -For complete deployment instructions, see [Active-Active databases]({{< relref "/operate/kubernetes/8.0.18/active-active" >}}). +For complete deployment instructions, see [Active-Active databases](/content/operate/kubernetes/8.0.18/active-active/_index.md). ## Applying the configuration -To deploy Active-Active databases using these YAML files, follow [Create Active-Active database (REAADB)]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb" >}}), which provides detailed instructions for preparing clusters, creating RERC resources, and deploying REAADB configurations. +To deploy Active-Active databases using these YAML files, follow [Create Active-Active database (REAADB)](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md), which provides detailed instructions for preparing clusters, creating RERC resources, and deploying REAADB configurations. ## 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/8.0.18/active-active/create-reaadb#example-values" >}}). +`ns-illinois.yaml` is used in [Create Active-Active database](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md#example-values). {{}} -`ns-virginia.yaml` is used in [Create Active-Active database]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb#example-values" >}}). +`ns-virginia.yaml` is used in [Create Active-Active database](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md#example-values). {{}} @@ -35,11 +35,11 @@ A namespace is an abstraction used by Kubernetes to support multiple virtual clu 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/8.0.18/active-active/create-reaadb#prerequisites" >}}) and [Create RERC]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb#create-rerc" >}}). +`rec-chicago.yaml` is used in [Create Active-Active database](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md#prerequisites) and [Create RERC](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md#create-rerc). {{}} -`rec-arlington.yaml` is used in [Create Active-Active database]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb#prerequisites" >}}) and [Create RERC]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb#create-rerc" >}}). +`rec-arlington.yaml` is used in [Create Active-Active database](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md#prerequisites) and [Create RERC](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md#create-rerc). {{}} @@ -47,22 +47,22 @@ A Redis Enterprise cluster is a collection of Redis Enterprise nodes that pools RedisEnterpriseRemoteCluster represents a remote participating cluster. -`rerc-ohare.yaml` is used in the [Create RERC]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb#create-rerc" >}}) section. +`rerc-ohare.yaml` is used in the [Create RERC](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md#create-rerc) section. {{}} -`rerc-raegan.yaml` is used in the [Create RERC]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb#create-rerc" >}}) section. +`rerc-raegan.yaml` is used in the [Create RERC](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md#create-rerc) section. {{}} ### RERC configuration -- [metadata.name]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api#appredislabscomv1alpha1" >}}): Unique name for this remote cluster reference -- [spec.recName]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api#spec" >}}): Name of the remote REC -- [spec.recNamespace]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api#spec" >}}): Namespace of the remote REC -- [spec.apiFqdnUrl]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api#spec" >}}): API endpoint URL for the remote cluster -- [spec.dbFqdnSuffix]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api#spec" >}}): Database hostname suffix for the remote cluster -- [spec.secretName]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api#spec" >}}): Secret containing authentication credentials +- [metadata.name](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md#appredislabscomv1alpha1): Unique name for this remote cluster reference +- [spec.recName](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md#spec): Name of the remote REC +- [spec.recNamespace](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md#spec): Namespace of the remote REC +- [spec.apiFqdnUrl](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md#spec): API endpoint URL for the remote cluster +- [spec.dbFqdnSuffix](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md#spec): Database hostname suffix for the remote cluster +- [spec.secretName](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md#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. @@ -70,25 +70,25 @@ Edit the values in the downloaded YAML file for your specific setup, updating th 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 the [Create Active-Active database]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb#create-reaadb" >}}) section. +`reaadb-boeing.yaml` is used in the [Create Active-Active database](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md#create-reaadb) section. {{}} ### REAADB configuration -- [metadata.name]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api#appredislabscomv1alpha1" >}}): Active-Active database name -- [spec.participatingClusters]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api#specparticipatingclusters" >}}): List of RERC names that participate in this database -- [spec.globalConfigurations]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api#specglobalconfigurations" >}}): Database settings applied to all participating clusters +- [metadata.name](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md#appredislabscomv1alpha1): Active-Active database name +- [spec.participatingClusters](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md#specparticipatingclusters): List of RERC names that participate in this database +- [spec.globalConfigurations](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md#specglobalconfigurations): 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. ## Related documentation -- [Active-Active databases (index)]({{< relref "/operate/kubernetes/8.0.18/active-active" >}}) -- [Prepare participating clusters]({{< relref "/operate/kubernetes/8.0.18/active-active/prepare-clusters" >}}) -- [Create Active-Active database (REAADB)]({{< relref "/operate/kubernetes/8.0.18/active-active/create-reaadb" >}}) -- [Edit global configuration]({{< relref "/operate/kubernetes/8.0.18/active-active/global-config" >}}) -- [Sync global database secret]({{< relref "/operate/kubernetes/8.0.18/active-active/global-db-secret" >}}) -- [RERC API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api" >}}) -- [REAADB API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api" >}}) -- [Networking configuration]({{< relref "/operate/kubernetes/8.0.18/networking" >}}) +- [Active-Active databases (index)](/content/operate/kubernetes/8.0.18/active-active/_index.md) +- [Prepare participating clusters](/content/operate/kubernetes/8.0.18/active-active/prepare-clusters.md) +- [Create Active-Active database (REAADB)](/content/operate/kubernetes/8.0.18/active-active/create-reaadb.md) +- [Edit global configuration](/content/operate/kubernetes/8.0.18/active-active/global-config.md) +- [Sync global database secret](/content/operate/kubernetes/8.0.18/active-active/global-db-secret.md) +- [RERC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md) +- [REAADB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md) +- [Networking configuration](/content/operate/kubernetes/8.0.18/networking/_index.md) diff --git a/content/operate/kubernetes/8.0.18/reference/yaml/basic-deployment.md b/content/operate/kubernetes/8.0.18/reference/yaml/basic-deployment.md index af338c298c..a0c740ae51 100644 --- a/content/operate/kubernetes/8.0.18/reference/yaml/basic-deployment.md +++ b/content/operate/kubernetes/8.0.18/reference/yaml/basic-deployment.md @@ -13,7 +13,7 @@ url: '/operate/kubernetes/8.0.18/reference/yaml/basic-deployment/' This page provides complete YAML examples for a basic Redis Enterprise deployment on Kubernetes. These examples include all the essential components you need to deploy a Redis Enterprise cluster and create a database. -For complete deployment instructions, see [Deploy on Kubernetes]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}). +For complete deployment instructions, see [Deploy on Kubernetes](/content/operate/kubernetes/8.0.18/deployment/quick-start.md). ## Service account @@ -84,10 +84,10 @@ Edit the values in the downloaded YAML file based on your requirements, such as ## Apply the configuration -To deploy these YAML files, follow [Deploy on Kubernetes]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}), which provides step-by-step instructions for creating namespaces, deploying the operator, and applying these configuration files. +To deploy these YAML files, follow [Deploy on Kubernetes](/content/operate/kubernetes/8.0.18/deployment/quick-start.md), which provides step-by-step instructions for creating namespaces, deploying the operator, and applying these configuration files. ## Related documentation -- [Deploy on Kubernetes]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}) -- [REC API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) -- [REDB API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}) +- [Deploy on Kubernetes](/content/operate/kubernetes/8.0.18/deployment/quick-start.md) +- [REC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) +- [REDB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md) diff --git a/content/operate/kubernetes/8.0.18/reference/yaml/log-collector-rbac.md b/content/operate/kubernetes/8.0.18/reference/yaml/log-collector-rbac.md index d31b4125a4..dd171b9c04 100644 --- a/content/operate/kubernetes/8.0.18/reference/yaml/log-collector-rbac.md +++ b/content/operate/kubernetes/8.0.18/reference/yaml/log-collector-rbac.md @@ -13,11 +13,11 @@ url: '/operate/kubernetes/8.0.18/reference/yaml/log-collector-rbac/' This page provides YAML examples for configuring RBAC permissions for the Redis Enterprise log collector tool. The log collector requires different permission levels depending on the collection mode you choose. -For complete log collection instructions, see [Collect logs]({{< relref "/operate/kubernetes/8.0.18/logs/collect-logs" >}}). +For complete log collection instructions, see [Collect logs](/content/operate/kubernetes/8.0.18/logs/collect-logs.md). ## Prerequisites -- Install the [Redis Enterprise operator]({{< relref "/operate/kubernetes/8.0.18/deployment" >}}) +- Install the [Redis Enterprise operator](/content/operate/kubernetes/8.0.18/deployment/_index.md) - Appropriate permissions to create RBAC resources in target namespaces - Understanding of your deployment model (single namespace, multi-namespace, etc.) @@ -144,12 +144,12 @@ If your security policies prohibit secrets access, you can remove the secrets pe ## Next steps -- [Collect logs guide]({{< relref "/operate/kubernetes/8.0.18/logs/collect-logs" >}}) -- [Basic deployment examples]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/basic-deployment" >}}) -- [Multi-namespace deployment]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/multi-namespace" >}}) +- [Collect logs guide](/content/operate/kubernetes/8.0.18/logs/collect-logs.md) +- [Basic deployment examples](/content/operate/kubernetes/8.0.18/reference/yaml/basic-deployment.md) +- [Multi-namespace deployment](/content/operate/kubernetes/8.0.18/reference/yaml/multi-namespace.md) ## Related documentation - [Kubernetes RBAC documentation](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) -- [Redis Enterprise troubleshooting]({{< relref "/operate/kubernetes/8.0.18/logs" >}}) -- [Operator deployment guide]({{< relref "/operate/kubernetes/8.0.18/deployment" >}}) +- [Redis Enterprise troubleshooting](/content/operate/kubernetes/8.0.18/logs/_index.md) +- [Operator deployment guide](/content/operate/kubernetes/8.0.18/deployment/_index.md) diff --git a/content/operate/kubernetes/8.0.18/reference/yaml/multi-namespace.md b/content/operate/kubernetes/8.0.18/reference/yaml/multi-namespace.md index 1ea3b9b13c..a133b692df 100644 --- a/content/operate/kubernetes/8.0.18/reference/yaml/multi-namespace.md +++ b/content/operate/kubernetes/8.0.18/reference/yaml/multi-namespace.md @@ -23,7 +23,7 @@ This example shows: - Operator namespace: `redis-enterprise-operator` (where the operator and REC run) - Consumer namespaces: `app-production`, `app-staging` (where REDB resources are created) -For complete deployment instructions, see [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace" >}}). +For complete deployment instructions, see [Manage databases in multiple namespaces](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md). ## Operator service account @@ -57,12 +57,12 @@ Consumer namespace configuration: ## Next steps -- [Configure networking across namespaces]({{< relref "/operate/kubernetes/8.0.18/networking" >}}) -- [Set up monitoring for multi-namespace deployment]({{< relref "/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator" >}}) -- [Learn about resource management]({{< relref "/operate/kubernetes/8.0.18/recommendations" >}}) +- [Configure networking across namespaces](/content/operate/kubernetes/8.0.18/networking/_index.md) +- [Set up monitoring for multi-namespace deployment](/content/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator.md) +- [Learn about resource management](/content/operate/kubernetes/8.0.18/recommendations/_index.md) ## Related documentation -- [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace" >}}) -- [RBAC configuration]({{< relref "/operate/kubernetes/8.0.18/security" >}}) +- [Manage databases in multiple namespaces](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md) +- [RBAC configuration](/content/operate/kubernetes/8.0.18/security/_index.md) - [Kubernetes namespaces](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) diff --git a/content/operate/kubernetes/8.0.18/reference/yaml/rack-awareness.md b/content/operate/kubernetes/8.0.18/reference/yaml/rack-awareness.md index 4c809bb8a6..bab4312338 100644 --- a/content/operate/kubernetes/8.0.18/reference/yaml/rack-awareness.md +++ b/content/operate/kubernetes/8.0.18/reference/yaml/rack-awareness.md @@ -11,20 +11,20 @@ weight: 20 url: '/operate/kubernetes/8.0.18/reference/yaml/rack-awareness/' --- -This page provides YAML examples for deploying Redis Enterprise with [rack awareness]({{< relref "/operate/kubernetes/8.0.18/recommendations/node-selection#using-rack-awareness" >}}). Rack awareness distributes Redis Enterprise nodes and database shards across different availability zones or failure domains to improve high availability and fault tolerance. +This page provides YAML examples for deploying Redis Enterprise with [rack awareness](/content/operate/kubernetes/8.0.18/recommendations/node-selection.md#using-rack-awareness). Rack awareness distributes Redis Enterprise nodes and database shards across different availability zones or failure domains to improve high availability and fault tolerance. ## Prerequisites - Label [Kubernetes nodes](https://kubernetes.io/docs/concepts/architecture/nodes/) with zone information - Typically uses the standard label `topology.kubernetes.io/zone` - Verify node labels: `kubectl get nodes -o custom-columns="name:metadata.name","rack\\zone:metadata.labels.topology\.kubernetes\.io/zone"` -- Install the [Redis Enterprise operator]({{< relref "/operate/kubernetes/8.0.18/deployment" >}}) +- Install the [Redis Enterprise operator](/content/operate/kubernetes/8.0.18/deployment/_index.md) -For complete deployment instructions, see [Deploy on Kubernetes]({{< relref "/operate/kubernetes/8.0.18/deployment" >}}). +For complete deployment instructions, see [Deploy on Kubernetes](/content/operate/kubernetes/8.0.18/deployment/_index.md). ## Service account -The service account for rack-aware deployments is the same as [basic deployments]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/basic-deployment#service-account" >}}). +The service account for rack-aware deployments is the same as [basic deployments](/content/operate/kubernetes/8.0.18/reference/yaml/basic-deployment.md#service-account). {{}} @@ -59,7 +59,7 @@ Cluster role binding configuration: ## Rack-aware Redis Enterprise cluster -The rack-aware [REC configuration]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) includes the `rackAwarenessNodeLabel` field. +The rack-aware [REC configuration](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) includes the `rackAwarenessNodeLabel` field. {{}} @@ -87,7 +87,7 @@ kubectl get nodes -o custom-columns="name:metadata.name","rack\\zone:metadata.la ## Redis Enterprise database -Database configuration for rack-aware clusters is the same as [basic deployments]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/basic-deployment#redis-enterprise-database" >}}). +Database configuration for rack-aware clusters is the same as [basic deployments](/content/operate/kubernetes/8.0.18/reference/yaml/basic-deployment.md#redis-enterprise-database). **Important**: For rack awareness to be effective, ensure your database has replication enabled. Rack awareness distributes primary and replica shards across zones, so databases without replication will not benefit from zone distribution. @@ -95,7 +95,7 @@ Database configuration for rack-aware clusters is the same as [basic deployments ## Apply the configuration -To deploy rack-aware Redis Enterprise clusters, follow [Deploy on Kubernetes]({{< relref "/operate/kubernetes/8.0.18/deployment" >}}) and ensure your Kubernetes nodes have proper zone labels. For detailed rack awareness configuration, see the [node selection recommendations]({{< relref "/operate/kubernetes/8.0.18/recommendations/node-selection" >}}). +To deploy rack-aware Redis Enterprise clusters, follow [Deploy on Kubernetes](/content/operate/kubernetes/8.0.18/deployment/_index.md) and ensure your Kubernetes nodes have proper zone labels. For detailed rack awareness configuration, see the [node selection recommendations](/content/operate/kubernetes/8.0.18/recommendations/node-selection.md). ## Troubleshooting @@ -119,14 +119,14 @@ To deploy rack-aware Redis Enterprise clusters, follow [Deploy on Kubernetes]({{ ## Next steps -- [Configure Active-Active databases]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/active-active" >}}) -- [Set up multi-namespace deployment]({{< relref "/operate/kubernetes/8.0.18/reference/yaml/multi-namespace" >}}) -- [Learn about database replication]({{< relref "/operate/kubernetes/8.0.18/re-databases/replica-redb" >}}) +- [Configure Active-Active databases](/content/operate/kubernetes/8.0.18/reference/yaml/active-active.md) +- [Set up multi-namespace deployment](/content/operate/kubernetes/8.0.18/reference/yaml/multi-namespace.md) +- [Learn about database replication](/content/operate/kubernetes/8.0.18/re-databases/replica-redb.md) ## Related documentation -- [Node selection recommendations]({{< relref "/operate/kubernetes/8.0.18/recommendations/node-selection" >}}) -- [REC API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) -- [REDB API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}) +- [Node selection recommendations](/content/operate/kubernetes/8.0.18/recommendations/node-selection.md) +- [REC API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) +- [REDB API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md) - [Kubernetes node affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/) -- [Redis Enterprise cluster architecture]({{< relref "/operate/kubernetes/8.0.18/architecture" >}}) +- [Redis Enterprise cluster architecture](/content/operate/kubernetes/8.0.18/architecture/_index.md) diff --git a/content/operate/kubernetes/8.0.18/security/_index.md b/content/operate/kubernetes/8.0.18/security/_index.md index 36713a889a..abd639ed29 100644 --- a/content/operate/kubernetes/8.0.18/security/_index.md +++ b/content/operate/kubernetes/8.0.18/security/_index.md @@ -18,28 +18,28 @@ Configure security settings for your Redis Enterprise deployment on Kubernetes. Manage cluster credentials and authentication settings: -- [Manage REC credentials]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-credentials" >}}) - Configure and manage Redis Enterprise cluster credentials -- [Configuration secrets]({{< relref "/operate/kubernetes/8.0.18/security/configuration-secrets" >}}) - Store Redis Enterprise configuration items in Kubernetes Secrets for automatic updates and secure management -- [LDAP authentication]({{< relref "/operate/kubernetes/8.0.18/security/ldap" >}}) - Integrate with LDAP for centralized authentication -- [SSO authentication]({{< relref "/operate/kubernetes/8.0.18/security/sso" >}}) - Enable SAML-based single sign-on for Cluster Manager UI access +- [Manage REC credentials](/content/operate/kubernetes/8.0.18/security/manage-rec-credentials.md) - Configure and manage Redis Enterprise cluster credentials +- [Configuration secrets](/content/operate/kubernetes/8.0.18/security/configuration-secrets.md) - Store Redis Enterprise configuration items in Kubernetes Secrets for automatic updates and secure management +- [LDAP authentication](/content/operate/kubernetes/8.0.18/security/ldap.md) - Integrate with LDAP for centralized authentication +- [SSO authentication](/content/operate/kubernetes/8.0.18/security/sso.md) - Enable SAML-based single sign-on for Cluster Manager UI access ## Certificates and encryption Configure TLS certificates and encryption for secure communications: -- [Manage REC certificates]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-certificates" >}}) - Configure cluster certificates for TLS encryption -- [cert-manager integration]({{< relref "/operate/kubernetes/8.0.18/security/cert-manager" >}}) - Automate TLS certificate management with cert-manager -- [Add client certificates]({{< relref "/operate/kubernetes/8.0.18/security/add-client-certificates" >}}) - Set up client certificate authentication for databases -- [Internode encryption]({{< relref "/operate/kubernetes/8.0.18/security/internode-encryption" >}}) - Enable encryption between cluster nodes and configure custom certificates +- [Manage REC certificates](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) - Configure cluster certificates for TLS encryption +- [cert-manager integration](/content/operate/kubernetes/8.0.18/security/cert-manager.md) - Automate TLS certificate management with cert-manager +- [Add client certificates](/content/operate/kubernetes/8.0.18/security/add-client-certificates.md) - Set up client certificate authentication for databases +- [Internode encryption](/content/operate/kubernetes/8.0.18/security/internode-encryption.md) - Enable encryption between cluster nodes and configure custom certificates ## Secret management Configure external secret management systems: -- [HashiCorp Vault integration]({{< relref "/operate/kubernetes/8.0.18/security/vault" >}}) - Configure HashiCorp Vault as the centralized secret management system for Redis Enterprise for Kubernetes +- [HashiCorp Vault integration](/content/operate/kubernetes/8.0.18/security/vault.md) - Configure HashiCorp Vault as the centralized secret management system for Redis Enterprise for Kubernetes ## Resource management Configure security-related resource settings: -- [Allow resource adjustment]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment" >}}) - Enable automatic adjustment of system resources for security compliance +- [Allow resource adjustment](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md) - Enable automatic adjustment of system resources for security compliance diff --git a/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md b/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md index 3a6f1cdb6d..b91eea347c 100644 --- a/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md +++ b/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md @@ -69,7 +69,7 @@ oc delete scc/redis-enterprise-scc-v2 oc adm policy remove-scc-from-user redis-enterprise-scc-v2 -z ``` -If running with automatic resource adjustment enabled, manually reapply the [security context constraints (SCC)](https://docs.openshift.com/container-platform/4.8/authentication/managing-security-context-constraints.html) file ([`scc.yaml`]({{< relref "/operate/kubernetes/8.0.18/deployment/openshift/openshift-cli#deploy-the-operator" >}})). +If running with automatic resource adjustment enabled, manually reapply the [security context constraints (SCC)](https://docs.openshift.com/container-platform/4.8/authentication/managing-security-context-constraints.html) file ([`scc.yaml`](/content/operate/kubernetes/8.0.18/deployment/openshift/openshift-cli.md#deploy-the-operator)). ```sh oc apply -f openshift/scc.yaml @@ -88,9 +88,8 @@ To enable automatic resource adjustment after installation, apply and grant perm 1. Apply the `scc.yaml` file. - {{}} -Do not edit this file. - {{}} + > [!WARNING] + > Do not edit this file. ```sh oc apply -f openshift/scc.yaml diff --git a/content/operate/kubernetes/8.0.18/security/cert-manager.md b/content/operate/kubernetes/8.0.18/security/cert-manager.md index 3cba78fb44..7cf39fac88 100644 --- a/content/operate/kubernetes/8.0.18/security/cert-manager.md +++ b/content/operate/kubernetes/8.0.18/security/cert-manager.md @@ -25,7 +25,8 @@ Benefits of using cert-manager include: - **Multiple certificate authorities**: Support for Let's Encrypt, private CAs, Vault, and more. - **Automatic propagation**: For Active-Active databases, certificate changes automatically sync across all participating clusters. -{{}}The cert-manager integration uses Kubernetes secrets. It is not compatible with Vault-based secret management (when `clusterCredentialSecretType: vault`). See [HashiCorp Vault integration]({{< relref "/operate/kubernetes/8.0.18/security/vault" >}}) for details.{{}} +> [!WARNING] +> The cert-manager integration uses Kubernetes secrets. It is not compatible with Vault-based secret management (when `clusterCredentialSecretType: vault`). See [HashiCorp Vault integration](/content/operate/kubernetes/8.0.18/security/vault.md) for details. ## Prerequisites @@ -44,7 +45,8 @@ cert-manager creates standard Kubernetes TLS secrets with the following fields: The Redis Enterprise operator automatically recognizes these secrets and can use them interchangeably with manually created secrets. -{{}}If you currently use opaque secrets for your certificates, you can switch to cert-manager's TLS secrets without any additional configuration changes to your Redis resources.{{}} +> [!NOTE] +> If you currently use opaque secrets for your certificates, you can switch to cert-manager's TLS secrets without any additional configuration changes to your Redis resources. ### Supported secret formats @@ -56,7 +58,8 @@ The operator supports multiple field names for backward compatibility: | Private key | `tls.key`, `key` | | CA certificate | `ca.crt` | -{{}}The `ca.crt` field is automatically appended to the certificate chain when present. cert-manager typically populates this field when it has access to the root certificate.{{}} +> [!NOTE] +> The `ca.crt` field is automatically appended to the certificate chain when present. cert-manager typically populates this field when it has access to the root certificate. ## Quick start @@ -112,7 +115,7 @@ spec: metricsExporterCertificateSecretName: metrics-tls ``` -Each secret name corresponds to a `Certificate` resource managed by cert-manager. For details on these fields, see the [RedisEnterpriseCluster API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}). +Each secret name corresponds to a `Certificate` resource managed by cert-manager. For details on these fields, see the [RedisEnterpriseCluster API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md). ## Database replication with TLS @@ -174,7 +177,7 @@ spec: port: 636 ``` -For more details on LDAP configuration, see [Enable LDAP authentication]({{< relref "/operate/kubernetes/8.0.18/security/ldap" >}}). +For more details on LDAP configuration, see [Enable LDAP authentication](/content/operate/kubernetes/8.0.18/security/ldap.md). ## Active-Active databases with automatic certificate sync @@ -213,7 +216,8 @@ Redis Software needs the full chain, including the root CA, to trust the certifi 1. Create a Kubernetes secret that contains the full chain. 1. Reference that secret in your Redis custom resource instead of the secret that cert-manager generates. -{{}}This applies to any issuer that doesn't populate `ca.crt` with the root certificate, not only Let's Encrypt.{{}} +> [!NOTE] +> This applies to any issuer that doesn't populate `ca.crt` with the root certificate, not only Let's Encrypt. For production environments where the issuer supplies the full chain automatically, such as a private CA or HashiCorp Vault, no extra steps are required. @@ -349,7 +353,7 @@ If you encounter certificate chain validation errors: ## See also - [cert-manager documentation](https://cert-manager.io/docs/) -- [Manage REC certificates]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-certificates" >}}) -- [RedisEnterpriseCluster API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) -- [RedisEnterpriseDatabase API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}) -- [HashiCorp Vault integration]({{< relref "/operate/kubernetes/8.0.18/security/vault" >}}) +- [Manage REC certificates](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) +- [RedisEnterpriseCluster API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) +- [RedisEnterpriseDatabase API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md) +- [HashiCorp Vault integration](/content/operate/kubernetes/8.0.18/security/vault.md) diff --git a/content/operate/kubernetes/8.0.18/security/configuration-secrets.md b/content/operate/kubernetes/8.0.18/security/configuration-secrets.md index 81d86388e9..778aa64ed0 100644 --- a/content/operate/kubernetes/8.0.18/security/configuration-secrets.md +++ b/content/operate/kubernetes/8.0.18/security/configuration-secrets.md @@ -51,9 +51,8 @@ spec: ----- LICENSE END ----- ``` -{{}} -You must include the pipe symbol (`|`) after `license:` and maintain proper indentation. -{{}} +> [!NOTE] +> You must include the pipe symbol (`|`) after `license:` and maintain proper indentation. ## Cluster credential configuration @@ -67,11 +66,10 @@ By default, the operator automatically creates a secret with a random username a You can customize the credential secret name during cluster creation using the `clusterCredentialSecretName` field in your REC specification. The secret must contain `username` and `password` fields. -{{}} -The `clusterCredentialSecretName` field cannot be changed after cluster creation. -{{}} +> [!NOTE] +> The `clusterCredentialSecretName` field cannot be changed after cluster creation. -For detailed instructions, see [Customize the credential secret name]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-credentials#customize-the-credential-secret-name" >}}). +For detailed instructions, see [Customize the credential secret name](/content/operate/kubernetes/8.0.18/security/manage-rec-credentials.md#customize-the-credential-secret-name). ## TLS certificate configuration @@ -85,7 +83,7 @@ You can store TLS certificates in Kubernetes Secrets to secure communication bet kubectl -n create secret generic client-cert-secret --from-file=cert= ``` -2. Add the secret to your REDB using the `clientAuthenticationCertificates` property. See [Add client certificates]({{< relref "/operate/kubernetes/8.0.18/security/add-client-certificates" >}}) for details. +2. Add the secret to your REDB using the `clientAuthenticationCertificates` property. See [Add client certificates](/content/operate/kubernetes/8.0.18/security/add-client-certificates.md) for details. ### Service certificates @@ -116,7 +114,7 @@ kubectl create secret generic dp-internode-cert \ --from-literal=name=dp_internode_encryption ``` -Reference these secrets in your REC specification under `spec.certificates`. See [Internode encryption]({{< relref "/operate/kubernetes/8.0.18/security/internode-encryption" >}}) for complete configuration details. +Reference these secrets in your REC specification under `spec.certificates`. See [Internode encryption](/content/operate/kubernetes/8.0.18/security/internode-encryption.md) for complete configuration details. ## Secrets and PEM files in Redis Enterprise pods @@ -151,7 +149,7 @@ Field names vary by deployment. ## See also -- [Manage REC credentials]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-credentials" >}}) -- [Manage REC certificates]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-certificates" >}}) -- [Add client certificates]({{< relref "/operate/kubernetes/8.0.18/security/add-client-certificates" >}}) -- [Redis Enterprise Cluster API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) +- [Manage REC credentials](/content/operate/kubernetes/8.0.18/security/manage-rec-credentials.md) +- [Manage REC certificates](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) +- [Add client certificates](/content/operate/kubernetes/8.0.18/security/add-client-certificates.md) +- [Redis Enterprise Cluster API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) diff --git a/content/operate/kubernetes/8.0.18/security/internode-encryption.md b/content/operate/kubernetes/8.0.18/security/internode-encryption.md index f987cc11ac..e845a6dc07 100644 --- a/content/operate/kubernetes/8.0.18/security/internode-encryption.md +++ b/content/operate/kubernetes/8.0.18/security/internode-encryption.md @@ -30,7 +30,7 @@ spec: dataInternodeEncryption: false ``` -To learn more about internode encryption, see [Internode encryption for Redis Enterprise Software]({{< relref "/operate/rs/security/encryption/internode-encryption.md" >}}). +To learn more about internode encryption, see [Internode encryption for Redis Enterprise Software](/content/operate/rs/security/encryption/internode-encryption.md). ## Use custom certificates for internode encryption @@ -131,6 +131,6 @@ When you remove a certificate secret reference from the REC specification, the o ## More info -- [Manage REC certificates]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-certificates" >}}) - General certificate management for Redis Enterprise clusters -- [Configuration secrets]({{< relref "/operate/kubernetes/8.0.18/security/configuration-secrets" >}}) - Best practices for storing configuration in Kubernetes secrets -- [Internode encryption for Redis Enterprise Software]({{< relref "/operate/rs/security/encryption/internode-encryption.md" >}}) - Detailed information about how internode encryption works +- [Manage REC certificates](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) - General certificate management for Redis Enterprise clusters +- [Configuration secrets](/content/operate/kubernetes/8.0.18/security/configuration-secrets.md) - Best practices for storing configuration in Kubernetes secrets +- [Internode encryption for Redis Enterprise Software](/content/operate/rs/security/encryption/internode-encryption.md) - Detailed information about how internode encryption works diff --git a/content/operate/kubernetes/8.0.18/security/ldap.md b/content/operate/kubernetes/8.0.18/security/ldap.md index 4c837154d8..18b24f172b 100644 --- a/content/operate/kubernetes/8.0.18/security/ldap.md +++ b/content/operate/kubernetes/8.0.18/security/ldap.md @@ -13,11 +13,11 @@ url: '/operate/kubernetes/8.0.18/security/ldap/' ## LDAP support for Redis Enterprise Software -Redis Enterprise Software supports LDAP authentication and authorization through [role-based access controls]({{< relref "/operate/rs/security/access-control/" >}}) (RBAC). You can map LDAP groups to [Redis Enterprise roles]({{< relref "/operate/rs/security/access-control" >}}) to control access to your database and the Cluster Manager UI. For more details on how LDAP works with Redis Enterprise, see [LDAP authentication]({{< relref "/operate/rs/security/access-control/ldap/" >}}). +Redis Enterprise Software supports LDAP authentication and authorization through [role-based access controls](/content/operate/rs/security/access-control/_index.md) (RBAC). You can map LDAP groups to [Redis Enterprise roles](/content/operate/rs/security/access-control/_index.md) to control access to your database and the Cluster Manager UI. For more details on how LDAP works with Redis Enterprise, see [LDAP authentication](/content/operate/rs/security/access-control/ldap/_index.md). Redis Enterprise for Kubernetes supports enabling and configuring LDAP authentication using the `RedisEnterpriseCluster` (REC) custom resource. Currently, the Redis Enterprise cluster (REC) only supports configuration related to the LDAP server, such as server addresses, connection details, credentials, and query configuration. -To [map LDAP groups to Redis Enterprise access control roles]({{< relref "/operate/rs/security/access-control/ldap/enable-role-based-ldap.md" >}}), you'll need to use the Redis Enterprise [API]({{< relref "/operate/rs/references/rest-api/requests/ldap_mappings/" >}}) or [admin console]({{< relref "/operate/rs/security/access-control/ldap/enable-role-based-ldap.md" >}}). +To [map LDAP groups to Redis Enterprise access control roles](/content/operate/rs/security/access-control/ldap/enable-role-based-ldap.md), you'll need to use the Redis Enterprise [API](/content/operate/rs/references/rest-api/requests/ldap_mappings/_index.md) or [admin console](/content/operate/rs/security/access-control/ldap/enable-role-based-ldap.md). ## Enable LDAP @@ -163,6 +163,6 @@ Redis Enterprise Software can't resolve DNS names with a `.local` suffix. ## Next steps -To [map LDAP groups to Redis Enterprise access control roles]({{< relref "/operate/rs/security/access-control/ldap/enable-role-based-ldap.md" >}}), you'll need to use the Redis Enterprise [API]({{< relref "/operate/rs/references/rest-api/requests/ldap_mappings/" >}}) or [admin console]({{< relref "/operate/rs/security/access-control/ldap/enable-role-based-ldap.md" >}}). +To [map LDAP groups to Redis Enterprise access control roles](/content/operate/rs/security/access-control/ldap/enable-role-based-ldap.md), you'll need to use the Redis Enterprise [API](/content/operate/rs/references/rest-api/requests/ldap_mappings/_index.md) or [admin console](/content/operate/rs/security/access-control/ldap/enable-role-based-ldap.md). -For more details on how LDAP works with Redis Enterprise, see [LDAP authentication]({{< relref "/operate/rs/security/access-control/ldap/" >}}). +For more details on how LDAP works with Redis Enterprise, see [LDAP authentication](/content/operate/rs/security/access-control/ldap/_index.md). diff --git a/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md b/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md index 52b52e66eb..1fc8fcd029 100644 --- a/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md +++ b/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md @@ -18,11 +18,11 @@ You can manage REC certificates in two ways: - **[Method 1: Manage certificates with the REC custom resource](#method-1-manage-certificates-with-the-rec-custom-resource)** (recommended). Store each certificate in a Kubernetes secret and reference the secret from the REC custom resource. The operator applies the certificate and keeps the cluster in sync with the secret. Use this method whenever the certificate type is exposed in `spec.certificates`. - **[Method 2: Manage certificates with the Redis Software REST API](#method-2-manage-certificates-with-the-redis-software-rest-api)**. Call the cluster's REST API directly, bypassing the operator. Use this method only when you need to follow the Redis Software procedure for a cluster that does not define the certificate in `spec.certificates`. The operator overwrites changes made this way if the same certificate is also defined in the REC custom resource. -For the list of certificates and what each one encrypts, see the [certificates table]({{< relref "/operate/rs/security/certificates" >}}). +For the list of certificates and what each one encrypts, see the [certificates table](/content/operate/rs/security/certificates/_index.md). ## Method 1: Manage certificates with the REC custom resource -This is the Kubernetes-native method. The operator detects changes to a referenced secret and rotates the certificate without manual intervention. You can create the secret manually, or have [cert-manager]({{< relref "/operate/kubernetes/8.0.18/security/cert-manager" >}}) issue and renew it automatically. +This is the Kubernetes-native method. The operator detects changes to a referenced secret and rotates the certificate without manual intervention. You can create the secret manually, or have [cert-manager](/content/operate/kubernetes/8.0.18/security/cert-manager.md) issue and renew it automatically. ### Supported certificates @@ -64,9 +64,10 @@ The operator accepts several key names for the certificate and private key, so y | Certificate | `cert`, `certificate`, or `tls.crt` | | Private key | `key` or `tls.key` | -{{}}On Redis Software for Kubernetes versions older than 8.0.18, also include `--from-literal=name=` in the `kubectl create secret` command, where `` is the value from the **Certificate name in Redis Software** column in the [supported certificates](#supported-certificates) table.{{}} +> [!NOTE] +> On Redis Software for Kubernetes versions older than 8.0.18, also include `--from-literal=name=` in the `kubectl create secret` command, where `` is the value from the **Certificate name in Redis Software** column in the [supported certificates](#supported-certificates) table. -For internode encryption certificates, see [Internode encryption]({{< relref "/operate/kubernetes/8.0.18/security/internode-encryption" >}}) for the full setup, which covers enabling internode encryption alongside the certificate configuration. +For internode encryption certificates, see [Internode encryption](/content/operate/kubernetes/8.0.18/security/internode-encryption.md) for the full setup, which covers enabling internode encryption alongside the certificate configuration. ### Step 2: Reference the secret in the REC custom resource @@ -107,21 +108,22 @@ GET /v1/cluster/certificates Use the Redis Software REST API or `rladmin` directly against the cluster, bypassing the operator. -{{}}If `spec.certificates` in the REC custom resource defines the same certificate, the operator overwrites your API change. Before you update a certificate through the REST API, remove the corresponding field from `spec.certificates`, or apply the same change in both places.{{}} +> [!WARNING] +> If `spec.certificates` in the REC custom resource defines the same certificate, the operator overwrites your API change. Before you update a certificate through the REST API, remove the corresponding field from `spec.certificates`, or apply the same change in both places. -For the procedure, including the `rladmin` and REST API examples, see [Update certificates]({{< relref "/operate/rs/security/certificates/updating-certificates" >}}). +For the procedure, including the `rladmin` and REST API examples, see [Update certificates](/content/operate/rs/security/certificates/updating-certificates.md). After the update, verify the rotation as described in [Step 3](#step-3-verify-the-rotation-optional). ## Active-Active database certificate updates -The operator automates certificate updates for [Active-Active]({{< relref "/operate/kubernetes/8.0.18/active-active" >}}) databases. When you update the proxy or syncer certificate secret referenced by the REC, the operator detects the change and propagates the new certificate to all participating clusters. +The operator automates certificate updates for [Active-Active](/content/operate/kubernetes/8.0.18/active-active/_index.md) databases. When you update the proxy or syncer certificate secret referenced by the REC, the operator detects the change and propagates the new certificate to all participating clusters. -This automation applies whether you manage the secret directly or with [cert-manager]({{< relref "/operate/kubernetes/8.0.18/security/cert-manager#active-active-databases-with-automatic-certificate-sync" >}}). +This automation applies whether you manage the secret directly or with [cert-manager](/content/operate/kubernetes/8.0.18/security/cert-manager.md#active-active-databases-with-automatic-certificate-sync). ## More info -- [Update certificates]({{< relref "/operate/rs/security/certificates/updating-certificates" >}}) -- [Install your own certificates]({{< relref "/operate/rs/security/certificates/create-certificates" >}}) -- [Certificates table]({{< relref "/operate/rs/security/certificates" >}}) -- [Glossary/Transport Layer Security (TLS)]({{< relref "/glossary#letter-t" >}}) +- [Update certificates](/content/operate/rs/security/certificates/updating-certificates.md) +- [Install your own certificates](/content/operate/rs/security/certificates/create-certificates.md) +- [Certificates table](/content/operate/rs/security/certificates/_index.md) +- [Glossary/Transport Layer Security (TLS)](/content/glossary/_index.md#letter-t) diff --git a/content/operate/kubernetes/8.0.18/security/manage-rec-credentials.md b/content/operate/kubernetes/8.0.18/security/manage-rec-credentials.md index ea0f9e11b3..823410e7ac 100644 --- a/content/operate/kubernetes/8.0.18/security/manage-rec-credentials.md +++ b/content/operate/kubernetes/8.0.18/security/manage-rec-credentials.md @@ -9,11 +9,10 @@ linkTitle: Manage REC credentials weight: 93 url: '/operate/kubernetes/8.0.18/security/manage-rec-credentials/' --- -Redis Enterprise for Kubernetes uses a custom resource called [`RedisEnterpriseCluster`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) to create a Redis Enterprise cluster (REC). During creation, it generates random credentials for the operator to use. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the cluster name and is specified by the `clusterCredentialSecretName` field in the REC specification. +Redis Enterprise for Kubernetes uses a custom resource called [`RedisEnterpriseCluster`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) to create a Redis Enterprise cluster (REC). During creation, it generates random credentials for the operator to use. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the cluster name and is specified by the `clusterCredentialSecretName` field in the REC specification. -{{}} -This procedure is only supported for operator versions 6.0.20-12 and above. -{{}} +> [!NOTE] +> This procedure is only supported for operator versions 6.0.20-12 and above. ## Retrieve the current username and password @@ -96,13 +95,14 @@ curl -k --request DELETE \ \"old_password\":\"}} The username for the K8s secret is the email displayed on the Redis Enterprise admin console. {{}} +> [!NOTE] +> The username for the K8s secret is the email displayed on the Redis Enterprise admin console. ### Change both the REC username and password -1. [Connect to the admin console]({{< relref "/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console.md" >}}) +1. [Connect to the admin console](/content/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console.md) -2. [Add another admin user]({{< relref "/operate/rs/security/access-control/create-users" >}}) and choose a new password. +2. [Add another admin user](/content/operate/rs/security/access-control/create-users.md) and choose a new password. 3. Specify the new username in the `username` field of your REC custom resource spec. @@ -122,9 +122,8 @@ kubectl apply -f - 6. Delete the previous admin user from the cluster. -{{}} -The operator may log errors in the time between updating the username in the REC spec and the secret update. -{{}} +> [!NOTE] +> The operator may log errors in the time between updating the username in the REC spec and the secret update. ### Update the credentials secret in Vault diff --git a/content/operate/kubernetes/8.0.18/security/sso.md b/content/operate/kubernetes/8.0.18/security/sso.md index e99a4b0504..698c228042 100644 --- a/content/operate/kubernetes/8.0.18/security/sso.md +++ b/content/operate/kubernetes/8.0.18/security/sso.md @@ -35,7 +35,7 @@ Before enabling SSO, ensure you have: 1. An existing Redis Enterprise cluster (REC) deployed in Kubernetes -2. **External access to the Cluster Manager UI** - The Cluster Manager UI must be accessible externally via a LoadBalancer service or Ingress so users can access it from their browser and the identity provider can redirect back after authentication. See [Connect to the admin console]({{< relref "/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console.md" >}}) for configuration options. +2. **External access to the Cluster Manager UI** - The Cluster Manager UI must be accessible externally via a LoadBalancer service or Ingress so users can access it from their browser and the identity provider can redirect back after authentication. See [Connect to the admin console](/content/operate/kubernetes/8.0.18/re-clusters/connect-to-admin-console.md) for configuration options. 3. A SAML 2.0-compatible identity provider (such as Okta, Azure AD, or similar) @@ -43,9 +43,8 @@ Before enabling SSO, ensure you have: 5. A TLS certificate and private key for the service provider (SP) -{{}} -SSO requires external access to the Cluster Manager UI. Port forwarding is not sufficient for SSO authentication because the identity provider needs to redirect users back to the UI after authentication. You must configure either a LoadBalancer service (via `spec.uiServiceType: LoadBalancer`) or an Ingress controller. -{{}} +> [!WARNING] +> SSO requires external access to the Cluster Manager UI. Port forwarding is not sufficient for SSO authentication because the identity provider needs to redirect users back to the UI after authentication. You must configure either a LoadBalancer service (via `spec.uiServiceType: LoadBalancer`) or an Ingress controller. ### Step 1: Upload Service Provider certificate and private key @@ -120,9 +119,8 @@ Examples: - `"redis-ui.example.com:443"` (defaults to https://) - `"http://redis-ui.example.com:9443"` (NOT recommended for production) -{{}} -Using `http://` is NOT recommended for production environments as it transmits sensitive SAML assertions in plaintext. Only use `http://` for testing or development purposes. -{{}} +> [!WARNING] +> Using `http://` is NOT recommended for production environments as it transmits sensitive SAML assertions in plaintext. Only use `http://` for testing or development purposes. **Usage guidelines:** - **For LoadBalancer services:** Leave this field blank to use the default REC UI service, or set it explicitly to the LoadBalancer address for custom services. @@ -140,9 +138,8 @@ If you configured `spMetadataSecretName` in Step 1, the operator creates a secre kubectl -n get secret sp-metadata -o jsonpath='{.data.sp_metadata}' | base64 -d > sp-metadata.xml ``` -{{}} -This secret is only created when the cluster is configured to use Kubernetes secrets (`spec.clusterCredentialSecretType` is unset or set to `"kubernetes"`). When using Vault secrets, use Option B instead. -{{}} +> [!NOTE] +> This secret is only created when the cluster is configured to use Kubernetes secrets (`spec.clusterCredentialSecretType` is unset or set to `"kubernetes"`). When using Vault secrets, use Option B instead. #### Option B: Retrieve from the API @@ -209,9 +206,8 @@ Now configure the identity provider details in your Redis Enterprise cluster. Replace `` with the path to your IdP certificate file. - {{}} -While IdP metadata XML may contain the certificate, Redis Enterprise Server does not use it from there, so the certificate must be provided separately via this secret. - {{}} + > [!NOTE] + > While IdP metadata XML may contain the certificate, Redis Enterprise Server does not use it from there, so the certificate must be provided separately via this secret. 2. Configure the IdP using one of the following options: @@ -292,9 +288,8 @@ If IdP metadata XML is unavailable, you can manually configure the issuer settin kubectl apply -f .yaml ``` -{{}} -If both `idpMetadataSecretName` and `issuer` are provided, `idpMetadataSecretName` takes precedence and `issuer` is ignored. -{{}} +> [!NOTE] +> If both `idpMetadataSecretName` and `issuer` are provided, `idpMetadataSecretName` takes precedence and `issuer` is ignored. ### Step 6: Assign SAML app to users @@ -371,4 +366,4 @@ After enabling SSO: 2. Set up the `redisRoleMapping` attribute in your identity provider to assign appropriate roles for new users 3. Test both IdP-initiated and SP-initiated SSO flows -For more information about Redis Enterprise Software security, see [Access control]({{< relref "/operate/rs/security/access-control/" >}}). +For more information about Redis Enterprise Software security, see [Access control](/content/operate/rs/security/access-control/_index.md). diff --git a/content/operate/kubernetes/8.0.18/security/vault.md b/content/operate/kubernetes/8.0.18/security/vault.md index 23288982a3..401d48a465 100644 --- a/content/operate/kubernetes/8.0.18/security/vault.md +++ b/content/operate/kubernetes/8.0.18/security/vault.md @@ -21,41 +21,40 @@ When Vault integration is enabled, all secrets referenced in Redis Enterprise cu | **Category** | **Secret Type** | **API Field** | **Description** | |---|---|---|---| | **Cluster secrets** | | | | -| | [Cluster credentials]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start" >}}) | [`clusterCredentialSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#redisenterprisespec" >}}) | Authentication credentials for cluster access | -| | [License]({{< relref "/operate/kubernetes/8.0.18/deployment/quick-start#install-the-license" >}}) | [`licenseSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#redisenterprisespec" >}}) | Redis Enterprise license key | -| | [API certificate]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-certificates" >}}) | [`apiCertificateSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#redisenterprisespec" >}}) | TLS certificate for API server | -| | [Cluster manager certificate]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-certificates" >}}) | [`cmCertificateSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#redisenterprisespec" >}}) | TLS certificate for cluster manager | -| | [Metrics exporter certificate]({{< relref "/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator" >}}) | [`metricsExporterCertificateSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#redisenterprisespec" >}}) | TLS certificate for metrics exporter | -| | [Proxy certificate]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-certificates" >}}) | [`proxyCertificateSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#redisenterprisespec" >}}) | TLS certificate for proxy | -| | [Syncer certificate]({{< relref "/operate/kubernetes/8.0.18/active-active" >}}) | [`syncerCertificateSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#redisenterprisespec" >}}) | TLS certificate for Active-Active syncer | -| | [LDAP client certificate]({{< relref "/operate/kubernetes/8.0.18/security/ldap" >}}) | [`ldapClientCertificateSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#redisenterprisespec" >}}) | TLS certificate for LDAP client authentication | -| | [LDAP bind credentials]({{< relref "/operate/kubernetes/8.0.18/security/ldap" >}}) | [`bindCredentialsSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#specldap" >}}) | Credentials for authenticating to the LDAP server | -| | [CPINE certificate]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-certificates" >}}) | [`cpInternodeEncryptionCertificateSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#speccertificates" >}}) | TLS certificate for Control Plane Internode Encryption (CPINE) | -| | [DPINE certificate]({{< relref "/operate/kubernetes/8.0.18/security/manage-rec-certificates" >}}) | [`dpInternodeEncryptionCertificateSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#speccertificates" >}}) | TLS certificate for Data Plane Internode Encryption (DPINE) | -| | [SSO service certificate]({{< relref "/operate/kubernetes/8.0.18/security/sso" >}}) | [`ssoServiceCertificateSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#speccertificates" >}}) | Service Provider (SP) certificate for SAML SSO | -| | [SSO issuer certificate]({{< relref "/operate/kubernetes/8.0.18/security/sso" >}}) | [`ssoIssuerCertificateSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#speccertificates" >}}) | Identity Provider (IdP) public certificate for SAML SSO | -| | [SSO IdP metadata]({{< relref "/operate/kubernetes/8.0.18/security/sso" >}}) | [`idpMetadataSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#specssosaml" >}}) | SAML Identity Provider metadata XML | -| | [User-defined module credentials]({{< relref "/operate/kubernetes/8.0.18/re-databases/modules" >}}) | [`credentialsSecret`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api#specuserdefinedmodulessourcehttps" >}}) | Credentials for downloading user-defined modules from authenticated repositories | +| | [Cluster credentials](/content/operate/kubernetes/8.0.18/deployment/quick-start.md) | [`clusterCredentialSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#redisenterprisespec) | Authentication credentials for cluster access | +| | [License](/content/operate/kubernetes/8.0.18/deployment/quick-start.md#install-the-license) | [`licenseSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#redisenterprisespec) | Redis Enterprise license key | +| | [API certificate](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) | [`apiCertificateSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#redisenterprisespec) | TLS certificate for API server | +| | [Cluster manager certificate](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) | [`cmCertificateSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#redisenterprisespec) | TLS certificate for cluster manager | +| | [Metrics exporter certificate](/content/operate/kubernetes/8.0.18/re-clusters/connect-prometheus-operator.md) | [`metricsExporterCertificateSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#redisenterprisespec) | TLS certificate for metrics exporter | +| | [Proxy certificate](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) | [`proxyCertificateSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#redisenterprisespec) | TLS certificate for proxy | +| | [Syncer certificate](/content/operate/kubernetes/8.0.18/active-active/_index.md) | [`syncerCertificateSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#redisenterprisespec) | TLS certificate for Active-Active syncer | +| | [LDAP client certificate](/content/operate/kubernetes/8.0.18/security/ldap.md) | [`ldapClientCertificateSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#redisenterprisespec) | TLS certificate for LDAP client authentication | +| | [LDAP bind credentials](/content/operate/kubernetes/8.0.18/security/ldap.md) | [`bindCredentialsSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specldap) | Credentials for authenticating to the LDAP server | +| | [CPINE certificate](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) | [`cpInternodeEncryptionCertificateSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#speccertificates) | TLS certificate for Control Plane Internode Encryption (CPINE) | +| | [DPINE certificate](/content/operate/kubernetes/8.0.18/security/manage-rec-certificates.md) | [`dpInternodeEncryptionCertificateSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#speccertificates) | TLS certificate for Data Plane Internode Encryption (DPINE) | +| | [SSO service certificate](/content/operate/kubernetes/8.0.18/security/sso.md) | [`ssoServiceCertificateSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#speccertificates) | Service Provider (SP) certificate for SAML SSO | +| | [SSO issuer certificate](/content/operate/kubernetes/8.0.18/security/sso.md) | [`ssoIssuerCertificateSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#speccertificates) | Identity Provider (IdP) public certificate for SAML SSO | +| | [SSO IdP metadata](/content/operate/kubernetes/8.0.18/security/sso.md) | [`idpMetadataSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specssosaml) | SAML Identity Provider metadata XML | +| | [User-defined module credentials](/content/operate/kubernetes/8.0.18/re-databases/modules.md) | [`credentialsSecret`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#specuserdefinedmodulessourcehttps) | Credentials for downloading user-defined modules from authenticated repositories | | **Database secrets** | | | | -| | [Database passwords]({{< relref "/operate/kubernetes/8.0.18/networking/database-connectivity/#credentials-and-secrets-management" >}}) | Various | Passwords for Redis databases | -| | [Replica source client TLS key]({{< relref "/operate/kubernetes/8.0.18/re-databases/replica-redb" >}}) | [`clientKeySecret`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#redisenterprisedbspec" >}}) | Client TLS key for cross-cluster replication | -| | [Replica source server certificate]({{< relref "/operate/kubernetes/8.0.18/re-databases/replica-redb" >}}) | [`serverCertSecret`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#redisenterprisedbspec" >}}) | Server certificate for cross-cluster replication | -| | [S3 backup credentials]({{< relref "/operate/kubernetes/8.0.18/re-databases" >}}) | [`awsSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#redisenterprisedbspec" >}}) | AWS S3 storage credentials for database backups | -| | [SFTP backup credentials]({{< relref "/operate/kubernetes/8.0.18/re-databases" >}}) | [`sftpSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#redisenterprisedbspec" >}}) | SFTP storage credentials for database backups | -| | [Swift backup credentials]({{< relref "/operate/kubernetes/8.0.18/re-databases" >}}) | [`swiftSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#redisenterprisedbspec" >}}) | Swift storage credentials for database backups | -| | [Azure Blob backup credentials]({{< relref "/operate/kubernetes/8.0.18/re-databases" >}}) | [`absSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#redisenterprisedbspec" >}}) | Azure Blob storage credentials for database backups | -| | [Google Cloud backup credentials]({{< relref "/operate/kubernetes/8.0.18/re-databases" >}}) | [`gcsSecretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#redisenterprisedbspec" >}}) | Google Cloud storage credentials for database backups | -| | [Client authentication certificates]({{< relref "/operate/kubernetes/8.0.18/security/add-client-certificates" >}}) | Various | TLS client certificates for authentication | +| | [Database passwords](/content/operate/kubernetes/8.0.18/networking/database-connectivity.md#credentials-and-secrets-management) | Various | Passwords for Redis databases | +| | [Replica source client TLS key](/content/operate/kubernetes/8.0.18/re-databases/replica-redb.md) | [`clientKeySecret`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisenterprisedbspec) | Client TLS key for cross-cluster replication | +| | [Replica source server certificate](/content/operate/kubernetes/8.0.18/re-databases/replica-redb.md) | [`serverCertSecret`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisenterprisedbspec) | Server certificate for cross-cluster replication | +| | [S3 backup credentials](/content/operate/kubernetes/8.0.18/re-databases/_index.md) | [`awsSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisenterprisedbspec) | AWS S3 storage credentials for database backups | +| | [SFTP backup credentials](/content/operate/kubernetes/8.0.18/re-databases/_index.md) | [`sftpSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisenterprisedbspec) | SFTP storage credentials for database backups | +| | [Swift backup credentials](/content/operate/kubernetes/8.0.18/re-databases/_index.md) | [`swiftSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisenterprisedbspec) | Swift storage credentials for database backups | +| | [Azure Blob backup credentials](/content/operate/kubernetes/8.0.18/re-databases/_index.md) | [`absSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisenterprisedbspec) | Azure Blob storage credentials for database backups | +| | [Google Cloud backup credentials](/content/operate/kubernetes/8.0.18/re-databases/_index.md) | [`gcsSecretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisenterprisedbspec) | Google Cloud storage credentials for database backups | +| | [Client authentication certificates](/content/operate/kubernetes/8.0.18/security/add-client-certificates.md) | Various | TLS client certificates for authentication | | **Other secrets** | | | | -| | [Remote cluster secrets]({{< relref "/operate/kubernetes/8.0.18/active-active" >}}) | [`secretName`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api#redisenterpriseremoteclusterspec" >}}) | Credentials for Redis Enterprise Remote Cluster (RERC) configurations | -| | [Active-Active database secrets]({{< relref "/operate/kubernetes/8.0.18/active-active" >}}) | [`globalConfigurations`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api#redisenterpriseactiveactivedatabasespec" >}}) | All secret names specified in REAADB global configurations | +| | [Remote cluster secrets](/content/operate/kubernetes/8.0.18/active-active/_index.md) | [`secretName`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_remote_cluster_api.md#redisenterpriseremoteclusterspec) | Credentials for Redis Enterprise Remote Cluster (RERC) configurations | +| | [Active-Active database secrets](/content/operate/kubernetes/8.0.18/active-active/_index.md) | [`globalConfigurations`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_active_active_database_api.md#redisenterpriseactiveactivedatabasespec) | All secret names specified in REAADB global configurations | {{}} -{{}} -The SSO Service Provider (SP) metadata secret (`spMetadataSecretName`) is **not** managed by Vault. This secret is operator-generated and is not written to Vault. To retrieve SP metadata when using Vault, fetch it directly from the Redis Enterprise Server API (`GET /v1/cluster/sso/saml/metadata/sp`). -{{}} +> [!NOTE] +> The SSO Service Provider (SP) metadata secret (`spMetadataSecretName`) is **not** managed by Vault. This secret is operator-generated and is not written to Vault. To retrieve SP metadata when using Vault, fetch it directly from the Redis Enterprise Server API (`GET /v1/cluster/sso/saml/metadata/sp`). -For complete details on supported secrets, see the [`RedisEnterpriseCluster` API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) and [`RedisEnterpriseDatabase` API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}). +For complete details on supported secrets, see the [`RedisEnterpriseCluster` API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) and [`RedisEnterpriseDatabase` API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md). ### Secret path structure @@ -71,9 +70,8 @@ secret/data/redisenterprise-redis-ns/my-database-password secret/data/redisenterprise-redis-ns/tls-certificates ``` -{{}} -When using OpenShift, replace `kubectl` commands with `oc` throughout this guide. -{{}} +> [!NOTE] +> When using OpenShift, replace `kubectl` commands with `oc` throughout this guide. ## Prerequisites @@ -121,9 +119,8 @@ This guide covers the most common deployment scenario with the following assumpt - Namespace isolation using Kubernetes namespace suffixes for Vault configurations - Production security with proper RBAC and network policies -{{}} -Multi-cluster considerations: When deploying across multiple Kubernetes clusters with identical namespace names, additional prefixing may be required to avoid Vault path conflicts. -{{}} +> [!NOTE] +> Multi-cluster considerations: When deploying across multiple Kubernetes clusters with identical namespace names, additional prefixing may be required to avoid Vault path conflicts. ## Configure the operator @@ -210,11 +207,10 @@ Multi-cluster considerations: When deploying across multiple Kubernetes clusters 3. Deploy the operator - Deploy the Redis Enterprise operator following the [standard installation guide]({{< relref "/operate/kubernetes/8.0.18/deployment" >}}). + Deploy the Redis Enterprise operator following the [standard installation guide](/content/operate/kubernetes/8.0.18/deployment/_index.md). - {{}} - The operator pod will not be ready until the admission controller secret is stored in Vault (covered in the next step). - {{}} + > [!WARNING] + > The operator pod will not be ready until the admission controller secret is stored in Vault (covered in the next step).
@@ -239,9 +235,8 @@ Multi-cluster considerations: When deploying across multiple Kubernetes clusters vault kv put -namespace= /redisenterprise-/admission-tls @output.json ``` - {{}} - Once the operator is running with Vault integration, proceed to create Redis Enterprise clusters. Do not create clusters before completing this setup. - {{}} + > [!NOTE] + > Once the operator is running with Vault integration, proceed to create Redis Enterprise clusters. Do not create clusters before completing this setup.
@@ -255,9 +250,8 @@ Multi-cluster considerations: When deploying across multiple Kubernetes clusters --from-file=vault.ca= ``` - {{}} - The Vault server certificate must be signed by the Certificate Authority provided in this secret. - {{}} + > [!WARNING] + > The Vault server certificate must be signed by the Certificate Authority provided in this secret. ## Create Redis Enterprise clusters @@ -279,11 +273,10 @@ Multi-cluster considerations: When deploying across multiple Kubernetes clusters password= ``` - {{< alert title="Important notes" >}} - - The username field in the REC spec is ignored when using Vault - - The username from the Vault secret takes precedence - - Use strong, unique passwords for each cluster - {{}} + > [!NOTE] Important notes + > - The username field in the REC spec is ignored when using Vault + > - The username from the Vault secret takes precedence + > - Use strong, unique passwords for each cluster
@@ -356,18 +349,17 @@ To create a Redis Enterprise database (REDB) with Vault integration:
2. Create the REDB custom resource: - Follow the standard [database creation process]({{< relref "/operate/kubernetes/8.0.18/re-databases" >}}). The REC configuration automatically enables Vault integration for all databases. + Follow the standard [database creation process](/content/operate/kubernetes/8.0.18/re-databases/_index.md). The REC configuration automatically enables Vault integration for all databases.
3. Configure additional secrets (optional): - Store additional REDB secrets in the path `redisenterprise-/`. Secrets must comply with the [REDB secrets schema]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}). + Store additional REDB secrets in the path `redisenterprise-/`. Secrets must comply with the [REDB secrets schema](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md). -{{}} -When using the Redis Enterprise Vault plugin, set `defaultUser: false` and associate users through ACL bindings to the REDB. -{{}} +> [!NOTE] +> When using the Redis Enterprise Vault plugin, set `defaultUser: false` and associate users through ACL bindings to the REDB. -For complete field documentation, see the [Redis Enterprise database API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}). +For complete field documentation, see the [Redis Enterprise database API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md). ### Redis Enterprise Remote Cluster secrets @@ -379,9 +371,8 @@ REAADB resources include REDB specifications in the `globalConfigurations` field ## Manage secrets -{{}} -Complete field documentation is available in the [`RedisEnterpriseCluster` API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api" >}}) and [`RedisEnterpriseDatabase` API reference]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api" >}}). -{{}} +> [!NOTE] +> Complete field documentation is available in the [`RedisEnterpriseCluster` API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md) and [`RedisEnterpriseDatabase` API reference](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md). ### Redis Enterprise cluster secrets @@ -471,7 +462,7 @@ vault kv put -namespace= \ password= ``` -Reference this secret in your REC specification's `userDefinedModules` section. See [Configure modules]({{< relref "/operate/kubernetes/8.0.18/re-databases/modules" >}}) for details. +Reference this secret in your REC specification's `userDefinedModules` section. See [Configure modules](/content/operate/kubernetes/8.0.18/re-databases/modules.md) for details. ## Troubleshooting diff --git a/content/operate/kubernetes/8.0.18/upgrade/_index.md b/content/operate/kubernetes/8.0.18/upgrade/_index.md index c1521c78c5..f4717dab67 100644 --- a/content/operate/kubernetes/8.0.18/upgrade/_index.md +++ b/content/operate/kubernetes/8.0.18/upgrade/_index.md @@ -18,10 +18,10 @@ Keep your Redis Enterprise deployment up to date with the latest features, secur Choose the appropriate upgrade method for your deployment: -- [Upgrade Redis Enterprise for Kubernetes]({{}}) - Standard upgrade process for most Kubernetes distributions -- [Upgrade with OpenShift CLI]({{}}) - OpenShift-specific upgrade using CLI tools -- [Upgrade with OpenShift OperatorHub]({{}}) - Upgrade using OpenShift OperatorHub and OLM -- [Upgrade with Helm]({{}}) - Helm-specific upgrade instructions for chart-based deployments +- [Upgrade Redis Enterprise for Kubernetes](/content/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster.md) - Standard upgrade process for most Kubernetes distributions +- [Upgrade with OpenShift CLI](/content/operate/kubernetes/8.0.18/upgrade/openshift-cli.md) - OpenShift-specific upgrade using CLI tools +- [Upgrade with OpenShift OperatorHub](/content/operate/kubernetes/8.0.18/upgrade/upgrade-olm.md) - Upgrade using OpenShift OperatorHub and OLM +- [Upgrade with Helm](/content/operate/kubernetes/8.0.18/deployment/helm.md#upgrade-the-chart) - Helm-specific upgrade instructions for chart-based deployments ## Upgrade process @@ -35,7 +35,8 @@ The upgrade process includes updating three components in order: When upgrading, both your Kubernetes version and Redis operator version need to be supported at all times. -{{}}If your current Kubernetes distribution is not [supported]({{}}), upgrade to a supported distribution before upgrading. {{}} +> [!WARNING] +> If your current Kubernetes distribution is not [supported](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md), upgrade to a supported distribution before upgrading. ## RHEL9-based image @@ -47,6 +48,6 @@ As of version 7.8.2-6, Redis Enterprise images are based on Red Hat Enterprise L For detailed steps, see the relevant upgrade page: -- [OpenShift CLI]({{}}) -- [OpenShift OperatorHub]({{}}) -- [Kubernetes]({{}}) \ No newline at end of file +- [OpenShift CLI](/content/operate/kubernetes/8.0.18/upgrade/openshift-cli.md) +- [OpenShift OperatorHub](/content/operate/kubernetes/8.0.18/upgrade/upgrade-olm.md) +- [Kubernetes](/content/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster.md) \ No newline at end of file diff --git a/content/operate/kubernetes/8.0.18/upgrade/openshift-cli.md b/content/operate/kubernetes/8.0.18/upgrade/openshift-cli.md index 9621907687..8ab538a0de 100644 --- a/content/operate/kubernetes/8.0.18/upgrade/openshift-cli.md +++ b/content/operate/kubernetes/8.0.18/upgrade/openshift-cli.md @@ -26,7 +26,7 @@ See the [troubleshooting](#troubleshooting) section for details on recovering a #### Kubernetes version -Check [Supported Kubernetes distributions]({{}}) to make sure your Kubernetes distribution is supported. If not, upgrade your Kubernetes distribution before upgrading the Redis operator. +Check [Supported Kubernetes distributions](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md) to make sure your Kubernetes distribution is supported. If not, upgrade your Kubernetes distribution before upgrading the Redis operator. #### Redis operator version @@ -34,7 +34,7 @@ Your Redis Enterprise clusters must be running version 7.4.2-2 or later before u #### Redis database version -Your Redis databases must be running version 7.2 or later before upgrading your cluster version. See [upgrade databases](#upgrade-databases) for detailed steps. You can find your database version in the [REDB `spec.redisVersion` field]({{}}). +Your Redis databases must be running version 7.2 or later before upgrading your cluster version. See [upgrade databases](#upgrade-databases) for detailed steps. You can find your database version in the [REDB `spec.redisVersion` field](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisversion). #### User-defined modules @@ -44,7 +44,7 @@ If your databases use user-defined modules (custom non-bundled modules): - Define the user-defined modules in the REC custom resource before upgrading the database. - See [Edit `redisEnterpriseImageSpec`](#edit-redisenterpriseimagespec) for more details. -For more information about user-defined modules, see [User-defined modules]({{< relref "/operate/kubernetes/8.0.18/re-databases/modules#user-defined-modules" >}}). +For more information about user-defined modules, see [User-defined modules](/content/operate/kubernetes/8.0.18/re-databases/modules.md#user-defined-modules). #### RHEL9-compatible modules @@ -62,7 +62,7 @@ To see which modules are currently in use, run: curl -k -u : -X GET https://localhost:9443/v1/bdbs | jq -r '.[].module_list | map(.module_name + "-" + .semantic_version) | .[]' ``` -See [Upgrade modules]({{}}) for details on how to upgrade modules with the `rladmin` tool. +See [Upgrade modules](/content/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module.md) for details on how to upgrade modules with the `rladmin` tool. #### Valid license @@ -88,11 +88,12 @@ helm upgrade my-redis-enterprise redis/redis-enterprise-operator --version 7.8.2 After the Helm upgrade completes, continue with [upgrading the Redis Enterprise cluster](#upgrade-the-redis-enterprise-cluster) and [upgrading databases](#upgrade-databases). -For detailed Helm upgrade instructions, see [Upgrade the chart]({{}}). +For detailed Helm upgrade instructions, see [Upgrade the chart](/content/operate/kubernetes/8.0.18/deployment/helm.md#upgrade-the-chart). ## Upgrade the operator -{{}}If your databases use user-defined modules, set `autoUpgradeRedisEnterprise: false` in the REC custom resource before upgrading the operator.{{}} +> [!WARNING] +> If your databases use user-defined modules, set `autoUpgradeRedisEnterprise: false` in the REC custom resource before upgrading the operator. ### Download the bundle @@ -112,10 +113,9 @@ If you need a different release, replace `VERSION` in the above with a specific Apply the bundle to deploy the new operator binary. This will also apply any changes in the new release to custom resource definitions, roles, role binding, or operator service accounts. -{{< note >}} -If you are not pulling images from Docker Hub, update the operator image spec to point to your private repository. -If you have made changes to the role, role binding, RBAC, or custom resource definition (CRD) in the previous version, merge them with the updated declarations in the new version files. -{{< /note >}} +> [!NOTE] +> If you are not pulling images from Docker Hub, update the operator image spec to point to your private repository. +> If you have made changes to the role, role binding, RBAC, or custom resource definition (CRD) in the previous version, merge them with the updated declarations in the new version files. If you are using OpenShift, run this instead: @@ -138,9 +138,8 @@ deployment.apps/redis-enterprise-operator configured If you have the admission controller enabled, you need to manually reapply the `ValidatingWebhookConfiguration`. -{{}} -{{< embed-md "k8s-642-redb-admission-webhook-name-change.md" >}} -{{}} +> [!NOTE] +> {{< embed-md "k8s-642-redb-admission-webhook-name-change.md" >}} {{< embed-md "k8s-admission-webhook-cert.md" >}} @@ -159,27 +158,25 @@ NAME READY UP-TO-DATE AVAILABLE AGE redis-enterprise-operator 1/1 1 1 0m36s ``` -{{< warning >}} - We recommend upgrading the REC as soon as possible after updating the operator. After the operator upgrade completes, the operator suspends the management of the REC and its associated REDBs, until the REC upgrade completes. - {{< /warning >}} +> [!WARNING] +> We recommend upgrading the REC as soon as possible after updating the operator. After the operator upgrade completes, the operator suspends the management of the REC and its associated REDBs, until the REC upgrade completes. ## Security context constraints Upgrades to versions 7.22.0-6 and later run in **unprivileged mode** without any additional permissions or capabilities. If you don't specifally require additional capabilities, we recommend you maintain the default unprivileged mode, as its more secure. After upgrading, remove the existing `redis-enterprise-scc-v2` SCC and unbind it from the REC service account. -To enable automatic resource adjustment, see [Allow automatic resource adjustment > OpenShift upgrades]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment#openshift-upgrades" >}}). +To enable automatic resource adjustment, see [Allow automatic resource adjustment > OpenShift upgrades](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md#openshift-upgrades). ## Upgrade the Redis Enterprise cluster -{{}} -Verify your license is valid before upgrading. Invalid licenses will cause the upgrade to fail. - -Use `oc get rec` and verify the `LICENSE STATE` is valid on your REC before you start the upgrade process. -{{}} +> [!WARNING] +> Verify your license is valid before upgrading. Invalid licenses will cause the upgrade to fail. +> +> Use `oc get rec` and verify the `LICENSE STATE` is valid on your REC before you start the upgrade process. The Redis Enterprise cluster (REC) can be updated automatically or manually. To trigger automatic upgrade of the REC after the operator upgrade completes, specify `autoUpgradeRedisEnterprise: true` in your REC spec. If you don't have automatic upgrade enabled, follow the below steps for the manual upgrade. -Before beginning the upgrade of the Redis Enterprise cluster, check the K8s operator [release notes]({{}}) to find the Redis Enterprise image tag. +Before beginning the upgrade of the Redis Enterprise cluster, check the K8s operator [release notes](/content/operate/kubernetes/release-notes/_index.md) to find the Redis Enterprise image tag. After the operator upgrade is complete, you can upgrade Redis Enterprise cluster (REC). @@ -215,15 +212,14 @@ After the operator upgrade is complete, you can upgrade Redis Enterprise cluster The `name` field must match the `display_name` or `module_name` that appears in the module manifest (for example, "redisgears"). This enables the operator to run validation on the user-defined module. If these names don't match, the operator can't run validation on the user-defined module and preventable errors may occur. - {{< note >}} -Adding or modifying the `userDefinedModules` list triggers a rolling restart of the Redis Enterprise cluster pods in addition to the rolling upgrade for the version change. - {{< /note >}} + > [!NOTE] + > Adding or modifying the `userDefinedModules` list triggers a rolling restart of the Redis Enterprise cluster pods in addition to the rolling upgrade for the version change. 1. Save the changes to apply. ### Reapply roles and role bindings -If your operator is monitoring multiple namespaces, you'll need to [reapply your role and role bindings]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace#create-role-and-role-binding-for-managed-namespaces" >}}) for each managed namespace. See [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace" >}}) for more details. +If your operator is monitoring multiple namespaces, you'll need to [reapply your role and role bindings](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md#create-role-and-role-binding-for-managed-namespaces) for each managed namespace. See [Manage databases in multiple namespaces](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md) for more details. ### Monitor the upgrade @@ -257,11 +253,11 @@ If your REAADB uses supported modules, keep the existing `moduleList` version nu #### Upgrade with user-defined modules -If a user-defined module is used by any database in the cluster, the module must be defined in the REC custom resource before upgrading the database. See [Add user-defined modules to the REC]({{< relref "/operate/kubernetes/8.0.18/re-databases/modules#add-user-defined-modules-to-the-rec" >}}) for detailed instructions. +If a user-defined module is used by any database in the cluster, the module must be defined in the REC custom resource before upgrading the database. See [Add user-defined modules to the REC](/content/operate/kubernetes/8.0.18/re-databases/modules.md#add-user-defined-modules-to-the-rec) for detailed instructions. #### General upgrade notes -Note that if your cluster [`redisUpgradePolicy`]({{}}) or your database [`redisVersion`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#redisversion" >}}) are set to `major`, you won't be able to upgrade those databases to minor versions. See [Redis upgrade policy]({{< relref "/operate/rs/installing-upgrading/upgrading#redis-upgrade-policy" >}}) for more details. +Note that if your cluster [`redisUpgradePolicy`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#redisupgradepolicy) or your database [`redisVersion`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisversion) are set to `major`, you won't be able to upgrade those databases to minor versions. See [Redis upgrade policy](/content/operate/rs/installing-upgrading/upgrading/_index.md#redis-upgrade-policy) for more details. ## Troubleshooting diff --git a/content/operate/kubernetes/8.0.18/upgrade/upgrade-olm.md b/content/operate/kubernetes/8.0.18/upgrade/upgrade-olm.md index 0910e1efa3..14e17d6222 100644 --- a/content/operate/kubernetes/8.0.18/upgrade/upgrade-olm.md +++ b/content/operate/kubernetes/8.0.18/upgrade/upgrade-olm.md @@ -26,7 +26,7 @@ See the [troubleshooting](#troubleshooting) section for details on recovering a #### Kubernetes version -Check [Supported Kubernetes distributions]({{}}) to make sure your Kubernetes distribution is supported. If not, upgrade your Kubernetes distribution before upgrading the Redis operator. +Check [Supported Kubernetes distributions](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md) to make sure your Kubernetes distribution is supported. If not, upgrade your Kubernetes distribution before upgrading the Redis operator. #### Redis operator version @@ -34,7 +34,7 @@ Your Redis Enterprise clusters must be running version 7.4.2-2 or later before u #### Redis database version -Your Redis databases must be running version 7.2 or later before upgrading your cluster version. See [upgrade databases](#upgrade-databases) for detailed steps. You can find your database version in the [REDB `spec.redisVersion` field]({{}}). +Your Redis databases must be running version 7.2 or later before upgrading your cluster version. See [upgrade databases](#upgrade-databases) for detailed steps. You can find your database version in the [REDB `spec.redisVersion` field](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisversion). ### User-defined modules @@ -44,7 +44,7 @@ If your databases use user-defined modules (custom non-bundled modules): - Define the user-defined modules in the REC custom resource before upgrading the database. - See [Edit `redisEnterpriseImageSpec`](#edit-redisenterpriseimagespec) for more details. -For more information about user-defined modules, see [User-defined modules]({{< relref "/operate/kubernetes/8.0.18/re-databases/modules#user-defined-modules" >}}). +For more information about user-defined modules, see [User-defined modules](/content/operate/kubernetes/8.0.18/re-databases/modules.md#user-defined-modules). ### Valid license @@ -70,19 +70,18 @@ You can monitor the upgrade from the **Installed Operators** page. A new Redis E Upgrades to versions 7.22.0-6 and later run in **unprivileged mode** without any additional permissions or capabilities. If you don't specifally require additional capabilities, we recommend you maintain the default unprivileged mode, as its more secure. After upgrading, remove the existing `redis-enterprise-scc-v2` SCC and unbind it from the REC service account. -To enable automatic resource adjustment, see [Allow automatic resource adjustment > OpenShift upgrades]({{< relref "/operate/kubernetes/8.0.18/security/allow-resource-adjustment#openshift-upgrades" >}}). +To enable automatic resource adjustment, see [Allow automatic resource adjustment > OpenShift upgrades](/content/operate/kubernetes/8.0.18/security/allow-resource-adjustment.md#openshift-upgrades). ## Upgrade the Redis Enterprise cluster -{{}} -Verify your license is valid before upgrading. Invalid licenses will cause the upgrade to fail. - -Use `oc get rec` and verify the `LICENSE STATE` is valid on your REC before you start the upgrade process. -{{}} +> [!WARNING] +> Verify your license is valid before upgrading. Invalid licenses will cause the upgrade to fail. +> +> Use `oc get rec` and verify the `LICENSE STATE` is valid on your REC before you start the upgrade process. The Redis Enterprise cluster (REC) can be updated automatically or manually. To trigger automatic upgrade of the REC after the operator upgrade completes, specify `autoUpgradeRedisEnterprise: true` in your REC spec. If you don't have automatic upgrade enabled, follow the below steps for the manual upgrade. -Before beginning the upgrade of the Redis Enterprise cluster, check the K8s operator [release notes]({{}}) to find the Redis Enterprise image tag. +Before beginning the upgrade of the Redis Enterprise cluster, check the K8s operator [release notes](/content/operate/kubernetes/release-notes/_index.md) to find the Redis Enterprise image tag. After the operator upgrade is complete, you can upgrade Redis Enterprise cluster (REC). @@ -118,15 +117,14 @@ After the operator upgrade is complete, you can upgrade Redis Enterprise cluster The `name` field must match the `display_name` or `module_name` that appears in the module manifest (for example, "redisgears"). This enables the operator to run validation on the user-defined module. If these names don't match, the operator can't run validation on the user-defined module and preventable errors may occur. - {{< note >}} -Adding or modifying the `userDefinedModules` list triggers a rolling restart of the Redis Enterprise cluster pods in addition to the rolling upgrade for the version change. - {{< /note >}} + > [!NOTE] + > Adding or modifying the `userDefinedModules` list triggers a rolling restart of the Redis Enterprise cluster pods in addition to the rolling upgrade for the version change. 1. Save the changes to apply. ### Reapply roles and role bindings -If your operator is monitoring multiple namespaces, you'll need to [reapply your role and role bindings]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace#create-role-and-role-binding-for-managed-namespaces" >}}) for each managed namespace. See [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace" >}}) for more details. +If your operator is monitoring multiple namespaces, you'll need to [reapply your role and role bindings](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md#create-role-and-role-binding-for-managed-namespaces) for each managed namespace. See [Manage databases in multiple namespaces](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md) for more details. ### Monitor the upgrade @@ -160,7 +158,7 @@ If your REAADB uses supported modules, keep the existing `moduleList` version nu ### General upgrade notes -Note that if your cluster [`redisUpgradePolicy`]({{}}) or your database [`redisVersion`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#redisversion" >}}) are set to `major`, you won't be able to upgrade those databases to minor versions. See [Redis upgrade policy]({{< relref "/operate/rs/installing-upgrading/upgrading#redis-upgrade-policy" >}}) for more details. +Note that if your cluster [`redisUpgradePolicy`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#redisupgradepolicy) or your database [`redisVersion`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisversion) are set to `major`, you won't be able to upgrade those databases to minor versions. See [Redis upgrade policy](/content/operate/rs/installing-upgrading/upgrading/_index.md#redis-upgrade-policy) for more details. The Redis Enterprise cluster (REC) can be updated automatically or manually. To trigger automatic upgrade of the REC after the operator upgrade completes, specify `autoUpgradeRedisEnterprise: true` in your REC spec. If you don't have automatic upgrade enabled, follow the below steps for the manual upgrade. diff --git a/content/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster.md b/content/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster.md index 5ac119b31a..64dafa7cba 100644 --- a/content/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster.md +++ b/content/operate/kubernetes/8.0.18/upgrade/upgrade-redis-cluster.md @@ -26,15 +26,15 @@ See the [troubleshooting](#troubleshooting) section for details on recovering a ### Kubernetes version -Check [Supported Kubernetes distributions]({{}}) to make sure your Kubernetes distribution is supported by your target Redis Enterprise operator version. If not, upgrade your Kubernetes distribution before upgrading the Redis operator. +Check [Supported Kubernetes distributions](/content/operate/kubernetes/8.0.18/reference/supported_k8s_distributions.md) to make sure your Kubernetes distribution is supported by your target Redis Enterprise operator version. If not, upgrade your Kubernetes distribution before upgrading the Redis operator. ### Redis operator version -Check the [Redis Enterprise for Kubernetes release notes]({{}}) for the minimum operator version required for your target upgrade. Some versions may require intermediate upgrades. +Check the [Redis Enterprise for Kubernetes release notes](/content/operate/kubernetes/release-notes/_index.md) for the minimum operator version required for your target upgrade. Some versions may require intermediate upgrades. ### Redis database version -Check the release notes for your target version to determine the minimum Redis database version required. See [upgrade databases](#upgrade-databases) for detailed steps. You can find your database version in the [REDB `spec.redisVersion` field]({{}}). +Check the release notes for your target version to determine the minimum Redis database version required. See [upgrade databases](#upgrade-databases) for detailed steps. You can find your database version in the [REDB `spec.redisVersion` field](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisversion). ### User-defined modules @@ -44,7 +44,7 @@ If your databases use user-defined modules (custom non-bundled modules): - Define the user-defined modules in the REC custom resource before upgrading the database. - See [Edit `redisEnterpriseImageSpec`](#edit-redisenterpriseimagespec-in-the-rec-spec) for more details. -For more information about user-defined modules, see [User-defined modules]({{< relref "/operate/kubernetes/8.0.18/re-databases/modules#user-defined-modules" >}}). +For more information about user-defined modules, see [User-defined modules](/content/operate/kubernetes/8.0.18/re-databases/modules.md#user-defined-modules). ### Valid license @@ -75,11 +75,12 @@ helm upgrade redis/redis-enterprise-operator --version }}). +For detailed Helm upgrade instructions, see [Upgrade the chart](/content/operate/kubernetes/8.0.18/deployment/helm.md#upgrade-the-chart). ## Upgrade the operator -{{}}If your databases use user-defined modules, set `autoUpgradeRedisEnterprise: false` in the REC custom resource before upgrading the operator.{{}} +> [!WARNING] +> If your databases use user-defined modules, set `autoUpgradeRedisEnterprise: false` in the REC custom resource before upgrading the operator. ### Download the bundle @@ -100,10 +101,9 @@ If you need a different release, replace `VERSION` in the above with a specific Apply the bundle to deploy the new operator binary. This will also apply any changes in the new release to custom resource definitions, roles, role binding, or operator service accounts. -{{< note >}} -If you are not pulling images from Docker Hub, update the operator image spec to point to your private repository. -If you have made changes to the role, role binding, RBAC, or custom resource definition (CRD) in the previous version, merge them with the updated declarations in the new version files. -{{< /note >}} +> [!NOTE] +> If you are not pulling images from Docker Hub, update the operator image spec to point to your private repository. +> If you have made changes to the role, role binding, RBAC, or custom resource definition (CRD) in the previous version, merge them with the updated declarations in the new version files. Upgrade the bundle and operator with a single command, passing in the bundle YAML file: @@ -126,9 +126,8 @@ deployment.apps/redis-enterprise-operator configured If you have the admission controller enabled, you need to manually reapply the `ValidatingWebhookConfiguration`. -{{}} -{{< embed-md "k8s-642-redb-admission-webhook-name-change.md" >}} -{{}} +> [!NOTE] +> {{< embed-md "k8s-642-redb-admission-webhook-name-change.md" >}} {{< embed-md "k8s-admission-webhook-cert.md" >}} @@ -147,25 +146,22 @@ NAME READY UP-TO-DATE AVAILABLE AGE redis-enterprise-operator 1/1 1 1 0m36s ``` -{{< warning >}} -We recommend upgrading the REC as soon as possible after updating the operator. After the operator upgrade completes, the operator suspends the management of the REC and its associated REDBs, until the REC upgrade completes. -{{< /warning >}} +> [!WARNING] +> We recommend upgrading the REC as soon as possible after updating the operator. After the operator upgrade completes, the operator suspends the management of the REC and its associated REDBs, until the REC upgrade completes. ## Upgrade the Redis Enterprise cluster (REC) The Redis Enterprise cluster (REC) can be updated automatically or manually. To trigger automatic upgrade of the REC after the operator upgrade completes, specify `autoUpgradeRedisEnterprise: true` in your REC spec. If you don't have automatic upgrade enabled, follow the below steps for the manual upgrade. -{{}} -Automatic upgrade is incompatible with image digest hashes. If you set a `digestHash` in any image spec (`redisEnterpriseImageSpec`, `redisEnterpriseServicesRiggerImageSpec`, `bootstrapperImageSpec`, or `usageMeter.callHomeClient.imageSpec`) while `autoUpgradeRedisEnterprise` is `true`, the operator invalidates the REC spec and publishes a Kubernetes warning event. Remove all `digestHash` values before you enable automatic upgrade, or upgrade the cluster [manually](#edit-redisenterpriseimagespec-in-the-rec-spec) instead. -{{}} +> [!WARNING] +> Automatic upgrade is incompatible with image digest hashes. If you set a `digestHash` in any image spec (`redisEnterpriseImageSpec`, `redisEnterpriseServicesRiggerImageSpec`, `bootstrapperImageSpec`, or `usageMeter.callHomeClient.imageSpec`) while `autoUpgradeRedisEnterprise` is `true`, the operator invalidates the REC spec and publishes a Kubernetes warning event. Remove all `digestHash` values before you enable automatic upgrade, or upgrade the cluster [manually](#edit-redisenterpriseimagespec-in-the-rec-spec) instead. -Before beginning the upgrade of the Redis Enterprise cluster, check the [Redis Enterprise for Kubernetes release notes]({{}}) to find the Redis Enterprise image tag for your target version. +Before beginning the upgrade of the Redis Enterprise cluster, check the [Redis Enterprise for Kubernetes release notes](/content/operate/kubernetes/release-notes/_index.md) to find the Redis Enterprise image tag for your target version. After the operator upgrade is complete, you can upgrade Redis Enterprise cluster (REC). -{{}} -For Active-Active databases, we recommend upgrading all participating clusters to the same operator version. -{{}} +> [!NOTE] +> For Active-Active databases, we recommend upgrading all participating clusters to the same operator version. ### Edit `redisEnterpriseImageSpec` in the REC spec @@ -199,15 +195,14 @@ For Active-Active databases, we recommend upgrading all participating clusters t The `name` field must match the `display_name` or `module_name` that appears in the module manifest (for example, "redisgears"). This enables the operator to run validation on the user-defined module. If these names don't match, the operator can't run validation on the user-defined module and preventable errors may occur. - {{< note >}} -Adding or modifying the `userDefinedModules` list triggers a rolling restart of the Redis Enterprise cluster pods in addition to the rolling upgrade for the version change. - {{< /note >}} + > [!NOTE] + > Adding or modifying the `userDefinedModules` list triggers a rolling restart of the Redis Enterprise cluster pods in addition to the rolling upgrade for the version change. 1. Save the changes to apply. ### Reapply roles and role bindings -If your operator is monitoring multiple namespaces, you'll need to [reapply your role and role bindings]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace#create-role-and-role-binding-for-managed-namespaces" >}}) for each managed namespace. See [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/8.0.18/re-clusters/multi-namespace" >}}) for more details. +If your operator is monitoring multiple namespaces, you'll need to [reapply your role and role bindings](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md#create-role-and-role-binding-for-managed-namespaces) for each managed namespace. See [Manage databases in multiple namespaces](/content/operate/kubernetes/8.0.18/re-clusters/multi-namespace.md) for more details. ### Monitor the upgrade @@ -245,11 +240,11 @@ If your REAADB uses supported modules, keep the existing `moduleList` version nu ### Upgrade with user-defined modules -If a user-defined module is used by any database in the cluster, the module must be defined in the REC custom resource before upgrading the database. See [Add user-defined modules to the REC]({{< relref "/operate/kubernetes/8.0.18/re-databases/modules#add-user-defined-modules-to-the-rec" >}}) for detailed instructions. +If a user-defined module is used by any database in the cluster, the module must be defined in the REC custom resource before upgrading the database. See [Add user-defined modules to the REC](/content/operate/kubernetes/8.0.18/re-databases/modules.md#add-user-defined-modules-to-the-rec) for detailed instructions. ### Upgrade policy -Note that if your cluster [`redisUpgradePolicy`]({{}}) or your database [`redisVersion`]({{< relref "/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api#redisversion" >}}) are set to `major`, you won't be able to upgrade those databases to minor versions. See [Redis upgrade policy]({{< relref "/operate/rs/installing-upgrading/upgrading#redis-upgrade-policy" >}}) for more details. +Note that if your cluster [`redisUpgradePolicy`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_cluster_api.md#redisupgradepolicy) or your database [`redisVersion`](/content/operate/kubernetes/8.0.18/reference/api/redis_enterprise_database_api.md#redisversion) are set to `major`, you won't be able to upgrade those databases to minor versions. See [Redis upgrade policy](/content/operate/rs/installing-upgrading/upgrading/_index.md#redis-upgrade-policy) for more details. ## Troubleshooting @@ -277,7 +272,7 @@ If your databases use user-defined modules and you encounter upgrade issues: kubectl describe rec ``` -For more information about user-defined modules, see [User-defined modules]({{< relref "/operate/kubernetes/8.0.18/re-databases/modules#user-defined-modules" >}}). +For more information about user-defined modules, see [User-defined modules](/content/operate/kubernetes/8.0.18/re-databases/modules.md#user-defined-modules). ### Invalid module version