Skip to content

K8s: helm upgrade changes #1640

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 68 additions & 13 deletions content/operate/kubernetes/deployment/helm.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,13 @@ weight: 11

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/).

{{<note>}} This feature is currently in public preview and is not supported on production workloads. Only new installations of the Redis operator are supported at this time. The steps for [creating the RedisEnterpriseCluster (REC)]({{<relref "operate/kubernetes/deployment/quick-start#create-a-redis-enterprise-cluster-rec">}}) and other custom resources remain the same.{{</note>}}

## Prerequisites

- A [supported distribution]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions" >}}) 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/).
- [Helm 3.10 or later](https://helm.sh/docs/intro/install/)
or 3.18 for migrating from a non-Helm installation.

### Example values

Expand All @@ -35,14 +34,14 @@ The steps below use the following placeholders to indicate command line paramete

1. Add the Redis repository.

```sh
helm repo add <repo-name> https://helm.redis.io/
```
```sh
helm repo add <repo-name> https://helm.redis.io/
```

2. Install the Helm chart into a new namespace.

```sh
helm install <release-name> redis/redis-enterprise-operator \
helm install <release-name> <repo-name>/redis-enterprise-operator \
--version <chart-version> \
--namespace <namespace-name> \
--create-namespace
Expand Down Expand Up @@ -70,12 +69,12 @@ To monitor the installation add the `--debug` flag. The installation runs severa

### Specify values during install

1. View configurable values with `helm show values <repo-name>/<chart-name>`.
1. View configurable values with `helm show values <repo-name>/redis-enterprise-operator`.

2. Install the Helm chart, overriding specific value defaults using `--set`.

```sh
helm install <operator-name> redis/redis-enterprise-operator \
helm install <operator-name> <repo-name>/redis-enterprise-operator \
--version <release-name> \
Copy link

@randv1r randv1r Jun 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not related to the change, but should be chart-version instead of release-name here.

--namespace <namespace-name> \
--create-namespace
Expand All @@ -85,20 +84,77 @@ helm install <operator-name> redis/redis-enterprise-operator \

### Install with values file

1. View configurable values with `helm show values <repo-name>/<chart-name>`.
1. View configurable values with `helm show values <repo-name>/redis-enterprise-operator`.

2. Create a YAML file to specify the values you want to configure.

3. Install the chart with the `--values` option.

```sh
helm install <operator-name> redis/redis-enterprise-operator \
helm install <operator-name> <repo-name>/redis-enterprise-operator \
--version <release-name> \
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

similarly here

--namespace <namespace-name> \
--create-namespace \
--values <path-to-values-file>
```

## 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]({{<relref "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.

2. [Install](#install) the Helm chart adding the `--take-ownership` flag:

```sh
helm install <release-name> <path-to-chart> --take-ownership
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this should use the Helm repo syntax (helm install <repo-name>/redis-enterprise-operator...), being that:

  1. This is the primary method used throughout this article (we only mention that local directory option in one specific section).
  2. This is anyway the typical method Helm is used...

```

- The `--take-ownership` flag is available with Helm versions 3.18 or later.
- This flag is only needed for the first installation of the chart. Subsequent upgrades don't require this flag.
- Use the `helm install` command, not `helm upgrade`.

3. Delete the old `ValidatingWebhookConfiguration` object from the previous non-Helm installation:

```sh
kubectl delete validatingwebhookconfiguration redis-enterprise-admission
```

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-<namespace>`. 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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering whether it's useful to include a little more information as to why this is needed.
Something like (new text in bold):

In this case, the webhook object installed by the chart is named redis-enterprise-admission-<namespace>, and the original webhook object, named redis-enterprise-admission, becomes redundant. If admission.limitToNamespace is set to false...

Not sure if this is "too much information" though.


## Upgrade the chart

To upgrade an existing Helm chart installation:

```sh
helm upgrade <release-name> <path-to-chart>
```

For example, to upgrade a chart with the release name `my-redis-enterprise` from the chart's root directory:

```sh
helm upgrade my-redis-enterprise .
```

You can also upgrade using the Redis Helm repository:

```sh
helm upgrade <release-name> <repo-name>/redis-enterprise-operator --version <chart-version>
Comment on lines +135 to +142
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here too, maybe just use the Helm repo method, or at least inverse the order?

```

To upgrade the chart on **OpenShift**, include the `openshift.mode=true` parameter:

```sh
helm upgrade <release-name> <path-to-chart> \
--set openshift.mode=true
```
Comment on lines +145 to +150
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering whether this merits an explicit note like this.
Maybe just add the following sentence, like we do in the other install sections:

To install with Openshift, add --set openshift.mode=true.


The 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.

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/).

For more information and options when upgrading charts, see [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/).

## Uninstall

1. Delete any custom resources managed by the operator. See [Delete custom resources]({{<relref "operate/kubernetes/re-clusters/delete-custom-resources">}}) for detailed steps. You must delete custom resources in the correct order to avoid errors.
Expand All @@ -115,7 +171,6 @@ This removes all Kubernetes resources associated with the chart and deletes the

## Known limitations

- Only new installations of the Redis operator are supported at this time. The steps for [creating the RedisEnterpriseCluster (REC)]({{<relref "operate/kubernetes/deployment/quick-start#create-a-redis-enterprise-cluster-rec">}}) and other custom resources remain the same.
- Upgrades and migrations are not supported.
- The steps for [creating the RedisEnterpriseCluster (REC)]({{<relref "operate/kubernetes/deployment/quick-start#create-a-redis-enterprise-cluster-rec">}}) and other custom resources remain the same.
- The chart doesn't include configuration options for multiple namespaces, rack-awareness, and Vault integration. The steps for configuring these options remain the same.
- The chart has had limited testing in advanced setups, including Active-Active configurations, air-gapped deployments, and IPv6/dual-stack environments.
2 changes: 2 additions & 0 deletions content/operate/kubernetes/upgrade/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ The upgrade process includes updating three components:
2. Upgrade the Redis Enterprise cluster (REC)
3. Upgrade Redis Enterprise databases (REDB)

If you installed using Helm charts, see [Upgrade the chart]({{<relref "/operate/kubernetes/deployment/helm#upgrade-the-chart">}}) for Helm-specific upgrade instructions.

If you are using OpenShift, see [Upgrade Redis Enterprise with OpenShift CLI]({{<relref "/operate/kubernetes/upgrade/openshift-cli">}}) or [Upgrade Redis Enterprise with OpenShift OperatorHub]({{<relref "/operate/kubernetes/upgrade/upgrade-olm">}}).

For all other Kubernetes distributions, see [Upgrade Redis Enterprise for Kubernetes]({{<relref "/operate/kubernetes/upgrade/upgrade-redis-cluster" >}}).
Expand Down
26 changes: 24 additions & 2 deletions content/operate/kubernetes/upgrade/openshift-cli.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
Title: Upgrade Redis Enterprise with OpenShift CLI
Title: Upgrade Redis Enterprise with OpenShift CLI
alwaysopen: false
categories:
- docs
Expand Down Expand Up @@ -57,6 +57,28 @@ See [Upgrade modules]({{<relref "/operate/oss_and_stack/stack-with-enterprise/in

Use `kubectl get rec` and verify the `LICENSE STATE` is valid on your REC before you start the upgrade process.

## Upgrade with Helm charts

If you installed the Redis Enterprise operator using Helm charts on OpenShift, you can upgrade using Helm commands. This method automatically handles the operator upgrade and Custom Resource Definition (CRD) updates.

To upgrade using Helm on OpenShift:

```sh
helm upgrade <release-name> redis/redis-enterprise-operator --version <chart-version> \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use <repo-name>/ instead of redis/?

--set openshift.mode=true
```

For example:

```sh
helm upgrade my-redis-enterprise redis/redis-enterprise-operator --version 7.8.2-2 \
--set openshift.mode=true
```

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]({{<relref "/operate/kubernetes/deployment/helm#upgrade-the-chart">}}).

## Upgrade the operator

### Download the bundle
Expand Down Expand Up @@ -194,7 +216,7 @@ oc rollout status sts <REC_name>

### Upgrade databases

After the cluster is upgraded, you can upgrade your databases. To upgrade your REDB, specify your new database version in the `spec.redisVersion` field in the REDB custom resources. Supported database versions for operator versions include `"7.2"` and `"7.4"` (note this value is a string).
After the cluster is upgraded, you can upgrade your databases. To upgrade your REDB, specify your new database version in the `spec.redisVersion` field in the REDB custom resources. Supported database versions for operator versions include `"7.2"` and `"7.4"` (note this value is a string).

To upgrade your REAADB, see [Upgrade an Active-Active database]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-active-active/">}}) for details on the `rladmin` and `crdb-cli` commands required. Reach out to Redis support if you have additional questions.

Expand Down
24 changes: 23 additions & 1 deletion content/operate/kubernetes/upgrade/upgrade-olm.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,28 @@ See [Upgrade modules]({{<relref "/operate/oss_and_stack/stack-with-enterprise/in

Use `kubectl get rec` and verify the `LICENSE STATE` is valid on your REC before you start the upgrade process.

## Upgrade with Helm charts
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Users installing via OLM and not installing via Helm, kinda by definition.
I think we don't need this section here within the OLM docs.


If you installed the Redis Enterprise operator using Helm charts on OpenShift, you can upgrade using Helm commands instead of the OperatorHub. This method automatically handles the operator upgrade and Custom Resource Definition (CRD) updates.

To upgrade using Helm on OpenShift:

```sh
helm upgrade <release-name> redis/redis-enterprise-operator --version <chart-version> \
--set openshift.mode=true
```

For example:

```sh
helm upgrade my-redis-enterprise redis/redis-enterprise-operator --version 7.8.2-2 \
--set openshift.mode=true
```

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]({{<relref "/operate/kubernetes/deployment/helm#upgrade-the-chart">}}).

## Upgrade the Redis Enterprise operator

1. Select the **Redis Enterprise Operator** from the **Operators**>**Installed Operators** page.
Expand Down Expand Up @@ -139,7 +161,7 @@ oc rollout status sts <REC_name>

## Upgrade databases

After the cluster is upgraded, you can upgrade your databases. To upgrade your REDB, specify your new database version in the `spec.redisVersion` field in the REDB custom resources. Supported database versions for operator versions include `"7.2"` and `"7.4"` (note this value is a string).
After the cluster is upgraded, you can upgrade your databases. To upgrade your REDB, specify your new database version in the `spec.redisVersion` field in the REDB custom resources. Supported database versions for operator versions include `"7.2"` and `"7.4"` (note this value is a string).

To upgrade your REAADB, see [Upgrade an Active-Active database]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-active-active/">}}) for details on the `rladmin` and `crdb-cli` commands required. Reach out to Redis support if you have additional questions.

Expand Down
29 changes: 28 additions & 1 deletion content/operate/kubernetes/upgrade/upgrade-redis-cluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,33 @@ See [Upgrade modules]({{<relref "/operate/oss_and_stack/stack-with-enterprise/in

Use `kubectl get rec` and verify the `LICENSE STATE` is valid on your REC before you start the upgrade process.

## Upgrade with Helm charts

If you installed the Redis Enterprise operator using Helm charts, you can upgrade using Helm commands. This method automatically handles the operator upgrade and Custom Resource Definition (CRD) updates.

To upgrade using Helm:

```sh
helm upgrade <release-name> redis/redis-enterprise-operator --version <chart-version>
```

For example:

```sh
helm upgrade my-redis-enterprise redis/redis-enterprise-operator --version 7.8.2-2
```

For OpenShift installations, include the `openshift.mode=true` parameter:

```sh
helm upgrade <release-name> redis/redis-enterprise-operator --version <chart-version> \
--set openshift.mode=true
```

After the Helm upgrade completes, continue with [upgrading the Redis Enterprise cluster (REC)](#upgrade-the-redis-enterprise-cluster-rec) and [upgrading databases](#upgrade-databases).

For detailed Helm upgrade instructions, see [Upgrade the chart]({{<relref "/operate/kubernetes/deployment/helm#upgrade-the-chart">}}).

## Upgrade the operator

### Download the bundle
Expand Down Expand Up @@ -189,7 +216,7 @@ kubectl rollout status sts <REC_name>

### Upgrade databases

After the cluster is upgraded, you can upgrade your databases. To upgrade your REDB, specify your new database version in the `spec.redisVersion` field in the REDB custom resources. Supported database versions for operator versions include `"7.2"` and `"7.4"` (note this value is a string).
After the cluster is upgraded, you can upgrade your databases. To upgrade your REDB, specify your new database version in the `spec.redisVersion` field in the REDB custom resources. Supported database versions for operator versions include `"7.2"` and `"7.4"` (note this value is a string).

To upgrade your REAADB, see [Upgrade an Active-Active database]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-active-active/">}}) for details on the `rladmin` and `crdb-cli` commands required. Reach out to Redis support if you have additional questions.

Expand Down