Skip to content
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

K8s: install helm chart #957

Draft
wants to merge 12 commits into
base: main
Choose a base branch
from
112 changes: 112 additions & 0 deletions content/operate/kubernetes/deployment/helm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
---
Title: Install Redis Enterprise Helm chart
alwaysopen: false
categories:
- docs
- operate
- kubernetes
description: Install the Redis Enterprise for Kubernetes version 7.8.Wisconsin using helm charts.
linkTitle: Helm
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.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/).

## Install

1. Add the `redis` repository.

```sh
helm repo add redis-enterprise https://helm.redis.io/
```
Comment on lines +26 to +30
Copy link
Contributor

@zcahana zcahana Dec 12, 2024

Choose a reason for hiding this comment

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

Here too, we should use a single repo name in both the sentence "Add the <repo-name> repository" and the command example.


1. Install the Helm chart into a new namespace.
Copy link
Contributor

Choose a reason for hiding this comment

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

This doesn't have to be a new namespace, so I'm not sure if we should mention that.


```sh
helm install <operator-name> redis/redis-enterprise-operator \
Copy link
Contributor

@zcahana zcahana Dec 12, 2024

Choose a reason for hiding this comment

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

The first placeholder of this command should actually be <release-name> and not <operator-name>.
Confusingly, a "release" in Helm terminology is the user-defined name given a specific installation of the chart (e.g., you can install the same chart multiple times using different "release names").

Maybe we should also explain this briefly, or provide an example command that will convey the idea that could be anything the user wishes.

Copy link
Contributor

@zcahana zcahana Dec 12, 2024

Choose a reason for hiding this comment

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

The redis/redis-enterprise-operator parameter is made up of <repo-name>/<chart-name>.
The is the same one we use in step (1) above (helm repo add <repo-name>). We should get it aligned to either redis or redis-enterprise.

-- version <release-name> \
Copy link
Contributor

@zcahana zcahana Dec 12, 2024

Choose a reason for hiding this comment

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

This placeholder should actually be <chart-version> and not <release-name>; Something like 7.8.2-2.

-- namespace <namespace-name> \
-- create-namespace
Comment on lines +36 to +38
Copy link
Contributor

Choose a reason for hiding this comment

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

Need to remove the space between the -- and the flag name.

Copy link
Contributor

Choose a reason for hiding this comment

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

This applies to all command examples throughout the document.

```

To install with Openshift, add `--set openshift.mode=true`.
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 definitely not a language authority, but is it "install with OpenShift" or "install to OpenShift" (or "install to an OpenShift cluster")?
Also - I believe it's OpenShift and not Openshift.


To monitor the installation add the `--debug` flag. The installation runs several jobs synchronously and may take few minutes to complete.
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure, but "few" or "a few"?


### Install from local directory

1. Find the latest release on the [redis-enterprise-k8s-docs Github](https://github.com/RedisLabs/redis-enterprise-k8s-docs/releases) and download the `tar.gz` source code into a local directory.
Copy link
Contributor

Choose a reason for hiding this comment

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

Can also consider this, I think it looks a little nicer when rendered:

Suggested change
1. Find the latest release on the [redis-enterprise-k8s-docs Github](https://github.com/RedisLabs/redis-enterprise-k8s-docs/releases) and download the `tar.gz` source code into a local directory.
1. 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.


1. Install the Helm chart from your local directory.

```sh
helm install <release-name> <path-to-chart> \
Copy link

Choose a reason for hiding this comment

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

or
need to be consistent.

I think is better

-- namespace <namespace-name> \
-- create-namespace
```

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

To monitor the installation add the `--debug` flag. The installation runs several jobs synchronously and may take few minutes to complete.

### Specify values during install

1. View configurable values with `helm show values redis/redis --version <release-name>`.
Copy link
Contributor

@zcahana zcahana Dec 12, 2024

Choose a reason for hiding this comment

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

The argument to helm show values is also a <repo-name>/<chart-name>.
The <chart-name> should be redis-enterprise-operator, and the <repo-name> should best align with whatever you pick in the install section above (either redis or redis-enterprise).

Copy link
Contributor

@zcahana zcahana Dec 12, 2024

Choose a reason for hiding this comment

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

Also - same comment about <chart-version> instead of <release-name>.


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

```sh
helm install <operator-name> redis/redis-enterprise-operator \
-- version <release-name> \
-- namespace <namespace-name> \
-- create-namespace
--set <key1>=<value1> \
--set <key2>=<value2>
```

### Install with values file
Copy link
Contributor

Choose a reason for hiding this comment

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

This section is largely repeating the previous one, maybe we should just mention that the values may be overridden either by the --set flag or via --values file?


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

1. Create a YAML file containing the configuration values you want to set.
1. Create a YAML file to specify the values you want to configure.
Comment on lines +80 to +81
Copy link
Contributor

Choose a reason for hiding this comment

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

Only one of these should win.


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

```sh
helm install <operator-name> redis/redis-enterprise-operator \
-- version <release-name> \
-- namespace <namespace-name> \
-- create-namespace \
-- values <path-to-values-file>
```

## Uninstall

1. Delete any custom resources managed by the operator. See [Delete custom resources]({{<relref "content/operate/kubernetes/re-clusters/delete-custom-resources.md">}}) for detailed steps. Custom resources must be deleted in the correct order to avoid errors.

1. Uninstall the helm chart.

```sh
helm uninstall <release-name>
```

This removes all Kubernetes resources associated with the chart and deletes the release.

{{<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`.{{</note>}}

## 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 chart doesn't include configuration options for multiple namespaces, rack-awareness, and Vault integration. The steps for configuring these options remains the same.
- The chart has had limited testing in advanced setups, including Active-Active configurations, air-gapped deployments, and IPv6/dual-stack environments.
Loading