1# This file has been modified by Chainguard, Inc.
3# Copyright Chainguard, Inc. All Rights Reserved.
4# Chainguard, Inc. modifications are subject to the license
5# available at: https://www.chainguard.dev/legal/software-license-agreement
7# Copyright Broadcom, Inc. All Rights Reserved.
8# SPDX-License-Identifier: APACHE-2.0
10## @section Global parameters
11## Global Docker image parameters
12## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
16## @param global.imageRegistry Global Docker image registry
17## @param global.imagePullSecrets Global Docker registry secret names as an array
18## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
19## @param global.storageClass DEPRECATED: use global.defaultStorageClass instead
20## @param global.redis.password Global Redis(R) password (overrides `auth.password`)
26 ## - myRegistryKeySecretName
29 defaultStorageClass: ""
31 ## Security parameters
34 ## @param global.security.allowInsecureImages Allows skipping image verification
35 allowInsecureImages: false
38 ## Compatibility adaptations for Kubernetes platforms
41 ## Compatibility adaptations for Openshift
44 ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
46 adaptSecurityContext: auto
48## @section Common parameters
51## @param kubeVersion Override Kubernetes version
54## @param nameOverride String to partially override common.names.fullname
57## @param fullnameOverride String to fully override common.names.fullname
60## @param namespaceOverride String to fully override common.names.namespace
63## @param commonLabels Labels to add to all deployed objects
66## @param commonAnnotations Annotations to add to all deployed objects
69## @param configmapChecksumAnnotations Enable checksum annotations used to trigger rolling updates when ConfigMap(s) change
71configmapChecksumAnnotations: true
72## @param secretChecksumAnnotations Enable checksum annotations used to trigger rolling updates when Secret(s) change
74secretChecksumAnnotations: true
75## @param secretAnnotations Annotations to add to secret
78## @param clusterDomain Kubernetes cluster domain name
80clusterDomain: cluster.local
81## @param extraDeploy Array of extra objects to deploy with the release
84## @param useHostnames Use hostnames internally when announcing replication. If false, the hostname will be resolved to an IP address
87## @param nameResolutionThreshold Failure threshold for internal hostnames resolution
89nameResolutionThreshold: 5
90## @param nameResolutionTimeout Timeout seconds between probes for internal hostnames resolution
92nameResolutionTimeout: 5
93## Enable diagnostic mode in the deployment
96 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
99 ## @param diagnosticMode.command Command to override all containers in the deployment
103 ## @param diagnosticMode.args Args to override all containers in the deployment
107## @section Redis(R) Image parameters
110## Iamguarded Redis(R) image
111## @param image.registry [default: REGISTRY_NAME] Redis(R) image registry
112## @param image.repository [default: REPOSITORY_NAME/redis] Redis(R) image repository
113## @skip image.tag Redis(R) image tag (immutable tags are recommended)
114## @param image.digest Redis(R) image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
115## @param image.pullPolicy Redis(R) image pull policy
116## @param image.pullSecrets Redis(R) image pull secrets
117## @param image.debug Enable image debug mode
121 repository: chainguard-private/redis-server-iamguarded
124 ## Specify a imagePullPolicy
125 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
127 pullPolicy: IfNotPresent
128 ## Optionally specify an array of imagePullSecrets.
129 ## Secrets must be manually created in the namespace.
130 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
133 ## - myRegistryKeySecretName
139## @section Redis(R) common configuration parameters
142## @param architecture Redis(R) architecture. Allowed values: `standalone` or `replication`
144architecture: replication
145## Redis(R) Authentication parameters
148 ## @param auth.enabled Enable password authentication
151 ## @param auth.sentinel Enable authentication on sentinels too
154 ## @param auth.password Redis(R) password
155 ## Defaults to a random 10-character alphanumeric string if not set
158 ## @param auth.existingSecret The name of an existing secret with Redis(R) credentials
159 ## NOTE: When it's set, the previous `auth.password` parameter is ignored
162 ## @param auth.existingSecretPasswordKey Password key to be retrieved from existing secret
163 ## NOTE: ignored unless `auth.existingSecret` parameter is set
165 existingSecretPasswordKey: ""
166 ## @param auth.usePasswordFiles Mount credentials as files instead of using an environment variable
168 usePasswordFiles: true
169 ## @param auth.usePasswordFileFromSecret Mount password file from secret
171 usePasswordFileFromSecret: true
172 ## Redis ACL restricts connections by limiting commands and key access with auth management.
173 ## ref: https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/
176 ## @param auth.acl.enabled Enables the support of the Redis ACL system
179 ## @param auth.acl.sentinel Enables the support of the Redis ACL system for Sentinel Nodes
182 ## @param auth.acl.users A list of the configured users in the Redis ACL system
186 ## - username: "my-user"
187 ## password: "mypassword"
193 ## @param auth.acl.userSecret Name of the Secret, containing user credentials for ACL users. Keys must match usernames.
195## @param commonConfiguration [string] Common configuration to be added into the ConfigMap
196## ref: https://redis.io/topics/config
198commonConfiguration: |-
199 # Enable AOF https://redis.io/topics/persistence#append-only-file
201 # Disable RDB persistence, AOF persistence already enabled.
203## @param existingConfigmap The name of an existing ConfigMap with your custom configuration for Redis(R) nodes
206## @section Redis(R) master configuration parameters
209 ## @param master.count Number of Redis(R) master instances to deploy (experimental, requires additional configuration)
212 ## @param master.revisionHistoryLimit The number of old history to retain to allow rollback
213 ## NOTE: Explicitly setting this field to 0, will result in cleaning up all the history, breaking ability to rollback
214 revisionHistoryLimit: 10
215 ## @param master.configuration Configuration for Redis(R) master nodes
216 ## ref: https://redis.io/topics/config
219 ## @param master.disableCommands Array with Redis(R) commands to disable on master nodes
220 ## Commands will be completely disabled by renaming each to an empty string.
221 ## ref: https://redis.io/topics/security#disabling-of-specific-commands
226 ## @param master.command Override default container command (useful when using custom images)
229 ## @param master.args Override default container args (useful when using custom images)
232 ## @param master.enableServiceLinks Whether information about services should be injected into pod's environment variable
234 enableServiceLinks: true
235 ## @param master.preExecCmds Additional commands to run prior to starting Redis(R) master
238 ## @param master.extraFlags Array with additional command line flags for Redis(R) master
241 ## - "--maxmemory-policy volatile-ttl"
242 ## - "--repl-backlog-size 1024mb"
245 ## @param master.extraEnvVars Array with extra environment variables to add to Redis(R) master nodes
252 ## @param master.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis(R) master nodes
255 ## @param master.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis(R) master nodes
257 extraEnvVarsSecret: ""
258 ## @param master.containerPorts.redis Container port to open on Redis(R) master nodes
262 ## Configure extra options for Redis(R) containers' liveness and readiness probes
263 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
264 ## @param master.startupProbe.enabled Enable startupProbe on Redis(R) master nodes
265 ## @param master.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
266 ## @param master.startupProbe.periodSeconds Period seconds for startupProbe
267 ## @param master.startupProbe.timeoutSeconds Timeout seconds for startupProbe
268 ## @param master.startupProbe.failureThreshold Failure threshold for startupProbe
269 ## @param master.startupProbe.successThreshold Success threshold for startupProbe
273 initialDelaySeconds: 20
278 ## @param master.livenessProbe.enabled Enable livenessProbe on Redis(R) master nodes
279 ## @param master.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
280 ## @param master.livenessProbe.periodSeconds Period seconds for livenessProbe
281 ## @param master.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
282 ## @param master.livenessProbe.failureThreshold Failure threshold for livenessProbe
283 ## @param master.livenessProbe.successThreshold Success threshold for livenessProbe
287 initialDelaySeconds: 20
292 ## @param master.readinessProbe.enabled Enable readinessProbe on Redis(R) master nodes
293 ## @param master.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
294 ## @param master.readinessProbe.periodSeconds Period seconds for readinessProbe
295 ## @param master.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
296 ## @param master.readinessProbe.failureThreshold Failure threshold for readinessProbe
297 ## @param master.readinessProbe.successThreshold Success threshold for readinessProbe
301 initialDelaySeconds: 20
306 ## @param master.customStartupProbe Custom startupProbe that overrides the default one
308 customStartupProbe: {}
309 ## @param master.customLivenessProbe Custom livenessProbe that overrides the default one
311 customLivenessProbe: {}
312 ## @param master.customReadinessProbe Custom readinessProbe that overrides the default one
314 customReadinessProbe: {}
315 ## Redis(R) master resource requests and limits
316 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
317 ## @param master.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if master.resources is set (master.resources is recommended for production).
319 resourcesPreset: "nano"
320 ## @param master.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
331 ## Configure Pods Security Context
332 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
333 ## @param master.podSecurityContext.enabled Enabled Redis(R) master pods' Security Context
334 ## @param master.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
335 ## @param master.podSecurityContext.sysctls Set kernel settings using the sysctl interface
336 ## @param master.podSecurityContext.supplementalGroups Set filesystem extra groups
337 ## @param master.podSecurityContext.fsGroup Set Redis(R) master pod's Security Context fsGroup
341 fsGroupChangePolicy: Always
343 supplementalGroups: []
345 ## Configure Container Security Context
346 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
347 ## @param master.containerSecurityContext.enabled Enabled Redis(R) master containers' Security Context
348 ## @param master.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
349 ## @param master.containerSecurityContext.runAsUser Set Redis(R) master containers' Security Context runAsUser
350 ## @param master.containerSecurityContext.runAsGroup Set Redis(R) master containers' Security Context runAsGroup
351 ## @param master.containerSecurityContext.runAsNonRoot Set Redis(R) master containers' Security Context runAsNonRoot
352 ## @param master.containerSecurityContext.allowPrivilegeEscalation Is it possible to escalate Redis(R) pod(s) privileges
353 ## @param master.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
354 ## @param master.containerSecurityContext.seccompProfile.type Set Redis(R) master containers' Security Context seccompProfile
355 ## @param master.containerSecurityContext.capabilities.drop Set Redis(R) master containers' Security Context capabilities to drop
357 containerSecurityContext:
363 allowPrivilegeEscalation: false
364 readOnlyRootFilesystem: true
369 ## @param master.kind Use either Deployment, StatefulSet (default) or DaemonSet
370 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
373 ## @param master.schedulerName Alternate scheduler for Redis(R) master pods
374 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
377 ## @param master.updateStrategy.type Redis(R) master statefulset strategy type
378 ## @skip master.updateStrategy.rollingUpdate
379 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
383 ## Can be set to RollingUpdate, OnDelete (statefulset), Recreate (deployment)
386 ## @param master.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
389 ## @param master.priorityClassName Redis(R) master pods' priorityClassName
391 priorityClassName: ""
392 ## @param master.automountServiceAccountToken Mount Service Account token in pod
394 automountServiceAccountToken: false
395 ## @param master.hostAliases Redis(R) master pods host aliases
396 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
399 ## @param master.podLabels Extra labels for Redis(R) master pods
400 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
403 ## @param master.podAnnotations Annotations for Redis(R) master pods
404 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
407 ## @param master.shareProcessNamespace Share a single process namespace between all of the containers in Redis(R) master pods
408 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
410 shareProcessNamespace: false
411 ## @param master.podAffinityPreset Pod affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
412 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
414 podAffinityPreset: ""
415 ## @param master.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
416 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
418 podAntiAffinityPreset: soft
419 ## Node master.affinity preset
420 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
423 ## @param master.nodeAffinityPreset.type Node affinity preset type. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
426 ## @param master.nodeAffinityPreset.key Node label key to match. Ignored if `master.affinity` is set
429 ## @param master.nodeAffinityPreset.values Node label values to match. Ignored if `master.affinity` is set
436 ## @param master.affinity Affinity for Redis(R) master pods assignment
437 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
438 ## NOTE: `master.podAffinityPreset`, `master.podAntiAffinityPreset`, and `master.nodeAffinityPreset` will be ignored when it's set
441 ## @param master.nodeSelector Node labels for Redis(R) master pods assignment
442 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
445 ## @param master.tolerations Tolerations for Redis(R) master pods assignment
446 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
449 ## @param master.topologySpreadConstraints Spread Constraints for Redis(R) master pod assignment
450 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
452 ## topologySpreadConstraints:
455 ## whenUnsatisfiable: DoNotSchedule
457 topologySpreadConstraints: []
458 ## @param master.dnsPolicy DNS Policy for Redis(R) master pod
459 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
461 ## dnsPolicy: ClusterFirst
464 ## @param master.dnsConfig DNS Configuration for Redis(R) master pod
465 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
471 ## - name: single-request-reopen
474 ## @param master.lifecycleHooks for the Redis(R) master container(s) to automate configuration before or after startup
477 ## @param master.extraVolumes Optionally specify extra list of additional volumes for the Redis(R) master pod(s)
480 ## @param master.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis(R) master container(s)
482 extraVolumeMounts: []
483 ## @param master.sidecars Add additional sidecar containers to the Redis(R) master pod(s)
486 ## - name: your-image-name
488 ## imagePullPolicy: Always
491 ## containerPort: 1234
494 ## @param master.initContainers Add additional init containers to the Redis(R) master pod(s)
495 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
498 ## - name: your-image-name
500 ## imagePullPolicy: Always
501 ## command: ['/bin/bash', '-ec', 'echo "hello world"']
504 ## Persistence parameters
505 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
508 ## @param master.persistence.enabled Enable persistence on Redis(R) master nodes using Persistent Volume Claims
511 ## @param master.persistence.medium Provide a medium for `emptyDir` volumes.
514 ## @param master.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
517 ## @param master.persistence.path The path the volume will be mounted at on Redis(R) master containers
518 ## NOTE: Useful when using different Redis(R) images
521 ## @param master.persistence.subPath The subdirectory of the volume to mount on Redis(R) master containers
522 ## NOTE: Useful in dev environments
525 ## @param master.persistence.subPathExpr Used to construct the subPath subdirectory of the volume to mount on Redis(R) master containers
528 ## @param master.persistence.storageClass Persistent Volume storage class
529 ## If defined, storageClassName: <storageClass>
530 ## If set to "-", storageClassName: "", which disables dynamic provisioning
531 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
534 ## @param master.persistence.accessModes Persistent Volume access modes
538 ## @param master.persistence.size Persistent Volume size
541 ## @param master.persistence.annotations Additional custom annotations for the PVC
544 ## @param master.persistence.labels Additional custom labels for the PVC
547 ## @param master.persistence.selector Additional labels to match for the PVC
554 ## @param master.persistence.dataSource Custom PVC data source
557 ## @param master.persistence.existingClaim Use a existing PVC which must be created manually before bound
558 ## NOTE: requires master.persistence.enabled: true
561 ## persistentVolumeClaimRetentionPolicy
562 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
563 ## @param master.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
564 ## @param master.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
565 ## @param master.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
567 persistentVolumeClaimRetentionPolicy:
571 ## Redis(R) master service parameters
574 ## @param master.service.type Redis(R) master service type
577 ## @param master.service.portNames.redis Redis(R) master service port name
581 ## @param master.service.ports.redis Redis(R) master service port
585 ## @param master.service.nodePorts.redis Node port for Redis(R) master
586 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
587 ## NOTE: choose port between <30000-32767>
591 ## @param master.service.externalTrafficPolicy Redis(R) master service external traffic policy
592 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
594 externalTrafficPolicy: Cluster
595 ## @param master.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
598 ## @param master.service.internalTrafficPolicy Redis(R) master service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)
599 ## ref: https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/
601 internalTrafficPolicy: Cluster
602 ## @param master.service.clusterIP Redis(R) master service Cluster IP
605 ## @param master.service.loadBalancerIP Redis(R) master service Load Balancer IP
606 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
609 ## @param master.service.loadBalancerClass master service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
610 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
612 loadBalancerClass: ""
613 ## @param master.service.loadBalancerSourceRanges Redis(R) master service Load Balancer sources
614 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
616 ## loadBalancerSourceRanges:
619 loadBalancerSourceRanges: []
620 ## @param master.service.externalIPs Redis(R) master service External IPs
621 ## https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
628 ## @param master.service.annotations Additional custom annotations for Redis(R) master service
631 ## @param master.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
632 ## If "ClientIP", consecutive client requests will be directed to the same Pod
633 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
635 sessionAffinity: None
636 ## @param master.service.sessionAffinityConfig Additional settings for the sessionAffinity
637 ## sessionAffinityConfig:
639 ## timeoutSeconds: 300
641 sessionAffinityConfig: {}
642 ## @param master.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-master pods
644 terminationGracePeriodSeconds: 30
645 ## ServiceAccount configuration
648 ## @param master.serviceAccount.create Specifies whether a ServiceAccount should be created
651 ## @param master.serviceAccount.name The name of the ServiceAccount to use.
652 ## If not set and create is true, a name is generated using the common.names.fullname template
655 ## @param master.serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
656 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
658 automountServiceAccountToken: false
659 ## @param master.serviceAccount.annotations Additional custom annotations for the ServiceAccount
662 ## Pod Disruption Budget configuration
663 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
664 ## @param master.pdb.create Enable/disable a Pod Disruption Budget creation
665 ## @param master.pdb.minAvailable [object] Minimum number/percentage of pods that should remain scheduled
666 ## @param master.pdb.maxUnavailable [object] Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `master.pdb.minAvailable` and `master.pdb.maxUnavailable` are empty.
672 ## @param master.extraPodSpec Optionally specify extra PodSpec for the Redis(R) master pod(s)
675 ## @param master.annotations Additional custom annotations for Redis(R) Master resource
678## @section Redis(R) replicas configuration parameters
681 ## @param replica.kind Use either DaemonSet or StatefulSet (default)
682 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
685 ## @param replica.replicaCount Number of Redis(R) replicas to deploy
688 ## @param replica.revisionHistoryLimit The number of old history to retain to allow rollback
689 ## NOTE: Explicitly setting this field to 0, will result in cleaning up all the history, breaking ability to rollback
690 revisionHistoryLimit: 10
691 ## @param replica.configuration Configuration for Redis(R) replicas nodes
692 ## ref: https://redis.io/topics/config
695 ## @param replica.disableCommands Array with Redis(R) commands to disable on replicas nodes
696 ## Commands will be completely disabled by renaming each to an empty string.
697 ## ref: https://redis.io/topics/security#disabling-of-specific-commands
702 ## @param replica.command Override default container command (useful when using custom images)
705 ## @param replica.args Override default container args (useful when using custom images)
708 ## @param replica.enableServiceLinks Whether information about services should be injected into pod's environment variable
710 enableServiceLinks: true
711 ## @param replica.preExecCmds Additional commands to run prior to starting Redis(R) replicas
714 ## @param replica.extraFlags Array with additional command line flags for Redis(R) replicas
717 ## - "--maxmemory-policy volatile-ttl"
718 ## - "--repl-backlog-size 1024mb"
721 ## @param replica.extraEnvVars Array with extra environment variables to add to Redis(R) replicas nodes
728 ## @param replica.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis(R) replicas nodes
731 ## @param replica.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis(R) replicas nodes
733 extraEnvVarsSecret: ""
734 ## @param replica.externalMaster.enabled Use external master for bootstrapping
735 ## @param replica.externalMaster.host External master host to bootstrap from
736 ## @param replica.externalMaster.port Port for Redis service external master host
742 ## @param replica.containerPorts.redis Container port to open on Redis(R) replicas nodes
746 ## Configure extra options for Redis(R) containers' liveness and readiness probes
747 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
748 ## @param replica.startupProbe.enabled Enable startupProbe on Redis(R) replicas nodes
749 ## @param replica.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
750 ## @param replica.startupProbe.periodSeconds Period seconds for startupProbe
751 ## @param replica.startupProbe.timeoutSeconds Timeout seconds for startupProbe
752 ## @param replica.startupProbe.failureThreshold Failure threshold for startupProbe
753 ## @param replica.startupProbe.successThreshold Success threshold for startupProbe
757 initialDelaySeconds: 10
762 ## @param replica.livenessProbe.enabled Enable livenessProbe on Redis(R) replicas nodes
763 ## @param replica.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
764 ## @param replica.livenessProbe.periodSeconds Period seconds for livenessProbe
765 ## @param replica.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
766 ## @param replica.livenessProbe.failureThreshold Failure threshold for livenessProbe
767 ## @param replica.livenessProbe.successThreshold Success threshold for livenessProbe
771 initialDelaySeconds: 20
776 ## @param replica.readinessProbe.enabled Enable readinessProbe on Redis(R) replicas nodes
777 ## @param replica.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
778 ## @param replica.readinessProbe.periodSeconds Period seconds for readinessProbe
779 ## @param replica.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
780 ## @param replica.readinessProbe.failureThreshold Failure threshold for readinessProbe
781 ## @param replica.readinessProbe.successThreshold Success threshold for readinessProbe
785 initialDelaySeconds: 20
790 ## @param replica.customStartupProbe Custom startupProbe that overrides the default one
792 customStartupProbe: {}
793 ## @param replica.customLivenessProbe Custom livenessProbe that overrides the default one
795 customLivenessProbe: {}
796 ## @param replica.customReadinessProbe Custom readinessProbe that overrides the default one
798 customReadinessProbe: {}
799 ## Redis(R) replicas resource requests and limits
800 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
801 ## @param replica.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if replica.resources is set (replica.resources is recommended for production).
803 resourcesPreset: "nano"
804 ## @param replica.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
815 ## Configure Pods Security Context
816 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
817 ## @param replica.podSecurityContext.enabled Enabled Redis(R) replicas pods' Security Context
818 ## @param replica.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
819 ## @param replica.podSecurityContext.sysctls Set kernel settings using the sysctl interface
820 ## @param replica.podSecurityContext.supplementalGroups Set filesystem extra groups
821 ## @param replica.podSecurityContext.fsGroup Set Redis(R) replicas pod's Security Context fsGroup
825 fsGroupChangePolicy: Always
827 supplementalGroups: []
829 ## Configure Container Security Context
830 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
831 ## @param replica.containerSecurityContext.enabled Enabled Redis(R) replicas containers' Security Context
832 ## @param replica.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
833 ## @param replica.containerSecurityContext.runAsUser Set Redis(R) replicas containers' Security Context runAsUser
834 ## @param replica.containerSecurityContext.runAsGroup Set Redis(R) replicas containers' Security Context runAsGroup
835 ## @param replica.containerSecurityContext.runAsNonRoot Set Redis(R) replicas containers' Security Context runAsNonRoot
836 ## @param replica.containerSecurityContext.allowPrivilegeEscalation Set Redis(R) replicas pod's Security Context allowPrivilegeEscalation
837 ## @param replica.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
838 ## @param replica.containerSecurityContext.seccompProfile.type Set Redis(R) replicas containers' Security Context seccompProfile
839 ## @param replica.containerSecurityContext.capabilities.drop Set Redis(R) replicas containers' Security Context capabilities to drop
841 containerSecurityContext:
847 allowPrivilegeEscalation: false
848 readOnlyRootFilesystem: true
853 ## @param replica.schedulerName Alternate scheduler for Redis(R) replicas pods
854 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
857 ## @param replica.updateStrategy.type Redis(R) replicas statefulset strategy type
858 ## @skip replica.updateStrategy.rollingUpdate
859 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
863 ## Can be set to RollingUpdate, OnDelete (statefulset), Recreate (deployment)
866 ## @param replica.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
869 ## @param replica.priorityClassName Redis(R) replicas pods' priorityClassName
871 priorityClassName: ""
872 ## @param replica.podManagementPolicy podManagementPolicy to manage scaling operation of %%MAIN_CONTAINER_NAME%% pods
873 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
875 podManagementPolicy: ""
876 ## @param replica.automountServiceAccountToken Mount Service Account token in pod
878 automountServiceAccountToken: false
879 ## @param replica.hostAliases Redis(R) replicas pods host aliases
880 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
883 ## @param replica.podLabels Extra labels for Redis(R) replicas pods
884 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
887 ## @param replica.podAnnotations Annotations for Redis(R) replicas pods
888 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
891 ## @param replica.shareProcessNamespace Share a single process namespace between all of the containers in Redis(R) replicas pods
892 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
894 shareProcessNamespace: false
895 ## @param replica.podAffinityPreset Pod affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
896 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
898 podAffinityPreset: ""
899 ## @param replica.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
900 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
902 podAntiAffinityPreset: soft
903 ## Node affinity preset
904 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
907 ## @param replica.nodeAffinityPreset.type Node affinity preset type. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
910 ## @param replica.nodeAffinityPreset.key Node label key to match. Ignored if `replica.affinity` is set
913 ## @param replica.nodeAffinityPreset.values Node label values to match. Ignored if `replica.affinity` is set
920 ## @param replica.affinity Affinity for Redis(R) replicas pods assignment
921 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
922 ## NOTE: `replica.podAffinityPreset`, `replica.podAntiAffinityPreset`, and `replica.nodeAffinityPreset` will be ignored when it's set
925 ## @param replica.nodeSelector Node labels for Redis(R) replicas pods assignment
926 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
929 ## @param replica.tolerations Tolerations for Redis(R) replicas pods assignment
930 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
933 ## @param replica.topologySpreadConstraints Spread Constraints for Redis(R) replicas pod assignment
934 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
936 ## topologySpreadConstraints:
939 ## whenUnsatisfiable: DoNotSchedule
941 topologySpreadConstraints: []
942 ## @param replica.dnsPolicy DNS Policy for Redis(R) replica pods
943 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
945 ## dnsPolicy: ClusterFirst
948 ## @param replica.dnsConfig DNS Configuration for Redis(R) replica pods
949 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
955 ## - name: single-request-reopen
958 ## @param replica.lifecycleHooks for the Redis(R) replica container(s) to automate configuration before or after startup
961 ## @param replica.extraVolumes Optionally specify extra list of additional volumes for the Redis(R) replicas pod(s)
964 ## @param replica.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis(R) replicas container(s)
966 extraVolumeMounts: []
967 ## @param replica.sidecars Add additional sidecar containers to the Redis(R) replicas pod(s)
970 ## - name: your-image-name
972 ## imagePullPolicy: Always
975 ## containerPort: 1234
978 ## @param replica.initContainers Add additional init containers to the Redis(R) replicas pod(s)
979 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
982 ## - name: your-image-name
984 ## imagePullPolicy: Always
985 ## command: ['/bin/bash', '-c', 'echo "hello world"']
988 ## Persistence Parameters
989 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
992 ## @param replica.persistence.enabled Enable persistence on Redis(R) replicas nodes using Persistent Volume Claims
995 ## @param replica.persistence.medium Provide a medium for `emptyDir` volumes.
998 ## @param replica.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
1001 ## @param replica.persistence.path The path the volume will be mounted at on Redis(R) replicas containers
1002 ## NOTE: Useful when using different Redis(R) images
1005 ## @param replica.persistence.subPath The subdirectory of the volume to mount on Redis(R) replicas containers
1006 ## NOTE: Useful in dev environments
1009 ## @param replica.persistence.subPathExpr Used to construct the subPath subdirectory of the volume to mount on Redis(R) replicas containers
1012 ## @param replica.persistence.storageClass Persistent Volume storage class
1013 ## If defined, storageClassName: <storageClass>
1014 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1015 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
1018 ## @param replica.persistence.accessModes Persistent Volume access modes
1022 ## @param replica.persistence.size Persistent Volume size
1025 ## @param replica.persistence.annotations Additional custom annotations for the PVC
1028 ## @param replica.persistence.labels Additional custom labels for the PVC
1031 ## @param replica.persistence.selector Additional labels to match for the PVC
1038 ## @param replica.persistence.dataSource Custom PVC data source
1041 ## @param replica.persistence.existingClaim Use a existing PVC which must be created manually before bound
1042 ## NOTE: requires replica.persistence.enabled: true
1045 ## persistentVolumeClaimRetentionPolicy
1046 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1047 ## @param replica.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
1048 ## @param replica.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1049 ## @param replica.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1051 persistentVolumeClaimRetentionPolicy:
1055 ## Redis(R) replicas service parameters
1058 ## @param replica.service.type Redis(R) replicas service type
1061 ## @param replica.service.ports.redis Redis(R) replicas service port
1065 ## @param replica.service.nodePorts.redis Node port for Redis(R) replicas
1066 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1067 ## NOTE: choose port between <30000-32767>
1071 ## @param replica.service.externalTrafficPolicy Redis(R) replicas service external traffic policy
1072 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1074 externalTrafficPolicy: Cluster
1075 ## @param replica.service.internalTrafficPolicy Redis(R) replicas service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)
1076 ## ref: https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/
1078 internalTrafficPolicy: Cluster
1079 ## @param replica.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1082 ## @param replica.service.clusterIP Redis(R) replicas service Cluster IP
1085 ## @param replica.service.loadBalancerIP Redis(R) replicas service Load Balancer IP
1086 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1089 ## @param replica.service.loadBalancerClass replicas service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1090 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1092 loadBalancerClass: ""
1093 ## @param replica.service.loadBalancerSourceRanges Redis(R) replicas service Load Balancer sources
1094 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1096 ## loadBalancerSourceRanges:
1099 loadBalancerSourceRanges: []
1100 ## @param replica.service.annotations Additional custom annotations for Redis(R) replicas service
1103 ## @param replica.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1104 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1105 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1107 sessionAffinity: None
1108 ## @param replica.service.sessionAffinityConfig Additional settings for the sessionAffinity
1109 ## sessionAffinityConfig:
1111 ## timeoutSeconds: 300
1113 sessionAffinityConfig: {}
1114 ## @param replica.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-replicas pods
1116 terminationGracePeriodSeconds: 30
1117 ## Autoscaling configuration
1120 ## @param replica.autoscaling.enabled Enable replica autoscaling settings
1123 ## @param replica.autoscaling.minReplicas Minimum replicas for the pod autoscaling
1126 ## @param replica.autoscaling.maxReplicas Maximum replicas for the pod autoscaling
1129 ## @param replica.autoscaling.targetCPU Percentage of CPU to consider when autoscaling
1132 ## @param replica.autoscaling.targetMemory Percentage of Memory to consider when autoscaling
1135 ## ServiceAccount configuration
1138 ## @param replica.serviceAccount.create Specifies whether a ServiceAccount should be created
1141 ## @param replica.serviceAccount.name The name of the ServiceAccount to use.
1142 ## If not set and create is true, a name is generated using the common.names.fullname template
1145 ## @param replica.serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
1146 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
1148 automountServiceAccountToken: false
1149 ## @param replica.serviceAccount.annotations Additional custom annotations for the ServiceAccount
1152 ## Pod Disruption Budget configuration
1153 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1154 ## @param replica.pdb.create Enable/disable a Pod Disruption Budget creation
1155 ## @param replica.pdb.minAvailable [object] Minimum number/percentage of pods that should remain scheduled
1156 ## @param replica.pdb.maxUnavailable [object] Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `replica.pdb.minAvailable` and `replica.pdb.maxUnavailable` are empty.
1162 ## @param replica.extraPodSpec Optionally specify extra PodSpec for the Redis(R) replicas pod(s)
1165 ## @param replica.annotations Additional custom annotations for Redis(R) replicas resource
1168## @section Redis(R) Sentinel configuration parameters
1172 ## @param sentinel.enabled Use Redis(R) Sentinel on Redis(R) pods.
1173 ## IMPORTANT: this will disable the master and replicas services and
1174 ## create a single Redis(R) service exposing both the Redis and Sentinel ports
1177 ## Iamguarded Redis(R) Sentinel image version
1178 ## @param sentinel.image.registry [default: REGISTRY_NAME] Redis(R) Sentinel image registry
1179 ## @param sentinel.image.repository [default: REPOSITORY_NAME/redis-sentinel] Redis(R) Sentinel image repository
1180 ## @skip sentinel.image.tag Redis(R) Sentinel image tag (immutable tags are recommended)
1181 ## @param sentinel.image.digest Redis(R) Sentinel image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1182 ## @param sentinel.image.pullPolicy Redis(R) Sentinel image pull policy
1183 ## @param sentinel.image.pullSecrets Redis(R) Sentinel image pull secrets
1184 ## @param sentinel.image.debug Enable image debug mode
1188 repository: chainguard-private/redis-sentinel-iamguarded
1191 ## Specify a imagePullPolicy
1192 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1194 pullPolicy: IfNotPresent
1195 ## Optionally specify an array of imagePullSecrets.
1196 ## Secrets must be manually created in the namespace.
1197 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1200 ## - myRegistryKeySecretName
1203 ## Enable debug mode
1206 ## @param sentinel.annotations Additional custom annotations for Redis(R) Sentinel resource
1209 ## @param sentinel.masterSet Master set name
1212 ## @param sentinel.quorum Sentinel Quorum
1215 ## @param sentinel.getMasterTimeout Amount of time to allow before get_sentinel_master_info() times out.
1217 getMasterTimeout: 90
1218 ## @param sentinel.automateClusterRecovery Automate cluster recovery in cases where the last replica is not considered a good replica and Sentinel won't automatically failover to it.
1219 ## This also prevents any new replica from starting until the last remaining replica is elected as master to guarantee that it is the one to be elected by Sentinel, and not a newly started replica with no data.
1220 ## NOTE: This feature requires a "downAfterMilliseconds" value less or equal to 2000.
1222 automateClusterRecovery: false
1223 ## @param sentinel.redisShutdownWaitFailover Whether the Redis(R) master container waits for the failover at shutdown (in addition to the Redis(R) Sentinel container).
1225 redisShutdownWaitFailover: true
1226 ## Sentinel timing restrictions
1227 ## @param sentinel.downAfterMilliseconds Timeout for detecting a Redis(R) node is down
1228 ## @param sentinel.failoverTimeout Timeout for performing a election failover
1230 downAfterMilliseconds: 60000
1231 failoverTimeout: 180000
1232 ## @param sentinel.parallelSyncs Number of replicas that can be reconfigured in parallel to use the new master after a failover
1235 ## @param sentinel.replicaSyncCheck Wait for data full sync on replicas before marking them as ready (experimental)
1237 replicaSyncCheck: false
1238 ## @param sentinel.configuration Configuration for Redis(R) Sentinel nodes
1239 ## ref: https://redis.io/topics/sentinel
1242 ## @param sentinel.command Override default container command (useful when using custom images)
1245 ## @param sentinel.args Override default container args (useful when using custom images)
1248 ## @param sentinel.enableServiceLinks Whether information about services should be injected into pod's environment variable
1250 enableServiceLinks: true
1251 ## @param sentinel.preExecCmds Additional commands to run prior to starting Redis(R) Sentinel
1254 ## @param sentinel.extraEnvVars Array with extra environment variables to add to Redis(R) Sentinel nodes
1261 ## @param sentinel.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis(R) Sentinel nodes
1264 ## @param sentinel.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis(R) Sentinel nodes
1266 extraEnvVarsSecret: ""
1267 ## @param sentinel.externalMaster.enabled Use external master for bootstrapping
1268 ## @param sentinel.externalMaster.host External master host to bootstrap from
1269 ## @param sentinel.externalMaster.port Port for Redis service external master host
1275 ## @param sentinel.containerPorts.sentinel Container port to open on Redis(R) Sentinel nodes
1279 ## Configure extra options for Redis(R) containers' liveness and readiness probes
1280 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1281 ## @param sentinel.startupProbe.enabled Enable startupProbe on Redis(R) Sentinel nodes
1282 ## @param sentinel.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1283 ## @param sentinel.startupProbe.periodSeconds Period seconds for startupProbe
1284 ## @param sentinel.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1285 ## @param sentinel.startupProbe.failureThreshold Failure threshold for startupProbe
1286 ## @param sentinel.startupProbe.successThreshold Success threshold for startupProbe
1290 initialDelaySeconds: 10
1294 failureThreshold: 22
1295 ## @param sentinel.livenessProbe.enabled Enable livenessProbe on Redis(R) Sentinel nodes
1296 ## @param sentinel.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1297 ## @param sentinel.livenessProbe.periodSeconds Period seconds for livenessProbe
1298 ## @param sentinel.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1299 ## @param sentinel.livenessProbe.failureThreshold Failure threshold for livenessProbe
1300 ## @param sentinel.livenessProbe.successThreshold Success threshold for livenessProbe
1304 initialDelaySeconds: 20
1309 ## @param sentinel.readinessProbe.enabled Enable readinessProbe on Redis(R) Sentinel nodes
1310 ## @param sentinel.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1311 ## @param sentinel.readinessProbe.periodSeconds Period seconds for readinessProbe
1312 ## @param sentinel.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1313 ## @param sentinel.readinessProbe.failureThreshold Failure threshold for readinessProbe
1314 ## @param sentinel.readinessProbe.successThreshold Success threshold for readinessProbe
1318 initialDelaySeconds: 20
1323 ## @param sentinel.customStartupProbe Custom startupProbe that overrides the default one
1325 customStartupProbe: {}
1326 ## @param sentinel.customLivenessProbe Custom livenessProbe that overrides the default one
1328 customLivenessProbe: {}
1329 ## @param sentinel.customReadinessProbe Custom readinessProbe that overrides the default one
1331 customReadinessProbe: {}
1332 ## Persistence parameters
1333 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1336 ## @param sentinel.persistence.enabled Enable persistence on Redis(R) sentinel nodes using Persistent Volume Claims (Experimental)
1339 ## @param sentinel.persistence.storageClass Persistent Volume storage class
1340 ## If defined, storageClassName: <storageClass>
1341 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1342 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
1345 ## @param sentinel.persistence.accessModes Persistent Volume access modes
1349 ## @param sentinel.persistence.size Persistent Volume size
1352 ## @param sentinel.persistence.annotations Additional custom annotations for the PVC
1355 ## @param sentinel.persistence.labels Additional custom labels for the PVC
1358 ## @param sentinel.persistence.selector Additional labels to match for the PVC
1365 ## @param sentinel.persistence.dataSource Custom PVC data source
1368 ## @param sentinel.persistence.medium Provide a medium for `emptyDir` volumes.
1371 ## @param sentinel.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
1374 ## persistentVolumeClaimRetentionPolicy
1375 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1376 ## @param sentinel.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
1377 ## @param sentinel.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1378 ## @param sentinel.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1380 persistentVolumeClaimRetentionPolicy:
1384 ## Redis(R) Sentinel resource requests and limits
1385 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1386 ## @param sentinel.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if sentinel.resources is set (sentinel.resources is recommended for production).
1388 resourcesPreset: "nano"
1389 ## @param sentinel.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1400 ## Configure Container Security Context
1401 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1402 ## @param sentinel.containerSecurityContext.enabled Enabled Redis(R) Sentinel containers' Security Context
1403 ## @param sentinel.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1404 ## @param sentinel.containerSecurityContext.runAsUser Set Redis(R) Sentinel containers' Security Context runAsUser
1405 ## @param sentinel.containerSecurityContext.runAsGroup Set Redis(R) Sentinel containers' Security Context runAsGroup
1406 ## @param sentinel.containerSecurityContext.runAsNonRoot Set Redis(R) Sentinel containers' Security Context runAsNonRoot
1407 ## @param sentinel.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
1408 ## @param sentinel.containerSecurityContext.allowPrivilegeEscalation Set Redis(R) Sentinel containers' Security Context allowPrivilegeEscalation
1409 ## @param sentinel.containerSecurityContext.seccompProfile.type Set Redis(R) Sentinel containers' Security Context seccompProfile
1410 ## @param sentinel.containerSecurityContext.capabilities.drop Set Redis(R) Sentinel containers' Security Context capabilities to drop
1412 containerSecurityContext:
1418 allowPrivilegeEscalation: false
1419 readOnlyRootFilesystem: true
1421 type: RuntimeDefault
1424 ## @param sentinel.lifecycleHooks for the Redis(R) sentinel container(s) to automate configuration before or after startup
1427 ## @param sentinel.extraVolumes Optionally specify extra list of additional volumes for the Redis(R) Sentinel
1430 ## @param sentinel.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis(R) Sentinel container(s)
1432 extraVolumeMounts: []
1433 ## Redis(R) Sentinel service parameters
1434 ## Note: values passed in this section also configure the master service, unless the sentinel.masterService is explicitly overridden.
1436 ## @param sentinel.service.type Redis(R) Sentinel service type
1439 ## @param sentinel.service.ports.redis Redis(R) service port for Redis(R)
1440 ## @param sentinel.service.ports.sentinel Redis(R) service port for Redis(R) Sentinel
1445 ## @param sentinel.service.nodePorts.redis Node port for Redis(R)
1446 ## @param sentinel.service.nodePorts.sentinel Node port for Sentinel
1447 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1448 ## NOTE: choose port between <30000-32767>
1449 ## NOTE: By leaving these values blank, they will be generated by ports-configmap
1450 ## If setting manually, please leave at least replica.replicaCount + 1 in between sentinel.service.nodePorts.redis and sentinel.service.nodePorts.sentinel to take into account the ports that will be created while incrementing that base port
1455 ## @param sentinel.service.externalTrafficPolicy Redis(R) Sentinel service external traffic policy
1456 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1458 externalTrafficPolicy: Cluster
1459 ## @param sentinel.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1462 ## @param sentinel.service.clusterIP Redis(R) Sentinel service Cluster IP
1465 ## @param sentinel.service.createMaster Enable master service pointing to the current master (experimental)
1466 ## NOTE: rbac.create need to be set to true
1469 ## @param sentinel.service.loadBalancerIP Redis(R) Sentinel service Load Balancer IP
1470 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1473 ## @param sentinel.service.loadBalancerClass sentinel service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1474 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1476 loadBalancerClass: ""
1477 ## @param sentinel.service.loadBalancerSourceRanges Redis(R) Sentinel service Load Balancer sources
1478 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1480 ## loadBalancerSourceRanges:
1483 loadBalancerSourceRanges: []
1484 ## @param sentinel.service.annotations Additional custom annotations for Redis(R) Sentinel service
1487 ## @param sentinel.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1488 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1489 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1491 sessionAffinity: None
1492 ## @param sentinel.service.sessionAffinityConfig Additional settings for the sessionAffinity
1493 ## sessionAffinityConfig:
1495 ## timeoutSeconds: 300
1497 sessionAffinityConfig: {}
1498 ## Headless service properties
1501 ## @param sentinel.service.headless.annotations Annotations for the headless service.
1504 ## @param sentinel.service.headless.extraPorts Optionally specify extra ports to expose for the headless service.
1507 ## - name: my-custom-port
1510 ## targetPort: 12345
1513 ## Redis(R) master service parameters
1516 ## @param sentinel.masterService.enabled Enable master service pointing to the current master (experimental)
1517 ## NOTE: rbac.create need to be set to true
1520 ## @param sentinel.masterService.type Redis(R) Sentinel master service type
1523 ## @param sentinel.masterService.ports.redis Redis(R) service port for Redis(R)
1527 ## @param sentinel.masterService.nodePorts.redis Node port for Redis(R)
1528 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1529 ## NOTE: choose port between <30000-32767>
1530 ## NOTE: By leaving these values blank, they will be generated by ports-configmap
1531 ## If setting manually, please leave at least replica.replicaCount + 1 in between sentinel.service.nodePorts.redis and sentinel.service.nodePorts.sentinel to take into account the ports that will be created while incrementing that base port
1535 ## @param sentinel.masterService.externalTrafficPolicy Redis(R) master service external traffic policy
1536 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1538 externalTrafficPolicy: ""
1539 ## @param sentinel.masterService.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1542 ## @param sentinel.masterService.clusterIP Redis(R) master service Cluster IP
1545 ## @param sentinel.masterService.loadBalancerIP Redis(R) master service Load Balancer IP
1546 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1549 ## @param sentinel.masterService.loadBalancerClass master service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1550 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1552 loadBalancerClass: ""
1553 ## @param sentinel.masterService.loadBalancerSourceRanges Redis(R) master service Load Balancer sources
1554 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1556 ## loadBalancerSourceRanges:
1559 loadBalancerSourceRanges: []
1560 ## @param sentinel.masterService.annotations Additional custom annotations for Redis(R) master service
1563 ## @param sentinel.masterService.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1564 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1565 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1567 sessionAffinity: None
1568 ## @param sentinel.masterService.sessionAffinityConfig Additional settings for the sessionAffinity
1569 ## sessionAffinityConfig:
1571 ## timeoutSeconds: 300
1573 sessionAffinityConfig: {}
1574 ## @param sentinel.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-node pods
1576 terminationGracePeriodSeconds: 30
1577 ## @param sentinel.extraPodSpec Optionally specify extra PodSpec for the Redis(R) Sentinel pod(s)
1581 ## @param sentinel.externalAccess.enabled Enable external access to the Redis
1585 ## @param sentinel.externalAccess.service.loadBalancerIPAnnotaion Name of annotation to specify fixed IP for service in.
1587 loadBalancerIPAnnotaion: ""
1588 ## @param sentinel.externalAccess.service.type Type for the services used to expose every Pod
1589 ## At this moment only LoadBalancer is supported
1592 ## @param sentinel.externalAccess.service.redisPort Port for the services used to expose redis-server
1595 ## @param sentinel.externalAccess.service.sentinelPort Port for the services used to expose redis-sentinel
1598 ## @param sentinel.externalAccess.service.loadBalancerIP Array of load balancer IPs for each Redis(R) node. Length must be the same as sentinel.replicaCount
1601 ## @param sentinel.externalAccess.service.loadBalancerClass Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1602 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1604 loadBalancerClass: ""
1605 ## @param sentinel.externalAccess.service.loadBalancerSourceRanges Service Load Balancer sources
1606 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1608 ## loadBalancerSourceRanges:
1611 loadBalancerSourceRanges: []
1612 ## @param sentinel.externalAccess.service.annotations Annotations to add to the services used to expose every Pod of the Redis(R) Cluster
1615## @section Other Parameters
1618## @param serviceBindings.enabled Create secret for service binding (Experimental)
1619## Ref: https://servicebinding.io/service-provider/
1623## Network Policy configuration
1624## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1627 ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources
1630 ## @param networkPolicy.allowExternal Don't require client label for connections
1631 ## When set to false, only pods with the correct client label will have network access to the ports
1632 ## Redis(R) is listening on. When true, Redis(R) will accept connections from any source
1633 ## (with the correct destination port).
1636 ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1638 allowExternalEgress: true
1639 ## @param networkPolicy.extraIngress Add extra ingress rules to the NetworkPolicy
1649 ## - matchExpressions:
1656 ## @param networkPolicy.extraEgress Add extra egress rules to the NetworkPolicy
1666 ## - matchExpressions:
1673 ## @param networkPolicy.ingressNSMatchLabels Labels to match to allow traffic from other namespaces
1674 ## @param networkPolicy.ingressNSPodMatchLabels Pod labels to match to allow traffic from other namespaces
1676 ingressNSMatchLabels: {}
1677 ingressNSPodMatchLabels: {}
1679 ## @param networkPolicy.metrics.allowExternal Don't require client label for connections for metrics endpoint
1680 ## When set to false, only pods with the correct client label will have network access to the metrics port
1683 ## @param networkPolicy.metrics.ingressNSMatchLabels Labels to match to allow traffic from other namespaces to metrics endpoint
1684 ## @param networkPolicy.metrics.ingressNSPodMatchLabels Pod labels to match to allow traffic from other namespaces to metrics endpoint
1686 ingressNSMatchLabels: {}
1687 ingressNSPodMatchLabels: {}
1688## PodSecurityPolicy configuration
1689## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1692 ## @param podSecurityPolicy.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
1695 ## @param podSecurityPolicy.enabled Enable PodSecurityPolicy's RBAC rules
1698## RBAC configuration
1701 ## @param rbac.create Specifies whether RBAC resources should be created
1704 ## @param rbac.rules Custom RBAC rules to set
1716## ServiceAccount configuration
1719 ## @param serviceAccount.create Specifies whether a ServiceAccount should be created
1722 ## @param serviceAccount.name The name of the ServiceAccount to use.
1723 ## If not set and create is true, a name is generated using the common.names.fullname template
1726 ## @param serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
1727 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
1729 automountServiceAccountToken: false
1730 ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
1733## Redis(R) Pod Disruption Budget configuration
1734## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
1735## @param pdb DEPRECATED Please use `master.pdb` and `replica.pdb` values instead
1741 ## @param tls.enabled Enable TLS traffic
1744 ## @param tls.authClients Require clients to authenticate
1747 ## @param tls.autoGenerated Enable autogenerated certificates
1749 autoGenerated: false
1750 ## @param tls.existingSecret The name of the existing secret that contains the TLS certificates
1753 ## @param tls.certificatesSecret DEPRECATED. Use existingSecret instead.
1755 certificatesSecret: ""
1756 ## @param tls.certFilename Certificate filename
1759 ## @param tls.certKeyFilename Certificate Key filename
1762 ## @param tls.certCAFilename CA Certificate filename
1765 ## @param tls.dhParamsFilename File containing DH params (in order to support DH based ciphers)
1767 dhParamsFilename: ""
1768## @section Metrics Parameters
1771 ## @param metrics.enabled Start a sidecar prometheus exporter to expose Redis(R) metrics
1774 ## Iamguarded Redis(R) Exporter image
1775 ## @param metrics.image.registry [default: REGISTRY_NAME] Redis(R) Exporter image registry
1776 ## @param metrics.image.repository [default: REPOSITORY_NAME/redis-exporter] Redis(R) Exporter image repository
1777 ## @skip metrics.image.tag Redis(R) Exporter image tag (immutable tags are recommended)
1778 ## @param metrics.image.digest Redis(R) Exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1779 ## @param metrics.image.pullPolicy Redis(R) Exporter image pull policy
1780 ## @param metrics.image.pullSecrets Redis(R) Exporter image pull secrets
1784 repository: chainguard-private/prometheus-redis-exporter-iamguarded
1787 pullPolicy: IfNotPresent
1788 ## Optionally specify an array of imagePullSecrets.
1789 ## Secrets must be manually created in the namespace.
1790 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1793 ## - myRegistryKeySecretName
1796 ## @param metrics.containerPorts.http Metrics HTTP container port
1800 ## Configure extra options for Redis(R) containers' liveness, readiness & startup probes
1801 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
1802 ## @param metrics.startupProbe.enabled Enable startupProbe on Redis(R) replicas nodes
1803 ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1804 ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
1805 ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1806 ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
1807 ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
1811 initialDelaySeconds: 10
1816 ## @param metrics.livenessProbe.enabled Enable livenessProbe on Redis(R) replicas nodes
1817 ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1818 ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
1819 ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1820 ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
1821 ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
1825 initialDelaySeconds: 10
1830 ## @param metrics.readinessProbe.enabled Enable readinessProbe on Redis(R) replicas nodes
1831 ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1832 ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
1833 ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1834 ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
1835 ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
1839 initialDelaySeconds: 5
1844 ## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
1846 customStartupProbe: {}
1847 ## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
1849 customLivenessProbe: {}
1850 ## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
1852 customReadinessProbe: {}
1853 ## @param metrics.command Override default metrics container init command (useful when using custom images)
1856 ## @param metrics.redisTargetHost A way to specify an alternative Redis(R) hostname
1857 ## Useful for certificate CN/SAN matching
1859 redisTargetHost: "localhost"
1860 ## @param metrics.extraArgs Extra arguments for Redis(R) exporter, for example:
1863 ## check-keys: myKey,myOtherKey
1866 ## @param metrics.extraEnvVars Array with extra environment variables to add to Redis(R) exporter
1873 ## Configure Container Security Context
1874 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1875 ## @param metrics.containerSecurityContext.enabled Enabled Redis(R) exporter containers' Security Context
1876 ## @param metrics.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1877 ## @param metrics.containerSecurityContext.runAsUser Set Redis(R) exporter containers' Security Context runAsUser
1878 ## @param metrics.containerSecurityContext.runAsGroup Set Redis(R) exporter containers' Security Context runAsGroup
1879 ## @param metrics.containerSecurityContext.runAsNonRoot Set Redis(R) exporter containers' Security Context runAsNonRoot
1880 ## @param metrics.containerSecurityContext.allowPrivilegeEscalation Set Redis(R) exporter containers' Security Context allowPrivilegeEscalation
1881 ## @param metrics.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
1882 ## @param metrics.containerSecurityContext.seccompProfile.type Set Redis(R) exporter containers' Security Context seccompProfile
1883 ## @param metrics.containerSecurityContext.capabilities.drop Set Redis(R) exporter containers' Security Context capabilities to drop
1885 containerSecurityContext:
1891 allowPrivilegeEscalation: false
1892 readOnlyRootFilesystem: true
1894 type: RuntimeDefault
1897 ## @param metrics.extraVolumes Optionally specify extra list of additional volumes for the Redis(R) metrics sidecar
1900 ## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis(R) metrics sidecar
1902 extraVolumeMounts: []
1903 ## Redis(R) exporter resource requests and limits
1904 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1905 ## @param metrics.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production).
1907 resourcesPreset: "nano"
1908 ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1919 ## @param metrics.podLabels Extra labels for Redis(R) exporter pods
1920 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1923 ## @param metrics.podAnnotations [object] Annotations for Redis(R) exporter pods
1924 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1927 prometheus.io/scrape: "true"
1928 prometheus.io/port: "9121"
1929 ## Redis(R) exporter service parameters
1932 ## @param metrics.service.enabled Create Service resource(s) for scraping metrics using PrometheusOperator ServiceMonitor, can be disabled when using a PodMonitor
1935 ## @param metrics.service.type Redis(R) exporter service type
1938 ## @param metrics.service.ports.http Redis(R) exporter service port
1942 ## @param metrics.service.externalTrafficPolicy Redis(R) exporter service external traffic policy
1943 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1945 externalTrafficPolicy: Cluster
1946 ## @param metrics.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1949 ## @param metrics.service.loadBalancerIP Redis(R) exporter service Load Balancer IP
1950 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1953 ## @param metrics.service.loadBalancerClass exporter service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1954 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1956 loadBalancerClass: ""
1957 ## @param metrics.service.loadBalancerSourceRanges Redis(R) exporter service Load Balancer sources
1958 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1960 ## loadBalancerSourceRanges:
1963 loadBalancerSourceRanges: []
1964 ## @param metrics.service.annotations Additional custom annotations for Redis(R) exporter service
1967 ## @param metrics.service.clusterIP Redis(R) exporter service Cluster IP
1970 ## Prometheus Service Monitor
1971 ## ref: https://github.com/coreos/prometheus-operator
1972 ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1975 ## @param metrics.serviceMonitor.port the service port to scrape metrics from
1978 ## @param metrics.serviceMonitor.enabled Create ServiceMonitor resource(s) for scraping metrics using PrometheusOperator
1981 ## @param metrics.serviceMonitor.namespace The namespace in which the ServiceMonitor will be created
1984 ## @param metrics.serviceMonitor.tlsConfig [object] TLS configuration used for scrape endpoints used by Prometheus
1987 ## @param metrics.serviceMonitor.interval The interval at which metrics should be scraped
1990 ## @param metrics.serviceMonitor.scrapeTimeout The timeout after which the scrape is ended
1993 ## @param metrics.serviceMonitor.relabelings Metrics RelabelConfigs to apply to samples before scraping.
1996 ## @skip metrics.serviceMonitor.relabellings DEPRECATED: Use `metrics.serviceMonitor.relabelings` instead.
1999 ## @param metrics.serviceMonitor.metricRelabelings Metrics RelabelConfigs to apply to samples before ingestion.
2001 metricRelabelings: []
2002 ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
2005 ## @param metrics.serviceMonitor.additionalLabels Additional labels that can be used so ServiceMonitor resource(s) can be discovered by Prometheus
2007 additionalLabels: {}
2008 ## @param metrics.serviceMonitor.podTargetLabels Labels from the Kubernetes pod to be transferred to the created metrics
2011 ## @param metrics.serviceMonitor.sampleLimit Limit of how many samples should be scraped from every Pod
2014 ## @param metrics.serviceMonitor.targetLimit Limit of how many targets should be scraped
2017 ## @param metrics.serviceMonitor.additionalEndpoints Additional endpoints to scrape (e.g sentinel)
2019 additionalEndpoints: []
2020 # uncomment in order to scrape sentinel metrics, also to in order distinguish between Sentinel and Redis container metrics
2021 # add metricRelabelings with label like app=redis to main redis pod-monitor port
2024 # port: "http-metrics"
2026 # target: ["localhost:26379"]
2027 # metricRelabelings:
2028 # - targetLabel: "app"
2029 # replacement: "sentinel"
2030 ## Prometheus Pod Monitor
2031 ## ref: https://github.com/coreos/prometheus-operator
2032 ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#podmonitor
2035 ## @param metrics.podMonitor.port the pod port to scrape metrics from
2038 ## @param metrics.podMonitor.enabled Create PodMonitor resource(s) for scraping metrics using PrometheusOperator
2041 ## @param metrics.podMonitor.namespace The namespace in which the PodMonitor will be created
2044 ## @param metrics.podMonitor.tlsConfig [object] TLS configuration used for scrape endpoints used by Prometheus
2047 ## @param metrics.podMonitor.interval The interval at which metrics should be scraped
2050 ## @param metrics.podMonitor.scrapeTimeout The timeout after which the scrape is ended
2053 ## @param metrics.podMonitor.relabelings Metrics RelabelConfigs to apply to samples before scraping.
2056 ## @skip metrics.podMonitor.relabellings DEPRECATED: Use `metrics.podMonitor.relabelings` instead.
2059 ## @param metrics.podMonitor.metricRelabelings Metrics RelabelConfigs to apply to samples before ingestion.
2061 metricRelabelings: []
2062 # - targetLabel: "app"
2063 # replacement: "redis"
2064 ## @param metrics.podMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
2067 ## @param metrics.podMonitor.additionalLabels Additional labels that can be used so PodMonitor resource(s) can be discovered by Prometheus
2069 additionalLabels: {}
2070 ## @param metrics.podMonitor.podTargetLabels Labels from the Kubernetes pod to be transferred to the created metrics
2073 ## @param metrics.podMonitor.sampleLimit Limit of how many samples should be scraped from every Pod
2076 ## @param metrics.podMonitor.targetLimit Limit of how many targets should be scraped
2079 ## @param metrics.podMonitor.additionalEndpoints Additional endpoints to scrape (e.g sentinel)
2081 additionalEndpoints: []
2086 # target: ["localhost:26379"]
2087 # metricRelabelings:
2088 # - targetLabel: "app"
2089 # replacement: "sentinel"
2090 ## Custom PrometheusRule to be defined
2091 ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
2094 ## @param metrics.prometheusRule.enabled Create a custom prometheusRule Resource for scraping metrics using PrometheusOperator
2097 ## @param metrics.prometheusRule.namespace The namespace in which the prometheusRule will be created
2100 ## @param metrics.prometheusRule.additionalLabels Additional labels for the prometheusRule
2102 additionalLabels: {}
2103 ## @param metrics.prometheusRule.rules Custom Prometheus rules
2106 ## - alert: RedisDown
2107 ## expr: redis_up{service="{{ template "common.names.fullname" . }}-metrics"} == 0
2112 ## summary: Redis(R) instance {{ "{{ $labels.instance }}" }} down
2113 ## description: Redis(R) instance {{ "{{ $labels.instance }}" }} is down
2114 ## - alert: RedisMemoryHigh
2116 ## redis_memory_used_bytes{service="{{ template "common.names.fullname" . }}-metrics"} * 100
2118 ## redis_memory_max_bytes{service="{{ template "common.names.fullname" . }}-metrics"}
2124 ## summary: Redis(R) instance {{ "{{ $labels.instance }}" }} is using too much memory
2126 ## Redis(R) instance {{ "{{ $labels.instance }}" }} is using {{ "{{ $value }}" }}% of its available memory.
2127 ## - alert: RedisKeyEviction
2129 ## increase(redis_evicted_keys_total{service="{{ template "common.names.fullname" . }}-metrics"}[5m]) > 0
2134 ## summary: Redis(R) instance {{ "{{ $labels.instance }}" }} has evicted keys
2136 ## Redis(R) instance {{ "{{ $labels.instance }}" }} has evicted {{ "{{ $value }}" }} keys in the last 5 minutes.
2139## @section Init Container Parameters
2142## 'volumePermissions' init container parameters
2143## Changes the owner and group of the persistent volume mount point to runAsUser:fsGroup values
2144## based on the *podSecurityContext/*containerSecurityContext parameters
2147 ## @param volumePermissions.enabled Enable init container that changes the owner/group of the PV mount point to `runAsUser:fsGroup`
2150 ## OS Shell + Utility image
2151 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
2152 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
2153 ## @skip volumePermissions.image.tag OS Shell + Utility image tag (immutable tags are recommended)
2154 ## @param volumePermissions.image.digest OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2155 ## @param volumePermissions.image.pullPolicy OS Shell + Utility image pull policy
2156 ## @param volumePermissions.image.pullSecrets OS Shell + Utility image pull secrets
2160 repository: chainguard-private/os-shell-iamguarded
2163 pullPolicy: IfNotPresent
2164 ## Optionally specify an array of imagePullSecrets.
2165 ## Secrets must be manually created in the namespace.
2166 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2169 ## - myRegistryKeySecretName
2172 ## Init container's resource requests and limits
2173 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2174 ## @param volumePermissions.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).
2176 resourcesPreset: "nano"
2177 ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2188 ## Init container Container Security Context
2189 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2190 ## @param volumePermissions.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2191 ## @param volumePermissions.containerSecurityContext.runAsUser Set init container's Security Context runAsUser
2192 ## NOTE: when runAsUser is set to special value "auto", init container will try to chown the
2193 ## data folder to auto-determined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
2194 ## "auto" is especially useful for OpenShift which has scc with dynamic user ids (and 0 is not allowed)
2196 containerSecurityContext:
2199 ## @param volumePermissions.extraEnvVars Array with extra environment variables to add to volume permissions init container.
2206## Kubectl InitContainer
2207## used by Sentinel to update the isMaster label on the Redis(TM) pods
2210 ## Iamguarded Kubectl image version
2211 ## @param kubectl.image.registry [default: REGISTRY_NAME] Kubectl image registry
2212 ## @param kubectl.image.repository [default: REPOSITORY_NAME/kubectl] Kubectl image repository
2213 ## @skip kubectl.image.tag Kubectl image tag (immutable tags are recommended), by default, using the current version
2214 ## @param kubectl.image.digest Kubectl image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2215 ## @param kubectl.image.pullPolicy Kubectl image pull policy
2216 ## @param kubectl.image.pullSecrets Kubectl pull secrets
2220 repository: chainguard-private/kubectl-iamguarded
2223 ## Specify a imagePullPolicy
2224 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
2226 pullPolicy: IfNotPresent
2227 ## Optionally specify an array of imagePullSecrets.
2228 ## Secrets must be manually created in the namespace.
2229 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2232 ## - myRegistryKeySecretName
2235 ## @param kubectl.command kubectl command to execute
2237 command: ["/opt/iamguarded/scripts/kubectl-scripts/update-master-label.sh"]
2238 ## Configure Container Security Context
2239 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2240 ## @param kubectl.containerSecurityContext.enabled Enabled kubectl containers' Security Context
2241 ## @param kubectl.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2242 ## @param kubectl.containerSecurityContext.runAsUser Set kubectl containers' Security Context runAsUser
2243 ## @param kubectl.containerSecurityContext.runAsGroup Set kubectl containers' Security Context runAsGroup
2244 ## @param kubectl.containerSecurityContext.runAsNonRoot Set kubectl containers' Security Context runAsNonRoot
2245 ## @param kubectl.containerSecurityContext.allowPrivilegeEscalation Set kubectl containers' Security Context allowPrivilegeEscalation
2246 ## @param kubectl.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
2247 ## @param kubectl.containerSecurityContext.seccompProfile.type Set kubectl containers' Security Context seccompProfile
2248 ## @param kubectl.containerSecurityContext.capabilities.drop Set kubectl containers' Security Context capabilities to drop
2250 containerSecurityContext:
2256 allowPrivilegeEscalation: false
2257 readOnlyRootFilesystem: true
2259 type: RuntimeDefault
2262 ## Iamguarded Kubectl resource requests and limits
2263 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2264 ## @param kubectl.resources.limits The resources limits for the kubectl containers
2265 ## @param kubectl.resources.requests The requested resources for the kubectl containers
2270## init-sysctl container parameters
2271## used to perform sysctl operation to modify Kernel settings (needed sometimes to avoid warnings)
2274 ## @param sysctl.enabled Enable init container to modify Kernel settings
2277 ## OS Shell + Utility image
2278 ## @param sysctl.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
2279 ## @param sysctl.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
2280 ## @skip sysctl.image.tag OS Shell + Utility image tag (immutable tags are recommended)
2281 ## @param sysctl.image.digest OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2282 ## @param sysctl.image.pullPolicy OS Shell + Utility image pull policy
2283 ## @param sysctl.image.pullSecrets OS Shell + Utility image pull secrets
2287 repository: chainguard-private/os-shell-iamguarded
2290 pullPolicy: IfNotPresent
2291 ## Optionally specify an array of imagePullSecrets.
2292 ## Secrets must be manually created in the namespace.
2293 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2296 ## - myRegistryKeySecretName
2299 ## @param sysctl.command Override default init-sysctl container command (useful when using custom images)
2302 ## @param sysctl.mountHostSys Mount the host `/sys` folder to `/host-sys`
2305 ## Init container's resource requests and limits
2306 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2307 ## @param sysctl.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if sysctl.resources is set (sysctl.resources is recommended for production).
2309 resourcesPreset: "nano"
2310 ## @param sysctl.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2321## @section useExternalDNS Parameters
2323## @param useExternalDNS.enabled Enable various syntax that would enable external-dns to work. Note this requires a working installation of `external-dns` to be usable.
2324## @param useExternalDNS.additionalAnnotations Extra annotations to be utilized when `external-dns` is enabled.
2325## @param useExternalDNS.annotationKey The annotation key utilized when `external-dns` is enabled. Setting this to `false` will disable annotations.
2326## @param useExternalDNS.suffix The DNS suffix utilized when `external-dns` is enabled. Note that we prepend the suffix with the full name of the release.
2331 annotationKey: external-dns.alpha.kubernetes.io/
2332 additionalAnnotations: {}