Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion charts/redis-ha/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ keywords:
- redis
- keyvalue
- database
version: 4.39.0
version: 4.40.0
appVersion: 8.8.0
description: This Helm chart provides a highly available Redis implementation with a master/slave configuration and uses Sentinel sidecars for failover management
icon: https://img.icons8.com/external-tal-revivo-shadow-tal-revivo/24/external-redis-an-in-memory-data-structure-project-implementing-a-distributed-logo-shadow-tal-revivo.png
Expand Down
6 changes: 6 additions & 0 deletions charts/redis-ha/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@ The following table lists the configurable parameters of the Redis chart and the
| `image.tag` | Redis image tag | string | `"8.8.0-alpine"` |
| `imagePullSecrets` | Reference to one or more secrets to be used when pulling redis images | list | `[]` |
| `init.resources` | Extra init resources | object | `{}` |
| `ipFamilies` | ipFamilies for the headless and announce Services (e.g. ["IPv6"]). Empty = cluster default. | list | `[]` |
| `ipFamilyPolicy` | ipFamilyPolicy for the headless and announce Services (e.g. SingleStack / PreferDualStack). Empty = cluster default. | string | `""` |
| `labels` | Custom labels for the redis pod | object | `{}` |
| `nameOverride` | Name override for Redis HA resources | string | `""` |
| `networkPolicy.annotations` | Annotations for NetworkPolicy | object | `{}` |
Expand Down Expand Up @@ -438,6 +440,10 @@ Risk is limited because announce-service is using `publishNotReadyAddresses: tru

PodDisruptionBudgets are not configured by default, you may need to set the `haproxy.podDisruptionBudget` parameter in values.yaml to enable it.

### Dual-stack and IPv6-primary clusters

On dual-stack or IPv6-primary clusters, setting `sentinel.resolveHostnames: true` and `sentinel.announceHostnames: true` is recommended: HAProxy backend server lines then use the announce Service FQDNs and Sentinel announces hostnames instead of start-time resolved IPs. To run the Services IPv6-primary, additionally set `ipFamilies`/`ipFamilyPolicy` (headless and announce Services) and `haproxy.service.ipFamilies`/`haproxy.service.ipFamilyPolicy`. Changing a Service's family is rejected in place by admission, so conversion requires delete+recreate (letting Helm/Argo CD own the recreate is exactly why these values exist).

## Network policies

If `networkPolicy.enabled` is set to `true`, then a `NetworkPolicy` resource is created with default rules to allow inter-Redis and Sentinel connectivity.
Expand Down
6 changes: 6 additions & 0 deletions charts/redis-ha/templates/redis-ha-announce-service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ spec:
publishNotReadyAddresses: true
{{- end }}
type: ClusterIP
{{- if $root.Values.ipFamilyPolicy }}
ipFamilyPolicy: {{ $root.Values.ipFamilyPolicy }}
{{- end }}
{{- if $root.Values.ipFamilies }}
ipFamilies: {{ toYaml $root.Values.ipFamilies | nindent 2 }}
{{- end }}
ports:
{{- if ne (int $root.Values.redis.port) 0 }}
- name: tcp-server
Expand Down
6 changes: 6 additions & 0 deletions charts/redis-ha/templates/redis-ha-service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ metadata:
spec:
type: ClusterIP
clusterIP: None
{{- if .Values.ipFamilyPolicy }}
ipFamilyPolicy: {{ .Values.ipFamilyPolicy }}
{{- end }}
{{- if .Values.ipFamilies }}
ipFamilies: {{ toYaml .Values.ipFamilies | nindent 2 }}
{{- end }}
ports:
{{- if ne (int .Values.redis.port) 0 }}
- name: tcp-server
Expand Down
6 changes: 6 additions & 0 deletions charts/redis-ha/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,12 @@ labels: {}
# -- Custom labels for redis service
serviceLabels: {}

# -- ipFamilyPolicy for the headless and announce Services (e.g. SingleStack / PreferDualStack). Empty = cluster default.
ipFamilyPolicy: ""

# -- ipFamilies for the headless and announce Services (e.g. ["IPv6"]). Empty = cluster default.
ipFamilies: []

## Custom labels for the redis configmap
configmap:
# -- Custom labels for the redis configmap
Expand Down