diff --git a/charts/redis-ha/Chart.yaml b/charts/redis-ha/Chart.yaml index 48aff37..bd73a0f 100644 --- a/charts/redis-ha/Chart.yaml +++ b/charts/redis-ha/Chart.yaml @@ -5,7 +5,7 @@ keywords: - redis - keyvalue - database -version: 4.35.0 +version: 4.35.1 appVersion: 8.2.2 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 diff --git a/charts/redis-ha/README.md b/charts/redis-ha/README.md index 02b45d3..92a5e66 100644 --- a/charts/redis-ha/README.md +++ b/charts/redis-ha/README.md @@ -216,6 +216,8 @@ The following table lists the configurable parameters of the Redis chart and the | `sentinel.livenessProbe.successThreshold` | Success threshold for liveness probe | int | `1` | | `sentinel.livenessProbe.timeoutSeconds` | Timeout seconds for liveness probe | int | `15` | | `sentinel.password` | A password that configures a `requirepass` in the conf parameters (Requires `sentinel.auth: enabled`) | string | `nil` | +| `sentinel.resolveHostnames` | Configures sentinel with resolve-hostnames parameter, if true sets "resolve-hostnames yes" in sentinel.conf | bool | `nil` | +| `sentinel.announceHostnames` | Configures sentinel with announce-hostnames parameter, if true sets "announce-hostnames yes" in sentinel.conf | bool | `nil` | | `sentinel.port` | Port to access the sentinel service | int | `26379` | | `sentinel.quorum` | Minimum number of nodes expected to be live. | int | `2` | | `sentinel.readinessProbe.enabled` | | bool | `true` | diff --git a/charts/redis-ha/templates/_configs.tpl b/charts/redis-ha/templates/_configs.tpl index 0db1ce3..241688d 100644 --- a/charts/redis-ha/templates/_configs.tpl +++ b/charts/redis-ha/templates/_configs.tpl @@ -68,9 +68,9 @@ {{- end }} {{- range $key, $value := .Values.sentinel.config }} {{- if eq "maxclients" $key }} - {{ $key }} {{ $value }} + {{ $key }} {{ $value }} {{- else }} - sentinel {{ $key }} {{ template "redis-ha.masterGroupName" $ }} {{ $value }} + sentinel {{ $key }} {{ template "redis-ha.masterGroupName" $ }} {{ $value }} {{- end }} {{- end }} {{- if .Values.auth }} @@ -79,6 +79,12 @@ {{- if .Values.sentinel.auth }} requirepass replace-default-sentinel-auth {{- end }} +{{- if .Values.sentinel.resolveHostnames }} + sentinel resolve-hostnames yes +{{- end }} +{{- if .Values.sentinel.announceHostnames }} + sentinel announce-hostnames yes +{{- end }} {{- end }} {{- end }} @@ -86,11 +92,21 @@ sentinel_get_master() { set +e if [ "$SENTINEL_PORT" -eq 0 ]; then - redis-cli -h "${SERVICE}" -p "${SENTINEL_TLS_PORT}" {{ if .Values.sentinel.auth }} -a "${SENTINELAUTH}" --no-auth-warning{{ end }} --tls --cacert /tls-certs/{{ .Values.tls.caCertFile }} {{ if ne (default "yes" .Values.sentinel.authClients) "no"}} --cert /tls-certs/{{ .Values.tls.certFile }} --key /tls-certs/{{ .Values.tls.keyFile }}{{ end }} sentinel get-master-addr-by-name "${MASTER_GROUP}" |\ - grep -E '((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?s*$))' + if [ "$RESOLVE_HOSTNAMES" = true ]; then + redis-cli -h "${SERVICE}" -p "${SENTINEL_TLS_PORT}" {{ if .Values.sentinel.auth }} -a "${SENTINELAUTH}" --no-auth-warning{{ end }} --tls --cacert /tls-certs/{{ .Values.tls.caCertFile }} {{ if ne (default "yes" .Values.sentinel.authClients) "no"}} --cert /tls-certs/{{ .Values.tls.certFile }} --key /tls-certs/{{ .Values.tls.keyFile }}{{ end }} sentinel get-master-addr-by-name "${MASTER_GROUP}" |\ + head -n 1 | grep -E '^\s*[a-zA-Z0-9.-]+\s*$' + else + redis-cli -h "${SERVICE}" -p "${SENTINEL_TLS_PORT}" {{ if .Values.sentinel.auth }} -a "${SENTINELAUTH}" --no-auth-warning{{ end }} --tls --cacert /tls-certs/{{ .Values.tls.caCertFile }} {{ if ne (default "yes" .Values.sentinel.authClients) "no"}} --cert /tls-certs/{{ .Values.tls.certFile }} --key /tls-certs/{{ .Values.tls.keyFile }}{{ end }} sentinel get-master-addr-by-name "${MASTER_GROUP}" |\ + head -n 1 | grep -E '((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?s*$))' + fi else - redis-cli -h "${SERVICE}" -p "${SENTINEL_PORT}" {{ if .Values.sentinel.auth }} -a "${SENTINELAUTH}" --no-auth-warning{{ end }} sentinel get-master-addr-by-name "${MASTER_GROUP}" |\ - grep -E '((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?s*$))' + if [ "$RESOLVE_HOSTNAMES" = true ]; then + redis-cli -h "${SERVICE}" -p "${SENTINEL_PORT}" {{ if .Values.sentinel.auth }} -a "${SENTINELAUTH}" --no-auth-warning{{ end }} sentinel get-master-addr-by-name "${MASTER_GROUP}" |\ + head -n 1 | grep -E '^\s*[a-zA-Z0-9.-]+\s*$' + else + redis-cli -h "${SERVICE}" -p "${SENTINEL_PORT}" {{ if .Values.sentinel.auth }} -a "${SENTINELAUTH}" --no-auth-warning{{ end }} sentinel get-master-addr-by-name "${MASTER_GROUP}" |\ + head -n 1 | grep -E '((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?s*$))' + fi fi set -e } @@ -177,16 +193,23 @@ echo " make sure ${ANNOUNCE_IP} is not a slave (slaveof no one)" sed -i "s/^.*slaveof.*//" "${REDIS_CONF}" else - echo "Getting redis master ip.." - echo " blindly assuming (${SERVICE}-announce-0) or (${SERVICE}-server-0) are master" - DEFAULT_MASTER="$(getent_hosts 0 | awk '{ print $1 }')" - if [ -z "${DEFAULT_MASTER}" ]; then - echo "Error: Unable to resolve redis master (getent hosts)." - exit 1 + if [ "$RESOLVE_HOSTNAMES" = true ]; then + echo "Getting redis master hostname.." + echo " blindly assuming (${SERVICE}-announce-0.${NAMESPACE}.svc) is master" + DEFAULT_MASTER="${SERVICE}-announce-0.${NAMESPACE}.svc" + echo " identified redis (may be redis master) hostname (${DEFAULT_MASTER})" + else + echo "Getting redis master ip.." + echo " blindly assuming (${SERVICE}-announce-0) or (${SERVICE}-server-0) are master" + DEFAULT_MASTER="$(getent_hosts 0 | awk '{ print $1 }')" + if [ -z "${DEFAULT_MASTER}" ]; then + echo "Error: Unable to resolve redis master (getent hosts)." + exit 1 + fi + echo " identified redis (may be redis master) ip (${DEFAULT_MASTER})" fi - echo " identified redis (may be redis master) ip (${DEFAULT_MASTER})" echo "Setting default slave config for redis and sentinel.." - echo " using master ip (${DEFAULT_MASTER})" + echo " using master address (${DEFAULT_MASTER})" redis_update "${DEFAULT_MASTER}" sentinel_update "${DEFAULT_MASTER}" fi @@ -281,14 +304,24 @@ getent_hosts() { index=${1:-${INDEX}} service="${SERVICE}-announce-${index}" - host=$(getent hosts "${service}") - echo "${host}" + if [ "$RESOLVE_HOSTNAMES" = true ]; then + echo "${service}.${NAMESPACE}.svc" + else + host=$(getent hosts "${service}") + echo "${host}" + fi } identify_announce_ip() { - echo "Identify announce ip for this pod.." - echo " using (${SERVICE}-announce-${INDEX}) or (${SERVICE}-server-${INDEX})" - ANNOUNCE_IP=$(getent_hosts | awk '{ print $1 }') + if [ "$ANNOUNCE_HOSTNAMES" = true ]; then + echo "Identify announce hostname for this pod.." + echo " using (${SERVICE}-announce-${INDEX}.${NAMESPACE}.svc)" + ANNOUNCE_IP="${SERVICE}-announce-${INDEX}.${NAMESPACE}.svc" + else + echo "Identify announce ip for this pod.." + echo " using (${SERVICE}-announce-${INDEX}) or (${SERVICE}-server-${INDEX})" + ANNOUNCE_IP=$(getent_hosts | awk '{ print $1 }') + fi echo " identified announce (${ANNOUNCE_IP})" } {{- end }} @@ -310,8 +343,11 @@ SENTINEL_CONF=/data/conf/sentinel.conf SENTINEL_TLS_PORT={{ .Values.sentinel.tlsPort }} SERVICE={{ template "redis-ha.fullname" . }} + NAMESPACE="{{ .Release.Namespace }}" SENTINEL_TLS_REPLICATION_ENABLED={{ default false .Values.sentinel.tlsReplication }} REDIS_TLS_REPLICATION_ENABLED={{ default false .Values.redis.tlsReplication }} + RESOLVE_HOSTNAMES={{ default false .Values.sentinel.resolveHostnames }} + ANNOUNCE_HOSTNAMES={{ default false .Values.sentinel.announceHostnames }} {{- end }} {{- define "config-init.sh" }} @@ -333,7 +369,7 @@ identify_announce_ip if [ -z "${ANNOUNCE_IP}" ]; then - "Error: Could not resolve the announce ip for this pod" + echo "Error: Could not resolve the announce address for this pod" exit 1 elif [ "${MASTER}" ]; then find_master @@ -460,7 +496,7 @@ identify_announce_ip while [ -z "${ANNOUNCE_IP}" ]; do - echo "Error: Could not resolve the announce ip for this pod." + echo "Error: Could not resolve the announce address for this pod." sleep 30 identify_announce_ip done @@ -540,8 +576,12 @@ tcp-check expect string REPLACE_ANNOUNCE{{ $i }} tcp-check send QUIT\r\n {{- range $i := until $replicas }} + {{- if .Values.sentinel.resolveHostnames }} + server R{{ $i }} {{ $fullName }}-announce-{{ $i }}.{{ .Release.Namespace }}.svc:26379 check inter {{ $root.Values.haproxy.checkInterval }} + {{- else }} server R{{ $i }} {{ $fullName }}-announce-{{ $i }}:26379 check inter {{ $root.Values.haproxy.checkInterval }} {{- end }} + {{- end }} {{- end }} # decide redis backend to use @@ -580,8 +620,12 @@ tcp-check expect string +OK {{- range $i := until $replicas }} use-server R{{ $i }} if { srv_is_up(R{{ $i }}) } { nbsrv(check_if_redis_is_master_{{ $i }}) ge 2 } + {{- if .Values.sentinel.resolveHostnames }} + server R{{ $i }} {{ $fullName }}-announce-{{ $i }}.{{ .Release.Namespace }}.svc:{{ $root.Values.redis.port }} check inter {{ $root.Values.haproxy.checkInterval }} fall {{ $root.Values.haproxy.checkFall }} rise 1 + {{- else }} server R{{ $i }} {{ $fullName }}-announce-{{ $i }}:{{ $root.Values.redis.port }} check inter {{ $root.Values.haproxy.checkInterval }} fall {{ $root.Values.haproxy.checkFall }} rise 1 {{- end }} + {{- end }} {{- if .Values.haproxy.readOnly.enabled }} backend bk_redis_slave {{- if .Values.haproxy.stickyBalancing }} @@ -602,8 +646,12 @@ tcp-check send QUIT\r\n tcp-check expect string +OK {{- range $i := until $replicas }} + {{- if .Values.sentinel.resolveHostnames }} + server R{{ $i }} {{ $fullName }}-announce-{{ $i }}.{{ .Release.Namespace }}.svc:{{ $root.Values.redis.port }} check inter {{ $root.Values.haproxy.checkInterval }} fall {{ $root.Values.haproxy.checkFall }} rise 1 + {{- else }} server R{{ $i }} {{ $fullName }}-announce-{{ $i }}:{{ $root.Values.redis.port }} check inter {{ $root.Values.haproxy.checkInterval }} fall {{ $root.Values.haproxy.checkFall }} rise 1 {{- end }} + {{- end }} {{- end }} {{- if .Values.haproxy.metrics.enabled }} frontend stats @@ -627,16 +675,23 @@ cp /readonly/haproxy.cfg "$HAPROXY_CONF" {{- $fullName := include "redis-ha.fullname" . }} {{- $replicas := int (toString .Values.replicas) }} + {{- $resolveHostnames := .Values.sentinel.resolveHostnames }} + {{- $namespace := .Release.Namespace }} {{- range $i := until $replicas }} + {{- if $resolveHostnames }} + ANNOUNCE_IP{{ $i }}="{{ $fullName }}-announce-{{ $i }}.{{ $namespace }}.svc" + echo "Using hostname for {{ $fullName }}-announce-{{ $i }}.{{ $namespace }}.svc: $ANNOUNCE_IP{{ $i }}" + {{- else }} for loop in $(seq 1 10); do getent hosts {{ $fullName }}-announce-{{ $i }} && break echo "Waiting for service {{ $fullName }}-announce-{{ $i }} to be ready ($loop) ..." && sleep 1 done ANNOUNCE_IP{{ $i }}=$(getent hosts "{{ $fullName }}-announce-{{ $i }}" | awk '{ print $1 }') if [ -z "$ANNOUNCE_IP{{ $i }}" ]; then - echo "Could not resolve the announce ip for {{ $fullName }}-announce-{{ $i }}" + echo "Could not resolve the announce address for {{ $fullName }}-announce-{{ $i }}" exit 1 fi + {{- end }} sed -i "s/REPLACE_ANNOUNCE{{ $i }}/$ANNOUNCE_IP{{ $i }}/" "$HAPROXY_CONF" {{- end }} diff --git a/charts/redis-ha/values.yaml b/charts/redis-ha/values.yaml index 38a4da1..4edd058 100644 --- a/charts/redis-ha/values.yaml +++ b/charts/redis-ha/values.yaml @@ -509,6 +509,7 @@ sentinel: port: 26379 ## Configure the 'bind' directive to bind to a list of network interfaces + bind: ~ # bind: 0.0.0.0 ## Configures sentinel with tls-port parameter @@ -532,6 +533,14 @@ sentinel: password: ~ # password: password + # -- (bool) Configures sentinel with resolve-hostnames parameter, if true sets "resolve-hostnames yes" in sentinel.conf + resolveHostnames: ~ + # resolveHostnames: true + + # -- (bool) Configures sentinel with announce-hostnames parameter, if true sets "announce-hostnames yes" in sentinel.conf + announceHostnames: ~ + # announceHostnames: true + # -- An existing secret containing a key defined by `sentinel.authKey` that configures `requirepass` # in the conf parameters (Requires `sentinel.auth: enabled`, cannot be used in conjunction with `.Values.sentinel.password`) # Supports templates like "{{ .Release.Name }}-sentinel-creds"