1
+
2
+
1
3
### Deploying Redis Enterprise K8s using an operator (custom controller)
2
4
### Table of Contents
3
5
4
6
5
7
* [ Prerequisites] ( #prerequisites )
6
8
* [ Deployment] ( #deployment )
7
9
* [ Configuration Options] ( #configuration )
10
+ * [ Private Repositories] ( #private-repositories )
11
+ * [ Pull Secrets] ( #pull-secrets )
8
12
* [ IPV4 enforcement] ( #ipv4-enforcement )
9
13
10
14
11
-
12
15
#### Prerequisites:
13
16
* A minimum of 3 nodes which support the following [ requirements] [ ]
14
17
* A kubernetes version of 1.8 or higher
@@ -21,9 +24,9 @@ The following are the images and tags for this release:
21
24
22
25
Redis Enterprise - ` redislabs/redis:5.4.6-18 ` or ` redislabs/redis:5.4.6-18.rhel7-openshift `
23
26
24
- Operator - ` redislabs/operator:5.4.6-1183 ` or ` redislabs/operator:5.4.6-1183 .rhel7 `
27
+ Operator - ` redislabs/operator:5.4.6-1186 ` or ` redislabs/operator:5.4.6-1186 .rhel7 `
25
28
26
- Services Rigger - ` redislabs/k8s-controller:5.4.6-1183 ` or ` redislabs/k8s-controller:5.4.6-1183 .rhel7 `
29
+ Services Rigger - ` redislabs/k8s-controller:5.4.6-1186 ` or ` redislabs/k8s-controller:5.4.6-1186 .rhel7 `
27
30
28
31
Service Broker - ` redislabs/service-broker:78_4b9b17f ` or ` redislabs/service-broker:78_4b9b17f.rhel7 `
29
32
@@ -218,7 +221,7 @@ Service Broker (only for supported clusters)
218
221
` ` `
219
222
220
223
CRDB (Active Active):
221
- *Currently supported for OpenShift
224
+ *Currently supported for OpenShift*
222
225
223
226
` ` ` yaml
224
227
activeActive : # edit values according to your cluster
@@ -244,6 +247,95 @@ activeActive: # edit values according to your cluster
244
247
fqdn : <cluster3_name>.<cluster3_namespace>.svc.cluster.local
245
248
` ` `
246
249
250
+ #### Private Repositories
251
+
252
+ Whenever images are not pulled from DockerHub, the following configuration options must be specified:
253
+
254
+ In *RedisEnterpriseClusterSpec* (redis_enterprise_cluster.yaml):
255
+ - *redisEnterpriseImageSpec*
256
+ - *redisEnterpriseServicesRiggerImageSpec*
257
+ - *serviceBrokerSpec - imageSpec* (if deploying the Service Broker)
258
+ - *bootstrapperImageSpec*
259
+
260
+ Image specifications in *RedisEnterpriseClusterSpec* follow the same schema:
261
+
262
+ | Field | Description | Scheme | Default Value | Required |
263
+ | ----- | ----------- | ------ | -------- | -------- |
264
+ | repository | Repository | string | | true |
265
+ | versionTag | | string | | true |
266
+ | imagePullPolicy | | v1.PullPolicy | | true |
267
+
268
+ For example:
269
+ ` ` ` yaml
270
+ redisEnterpriseImageSpec :
271
+ imagePullPolicy : IfNotPresent
272
+ repository : harbor.corp.local/redisenterprise/redis
273
+ versionTag : 5.4.6-18
274
+ ` ` `
275
+
276
+ ` ` ` yaml
277
+ redisEnterpriseServicesRiggerImageSpec :
278
+ imagePullPolicy : IfNotPresent
279
+ repository : harbor.corp.local/redisenterprise/k8s-controller
280
+ versionTag : 5.4.6-1186
281
+ ` ` `
282
+
283
+ ` ` ` yaml
284
+ bootstrapperImageSpec :
285
+ imagePullPolicy : IfNotPresent
286
+ repository : harbor.corp.local/redisenterprise/operator
287
+ versionTag : 5.4.6-1186
288
+ ` ` `
289
+
290
+ In Operator Deployment spec (operator.yaml):
291
+ - containers - image
292
+
293
+ For example:
294
+ ` ` ` yaml
295
+ spec :
296
+ template :
297
+ spec :
298
+ containers :
299
+ - name : redis-enterprise-operator
300
+ image : harbor.corp.local/redisenterprise/operator:5.4.6-1186
301
+ ` ` `
302
+
303
+ Image specification follow the [K8s Container schema](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#container-v1-core).
304
+
305
+ #### Pull secrets
306
+
307
+ Private repositories which require login can be accessed by creating a pull secret and declaring it in both the *RedisEnterpriseClusterSpec* and in the Operator Deployment spec.
308
+
309
+ [Create a pull secret](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-line) by running:
310
+
311
+ ` ` ` shell
312
+ kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
313
+ ```
314
+ where:
315
+
316
+ - ` <your-registry-server> ` is your Private Docker Registry FQDN. ([ https://index.docker.io/v1/ ] ( https://index.docker.io/v1/ ) for DockerHub)
317
+ - ` <your-name> ` is your Docker username.
318
+ - ` <your-pword> ` is your Docker password.
319
+ - ` <your-email> ` is your Docker email.
320
+
321
+ This creates a pull secret names ` regcred `
322
+
323
+ To use in the * RedisEnterpriseClusterSpec* :
324
+ ``` yaml
325
+ spec :
326
+ pullSecrets :
327
+ -name : regcred
328
+ ` ` `
329
+
330
+ To use in the Operator Deployment:
331
+ ` ` ` yaml
332
+ spec :
333
+ template :
334
+ spec :
335
+ imagePullSecrets :
336
+ -name : regcred
337
+ ` ` `
338
+
247
339
#### IPV4 enforcement
248
340
You might not have IPV6 support in your K8S cluster.
249
341
In this case, you could enforce the use of IPV4, by adding the following attribute to the REC spec:
0 commit comments