Skip to content

Commit 0ec741f

Browse files
authored
Merge pull request #133 from RedisLabs/6.0.6-23
promoting version 6.0.6-23
2 parents 64563eb + 15d2682 commit 0ec741f

16 files changed

+330
-252
lines changed

README.md

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
* [Pull Secrets](#pull-secrets)
1212
* [Advanced Configuration](#advanced-configuration)
1313
* [Upgrade](#upgrade)
14+
* [Supported K8S Distributions](#supported-k8s-distributions)
1415

1516
This page describe how to deploy Redis Enterprise on Kubernetes using the Redis Enterprise Operator. High level architecture and overview of the solution can be found [HERE](https://docs.redislabs.com/latest/platforms/kubernetes/).
1617

@@ -27,8 +28,8 @@ The following are the images and tags for this release:
2728
| Component | k8s | Openshift |
2829
| --- | --- | --- |
2930
| Redis Enterprise | `redislabs/redis:6.0.6-39` | `redislabs/redis:6.0.6-39.rhel7-openshift` |
30-
| Operator | `redislabs/operator:6.0.6-11` | `redislabs/operator:6.0.6-11.rhel7` |
31-
| Services Rigger | `redislabs/k8s-controller:6.0.6-11` | `redislabs/k8s-controller:6.0.6-11.rhel7` |
31+
| Operator | `redislabs/operator:6.0.6-23` | `redislabs/operator:6.0.6-23` |
32+
| Services Rigger | `redislabs/k8s-controller:6.0.6-23` | `redislabs/k8s-controller:6.0.6-23` |
3233
> * RedHat certified images are available on [Redhat Catalog](https://access.redhat.com/containers/#/product/71f6d1bb3408bd0d) </br>
3334
3435

@@ -69,6 +70,7 @@ This is the fastest way to get up and running with a new Redis Enterprise on Kub
6970
> Note: The rbac.yaml file used in previous releases has been broken down into three distinct files:
7071
`role.yaml`, `role_binding.yaml` and `service_account.yaml`.
7172
The `crd.yaml` file was renamed to `redisenterprisecluster_crd.yaml`, with the API version prepended to the filename.
73+
Apply the `crds/app_v1alpha1_redisenterprisedatabase_crd.yaml` if managing database instances through Kubernetes API and commands is desired.
7274

7375
3. Run `kubectl get deployment` and verify redis-enterprise-operator deployment is running.
7476

@@ -87,7 +89,9 @@ This is the fastest way to get up and running with a new Redis Enterprise on Kub
8789
kubectl apply -f crds/app_v1_redisenterprisecluster_cr.yaml
8890
```
8991

90-
> Note: The redis-enterprise-cluster.yaml file was renamed to redisenterprisecluster_cr.yaml, with the API version prepended to the filename.
92+
> Notes:
93+
> 1. The `redis-enterprise-cluster.yaml` file was renamed to `redisenterprisecluster_cr.yaml`, with the API version prepended to the filename.
94+
> 2. The Operator can only manage one Redis Enterprise Cluster custom resource in a namespace. To deploy another Enterprise Clusters in the same Kubernetes cluster, deploy an Operator in an additional namespace for each additional Enterprise Cluster required. Note that each Enterprise Cluster can effectively host hundreds of Redis Database instances. Deploying multiple clusters is typically used for scenarios where complete operational isolation is required at the cluster level.
9195

9296
5. Run ```kubectl get rec``` and verify creation was successful. `rec` is a shortcut for RedisEnterpriseCluster.
9397
A typical response may look like this:
@@ -154,18 +158,18 @@ Other custom configurations are referenced in this repository.
154158
```
155159
156160
4. Deploy the OpenShift operator bundle:
161+
> NOTE: Update the `storageClassName` setting in `openshift.bundle.yaml` (by default its set to `gp2`).
157162
158163
```bash
159164
oc apply -f openshift.bundle.yaml
160165
```
161166
162167
5. Redis Enterprise Cluster custom resource - `RedisEnterpriseCluster`
163-
> NOTE: Update the `storageClassName` setting in `redis-enterprise-cluster_rhel.yaml` as required (it's set to `gp2` by default).
164168
165169
Apply the `RedisEnterpriseCluster` resource with RHEL7 based images:
166170
167171
```bash
168-
kubectl apply -f openshift/redis-enterprise-cluster_rhel.yaml
172+
oc apply -f openshift/redis-enterprise-cluster_rhel.yaml
169173
```
170174
171175
6. Redis Enterprise Database custom resource - `RedisEnterpriseDatabase`
@@ -195,6 +199,9 @@ Other custom configurations are referenced in this repository.
195199
> When using the REDB Custom Resource Definition (Redis Enterprise Database) it is recommended to set up admission controller to improve input validation and catch configuration errors before they reach the cluster. The procedure is documented [here](admission/README.md).
196200
197201
202+
### Installation on PKS
203+
Instruction on how to deploy the Operator on PKS can be found on the [Redis Labs documentation Website](https://docs.redislabs.com/latest/platforms/pks/)
204+
198205
199206
## Configuration
200207
@@ -309,14 +316,14 @@ For example:
309316
redisEnterpriseServicesRiggerImageSpec:
310317
imagePullPolicy: IfNotPresent
311318
repository: harbor.corp.local/redisenterprise/k8s-controller
312-
versionTag: 6.0.6-11
319+
versionTag: 6.0.6-23
313320
```
314321
315322
```yaml
316323
bootstrapperImageSpec:
317324
imagePullPolicy: IfNotPresent
318325
repository: harbor.corp.local/redisenterprise/operator
319-
versionTag: 6.0.6-11
326+
versionTag: 6.0.6-23
320327
```
321328
322329
In Operator Deployment spec (operator.yaml):
@@ -328,7 +335,7 @@ spec:
328335
spec:
329336
containers:
330337
- name: redis-enterprise-operator
331-
image: harbor.corp.local/redisenterprise/operator:6.0.6-11
338+
image: harbor.corp.local/redisenterprise/operator:6.0.6-23
332339
```
333340
334341
Image specification follow the [K8s Container schema](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#container-v1-core).
@@ -342,6 +349,8 @@ Private repositories which require login can be accessed by creating a pull secr
342349
```shell
343350
kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
344351
```
352+
> NOTE: Make sure to witch context to the REC namespace or add flag -n <namespace>.
353+
345354
where:
346355
347356
- `<your-registry-server>` is your Private repository FQDN. ([https://index.docker.io/v1/](https://index.docker.io/v1/) for DockerHub)
@@ -377,7 +386,7 @@ spec:
377386
The Operator automates and simplifies the upgrade process.
378387
The Redis Enterprise Cluster Software, and the Redis Enterprise Operator for Kubernetes versions are tightly coupled and should be upgraded together.
379388
It is recommended to use the bundle.yaml to upgrade, as it loads all the relevant CRD documents for this version. If the updated CRDs are not loaded, the operator might fail.
380-
There are two ways to upgrade - either set 'autoUpgradeRedisEnterprise' within the Redis Enterprise Cluster Spec to instruct the operator to automatically upgrade to the compatible version, or specify the correct Redis Enterprise image manually using the versionTag attribute. The Redis Enterprise version compatible with this release is 6.0.6-39
389+
There are two ways to upgrade - either set 'autoUpgradeRedisEnterprise' within the Redis Enterprise Cluster Spec to instruct the operator to automatically upgrade to the compatible version, or specify the correct Redis Enterprise image manually using the versionTag attribute. The Redis Enterprise Version compatible with this release is 6.0.6-39
381390
382391
```yaml
383392
autoUpgradeRedisEnterprise: true
@@ -388,3 +397,24 @@ Alternatively:
388397
RedisEnterpriseImageSpec:
389398
versionTag: redislabs/redis:6.0.6-39
390399
```
400+
401+
## Supported K8S Distributions
402+
Each release of the Redis Enterprise Operator deployment is thoroughly tested against a set of Kubernetes distributions. The table below lists these, along with the current release's support status. "Supported", as well as "deprecated" support status indicates the current release has been tested in this environment and supported by RedisLabs. "Deprecated" also indicates that support will be dropped in a coming future release. "No longer supported" indicates that support has been dropped for this distribution. Any distribution that isn't explicitly listed is not supported for production workloads by RedisLabs.
403+
| Distribution | Support Status |
404+
|-------------------|---------------------|
405+
| Openshift 3.11 | supported |
406+
| Openshift 4.1 | supported |
407+
| Openshift 4.2 | supported |
408+
| Openshift 4.3 | supported |
409+
| KOPS vanilla 1.9 | no longer supported |
410+
| KOPS vanilla 1.10 | no longer supported |
411+
| KOPS vanilla 1.11 | deprecated |
412+
| KOPS vanilla 1.12 | supported |
413+
| KOPS vanilla 1.13 | supported |
414+
| KOPS vanilla 1.14 | supported |
415+
| KOPS vanilla 1.15 | supported |
416+
| KOPS vanilla 1.16 | supported |
417+
| KOPS vanilla 1.17 | supported |
418+
| GKE 1.14 | supported |
419+
| GKE 1.15 | supported |
420+
| GKE 1.16 | supported |

admission.bundle.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ rules:
2121
- apiGroups: [""]
2222
resources: ["secrets"]
2323
verbs: ["*"]
24+
- apiGroups: ["app.redislabs.com"]
25+
resources: ["*"]
26+
verbs: ["*"]
27+
2428
---
2529
kind: RoleBinding
2630
apiVersion: rbac.authorization.k8s.io/v1
@@ -75,7 +79,7 @@ spec:
7579
serviceAccountName: redis-enterprise-admission
7680
containers:
7781
- name: admin
78-
image: redislabs/operator:6.0.6-11
82+
image: redislabs/operator:6.0.6-23
7983
command:
8084
- /usr/local/bin/admission
8185
args:
@@ -106,7 +110,7 @@ spec:
106110
scheme: HTTPS
107111
initContainers:
108112
- name: admin-init
109-
image: redislabs/operator:6.0.6-11
113+
image: redislabs/operator-internal:6.0.6-23
110114
command:
111115
- /usr/local/bin/admission
112116
args:

admission.openshift.bundle.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ rules:
2121
- apiGroups: [""]
2222
resources: ["secrets"]
2323
verbs: ["*"]
24+
- apiGroups: ["app.redislabs.com"]
25+
resources: ["*"]
26+
verbs: ["*"]
27+
2428
---
2529
kind: RoleBinding
2630
apiVersion: rbac.authorization.k8s.io/v1
@@ -75,7 +79,7 @@ spec:
7579
serviceAccountName: redis-enterprise-admission
7680
containers:
7781
- name: admin
78-
image: redislabs/operator:6.0.6-11.rhel7
82+
image: redislabs/operator:6.0.6-23
7983
command:
8084
- /usr/local/bin/admission
8185
args:
@@ -106,7 +110,7 @@ spec:
106110
scheme: HTTPS
107111
initContainers:
108112
- name: admin-init
109-
image: redislabs/operator:6.0.6-11.rhel7
113+
image: redislabs/operator:6.0.6-23
110114
command:
111115
- /usr/local/bin/admission
112116
args:

admission/README.md

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,19 @@ sed 's/NAMESPACE_OF_SERVICE_ACCOUNT/REPLACE_WITH_NAMESPACE/g' admission.bundle.y
1616

1717
If this is the first time one is deploying the admission controller, one has to approve the CSR and setup the webhook to enable resource validation. If one has already set these up, and one is just updating the admission controller, one skips steps 2 and 3 as they are already configured correctly
1818

19-
2. and waits for the CSR to ready and approves it
20-
21-
wait for it to be ready to be approved
19+
2. and waits for the secret to be created
2220

2321
```shell script
24-
kubectl get csr admission-tls
25-
```
26-
27-
and approve it once it's pending approval
28-
29-
```shell script
30-
kubectl certificate approve admission-tls
31-
```
32-
or on openshift
33-
```shell script
34-
oc adm certificate approve admission-tls
22+
kubectl get secret admission-tls
23+
NAME TYPE DATA AGE
24+
admission-tls Opaque 2 2m43s
3525
```
3626

3727
3. and modifies the webhook to use the certificate generated
3828

3929
```shell script
4030
# save cert
41-
CERT=`kubectl get csr admission-tls -o jsonpath='{.status.certificate}'`
31+
CERT=`kubectl get secret admission-tls -o jsonpath='{.data.cert}'`
4232
# create patch file
4333
cat > modified-webhook.yaml <<EOF
4434
webhooks:

admission/deployment.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ spec:
1414
serviceAccountName: redis-enterprise-admission
1515
containers:
1616
- name: admin
17-
image: redislabs/operator:6.0.6-11
17+
image: redislabs/operator:6.0.6-23
1818
command:
1919
- /usr/local/bin/admission
2020
args:
@@ -45,7 +45,7 @@ spec:
4545
scheme: HTTPS
4646
initContainers:
4747
- name: admin-init
48-
image: redislabs/operator:6.0.6-11
48+
image: redislabs/operator:6.0.6-23
4949
command:
5050
- /usr/local/bin/admission
5151
args:
@@ -72,3 +72,4 @@ spec:
7272
requests:
7373
cpu: 100m
7474
memory: 256Mi
75+

admission/deployment_openshift.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ spec:
1414
serviceAccountName: redis-enterprise-admission
1515
containers:
1616
- name: admin
17-
image: redislabs/operator:6.0.6-11.rhel7
17+
image: redislabs/operator:6.0.6-23
1818
command:
1919
- /usr/local/bin/admission
2020
args:
@@ -45,7 +45,7 @@ spec:
4545
scheme: HTTPS
4646
initContainers:
4747
- name: admin-init
48-
image: redislabs/operator:6.0.6-11.rhel7
48+
image: redislabs/operator:6.0.6-23
4949
command:
5050
- /usr/local/bin/admission
5151
args:
@@ -72,3 +72,4 @@ spec:
7272
requests:
7373
cpu: 100m
7474
memory: 256Mi
75+

admission/role.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,7 @@ rules:
66
- apiGroups: [""]
77
resources: ["secrets"]
88
verbs: ["*"]
9+
- apiGroups: ["app.redislabs.com"]
10+
resources: ["*"]
11+
verbs: ["*"]
12+

bundle.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ spec:
115115
serviceAccountName: redis-enterprise-operator
116116
containers:
117117
- name: redis-enterprise-operator
118-
image: redislabs/operator:6.0.6-11
118+
image: redislabs/operator:6.0.6-23
119119
command:
120120
- redis-enterprise-operator
121121
imagePullPolicy: Always

0 commit comments

Comments
 (0)