Skip to content
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
30 changes: 28 additions & 2 deletions content/operate/kubernetes/upgrade/openshift-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@ Your Redis Enterprise clusters must be running version 7.4.2-2 or later before u

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]({{<relref "/operate/kubernetes/reference/api/redis_enterprise_database_api#redisversion" >}}).

#### User-defined modules

If your databases use user-defined modules (custom non-bundled modules):

- Set `autoUpgradeRedisEnterprise: false` in the REC custom resource before upgrading the operator.
- Define the user-defined modules in the REC custom resource before upgrading the database.
- See [Edit `redisEnterpriseImageSpec`](#edit-redisenterpriseimagespec) for more details.

#### RHEL9-compatible modules

Upgrading to Redis operator versions 7.8.2-6 and later involves migrating your Redis Enterprise nodes to RHEL9 from either Ubuntu 18 or RHEL8. If your databases use modules, you need to manually install modules compatible with RHEL9.
Expand Down Expand Up @@ -81,6 +89,8 @@ For detailed Helm upgrade instructions, see [Upgrade the chart]({{<relref "/oper

## Upgrade the operator

{{<warning>}}If your databases use user-defined modules, set `autoUpgradeRedisEnterprise: false` in the REC custom resource before upgrading the operator.{{</warning>}}

### Download the bundle

Make sure you pull the correct version of the bundle. You can find the version tags
Expand Down Expand Up @@ -188,6 +198,20 @@ After the operator upgrade is complete, you can upgrade Redis Enterprise cluster
versionTag: <new-version-tag>
```

1. Define any user-defined modules used by databases in the cluster.

```YAML
spec:
userDefinedModules:
- name: "custom-module"
source:
https:
url: "https://modules.company.com/search-v2.1.zip"
credentialsSecret: "module-repo-creds"
```

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.

1. Save the changes to apply.

### Reapply roles and role bindings
Expand Down Expand Up @@ -224,6 +248,10 @@ For Active-Active databases, the `redis.Version` change only needs to be applied

If your REAADB uses supported modules, keep the existing `moduleList` version numbers unchanged when upgrading `redisVersion`. The database will automatically use the module versions that are bundled with the new Redis version, regardless of what versions are specified in `moduleList`. After the upgrade is complete, you can optionally change the old version numbers from `moduleList`, but this change has no functional impact.

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

#### General upgrade notes

Note that if your cluster [`redisUpgradePolicy`]({{<relref "/operate/kubernetes/reference/api/redis_enterprise_cluster_api#redisupgradepolicy" >}}) or your database [`redisVersion`]({{< relref "/operate/kubernetes/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.
Expand Down Expand Up @@ -251,5 +279,3 @@ curl -sfk -u <rec_username>:<rec_password> -X POST -H "Content-Type: application
```

After updating the database with the Redis Software API, update the REDB custom resource to reflect the change.


34 changes: 19 additions & 15 deletions content/operate/kubernetes/upgrade/upgrade-olm.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,23 +35,13 @@ Your Redis Enterprise clusters must be running version 7.4.2-2 or later before u

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]({{<relref "/operate/kubernetes/reference/api/redis_enterprise_database_api#redisversion" >}}).

#### RHEL9-compatible modules
### User-defined modules

Upgrading to Redis operator version 7.8.2-6 or later involves migrating your Redis Enterprise nodes to RHEL9 from either Ubuntu 18 or RHEL8. If your databases use modules, you need to manually install modules compatible with RHEL9.
If your databases use user-defined modules (custom non-bundled modules):

To see which modules you have installed, run:

```sh
curl -k -u <rec_username>:<rec_password> -X GET https://localhost:9443/v1/modules | jq -r 'map([.module_name, .semantic_version, (.platforms | keys)]) | .[] | .[0] as $name | .[1] as $version | .[2][] | $name + "-" + $version + "-" + .' | sort
```

To see which modules are currently in use, run:

```sh
curl -k -u <rec_username>:<rec_password> -X GET https://localhost:9443/v1/bdbs | jq -r '.[].module_list | map(.module_name + "-" + .semantic_version) | .[]'
```

See [Upgrade modules]({{<relref "/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module">}}) for details on how to upgrade modules with the `rladmin` tool.
- Set `autoUpgradeRedisEnterprise: false` in the REC custom resource before upgrading the operator.
- Define the user-defined modules in the REC custom resource before upgrading the database.
- See [Edit `redisEnterpriseImageSpec`](#edit-redisenterpriseimagespec) for more details.

### Valid license

Expand Down Expand Up @@ -111,6 +101,20 @@ After the operator upgrade is complete, you can upgrade Redis Enterprise cluster
versionTag: <new-version-tag>
```

1. Define any user-defined modules used by databases in the cluster.

```YAML
spec:
userDefinedModules:
- name: "custom-module"
source:
https:
url: "https://modules.company.com/search-v2.1.zip"
credentialsSecret: "module-repo-creds"
```

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.

1. Save the changes to apply.

### Reapply roles and role bindings
Expand Down
56 changes: 34 additions & 22 deletions content/operate/kubernetes/upgrade/upgrade-redis-cluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,23 +35,13 @@ Check the [Redis Enterprise for Kubernetes release notes]({{<relref "/operate/ku

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]({{<relref "/operate/kubernetes/reference/api/redis_enterprise_database_api#redisversion" >}}).

### Module compatibility
### User-defined modules

Some Redis Enterprise operator versions may require specific module versions or involve changes to the underlying operating system. If your databases use modules, check the release notes for your target version to determine if you need to manually install updated modules.
If your databases use user-defined modules (custom non-bundled modules):

To see which modules you have installed, run:

```sh
curl -k -u <rec_username>:<rec_password> -X GET https://localhost:9443/v1/modules | jq -r 'map([.module_name, .semantic_version, (.platforms | keys)]) | .[] | .[0] as $name | .[1] as $version | .[2][] | $name + "-" + $version + "-" + .' | sort
```

To see which modules are currently in use, run:

```sh
curl -k -u <rec_username>:<rec_password> -X GET https://localhost:9443/v1/bdbs | jq -r '.[].module_list | map(.module_name + "-" + .semantic_version) | .[]'
```

See [Upgrade modules]({{<relref "/operate/oss_and_stack/stack-with-enterprise/install/upgrade-module">}}) for details on how to upgrade modules with the `rladmin` tool.
- Set `autoUpgradeRedisEnterprise: false` in the REC custom resource before upgrading the operator.
- 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.

### Valid license

Expand Down Expand Up @@ -86,6 +76,8 @@ For detailed Helm upgrade instructions, see [Upgrade the chart]({{<relref "/oper

## Upgrade the operator

{{<warning>}}If your databases use user-defined modules, set `autoUpgradeRedisEnterprise: false` in the REC custom resource before upgrading the operator.{{</warning>}}

### Download the bundle

Make sure you pull the correct version of the bundle. You can find the version tags
Expand Down Expand Up @@ -164,11 +156,9 @@ Before beginning the upgrade of the Redis Enterprise cluster, check the [Redis E

After the operator upgrade is complete, you can upgrade Redis Enterprise cluster (REC).

### Upgrade an REC with an Active-Active database

We recommend upgrading all participating clusters to the same operator version.

If you are upgrading from a preview version of the Active-Active controller, you can remove the following environment variables: `ACTIVE_ACTIVE_DATABASE_CONTROLLER_ENABLED`, `REMOTE_CLUSTER_CONTROLLER_ENABLED`, and `ENABLE_ALPHA_FEATURES`.
{{<note>}}
For Active-Active databases, we recommend upgrading all participating clusters to the same operator version.
{{</note>}}

### Edit `redisEnterpriseImageSpec` in the REC spec

Expand All @@ -188,6 +178,20 @@ If you are upgrading from a preview version of the Active-Active controller, you
versionTag: <new-version-tag>
```

1. Define any user-defined modules used by databases in the cluster.

```YAML
spec:
userDefinedModules:
- name: "custom-module"
source:
https:
url: "https://modules.company.com/search-v2.1.zip"
credentialsSecret: "module-repo-creds"
```

The `name` field 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.

1. Save the changes to apply.

### Reapply roles and role bindings
Expand All @@ -214,17 +218,25 @@ To see the status of the current rolling upgrade, run:
kubectl rollout status sts <REC_name>
```

### Upgrade databases
## Upgrade databases

After the cluster is upgraded, you can upgrade your databases.

### Upgrade REDB

To upgrade your REDB, specify your new database version in the `spec.redisVersion` field in the REDB or REAADB custom resources. Supported database versions for operator versions include "7.2", "7.4", "8.0", and "8.2" (note this value is a string).

### Upgrade REAADB

For Active-Active databases, the `redis.Version` change only needs to be applied on one participating cluster and will automatically propagate to all other participating clusters. All participating clusters must be running operator version 8.0.2-2 or later.

If your REAADB uses supported modules, keep the existing `moduleList` version numbers unchanged when upgrading `redisVersion`. The database will automatically use the module versions that are bundled with the new Redis version, regardless of what versions are specified in `moduleList`. After the upgrade is complete, you can optionally change the old version numbers from `moduleList`, but this change has no functional impact.

#### General upgrade notes
### 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.

### Upgrade policy

Note that if your cluster [`redisUpgradePolicy`]({{<relref "/operate/kubernetes/reference/api/redis_enterprise_cluster_api#redisupgradepolicy" >}}) or your database [`redisVersion`]({{< relref "/operate/kubernetes/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.

Expand Down