You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/operate/kubernetes/deployment/quick-start.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -263,6 +263,12 @@ The operator bundle includes a webhook file. The webhook will intercept requests
263
263
Error from server: error when creating "STDIN": admission webhook "redisenterprise.admission.redislabs" denied the request: eviction_policy: u'illegal' is not one of [u'volatile-lru', u'volatile-ttl', u'volatile-random', u'allkeys-lru', u'allkeys-random', u'noeviction', u'volatile-lfu', u'allkeys-lfu']
264
264
```
265
265
266
+
## Add user-defined modules (optional)
267
+
268
+
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.
269
+
270
+
See [User-defined modules]({{< relref "/operate/kubernetes/re-databases/modules#user-defined-modules">}}) for detailed instructions on adding and configuring custom modules.
271
+
266
272
## Create a Redis Enterprise Database (REDB)
267
273
268
274
You can create multiple databases within the same namespace as your REC or in other namespaces.
Redis Enterprise modules extend Redis functionality with additional data types, commands, and capabilities. The Redis Enterprise operator supports deploying databases with modules through the `RedisEnterpriseDatabase` (REDB) and `RedisEnterpriseActiveActiveDatabase` (REAADB) custom resources.
13
+
Redis Enterprise modules extend Redis functionality with additional data types, commands, and capabilities. Redis Enterprise versions 8.0.2 and later include several bundled modules that are automatically enabled for compatible database types. You can also add user-defined modules for additional functionality.
14
14
15
15
## Prerequisites
16
16
17
-
Before you begin, verify that you have:
17
+
Before you begin, verify the following:
18
18
19
19
-[Redis Enterprise operator deployed]({{< relref "/operate/kubernetes/deployment/quick-start" >}}) in your Kubernetes cluster
20
-
-[Redis Enterprise Cluster (REC)]({{< relref "/operate/kubernetes/re-clusters" >}}) running and in a healthy state
21
-
- Modules uploaded to the Redis Enterprise cluster (see [Check available modules](#check-available-modules))
20
+
-[Redis Enterprise cluster (REC)]({{< relref "/operate/kubernetes/re-clusters" >}}) running and in a healthy state
22
21
23
-
## Available modules
22
+
## Bundled modules
24
23
25
-
Redis Enterprise includes several built-in modules:
24
+
Redis Enterprise includes several bundled modules that extend Redis functionality with additional data types, commands, and capabilities. Starting with Redis Enterprise version 8.0.2, these modules are automatically included and immediately available for use.
26
25
27
-
| Module | Name | Description |
28
-
|--------|------|-------------|
29
-
|**[RediSearch]({{< relref "/develop/ai/search-and-query/" >}})**|`search`| Full-text search and secondary indexing |
30
-
|**[RedisJSON]({{< relref "/develop/data-types/json" >}})**|`ReJSON`| JSON data type support |
31
-
|**[RedisTimeSeries]({{< relref "/develop/data-types/timeseries" >}})**|`timeseries`| Time series data structures |
|**[RedisJSON]({{< relref "/develop/data-types/json" >}})**|`ReJSON`| JSON data type support | Store, update, and query JSON documents |
32
+
|**[RedisTimeSeries]({{< relref "/develop/data-types/timeseries" >}})**|`timeseries`| Time series data structures | Ingest and query time series data with downsampling and aggregation |
Before configuring databases with modules, check which modules are available in your cluster:
35
+
{{< note >}}
36
+
When configuring databases with modules, use the `NAME` field (for example, `search` or `ReJSON`) instead of the `DISPLAY_NAME` field.
37
+
{{< /note >}}
38
+
39
+
### Automatic enablement in Redis 8 and later
40
+
41
+
For databases created with or upgraded to Redis version 8 or later, bundled modules are automatically enabled based on the database type. You don't need to specify them in the `spec.moduleList` field unless you want to use a specific version.
42
+
43
+
{{<embed-md "rs-8-enabled-modules.md">}}
44
+
45
+
For databases using Redis versions earlier than 8, explicitly specify bundled modules in the `spec.moduleList` field when you create the database.
46
+
47
+
### Check available module versions
48
+
49
+
To see which bundled module versions are available in your cluster, run the following command:
37
50
38
51
```bash
39
52
kubectl get rec <cluster-name> -o jsonpath='{.status.modules}'| jq
40
53
```
41
54
42
-
This command shows the modules installed in the cluster along with their available versions.
55
+
This command displays all modules (both bundled and user-defined) installed in the cluster and their available versions.
56
+
57
+
### Bundled vs. user-defined modules
58
+
59
+
The following table shows the key differences between bundled and user-defined modules:
|**Redis 8 and later behavior**| Automatically enabled for compatible database types | Must be explicitly specified |
68
+
69
+
## User-defined modules
70
+
71
+
User-defined modules are custom Redis modules that extend Redis functionality beyond the bundled modules. User-defined modules can include third-party modules like RedisGears or custom in-house modules developed for specific use cases.
72
+
73
+
### Add user-defined modules to the REC
74
+
75
+
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.
76
+
77
+
{{< warning >}}
78
+
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.
79
+
{{< /warning >}}
80
+
81
+
1. Edit your REC custom resource:
82
+
83
+
```sh
84
+
kubectl edit rec <cluster-name>
85
+
```
86
+
87
+
2. Add the `userDefinedModules` section to the `spec`:
3. If your module repository requires authentication, create a secret with your credentials:
100
+
101
+
```sh
102
+
kubectl create secret generic module-repo-creds \
103
+
--from-literal=username=<your-username> \
104
+
--from-literal=password=<your-password>
105
+
```
106
+
107
+
### Module naming requirements
108
+
109
+
The `name` field in the REC spec must match either the `module_name` or `display_name` value from the module's manifest file (`module.json` inside the module zip file). This enables the operator to validate the module.
110
+
111
+
For example, if your module manifest contains the following:
112
+
113
+
```json
114
+
{
115
+
"module_name": "rg",
116
+
"display_name": "RedisGears",
117
+
"semantic_version": "1.2.5"
118
+
}
119
+
```
120
+
121
+
You can use either `"rg"` or `"RedisGears"` as the `name` value in your REC spec.
43
122
44
123
{{< note >}}
45
-
Use the `NAME` field instead of the `DISPLAY_NAME` field when configuring databases with modules.
124
+
If the names don't match, the operator can't validate the module. This can lead to preventable errors during database creation or upgrades.
46
125
{{< /note >}}
47
126
48
-
## Install additional modules
127
+
### Edit user-defined modules
128
+
129
+
To modify the user-defined modules list, complete the following steps:
49
130
50
-
If you need to install additional modules or specific versions, upload them using the Redis Enterprise API. See [Upload module v2]({{< relref "/operate/rs/references/rest-api/requests/modules/#post-module-v2" >}}) for more information.
131
+
1. Edit the REC custom resource:
51
132
52
-
## Module configuration
133
+
```sh
134
+
kubectl edit rec <cluster-name>
135
+
```
53
136
54
-
Each module in the [`modulesList`]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_database_api#specmoduleslist" >}}) supports the following fields:
137
+
1. Update the `userDefinedModules` section:
138
+
- **Add new modules**: Append them to the list.
139
+
- **Update module URLs**: Change the `url` field for existing modules.
140
+
- **Update credentials**: Change the `credentialsSecret` reference.
55
141
56
-
-**name** (required): The module name (for example, "search", "ReJSON")
57
-
-**version** (optional): Specific module version. For Active-Active databases, if specified for one participating cluster, it must be specified for all participating clusters. If omitted, modules will auto-update.
1. Save your changes. The operator validates and applies the updates.
59
143
60
-
For detailed module configuration options and parameters, see [Redis modules]({{< relref "/develop/reference/modules" >}}).
144
+
{{< warning >}}
145
+
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.
146
+
{{< /warning >}}
61
147
62
-
##Upgrade considerations
148
+
### Verify user-defined modules
63
149
64
-
When upgrading Redis Enterprise clusters or the operator with modules, follow these guidelines:
150
+
After you add user-defined modules to the REC, verify that they're available:
65
151
66
-
#### Pre-upgrade planning
152
+
```sh
153
+
kubectl get rec <cluster-name> -o jsonpath='{.spec.userDefinedModules}' | jq
154
+
```
67
155
68
-
-**Check module compatibility**: Verify that your current module versions are compatible with the target Redis Enterprise version. Check each module's [`min_redis_version`](https://redis.io/docs/latest/operate/rs/references/rest-api/objects/module/) requirement.
69
-
-**Review module dependencies**: Some modules may have specific version requirements or dependencies
70
-
-**Document current configurations**: Record all module versions and configurations before upgrading
71
-
-**Test in non-production**: Always test module upgrades in a development or staging environment first
156
+
You can also check the REC status for validation errors:
157
+
158
+
```sh
159
+
kubectl describe rec <cluster-name>
160
+
```
72
161
73
-
#### Module version management during upgrades
162
+
Look for events or status messages related to module validation in the output.
74
163
75
-
-**Upload required modules**: Ensure all necessary module versions are uploaded to the cluster before upgrading
76
-
-**Version consistency**: For Active-Active databases, ensure module versions are consistent across all participating clusters. If you specify a version for one cluster, specify the same version for all clusters. Omit versions to allow auto-updates.
77
-
-**Compatibility requirements**: Consult the Redis Enterprise documentation for module compatibility matrices and verify each module's [`min_redis_version`](https://redis.io/docs/latest/operate/rs/references/rest-api/objects/module/) requirement
164
+
## Upgrade with modules
78
165
79
-
#### Upgrade sequence
166
+
The upgrade process differs depending on whether you use bundled modules or user-defined modules.
80
167
81
-
1.**Upload new module versions** (if required) to the cluster before upgrading Redis Enterprise
82
-
2.**Upgrade the Redis Enterprise cluster** following standard upgrade procedures
83
-
3.**Verify module functionality** after the cluster upgrade completes
84
-
4.**Update database configurations** if new module versions require configuration changes
168
+
### Upgrade with bundled modules
85
169
86
-
#### Post-upgrade verification
170
+
For databases using bundled modules (RediSearch, RedisJSON, RedisTimeSeries, RedisBloom):
87
171
88
-
-**Check module status**: Verify all modules are loaded correctly: `kubectl get rec <cluster-name> -o jsonpath='{.status.modules}'`
89
-
-**Test module functionality**: Validate that module-specific commands and features work as expected
90
-
-**Monitor performance**: Watch for any performance changes after the upgrade
91
-
-**Update documentation**: Record the new module versions and any configuration changes
172
+
- **Redis 8 and later**: Bundled modules are automatically enabled and upgraded when you upgrade the database to Redis version 8 or later. You don't need to take any additional action.
92
173
93
-
For detailed upgrade procedures, see [Upgrade Redis Enterprise clusters]({{< relref "/operate/kubernetes/upgrade/upgrade-redis-cluster" >}}).
174
+
- **Redis versions earlier than 8**: Bundled modules are upgraded automatically when you upgrade the Redis Enterprise cluster. The bundled module versions are tied to the Redis Enterprise version.
175
+
176
+
### Upgrade with user-defined modules
177
+
178
+
For databases using user-defined modules, you must take additional steps during cluster upgrades:
179
+
180
+
1. Set `autoUpgradeRedisEnterprise` to `false`in your REC spec before upgrading.
181
+
182
+
1. Add or update the `userDefinedModules` list in the REC spec with the new module versions before or during the cluster upgrade.
183
+
184
+
1. After the cluster upgrade completes, you can re-enable `autoUpgradeRedisEnterprise`if desired.
185
+
186
+
For detailed upgrade instructions, see the following:
187
+
188
+
- [Upgrade a Redis Enterprise cluster (REC)]({{< relref "/operate/kubernetes/upgrade/upgrade-redis-cluster">}})
189
+
- [Upgrade Redis Enterprise on OpenShift]({{< relref "/operate/kubernetes/upgrade/openshift-cli">}})
94
190
95
191
## Related information
96
192
97
-
-[Database controller]({{< relref "/operate/kubernetes/re-databases/db-controller" >}}) - Learn how to create and manage Redis Enterprise databases
98
-
-[Active-Active databases]({{< relref "/operate/kubernetes/active-active" >}}) - Set up globally distributed Active-Active databases
99
-
-[Database connectivity]({{< relref "/operate/kubernetes/networking/database-connectivity" >}}) - Connect applications to your Redis Enterprise databases
- [REDB API reference]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_database_api">}}) - Complete API specification for REDB resources
101
195
- [REAADB API reference]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_active_active_database_api">}}) - API reference for Active-Active databases
102
-
-[Redis modules documentation](https://redis.io/docs/latest/develop/reference/modules/) - Official Redis modules documentation
196
+
197
+
### Redis Software documentation
198
+
199
+
- [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
200
+
- [Enable modules fora database]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-database" >}}) - Add modules to databasesin Redis Enterprise Software
0 commit comments