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.useImageTags Pull every image by tag and ignore all image digests, including digests set in values. Use this when your registry mirror does not have the chart's default image digests.
18## @param global.imagePullSecrets Global Docker registry secret names as an array
19## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
20## @param global.storageClass DEPRECATED: use global.defaultStorageClass instead
21## @param global.redis.password Global Redis® password (overrides `auth.password`)
28 ## - myRegistryKeySecretName
31 defaultStorageClass: ""
33 ## Security parameters
36 ## @param global.security.allowInsecureImages Allows skipping image verification
37 allowInsecureImages: false
40 ## Compatibility adaptations for Kubernetes platforms
43 ## Compatibility adaptations for Openshift
46 ## @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)
48 adaptSecurityContext: auto
50## @section Common parameters
53## @param kubeVersion Override Kubernetes version
56## @param nameOverride String to partially override common.names.fullname
59## @param fullnameOverride String to fully override common.names.fullname
62## @param namespaceOverride String to fully override common.names.namespace
65## @param commonLabels Labels to add to all deployed objects
68## @param commonAnnotations Annotations to add to all deployed objects
71## @param configmapChecksumAnnotations Enable checksum annotations used to trigger rolling updates when ConfigMap(s) change
73configmapChecksumAnnotations: true
74## @param secretChecksumAnnotations Enable checksum annotations used to trigger rolling updates when Secret(s) change
76secretChecksumAnnotations: true
77## @param secretAnnotations Annotations to add to secret
80## @param clusterDomain Kubernetes cluster domain name
82clusterDomain: cluster.local
83## @param extraDeploy Array of extra objects to deploy with the release
86## @param useHostnames Use hostnames internally when announcing replication. If false, the hostname will be resolved to an IP address
89## @param nameResolutionThreshold Failure threshold for internal hostnames resolution
91nameResolutionThreshold: 5
92## @param nameResolutionTimeout Timeout seconds between probes for internal hostnames resolution
94nameResolutionTimeout: 5
95## Enable diagnostic mode in the deployment
98 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
101 ## @param diagnosticMode.command Command to override all containers in the deployment
105 ## @param diagnosticMode.args Args to override all containers in the deployment
109## @section Redis® Image parameters
112## Iamguarded Redis® image
113## @param image.registry [default: REGISTRY_NAME] Redis® image registry
114## @param image.repository [default: REPOSITORY_NAME/redis] Redis® image repository
115## @skip image.tag Redis® image tag (immutable tags are recommended)
116## @param image.digest Redis® image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
117## @param image.pullPolicy Redis® image pull policy
118## @param image.pullSecrets Redis® image pull secrets
119## @param image.debug Enable image debug mode
123 repository: chainguard-private/redis-server-iamguarded
125 digest: sha256:36645de34b52581a71e3a9e61f199c8bd3183b60b0344b504d1319195b0ae922
126 ## Specify a imagePullPolicy
127 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
129 pullPolicy: IfNotPresent
130 ## Optionally specify an array of imagePullSecrets.
131 ## Secrets must be manually created in the namespace.
132 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
135 ## - myRegistryKeySecretName
141## @section Redis® common configuration parameters
144## @param architecture Redis® architecture. Allowed values: `standalone` or `replication`
146architecture: replication
147## Redis® Authentication parameters
150 ## @param auth.enabled Enable password authentication
153 ## @param auth.sentinel Enable authentication on sentinels too
156 ## @param auth.password Redis® password
157 ## Defaults to a random 10-character alphanumeric string if not set
160 ## @param auth.existingSecret The name of an existing secret with Redis® credentials
161 ## NOTE: When it's set, the previous `auth.password` parameter is ignored
164 ## @param auth.existingSecretPasswordKey Password key to be retrieved from existing secret
165 ## NOTE: ignored unless `auth.existingSecret` parameter is set
167 existingSecretPasswordKey: ""
168 ## @param auth.usePasswordFiles Mount credentials as files instead of using an environment variable
170 usePasswordFiles: true
171 ## @param auth.usePasswordFileFromSecret Mount password file from secret
173 usePasswordFileFromSecret: true
174 ## Redis ACL restricts connections by limiting commands and key access with auth management.
175 ## ref: https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/
178 ## @param auth.acl.enabled Enables the support of the Redis ACL system
181 ## @param auth.acl.sentinel Enables the support of the Redis ACL system for Sentinel Nodes
184 ## @param auth.acl.users A list of the configured users in the Redis ACL system
188 ## - username: "my-user"
189 ## password: "mypassword"
195 ## @param auth.acl.userSecret Name of the Secret, containing user credentials for ACL users. Keys must match usernames.
197## @param commonConfiguration [string] Common configuration to be added into the ConfigMap
198## ref: https://redis.io/topics/config
200commonConfiguration: |-
201 # Enable AOF https://redis.io/topics/persistence#append-only-file
203 # Disable RDB persistence, AOF persistence already enabled.
205## @param existingConfigmap The name of an existing ConfigMap with your custom configuration for Redis® nodes
208## @section Redis® master configuration parameters
211 ## @param master.count Number of Redis® master instances to deploy (experimental, requires additional configuration)
214 ## @param master.revisionHistoryLimit The number of old history to retain to allow rollback
215 ## NOTE: Explicitly setting this field to 0, will result in cleaning up all the history, breaking ability to rollback
216 revisionHistoryLimit: 10
217 ## @param master.configuration Configuration for Redis® master nodes
218 ## ref: https://redis.io/topics/config
221 ## @param master.disableCommands Array with Redis® commands to disable on master nodes
222 ## Commands will be completely disabled by renaming each to an empty string.
223 ## ref: https://redis.io/topics/security#disabling-of-specific-commands
228 ## @param master.command Override default container command (useful when using custom images)
231 ## @param master.args Override default container args (useful when using custom images)
234 ## @param master.enableServiceLinks Whether information about services should be injected into pod's environment variable
236 enableServiceLinks: true
237 ## @param master.preExecCmds Additional commands to run prior to starting Redis® master
240 ## @param master.extraFlags Array with additional command line flags for Redis® master
243 ## - "--maxmemory-policy volatile-ttl"
244 ## - "--repl-backlog-size 1024mb"
247 ## @param master.extraEnvVars Array with extra environment variables to add to Redis® master nodes
254 ## @param master.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis® master nodes
257 ## @param master.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis® master nodes
259 extraEnvVarsSecret: ""
260 ## @param master.containerPorts.redis Container port to open on Redis® master nodes
264 ## Configure extra options for Redis® containers' liveness and readiness probes
265 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
266 ## @param master.startupProbe.enabled Enable startupProbe on Redis® master nodes
267 ## @param master.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
268 ## @param master.startupProbe.periodSeconds Period seconds for startupProbe
269 ## @param master.startupProbe.timeoutSeconds Timeout seconds for startupProbe
270 ## @param master.startupProbe.failureThreshold Failure threshold for startupProbe
271 ## @param master.startupProbe.successThreshold Success threshold for startupProbe
275 initialDelaySeconds: 20
280 ## @param master.livenessProbe.enabled Enable livenessProbe on Redis® master nodes
281 ## @param master.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
282 ## @param master.livenessProbe.periodSeconds Period seconds for livenessProbe
283 ## @param master.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
284 ## @param master.livenessProbe.failureThreshold Failure threshold for livenessProbe
285 ## @param master.livenessProbe.successThreshold Success threshold for livenessProbe
289 initialDelaySeconds: 20
294 ## @param master.readinessProbe.enabled Enable readinessProbe on Redis® master nodes
295 ## @param master.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
296 ## @param master.readinessProbe.periodSeconds Period seconds for readinessProbe
297 ## @param master.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
298 ## @param master.readinessProbe.failureThreshold Failure threshold for readinessProbe
299 ## @param master.readinessProbe.successThreshold Success threshold for readinessProbe
303 initialDelaySeconds: 20
308 ## @param master.customStartupProbe Custom startupProbe that overrides the default one
310 customStartupProbe: {}
311 ## @param master.customLivenessProbe Custom livenessProbe that overrides the default one
313 customLivenessProbe: {}
314 ## @param master.customReadinessProbe Custom readinessProbe that overrides the default one
316 customReadinessProbe: {}
317 ## Redis® master resource requests and limits
318 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
319 ## @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).
321 resourcesPreset: "nano"
322 ## @param master.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
333 ## Configure Pods Security Context
334 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
335 ## @param master.podSecurityContext.enabled Enabled Redis® master pods' Security Context
336 ## @param master.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
337 ## @param master.podSecurityContext.sysctls Set kernel settings using the sysctl interface
338 ## @param master.podSecurityContext.supplementalGroups Set filesystem extra groups
339 ## @param master.podSecurityContext.fsGroup Set Redis® master pod's Security Context fsGroup
343 fsGroupChangePolicy: Always
345 supplementalGroups: []
347 ## Configure Container Security Context
348 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
349 ## @param master.containerSecurityContext.enabled Enabled Redis® master containers' Security Context
350 ## @param master.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
351 ## @param master.containerSecurityContext.runAsUser Set Redis® master containers' Security Context runAsUser
352 ## @param master.containerSecurityContext.runAsGroup Set Redis® master containers' Security Context runAsGroup
353 ## @param master.containerSecurityContext.runAsNonRoot Set Redis® master containers' Security Context runAsNonRoot
354 ## @param master.containerSecurityContext.allowPrivilegeEscalation Is it possible to escalate Redis® pod(s) privileges
355 ## @param master.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
356 ## @param master.containerSecurityContext.seccompProfile.type Set Redis® master containers' Security Context seccompProfile
357 ## @param master.containerSecurityContext.capabilities.drop Set Redis® master containers' Security Context capabilities to drop
359 containerSecurityContext:
365 allowPrivilegeEscalation: false
366 readOnlyRootFilesystem: true
371 ## @param master.kind Use either Deployment, StatefulSet (default) or DaemonSet
372 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
375 ## @param master.schedulerName Alternate scheduler for Redis® master pods
376 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
379 ## @param master.updateStrategy.type Redis® master statefulset strategy type
380 ## @skip master.updateStrategy.rollingUpdate
381 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
385 ## Can be set to RollingUpdate, OnDelete (statefulset), Recreate (deployment)
388 ## @param master.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
391 ## @param master.priorityClassName Redis® master pods' priorityClassName
393 priorityClassName: ""
394 ## @param master.automountServiceAccountToken Mount Service Account token in pod
396 automountServiceAccountToken: false
397 ## @param master.hostAliases Redis® master pods host aliases
398 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
401 ## @param master.podLabels Extra labels for Redis® master pods
402 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
405 ## @param master.podAnnotations Annotations for Redis® master pods
406 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
409 ## @param master.shareProcessNamespace Share a single process namespace between all of the containers in Redis® master pods
410 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
412 shareProcessNamespace: false
413 ## @param master.podAffinityPreset Pod affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
414 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
416 podAffinityPreset: ""
417 ## @param master.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
418 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
420 podAntiAffinityPreset: soft
421 ## Node master.affinity preset
422 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
425 ## @param master.nodeAffinityPreset.type Node affinity preset type. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
428 ## @param master.nodeAffinityPreset.key Node label key to match. Ignored if `master.affinity` is set
431 ## @param master.nodeAffinityPreset.values Node label values to match. Ignored if `master.affinity` is set
438 ## @param master.affinity Affinity for Redis® master pods assignment
439 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
440 ## NOTE: `master.podAffinityPreset`, `master.podAntiAffinityPreset`, and `master.nodeAffinityPreset` will be ignored when it's set
443 ## @param master.nodeSelector Node labels for Redis® master pods assignment
444 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
447 ## @param master.tolerations Tolerations for Redis® master pods assignment
448 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
451 ## @param master.topologySpreadConstraints Spread Constraints for Redis® master pod assignment
452 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
454 ## topologySpreadConstraints:
457 ## whenUnsatisfiable: DoNotSchedule
459 topologySpreadConstraints: []
460 ## @param master.dnsPolicy DNS Policy for Redis® master pod
461 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
463 ## dnsPolicy: ClusterFirst
466 ## @param master.dnsConfig DNS Configuration for Redis® master pod
467 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
473 ## - name: single-request-reopen
476 ## @param master.lifecycleHooks for the Redis® master container(s) to automate configuration before or after startup
479 ## @param master.extraVolumes Optionally specify extra list of additional volumes for the Redis® master pod(s)
482 ## @param master.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis® master container(s)
484 extraVolumeMounts: []
485 ## @param master.sidecars Add additional sidecar containers to the Redis® master pod(s)
488 ## - name: your-image-name
490 ## imagePullPolicy: Always
493 ## containerPort: 1234
496 ## @param master.initContainers Add additional init containers to the Redis® master pod(s)
497 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
500 ## - name: your-image-name
502 ## imagePullPolicy: Always
503 ## command: ['/bin/bash', '-ec', 'echo "hello world"']
506 ## Persistence parameters
507 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
510 ## @param master.persistence.enabled Enable persistence on Redis® master nodes using Persistent Volume Claims
513 ## @param master.persistence.medium Provide a medium for `emptyDir` volumes.
516 ## @param master.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
519 ## @param master.persistence.path The path the volume will be mounted at on Redis® master containers
520 ## NOTE: Useful when using different Redis® images
523 ## @param master.persistence.subPath The subdirectory of the volume to mount on Redis® master containers
524 ## NOTE: Useful in dev environments
527 ## @param master.persistence.subPathExpr Used to construct the subPath subdirectory of the volume to mount on Redis® master containers
530 ## @param master.persistence.storageClass Persistent Volume storage class
531 ## If defined, storageClassName: <storageClass>
532 ## If set to "-", storageClassName: "", which disables dynamic provisioning
533 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
536 ## @param master.persistence.accessModes Persistent Volume access modes
540 ## @param master.persistence.size Persistent Volume size
543 ## @param master.persistence.annotations Additional custom annotations for the PVC
546 ## @param master.persistence.labels Additional custom labels for the PVC
549 ## @param master.persistence.selector Additional labels to match for the PVC
556 ## @param master.persistence.dataSource Custom PVC data source
559 ## @param master.persistence.existingClaim Use a existing PVC which must be created manually before bound
560 ## NOTE: requires master.persistence.enabled: true
563 ## persistentVolumeClaimRetentionPolicy
564 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
565 ## @param master.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
566 ## @param master.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
567 ## @param master.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
569 persistentVolumeClaimRetentionPolicy:
573 ## Redis® master service parameters
576 ## @param master.service.type Redis® master service type
579 ## @param master.service.portNames.redis Redis® master service port name
583 ## @param master.service.ports.redis Redis® master service port
587 ## @param master.service.nodePorts.redis Node port for Redis® master
588 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
589 ## NOTE: choose port between <30000-32767>
593 ## @param master.service.externalTrafficPolicy Redis® master service external traffic policy
594 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
596 externalTrafficPolicy: Cluster
597 ## @param master.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
600 ## @param master.service.internalTrafficPolicy Redis® master service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)
601 ## ref: https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/
603 internalTrafficPolicy: Cluster
604 ## @param master.service.clusterIP Redis® master service Cluster IP
607 ## @param master.service.loadBalancerIP Redis® master service Load Balancer IP
608 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
611 ## @param master.service.loadBalancerClass master service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
612 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
614 loadBalancerClass: ""
615 ## @param master.service.loadBalancerSourceRanges Redis® master service Load Balancer sources
616 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
618 ## loadBalancerSourceRanges:
621 loadBalancerSourceRanges: []
622 ## @param master.service.externalIPs Redis® master service External IPs
623 ## https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
630 ## @param master.service.annotations Additional custom annotations for Redis® master service
633 ## @param master.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
634 ## If "ClientIP", consecutive client requests will be directed to the same Pod
635 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
637 sessionAffinity: None
638 ## @param master.service.sessionAffinityConfig Additional settings for the sessionAffinity
639 ## sessionAffinityConfig:
641 ## timeoutSeconds: 300
643 sessionAffinityConfig: {}
644 ## @param master.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-master pods
646 terminationGracePeriodSeconds: 30
647 ## ServiceAccount configuration
650 ## @param master.serviceAccount.create Specifies whether a ServiceAccount should be created
653 ## @param master.serviceAccount.name The name of the ServiceAccount to use.
654 ## If not set and create is true, a name is generated using the common.names.fullname template
657 ## @param master.serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
658 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
660 automountServiceAccountToken: false
661 ## @param master.serviceAccount.annotations Additional custom annotations for the ServiceAccount
664 ## Pod Disruption Budget configuration
665 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
666 ## @param master.pdb.create Enable/disable a Pod Disruption Budget creation
667 ## @param master.pdb.minAvailable [object] Minimum number/percentage of pods that should remain scheduled
668 ## @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.
674 ## @param master.extraPodSpec Optionally specify extra PodSpec for the Redis® master pod(s)
677 ## @param master.annotations Additional custom annotations for Redis® Master resource
680## @section Redis® replicas configuration parameters
683 ## @param replica.kind Use either DaemonSet or StatefulSet (default)
684 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
687 ## @param replica.replicaCount Number of Redis® replicas to deploy
690 ## @param replica.revisionHistoryLimit The number of old history to retain to allow rollback
691 ## NOTE: Explicitly setting this field to 0, will result in cleaning up all the history, breaking ability to rollback
692 revisionHistoryLimit: 10
693 ## @param replica.configuration Configuration for Redis® replicas nodes
694 ## ref: https://redis.io/topics/config
697 ## @param replica.disableCommands Array with Redis® commands to disable on replicas nodes
698 ## Commands will be completely disabled by renaming each to an empty string.
699 ## ref: https://redis.io/topics/security#disabling-of-specific-commands
704 ## @param replica.command Override default container command (useful when using custom images)
707 ## @param replica.args Override default container args (useful when using custom images)
710 ## @param replica.enableServiceLinks Whether information about services should be injected into pod's environment variable
712 enableServiceLinks: true
713 ## @param replica.preExecCmds Additional commands to run prior to starting Redis® replicas
716 ## @param replica.extraFlags Array with additional command line flags for Redis® replicas
719 ## - "--maxmemory-policy volatile-ttl"
720 ## - "--repl-backlog-size 1024mb"
723 ## @param replica.extraEnvVars Array with extra environment variables to add to Redis® replicas nodes
730 ## @param replica.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis® replicas nodes
733 ## @param replica.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis® replicas nodes
735 extraEnvVarsSecret: ""
736 ## @param replica.externalMaster.enabled Use external master for bootstrapping
737 ## @param replica.externalMaster.host External master host to bootstrap from
738 ## @param replica.externalMaster.port Port for Redis service external master host
744 ## @param replica.containerPorts.redis Container port to open on Redis® replicas nodes
748 ## Configure extra options for Redis® containers' liveness and readiness probes
749 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
750 ## @param replica.startupProbe.enabled Enable startupProbe on Redis® replicas nodes
751 ## @param replica.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
752 ## @param replica.startupProbe.periodSeconds Period seconds for startupProbe
753 ## @param replica.startupProbe.timeoutSeconds Timeout seconds for startupProbe
754 ## @param replica.startupProbe.failureThreshold Failure threshold for startupProbe
755 ## @param replica.startupProbe.successThreshold Success threshold for startupProbe
759 initialDelaySeconds: 10
764 ## @param replica.livenessProbe.enabled Enable livenessProbe on Redis® replicas nodes
765 ## @param replica.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
766 ## @param replica.livenessProbe.periodSeconds Period seconds for livenessProbe
767 ## @param replica.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
768 ## @param replica.livenessProbe.failureThreshold Failure threshold for livenessProbe
769 ## @param replica.livenessProbe.successThreshold Success threshold for livenessProbe
773 initialDelaySeconds: 20
778 ## @param replica.readinessProbe.enabled Enable readinessProbe on Redis® replicas nodes
779 ## @param replica.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
780 ## @param replica.readinessProbe.periodSeconds Period seconds for readinessProbe
781 ## @param replica.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
782 ## @param replica.readinessProbe.failureThreshold Failure threshold for readinessProbe
783 ## @param replica.readinessProbe.successThreshold Success threshold for readinessProbe
787 initialDelaySeconds: 20
792 ## @param replica.customStartupProbe Custom startupProbe that overrides the default one
794 customStartupProbe: {}
795 ## @param replica.customLivenessProbe Custom livenessProbe that overrides the default one
797 customLivenessProbe: {}
798 ## @param replica.customReadinessProbe Custom readinessProbe that overrides the default one
800 customReadinessProbe: {}
801 ## Redis® replicas resource requests and limits
802 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
803 ## @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).
805 resourcesPreset: "nano"
806 ## @param replica.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
817 ## Configure Pods Security Context
818 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
819 ## @param replica.podSecurityContext.enabled Enabled Redis® replicas pods' Security Context
820 ## @param replica.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
821 ## @param replica.podSecurityContext.sysctls Set kernel settings using the sysctl interface
822 ## @param replica.podSecurityContext.supplementalGroups Set filesystem extra groups
823 ## @param replica.podSecurityContext.fsGroup Set Redis® replicas pod's Security Context fsGroup
827 fsGroupChangePolicy: Always
829 supplementalGroups: []
831 ## Configure Container Security Context
832 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
833 ## @param replica.containerSecurityContext.enabled Enabled Redis® replicas containers' Security Context
834 ## @param replica.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
835 ## @param replica.containerSecurityContext.runAsUser Set Redis® replicas containers' Security Context runAsUser
836 ## @param replica.containerSecurityContext.runAsGroup Set Redis® replicas containers' Security Context runAsGroup
837 ## @param replica.containerSecurityContext.runAsNonRoot Set Redis® replicas containers' Security Context runAsNonRoot
838 ## @param replica.containerSecurityContext.allowPrivilegeEscalation Set Redis® replicas pod's Security Context allowPrivilegeEscalation
839 ## @param replica.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
840 ## @param replica.containerSecurityContext.seccompProfile.type Set Redis® replicas containers' Security Context seccompProfile
841 ## @param replica.containerSecurityContext.capabilities.drop Set Redis® replicas containers' Security Context capabilities to drop
843 containerSecurityContext:
849 allowPrivilegeEscalation: false
850 readOnlyRootFilesystem: true
855 ## @param replica.schedulerName Alternate scheduler for Redis® replicas pods
856 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
859 ## @param replica.updateStrategy.type Redis® replicas statefulset strategy type
860 ## @skip replica.updateStrategy.rollingUpdate
861 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
865 ## Can be set to RollingUpdate, OnDelete (statefulset), Recreate (deployment)
868 ## @param replica.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
871 ## @param replica.priorityClassName Redis® replicas pods' priorityClassName
873 priorityClassName: ""
874 ## @param replica.podManagementPolicy podManagementPolicy to manage scaling operation of %%MAIN_CONTAINER_NAME%% pods
875 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
877 podManagementPolicy: ""
878 ## @param replica.automountServiceAccountToken Mount Service Account token in pod
880 automountServiceAccountToken: false
881 ## @param replica.hostAliases Redis® replicas pods host aliases
882 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
885 ## @param replica.podLabels Extra labels for Redis® replicas pods
886 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
889 ## @param replica.podAnnotations Annotations for Redis® replicas pods
890 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
893 ## @param replica.shareProcessNamespace Share a single process namespace between all of the containers in Redis® replicas pods
894 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
896 shareProcessNamespace: false
897 ## @param replica.podAffinityPreset Pod affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
898 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
900 podAffinityPreset: ""
901 ## @param replica.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
902 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
904 podAntiAffinityPreset: soft
905 ## Node affinity preset
906 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
909 ## @param replica.nodeAffinityPreset.type Node affinity preset type. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
912 ## @param replica.nodeAffinityPreset.key Node label key to match. Ignored if `replica.affinity` is set
915 ## @param replica.nodeAffinityPreset.values Node label values to match. Ignored if `replica.affinity` is set
922 ## @param replica.affinity Affinity for Redis® replicas pods assignment
923 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
924 ## NOTE: `replica.podAffinityPreset`, `replica.podAntiAffinityPreset`, and `replica.nodeAffinityPreset` will be ignored when it's set
927 ## @param replica.nodeSelector Node labels for Redis® replicas pods assignment
928 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
931 ## @param replica.tolerations Tolerations for Redis® replicas pods assignment
932 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
935 ## @param replica.topologySpreadConstraints Spread Constraints for Redis® replicas pod assignment
936 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
938 ## topologySpreadConstraints:
941 ## whenUnsatisfiable: DoNotSchedule
943 topologySpreadConstraints: []
944 ## @param replica.dnsPolicy DNS Policy for Redis® replica pods
945 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
947 ## dnsPolicy: ClusterFirst
950 ## @param replica.dnsConfig DNS Configuration for Redis® replica pods
951 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
957 ## - name: single-request-reopen
960 ## @param replica.lifecycleHooks for the Redis® replica container(s) to automate configuration before or after startup
963 ## @param replica.extraVolumes Optionally specify extra list of additional volumes for the Redis® replicas pod(s)
966 ## @param replica.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis® replicas container(s)
968 extraVolumeMounts: []
969 ## @param replica.sidecars Add additional sidecar containers to the Redis® replicas pod(s)
972 ## - name: your-image-name
974 ## imagePullPolicy: Always
977 ## containerPort: 1234
980 ## @param replica.initContainers Add additional init containers to the Redis® replicas pod(s)
981 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
984 ## - name: your-image-name
986 ## imagePullPolicy: Always
987 ## command: ['/bin/bash', '-c', 'echo "hello world"']
990 ## Persistence Parameters
991 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
994 ## @param replica.persistence.enabled Enable persistence on Redis® replicas nodes using Persistent Volume Claims
997 ## @param replica.persistence.medium Provide a medium for `emptyDir` volumes.
1000 ## @param replica.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
1003 ## @param replica.persistence.path The path the volume will be mounted at on Redis® replicas containers
1004 ## NOTE: Useful when using different Redis® images
1007 ## @param replica.persistence.subPath The subdirectory of the volume to mount on Redis® replicas containers
1008 ## NOTE: Useful in dev environments
1011 ## @param replica.persistence.subPathExpr Used to construct the subPath subdirectory of the volume to mount on Redis® replicas containers
1014 ## @param replica.persistence.storageClass Persistent Volume storage class
1015 ## If defined, storageClassName: <storageClass>
1016 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1017 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
1020 ## @param replica.persistence.accessModes Persistent Volume access modes
1024 ## @param replica.persistence.size Persistent Volume size
1027 ## @param replica.persistence.annotations Additional custom annotations for the PVC
1030 ## @param replica.persistence.labels Additional custom labels for the PVC
1033 ## @param replica.persistence.selector Additional labels to match for the PVC
1040 ## @param replica.persistence.dataSource Custom PVC data source
1043 ## @param replica.persistence.existingClaim Use a existing PVC which must be created manually before bound
1044 ## NOTE: requires replica.persistence.enabled: true
1047 ## persistentVolumeClaimRetentionPolicy
1048 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1049 ## @param replica.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
1050 ## @param replica.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1051 ## @param replica.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1053 persistentVolumeClaimRetentionPolicy:
1057 ## Redis® replicas service parameters
1060 ## @param replica.service.type Redis® replicas service type
1063 ## @param replica.service.ports.redis Redis® replicas service port
1067 ## @param replica.service.nodePorts.redis Node port for Redis® replicas
1068 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1069 ## NOTE: choose port between <30000-32767>
1073 ## @param replica.service.externalTrafficPolicy Redis® replicas service external traffic policy
1074 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1076 externalTrafficPolicy: Cluster
1077 ## @param replica.service.internalTrafficPolicy Redis® replicas service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)
1078 ## ref: https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/
1080 internalTrafficPolicy: Cluster
1081 ## @param replica.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1084 ## @param replica.service.clusterIP Redis® replicas service Cluster IP
1087 ## @param replica.service.loadBalancerIP Redis® replicas service Load Balancer IP
1088 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1091 ## @param replica.service.loadBalancerClass replicas service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1092 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1094 loadBalancerClass: ""
1095 ## @param replica.service.loadBalancerSourceRanges Redis® replicas service Load Balancer sources
1096 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1098 ## loadBalancerSourceRanges:
1101 loadBalancerSourceRanges: []
1102 ## @param replica.service.annotations Additional custom annotations for Redis® replicas service
1105 ## @param replica.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1106 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1107 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1109 sessionAffinity: None
1110 ## @param replica.service.sessionAffinityConfig Additional settings for the sessionAffinity
1111 ## sessionAffinityConfig:
1113 ## timeoutSeconds: 300
1115 sessionAffinityConfig: {}
1116 ## @param replica.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-replicas pods
1118 terminationGracePeriodSeconds: 30
1119 ## Autoscaling configuration
1122 ## @param replica.autoscaling.enabled Enable replica autoscaling settings
1125 ## @param replica.autoscaling.minReplicas Minimum replicas for the pod autoscaling
1128 ## @param replica.autoscaling.maxReplicas Maximum replicas for the pod autoscaling
1131 ## @param replica.autoscaling.targetCPU Percentage of CPU to consider when autoscaling
1134 ## @param replica.autoscaling.targetMemory Percentage of Memory to consider when autoscaling
1137 ## ServiceAccount configuration
1140 ## @param replica.serviceAccount.create Specifies whether a ServiceAccount should be created
1143 ## @param replica.serviceAccount.name The name of the ServiceAccount to use.
1144 ## If not set and create is true, a name is generated using the common.names.fullname template
1147 ## @param replica.serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
1148 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
1150 automountServiceAccountToken: false
1151 ## @param replica.serviceAccount.annotations Additional custom annotations for the ServiceAccount
1154 ## Pod Disruption Budget configuration
1155 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1156 ## @param replica.pdb.create Enable/disable a Pod Disruption Budget creation
1157 ## @param replica.pdb.minAvailable [object] Minimum number/percentage of pods that should remain scheduled
1158 ## @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.
1164 ## @param replica.extraPodSpec Optionally specify extra PodSpec for the Redis® replicas pod(s)
1167 ## @param replica.annotations Additional custom annotations for Redis® replicas resource
1170## @section Redis® Sentinel configuration parameters
1174 ## @param sentinel.enabled Use Redis® Sentinel on Redis® pods.
1175 ## IMPORTANT: this will disable the master and replicas services and
1176 ## create a single Redis® service exposing both the Redis and Sentinel ports
1179 ## Iamguarded Redis® Sentinel image version
1180 ## @param sentinel.image.registry [default: REGISTRY_NAME] Redis® Sentinel image registry
1181 ## @param sentinel.image.repository [default: REPOSITORY_NAME/redis-sentinel] Redis® Sentinel image repository
1182 ## @skip sentinel.image.tag Redis® Sentinel image tag (immutable tags are recommended)
1183 ## @param sentinel.image.digest Redis® Sentinel image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1184 ## @param sentinel.image.pullPolicy Redis® Sentinel image pull policy
1185 ## @param sentinel.image.pullSecrets Redis® Sentinel image pull secrets
1186 ## @param sentinel.image.debug Enable image debug mode
1190 repository: chainguard-private/redis-sentinel-iamguarded
1192 digest: sha256:a7698ac96111c957e0171c1fe9a8e1069aaf02c79d0836aa4bb3d43d557d8367
1193 ## Specify a imagePullPolicy
1194 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1196 pullPolicy: IfNotPresent
1197 ## Optionally specify an array of imagePullSecrets.
1198 ## Secrets must be manually created in the namespace.
1199 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1202 ## - myRegistryKeySecretName
1205 ## Enable debug mode
1208 ## @param sentinel.annotations Additional custom annotations for Redis® Sentinel resource
1211 ## @param sentinel.masterSet Master set name
1214 ## @param sentinel.quorum Sentinel Quorum
1217 ## @param sentinel.getMasterTimeout Amount of time to allow before get_sentinel_master_info() times out.
1219 getMasterTimeout: 90
1220 ## @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.
1221 ## 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.
1222 ## NOTE: This feature requires a "downAfterMilliseconds" value less or equal to 2000.
1224 automateClusterRecovery: false
1225 ## @param sentinel.redisShutdownWaitFailover Whether the Redis® master container waits for the failover at shutdown (in addition to the Redis® Sentinel container).
1227 redisShutdownWaitFailover: true
1228 ## Sentinel timing restrictions
1229 ## @param sentinel.downAfterMilliseconds Timeout for detecting a Redis® node is down
1230 ## @param sentinel.failoverTimeout Timeout for performing a election failover
1232 downAfterMilliseconds: 60000
1233 failoverTimeout: 180000
1234 ## @param sentinel.parallelSyncs Number of replicas that can be reconfigured in parallel to use the new master after a failover
1237 ## @param sentinel.configuration Configuration for Redis® Sentinel nodes
1238 ## ref: https://redis.io/topics/sentinel
1241 ## @param sentinel.command Override default container command (useful when using custom images)
1244 ## @param sentinel.args Override default container args (useful when using custom images)
1247 ## @param sentinel.enableServiceLinks Whether information about services should be injected into pod's environment variable
1249 enableServiceLinks: true
1250 ## @param sentinel.preExecCmds Additional commands to run prior to starting Redis® Sentinel
1253 ## @param sentinel.extraEnvVars Array with extra environment variables to add to Redis® Sentinel nodes
1260 ## @param sentinel.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis® Sentinel nodes
1263 ## @param sentinel.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis® Sentinel nodes
1265 extraEnvVarsSecret: ""
1266 ## @param sentinel.externalMaster.enabled Use external master for bootstrapping
1267 ## @param sentinel.externalMaster.host External master host to bootstrap from
1268 ## @param sentinel.externalMaster.port Port for Redis service external master host
1274 ## @param sentinel.containerPorts.sentinel Container port to open on Redis® Sentinel nodes
1278 ## Configure extra options for Redis® containers' liveness and readiness probes
1279 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1280 ## @param sentinel.startupProbe.enabled Enable startupProbe on Redis® Sentinel nodes
1281 ## @param sentinel.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1282 ## @param sentinel.startupProbe.periodSeconds Period seconds for startupProbe
1283 ## @param sentinel.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1284 ## @param sentinel.startupProbe.failureThreshold Failure threshold for startupProbe
1285 ## @param sentinel.startupProbe.successThreshold Success threshold for startupProbe
1289 initialDelaySeconds: 10
1293 failureThreshold: 22
1294 ## @param sentinel.livenessProbe.enabled Enable livenessProbe on Redis® Sentinel nodes
1295 ## @param sentinel.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1296 ## @param sentinel.livenessProbe.periodSeconds Period seconds for livenessProbe
1297 ## @param sentinel.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1298 ## @param sentinel.livenessProbe.failureThreshold Failure threshold for livenessProbe
1299 ## @param sentinel.livenessProbe.successThreshold Success threshold for livenessProbe
1303 initialDelaySeconds: 20
1308 ## @param sentinel.readinessProbe.enabled Enable readinessProbe on Redis® Sentinel nodes
1309 ## @param sentinel.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1310 ## @param sentinel.readinessProbe.periodSeconds Period seconds for readinessProbe
1311 ## @param sentinel.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1312 ## @param sentinel.readinessProbe.failureThreshold Failure threshold for readinessProbe
1313 ## @param sentinel.readinessProbe.successThreshold Success threshold for readinessProbe
1317 initialDelaySeconds: 20
1322 ## @param sentinel.customStartupProbe Custom startupProbe that overrides the default one
1324 customStartupProbe: {}
1325 ## @param sentinel.customLivenessProbe Custom livenessProbe that overrides the default one
1327 customLivenessProbe: {}
1328 ## @param sentinel.customReadinessProbe Custom readinessProbe that overrides the default one
1330 customReadinessProbe: {}
1331 ## Persistence parameters
1332 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1335 ## @param sentinel.persistence.enabled Enable persistence on Redis® sentinel nodes using Persistent Volume Claims (Experimental)
1338 ## @param sentinel.persistence.storageClass Persistent Volume storage class
1339 ## If defined, storageClassName: <storageClass>
1340 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1341 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
1344 ## @param sentinel.persistence.accessModes Persistent Volume access modes
1348 ## @param sentinel.persistence.size Persistent Volume size
1351 ## @param sentinel.persistence.annotations Additional custom annotations for the PVC
1354 ## @param sentinel.persistence.labels Additional custom labels for the PVC
1357 ## @param sentinel.persistence.selector Additional labels to match for the PVC
1364 ## @param sentinel.persistence.dataSource Custom PVC data source
1367 ## @param sentinel.persistence.medium Provide a medium for `emptyDir` volumes.
1370 ## @param sentinel.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
1373 ## persistentVolumeClaimRetentionPolicy
1374 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1375 ## @param sentinel.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
1376 ## @param sentinel.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1377 ## @param sentinel.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1379 persistentVolumeClaimRetentionPolicy:
1383 ## Redis® Sentinel resource requests and limits
1384 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1385 ## @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).
1387 resourcesPreset: "nano"
1388 ## @param sentinel.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1399 ## Configure Container Security Context
1400 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1401 ## @param sentinel.containerSecurityContext.enabled Enabled Redis® Sentinel containers' Security Context
1402 ## @param sentinel.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1403 ## @param sentinel.containerSecurityContext.runAsUser Set Redis® Sentinel containers' Security Context runAsUser
1404 ## @param sentinel.containerSecurityContext.runAsGroup Set Redis® Sentinel containers' Security Context runAsGroup
1405 ## @param sentinel.containerSecurityContext.runAsNonRoot Set Redis® Sentinel containers' Security Context runAsNonRoot
1406 ## @param sentinel.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
1407 ## @param sentinel.containerSecurityContext.allowPrivilegeEscalation Set Redis® Sentinel containers' Security Context allowPrivilegeEscalation
1408 ## @param sentinel.containerSecurityContext.seccompProfile.type Set Redis® Sentinel containers' Security Context seccompProfile
1409 ## @param sentinel.containerSecurityContext.capabilities.drop Set Redis® Sentinel containers' Security Context capabilities to drop
1411 containerSecurityContext:
1417 allowPrivilegeEscalation: false
1418 readOnlyRootFilesystem: true
1420 type: RuntimeDefault
1423 ## @param sentinel.lifecycleHooks for the Redis® sentinel container(s) to automate configuration before or after startup
1426 ## @param sentinel.extraVolumes Optionally specify extra list of additional volumes for the Redis® Sentinel
1429 ## @param sentinel.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis® Sentinel container(s)
1431 extraVolumeMounts: []
1432 ## Redis® Sentinel service parameters
1433 ## Note: values passed in this section also configure the master service, unless the sentinel.masterService is explicitly overridden.
1435 ## @param sentinel.service.type Redis® Sentinel service type
1438 ## @param sentinel.service.ports.redis Redis® service port for Redis®
1439 ## @param sentinel.service.ports.sentinel Redis® service port for Redis® Sentinel
1444 ## @param sentinel.service.nodePorts.redis Node port for Redis®
1445 ## @param sentinel.service.nodePorts.sentinel Node port for Sentinel
1446 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1447 ## NOTE: choose port between <30000-32767>
1448 ## NOTE: By leaving these values blank, they will be generated by ports-configmap
1449 ## 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
1454 ## @param sentinel.service.externalTrafficPolicy Redis® Sentinel service external traffic policy
1455 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1457 externalTrafficPolicy: Cluster
1458 ## @param sentinel.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1461 ## @param sentinel.service.clusterIP Redis® Sentinel service Cluster IP
1464 ## @param sentinel.service.createMaster Enable master service pointing to the current master (experimental)
1465 ## NOTE: rbac.create need to be set to true
1468 ## @param sentinel.service.loadBalancerIP Redis® Sentinel service Load Balancer IP
1469 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1472 ## @param sentinel.service.loadBalancerClass sentinel service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1473 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1475 loadBalancerClass: ""
1476 ## @param sentinel.service.loadBalancerSourceRanges Redis® Sentinel service Load Balancer sources
1477 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1479 ## loadBalancerSourceRanges:
1482 loadBalancerSourceRanges: []
1483 ## @param sentinel.service.annotations Additional custom annotations for Redis® Sentinel service
1486 ## @param sentinel.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1487 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1488 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1490 sessionAffinity: None
1491 ## @param sentinel.service.sessionAffinityConfig Additional settings for the sessionAffinity
1492 ## sessionAffinityConfig:
1494 ## timeoutSeconds: 300
1496 sessionAffinityConfig: {}
1497 ## Headless service properties
1500 ## @param sentinel.service.headless.annotations Annotations for the headless service.
1503 ## @param sentinel.service.headless.extraPorts Optionally specify extra ports to expose for the headless service.
1506 ## - name: my-custom-port
1509 ## targetPort: 12345
1512 ## Redis® master service parameters
1515 ## @param sentinel.masterService.enabled Enable master service pointing to the current master (experimental)
1516 ## NOTE: rbac.create need to be set to true
1519 ## @param sentinel.masterService.type Redis® Sentinel master service type
1522 ## @param sentinel.masterService.ports.redis Redis® service port for Redis®
1526 ## @param sentinel.masterService.nodePorts.redis Node port for Redis®
1527 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1528 ## NOTE: choose port between <30000-32767>
1529 ## NOTE: By leaving these values blank, they will be generated by ports-configmap
1530 ## 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
1534 ## @param sentinel.masterService.externalTrafficPolicy Redis® master service external traffic policy
1535 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1537 externalTrafficPolicy: ""
1538 ## @param sentinel.masterService.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1541 ## @param sentinel.masterService.clusterIP Redis® master service Cluster IP
1544 ## @param sentinel.masterService.loadBalancerIP Redis® master service Load Balancer IP
1545 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1548 ## @param sentinel.masterService.loadBalancerClass master service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1549 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1551 loadBalancerClass: ""
1552 ## @param sentinel.masterService.loadBalancerSourceRanges Redis® master service Load Balancer sources
1553 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1555 ## loadBalancerSourceRanges:
1558 loadBalancerSourceRanges: []
1559 ## @param sentinel.masterService.annotations Additional custom annotations for Redis® master service
1562 ## @param sentinel.masterService.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1563 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1564 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1566 sessionAffinity: None
1567 ## @param sentinel.masterService.sessionAffinityConfig Additional settings for the sessionAffinity
1568 ## sessionAffinityConfig:
1570 ## timeoutSeconds: 300
1572 sessionAffinityConfig: {}
1573 ## @param sentinel.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-node pods
1575 terminationGracePeriodSeconds: 30
1576 ## @param sentinel.extraPodSpec Optionally specify extra PodSpec for the Redis® Sentinel pod(s)
1580 ## @param sentinel.externalAccess.enabled Enable external access to the Redis
1584 ## @param sentinel.externalAccess.service.loadBalancerIPAnnotaion Name of annotation to specify fixed IP for service in.
1586 loadBalancerIPAnnotaion: ""
1587 ## @param sentinel.externalAccess.service.type Type for the services used to expose every Pod
1588 ## At this moment only LoadBalancer is supported
1591 ## @param sentinel.externalAccess.service.redisPort Port for the services used to expose redis-server
1594 ## @param sentinel.externalAccess.service.sentinelPort Port for the services used to expose redis-sentinel
1597 ## @param sentinel.externalAccess.service.loadBalancerIP Array of load balancer IPs for each Redis® node. Length must be the same as sentinel.replicaCount
1600 ## @param sentinel.externalAccess.service.loadBalancerClass Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1601 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1603 loadBalancerClass: ""
1604 ## @param sentinel.externalAccess.service.loadBalancerSourceRanges Service Load Balancer sources
1605 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1607 ## loadBalancerSourceRanges:
1610 loadBalancerSourceRanges: []
1611 ## @param sentinel.externalAccess.service.annotations Annotations to add to the services used to expose every Pod of the Redis® Cluster
1614## @section Other Parameters
1617## @param serviceBindings.enabled Create secret for service binding (Experimental)
1618## Ref: https://servicebinding.io/service-provider/
1622## Network Policy configuration
1623## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1626 ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources
1629 ## @param networkPolicy.allowExternal Don't require client label for connections
1630 ## When set to false, only pods with the correct client label will have network access to the ports
1631 ## Redis® is listening on. When true, Redis® will accept connections from any source
1632 ## (with the correct destination port).
1635 ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1637 allowExternalEgress: true
1638 ## @param networkPolicy.extraIngress Add extra ingress rules to the NetworkPolicy
1648 ## - matchExpressions:
1655 ## @param networkPolicy.extraEgress Add extra egress rules to the NetworkPolicy
1665 ## - matchExpressions:
1672 ## @param networkPolicy.ingressNSMatchLabels Labels to match to allow traffic from other namespaces
1673 ## @param networkPolicy.ingressNSPodMatchLabels Pod labels to match to allow traffic from other namespaces
1675 ingressNSMatchLabels: {}
1676 ingressNSPodMatchLabels: {}
1678 ## @param networkPolicy.metrics.allowExternal Don't require client label for connections for metrics endpoint
1679 ## When set to false, only pods with the correct client label will have network access to the metrics port
1682 ## @param networkPolicy.metrics.ingressNSMatchLabels Labels to match to allow traffic from other namespaces to metrics endpoint
1683 ## @param networkPolicy.metrics.ingressNSPodMatchLabels Pod labels to match to allow traffic from other namespaces to metrics endpoint
1685 ingressNSMatchLabels: {}
1686 ingressNSPodMatchLabels: {}
1687## PodSecurityPolicy configuration
1688## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1691 ## @param podSecurityPolicy.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
1694 ## @param podSecurityPolicy.enabled Enable PodSecurityPolicy's RBAC rules
1697## RBAC configuration
1700 ## @param rbac.create Specifies whether RBAC resources should be created
1703 ## @param rbac.rules Custom RBAC rules to set
1715## ServiceAccount configuration
1718 ## @param serviceAccount.create Specifies whether a ServiceAccount should be created
1721 ## @param serviceAccount.name The name of the ServiceAccount to use.
1722 ## If not set and create is true, a name is generated using the common.names.fullname template
1725 ## @param serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
1726 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
1728 automountServiceAccountToken: false
1729 ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
1732## Redis® Pod Disruption Budget configuration
1733## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
1734## @param pdb DEPRECATED Please use `master.pdb` and `replica.pdb` values instead
1740 ## @param tls.enabled Enable TLS traffic
1743 ## @param tls.authClients Require clients to authenticate
1746 ## @param tls.autoGenerated Enable autogenerated certificates
1748 autoGenerated: false
1749 ## @param tls.existingSecret The name of the existing secret that contains the TLS certificates
1752 ## @param tls.certificatesSecret DEPRECATED. Use existingSecret instead.
1754 certificatesSecret: ""
1755 ## @param tls.certFilename Certificate filename
1758 ## @param tls.certKeyFilename Certificate Key filename
1761 ## @param tls.certCAFilename CA Certificate filename
1764 ## @param tls.dhParamsFilename File containing DH params (in order to support DH based ciphers)
1766 dhParamsFilename: ""
1767## @section Metrics Parameters
1770 ## @param metrics.enabled Start a sidecar prometheus exporter to expose Redis® metrics
1773 ## Iamguarded Redis® Exporter image
1774 ## @param metrics.image.registry [default: REGISTRY_NAME] Redis® Exporter image registry
1775 ## @param metrics.image.repository [default: REPOSITORY_NAME/redis-exporter] Redis® Exporter image repository
1776 ## @skip metrics.image.tag Redis® Exporter image tag (immutable tags are recommended)
1777 ## @param metrics.image.digest Redis® Exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1778 ## @param metrics.image.pullPolicy Redis® Exporter image pull policy
1779 ## @param metrics.image.pullSecrets Redis® Exporter image pull secrets
1783 repository: chainguard-private/prometheus-redis-exporter-iamguarded
1785 digest: sha256:b4d1195f47bdcd9e620f1f2ff49248196db0b999980de1198f5d6e3708ba423e
1786 pullPolicy: IfNotPresent
1787 ## Optionally specify an array of imagePullSecrets.
1788 ## Secrets must be manually created in the namespace.
1789 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1792 ## - myRegistryKeySecretName
1795 ## @param metrics.containerPorts.http Metrics HTTP container port
1799 ## Configure extra options for Redis® containers' liveness, readiness & startup probes
1800 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
1801 ## @param metrics.startupProbe.enabled Enable startupProbe on Redis® replicas nodes
1802 ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1803 ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
1804 ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1805 ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
1806 ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
1810 initialDelaySeconds: 10
1815 ## @param metrics.livenessProbe.enabled Enable livenessProbe on Redis® replicas nodes
1816 ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1817 ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
1818 ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1819 ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
1820 ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
1824 initialDelaySeconds: 10
1829 ## @param metrics.readinessProbe.enabled Enable readinessProbe on Redis® replicas nodes
1830 ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1831 ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
1832 ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1833 ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
1834 ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
1838 initialDelaySeconds: 5
1843 ## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
1845 customStartupProbe: {}
1846 ## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
1848 customLivenessProbe: {}
1849 ## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
1851 customReadinessProbe: {}
1852 ## @param metrics.command Override default metrics container init command (useful when using custom images)
1855 ## @param metrics.redisTargetHost A way to specify an alternative Redis® hostname
1856 ## Useful for certificate CN/SAN matching
1858 redisTargetHost: "localhost"
1859 ## @param metrics.extraArgs Extra arguments for Redis® exporter, for example:
1862 ## check-keys: myKey,myOtherKey
1865 ## @param metrics.extraEnvVars Array with extra environment variables to add to Redis® exporter
1872 ## Configure Container Security Context
1873 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1874 ## @param metrics.containerSecurityContext.enabled Enabled Redis® exporter containers' Security Context
1875 ## @param metrics.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1876 ## @param metrics.containerSecurityContext.runAsUser Set Redis® exporter containers' Security Context runAsUser
1877 ## @param metrics.containerSecurityContext.runAsGroup Set Redis® exporter containers' Security Context runAsGroup
1878 ## @param metrics.containerSecurityContext.runAsNonRoot Set Redis® exporter containers' Security Context runAsNonRoot
1879 ## @param metrics.containerSecurityContext.allowPrivilegeEscalation Set Redis® exporter containers' Security Context allowPrivilegeEscalation
1880 ## @param metrics.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
1881 ## @param metrics.containerSecurityContext.seccompProfile.type Set Redis® exporter containers' Security Context seccompProfile
1882 ## @param metrics.containerSecurityContext.capabilities.drop Set Redis® exporter containers' Security Context capabilities to drop
1884 containerSecurityContext:
1890 allowPrivilegeEscalation: false
1891 readOnlyRootFilesystem: true
1893 type: RuntimeDefault
1896 ## @param metrics.extraVolumes Optionally specify extra list of additional volumes for the Redis® metrics sidecar
1899 ## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis® metrics sidecar
1901 extraVolumeMounts: []
1902 ## Redis® exporter resource requests and limits
1903 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1904 ## @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).
1906 resourcesPreset: "nano"
1907 ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1918 ## @param metrics.podLabels Extra labels for Redis® exporter pods
1919 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1922 ## @param metrics.podAnnotations [object] Annotations for Redis® exporter pods
1923 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1926 prometheus.io/scrape: "true"
1927 prometheus.io/port: "9121"
1928 ## Redis® exporter service parameters
1931 ## @param metrics.service.enabled Create Service resource(s) for scraping metrics using PrometheusOperator ServiceMonitor, can be disabled when using a PodMonitor
1934 ## @param metrics.service.type Redis® exporter service type
1937 ## @param metrics.service.ports.http Redis® exporter service port
1941 ## @param metrics.service.externalTrafficPolicy Redis® exporter service external traffic policy
1942 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1944 externalTrafficPolicy: Cluster
1945 ## @param metrics.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1948 ## @param metrics.service.loadBalancerIP Redis® exporter service Load Balancer IP
1949 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1952 ## @param metrics.service.loadBalancerClass exporter service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1953 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1955 loadBalancerClass: ""
1956 ## @param metrics.service.loadBalancerSourceRanges Redis® exporter service Load Balancer sources
1957 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1959 ## loadBalancerSourceRanges:
1962 loadBalancerSourceRanges: []
1963 ## @param metrics.service.annotations Additional custom annotations for Redis® exporter service
1966 ## @param metrics.service.clusterIP Redis® exporter service Cluster IP
1969 ## Prometheus Service Monitor
1970 ## ref: https://github.com/coreos/prometheus-operator
1971 ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1974 ## @param metrics.serviceMonitor.port the service port to scrape metrics from
1977 ## @param metrics.serviceMonitor.enabled Create ServiceMonitor resource(s) for scraping metrics using PrometheusOperator
1980 ## @param metrics.serviceMonitor.namespace The namespace in which the ServiceMonitor will be created
1983 ## @param metrics.serviceMonitor.interval The interval at which metrics should be scraped
1986 ## @param metrics.serviceMonitor.scrapeTimeout The timeout after which the scrape is ended
1989 ## @param metrics.serviceMonitor.relabelings Metrics RelabelConfigs to apply to samples before scraping.
1992 ## @skip metrics.serviceMonitor.relabellings DEPRECATED: Use `metrics.serviceMonitor.relabelings` instead.
1995 ## @param metrics.serviceMonitor.metricRelabelings Metrics RelabelConfigs to apply to samples before ingestion.
1997 metricRelabelings: []
1998 ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
2001 ## @param metrics.serviceMonitor.additionalLabels Additional labels that can be used so ServiceMonitor resource(s) can be discovered by Prometheus
2003 additionalLabels: {}
2004 ## @param metrics.serviceMonitor.podTargetLabels Labels from the Kubernetes pod to be transferred to the created metrics
2007 ## @param metrics.serviceMonitor.sampleLimit Limit of how many samples should be scraped from every Pod
2010 ## @param metrics.serviceMonitor.targetLimit Limit of how many targets should be scraped
2013 ## @param metrics.serviceMonitor.additionalEndpoints Additional endpoints to scrape (e.g sentinel)
2015 additionalEndpoints: []
2016 # uncomment in order to scrape sentinel metrics, also to in order distinguish between Sentinel and Redis container metrics
2017 # add metricRelabelings with label like app=redis to main redis pod-monitor port
2020 # port: "http-metrics"
2022 # target: ["localhost:26379"]
2023 # metricRelabelings:
2024 # - targetLabel: "app"
2025 # replacement: "sentinel"
2026 ## Prometheus Pod Monitor
2027 ## ref: https://github.com/coreos/prometheus-operator
2028 ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#podmonitor
2031 ## @param metrics.podMonitor.port the pod port to scrape metrics from
2034 ## @param metrics.podMonitor.enabled Create PodMonitor resource(s) for scraping metrics using PrometheusOperator
2037 ## @param metrics.podMonitor.namespace The namespace in which the PodMonitor will be created
2040 ## @param metrics.podMonitor.interval The interval at which metrics should be scraped
2043 ## @param metrics.podMonitor.scrapeTimeout The timeout after which the scrape is ended
2046 ## @param metrics.podMonitor.relabelings Metrics RelabelConfigs to apply to samples before scraping.
2049 ## @skip metrics.podMonitor.relabellings DEPRECATED: Use `metrics.podMonitor.relabelings` instead.
2052 ## @param metrics.podMonitor.metricRelabelings Metrics RelabelConfigs to apply to samples before ingestion.
2054 metricRelabelings: []
2055 # - targetLabel: "app"
2056 # replacement: "redis"
2057 ## @param metrics.podMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
2060 ## @param metrics.podMonitor.additionalLabels Additional labels that can be used so PodMonitor resource(s) can be discovered by Prometheus
2062 additionalLabels: {}
2063 ## @param metrics.podMonitor.podTargetLabels Labels from the Kubernetes pod to be transferred to the created metrics
2066 ## @param metrics.podMonitor.sampleLimit Limit of how many samples should be scraped from every Pod
2069 ## @param metrics.podMonitor.targetLimit Limit of how many targets should be scraped
2072 ## @param metrics.podMonitor.additionalEndpoints Additional endpoints to scrape (e.g sentinel)
2074 additionalEndpoints: []
2079 # target: ["localhost:26379"]
2080 # metricRelabelings:
2081 # - targetLabel: "app"
2082 # replacement: "sentinel"
2083 ## Custom PrometheusRule to be defined
2084 ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
2087 ## @param metrics.prometheusRule.enabled Create a custom prometheusRule Resource for scraping metrics using PrometheusOperator
2090 ## @param metrics.prometheusRule.namespace The namespace in which the prometheusRule will be created
2093 ## @param metrics.prometheusRule.additionalLabels Additional labels for the prometheusRule
2095 additionalLabels: {}
2096 ## @param metrics.prometheusRule.rules Custom Prometheus rules
2099 ## - alert: RedisDown
2100 ## expr: redis_up{service="{{ template "common.names.fullname" . }}-metrics"} == 0
2105 ## summary: Redis® instance {{ "{{ $labels.instance }}" }} down
2106 ## description: Redis® instance {{ "{{ $labels.instance }}" }} is down
2107 ## - alert: RedisMemoryHigh
2109 ## redis_memory_used_bytes{service="{{ template "common.names.fullname" . }}-metrics"} * 100
2111 ## redis_memory_max_bytes{service="{{ template "common.names.fullname" . }}-metrics"}
2117 ## summary: Redis® instance {{ "{{ $labels.instance }}" }} is using too much memory
2119 ## Redis® instance {{ "{{ $labels.instance }}" }} is using {{ "{{ $value }}" }}% of its available memory.
2120 ## - alert: RedisKeyEviction
2122 ## increase(redis_evicted_keys_total{service="{{ template "common.names.fullname" . }}-metrics"}[5m]) > 0
2127 ## summary: Redis® instance {{ "{{ $labels.instance }}" }} has evicted keys
2129 ## Redis® instance {{ "{{ $labels.instance }}" }} has evicted {{ "{{ $value }}" }} keys in the last 5 minutes.
2132## @section Init Container Parameters
2135## 'volumePermissions' init container parameters
2136## Changes the owner and group of the persistent volume mount point to runAsUser:fsGroup values
2137## based on the *podSecurityContext/*containerSecurityContext parameters
2140 ## @param volumePermissions.enabled Enable init container that changes the owner/group of the PV mount point to `runAsUser:fsGroup`
2143 ## OS Shell + Utility image
2144 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
2145 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
2146 ## @skip volumePermissions.image.tag OS Shell + Utility image tag (immutable tags are recommended)
2147 ## @param volumePermissions.image.digest OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2148 ## @param volumePermissions.image.pullPolicy OS Shell + Utility image pull policy
2149 ## @param volumePermissions.image.pullSecrets OS Shell + Utility image pull secrets
2153 repository: chainguard-private/os-shell-iamguarded
2155 digest: sha256:7a2136e594a94e5c31b8b541ab6356eaa3c736fff9e1d4b88b8df821f0d2af75
2156 pullPolicy: IfNotPresent
2157 ## Optionally specify an array of imagePullSecrets.
2158 ## Secrets must be manually created in the namespace.
2159 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2162 ## - myRegistryKeySecretName
2165 ## Init container's resource requests and limits
2166 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2167 ## @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).
2169 resourcesPreset: "nano"
2170 ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2181 ## Init container Container Security Context
2182 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2183 ## @param volumePermissions.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2184 ## @param volumePermissions.containerSecurityContext.runAsUser Set init container's Security Context runAsUser
2185 ## NOTE: when runAsUser is set to special value "auto", init container will try to chown the
2186 ## data folder to auto-determined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
2187 ## "auto" is especially useful for OpenShift which has scc with dynamic user ids (and 0 is not allowed)
2189 containerSecurityContext:
2192 ## @param volumePermissions.extraEnvVars Array with extra environment variables to add to volume permissions init container.
2199## Kubectl InitContainer
2200## used by Sentinel to update the isMaster label on the Redis(TM) pods
2203 ## Iamguarded Kubectl image version
2204 ## @param kubectl.image.registry [default: REGISTRY_NAME] Kubectl image registry
2205 ## @param kubectl.image.repository [default: REPOSITORY_NAME/kubectl] Kubectl image repository
2206 ## @skip kubectl.image.tag Kubectl image tag (immutable tags are recommended), by default, using the current version
2207 ## @param kubectl.image.digest Kubectl image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2208 ## @param kubectl.image.pullPolicy Kubectl image pull policy
2209 ## @param kubectl.image.pullSecrets Kubectl pull secrets
2213 repository: chainguard-private/kubectl-iamguarded
2215 digest: sha256:6b824e76520e21f493d705e851a878413d83bf9e08575dd9ef720b56923ceef4
2216 ## Specify a imagePullPolicy
2217 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
2219 pullPolicy: IfNotPresent
2220 ## Optionally specify an array of imagePullSecrets.
2221 ## Secrets must be manually created in the namespace.
2222 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2225 ## - myRegistryKeySecretName
2228 ## @param kubectl.command kubectl command to execute
2230 command: ["/opt/iamguarded/scripts/kubectl-scripts/update-master-label.sh"]
2231 ## Configure Container Security Context
2232 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2233 ## @param kubectl.containerSecurityContext.enabled Enabled kubectl containers' Security Context
2234 ## @param kubectl.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2235 ## @param kubectl.containerSecurityContext.runAsUser Set kubectl containers' Security Context runAsUser
2236 ## @param kubectl.containerSecurityContext.runAsGroup Set kubectl containers' Security Context runAsGroup
2237 ## @param kubectl.containerSecurityContext.runAsNonRoot Set kubectl containers' Security Context runAsNonRoot
2238 ## @param kubectl.containerSecurityContext.allowPrivilegeEscalation Set kubectl containers' Security Context allowPrivilegeEscalation
2239 ## @param kubectl.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
2240 ## @param kubectl.containerSecurityContext.seccompProfile.type Set kubectl containers' Security Context seccompProfile
2241 ## @param kubectl.containerSecurityContext.capabilities.drop Set kubectl containers' Security Context capabilities to drop
2243 containerSecurityContext:
2249 allowPrivilegeEscalation: false
2250 readOnlyRootFilesystem: true
2252 type: RuntimeDefault
2255 ## Iamguarded Kubectl resource requests and limits
2256 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2257 ## @param kubectl.resources.limits The resources limits for the kubectl containers
2258 ## @param kubectl.resources.requests The requested resources for the kubectl containers
2263## init-sysctl container parameters
2264## used to perform sysctl operation to modify Kernel settings (needed sometimes to avoid warnings)
2267 ## @param sysctl.enabled Enable init container to modify Kernel settings
2270 ## OS Shell + Utility image
2271 ## @param sysctl.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
2272 ## @param sysctl.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
2273 ## @skip sysctl.image.tag OS Shell + Utility image tag (immutable tags are recommended)
2274 ## @param sysctl.image.digest OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2275 ## @param sysctl.image.pullPolicy OS Shell + Utility image pull policy
2276 ## @param sysctl.image.pullSecrets OS Shell + Utility image pull secrets
2280 repository: chainguard-private/os-shell-iamguarded
2282 digest: sha256:7a2136e594a94e5c31b8b541ab6356eaa3c736fff9e1d4b88b8df821f0d2af75
2283 pullPolicy: IfNotPresent
2284 ## Optionally specify an array of imagePullSecrets.
2285 ## Secrets must be manually created in the namespace.
2286 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2289 ## - myRegistryKeySecretName
2292 ## @param sysctl.command Override default init-sysctl container command (useful when using custom images)
2295 ## @param sysctl.mountHostSys Mount the host `/sys` folder to `/host-sys`
2298 ## Init container's resource requests and limits
2299 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2300 ## @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).
2302 resourcesPreset: "nano"
2303 ## @param sysctl.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2314## @section useExternalDNS Parameters
2316## @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.
2317## @param useExternalDNS.additionalAnnotations Extra annotations to be utilized when `external-dns` is enabled.
2318## @param useExternalDNS.annotationKey The annotation key utilized when `external-dns` is enabled. Setting this to `false` will disable annotations.
2319## @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.
2324 annotationKey: external-dns.alpha.kubernetes.io/
2325 additionalAnnotations: {}