@@ -44,33 +44,32 @@ You can pull the RDI images from
4444
4545Complete the following steps before running Helm:
4646
47- - Create the RDI database on your Redis Enterprise cluster.
47+ - [ Create the RDI database] ( #create-the-rdi-database ) on your Redis Enterprise cluster.
4848- Create a [ user] ({{< relref "/operate/rs/security/access-control/create-users" >}})
4949 for the RDI database if you prefer not to use the default password (see
5050 [ Access control] ({{< relref "/operate/rs/security/access-control" >}}) for
5151 more information).
52- - Download the RDI helm chart tar file from the [ download center] ( https://cloud.redis.io/#/rlec-downloads ) .
52+ - Download the RDI helm chart tar file from the [ download center] ( https://cloud.redis.io/#rlec-downloads ) .
53+ - If you want to use a private image registry,
54+ [ prepare it with the RDI images] ( #using-a-private-image-registry ) .
5355
5456### Create the RDI database
5557
5658RDI uses a database on your Redis Enterprise cluster to store its state
5759information. * This requires Redis Enterprise v6.4 or greater* .
5860
59- Before installing RDI:
60-
61- - Use the Redis console to create a database with 250MB RAM with 1 primary and 1 replica.
61+ - Use the Redis console to create a database with 250MB RAM with one primary and one replica.
6262- If you are deploying RDI for a production environment then secure this database with a password
6363 and [ TLS] ( https://en.wikipedia.org/wiki/Transport_Layer_Security ) .
6464
65- You should then provide the details of this database in [ the ` values.yaml ` file ] ( #the-valuesyaml-file ) ,
66- as described below.
65+ You should then provide the details of this database in the [ ` values.yaml ` ] ( #the-valuesyaml-file )
66+ file as described below.
6767
6868### Using a private image registry
6969
7070Add the RDI images from [ Docker Hub] ( https://hub.docker.com/ ) to your local registry.
7171The example below shows how to specify the registry and image pull secret in the
72- [ ` values.yaml ` ] ( https://helm.sh/docs/topics/charts/#templates-and-values ) file for the
73- Helm chart:
72+ [ ` values.yaml ` ] ( #the-valuesyaml-file ) file for the Helm chart:
7473
7574``` yaml
7675global :
@@ -113,10 +112,316 @@ To pull images from a local registry, you must provide the image pull secret and
113112
114113# ## The `values.yaml` file
115114
116- The annotated `values.yaml` file below describes the values you can set
117- for the RDI Helm installation :
115+ The annotated [ `values.yaml`](https://helm.sh/docs/topics/charts/#templates-and- values)
116+ file below describes the values you can set for the RDI Helm installation :
118117
119118` ` ` yaml
119+ # Default RDI values in YAML format.
120+ # Variables to template configuration.
121+
122+ global:
123+ # Set this property when using a private image repository.
124+ # Provide an array of image pull secrets.
125+ # Example:
126+ # imagePullSecrets:
127+ # - name: pullSecret1
128+ # - name: pullSecret2
129+ imagePullSecrets:
130+ - name: docker-config-jfrog
131+
132+ # DO NOT modify this value.
133+ vmMode: false
134+
135+ # Indicates whether the deployment is intended for an OpenShift environment.
136+ openShift: false
137+
138+ image:
139+ # Overrides the image tag for all RDI components.
140+ tag: 0.0.0
141+
142+ # If using a private repository, update the default values accordingly.
143+ # Docker registry.
144+ registry: docker.io
145+
146+ # Docker image repository.
147+ repository: redis
148+
149+ # Configuration for the RDI ConfigMap.
150+ rdiSysConfig:
151+ # Log level for all RDI components. Valid options: DEBUG, INFO, ERROR.
152+ # If specific component log levels are not set, this value will be used.
153+ RDI_LOG_LEVEL: INFO
154+
155+ # Log level for the RDI API. Valid options: DEBUG, INFO, ERROR.
156+ # If not set, RDI_LOG_LEVEL will be used.
157+ # RDI_LOG_LEVEL_API: INFO
158+
159+ # Log level for the RDI Operator. Valid options: DEBUG, INFO, ERROR.
160+ # If not set, RDI_LOG_LEVEL will be used.
161+ # RDI_LOG_LEVEL_OPERATOR: INFO
162+
163+ # Log level for the RDI processor. Valid options: DEBUG, INFO, ERROR.
164+ # If not set, RDI_LOG_LEVEL will be used.
165+ # RDI_LOG_LEVEL_PROCESSOR: INFO
166+
167+ # Specifies whether the RDI is configured to use TLS.
168+ RDI_REDIS_SSL: false
169+
170+ # RDI_IMAGE_REPO: redis
171+
172+ # This value must be set to the same tag as global.image.tag.
173+ # RDI_IMAGE_TAG: ""
174+
175+ # If using a private repository, set this value to the same secret name as in global.imagePullSecrets.
176+ # RDI_IMAGE_PULL_SECRET: []
177+
178+ # The service IP of the RDI database.
179+ # RDI_REDIS_HOST: ""
180+
181+ # The port for the RDI database.
182+ # RDI_REDIS_PORT: ""
183+
184+ # Enable authentication for the RDI API.
185+ # RDI_API_AUTH_ENABLED: "1"
186+
187+ # Specifies whether the API Collector should be deployed.
188+ # RDI_API_COLLECTOR_ENABLED: "0"
189+
190+ # Configuration for the RDI Secret.
191+ rdiSysSecret:
192+ # Username and password for RDI database.
193+ # If using the default password, keep the username as an empty string.
194+ # RDI_REDIS_USERNAME: ""
195+ # RDI_REDIS_PASSWORD: ""
196+
197+ # Uncomment this property when using a TLS connection from RDI to its Redis database.
198+ # DO NOT modify this value.
199+ # RDI_REDIS_CACERT: /etc/certificates/rdi_db/cacert
200+
201+ # Uncomment these properties when using a TLS connection from RDI to its Redis database.
202+ # DO NOT modify these values.
203+ # RDI_REDIS_CERT: /etc/certificates/rdi_db/cert
204+ # RDI_REDIS_KEY: /etc/certificates/rdi_db/key
205+
206+ # The passphrase used to get the private key stored in the secret store when using mTLS.
207+ # RDI_REDIS_KEY_PASSPHRASE: ""
208+
209+ # The key used to encrypt the JWT token used by RDI API.
210+ # JWT_SECRET_KEY: ""
211+
212+ rdiDbSSLSecret:
213+ # Set to ` true` when using a TLS connection from RDI to its Redis database.
214+ enabled : false
215+
216+ # The content of the CA certificate PEM file.
217+ # Uncomment and set this property when using a TLS connection from RDI to its Redis database.
218+ # cacert: ""
219+
220+ # The content of the certificate PEM file.
221+ # Uncomment and set this property when using a TLS connection from RDI to its Redis database.
222+ # cert: ""
223+
224+ # The content of the private key PEM file.
225+ # Uncomment and set this property when using a TLS connection from RDI to its Redis database.
226+ # key: ""
227+
228+ # Container default security context.
229+ # ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
230+ securityContext :
231+ runAsNonRoot : true
232+ runAsUser : 1000
233+ runAsGroup : 1000
234+ allowPrivilegeEscalation : false
235+
236+ # Set `isOpenshift` to `true` if deploying on OpenShift.
237+ reloader :
238+ reloader :
239+ isOpenshift : false
240+ deployment :
241+ containerSecurityContext :
242+ allowPrivilegeEscalation : false
243+ capabilities :
244+ drop :
245+ - ALL
246+ securityContext :
247+ runAsUser : null
248+
249+ # Configuration of the RDI Operator.
250+ operator :
251+ image :
252+ name : rdi-operator
253+
254+ # Specify an imagePullPolicy.
255+ # ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
256+ pullPolicy : IfNotPresent
257+
258+ # Extra optional options for liveness probe.
259+ # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
260+ liveness :
261+ failureThreshold : 6
262+ periodSeconds : 10
263+
264+ # Extra optional options for readiness probe.
265+ # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
266+ readiness :
267+ failureThreshold : 6
268+ periodSeconds : 30
269+
270+ # Extra optional options for startup probe.
271+ # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
272+ startup :
273+ failureThreshold : 60
274+ periodSeconds : 5
275+
276+ fluentd :
277+ image :
278+ name : rdi-fluentd
279+
280+ # Specify an imagePullPolicy.
281+ # ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
282+ pullPolicy : IfNotPresent
283+
284+ rdiLogsHostPath : " /opt/rdi/logs"
285+ podLogsHostPath : " /var/log/pods"
286+ logrotateMinutes : " 5"
287+
288+ rdiMetricsExporter :
289+ image :
290+ name : rdi-monitor
291+
292+ # Specify an imagePullPolicy.
293+ # ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
294+ pullPolicy : IfNotPresent
295+
296+ # The RDI metrics service is set to ClusterIP, allowing access only from within the cluster.
297+ # ref: http://kubernetes.io/docs/user-guide/services/
298+ service :
299+ protocol : TCP
300+ port : 9121
301+ targetPort : 9121
302+ type : ClusterIP
303+
304+ # Configure extra options for liveness probe.
305+ # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
306+ liveness :
307+ failureThreshold : 6
308+ periodSeconds : 10
309+
310+ # Configure extra options for readiness probe.
311+ # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
312+ readiness :
313+ failureThreshold : 6
314+ periodSeconds : 30
315+
316+ # Configure extra options for startupProbe.
317+ # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
318+ startup :
319+ failureThreshold : 60
320+ periodSeconds : 5
321+
322+ # Configuration for the ServiceMonitor, which is used to scrape metrics from the RDI metrics service.
323+ serviceMonitor :
324+ # Set to `true` to activate the ServiceMonitor.
325+ enabled : false
326+
327+ # The endpoint from which Prometheus will scrape metrics.
328+ path : /metrics
329+
330+ # Configuration of the RDI API.
331+ apiServer :
332+ image :
333+ name : rdi-api
334+
335+ # Specify an imagePullPolicy.
336+ # ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
337+ pullPolicy : IfNotPresent
338+
339+ # The RDI API service is set to ClusterIP, allowing access only from within the cluster.
340+ # ref: http://kubernetes.io/docs/user-guide/services/
341+ service :
342+ type : ClusterIP
343+ name : rdi-api
344+ port : 8080
345+ targetPort : 8081
346+
347+ # Configure extra options for liveness probe.
348+ # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
349+ liveness :
350+ failureThreshold : 6
351+ periodSeconds : 10
352+
353+ # Configure extra options for readiness probe.
354+ # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
355+ readiness :
356+ failureThreshold : 6
357+ periodSeconds : 30
358+
359+ # Configure extra options for startupProbe.
360+ # ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
361+ startup :
362+ failureThreshold : 60
363+ periodSeconds : 5
364+
365+ # Expose the RDI API service to be accessed from outside the cluster.
366+ # ref: http://kubernetes.io/docs/user-guide/services/
367+ ingress :
368+ # When `enabled` is set to `true`, RDI API Ingress will be created.
369+ enabled : false
370+
371+ # ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
372+ # className: ""
373+
374+ # Ingress resources configure routes based on the requested host.
375+ # The optional Host field defines the hosts for routing. If omitted, it matches all hosts.
376+ # Example:
377+ # hosts:
378+ # - example.com
379+ # - another-example.com
380+
381+ # Annotations to be added to the IngressClass resource.
382+ # Example:
383+ # annotations:
384+ # kubernetes.io/ingress.class: "nginx"
385+ # nginx.ingress.kubernetes.io/rewrite-target: /
386+
387+ tls :
388+ # Specifies whether the Ingress should be configured to use TLS.
389+ enabled : false
390+
391+ # When `enabled` is set to `true`, set this property to the content of the crt file.
392+ # crt: ""
393+
394+ # When `enabled` is set to `true`, set this property to the content of the key file.
395+ # key: ""
396+
397+ # When `openShift` is set to `true`, Route will be created automatically.
398+ # Route exposes RDI API outside the cluster.
399+ route :
400+ tls :
401+ # Specifies whether the Route should be configured to use TLS.
402+ enabled : false
403+
404+ # When `enabled` is set to `true`, set this property to the content of the crt file.
405+ # crt: ""
406+
407+ # When `enabled` is set to `true`, set this property to the content of the key file.
408+ # key: ""
409+
410+ collectorSourceMetricsExporter :
411+ # The collector-source metrics service is set to ClusterIP, allowing access only from within the cluster.
412+ # ref: http://kubernetes.io/docs/user-guide/services/
413+ service :
414+ type : ClusterIP
415+ port : 9092
416+ targetPort : 19000
417+
418+ # Configuration for the ServiceMonitor, which is used to scrape metrics from the collector-source metrics service.
419+ serviceMonitor :
420+ # Set to `true` to activate the ServiceMonitor.
421+ enabled : false
422+
423+ # The endpoint from which Prometheus will scrape metrics.
424+ path : /metrics
120425` ` `
121426
122427## Check the installation
@@ -131,7 +436,7 @@ The output looks like the following. Check that `<logical_chart_name>` is listed
131436
132437```
133438NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
134- <logical_chart_name> rdi 1 2024-10-10 16:53... +0300 IDT deployed rdi-1.0.0
439+ <logical_chart_name> rdi 1 2024-10-10 16:53... +0300 IDT deployed rdi-1.0.0
135440```
136441
137442
@@ -142,10 +447,10 @@ sudo k3s kubectl get pod -n rdi
142447
143448NAME READY STATUS RESTARTS AGE
144449rdi-api-< id> 1/1 Running 0 29m
145- rdi-metric-<id>l 1/1 Running 0 29m
450+ rdi-metric-< id> l 1/1 Running 0 29m
146451rdi-operator-< id> 1/1 Running 0 29m
147452< logical_chart_name> -reloader-< id> 1/1 Running 0 29m
148- collector-api-<id> 1/1 Running 0 29m
453+ collector-api-< id> 1/1 Running 0 29m
149454```
150455
151456You can verify that the RDI API works by adding the server in
0 commit comments