{
  "id": "helm",
  "title": "Install Redis Enterprise Helm chart",
  "url": "https://redis.io/docs/latest/operate/kubernetes/8.0.18/deployment/helm/",
  "summary": "Install Redis Enterprise for Kubernetes version 7.8.6 using Helm charts.",
  "content": "Helm charts provide a simple way to install the Redis Enterprise for Kubernetes operator in just a few steps. For more information about Helm, go to [https://helm.sh/docs/](https://helm.sh/docs/).\n\n## Prerequisites\n\n- A [supported distribution](https://redis.io/docs/latest/operate/kubernetes/reference/supported_k8s_distributions) of Kubernetes.\n- At least three worker nodes.\n- [Kubernetes client (kubectl)](https://kubernetes.io/docs/tasks/tools/).\n- [Helm 3.10 or later](https://helm.sh/docs/intro/install/)\n    or 3.18 for migrating from a non-Helm installation.\n\nIf you suspect your file descriptor limits are below 100,000, you must either manually increase limits or [Allow automatic resource adjustment](https://redis.io/docs/latest/operate/kubernetes/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.\n\n### Example values\n\nThe steps below use the following placeholders to indicate command line parameters you must provide:\n\n- `\u003crepo-name\u003e` is the name of the repo holding your Helm chart (example: `redis`).\n- `\u003crelease-name\u003e` is the name you give a specific installation of the Helm chart (example: `my-redis-enterprise-operator`)\n- `\u003cchart-version\u003e` is the version of the Helm chart you are installing (example: `7.8.6-2`). Verify that the version you specify is listed in the [Redis Helm repository](https://helm.redis.io/). Using an invalid version number causes installation failures.\n- `\u003cnamespace-name\u003e` is the name of the new namespace the Redis operator will run in (example: `ns1`)\n- `\u003cpath-to-chart\u003e` is the filepath to the Helm chart, if it is stored in a local directory (example: `/home/charts/redis-enterprise-operator`)\n\n## Install the operator\n\nBelow are several ways to install the operator using Helm. To create the REC in the same step, see [Create the REC at install time](#create-the-rec-at-install-time).\n\n- [Install from the Redis Helm repository](#install-from-the-redis-helm-repository)\n- [Install from local directory](#install-from-local-directory)\n- [Specify values during install](#specify-values-during-install)\n- [Install with values file](#install-with-values-file)\n\n### Install from the Redis Helm repository\n\n1. Add the Redis repository.\n\n   ```sh\n   helm repo add \u003crepo-name\u003e https://helm.redis.io\n   ```\n\n2. Install the Helm chart into a new namespace.\n\n```sh\nhelm install \u003crelease-name\u003e \u003crepo-name\u003e/redis-enterprise-operator \\\n    --version \u003cchart-version\u003e \\\n    --namespace \u003cnamespace-name\u003e \\\n    --create-namespace\n```\n\nTo install with Openshift, add `--set openshift.mode=true`.\n\nTo monitor the installation add the `--debug` flag. The installation runs several jobs synchronously and may take a few minutes to complete.\n\n### Install from local directory\n\n1. Find the latest release on the [redis-enterprise-k8s-docs](https://github.com/RedisLabs/redis-enterprise-k8s-docs/releases) repo and download the `tar.gz` source code into a local directory.\n\n2. Install the Helm chart from your local directory.\n\n```sh\nhelm install \u003crelease-name\u003e \u003cpath-to-chart\u003e \\\n    --namespace \u003cnamespace-name\u003e \\\n    --create-namespace\n```\n\nTo install with Openshift, add `--set openshift.mode=true`.\n\nTo monitor the installation add the `--debug` flag. The installation runs several jobs synchronously and may take a few minutes to complete.\n\n### Specify values during install\n\n1. View configurable values with `helm show values \u003crepo-name\u003e/redis-enterprise-operator`.\n\n2. Install the Helm chart, overriding specific value defaults using `--set`.\n\n```sh\nhelm install \u003crelease-name\u003e \u003crepo-name\u003e/redis-enterprise-operator \\\n    --version \u003cchart-version\u003e \\\n    --namespace \u003cnamespace-name\u003e \\\n    --create-namespace\n    --set \u003ckey1\u003e=\u003cvalue1\u003e \\\n    --set \u003ckey2\u003e=\u003cvalue2\u003e\n```\n\n### Install with values file\n\n1. View configurable values with `helm show values \u003crepo-name\u003e/redis-enterprise-operator`.\n\n2. Create a YAML file to specify the values you want to configure.\n\n3. Install the chart with the `--values` option.\n\n```sh\nhelm install \u003crelease-name\u003e \u003crepo-name\u003e/redis-enterprise-operator \\\n    --version \u003cchart-version\u003e \\\n    --namespace \u003cnamespace-name\u003e \\\n    --create-namespace \\\n    --values \u003cpath-to-values-file\u003e\n```\n\n## Create the REC at install time\n\nThe 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](https://redis.io/docs/latest/operate/kubernetes/reference/api/redis_enterprise_cluster_api).\n\n\n`cluster.create` defaults to `false`. When `false`, the chart installs only the operator and you create the REC yourself.\n\n\n1. Create a values file with a `cluster` section. For example:\n\n    ```yaml\n    cluster:\n      create: true\n      spec:\n        nodes: 3\n        redisEnterpriseImageSpec:\n          repository: redislabs/redis\n        redisEnterpriseServicesRiggerImageSpec:\n          repository: redislabs/k8s-controller\n        bootstrapperImageSpec:\n          repository: redislabs/operator\n    ```\n\n2. Install the chart with the values file.\n\n    ```sh\n    helm install \u003crelease-name\u003e \u003crepo-name\u003e/redis-enterprise-operator \\\n        --version \u003cchart-version\u003e \\\n        --namespace \u003cnamespace-name\u003e \\\n        --create-namespace \\\n        --values \u003cpath-to-values-file\u003e\n    ```\n\n    The chart runs a Kubernetes Job to create the REC. The Job deletes itself on success.\n\n3. Confirm the operator deployment is running.\n\n    ```sh\n    kubectl get deployment redis-enterprise-operator --namespace \u003cnamespace-name\u003e\n    ```\n\n4. Wait for the REC to reach the `Running` state. Initialization takes about a minute.\n\n    ```sh\n    kubectl get rec --namespace \u003cnamespace-name\u003e\n    ```\n\nTo update or uninstall an REC created by the chart, see [Update an REC created by the chart](#update-an-rec-created-by-the-chart) and [Uninstall the REC and operator together](#uninstall-the-rec-and-operator-together).\n\n## Upgrade the chart\n\nTo upgrade an existing Helm chart installation:\n\n```sh\nhelm upgrade \u003crelease-name\u003e \u003crepo-name\u003e/redis-enterprise-operator --version \u003cchart-version\u003e\n```\n\nYou can also upgrade from a local directory:\n\n```sh\nhelm upgrade \u003crelease-name\u003e \u003cpath-to-chart\u003e\n```\n\nFor example, to upgrade a chart with the release name `my-redis-enterprise` from the chart's root directory:\n\n```sh\nhelm upgrade my-redis-enterprise .\n```\n\nTo upgrade with OpenShift, add `--set openshift.mode=true`.\n\nThe upgrade process automatically updates the operator and its components, including the Custom Resource Definitions (CRDs). The CRDs are versioned and update only if the new version is higher than the existing version.\n\nAfter 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/).\n\n\nIf 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](https://redis.io/docs/latest/operate/kubernetes/upgrade/upgrade-redis-cluster#user-defined-modules) for details.\n\n\nFor more information and options when upgrading charts, see [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/).\n\n### Update an REC created by the chart\n\nIf you used `cluster.create: true`, change REC settings by editing `cluster.spec` in your values file and running `helm upgrade`.\n\n1. Update your values file. For example, to add labels:\n\n    ```yaml\n    cluster:\n      create: true\n      spec:\n        nodes: 3\n        redisEnterpriseImageSpec:\n          repository: redislabs/redis\n        redisEnterpriseServicesRiggerImageSpec:\n          repository: redislabs/k8s-controller\n        bootstrapperImageSpec:\n          repository: redislabs/operator\n        extraLabels:\n          environment: production\n    ```\n\n2. Apply the changes.\n\n    ```sh\n    helm upgrade \u003crelease-name\u003e \u003crepo-name\u003e/redis-enterprise-operator \\\n        --namespace \u003cnamespace-name\u003e \\\n        --values \u003cpath-to-values-file\u003e\n    ```\n\n    Some REC fields trigger a StatefulSet rolling update. Others, such as `extraLabels`, take effect immediately.\n\n3. Confirm the change.\n\n    ```sh\n    kubectl get rec \u003crec-name\u003e --namespace \u003cnamespace-name\u003e -o yaml\n    ```\n\n## Uninstall\n\n1. Delete any custom resources managed by the operator. See [Delete custom resources](https://redis.io/docs/latest/operate/kubernetes/re-clusters/delete-custom-resources) for detailed steps. You must delete custom resources in the correct order to avoid errors.\n\n2. Uninstall the Helm chart.\n\n```sh\nhelm uninstall \u003crelease-name\u003e\n```\n\nThis removes all Kubernetes resources associated with the chart and deletes the release.\n\nCustom 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`.\n\n### Uninstall the REC and operator together\n\nWhen `cluster.create` is `true`, `helm uninstall` removes both the REC and the operator. You don't need to delete the REC first.\n\n```sh\nhelm uninstall \u003crelease-name\u003e --namespace \u003cnamespace-name\u003e\n```\n\nConfirm all resources are gone.\n\n```sh\nkubectl get all --namespace \u003cnamespace-name\u003e\n```\n\n\nThis applies only to RECs the chart created. If you created the REC outside the chart, follow [Delete custom resources](https://redis.io/docs/latest/operate/kubernetes/re-clusters/delete-custom-resources) before you run `helm uninstall`.\n\n\n## Migrate from a non-Helm installation\n\nTo migrate an existing non-Helm installation of the Redis Enterprise operator to a Helm-based installation:\n\n1. [Upgrade](https://redis.io/docs/latest/operate/kubernetes/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.\n\n2. [Install](#install-the-operator) the Helm chart adding the `--take-ownership` flag:\n\n   ```sh\n   helm install \u003crelease-name\u003e \u003crepo-name\u003e/redis-enterprise-operator --take-ownership\n   ```\n\n   - The `--take-ownership` flag is available with Helm versions 3.18 or later.\n   - This flag is only needed for the first installation of the chart. Subsequent upgrades don't require this flag.\n   - Use the `helm install` command, not `helm upgrade`.\n\n3. Delete the old `ValidatingWebhookConfiguration` object from the previous non-Helm installation:\n\n   ```sh\n   kubectl delete validatingwebhookconfiguration redis-enterprise-admission\n   ```\n\n   This step is only needed when the `admission.limitToNamespace` chart value is set to `true` (the default). In this case, the webhook object installed by the chart is named `redis-enterprise-admission-\u003cnamespace\u003e`, and the original webhook object, named `redis-enterprise-admission`, becomes redundant. If `admission.limitToNamespace` is set to `false`, the webhook installed by the chart is named `redis-enterprise-admission`, and the existing webhook object is reused.\n\n## Known limitations\n\n- Custom resources other than the REC must still be created using the standard process. The chart doesn't manage them.\n- The chart doesn't include configuration options for multiple namespaces, rack-awareness, and Vault integration. The steps for configuring these options remain the same.\n- The chart has had limited testing in advanced setups, including Active-Active configurations, air-gapped deployments, and IPv6/dual-stack environments.\n",
  "tags": ["docs","operate","kubernetes"],
  "last_updated": "2026-06-04T14:49:57+01:00"
}
