[bitnami/redis] Add hostAliases (#5305)

This commit is contained in:
Javier J. Salmerón-García
2021-01-28 15:50:49 +01:00
committed by GitHub
parent d14849389e
commit b6753bb54a
6 changed files with 303 additions and 247 deletions

View File

@@ -25,4 +25,4 @@ name: redis
sources: sources:
- https://github.com/bitnami/bitnami-docker-redis - https://github.com/bitnami/bitnami-docker-redis
- http://redis.io/ - http://redis.io/
version: 12.6.4 version: 12.7.0

View File

@@ -24,7 +24,7 @@ While [Redis<sup>TM</sup> Helm Chart](https://github.com/bitnami/charts/tree/mas
The main features of each chart are the following: The main features of each chart are the following:
| Redis<sup>TM</sup> | Redis<sup>TM</sup> Cluster | | Redis<sup>TM</sup> | Redis<sup>TM</sup> Cluster |
|--------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| |--------------------------------------------------------|------------------------------------------------------------------------|
| Supports multiple databases | Supports only one database. Better if you have a big dataset | | Supports multiple databases | Supports only one database. Better if you have a big dataset |
| Single write point (single master) | Multiple write points (multiple masters) | | Single write point (single master) | Multiple write points (multiple masters) |
| ![Redis<sup>TM</sup> Topology](img/redis-topology.png) | ![Redis<sup>TM</sup> Cluster Topology](img/redis-cluster-topology.png) | | ![Redis<sup>TM</sup> Topology](img/redis-topology.png) | ![Redis<sup>TM</sup> Cluster Topology](img/redis-cluster-topology.png) |
@@ -62,7 +62,7 @@ The command removes all the Kubernetes components associated with the chart and
The following table lists the configurable parameters of the Redis<sup>TM</sup> chart and their default values. The following table lists the configurable parameters of the Redis<sup>TM</sup> chart and their default values.
| Parameter | Description | Default | | Parameter | Description | Default |
|:----------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------| |:------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------|
| `global.imageRegistry` | Global Docker image registry | `nil` | | `global.imageRegistry` | Global Docker image registry | `nil` |
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) | | `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `global.storageClass` | Global storage class for dynamic provisioning | `nil` | | `global.storageClass` | Global storage class for dynamic provisioning | `nil` |
@@ -126,6 +126,7 @@ The following table lists the configurable parameters of the Redis<sup>TM</sup>
| `metrics.prometheusRule.rules` | [rules](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) to be created, check values for an example. | `[]` | | `metrics.prometheusRule.rules` | [rules](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) to be created, check values for an example. | `[]` |
| `persistence.existingClaim` | Provide an existing PersistentVolumeClaim | `nil` | | `persistence.existingClaim` | Provide an existing PersistentVolumeClaim | `nil` |
| `master.persistence.enabled` | Use a PVC to persist data (master node) | `true` | | `master.persistence.enabled` | Use a PVC to persist data (master node) | `true` |
| `master.hostAliases` | Add deployment host aliases | `[]` |
| `master.persistence.path` | Path to mount the volume at, to use other images | `/data` | | `master.persistence.path` | Path to mount the volume at, to use other images | `/data` |
| `master.persistence.subPath` | Subdirectory of the volume to mount at | `""` | | `master.persistence.subPath` | Subdirectory of the volume to mount at | `""` |
| `master.persistence.storageClass` | Storage class of backing PVC | `generic` | | `master.persistence.storageClass` | Storage class of backing PVC | `generic` |
@@ -196,6 +197,7 @@ The following table lists the configurable parameters of the Redis<sup>TM</sup>
| `volumePermissions.resources ` | Init container volume-permissions CPU/Memory resource requests/limits | {} | | `volumePermissions.resources ` | Init container volume-permissions CPU/Memory resource requests/limits | {} |
| `volumePermissions.securityContext.*` | Security context of the init container | `{}` | | `volumePermissions.securityContext.*` | Security context of the init container | `{}` |
| `volumePermissions.securityContext.runAsUser` | UserID for the init container (when facing issues in OpenShift or uid unknown, try value "auto") | 0 | | `volumePermissions.securityContext.runAsUser` | UserID for the init container (when facing issues in OpenShift or uid unknown, try value "auto") | 0 |
| `slave.hostAliases` | Add deployment host aliases | `[]` |
| `slave.service.type` | Kubernetes Service type (redis slave) | `ClusterIP` | | `slave.service.type` | Kubernetes Service type (redis slave) | `ClusterIP` |
| `slave.service.externalTrafficPolicy` | External traffic policy (when service type is LoadBalancer) | `Cluster` | | `slave.service.externalTrafficPolicy` | External traffic policy (when service type is LoadBalancer) | `Cluster` |
| `slave.service.nodePort` | Kubernetes Service nodePort (redis slave) | `nil` | | `slave.service.nodePort` | Kubernetes Service nodePort (redis slave) | `nil` |

View File

@@ -48,12 +48,15 @@ spec:
{{- end }} {{- end }}
spec: spec:
{{- include "redis.imagePullSecrets" . | nindent 6 }} {{- include "redis.imagePullSecrets" . | nindent 6 }}
{{- if .Values.master.hostAliases }}
hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.master.hostAliases "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.securityContext.enabled }} {{- if .Values.securityContext.enabled }}
securityContext: {{- omit .Values.securityContext "enabled" | toYaml | nindent 8 }} securityContext: {{- omit .Values.securityContext "enabled" | toYaml | nindent 8 }}
{{- end }} {{- end }}
serviceAccountName: {{ template "redis.serviceAccountName" . }} serviceAccountName: {{ template "redis.serviceAccountName" . }}
{{- if .Values.master.priorityClassName }} {{- if .Values.master.priorityClassName }}
priorityClassName: "{{ .Values.master.priorityClassName }}" priorityClassName: {{ .Values.master.priorityClassName | quote }}
{{- end }} {{- end }}
{{- with .Values.master.affinity }} {{- with .Values.master.affinity }}
affinity: {{- tpl (toYaml .) $ | nindent 8 }} affinity: {{- tpl (toYaml .) $ | nindent 8 }}

View File

@@ -52,6 +52,9 @@ spec:
{{- end }} {{- end }}
spec: spec:
{{- include "redis.imagePullSecrets" . | nindent 6 }} {{- include "redis.imagePullSecrets" . | nindent 6 }}
{{- if .Values.slave.hostAliases }}
hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.slave.hostAliases "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.securityContext.enabled }} {{- if .Values.securityContext.enabled }}
securityContext: {{- omit .Values.securityContext "enabled" | toYaml | nindent 8 }} securityContext: {{- omit .Values.securityContext "enabled" | toYaml | nindent 8 }}
{{- end }} {{- end }}

View File

@@ -52,12 +52,15 @@ spec:
{{- end }} {{- end }}
spec: spec:
{{- include "redis.imagePullSecrets" . | nindent 6 }} {{- include "redis.imagePullSecrets" . | nindent 6 }}
{{- if .Values.slave.hostAliases }}
hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.slave.hostAliases "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.securityContext.enabled }} {{- if .Values.securityContext.enabled }}
securityContext: {{- omit .Values.securityContext "enabled" | toYaml | nindent 8 }} securityContext: {{- omit .Values.securityContext "enabled" | toYaml | nindent 8 }}
{{- end }} {{- end }}
serviceAccountName: {{ template "redis.serviceAccountName" . }} serviceAccountName: {{ template "redis.serviceAccountName" . }}
{{- if .Values.slave.priorityClassName }} {{- if .Values.slave.priorityClassName }}
priorityClassName: "{{ .Values.slave.priorityClassName }}" priorityClassName: {{ .Values.slave.priorityClassName | quote }}
{{- end }} {{- end }}
{{- if .Values.slave.nodeSelector }} {{- if .Values.slave.nodeSelector }}
nodeSelector: {{- toYaml .Values.slave.nodeSelector | nindent 8 }} nodeSelector: {{- toYaml .Values.slave.nodeSelector | nindent 8 }}

View File

@@ -40,16 +40,19 @@ image:
# fullnameOverride: # fullnameOverride:
## Cluster settings ## Cluster settings
##
cluster: cluster:
enabled: true enabled: true
slaveCount: 2 slaveCount: 2
## Use redis sentinel in the redis pod. This will disable the master and slave services and ## Use redis sentinel in the redis pod. This will disable the master and slave services and
## create one redis service with ports to the sentinel and the redis instances ## create one redis service with ports to the sentinel and the redis instances
##
sentinel: sentinel:
enabled: false enabled: false
## Require password authentication on the sentinel itself ## Require password authentication on the sentinel itself
## ref: https://redis.io/topics/sentinel ## ref: https://redis.io/topics/sentinel
##
usePassword: true usePassword: true
## Bitnami Redis(TM) Sentintel image version ## Bitnami Redis(TM) Sentintel image version
## ref: https://hub.docker.com/r/bitnami/redis-sentinel/tags/ ## ref: https://hub.docker.com/r/bitnami/redis-sentinel/tags/
@@ -114,14 +117,17 @@ sentinel:
# memory: 256Mi # memory: 256Mi
# cpu: 100m # cpu: 100m
## Redis(TM) Sentinel Service properties ## Redis(TM) Sentinel Service properties
##
service: service:
## Redis(TM) Sentinel Service type ## Redis(TM) Sentinel Service type
##
type: ClusterIP type: ClusterIP
sentinelPort: 26379 sentinelPort: 26379
redisPort: 6379 redisPort: 6379
## External traffic policy (when service type is LoadBalancer) ## External traffic policy (when service type is LoadBalancer)
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
##
externalTrafficPolicy: Cluster externalTrafficPolicy: Cluster
## Specify the nodePort value for the LoadBalancer and NodePort service types. ## Specify the nodePort value for the LoadBalancer and NodePort service types.
@@ -189,12 +195,12 @@ serviceAccount:
create: false create: false
## The name of the ServiceAccount to use. ## The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the fullname template ## If not set and create is true, a name is generated using the fullname template
##
name: name:
## Add annotations to service account ## Add annotations to service account
# annotations: # annotations:
# iam.gke.io/gcp-service-account: "sa@project.iam.gserviceaccount.com" # iam.gke.io/gcp-service-account: "sa@project.iam.gserviceaccount.com"
rbac: rbac:
## Specifies whether RBAC resources should be created ## Specifies whether RBAC resources should be created
## ##
@@ -214,6 +220,7 @@ rbac:
rules: [] rules: []
## Redis(TM) pod Security Context ## Redis(TM) pod Security Context
##
securityContext: securityContext:
enabled: true enabled: true
fsGroup: 1001 fsGroup: 1001
@@ -233,6 +240,7 @@ containerSecurityContext:
runAsUser: 1001 runAsUser: 1001
## Use password authentication ## Use password authentication
##
usePassword: true usePassword: true
## Redis(TM) password (both master and slave) ## Redis(TM) password (both master and slave)
## Defaults to a random 10-character alphanumeric string if not set and usePassword is true ## Defaults to a random 10-character alphanumeric string if not set and usePassword is true
@@ -246,13 +254,16 @@ password: ""
# existingSecretPasswordKey: # existingSecretPasswordKey:
## Mount secrets as files instead of environment variables ## Mount secrets as files instead of environment variables
##
usePasswordFile: false usePasswordFile: false
## Persist data to a persistent volume (Redis Master) ## Persist data to a persistent volume (Redis Master)
##
persistence: persistence:
## A manually managed Persistent Volume and Claim ## A manually managed Persistent Volume and Claim
## Requires persistence.enabled: true ## Requires persistence.enabled: true
## If defined, PVC must be created manually before volume will be bound ## If defined, PVC must be created manually before volume will be bound
##
existingClaim: existingClaim:
# Redis(TM) port # Redis(TM) port
@@ -300,12 +311,17 @@ master:
## ref: https://redis.io/topics/config ## ref: https://redis.io/topics/config
## ##
configmap: configmap:
## Deployment pod host aliases
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
##
hostAliases: []
## Redis(TM) additional command line flags ## Redis(TM) additional command line flags
## ##
## Can be used to specify command line flags, for example: ## Can be used to specify command line flags, for example:
## extraFlags: ## extraFlags:
## - "--maxmemory-policy volatile-ttl" ## - "--maxmemory-policy volatile-ttl"
## - "--repl-backlog-size 1024mb" ## - "--repl-backlog-size 1024mb"
##
extraFlags: [] extraFlags: []
## Comma-separated list of Redis(TM) commands to disable ## Comma-separated list of Redis(TM) commands to disable
## ##
@@ -319,6 +335,7 @@ master:
## Redis(TM) Master additional pod labels and annotations ## Redis(TM) Master additional pod labels and annotations
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
##
podLabels: {} podLabels: {}
podAnnotations: {} podAnnotations: {}
@@ -391,13 +408,16 @@ master:
affinity: {} affinity: {}
## Redis(TM) Master Service properties ## Redis(TM) Master Service properties
##
service: service:
## Redis(TM) Master Service type ## Redis(TM) Master Service type
##
type: ClusterIP type: ClusterIP
port: 6379 port: 6379
## External traffic policy (when service type is LoadBalancer) ## External traffic policy (when service type is LoadBalancer)
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
##
externalTrafficPolicy: Cluster externalTrafficPolicy: Cluster
## Specify the nodePort value for the LoadBalancer and NodePort service types. ## Specify the nodePort value for the LoadBalancer and NodePort service types.
@@ -421,9 +441,11 @@ master:
enabled: true enabled: true
## The path the volume will be mounted at, useful when using different ## The path the volume will be mounted at, useful when using different
## Redis(TM) images. ## Redis(TM) images.
##
path: /data path: /data
## The subdirectory of the volume to mount to, useful in dev environments ## The subdirectory of the volume to mount to, useful in dev environments
## and one PV for multiple services. ## and one PV for multiple services.
##
subPath: "" subPath: ""
## redis data Persistent Volume Storage Class ## redis data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass> ## If defined, storageClassName: <storageClass>
@@ -438,6 +460,7 @@ master:
size: 8Gi size: 8Gi
## Persistent Volume selectors ## Persistent Volume selectors
## https://kubernetes.io/docs/concepts/storage/persistent-volumes/#selector ## https://kubernetes.io/docs/concepts/storage/persistent-volumes/#selector
##
matchLabels: {} matchLabels: {}
matchExpressions: {} matchExpressions: {}
volumes: volumes:
@@ -446,6 +469,7 @@ master:
## Update strategy, can be set to RollingUpdate or onDelete by default. ## Update strategy, can be set to RollingUpdate or onDelete by default.
## https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets ## https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets
##
statefulset: statefulset:
labels: {} labels: {}
annotations: {} annotations: {}
@@ -488,14 +512,18 @@ master:
## ##
slave: slave:
## Slave Service properties ## Slave Service properties
##
service: service:
## Redis(TM) Slave Service type ## Redis(TM) Slave Service type
##
type: ClusterIP type: ClusterIP
## Redis(TM) port ## Redis(TM) port
##
port: 6379 port: 6379
## External traffic policy (when service type is LoadBalancer) ## External traffic policy (when service type is LoadBalancer)
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
##
externalTrafficPolicy: Cluster externalTrafficPolicy: Cluster
## Specify the nodePort value for the LoadBalancer and NodePort service types. ## Specify the nodePort value for the LoadBalancer and NodePort service types.
@@ -513,7 +541,12 @@ slave:
# loadBalancerSourceRanges: ["10.0.0.0/8"] # loadBalancerSourceRanges: ["10.0.0.0/8"]
## Redis(TM) slave port ## Redis(TM) slave port
##
port: 6379 port: 6379
## Deployment pod host aliases
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
##
hostAliases: []
## Can be used to specify command line arguments, for example: ## Can be used to specify command line arguments, for example:
## Note `exec` is prepended to command ## Note `exec` is prepended to command
## ##
@@ -526,8 +559,10 @@ slave:
## ##
configmap: configmap:
## Redis(TM) extra flags ## Redis(TM) extra flags
##
extraFlags: [] extraFlags: []
## List of Redis(TM) commands to disable ## List of Redis(TM) commands to disable
##
disableCommands: disableCommands:
- FLUSHDB - FLUSHDB
- FLUSHALL - FLUSHALL
@@ -607,6 +642,7 @@ slave:
# schedulerName: # schedulerName:
## Redis(TM) slave pod Annotation and Labels ## Redis(TM) slave pod Annotation and Labels
##
podLabels: {} podLabels: {}
podAnnotations: {} podAnnotations: {}
@@ -620,9 +656,11 @@ slave:
enabled: true enabled: true
## The path the volume will be mounted at, useful when using different ## The path the volume will be mounted at, useful when using different
## Redis(TM) images. ## Redis(TM) images.
##
path: /data path: /data
## The subdirectory of the volume to mount to, useful in dev environments ## The subdirectory of the volume to mount to, useful in dev environments
## and one PV for multiple services. ## and one PV for multiple services.
##
subPath: "" subPath: ""
## redis data Persistent Volume Storage Class ## redis data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass> ## If defined, storageClassName: <storageClass>
@@ -637,11 +675,13 @@ slave:
size: 8Gi size: 8Gi
## Persistent Volume selectors ## Persistent Volume selectors
## https://kubernetes.io/docs/concepts/storage/persistent-volumes/#selector ## https://kubernetes.io/docs/concepts/storage/persistent-volumes/#selector
##
matchLabels: {} matchLabels: {}
matchExpressions: {} matchExpressions: {}
## Update strategy, can be set to RollingUpdate or onDelete by default. ## Update strategy, can be set to RollingUpdate or onDelete by default.
## https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets ## https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets
##
statefulset: statefulset:
labels: {} labels: {}
annotations: {} annotations: {}
@@ -701,6 +741,7 @@ metrics:
# extraArgs: {} # extraArgs: {}
## Metrics exporter pod Annotation and Labels ## Metrics exporter pod Annotation and Labels
##
podAnnotations: podAnnotations:
prometheus.io/scrape: "true" prometheus.io/scrape: "true"
prometheus.io/port: "9121" prometheus.io/port: "9121"
@@ -716,6 +757,7 @@ metrics:
## Defaults to what's used if you follow CoreOS [Prometheus Install Instructions](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#tldr) ## Defaults to what's used if you follow CoreOS [Prometheus Install Instructions](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#tldr)
## [Prometheus Selector Label](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-operator-1) ## [Prometheus Selector Label](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-operator-1)
## [Kube Prometheus Selector Label](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#exporters) ## [Kube Prometheus Selector Label](https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#exporters)
##
selector: selector:
prometheus: kube-prometheus prometheus: kube-prometheus
@@ -740,6 +782,7 @@ metrics:
## Custom PrometheusRule to be defined ## Custom PrometheusRule to be defined
## The value is evaluated as a template, so, for example, the value can depend on .Release or .Chart ## The value is evaluated as a template, so, for example, the value can depend on .Release or .Chart
## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
##
prometheusRule: prometheusRule:
enabled: false enabled: false
additionalLabels: {} additionalLabels: {}
@@ -788,6 +831,7 @@ metrics:
## External traffic policy (when service type is LoadBalancer) ## External traffic policy (when service type is LoadBalancer)
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
##
externalTrafficPolicy: Cluster externalTrafficPolicy: Cluster
## Use serviceLoadBalancerIP to request a specific static IP, ## Use serviceLoadBalancerIP to request a specific static IP,
@@ -842,6 +886,7 @@ configmap: |-
## Sysctl InitContainer ## Sysctl InitContainer
## used to perform sysctl operation to modify Kernel settings (needed sometimes to avoid warnings) ## used to perform sysctl operation to modify Kernel settings (needed sometimes to avoid warnings)
##
sysctlImage: sysctlImage:
enabled: false enabled: false
command: [] command: []