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`)
21## @param global.defaultFips Default value for the FIPS configuration (allowed values: '', restricted, relaxed, off). Can be overridden by the 'fips' object
27 ## - myRegistryKeySecretName
30 defaultStorageClass: ""
32 ## Security parameters
35 ## @param global.security.allowInsecureImages Allows skipping image verification
36 allowInsecureImages: false
39 ## Compatibility adaptations for Kubernetes platforms
42 ## Compatibility adaptations for Openshift
45 ## @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)
47 adaptSecurityContext: auto
48 ## Configure FIPS mode: '', 'restricted', 'relaxed', 'off'
50 defaultFips: restricted
52## @section Common parameters
55## @param kubeVersion Override Kubernetes version
58## @param nameOverride String to partially override common.names.fullname
61## @param fullnameOverride String to fully override common.names.fullname
64## @param namespaceOverride String to fully override common.names.namespace
67## @param commonLabels Labels to add to all deployed objects
70## @param commonAnnotations Annotations to add to all deployed objects
73## @param configmapChecksumAnnotations Enable checksum annotations used to trigger rolling updates when ConfigMap(s) change
75configmapChecksumAnnotations: true
76## @param secretChecksumAnnotations Enable checksum annotations used to trigger rolling updates when Secret(s) change
78secretChecksumAnnotations: true
79## @param secretAnnotations Annotations to add to secret
82## @param clusterDomain Kubernetes cluster domain name
84clusterDomain: cluster.local
85## @param extraDeploy Array of extra objects to deploy with the release
88## @param useHostnames Use hostnames internally when announcing replication. If false, the hostname will be resolved to an IP address
91## @param nameResolutionThreshold Failure threshold for internal hostnames resolution
93nameResolutionThreshold: 5
94## @param nameResolutionTimeout Timeout seconds between probes for internal hostnames resolution
96nameResolutionTimeout: 5
97## Enable diagnostic mode in the deployment
100 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
103 ## @param diagnosticMode.command Command to override all containers in the deployment
107 ## @param diagnosticMode.args Args to override all containers in the deployment
111## @section Redis(R) Image parameters
114## Iamguarded Redis(R) image
115## @param image.registry [default: REGISTRY_NAME] Redis(R) image registry
116## @param image.repository [default: REPOSITORY_NAME/redis] Redis(R) image repository
117## @skip image.tag Redis(R) image tag (immutable tags are recommended)
118## @param image.digest Redis(R) image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
119## @param image.pullPolicy Redis(R) image pull policy
120## @param image.pullSecrets Redis(R) image pull secrets
121## @param image.debug Enable image debug mode
125 repository: chainguard-private/redis-server-iamguarded
128 ## Specify a imagePullPolicy
129 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
131 pullPolicy: IfNotPresent
132 ## Optionally specify an array of imagePullSecrets.
133 ## Secrets must be manually created in the namespace.
134 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
137 ## - myRegistryKeySecretName
143## @section Redis(R) common configuration parameters
146## @param architecture Redis(R) architecture. Allowed values: `standalone` or `replication`
148architecture: replication
149## Redis(R) Authentication parameters
152 ## @param auth.enabled Enable password authentication
155 ## @param auth.sentinel Enable authentication on sentinels too
158 ## @param auth.password Redis(R) password
159 ## Defaults to a random 10-character alphanumeric string if not set
162 ## @param auth.existingSecret The name of an existing secret with Redis(R) credentials
163 ## NOTE: When it's set, the previous `auth.password` parameter is ignored
166 ## @param auth.existingSecretPasswordKey Password key to be retrieved from existing secret
167 ## NOTE: ignored unless `auth.existingSecret` parameter is set
169 existingSecretPasswordKey: ""
170 ## @param auth.usePasswordFiles Mount credentials as files instead of using an environment variable
172 usePasswordFiles: true
173 ## @param auth.usePasswordFileFromSecret Mount password file from secret
175 usePasswordFileFromSecret: true
176 ## Redis ACL restricts connections by limiting commands and key access with auth management.
177 ## ref: https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/
180 ## @param auth.acl.enabled Enables the support of the Redis ACL system
183 ## @param auth.acl.sentinel Enables the support of the Redis ACL system for Sentinel Nodes
186 ## @param auth.acl.users A list of the configured users in the Redis ACL system
190 ## - username: "my-user"
191 ## password: "mypassword"
197 ## @param auth.acl.userSecret Name of the Secret, containing user credentials for ACL users. Keys must match usernames.
199## @param commonConfiguration [string] Common configuration to be added into the ConfigMap
200## ref: https://redis.io/topics/config
202commonConfiguration: |-
203 # Enable ReJSON y Redisearch
204 loadmodule /opt/iamguarded/redis/lib/redis/modules/redisearch.so
205 loadmodule /opt/iamguarded/redis/lib/redis/modules/rejson.so
206 # Enable AOF https://redis.io/topics/persistence#append-only-file
208 # Disable RDB persistence, AOF persistence already enabled.
210## @param existingConfigmap The name of an existing ConfigMap with your custom configuration for Redis(R) nodes
213## @section Redis(R) master configuration parameters
216 ## @param master.count Number of Redis(R) master instances to deploy (experimental, requires additional configuration)
219 ## @param master.revisionHistoryLimit The number of old history to retain to allow rollback
220 ## NOTE: Explicitly setting this field to 0, will result in cleaning up all the history, breaking ability to rollback
221 revisionHistoryLimit: 10
222 ## @param master.configuration Configuration for Redis(R) master nodes
223 ## ref: https://redis.io/topics/config
226 ## @param master.disableCommands Array with Redis(R) commands to disable on master nodes
227 ## Commands will be completely disabled by renaming each to an empty string.
228 ## ref: https://redis.io/topics/security#disabling-of-specific-commands
233 ## @param master.command Override default container command (useful when using custom images)
236 ## @param master.args Override default container args (useful when using custom images)
239 ## @param master.enableServiceLinks Whether information about services should be injected into pod's environment variable
241 enableServiceLinks: true
242 ## @param master.preExecCmds Additional commands to run prior to starting Redis(R) master
245 ## @param master.extraFlags Array with additional command line flags for Redis(R) master
248 ## - "--maxmemory-policy volatile-ttl"
249 ## - "--repl-backlog-size 1024mb"
252 ## @param master.extraEnvVars Array with extra environment variables to add to Redis(R) master nodes
259 ## @param master.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis(R) master nodes
262 ## @param master.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis(R) master nodes
264 extraEnvVarsSecret: ""
265 ## @param master.containerPorts.redis Container port to open on Redis(R) master nodes
269 ## Configure extra options for Redis(R) containers' liveness and readiness probes
270 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
271 ## @param master.startupProbe.enabled Enable startupProbe on Redis(R) master nodes
272 ## @param master.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
273 ## @param master.startupProbe.periodSeconds Period seconds for startupProbe
274 ## @param master.startupProbe.timeoutSeconds Timeout seconds for startupProbe
275 ## @param master.startupProbe.failureThreshold Failure threshold for startupProbe
276 ## @param master.startupProbe.successThreshold Success threshold for startupProbe
280 initialDelaySeconds: 20
285 ## @param master.livenessProbe.enabled Enable livenessProbe on Redis(R) master nodes
286 ## @param master.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
287 ## @param master.livenessProbe.periodSeconds Period seconds for livenessProbe
288 ## @param master.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
289 ## @param master.livenessProbe.failureThreshold Failure threshold for livenessProbe
290 ## @param master.livenessProbe.successThreshold Success threshold for livenessProbe
294 initialDelaySeconds: 20
299 ## @param master.readinessProbe.enabled Enable readinessProbe on Redis(R) master nodes
300 ## @param master.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
301 ## @param master.readinessProbe.periodSeconds Period seconds for readinessProbe
302 ## @param master.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
303 ## @param master.readinessProbe.failureThreshold Failure threshold for readinessProbe
304 ## @param master.readinessProbe.successThreshold Success threshold for readinessProbe
308 initialDelaySeconds: 20
313 ## @param master.customStartupProbe Custom startupProbe that overrides the default one
315 customStartupProbe: {}
316 ## @param master.customLivenessProbe Custom livenessProbe that overrides the default one
318 customLivenessProbe: {}
319 ## @param master.customReadinessProbe Custom readinessProbe that overrides the default one
321 customReadinessProbe: {}
322 ## Redis(R) master resource requests and limits
323 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
324 ## @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).
326 resourcesPreset: "nano"
327 ## @param master.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
338 ## @param master.fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
342 ## Configure Pods Security Context
343 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
344 ## @param master.podSecurityContext.enabled Enabled Redis(R) master pods' Security Context
345 ## @param master.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
346 ## @param master.podSecurityContext.sysctls Set kernel settings using the sysctl interface
347 ## @param master.podSecurityContext.supplementalGroups Set filesystem extra groups
348 ## @param master.podSecurityContext.fsGroup Set Redis(R) master pod's Security Context fsGroup
352 fsGroupChangePolicy: Always
354 supplementalGroups: []
356 ## Configure Container Security Context
357 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
358 ## @param master.containerSecurityContext.enabled Enabled Redis(R) master containers' Security Context
359 ## @param master.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
360 ## @param master.containerSecurityContext.runAsUser Set Redis(R) master containers' Security Context runAsUser
361 ## @param master.containerSecurityContext.runAsGroup Set Redis(R) master containers' Security Context runAsGroup
362 ## @param master.containerSecurityContext.runAsNonRoot Set Redis(R) master containers' Security Context runAsNonRoot
363 ## @param master.containerSecurityContext.allowPrivilegeEscalation Is it possible to escalate Redis(R) pod(s) privileges
364 ## @param master.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
365 ## @param master.containerSecurityContext.seccompProfile.type Set Redis(R) master containers' Security Context seccompProfile
366 ## @param master.containerSecurityContext.capabilities.drop Set Redis(R) master containers' Security Context capabilities to drop
368 containerSecurityContext:
374 allowPrivilegeEscalation: false
375 readOnlyRootFilesystem: true
380 ## @param master.kind Use either Deployment, StatefulSet (default) or DaemonSet
381 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
384 ## @param master.schedulerName Alternate scheduler for Redis(R) master pods
385 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
388 ## @param master.runtimeClassName Name of the runtime class to be used by master pod(s)
391 ## @param master.updateStrategy.type Redis(R) master statefulset strategy type
392 ## @skip master.updateStrategy.rollingUpdate
393 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
397 ## Can be set to RollingUpdate, OnDelete (statefulset), Recreate (deployment)
400 ## @param master.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
403 ## @param master.priorityClassName Redis(R) master pods' priorityClassName
405 priorityClassName: ""
406 ## @param master.automountServiceAccountToken Mount Service Account token in pod
408 automountServiceAccountToken: false
409 ## @param master.hostAliases Redis(R) master pods host aliases
410 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
413 ## @param master.podLabels Extra labels for Redis(R) master pods
414 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
417 ## @param master.podAnnotations Annotations for Redis(R) master pods
418 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
421 ## @param master.shareProcessNamespace Share a single process namespace between all of the containers in Redis(R) master pods
422 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
424 shareProcessNamespace: false
425 ## @param master.podAffinityPreset Pod affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
426 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
428 podAffinityPreset: ""
429 ## @param master.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
430 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
432 podAntiAffinityPreset: soft
433 ## Node master.affinity preset
434 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
437 ## @param master.nodeAffinityPreset.type Node affinity preset type. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
440 ## @param master.nodeAffinityPreset.key Node label key to match. Ignored if `master.affinity` is set
443 ## @param master.nodeAffinityPreset.values Node label values to match. Ignored if `master.affinity` is set
450 ## @param master.affinity Affinity for Redis(R) master pods assignment
451 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
452 ## NOTE: `master.podAffinityPreset`, `master.podAntiAffinityPreset`, and `master.nodeAffinityPreset` will be ignored when it's set
455 ## @param master.nodeSelector Node labels for Redis(R) master pods assignment
456 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
459 ## @param master.tolerations Tolerations for Redis(R) master pods assignment
460 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
463 ## @param master.topologySpreadConstraints Spread Constraints for Redis(R) master pod assignment
464 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
466 ## topologySpreadConstraints:
469 ## whenUnsatisfiable: DoNotSchedule
471 topologySpreadConstraints: []
472 ## @param master.dnsPolicy DNS Policy for Redis(R) master pod
473 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
475 ## dnsPolicy: ClusterFirst
478 ## @param master.dnsConfig DNS Configuration for Redis(R) master pod
479 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
485 ## - name: single-request-reopen
488 ## @param master.lifecycleHooks for the Redis(R) master container(s) to automate configuration before or after startup
491 ## @param master.extraVolumes Optionally specify extra list of additional volumes for the Redis(R) master pod(s)
494 ## @param master.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis(R) master container(s)
496 extraVolumeMounts: []
497 ## @param master.sidecars Add additional sidecar containers to the Redis(R) master pod(s)
500 ## - name: your-image-name
502 ## imagePullPolicy: Always
505 ## containerPort: 1234
508 ## @param master.initContainers Add additional init containers to the Redis(R) master pod(s)
509 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
512 ## - name: your-image-name
514 ## imagePullPolicy: Always
515 ## command: ['/bin/bash', '-ec', 'echo "hello world"']
518 ## Persistence parameters
519 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
522 ## @param master.persistence.enabled Enable persistence on Redis(R) master nodes using Persistent Volume Claims
525 ## @param master.persistence.medium Provide a medium for `emptyDir` volumes.
528 ## @param master.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
531 ## @param master.persistence.path The path the volume will be mounted at on Redis(R) master containers
532 ## NOTE: Useful when using different Redis(R) images
535 ## @param master.persistence.subPath The subdirectory of the volume to mount on Redis(R) master containers
536 ## NOTE: Useful in dev environments
539 ## @param master.persistence.subPathExpr Used to construct the subPath subdirectory of the volume to mount on Redis(R) master containers
542 ## @param master.persistence.storageClass Persistent Volume storage class
543 ## If defined, storageClassName: <storageClass>
544 ## If set to "-", storageClassName: "", which disables dynamic provisioning
545 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
548 ## @param master.persistence.accessModes Persistent Volume access modes
552 ## @param master.persistence.size Persistent Volume size
555 ## @param master.persistence.annotations Additional custom annotations for the PVC
558 ## @param master.persistence.labels Additional custom labels for the PVC
561 ## @param master.persistence.selector Additional labels to match for the PVC
568 ## @param master.persistence.dataSource Custom PVC data source
571 ## @param master.persistence.existingClaim Use a existing PVC which must be created manually before bound
572 ## NOTE: requires master.persistence.enabled: true
575 ## persistentVolumeClaimRetentionPolicy
576 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
577 ## @param master.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
578 ## @param master.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
579 ## @param master.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
581 persistentVolumeClaimRetentionPolicy:
585 ## Redis(R) master service parameters
588 ## @param master.service.type Redis(R) master service type
591 ## @param master.service.portNames.redis Redis(R) master service port name
595 ## @param master.service.ports.redis Redis(R) master service port
599 ## @param master.service.nodePorts.redis Node port for Redis(R) master
600 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
601 ## NOTE: choose port between <30000-32767>
605 ## @param master.service.externalTrafficPolicy Redis(R) master service external traffic policy
606 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
608 externalTrafficPolicy: Cluster
609 ## @param master.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
612 ## @param master.service.internalTrafficPolicy Redis(R) master service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)
613 ## ref: https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/
615 internalTrafficPolicy: Cluster
616 ## @param master.service.clusterIP Redis(R) master service Cluster IP
619 ## @param master.service.loadBalancerIP Redis(R) master service Load Balancer IP
620 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
623 ## @param master.service.loadBalancerClass master service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
624 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
626 loadBalancerClass: ""
627 ## @param master.service.loadBalancerSourceRanges Redis(R) master service Load Balancer sources
628 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
630 ## loadBalancerSourceRanges:
633 loadBalancerSourceRanges: []
634 ## @param master.service.externalIPs Redis(R) master service External IPs
635 ## https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
642 ## @param master.service.annotations Additional custom annotations for Redis(R) master service
645 ## @param master.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
646 ## If "ClientIP", consecutive client requests will be directed to the same Pod
647 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
649 sessionAffinity: None
650 ## @param master.service.sessionAffinityConfig Additional settings for the sessionAffinity. Ignored if `master.service.sessionAffinity` is `None`
651 ## sessionAffinityConfig:
653 ## timeoutSeconds: 300
655 sessionAffinityConfig: {}
656 ## @param master.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-master pods
658 terminationGracePeriodSeconds: 30
659 ## ServiceAccount configuration
662 ## @param master.serviceAccount.create Specifies whether a ServiceAccount should be created
665 ## @param master.serviceAccount.name The name of the ServiceAccount to use.
666 ## If not set and create is true, a name is generated using the common.names.fullname template
669 ## @param master.serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
670 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
672 automountServiceAccountToken: false
673 ## @param master.serviceAccount.annotations Additional custom annotations for the ServiceAccount
676 ## Pod Disruption Budget configuration
677 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
678 ## @param master.pdb.create Enable/disable a Pod Disruption Budget creation
679 ## @param master.pdb.minAvailable [object] Minimum number/percentage of pods that should remain scheduled
680 ## @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.
686 ## @param master.extraPodSpec Optionally specify extra PodSpec for the Redis(R) master pod(s)
689 ## @param master.annotations Additional custom annotations for Redis(R) Master resource
692## @section Redis(R) replicas configuration parameters
695 ## @param replica.kind Use either DaemonSet or StatefulSet (default)
696 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
699 ## @param replica.replicaCount Number of Redis(R) replicas to deploy
702 ## @param replica.revisionHistoryLimit The number of old history to retain to allow rollback
703 ## NOTE: Explicitly setting this field to 0, will result in cleaning up all the history, breaking ability to rollback
704 revisionHistoryLimit: 10
705 ## @param replica.configuration Configuration for Redis(R) replicas nodes
706 ## ref: https://redis.io/topics/config
709 ## @param replica.disableCommands Array with Redis(R) commands to disable on replicas nodes
710 ## Commands will be completely disabled by renaming each to an empty string.
711 ## ref: https://redis.io/topics/security#disabling-of-specific-commands
716 ## @param replica.command Override default container command (useful when using custom images)
719 ## @param replica.args Override default container args (useful when using custom images)
722 ## @param replica.enableServiceLinks Whether information about services should be injected into pod's environment variable
724 enableServiceLinks: true
725 ## @param replica.preExecCmds Additional commands to run prior to starting Redis(R) replicas
728 ## @param replica.extraFlags Array with additional command line flags for Redis(R) replicas
731 ## - "--maxmemory-policy volatile-ttl"
732 ## - "--repl-backlog-size 1024mb"
735 ## @param replica.extraEnvVars Array with extra environment variables to add to Redis(R) replicas nodes
742 ## @param replica.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis(R) replicas nodes
745 ## @param replica.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis(R) replicas nodes
747 extraEnvVarsSecret: ""
748 ## @param replica.externalMaster.enabled Use external master for bootstrapping
749 ## @param replica.externalMaster.host External master host to bootstrap from
750 ## @param replica.externalMaster.port Port for Redis service external master host
756 ## @param replica.containerPorts.redis Container port to open on Redis(R) replicas nodes
760 ## Configure extra options for Redis(R) containers' liveness and readiness probes
761 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
762 ## @param replica.startupProbe.enabled Enable startupProbe on Redis(R) replicas nodes
763 ## @param replica.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
764 ## @param replica.startupProbe.periodSeconds Period seconds for startupProbe
765 ## @param replica.startupProbe.timeoutSeconds Timeout seconds for startupProbe
766 ## @param replica.startupProbe.failureThreshold Failure threshold for startupProbe
767 ## @param replica.startupProbe.successThreshold Success threshold for startupProbe
771 initialDelaySeconds: 10
776 ## @param replica.livenessProbe.enabled Enable livenessProbe on Redis(R) replicas nodes
777 ## @param replica.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
778 ## @param replica.livenessProbe.periodSeconds Period seconds for livenessProbe
779 ## @param replica.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
780 ## @param replica.livenessProbe.failureThreshold Failure threshold for livenessProbe
781 ## @param replica.livenessProbe.successThreshold Success threshold for livenessProbe
785 initialDelaySeconds: 20
790 ## @param replica.readinessProbe.enabled Enable readinessProbe on Redis(R) replicas nodes
791 ## @param replica.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
792 ## @param replica.readinessProbe.periodSeconds Period seconds for readinessProbe
793 ## @param replica.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
794 ## @param replica.readinessProbe.failureThreshold Failure threshold for readinessProbe
795 ## @param replica.readinessProbe.successThreshold Success threshold for readinessProbe
799 initialDelaySeconds: 20
804 ## @param replica.customStartupProbe Custom startupProbe that overrides the default one
806 customStartupProbe: {}
807 ## @param replica.customLivenessProbe Custom livenessProbe that overrides the default one
809 customLivenessProbe: {}
810 ## @param replica.customReadinessProbe Custom readinessProbe that overrides the default one
812 customReadinessProbe: {}
813 ## Redis(R) replicas resource requests and limits
814 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
815 ## @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).
817 resourcesPreset: "nano"
818 ## @param replica.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
829 ## @param replica.fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
833 ## Configure Pods Security Context
834 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
835 ## @param replica.podSecurityContext.enabled Enabled Redis(R) replicas pods' Security Context
836 ## @param replica.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
837 ## @param replica.podSecurityContext.sysctls Set kernel settings using the sysctl interface
838 ## @param replica.podSecurityContext.supplementalGroups Set filesystem extra groups
839 ## @param replica.podSecurityContext.fsGroup Set Redis(R) replicas pod's Security Context fsGroup
843 fsGroupChangePolicy: Always
845 supplementalGroups: []
847 ## Configure Container Security Context
848 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
849 ## @param replica.containerSecurityContext.enabled Enabled Redis(R) replicas containers' Security Context
850 ## @param replica.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
851 ## @param replica.containerSecurityContext.runAsUser Set Redis(R) replicas containers' Security Context runAsUser
852 ## @param replica.containerSecurityContext.runAsGroup Set Redis(R) replicas containers' Security Context runAsGroup
853 ## @param replica.containerSecurityContext.runAsNonRoot Set Redis(R) replicas containers' Security Context runAsNonRoot
854 ## @param replica.containerSecurityContext.allowPrivilegeEscalation Set Redis(R) replicas pod's Security Context allowPrivilegeEscalation
855 ## @param replica.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
856 ## @param replica.containerSecurityContext.seccompProfile.type Set Redis(R) replicas containers' Security Context seccompProfile
857 ## @param replica.containerSecurityContext.capabilities.drop Set Redis(R) replicas containers' Security Context capabilities to drop
859 containerSecurityContext:
865 allowPrivilegeEscalation: false
866 readOnlyRootFilesystem: true
871 ## @param replica.schedulerName Alternate scheduler for Redis(R) replicas pods
872 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
875 ## @param replica.runtimeClassName Name of the runtime class to be used by replica pod(s)
878 ## @param replica.updateStrategy.type Redis(R) replicas statefulset strategy type
879 ## @skip replica.updateStrategy.rollingUpdate
880 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
884 ## Can be set to RollingUpdate, OnDelete (statefulset), Recreate (deployment)
887 ## @param replica.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
890 ## @param replica.priorityClassName Redis(R) replicas pods' priorityClassName
892 priorityClassName: ""
893 ## @param replica.podManagementPolicy podManagementPolicy to manage scaling operation of %%MAIN_CONTAINER_NAME%% pods
894 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
896 podManagementPolicy: ""
897 ## @param replica.automountServiceAccountToken Mount Service Account token in pod
899 automountServiceAccountToken: false
900 ## @param replica.hostAliases Redis(R) replicas pods host aliases
901 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
904 ## @param replica.podLabels Extra labels for Redis(R) replicas pods
905 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
908 ## @param replica.podAnnotations Annotations for Redis(R) replicas pods
909 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
912 ## @param replica.shareProcessNamespace Share a single process namespace between all of the containers in Redis(R) replicas pods
913 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
915 shareProcessNamespace: false
916 ## @param replica.podAffinityPreset Pod affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
917 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
919 podAffinityPreset: ""
920 ## @param replica.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
921 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
923 podAntiAffinityPreset: soft
924 ## Node affinity preset
925 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
928 ## @param replica.nodeAffinityPreset.type Node affinity preset type. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
931 ## @param replica.nodeAffinityPreset.key Node label key to match. Ignored if `replica.affinity` is set
934 ## @param replica.nodeAffinityPreset.values Node label values to match. Ignored if `replica.affinity` is set
941 ## @param replica.affinity Affinity for Redis(R) replicas pods assignment
942 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
943 ## NOTE: `replica.podAffinityPreset`, `replica.podAntiAffinityPreset`, and `replica.nodeAffinityPreset` will be ignored when it's set
946 ## @param replica.nodeSelector Node labels for Redis(R) replicas pods assignment
947 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
950 ## @param replica.tolerations Tolerations for Redis(R) replicas pods assignment
951 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
954 ## @param replica.topologySpreadConstraints Spread Constraints for Redis(R) replicas pod assignment
955 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
957 ## topologySpreadConstraints:
960 ## whenUnsatisfiable: DoNotSchedule
962 topologySpreadConstraints: []
963 ## @param replica.dnsPolicy DNS Policy for Redis(R) replica pods
964 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
966 ## dnsPolicy: ClusterFirst
969 ## @param replica.dnsConfig DNS Configuration for Redis(R) replica pods
970 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
976 ## - name: single-request-reopen
979 ## @param replica.lifecycleHooks for the Redis(R) replica container(s) to automate configuration before or after startup
982 ## @param replica.extraVolumes Optionally specify extra list of additional volumes for the Redis(R) replicas pod(s)
985 ## @param replica.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis(R) replicas container(s)
987 extraVolumeMounts: []
988 ## @param replica.sidecars Add additional sidecar containers to the Redis(R) replicas pod(s)
991 ## - name: your-image-name
993 ## imagePullPolicy: Always
996 ## containerPort: 1234
999 ## @param replica.initContainers Add additional init containers to the Redis(R) replicas pod(s)
1000 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1003 ## - name: your-image-name
1004 ## image: your-image
1005 ## imagePullPolicy: Always
1006 ## command: ['/bin/bash', '-c', 'echo "hello world"']
1009 ## Persistence Parameters
1010 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1013 ## @param replica.persistence.enabled Enable persistence on Redis(R) replicas nodes using Persistent Volume Claims
1016 ## @param replica.persistence.medium Provide a medium for `emptyDir` volumes.
1019 ## @param replica.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
1022 ## @param replica.persistence.path The path the volume will be mounted at on Redis(R) replicas containers
1023 ## NOTE: Useful when using different Redis(R) images
1026 ## @param replica.persistence.subPath The subdirectory of the volume to mount on Redis(R) replicas containers
1027 ## NOTE: Useful in dev environments
1030 ## @param replica.persistence.subPathExpr Used to construct the subPath subdirectory of the volume to mount on Redis(R) replicas containers
1033 ## @param replica.persistence.storageClass Persistent Volume storage class
1034 ## If defined, storageClassName: <storageClass>
1035 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1036 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
1039 ## @param replica.persistence.accessModes Persistent Volume access modes
1043 ## @param replica.persistence.size Persistent Volume size
1046 ## @param replica.persistence.annotations Additional custom annotations for the PVC
1049 ## @param replica.persistence.labels Additional custom labels for the PVC
1052 ## @param replica.persistence.selector Additional labels to match for the PVC
1059 ## @param replica.persistence.dataSource Custom PVC data source
1062 ## @param replica.persistence.existingClaim Use a existing PVC which must be created manually before bound
1063 ## NOTE: requires replica.persistence.enabled: true
1066 ## persistentVolumeClaimRetentionPolicy
1067 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1068 ## @param replica.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
1069 ## @param replica.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1070 ## @param replica.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1072 persistentVolumeClaimRetentionPolicy:
1076 ## Redis(R) replicas service parameters
1079 ## @param replica.service.type Redis(R) replicas service type
1082 ## @param replica.service.ports.redis Redis(R) replicas service port
1086 ## @param replica.service.nodePorts.redis Node port for Redis(R) replicas
1087 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1088 ## NOTE: choose port between <30000-32767>
1092 ## @param replica.service.externalTrafficPolicy Redis(R) replicas service external traffic policy
1093 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1095 externalTrafficPolicy: Cluster
1096 ## @param replica.service.internalTrafficPolicy Redis(R) replicas service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)
1097 ## ref: https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/
1099 internalTrafficPolicy: Cluster
1100 ## @param replica.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1103 ## @param replica.service.clusterIP Redis(R) replicas service Cluster IP
1106 ## @param replica.service.loadBalancerIP Redis(R) replicas service Load Balancer IP
1107 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1110 ## @param replica.service.loadBalancerClass replicas service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1111 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1113 loadBalancerClass: ""
1114 ## @param replica.service.loadBalancerSourceRanges Redis(R) replicas service Load Balancer sources
1115 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1117 ## loadBalancerSourceRanges:
1120 loadBalancerSourceRanges: []
1121 ## @param replica.service.annotations Additional custom annotations for Redis(R) replicas service
1124 ## @param replica.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1125 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1126 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1128 sessionAffinity: None
1129 ## @param replica.service.sessionAffinityConfig Additional settings for the sessionAffinity. Ignored if `replica.service.sessionAffinity` is `None`
1130 ## sessionAffinityConfig:
1132 ## timeoutSeconds: 300
1134 sessionAffinityConfig: {}
1135 ## @param replica.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-replicas pods
1137 terminationGracePeriodSeconds: 30
1138 ## Autoscaling configuration
1141 ## @param replica.autoscaling.enabled Enable replica autoscaling settings
1144 ## @param replica.autoscaling.minReplicas Minimum replicas for the pod autoscaling
1147 ## @param replica.autoscaling.maxReplicas Maximum replicas for the pod autoscaling
1150 ## @param replica.autoscaling.targetCPU Percentage of CPU to consider when autoscaling
1153 ## @param replica.autoscaling.targetMemory Percentage of Memory to consider when autoscaling
1156 ## ServiceAccount configuration
1159 ## @param replica.serviceAccount.create Specifies whether a ServiceAccount should be created
1162 ## @param replica.serviceAccount.name The name of the ServiceAccount to use.
1163 ## If not set and create is true, a name is generated using the common.names.fullname template
1166 ## @param replica.serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
1167 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
1169 automountServiceAccountToken: false
1170 ## @param replica.serviceAccount.annotations Additional custom annotations for the ServiceAccount
1173 ## Pod Disruption Budget configuration
1174 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1175 ## @param replica.pdb.create Enable/disable a Pod Disruption Budget creation
1176 ## @param replica.pdb.minAvailable [object] Minimum number/percentage of pods that should remain scheduled
1177 ## @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.
1183 ## @param replica.extraPodSpec Optionally specify extra PodSpec for the Redis(R) replicas pod(s)
1186 ## @param replica.annotations Additional custom annotations for Redis(R) replicas resource
1189## @section Redis(R) Sentinel configuration parameters
1193 ## @param sentinel.enabled Use Redis(R) Sentinel on Redis(R) pods.
1194 ## IMPORTANT: this will disable the master and replicas services and
1195 ## create a single Redis(R) service exposing both the Redis and Sentinel ports
1198 ## Iamguarded Redis(R) Sentinel image version
1199 ## @param sentinel.image.registry [default: REGISTRY_NAME] Redis(R) Sentinel image registry
1200 ## @param sentinel.image.repository [default: REPOSITORY_NAME/redis-sentinel] Redis(R) Sentinel image repository
1201 ## @skip sentinel.image.tag Redis(R) Sentinel image tag (immutable tags are recommended)
1202 ## @param sentinel.image.digest Redis(R) Sentinel image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1203 ## @param sentinel.image.pullPolicy Redis(R) Sentinel image pull policy
1204 ## @param sentinel.image.pullSecrets Redis(R) Sentinel image pull secrets
1205 ## @param sentinel.image.debug Enable image debug mode
1209 repository: chainguard-private/redis-sentinel-iamguarded
1212 ## Specify a imagePullPolicy
1213 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1215 pullPolicy: IfNotPresent
1216 ## Optionally specify an array of imagePullSecrets.
1217 ## Secrets must be manually created in the namespace.
1218 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1221 ## - myRegistryKeySecretName
1224 ## Enable debug mode
1227 ## @param sentinel.annotations Additional custom annotations for Redis(R) Sentinel resource
1230 ## @param sentinel.masterSet Master set name
1233 ## @param sentinel.quorum Sentinel Quorum
1236 ## @param sentinel.getMasterTimeout Amount of time to allow before get_sentinel_master_info() times out.
1238 getMasterTimeout: 90
1239 ## @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.
1240 ## 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.
1241 ## NOTE: This feature requires a "downAfterMilliseconds" value less or equal to 2000.
1243 automateClusterRecovery: false
1244 ## @param sentinel.redisShutdownWaitFailover Whether the Redis(R) master container waits for the failover at shutdown (in addition to the Redis(R) Sentinel container).
1246 redisShutdownWaitFailover: true
1247 ## Sentinel timing restrictions
1248 ## @param sentinel.downAfterMilliseconds Timeout for detecting a Redis(R) node is down
1249 ## @param sentinel.failoverTimeout Timeout for performing a election failover
1251 downAfterMilliseconds: 60000
1252 failoverTimeout: 180000
1253 ## @param sentinel.parallelSyncs Number of replicas that can be reconfigured in parallel to use the new master after a failover
1256 ## @param sentinel.replicaSyncCheck Wait for data full sync on replicas before marking them as ready (experimental)
1258 replicaSyncCheck: false
1259 ## @param sentinel.configuration Configuration for Redis(R) Sentinel nodes
1260 ## ref: https://redis.io/topics/sentinel
1263 ## @param sentinel.command Override default container command (useful when using custom images)
1266 ## @param sentinel.args Override default container args (useful when using custom images)
1269 ## @param sentinel.enableServiceLinks Whether information about services should be injected into pod's environment variable
1271 enableServiceLinks: true
1272 ## @param sentinel.preExecCmds Additional commands to run prior to starting Redis(R) Sentinel
1275 ## @param sentinel.extraEnvVars Array with extra environment variables to add to Redis(R) Sentinel nodes
1282 ## @param sentinel.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis(R) Sentinel nodes
1285 ## @param sentinel.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis(R) Sentinel nodes
1287 extraEnvVarsSecret: ""
1288 ## @param sentinel.externalMaster.enabled Use external master for bootstrapping
1289 ## @param sentinel.externalMaster.host External master host to bootstrap from
1290 ## @param sentinel.externalMaster.port Port for Redis service external master host
1296 ## @param sentinel.containerPorts.sentinel Container port to open on Redis(R) Sentinel nodes
1300 ## Configure extra options for Redis(R) containers' liveness and readiness probes
1301 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1302 ## @param sentinel.startupProbe.enabled Enable startupProbe on Redis(R) Sentinel nodes
1303 ## @param sentinel.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1304 ## @param sentinel.startupProbe.periodSeconds Period seconds for startupProbe
1305 ## @param sentinel.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1306 ## @param sentinel.startupProbe.failureThreshold Failure threshold for startupProbe
1307 ## @param sentinel.startupProbe.successThreshold Success threshold for startupProbe
1311 initialDelaySeconds: 10
1315 failureThreshold: 22
1316 ## @param sentinel.livenessProbe.enabled Enable livenessProbe on Redis(R) Sentinel nodes
1317 ## @param sentinel.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1318 ## @param sentinel.livenessProbe.periodSeconds Period seconds for livenessProbe
1319 ## @param sentinel.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1320 ## @param sentinel.livenessProbe.failureThreshold Failure threshold for livenessProbe
1321 ## @param sentinel.livenessProbe.successThreshold Success threshold for livenessProbe
1325 initialDelaySeconds: 20
1330 ## @param sentinel.readinessProbe.enabled Enable readinessProbe on Redis(R) Sentinel nodes
1331 ## @param sentinel.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1332 ## @param sentinel.readinessProbe.periodSeconds Period seconds for readinessProbe
1333 ## @param sentinel.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1334 ## @param sentinel.readinessProbe.failureThreshold Failure threshold for readinessProbe
1335 ## @param sentinel.readinessProbe.successThreshold Success threshold for readinessProbe
1339 initialDelaySeconds: 20
1344 ## @param sentinel.customStartupProbe Custom startupProbe that overrides the default one
1346 customStartupProbe: {}
1347 ## @param sentinel.customLivenessProbe Custom livenessProbe that overrides the default one
1349 customLivenessProbe: {}
1350 ## @param sentinel.customReadinessProbe Custom readinessProbe that overrides the default one
1352 customReadinessProbe: {}
1353 ## Persistence parameters
1354 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1357 ## @param sentinel.persistence.enabled Enable persistence on Redis(R) sentinel nodes using Persistent Volume Claims (Experimental)
1360 ## @param sentinel.persistence.storageClass Persistent Volume storage class
1361 ## If defined, storageClassName: <storageClass>
1362 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1363 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
1366 ## @param sentinel.persistence.accessModes Persistent Volume access modes
1370 ## @param sentinel.persistence.size Persistent Volume size
1373 ## @param sentinel.persistence.annotations Additional custom annotations for the PVC
1376 ## @param sentinel.persistence.labels Additional custom labels for the PVC
1379 ## @param sentinel.persistence.selector Additional labels to match for the PVC
1386 ## @param sentinel.persistence.dataSource Custom PVC data source
1389 ## @param sentinel.persistence.medium Provide a medium for `emptyDir` volumes.
1392 ## @param sentinel.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
1395 ## persistentVolumeClaimRetentionPolicy
1396 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1397 ## @param sentinel.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
1398 ## @param sentinel.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1399 ## @param sentinel.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1401 persistentVolumeClaimRetentionPolicy:
1405 ## Redis(R) Sentinel resource requests and limits
1406 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1407 ## @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).
1409 resourcesPreset: "nano"
1410 ## @param sentinel.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1421 ## @param sentinel.fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
1425 ## Configure Container Security Context
1426 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1427 ## @param sentinel.containerSecurityContext.enabled Enabled Redis(R) Sentinel containers' Security Context
1428 ## @param sentinel.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1429 ## @param sentinel.containerSecurityContext.runAsUser Set Redis(R) Sentinel containers' Security Context runAsUser
1430 ## @param sentinel.containerSecurityContext.runAsGroup Set Redis(R) Sentinel containers' Security Context runAsGroup
1431 ## @param sentinel.containerSecurityContext.runAsNonRoot Set Redis(R) Sentinel containers' Security Context runAsNonRoot
1432 ## @param sentinel.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
1433 ## @param sentinel.containerSecurityContext.allowPrivilegeEscalation Set Redis(R) Sentinel containers' Security Context allowPrivilegeEscalation
1434 ## @param sentinel.containerSecurityContext.seccompProfile.type Set Redis(R) Sentinel containers' Security Context seccompProfile
1435 ## @param sentinel.containerSecurityContext.capabilities.drop Set Redis(R) Sentinel containers' Security Context capabilities to drop
1437 containerSecurityContext:
1443 allowPrivilegeEscalation: false
1444 readOnlyRootFilesystem: true
1446 type: RuntimeDefault
1449 ## @param sentinel.lifecycleHooks for the Redis(R) sentinel container(s) to automate configuration before or after startup
1452 ## @param sentinel.extraVolumes Optionally specify extra list of additional volumes for the Redis(R) Sentinel
1455 ## @param sentinel.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis(R) Sentinel container(s)
1457 extraVolumeMounts: []
1458 ## Redis(R) Sentinel service parameters
1459 ## Note: values passed in this section also configure the master service, unless the sentinel.masterService is explicitly overridden.
1461 ## @param sentinel.service.type Redis(R) Sentinel service type
1464 ## @param sentinel.service.ports.redis Redis(R) service port for Redis(R)
1465 ## @param sentinel.service.ports.sentinel Redis(R) service port for Redis(R) Sentinel
1470 ## @param sentinel.service.nodePorts.redis Node port for Redis(R)
1471 ## @param sentinel.service.nodePorts.sentinel Node port for Sentinel
1472 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1473 ## NOTE: choose port between <30000-32767>
1474 ## NOTE: By leaving these values blank, they will be generated by ports-configmap
1475 ## 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
1480 ## @param sentinel.service.externalTrafficPolicy Redis(R) Sentinel service external traffic policy
1481 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1483 externalTrafficPolicy: Cluster
1484 ## @param sentinel.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1487 ## @param sentinel.service.clusterIP Redis(R) Sentinel service Cluster IP
1490 ## @param sentinel.service.createMaster Enable master service pointing to the current master (experimental)
1491 ## NOTE: rbac.create need to be set to true
1494 ## @param sentinel.service.loadBalancerIP Redis(R) Sentinel service Load Balancer IP
1495 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1498 ## @param sentinel.service.loadBalancerClass sentinel service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1499 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1501 loadBalancerClass: ""
1502 ## @param sentinel.service.loadBalancerSourceRanges Redis(R) Sentinel service Load Balancer sources
1503 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1505 ## loadBalancerSourceRanges:
1508 loadBalancerSourceRanges: []
1509 ## @param sentinel.service.annotations Additional custom annotations for Redis(R) Sentinel service
1512 ## @param sentinel.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1513 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1514 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1516 sessionAffinity: None
1517 ## @param sentinel.service.sessionAffinityConfig Additional settings for the sessionAffinity. Ignored if `sentinel.service.sessionAffinity` is `None`
1518 ## sessionAffinityConfig:
1520 ## timeoutSeconds: 300
1522 sessionAffinityConfig: {}
1523 ## Headless service properties
1526 ## @param sentinel.service.headless.annotations Annotations for the headless service.
1529 ## @param sentinel.service.headless.extraPorts Optionally specify extra ports to expose for the headless service.
1532 ## - name: my-custom-port
1535 ## targetPort: 12345
1538 ## Redis(R) master service parameters
1541 ## @param sentinel.masterService.enabled Enable master service pointing to the current master (experimental)
1542 ## NOTE: rbac.create need to be set to true
1545 ## @param sentinel.masterService.type Redis(R) Sentinel master service type
1548 ## @param sentinel.masterService.ports.redis Redis(R) service port for Redis(R)
1552 ## @param sentinel.masterService.nodePorts.redis Node port for Redis(R)
1553 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1554 ## NOTE: choose port between <30000-32767>
1555 ## NOTE: By leaving these values blank, they will be generated by ports-configmap
1556 ## 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
1560 ## @param sentinel.masterService.externalTrafficPolicy Redis(R) master service external traffic policy
1561 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1563 externalTrafficPolicy: ""
1564 ## @param sentinel.masterService.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1567 ## @param sentinel.masterService.clusterIP Redis(R) master service Cluster IP
1570 ## @param sentinel.masterService.loadBalancerIP Redis(R) master service Load Balancer IP
1571 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1574 ## @param sentinel.masterService.loadBalancerClass master service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1575 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1577 loadBalancerClass: ""
1578 ## @param sentinel.masterService.loadBalancerSourceRanges Redis(R) master service Load Balancer sources
1579 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1581 ## loadBalancerSourceRanges:
1584 loadBalancerSourceRanges: []
1585 ## @param sentinel.masterService.annotations Additional custom annotations for Redis(R) master service
1588 ## @param sentinel.masterService.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1589 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1590 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1592 sessionAffinity: None
1593 ## @param sentinel.masterService.sessionAffinityConfig Additional settings for the sessionAffinity. Ignored if `sentinel.masterService.sessionAffinity` is `None`
1594 ## sessionAffinityConfig:
1596 ## timeoutSeconds: 300
1598 sessionAffinityConfig: {}
1599 ## @param sentinel.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-node pods
1601 terminationGracePeriodSeconds: 30
1602 ## @param sentinel.extraPodSpec Optionally specify extra PodSpec for the Redis(R) Sentinel pod(s)
1606 ## @param sentinel.externalAccess.enabled Enable external access to the Redis
1610 ## @param sentinel.externalAccess.service.type Type for the services used to expose every Pod
1611 ## At this moment only LoadBalancer is supported
1614 ## @param sentinel.externalAccess.service.redisPort Port for the services used to expose redis-server
1617 ## @param sentinel.externalAccess.service.sentinelPort Port for the services used to expose redis-sentinel
1620 ## @param sentinel.externalAccess.service.loadBalancerIPs Array of load balancer IPs for each Redis(R) node. Length must be the same as sentinel.replicaCount
1623 ## @param sentinel.externalAccess.service.loadBalancerClass Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1624 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1626 loadBalancerClass: ""
1627 ## @param sentinel.externalAccess.service.loadBalancerSourceRanges Service Load Balancer sources
1628 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1630 ## loadBalancerSourceRanges:
1633 loadBalancerSourceRanges: []
1634 ## @param sentinel.externalAccess.service.annotations Annotations to add to the services used to expose every Pod of the Redis(R) Cluster
1637 ## @param sentinel.externalAccess.service.loadBalancerIPAnnotation Name of annotation to specify fixed IP for the LoadBalancer service
1639 loadBalancerIPAnnotation: ""
1640## @section Other Parameters
1642## @param serviceBindings.enabled Create secret for service binding (Experimental)
1643## Ref: https://servicebinding.io/service-provider/
1647## Network Policy configuration
1648## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1651 ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources
1654 ## @param networkPolicy.allowExternal Don't require client label for connections
1655 ## When set to false, only pods with the correct client label will have network access to the ports
1656 ## Redis(R) is listening on. When true, Redis(R) will accept connections from any source
1657 ## (with the correct destination port).
1660 ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1662 allowExternalEgress: true
1663 ## @param networkPolicy.extraIngress Add extra ingress rules to the NetworkPolicy
1673 ## - matchExpressions:
1680 ## @param networkPolicy.extraEgress Add extra egress rules to the NetworkPolicy
1690 ## - matchExpressions:
1697 ## @param networkPolicy.ingressNSMatchLabels Labels to match to allow traffic from other namespaces
1698 ## @param networkPolicy.ingressNSPodMatchLabels Pod labels to match to allow traffic from other namespaces
1700 ingressNSMatchLabels: {}
1701 ingressNSPodMatchLabels: {}
1703 ## @param networkPolicy.metrics.allowExternal Don't require client label for connections for metrics endpoint
1704 ## When set to false, only pods with the correct client label will have network access to the metrics port
1707 ## @param networkPolicy.metrics.ingressNSMatchLabels Labels to match to allow traffic from other namespaces to metrics endpoint
1708 ## @param networkPolicy.metrics.ingressNSPodMatchLabels Pod labels to match to allow traffic from other namespaces to metrics endpoint
1710 ingressNSMatchLabels: {}
1711 ingressNSPodMatchLabels: {}
1712## PodSecurityPolicy configuration
1713## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1716 ## @param podSecurityPolicy.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
1719 ## @param podSecurityPolicy.enabled Enable PodSecurityPolicy's RBAC rules
1722## RBAC configuration
1725 ## @param rbac.create Specifies whether RBAC resources should be created
1728 ## @param rbac.rules Custom RBAC rules to set
1740## ServiceAccount configuration
1743 ## @param serviceAccount.create Specifies whether a ServiceAccount should be created
1746 ## @param serviceAccount.name The name of the ServiceAccount to use.
1747 ## If not set and create is true, a name is generated using the common.names.fullname template
1750 ## @param serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
1751 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
1753 automountServiceAccountToken: false
1754 ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
1757## Redis(R) Pod Disruption Budget configuration
1758## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
1759## @param pdb DEPRECATED Please use `master.pdb` and `replica.pdb` values instead
1765 ## @param tls.enabled Enable TLS traffic
1768 ## @param tls.authClients Require clients to authenticate
1771 ## @param tls.autoGenerated Enable autogenerated certificates
1773 autoGenerated: false
1774 ## @param tls.existingSecret The name of the existing secret that contains the TLS certificates
1777 ## @param tls.certificatesSecret DEPRECATED. Use existingSecret instead.
1779 certificatesSecret: ""
1780 ## @param tls.certFilename Certificate filename
1783 ## @param tls.certKeyFilename Certificate Key filename
1786 ## @param tls.certCAFilename CA Certificate filename
1789 ## @param tls.dhParamsFilename File containing DH params (in order to support DH based ciphers)
1791 dhParamsFilename: ""
1792## @section Metrics Parameters
1795 ## @param metrics.enabled Start a sidecar prometheus exporter to expose Redis(R) metrics
1798 ## Iamguarded Redis(R) Exporter image
1799 ## @param metrics.image.registry [default: REGISTRY_NAME] Redis(R) Exporter image registry
1800 ## @param metrics.image.repository [default: REPOSITORY_NAME/redis-exporter] Redis(R) Exporter image repository
1801 ## @skip metrics.image.tag Redis(R) Exporter image tag (immutable tags are recommended)
1802 ## @param metrics.image.digest Redis(R) Exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1803 ## @param metrics.image.pullPolicy Redis(R) Exporter image pull policy
1804 ## @param metrics.image.pullSecrets Redis(R) Exporter image pull secrets
1808 repository: chainguard-private/prometheus-redis-exporter-iamguarded
1811 pullPolicy: IfNotPresent
1812 ## Optionally specify an array of imagePullSecrets.
1813 ## Secrets must be manually created in the namespace.
1814 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1817 ## - myRegistryKeySecretName
1820 ## @param metrics.containerPorts.http Metrics HTTP container port
1824 ## Configure extra options for Redis(R) containers' liveness, readiness & startup probes
1825 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
1826 ## @param metrics.startupProbe.enabled Enable startupProbe on Redis(R) replicas nodes
1827 ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1828 ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
1829 ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1830 ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
1831 ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
1835 initialDelaySeconds: 10
1840 ## @param metrics.livenessProbe.enabled Enable livenessProbe on Redis(R) replicas nodes
1841 ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1842 ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
1843 ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1844 ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
1845 ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
1849 initialDelaySeconds: 10
1854 ## @param metrics.readinessProbe.enabled Enable readinessProbe on Redis(R) replicas nodes
1855 ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1856 ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
1857 ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1858 ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
1859 ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
1863 initialDelaySeconds: 5
1868 ## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
1870 customStartupProbe: {}
1871 ## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
1873 customLivenessProbe: {}
1874 ## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
1876 customReadinessProbe: {}
1877 ## @param metrics.command Override default metrics container init command (useful when using custom images)
1880 ## @param metrics.redisTargetHost A way to specify an alternative Redis(R) hostname
1881 ## Useful for certificate CN/SAN matching
1883 redisTargetHost: "localhost"
1884 ## @param metrics.extraArgs Extra arguments for Redis(R) exporter, for example:
1887 ## check-keys: myKey,myOtherKey
1890 ## @param metrics.extraEnvVars Array with extra environment variables to add to Redis(R) exporter
1897 ## Configure Container Security Context
1898 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1899 ## @param metrics.containerSecurityContext.enabled Enabled Redis(R) exporter containers' Security Context
1900 ## @param metrics.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1901 ## @param metrics.containerSecurityContext.runAsUser Set Redis(R) exporter containers' Security Context runAsUser
1902 ## @param metrics.containerSecurityContext.runAsGroup Set Redis(R) exporter containers' Security Context runAsGroup
1903 ## @param metrics.containerSecurityContext.runAsNonRoot Set Redis(R) exporter containers' Security Context runAsNonRoot
1904 ## @param metrics.containerSecurityContext.allowPrivilegeEscalation Set Redis(R) exporter containers' Security Context allowPrivilegeEscalation
1905 ## @param metrics.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
1906 ## @param metrics.containerSecurityContext.seccompProfile.type Set Redis(R) exporter containers' Security Context seccompProfile
1907 ## @param metrics.containerSecurityContext.capabilities.drop Set Redis(R) exporter containers' Security Context capabilities to drop
1909 containerSecurityContext:
1915 allowPrivilegeEscalation: false
1916 readOnlyRootFilesystem: true
1918 type: RuntimeDefault
1921 ## @param metrics.extraVolumes Optionally specify extra list of additional volumes for the Redis(R) metrics sidecar
1924 ## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis(R) metrics sidecar
1926 extraVolumeMounts: []
1927 ## Redis(R) exporter resource requests and limits
1928 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1929 ## @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).
1931 resourcesPreset: "nano"
1932 ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1943 ## @param metrics.fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
1944 ## @param metrics.fips.golang Configure Golang FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
1949 ## @param metrics.podLabels Extra labels for Redis(R) exporter pods
1950 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1953 ## @param metrics.podAnnotations [object] Annotations for Redis(R) exporter pods
1954 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1957 prometheus.io/scrape: "true"
1958 prometheus.io/port: "9121"
1959 ## Redis(R) exporter service parameters
1962 ## @param metrics.service.enabled Create Service resource(s) for scraping metrics using PrometheusOperator ServiceMonitor, can be disabled when using a PodMonitor
1965 ## @param metrics.service.type Redis(R) exporter service type
1968 ## @param metrics.service.ports.http Redis(R) exporter service port
1972 ## @param metrics.service.externalTrafficPolicy Redis(R) exporter service external traffic policy
1973 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1975 externalTrafficPolicy: Cluster
1976 ## @param metrics.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1979 ## @param metrics.service.loadBalancerIP Redis(R) exporter service Load Balancer IP
1980 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1983 ## @param metrics.service.loadBalancerClass exporter service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1984 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1986 loadBalancerClass: ""
1987 ## @param metrics.service.loadBalancerSourceRanges Redis(R) exporter service Load Balancer sources
1988 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1990 ## loadBalancerSourceRanges:
1993 loadBalancerSourceRanges: []
1994 ## @param metrics.service.annotations Additional custom annotations for Redis(R) exporter service
1997 ## @param metrics.service.clusterIP Redis(R) exporter service Cluster IP
2000 ## Prometheus Service Monitor
2001 ## ref: https://github.com/coreos/prometheus-operator
2002 ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2005 ## @param metrics.serviceMonitor.port the service port to scrape metrics from
2008 ## @param metrics.serviceMonitor.enabled Create ServiceMonitor resource(s) for scraping metrics using PrometheusOperator
2011 ## @param metrics.serviceMonitor.namespace The namespace in which the ServiceMonitor will be created
2014 ## @param metrics.serviceMonitor.tlsConfig [object] TLS configuration used for scrape endpoints used by Prometheus
2017 ## @param metrics.serviceMonitor.interval The interval at which metrics should be scraped
2020 ## @param metrics.serviceMonitor.scrapeTimeout The timeout after which the scrape is ended
2023 ## @param metrics.serviceMonitor.relabelings Metrics RelabelConfigs to apply to samples before scraping.
2026 ## @skip metrics.serviceMonitor.relabellings DEPRECATED: Use `metrics.serviceMonitor.relabelings` instead.
2029 ## @param metrics.serviceMonitor.metricRelabelings Metrics RelabelConfigs to apply to samples before ingestion.
2031 metricRelabelings: []
2032 ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
2035 ## @param metrics.serviceMonitor.additionalLabels Additional labels that can be used so ServiceMonitor resource(s) can be discovered by Prometheus
2037 additionalLabels: {}
2038 ## @param metrics.serviceMonitor.podTargetLabels Labels from the Kubernetes pod to be transferred to the created metrics
2041 ## @param metrics.serviceMonitor.sampleLimit Limit of how many samples should be scraped from every Pod
2044 ## @param metrics.serviceMonitor.targetLimit Limit of how many targets should be scraped
2047 ## @param metrics.serviceMonitor.additionalEndpoints Additional endpoints to scrape (e.g sentinel)
2049 additionalEndpoints: []
2050 # uncomment in order to scrape sentinel metrics, also to in order distinguish between Sentinel and Redis container metrics
2051 # add metricRelabelings with label like app=redis to main redis pod-monitor port
2054 # port: "http-metrics"
2056 # target: ["localhost:26379"]
2057 # metricRelabelings:
2058 # - targetLabel: "app"
2059 # replacement: "sentinel"
2060 ## Prometheus Pod Monitor
2061 ## ref: https://github.com/coreos/prometheus-operator
2062 ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#podmonitor
2065 ## @param metrics.podMonitor.port the pod port to scrape metrics from
2068 ## @param metrics.podMonitor.enabled Create PodMonitor resource(s) for scraping metrics using PrometheusOperator
2071 ## @param metrics.podMonitor.namespace The namespace in which the PodMonitor will be created
2074 ## @param metrics.podMonitor.tlsConfig [object] TLS configuration used for scrape endpoints used by Prometheus
2077 ## @param metrics.podMonitor.interval The interval at which metrics should be scraped
2080 ## @param metrics.podMonitor.scrapeTimeout The timeout after which the scrape is ended
2083 ## @param metrics.podMonitor.relabelings Metrics RelabelConfigs to apply to samples before scraping.
2086 ## @skip metrics.podMonitor.relabellings DEPRECATED: Use `metrics.podMonitor.relabelings` instead.
2089 ## @param metrics.podMonitor.metricRelabelings Metrics RelabelConfigs to apply to samples before ingestion.
2091 metricRelabelings: []
2092 # - targetLabel: "app"
2093 # replacement: "redis"
2094 ## @param metrics.podMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
2097 ## @param metrics.podMonitor.additionalLabels Additional labels that can be used so PodMonitor resource(s) can be discovered by Prometheus
2099 additionalLabels: {}
2100 ## @param metrics.podMonitor.podTargetLabels Labels from the Kubernetes pod to be transferred to the created metrics
2103 ## @param metrics.podMonitor.sampleLimit Limit of how many samples should be scraped from every Pod
2106 ## @param metrics.podMonitor.targetLimit Limit of how many targets should be scraped
2109 ## @param metrics.podMonitor.additionalEndpoints Additional endpoints to scrape (e.g sentinel)
2111 additionalEndpoints: []
2116 # target: ["localhost:26379"]
2117 # metricRelabelings:
2118 # - targetLabel: "app"
2119 # replacement: "sentinel"
2120 ## Custom PrometheusRule to be defined
2121 ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
2124 ## @param metrics.prometheusRule.enabled Create a custom prometheusRule Resource for scraping metrics using PrometheusOperator
2127 ## @param metrics.prometheusRule.namespace The namespace in which the prometheusRule will be created
2130 ## @param metrics.prometheusRule.additionalLabels Additional labels for the prometheusRule
2132 additionalLabels: {}
2133 ## @param metrics.prometheusRule.rules Custom Prometheus rules
2136 ## - alert: RedisDown
2137 ## expr: redis_up{service="{{ template "common.names.fullname" . }}-metrics"} == 0
2142 ## summary: Redis(R) instance {{ "{{ $labels.instance }}" }} down
2143 ## description: Redis(R) instance {{ "{{ $labels.instance }}" }} is down
2144 ## - alert: RedisMemoryHigh
2146 ## redis_memory_used_bytes{service="{{ template "common.names.fullname" . }}-metrics"} * 100
2148 ## redis_memory_max_bytes{service="{{ template "common.names.fullname" . }}-metrics"}
2154 ## summary: Redis(R) instance {{ "{{ $labels.instance }}" }} is using too much memory
2156 ## Redis(R) instance {{ "{{ $labels.instance }}" }} is using {{ "{{ $value }}" }}% of its available memory.
2157 ## - alert: RedisKeyEviction
2159 ## increase(redis_evicted_keys_total{service="{{ template "common.names.fullname" . }}-metrics"}[5m]) > 0
2164 ## summary: Redis(R) instance {{ "{{ $labels.instance }}" }} has evicted keys
2166 ## Redis(R) instance {{ "{{ $labels.instance }}" }} has evicted {{ "{{ $value }}" }} keys in the last 5 minutes.
2169## @section Init Container Parameters
2172## 'volumePermissions' init container parameters
2173## Changes the owner and group of the persistent volume mount point to runAsUser:fsGroup values
2174## based on the *podSecurityContext/*containerSecurityContext parameters
2177 ## @param volumePermissions.enabled Enable init container that changes the owner/group of the PV mount point to `runAsUser:fsGroup`
2180 ## OS Shell + Utility image
2181 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
2182 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
2183 ## @skip volumePermissions.image.tag OS Shell + Utility image tag (immutable tags are recommended)
2184 ## @param volumePermissions.image.digest OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2185 ## @param volumePermissions.image.pullPolicy OS Shell + Utility image pull policy
2186 ## @param volumePermissions.image.pullSecrets OS Shell + Utility image pull secrets
2190 repository: chainguard-private/os-shell-iamguarded
2193 pullPolicy: IfNotPresent
2194 ## Optionally specify an array of imagePullSecrets.
2195 ## Secrets must be manually created in the namespace.
2196 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2199 ## - myRegistryKeySecretName
2202 ## Init container's resource requests and limits
2203 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2204 ## @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).
2206 resourcesPreset: "nano"
2207 ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2218 ## @param volumePermissions.fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
2222 ## Init container Container Security Context
2223 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2224 ## @param volumePermissions.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2225 ## @param volumePermissions.containerSecurityContext.runAsUser Set init container's Security Context runAsUser
2226 ## NOTE: when runAsUser is set to special value "auto", init container will try to chown the
2227 ## data folder to auto-determined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
2228 ## "auto" is especially useful for OpenShift which has scc with dynamic user ids (and 0 is not allowed)
2230 containerSecurityContext:
2233 ## @param volumePermissions.extraEnvVars Array with extra environment variables to add to volume permissions init container.
2240## Kubectl InitContainer
2241## used by Sentinel to update the isMaster label on the Redis(TM) pods
2244 ## Iamguarded Kubectl image version
2245 ## @param kubectl.image.registry [default: REGISTRY_NAME] Kubectl image registry
2246 ## @param kubectl.image.repository [default: REPOSITORY_NAME/kubectl] Kubectl image repository
2247 ## @skip kubectl.image.tag Kubectl image tag (immutable tags are recommended), by default, using the current version
2248 ## @param kubectl.image.digest Kubectl image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2249 ## @param kubectl.image.pullPolicy Kubectl image pull policy
2250 ## @param kubectl.image.pullSecrets Kubectl pull secrets
2254 repository: chainguard-private/kubectl-iamguarded
2257 ## Specify a imagePullPolicy
2258 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
2260 pullPolicy: IfNotPresent
2261 ## Optionally specify an array of imagePullSecrets.
2262 ## Secrets must be manually created in the namespace.
2263 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2266 ## - myRegistryKeySecretName
2269 ## @param kubectl.command kubectl command to execute
2271 command: ["/opt/iamguarded/scripts/kubectl-scripts/update-master-label.sh"]
2272 ## Configure Container Security Context
2273 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2274 ## @param kubectl.containerSecurityContext.enabled Enabled kubectl containers' Security Context
2275 ## @param kubectl.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2276 ## @param kubectl.containerSecurityContext.runAsUser Set kubectl containers' Security Context runAsUser
2277 ## @param kubectl.containerSecurityContext.runAsGroup Set kubectl containers' Security Context runAsGroup
2278 ## @param kubectl.containerSecurityContext.runAsNonRoot Set kubectl containers' Security Context runAsNonRoot
2279 ## @param kubectl.containerSecurityContext.allowPrivilegeEscalation Set kubectl containers' Security Context allowPrivilegeEscalation
2280 ## @param kubectl.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
2281 ## @param kubectl.containerSecurityContext.seccompProfile.type Set kubectl containers' Security Context seccompProfile
2282 ## @param kubectl.containerSecurityContext.capabilities.drop Set kubectl containers' Security Context capabilities to drop
2284 containerSecurityContext:
2290 allowPrivilegeEscalation: false
2291 readOnlyRootFilesystem: true
2293 type: RuntimeDefault
2296 ## Iamguarded Kubectl resource requests and limits
2297 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2298 ## @param kubectl.resources.limits The resources limits for the kubectl containers
2299 ## @param kubectl.resources.requests The requested resources for the kubectl containers
2304 ## @param kubectl.fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
2305 ## @param kubectl.fips.golang Configure Golang FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
2310## init-sysctl container parameters
2311## used to perform sysctl operation to modify Kernel settings (needed sometimes to avoid warnings)
2314 ## @param sysctl.enabled Enable init container to modify Kernel settings
2317 ## OS Shell + Utility image
2318 ## @param sysctl.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
2319 ## @param sysctl.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
2320 ## @skip sysctl.image.tag OS Shell + Utility image tag (immutable tags are recommended)
2321 ## @param sysctl.image.digest OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2322 ## @param sysctl.image.pullPolicy OS Shell + Utility image pull policy
2323 ## @param sysctl.image.pullSecrets OS Shell + Utility image pull secrets
2327 repository: chainguard-private/os-shell-iamguarded
2330 pullPolicy: IfNotPresent
2331 ## Optionally specify an array of imagePullSecrets.
2332 ## Secrets must be manually created in the namespace.
2333 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2336 ## - myRegistryKeySecretName
2339 ## @param sysctl.command Override default init-sysctl container command (useful when using custom images)
2342 ## @param sysctl.mountHostSys Mount the host `/sys` folder to `/host-sys`
2345 ## Init container's resource requests and limits
2346 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2347 ## @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).
2349 resourcesPreset: "nano"
2350 ## @param sysctl.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2361 ## @param sysctl.fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
2365## @section useExternalDNS Parameters
2367## @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.
2368## @param useExternalDNS.additionalAnnotations Extra annotations to be utilized when `external-dns` is enabled.
2369## @param useExternalDNS.annotationKey The annotation key utilized when `external-dns` is enabled. Setting this to `false` will disable annotations.
2370## @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.
2375 annotationKey: external-dns.alpha.kubernetes.io/
2376 additionalAnnotations: {}