Redis Enterprise for Kubernetes release notes 6.4.2-6 (June 2023)
The Redis Enterprise K8s 6.4.2-6 release supports Redis Enterprise Software 6.4.2 and contains new features and feature improvements.
Overview
The Redis Enterprise K8s 6.4.2-6 release supports Redis Enterprise Software 6.4.2 and contains new features and feature improvements.
The key features, bug fixes, and known limitations are described below.
Images
- Redis Enterprise:
redislabs/redis:6.4.2-81
- Operator:
redislabs/operator:6.4.2-6
- Services Rigger:
redislabs/k8s-controller:6.4.2-6
OpenShift images
- Redis Enterprise:
registry.connect.redhat.com/redislabs/redis-enterprise:6.4.2-81.rhel8-openshift
(orredislabs/redis-enterprise:6.4.2-81.rhel7-openshift
if upgrading from RHEL 7) - Operator:
registry.connect.redhat.com/redislabs/redis-enterprise-operator:6.4.2-6
- Services Rigger:
registry.connect.redhat.com/redislabs/services-manager:6.4.2-6
OpenShift OLM bundles
- Redis Enterprise operator bundle version:
v6.4.2-6
New features
- General availability of the Active-Active database controller for declarative configuration support
Feature improvements
- Active-Active controller improvements include adding support for the following:
- Configuration via OLM
- Certificates in
globalConfiguration
- Backups in
globalConfiguration
- Modules (preview)
- Hashicorp Vault secrets
- indication of sync failures to REAADB
- Added support for separate
podAnnotations
for Redis Enterprise pods to allow settingappArmor
exceptions - Timezone can be passed as environment variable into Redis Enterprise pods
- REDB namespaces can be labelled without the operator going into
CrashLoopBackoff
- Added support for K8s 1.27
- Added support for K8s 1.25 for EKS
- Added support for K8s 1.26 for AKS and GKE
- Improved log collector execution log, filtering out empty files, capturing volume attachments, option to disable RS capture debug info package
- Added
extraEnvVars
field in REC to support environment variables for RS pods - Changed RKE2 to the default for Rancher distributions
Fixed bugs
- REC in invalid state can't be deleted (RED-78124)
- OpenShift route not deleted after REC is deleted (RED-94121)
- REAADB secret status not being updated in source cluster (RED-96296)
- Invalid REAADB that is not rejected by admission might be deleted after apply (RED-96300)
- Operator logs an error about missing permissions to nodes on startup (RED-98227)
- Operator continues to update REC certificates in a loop (RED-98586)
- Log collector script may crash when trying to write multi-byte characters to file (RED-99869)
- Log collector fails to include RS debuginfo when old kubectl is used (RED-101170)
- REC creation fails due to required LDAP configuration in OLM form view (RED-100517)
- Upgrading to 6.4.2 (or 6.2.18) on OpenShift will fail if pod 0 is not the master node when upgrade starts (RED-102100)
- Upgrading from 6.2.8-15 (and below) to 6.2.12-1 (and above) may break the databases (RED-102241)
API changes
The following fields were changed in the RedisEnterpriseCluster (REC) API:
-
containerTimezoneSpec.timezoneName
added to configure timezones on the Redis Enterprise pods -
hostAliases
added for adding an entry to the Redis Enterprise pods'/etc/hosts
-
redisEnteprisePodAnnotations
added to specify annotations that should only be set on the Redis Enterprise pods -
ingressOrRouteSpec
enabled to use without alpha features enabled -
extraEnvVars
added for advanced users to add environment variables to the Redis Enterprise pods -
ServicesRiggerConfigurationSpec.podAnnotations
added to specify annotations that should only be set on the service rigger pods -
The following custom resources definitions were added:
Compatibility notes
Deprecated features
- Support for Gesher, the advanced admission control configuration, is deprecated.
Supported distributions
The following table shows supported distributions at the time of this release. You can also find this list in Supported Kubernetes distributions.
Kubernetes version | 1.22 | 1.23 | 1.24 | 1.25 | 1.26 | 1.27 |
---|---|---|---|---|---|---|
Community Kubernetes | deprecated | supported | supported | supported | supported* | |
Amazon EKS | deprecated | deprecated | supported | supported* | ||
Azure AKS | deprecated | supported | supported | supported* | ||
Google GKE | deprecated | deprecated | supported | supported | supported* | |
Rancher 2.6 | deprecated | deprecated | supported | |||
Rancher 2.7 | deprecated | supported | ||||
VMware TKG 1.6 | deprecated | deprecated | ||||
OpenShift version | 4.9 | 4.10 | 4.11 | 4.12 | ||
deprecated | supported | supported | ||||
VMware TKGI version | 1.13 | 1.14 | 1.15 | |||
deprecated | deprecated | supported |
* Support added in this release
Before upgrading
Be aware the following changes included in this release affect the upgrade process. Please read carefully before upgrading to 6.4.2-6.
-
ValidatingWebhookConfiguration
This release uses a new
ValidatingWebhookConfiguration
resource to replace theredb-admission
webhook resource. To use releases 6.4.2-4 or later, delete the old webhook resource and apply the new file. See upgrade Redis cluster for instructions. -
OpenShift SCC
This release includes a new SCC (
redis-enterprise-scc-v2
) that you need to bind to your service account before upgrading. OpenShift clusters running version 6.2.12 or earlier upgrading to version 6.2.18 or later might get stuck if you skip this step. See upgrade a Redis Enterprise cluster (REC) for details.
Known limitations
New limitations
-
Admission controller may not alert when patching the REAADB with missing secret or RERC (RED-104463) Remove the secret from the spec and create the missing secret, and then re-patch the REAADB again.
-
REAADB changes might fail with "gateway timeout" errors, mostly on OpenShift (RED-103048) Retry the operation.
-
Misleading error appears when a service creation has failed due to service already existing "
provided IP is already allocated
" (RED-100669) Delete the service manually. -
Existing OpenShift route during REC creation might prevent REC from starting (RED-100668) Delete the route manually.
-
Creating two databases with the same name directly on Redis Enterprise software will cause the service to be deleted and the database will not be available (RED-99997) Avoid duplicating database names. Database creation via K8s has validation in place to prevent this.
-
Installing the operator bundle produces warning:
Warning: would violate PodSecurity "restricted: v1.24"
(RED-97381) Ignore the warning. This issue is documented as benign on official Red Hat documentation.
Existing limitations
-
RERC resources must have a unique name (
<rec-name>/<rec-namespace>
) (RED-96302) -
Admission is not blocking REAADB with
shardCount
which exceeds license quota. (RED-96301) Fix the problems with the REAADB and reapply. -
Active-Active setup removal might keep services or routes undeleted (RED-77752) Delete services or routes manually if you encounter this problem.
-
autoUpgrade
set totrue
can cause unexpected bdb upgrades whenredisUpgradePolicy
is set totrue
(RED-72351) Contact support if your deployment is impacted. -
Following the previous quick start guide version causes issues with creating an REDB due to unrecognized memory field name (RED-69515) The workaround is to use the newer (current) revision of the quick start.
-
PVC size issues when using decimal value in spec (RED-62132) Make sure you use integer values for the PVC size.
-
REC might report error states on initial startup (RED-61707) There is no workaround at this time except to ignore the errors.
-
Hashicorp Vault integration - no support for Gesher (RED-55080) There is no workaround for this issue. Gesher support has been deprecated.
-
REC clusters fail to start on Kubernetes clusters with unsynchronized clocks (RED-47254) When REC clusters are deployed on Kubernetes clusters with unsynchronized clocks, the REC cluster does not start correctly. The fix is to use NTP to synchronize the underlying K8s nodes.
-
Deleting an OpenShift project with an REC deployed may hang (RED-47192) When an REC cluster is deployed in a project (namespace) and has REDB resources, the REDB resources must be deleted first before the REC can be deleted. Therefore, until the REDB resources are deleted, the project deletion will hang. The fix is to delete the REDB resources first and the REC second. Then, you can delete the project.
-
Clusters must be named "rec" in OLM-based deployments (RED-39825) In OLM-deployed operators, the deployment of the cluster will fail if the name is not "rec". When the operator is deployed via the OLM, the security context constraints (scc) are bound to a specific service account name (namely, "rec"). The workaround is to name the cluster "rec".
-
Readiness probe incorrect on failures (RED-39300) STS Readiness probe does not mark a node as "not ready" when running
rladmin status
on node failure. -
Internal DNS and Kubernetes DNS may have conflicts (RED-37462) DNS conflicts are possible between the cluster
mdns_server
and the K8s DNS. This only impacts DNS resolution from within cluster nodes for Kubernetes DNS names. -
5.4.10 negatively impacts 5.4.6 (RED-37233) Kubernetes-based 5.4.10 deployments seem to negatively impact existing 5.4.6 deployments that share a Kubernetes cluster.
-
Node CPU usage is reported instead of pod CPU usage (RED-36884) In Kubernetes, the reported node CPU usage is the usage of the Kubernetes worker node hosting the REC pod.
-
An unreachable cluster has status running (RED-32805) When a cluster is in unreachable state, the state remains
running
instead of triggering an error. -
Long cluster names cause routes to be rejected (RED-25871) A cluster name longer than 20 characters will result in a rejected route configuration because the host part of the domain name exceeds 63 characters. The workaround is to limit the cluster name to 20 characters or fewer.
-
Cluster CR (REC) errors are not reported after invalid updates (RED-25542) A cluster CR specification error is not reported if two or more invalid CR resources are updated in sequence.
Security
For a list of fixes related to CVEs, see the Redis Enterprise 6.4.2-81 release notes.