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.valkey.password Global Valkey 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 apiVersions Override Kubernetes API versions reported by .Capabilities
61## @param nameOverride String to partially override common.names.fullname
64## @param fullnameOverride String to fully override common.names.fullname
67## @param namespaceOverride String to fully override common.names.namespace
70## @param commonLabels Labels to add to all deployed objects
73## @param commonAnnotations Annotations to add to all deployed objects
76## @param secretAnnotations Annotations to add to secret
79## @param clusterDomain Kubernetes cluster domain name
81clusterDomain: cluster.local
82## @param extraDeploy Array of extra objects to deploy with the release
85## @param useHostnames Use hostnames internally when announcing replication. If false, the hostname will be resolved to an IP address
88## @param nameResolutionThreshold Failure threshold for internal hostnames resolution
90nameResolutionThreshold: 5
91## @param nameResolutionTimeout Timeout seconds between probes for internal hostnames resolution
93nameResolutionTimeout: 5
94## Enable diagnostic mode in the deployment
97 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
100 ## @param diagnosticMode.command Command to override all containers in the deployment
104 ## @param diagnosticMode.args Args to override all containers in the deployment
108## @section Valkey Image parameters
111## Iamguarded Valkey image
112## @param image.registry [default: REGISTRY_NAME] Valkey image registry
113## @param image.repository [default: REPOSITORY_NAME/valkey] Valkey image repository
114## @skip image.tag Valkey image tag (immutable tags are recommended)
115## @param image.digest Valkey image digest in the way sha256:aa... Please note this parameter, if set, will override the tag
116## @param image.pullPolicy Valkey image pull policy
117## @param image.pullSecrets Valkey image pull secrets
118## @param image.debug Enable image debug mode
122 repository: chainguard-private/valkey-iamguarded-iamguarded
125 ## Specify a imagePullPolicy
126 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
128 pullPolicy: IfNotPresent
129 ## Optionally, specify an array of imagePullSecrets.
130 ## Secrets must be manually created in the namespace.
131 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
134 ## - myRegistryKeySecretName
140## @section Valkey common configuration parameters
143## @param architecture Valkey architecture. Allowed values: `standalone` or `replication`
145architecture: replication
146## @param fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
150## Valkey Authentication parameters
153 ## @param auth.enabled Enable password authentication
156 ## @param auth.sentinel Enable password authentication on sentinels too
159 ## @param auth.password Valkey password
160 ## Defaults to a random 10-character alphanumeric string if not set
163 ## @param auth.existingSecret The name of an existing secret with Valkey credentials
164 ## NOTE: When it's set, the previous `auth.password` parameter is ignored
167 ## @param auth.existingSecretPasswordKey Password key to be retrieved from existing secret
168 ## NOTE: ignored unless `auth.existingSecret` parameter is set
170 existingSecretPasswordKey: ""
171 ## @param auth.usePasswordFiles Mount credentials as files instead of using an environment variable
173 usePasswordFiles: true
174 ## @param auth.usePasswordFileFromSecret Mount password file from secret
176 usePasswordFileFromSecret: true
177## @param commonConfiguration [string] Common configuration to be added into the ConfigMap
178## ref: https://valkey.io/topics/valkey-conf/
180commonConfiguration: |-
181 # Enable AOF https://valkey.io/docs/topics/persistence.html
183 # Disable RDB persistence, AOF persistence already enabled.
185## @param existingConfigmap The name of an existing ConfigMap with your custom configuration for Valkey nodes
188## @section Valkey primary configuration parameters
191 ## @param primary.replicaCount Number of Valkey primary instances to deploy (experimental, requires additional configuration)
194 ## @param primary.configuration Configuration for Valkey primary nodes
195 ## ref: https://valkey.io/topics/config
198 ## @param primary.disableCommands Array with Valkey commands to disable on primary nodes
199 ## Commands will be completely disabled by renaming each to an empty string.
200 ## ref: https://valkey.io/topics/security#disabling-of-specific-commands
205 ## @param primary.command Override default container command (useful when using custom images)
208 ## @param primary.args Override default container args (useful when using custom images)
211 ## @param primary.enableServiceLinks Whether information about services should be injected into pod's environment variable
213 enableServiceLinks: true
214 ## @param primary.preExecCmds Additional commands to run prior to starting Valkey primary
217 ## @param primary.extraFlags Array with additional command line flags for Valkey primary
220 ## - "--maxmemory-policy volatile-ttl"
221 ## - "--repl-backlog-size 1024mb"
224 ## @param primary.extraEnvVars Array with extra environment variables to add to Valkey primary nodes
231 ## @param primary.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Valkey primary nodes
234 ## @param primary.extraEnvVarsSecret Name of existing Secret containing extra env vars for Valkey primary nodes
236 extraEnvVarsSecret: ""
237 ## @param primary.containerPorts.valkey Container port to open on Valkey primary nodes
241 ## Configure extra options for Valkey containers' liveness and readiness probes
242 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
243 ## @param primary.startupProbe.enabled Enable startupProbe on Valkey primary nodes
244 ## @param primary.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
245 ## @param primary.startupProbe.periodSeconds Period seconds for startupProbe
246 ## @param primary.startupProbe.timeoutSeconds Timeout seconds for startupProbe
247 ## @param primary.startupProbe.failureThreshold Failure threshold for startupProbe
248 ## @param primary.startupProbe.successThreshold Success threshold for startupProbe
252 initialDelaySeconds: 20
257 ## @param primary.livenessProbe.enabled Enable livenessProbe on Valkey primary nodes
258 ## @param primary.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
259 ## @param primary.livenessProbe.periodSeconds Period seconds for livenessProbe
260 ## @param primary.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
261 ## @param primary.livenessProbe.failureThreshold Failure threshold for livenessProbe
262 ## @param primary.livenessProbe.successThreshold Success threshold for livenessProbe
266 initialDelaySeconds: 20
271 ## @param primary.readinessProbe.enabled Enable readinessProbe on Valkey primary nodes
272 ## @param primary.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
273 ## @param primary.readinessProbe.periodSeconds Period seconds for readinessProbe
274 ## @param primary.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
275 ## @param primary.readinessProbe.failureThreshold Failure threshold for readinessProbe
276 ## @param primary.readinessProbe.successThreshold Success threshold for readinessProbe
280 initialDelaySeconds: 20
285 ## @param primary.customStartupProbe Custom startupProbe that overrides the default one
287 customStartupProbe: {}
288 ## @param primary.customLivenessProbe Custom livenessProbe that overrides the default one
290 customLivenessProbe: {}
291 ## @param primary.customReadinessProbe Custom readinessProbe that overrides the default one
293 customReadinessProbe: {}
294 ## Valkey primary resource requests and limits
295 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
296 ## @param primary.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if primary.resources is set (primary.resources is recommended for production).
298 resourcesPreset: "nano"
299 ## @param primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
310 ## Configure Pods Security Context
311 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
312 ## @param primary.podSecurityContext.enabled Enable Valkey primary pods' Security Context
313 ## @param primary.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
314 ## @param primary.podSecurityContext.sysctls Set kernel settings using the sysctl interface
315 ## @param primary.podSecurityContext.supplementalGroups Set filesystem extra groups
316 ## @param primary.podSecurityContext.fsGroup Set Valkey primary pod's Security Context fsGroup
320 fsGroupChangePolicy: Always
322 supplementalGroups: []
324 ## Configure Container Security Context
325 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
326 ## @param primary.containerSecurityContext.enabled Enable Valkey primary containers' Security Context
327 ## @param primary.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
328 ## @param primary.containerSecurityContext.runAsUser Set Valkey primary containers' Security Context runAsUser
329 ## @param primary.containerSecurityContext.runAsGroup Set Valkey primary containers' Security Context runAsGroup
330 ## @param primary.containerSecurityContext.runAsNonRoot Set Valkey primary containers' Security Context runAsNonRoot
331 ## @param primary.containerSecurityContext.allowPrivilegeEscalation Is it possible to escalate Valkey pod(s) privileges
332 ## @param primary.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
333 ## @param primary.containerSecurityContext.seccompProfile.type Set Valkey primary containers' Security Context seccompProfile
334 ## @param primary.containerSecurityContext.capabilities.drop Set Valkey primary containers' Security Context capabilities to drop
336 containerSecurityContext:
342 allowPrivilegeEscalation: false
343 readOnlyRootFilesystem: true
348 ## @param primary.kind Use either Deployment, StatefulSet (default) or DaemonSet
349 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
352 ## @param primary.schedulerName Alternate scheduler for Valkey primary pods
353 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
356 ## @param primary.updateStrategy.type Valkey primary statefulset strategy type
357 ## @skip primary.updateStrategy.rollingUpdate
358 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
362 ## Can be set to RollingUpdate, OnDelete (statefulset), Recreate (deployment)
365 ## @param primary.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
368 ## @param primary.priorityClassName Valkey primary pods' priorityClassName
370 priorityClassName: ""
371 ## @param primary.automountServiceAccountToken Mount Service Account token in pod
373 automountServiceAccountToken: false
374 ## @param primary.hostAliases Valkey primary pods host aliases
375 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
378 ## @param primary.runtimeClassName Name of the runtime class to be used by pod(s)
379 ## ref: https://kubernetes.io/docs/concepts/containers/runtime-class/
382 ## @param primary.podLabels Extra labels for Valkey primary pods
383 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
386 ## @param primary.podAnnotations Annotations for Valkey primary pods
387 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
390 ## @param primary.shareProcessNamespace Share a single process namespace between all of the containers in Valkey primary pods
391 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
393 shareProcessNamespace: false
394 ## @param primary.podAffinityPreset Pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
395 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
397 podAffinityPreset: ""
398 ## @param primary.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
399 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
401 podAntiAffinityPreset: soft
402 ## Node primary.affinity preset
403 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
406 ## @param primary.nodeAffinityPreset.type Node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
409 ## @param primary.nodeAffinityPreset.key Node label key to match. Ignored if `primary.affinity` is set
412 ## @param primary.nodeAffinityPreset.values Node label values to match. Ignored if `primary.affinity` is set
419 ## @param primary.affinity Affinity for Valkey primary pods assignment
420 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
421 ## NOTE: `primary.podAffinityPreset`, `primary.podAntiAffinityPreset`, and `primary.nodeAffinityPreset` will be ignored when it's set
424 ## @param primary.nodeSelector Node labels for Valkey primary pods assignment
425 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
428 ## @param primary.tolerations Tolerations for Valkey primary pods assignment
429 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
432 ## @param primary.topologySpreadConstraints Spread Constraints for Valkey primary pod assignment
433 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
435 ## topologySpreadConstraints:
438 ## whenUnsatisfiable: DoNotSchedule
440 topologySpreadConstraints: []
441 ## @param primary.dnsPolicy DNS Policy for Valkey primary pod
442 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
444 ## dnsPolicy: ClusterFirst
447 ## @param primary.dnsConfig DNS Configuration for Valkey primary pod
448 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
454 ## - name: single-request-reopen
457 ## @param primary.lifecycleHooks for the Valkey primary container(s) to automate configuration before or after startup
460 ## @param primary.extraVolumes Optionally, specify extra list of additional volumes for the Valkey primary pod(s)
463 ## @param primary.extraVolumeMounts Optionally, specify extra list of additional volumeMounts for the Valkey primary container(s)
465 extraVolumeMounts: []
466 ## @param primary.sidecars Add additional sidecar containers to the Valkey primary pod(s)
469 ## - name: your-image-name
471 ## imagePullPolicy: Always
474 ## containerPort: 1234
477 ## @param primary.initContainers Add additional init containers to the Valkey primary pod(s)
478 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
481 ## - name: your-image-name
483 ## imagePullPolicy: Always
484 ## command: ['sh', '-c', 'echo "hello world"']
487 ## Persistence parameters
488 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
491 ## @param primary.persistence.enabled Enable persistence on Valkey primary nodes using Persistent Volume Claims
494 ## @param primary.persistence.medium Provide a medium for `emptyDir` volumes.
497 ## @param primary.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
500 ## @param primary.persistence.path The path the volume will be mounted at on Valkey primary containers
501 ## NOTE: Useful when using different Valkey images
504 ## @param primary.persistence.subPath The subdirectory of the volume to mount on Valkey primary containers
505 ## NOTE: Useful in dev environments
508 ## @param primary.persistence.subPathExpr Used to construct the subPath subdirectory of the volume to mount on Valkey primary containers
511 ## @param primary.persistence.storageClass Persistent Volume storage class
512 ## If defined, storageClassName: <storageClass>
513 ## If set to "-", storageClassName: "", which disables dynamic provisioning
514 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
517 ## @param primary.persistence.accessModes Persistent Volume access modes
521 ## @param primary.persistence.size Persistent Volume size
524 ## @param primary.persistence.annotations Additional custom annotations for the PVC
527 ## @param primary.persistence.labels Additional custom labels for the PVC
530 ## @param primary.persistence.selector Additional labels to match for the PVC
537 ## @param primary.persistence.dataSource Custom PVC data source
540 ## @param primary.persistence.existingClaim Use an existing PVC which must be created manually before bound
541 ## NOTE: requires primary.persistence.enabled: true
544 ## persistentVolumeClaimRetentionPolicy
545 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
546 ## @param primary.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
547 ## @param primary.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
548 ## @param primary.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
550 persistentVolumeClaimRetentionPolicy:
554 ## Valkey primary service parameters
557 ## @param primary.service.type Valkey primary service type
560 ## @param primary.service.ports.valkey Valkey primary service port
564 ## @param primary.service.nodePorts.valkey Node port for Valkey primary
565 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
566 ## NOTE: choose port between <30000-32767>
570 ## @param primary.service.externalTrafficPolicy Valkey primary service external traffic policy
571 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
573 externalTrafficPolicy: Cluster
574 ## @param primary.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
577 ## @param primary.service.internalTrafficPolicy Valkey primary service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)
578 ## ref: https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/
580 internalTrafficPolicy: Cluster
581 ## @param primary.service.clusterIP Valkey primary service Cluster IP
584 ## @param primary.service.loadBalancerIP Valkey primary service Load Balancer IP
585 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
588 ## @param primary.service.loadBalancerClass primary service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
589 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
591 loadBalancerClass: ""
592 ## @param primary.service.loadBalancerSourceRanges Valkey primary service Load Balancer sources
593 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
595 ## loadBalancerSourceRanges:
598 loadBalancerSourceRanges: []
599 ## @param primary.service.externalIPs Valkey primary service External IPs
600 ## https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
607 ## @param primary.service.annotations Additional custom annotations for Valkey primary service
610 ## @param primary.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
611 ## If "ClientIP", consecutive client requests will be directed to the same Pod
612 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
614 sessionAffinity: None
615 ## @param primary.service.sessionAffinityConfig Additional settings for the sessionAffinity. Ignored if `primary.service.sessionAffinity` is `None`
616 ## sessionAffinityConfig:
618 ## timeoutSeconds: 300
620 sessionAffinityConfig: {}
621 ## @param primary.terminationGracePeriodSeconds Integer setting the termination grace period for the valkey-primary pods
623 terminationGracePeriodSeconds: 30
624 ## ServiceAccount configuration
627 ## @param primary.serviceAccount.create Specifies whether a ServiceAccount should be created
630 ## @param primary.serviceAccount.name The name of the ServiceAccount to use.
631 ## If not set and create is true, a name is generated using the common.names.fullname template
634 ## @param primary.serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
635 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
637 automountServiceAccountToken: false
638 ## @param primary.serviceAccount.annotations Additional custom annotations for the ServiceAccount
641 ## Pod Disruption Budget configuration
642 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
643 ## @param primary.pdb.create Enable/disable a Pod Disruption Budget creation
644 ## @param primary.pdb.minAvailable [object] Minimum number/percentage of pods that should remain scheduled
645 ## @param primary.pdb.maxUnavailable [object] Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `primary.pdb.minAvailable` and `primary.pdb.maxUnavailable` are empty.
651## @section Valkey replicas configuration parameters
654 ## @param replica.kind Use either DaemonSet or StatefulSet (default)
655 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
658 ## @param replica.replicaCount Number of Valkey replicas to deploy
661 ## @param replica.configuration Configuration for Valkey replicas nodes
662 ## ref: https://valkey.io/topics/config
665 ## @param replica.disableCommands Array with Valkey commands to disable on replicas nodes
666 ## Commands will be completely disabled by renaming each to an empty string.
667 ## ref: https://valkey.io/topics/security#disabling-of-specific-commands
672 ## @param replica.command Override default container command (useful when using custom images)
675 ## @param replica.args Override default container args (useful when using custom images)
678 ## @param replica.enableServiceLinks Whether information about services should be injected into pod's environment variable
680 enableServiceLinks: true
681 ## @param replica.preExecCmds Additional commands to run prior to starting Valkey replicas
684 ## @param replica.extraFlags Array with additional command line flags for Valkey replicas
687 ## - "--maxmemory-policy volatile-ttl"
688 ## - "--repl-backlog-size 1024mb"
691 ## @param replica.extraEnvVars Array with extra environment variables to add to Valkey replicas nodes
698 ## @param replica.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Valkey replicas nodes
701 ## @param replica.extraEnvVarsSecret Name of existing Secret containing extra env vars for Valkey replicas nodes
703 extraEnvVarsSecret: ""
704 ## @param replica.externalPrimary.enabled Use external primary for bootstrapping
705 ## @param replica.externalPrimary.host External primary host to bootstrap from
706 ## @param replica.externalPrimary.port Port for Valkey service external primary host
712 ## @param replica.containerPorts.valkey Container port to open on Valkey replicas nodes
716 ## Configure extra options for Valkey containers' liveness and readiness probes
717 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
718 ## @param replica.startupProbe.enabled Enable startupProbe on Valkey replicas nodes
719 ## @param replica.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
720 ## @param replica.startupProbe.periodSeconds Period seconds for startupProbe
721 ## @param replica.startupProbe.timeoutSeconds Timeout seconds for startupProbe
722 ## @param replica.startupProbe.failureThreshold Failure threshold for startupProbe
723 ## @param replica.startupProbe.successThreshold Success threshold for startupProbe
727 initialDelaySeconds: 10
732 ## @param replica.livenessProbe.enabled Enable livenessProbe on Valkey replicas nodes
733 ## @param replica.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
734 ## @param replica.livenessProbe.periodSeconds Period seconds for livenessProbe
735 ## @param replica.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
736 ## @param replica.livenessProbe.failureThreshold Failure threshold for livenessProbe
737 ## @param replica.livenessProbe.successThreshold Success threshold for livenessProbe
741 initialDelaySeconds: 20
746 ## @param replica.readinessProbe.enabled Enable readinessProbe on Valkey replicas nodes
747 ## @param replica.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
748 ## @param replica.readinessProbe.periodSeconds Period seconds for readinessProbe
749 ## @param replica.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
750 ## @param replica.readinessProbe.failureThreshold Failure threshold for readinessProbe
751 ## @param replica.readinessProbe.successThreshold Success threshold for readinessProbe
755 initialDelaySeconds: 20
760 ## @param replica.customStartupProbe Custom startupProbe that overrides the default one
762 customStartupProbe: {}
763 ## @param replica.customLivenessProbe Custom livenessProbe that overrides the default one
765 customLivenessProbe: {}
766 ## @param replica.customReadinessProbe Custom readinessProbe that overrides the default one
768 customReadinessProbe: {}
769 ## Valkey replicas resource requests and limits
770 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
771 ## @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).
773 resourcesPreset: "nano"
774 ## @param replica.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
785 ## Configure Pods Security Context
786 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
787 ## @param replica.podSecurityContext.enabled Enable Valkey replicas pods' Security Context
788 ## @param replica.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
789 ## @param replica.podSecurityContext.sysctls Set kernel settings using the sysctl interface
790 ## @param replica.podSecurityContext.supplementalGroups Set filesystem extra groups
791 ## @param replica.podSecurityContext.fsGroup Set Valkey replicas pod's Security Context fsGroup
795 fsGroupChangePolicy: Always
797 supplementalGroups: []
799 ## Configure Container Security Context
800 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
801 ## @param replica.containerSecurityContext.enabled Enable Valkey replicas containers' Security Context
802 ## @param replica.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
803 ## @param replica.containerSecurityContext.runAsUser Set Valkey replicas containers' Security Context runAsUser
804 ## @param replica.containerSecurityContext.runAsGroup Set Valkey replicas containers' Security Context runAsGroup
805 ## @param replica.containerSecurityContext.runAsNonRoot Set Valkey replicas containers' Security Context runAsNonRoot
806 ## @param replica.containerSecurityContext.allowPrivilegeEscalation Set Valkey replicas pod's Security Context allowPrivilegeEscalation
807 ## @param replica.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
808 ## @param replica.containerSecurityContext.seccompProfile.type Set Valkey replicas containers' Security Context seccompProfile
809 ## @param replica.containerSecurityContext.capabilities.drop Set Valkey replicas containers' Security Context capabilities to drop
811 containerSecurityContext:
817 allowPrivilegeEscalation: false
818 readOnlyRootFilesystem: true
823 ## @param replica.schedulerName Alternate scheduler for Valkey replicas pods
824 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
827 ## @param replica.runtimeClassName Name of the runtime class to be used by replica pod(s)
830 ## @param replica.updateStrategy.type Valkey replicas statefulset strategy type
831 ## @skip replica.updateStrategy.rollingUpdate
832 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
836 ## Can be set to RollingUpdate, OnDelete (statefulset), Recreate (deployment)
839 ## @param replica.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
842 ## @param replica.priorityClassName Valkey replicas pods' priorityClassName
844 priorityClassName: ""
845 ## @param replica.podManagementPolicy podManagementPolicy to manage scaling operation of %%MAIN_CONTAINER_NAME%% pods
846 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
848 podManagementPolicy: ""
849 ## @param replica.automountServiceAccountToken Mount Service Account token in pod
851 automountServiceAccountToken: false
852 ## @param replica.hostAliases Valkey replicas pods host aliases
853 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
856 ## @param replica.podLabels Extra labels for Valkey replicas pods
857 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
860 ## @param replica.podAnnotations Annotations for Valkey replicas pods
861 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
864 ## @param replica.shareProcessNamespace Share a single process namespace between all of the containers in Valkey replicas pods
865 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
867 shareProcessNamespace: false
868 ## @param replica.podAffinityPreset Pod affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
869 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
871 podAffinityPreset: ""
872 ## @param replica.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
873 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
875 podAntiAffinityPreset: soft
876 ## Node affinity preset
877 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
880 ## @param replica.nodeAffinityPreset.type Node affinity preset type. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
883 ## @param replica.nodeAffinityPreset.key Node label key to match. Ignored if `replica.affinity` is set
886 ## @param replica.nodeAffinityPreset.values Node label values to match. Ignored if `replica.affinity` is set
893 ## @param replica.affinity Affinity for Valkey replicas pods assignment
894 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
895 ## NOTE: `replica.podAffinityPreset`, `replica.podAntiAffinityPreset`, and `replica.nodeAffinityPreset` will be ignored when it's set
898 ## @param replica.nodeSelector Node labels for Valkey replicas pods assignment
899 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
902 ## @param replica.tolerations Tolerations for Valkey replicas pods assignment
903 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
906 ## @param replica.topologySpreadConstraints Spread Constraints for Valkey replicas pod assignment
907 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
909 ## topologySpreadConstraints:
912 ## whenUnsatisfiable: DoNotSchedule
914 topologySpreadConstraints: []
915 ## @param replica.dnsPolicy DNS Policy for Valkey replica pods
916 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
918 ## dnsPolicy: ClusterFirst
921 ## @param replica.dnsConfig DNS Configuration for Valkey replica pods
922 ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
928 ## - name: single-request-reopen
931 ## @param replica.lifecycleHooks for the Valkey replica container(s) to automate configuration before or after startup
934 ## @param replica.extraVolumes Optionally, specify an extra list of additional volumes for the Valkey replicas pod(s)
937 ## @param replica.extraVolumeMounts Optionally, specify extra list of additional volumeMounts for the Valkey replicas container(s)
939 extraVolumeMounts: []
940 ## @param replica.sidecars Add additional sidecar containers to the Valkey replicas pod(s)
943 ## - name: your-image-name
945 ## imagePullPolicy: Always
948 ## containerPort: 1234
951 ## @param replica.initContainers Add additional init containers to the Valkey replicas pod(s)
952 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
955 ## - name: your-image-name
957 ## imagePullPolicy: Always
958 ## command: ['sh', '-c', 'echo "hello world"']
961 ## Persistence Parameters
962 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
965 ## @param replica.persistence.enabled Enable persistence on Valkey replicas nodes using Persistent Volume Claims
968 ## @param replica.persistence.medium Provide a medium for `emptyDir` volumes.
971 ## @param replica.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
974 ## @param replica.persistence.path The path the volume will be mounted at on Valkey replicas containers
975 ## NOTE: Useful when using different Valkey images
978 ## @param replica.persistence.subPath The subdirectory of the volume to mount on Valkey replicas containers
979 ## NOTE: Useful in dev environments
982 ## @param replica.persistence.subPathExpr Used to construct the subPath subdirectory of the volume to mount on Valkey replicas containers
985 ## @param replica.persistence.storageClass Persistent Volume storage class
986 ## If defined, storageClassName: <storageClass>
987 ## If set to "-", storageClassName: "", which disables dynamic provisioning
988 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
991 ## @param replica.persistence.accessModes Persistent Volume access modes
995 ## @param replica.persistence.size Persistent Volume size
998 ## @param replica.persistence.annotations Additional custom annotations for the PVC
1001 ## @param replica.persistence.labels Additional custom labels for the PVC
1004 ## @param replica.persistence.selector Additional labels to match for the PVC
1011 ## @param replica.persistence.dataSource Custom PVC data source
1014 ## @param replica.persistence.existingClaim Use an existing PVC which must be created manually before bound
1015 ## NOTE: requires replica.persistence.enabled: true
1018 ## persistentVolumeClaimRetentionPolicy
1019 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1020 ## @param replica.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
1021 ## @param replica.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1022 ## @param replica.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1024 persistentVolumeClaimRetentionPolicy:
1028 ## Valkey replicas service parameters
1031 ## @param replica.service.type Valkey replicas service type
1034 ## @param replica.service.ports.valkey Valkey replicas service port
1038 ## @param replica.service.nodePorts.valkey Node port for Valkey replicas
1039 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1040 ## NOTE: choose port between <30000-32767>
1044 ## @param replica.service.externalTrafficPolicy Valkey replicas service external traffic policy
1045 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1047 externalTrafficPolicy: Cluster
1048 ## @param replica.service.internalTrafficPolicy Valkey replicas service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)
1049 ## ref: https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/
1051 internalTrafficPolicy: Cluster
1052 ## @param replica.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1055 ## @param replica.service.clusterIP Valkey replicas service Cluster IP
1058 ## @param replica.service.loadBalancerIP Valkey replicas service Load Balancer IP
1059 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1062 ## @param replica.service.loadBalancerClass replicas service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1063 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1065 loadBalancerClass: ""
1066 ## @param replica.service.loadBalancerSourceRanges Valkey replicas service Load Balancer sources
1067 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1069 ## loadBalancerSourceRanges:
1072 loadBalancerSourceRanges: []
1073 ## @param replica.service.annotations Additional custom annotations for Valkey replicas service
1076 ## @param replica.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1077 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1078 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1080 sessionAffinity: None
1081 ## @param replica.service.sessionAffinityConfig Additional settings for the sessionAffinity. Ignored if `replica.service.sessionAffinity` is `None`
1083 ## sessionAffinityConfig:
1085 ## timeoutSeconds: 300
1087 sessionAffinityConfig: {}
1088 ## @param replica.terminationGracePeriodSeconds Integer setting the termination grace period for the valkey-replicas pods
1090 terminationGracePeriodSeconds: 30
1091 ## @section Autoscaling
1092 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
1096 ## @param replica.autoscaling.vpa.enabled Enable VPA
1099 ## @param replica.autoscaling.vpa.annotations Annotations for VPA resource
1102 ## @param replica.autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
1104 controlledResources: []
1105 ## @param replica.autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
1112 ## @param replica.autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
1119 ## @section VPA update policy
1122 ## @param replica.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
1123 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
1127 ## @param replica.autoscaling.hpa.enabled Enable HPA
1130 ## @param replica.autoscaling.hpa.minReplicas Minimum number of replicas
1133 ## @param replica.autoscaling.hpa.maxReplicas Maximum number of replicas
1136 ## @param replica.autoscaling.hpa.targetCPU Target CPU utilization percentage
1139 ## @param replica.autoscaling.hpa.targetMemory Target Memory utilization percentage
1142 ## ServiceAccount configuration
1145 ## @param replica.serviceAccount.create Specifies whether a ServiceAccount should be created
1148 ## @param replica.serviceAccount.name The name of the ServiceAccount to use.
1149 ## If not set and create is true, a name is generated using the common.names.fullname template
1152 ## @param replica.serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
1153 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
1155 automountServiceAccountToken: false
1156 ## @param replica.serviceAccount.annotations Additional custom annotations for the ServiceAccount
1159 ## Pod Disruption Budget configuration
1160 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1161 ## @param replica.pdb.create Enable/disable a Pod Disruption Budget creation
1162 ## @param replica.pdb.minAvailable [object] Minimum number/percentage of pods that should remain scheduled
1163 ## @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.
1169## @section Valkey Sentinel configuration parameters
1172 ## @param sentinel.enabled Use Valkey Sentinel on Valkey pods.
1173 ## IMPORTANT: this will disable the primary and replicas services and
1174 ## create a single Valkey service exposing both the Valkey and Sentinel ports
1177 ## Iamguarded Valkey Sentinel image version
1178 ## @param sentinel.image.registry [default: REGISTRY_NAME] Valkey Sentinel image registry
1179 ## @param sentinel.image.repository [default: REPOSITORY_NAME/valkey-sentinel] Valkey Sentinel image repository
1180 ## @skip sentinel.image.tag Valkey Sentinel image tag (immutable tags are recommended)
1181 ## @param sentinel.image.digest Valkey Sentinel image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1182 ## @param sentinel.image.pullPolicy Valkey Sentinel image pull policy
1183 ## @param sentinel.image.pullSecrets Valkey Sentinel image pull secrets
1184 ## @param sentinel.image.debug Enable image debug mode
1188 repository: chainguard-private/valkey-sentinel-iamguarded-sentinel-iamguarded
1191 ## Specify a imagePullPolicy
1192 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1194 pullPolicy: IfNotPresent
1195 ## Optionally, specify an array of imagePullSecrets.
1196 ## Secrets must be manually created in the namespace.
1197 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1200 ## - myRegistryKeySecretName
1203 ## Enable debug mode
1206 ## @param sentinel.annotations Additional custom annotations for Valkey Sentinel resource
1209 ## @param sentinel.primarySet Primary set name
1211 primarySet: myprimary
1212 ## @param sentinel.quorum Sentinel Quorum
1215 ## @param sentinel.getPrimaryTimeout Amount of time to allow before get_sentinel_primary_info() times out.
1217 getPrimaryTimeout: 90
1218 ## @param sentinel.automateClusterRecovery Automate cluster recovery in cases where the last replica is not considered a good replica and Sentinel won't automatically fail over to it.
1219 ## This also prevents any new replica from starting until the last remaining replica is elected as primary to guarantee that it is the one to be elected by Sentinel, and not a newly started replica with no data.
1220 ## NOTE: This feature requires a "downAfterMilliseconds" value less or equal to 2000.
1222 automateClusterRecovery: false
1223 ## @param sentinel.valkeyShutdownWaitFailover Whether the Valkey primary container waits for the failover at shutdown (in addition to the Valkey Sentinel container).
1225 valkeyShutdownWaitFailover: true
1226 ## Sentinel timing restrictions
1227 ## @param sentinel.downAfterMilliseconds Timeout for detecting a Valkey node is down
1228 ## @param sentinel.failoverTimeout Timeout for performing the election failover
1230 downAfterMilliseconds: 60000
1231 failoverTimeout: 180000
1232 ## @param sentinel.parallelSyncs Number of replicas that can be reconfigured in parallel to use the new primary after the failover
1235 ## @param sentinel.replicaSyncCheck Wait for data full sync on replicas before marking them as ready (experimental)
1237 replicaSyncCheck: false
1238 ## @param sentinel.configuration Configuration for Valkey Sentinel nodes
1239 ## ref: https://valkey.io/topics/sentinel
1242 ## @param sentinel.command Override default container command (useful when using custom images)
1245 ## @param sentinel.args Override default container args (useful when using custom images)
1248 ## @param sentinel.enableServiceLinks Whether information about services should be injected into pod's environment variable
1250 enableServiceLinks: true
1251 ## @param sentinel.preExecCmds Additional commands to run prior to starting Valkey Sentinel
1254 ## @param sentinel.extraEnvVars Array with extra environment variables to add to Valkey Sentinel nodes
1261 ## @param sentinel.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Valkey Sentinel nodes
1264 ## @param sentinel.extraEnvVarsSecret Name of existing Secret containing extra env vars for Valkey Sentinel nodes
1266 extraEnvVarsSecret: ""
1267 ## @param sentinel.externalPrimary.enabled Use external primary for bootstrapping
1268 ## @param sentinel.externalPrimary.host External primary host to bootstrap from
1269 ## @param sentinel.externalPrimary.port Port for Valkey service external primary host
1275 ## @param sentinel.containerPorts.sentinel Container port to open on Valkey Sentinel nodes
1279 ## Configure extra options for Valkey containers' liveness and readiness probes
1280 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1281 ## @param sentinel.startupProbe.enabled Enable startupProbe on Valkey Sentinel nodes
1282 ## @param sentinel.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1283 ## @param sentinel.startupProbe.periodSeconds Period seconds for startupProbe
1284 ## @param sentinel.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1285 ## @param sentinel.startupProbe.failureThreshold Failure threshold for startupProbe
1286 ## @param sentinel.startupProbe.successThreshold Success threshold for startupProbe
1290 initialDelaySeconds: 10
1294 failureThreshold: 22
1295 ## @param sentinel.livenessProbe.enabled Enable livenessProbe on Valkey Sentinel nodes
1296 ## @param sentinel.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1297 ## @param sentinel.livenessProbe.periodSeconds Period seconds for livenessProbe
1298 ## @param sentinel.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1299 ## @param sentinel.livenessProbe.failureThreshold Failure threshold for livenessProbe
1300 ## @param sentinel.livenessProbe.successThreshold Success threshold for livenessProbe
1304 initialDelaySeconds: 20
1309 ## @param sentinel.readinessProbe.enabled Enable readinessProbe on Valkey Sentinel nodes
1310 ## @param sentinel.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1311 ## @param sentinel.readinessProbe.periodSeconds Period seconds for readinessProbe
1312 ## @param sentinel.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1313 ## @param sentinel.readinessProbe.failureThreshold Failure threshold for readinessProbe
1314 ## @param sentinel.readinessProbe.successThreshold Success threshold for readinessProbe
1318 initialDelaySeconds: 20
1323 ## @param sentinel.customStartupProbe Custom startupProbe that overrides the default one
1325 customStartupProbe: {}
1326 ## @param sentinel.customLivenessProbe Custom livenessProbe that overrides the default one
1328 customLivenessProbe: {}
1329 ## @param sentinel.customReadinessProbe Custom readinessProbe that overrides the default one
1331 customReadinessProbe: {}
1332 ## Persistence parameters
1333 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1336 ## @param sentinel.persistence.enabled Enable persistence on Valkey sentinel nodes using Persistent Volume Claims (Experimental)
1339 ## @param sentinel.persistence.storageClass Persistent Volume storage class
1340 ## If defined, storageClassName: <storageClass>
1341 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1342 ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
1345 ## @param sentinel.persistence.accessModes Persistent Volume access modes
1349 ## @param sentinel.persistence.size Persistent Volume size
1352 ## @param sentinel.persistence.annotations Additional custom annotations for the PVC
1355 ## @param sentinel.persistence.labels Additional custom labels for the PVC
1358 ## @param sentinel.persistence.selector Additional labels to match for the PVC
1365 ## @param sentinel.persistence.dataSource Custom PVC data source
1368 ## @param sentinel.persistence.medium Provide a medium for `emptyDir` volumes.
1371 ## @param sentinel.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
1374 ## persistentVolumeClaimRetentionPolicy
1375 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1376 ## @param sentinel.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
1377 ## @param sentinel.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1378 ## @param sentinel.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1380 persistentVolumeClaimRetentionPolicy:
1384 ## Valkey Sentinel resource requests and limits
1385 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1386 ## @param sentinel.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if sentinel.resources is set (sentinel.resources is recommended for production).
1388 resourcesPreset: "nano"
1389 ## @param sentinel.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1400 ## @param sentinel.fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
1405 ## Configure Container Security Context
1406 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1407 ## @param sentinel.containerSecurityContext.enabled Enable Valkey Sentinel containers' Security Context
1408 ## @param sentinel.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1409 ## @param sentinel.containerSecurityContext.runAsUser Set Valkey Sentinel containers' Security Context runAsUser
1410 ## @param sentinel.containerSecurityContext.runAsGroup Set Valkey Sentinel containers' Security Context runAsGroup
1411 ## @param sentinel.containerSecurityContext.runAsNonRoot Set Valkey Sentinel containers' Security Context runAsNonRoot
1412 ## @param sentinel.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
1413 ## @param sentinel.containerSecurityContext.allowPrivilegeEscalation Set Valkey Sentinel containers' Security Context allowPrivilegeEscalation
1414 ## @param sentinel.containerSecurityContext.seccompProfile.type Set Valkey Sentinel containers' Security Context seccompProfile
1415 ## @param sentinel.containerSecurityContext.capabilities.drop Set Valkey Sentinel containers' Security Context capabilities to drop
1417 containerSecurityContext:
1423 allowPrivilegeEscalation: false
1424 readOnlyRootFilesystem: true
1426 type: RuntimeDefault
1429 ## @param sentinel.lifecycleHooks for the Valkey sentinel container(s) to automate configuration before or after startup
1432 ## @param sentinel.extraVolumes Optionally, specify extra list of additional volumes for the Valkey Sentinel
1435 ## @param sentinel.extraVolumeMounts Optionally, specify extra list of additional volumeMounts for the Valkey Sentinel container(s)
1437 extraVolumeMounts: []
1438 ## Valkey Sentinel service parameters
1441 ## @param sentinel.service.type Valkey Sentinel service type
1444 ## @param sentinel.service.ports.valkey Valkey service port for Valkey
1445 ## @param sentinel.service.ports.sentinel Valkey service port for Valkey Sentinel
1450 ## @param sentinel.service.nodePorts.valkey Node port for Valkey
1451 ## @param sentinel.service.nodePorts.sentinel Node port for Sentinel
1452 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1453 ## NOTE: choose port between <30000-32767>
1454 ## NOTE: By leaving these values blank, they will be generated by ports-configmap
1455 ## If setting manually, please leave at least replica.replicaCount + 1 in between sentinel.service.nodePorts.valkey and sentinel.service.nodePorts.sentinel to take into account the ports that will be created while incrementing that base port
1460 ## @param sentinel.service.externalTrafficPolicy Valkey Sentinel service external traffic policy
1461 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1463 externalTrafficPolicy: Cluster
1464 ## @param sentinel.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1467 ## @param sentinel.service.clusterIP Valkey Sentinel service Cluster IP
1470 ## @param sentinel.service.createPrimary Enable primary service pointing to the current primary (experimental)
1471 ## NOTE: rbac.create need to be set to true
1473 createPrimary: false
1474 ## @param sentinel.service.loadBalancerIP Valkey Sentinel service Load Balancer IP
1475 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1478 ## @param sentinel.service.loadBalancerClass sentinel service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1479 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1481 loadBalancerClass: ""
1482 ## @param sentinel.service.loadBalancerSourceRanges Valkey Sentinel service Load Balancer sources
1483 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1485 ## loadBalancerSourceRanges:
1488 loadBalancerSourceRanges: []
1489 ## @param sentinel.service.annotations Additional custom annotations for Valkey Sentinel service
1492 ## @param sentinel.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1493 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1494 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1496 sessionAffinity: None
1497 ## @param sentinel.service.sessionAffinityConfig Additional settings for the sessionAffinity. Ignored if `sentinel.service.sessionAffinity` is `None`
1499 ## sessionAffinityConfig:
1501 ## timeoutSeconds: 300
1503 sessionAffinityConfig: {}
1504 ## Headless service properties
1507 ## @param sentinel.service.headless.annotations Annotations for the headless service.
1510 ## @param sentinel.terminationGracePeriodSeconds Integer setting the termination grace period for the valkey-node pods
1512 terminationGracePeriodSeconds: 30
1513## @section Other Parameters
1516## @param serviceBindings.enabled Create secret for service binding (Experimental)
1517## Ref: https://servicebinding.io/service-provider/
1521## Network Policy configuration
1522## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1525 ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources
1528 ## @param networkPolicy.allowExternal Don't require client label for connections
1529 ## When set to false, only pods with the correct client label will have network access to the ports
1530 ## Valkey is listening on. When true, Valkey will accept connections from any source
1531 ## (with the correct destination port).
1534 ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1536 allowExternalEgress: true
1537 ## @param networkPolicy.extraIngress Add extra ingress rules to the NetworkPolicy
1547 ## - matchExpressions:
1554 ## @param networkPolicy.extraEgress Add extra egress rules to the NetworkPolicy
1564 ## - matchExpressions:
1571 ## @param networkPolicy.ingressNSMatchLabels Labels to match to allow traffic from other namespaces
1572 ## @param networkPolicy.ingressNSPodMatchLabels Pod labels to match to allow traffic from other namespaces
1574 ingressNSMatchLabels: {}
1575 ingressNSPodMatchLabels: {}
1577 ## @param networkPolicy.metrics.allowExternal Don't require client label for connections for metrics endpoint
1578 ## When set to false, only pods with the correct client label will have network access to the metrics port
1581 ## @param networkPolicy.metrics.ingressNSMatchLabels Labels to match to allow traffic from other namespaces to metrics endpoint
1582 ## @param networkPolicy.metrics.ingressNSPodMatchLabels Pod labels to match to allow traffic from other namespaces to metrics endpoint
1584 ingressNSMatchLabels: {}
1585 ingressNSPodMatchLabels: {}
1586## PodSecurityPolicy configuration
1587## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1590 ## @param podSecurityPolicy.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
1593 ## @param podSecurityPolicy.enabled Enable PodSecurityPolicy's RBAC rules
1596## RBAC configuration
1599 ## @param rbac.create Specifies whether RBAC resources should be created
1602 ## @param rbac.rules Custom RBAC rules to set
1614## ServiceAccount configuration
1617 ## @param serviceAccount.create Specifies whether a ServiceAccount should be created
1620 ## @param serviceAccount.name The name of the ServiceAccount to use.
1621 ## If not set and create is true, a name is generated using the common.names.fullname template
1624 ## @param serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
1625 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
1627 automountServiceAccountToken: false
1628 ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
1631## Redis® Pod Disruption Budget configuration
1632## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
1633## @param pdb DEPRECATED Please use `primary.pdb` and `replica.pdb` values instead
1639 ## @param tls.enabled Enable TLS traffic
1642 ## @param tls.authClients Require clients to authenticate
1645 ## @param tls.autoGenerated Enable autogenerated certificates
1647 autoGenerated: false
1648 ## @param tls.existingSecret The name of the existing secret that contains the TLS certificates
1651 ## @param tls.certFilename Certificate filename
1654 ## @param tls.certKeyFilename Certificate Key filename
1657 ## @param tls.certCAFilename CA Certificate filename
1660 ## @param tls.dhParamsFilename File containing DH params (to support DH-based ciphers)
1662 dhParamsFilename: ""
1663## @section Metrics Parameters
1666 ## @param metrics.enabled Start a sidecar Prometheus Exporter to expose Valkey metrics
1669 ## Iamguarded Redis(R) Exporter image
1670 ## @param metrics.image.registry [default: REGISTRY_NAME] Redis(R) Exporter image registry
1671 ## @param metrics.image.repository [default: REPOSITORY_NAME/redis-exporter] Redis(R) Exporter image repository
1672 ## @skip metrics.image.tag Redis(R) Exporter image tag (immutable tags are recommended)
1673 ## @param metrics.image.digest Redis(R) Exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1674 ## @param metrics.image.pullPolicy Redis(R) Exporter image pull policy
1675 ## @param metrics.image.pullSecrets Redis(R) Exporter image pull secrets
1679 repository: chainguard-private/iamguarded-charts/prometheus-redis-exporter-iamguarded
1682 pullPolicy: IfNotPresent
1683 ## Optionally, specify an array of imagePullSecrets.
1684 ## Secrets must be manually created in the namespace.
1685 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1688 ## - myRegistryKeySecretName
1691 ## @param metrics.containerPorts.http Metrics HTTP container port
1695 ## Configure extra options for Valkey containers' liveness, readiness & startup probes
1696 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
1697 ## @param metrics.startupProbe.enabled Enable startupProbe on Valkey replicas nodes
1698 ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1699 ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
1700 ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1701 ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
1702 ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
1706 initialDelaySeconds: 10
1711 ## @param metrics.livenessProbe.enabled Enable livenessProbe on Valkey replicas nodes
1712 ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1713 ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
1714 ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1715 ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
1716 ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
1720 initialDelaySeconds: 10
1725 ## @param metrics.readinessProbe.enabled Enable readinessProbe on Valkey replicas nodes
1726 ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1727 ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
1728 ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1729 ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
1730 ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
1734 initialDelaySeconds: 5
1739 ## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
1741 customStartupProbe: {}
1742 ## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
1744 customLivenessProbe: {}
1745 ## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
1747 customReadinessProbe: {}
1748 ## @param metrics.command Override default metrics container init command (useful when using custom images)
1751 ## @param metrics.valkeyTargetHost A way to specify an alternative Valkey hostname
1752 ## Useful for certificate CN/SAN matching
1754 valkeyTargetHost: "localhost"
1755 ## @param metrics.extraArgs Extra arguments for Redis(R) Exporter
1758 ## check-keys: myKey,myOtherKey
1761 ## @param metrics.extraEnvVars Array with extra environment variables to add to Redis(R) Exporter
1768 ## Configure Container Security Context
1769 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1770 ## @param metrics.containerSecurityContext.enabled Enable Redis(R) Exporter containers' Security Context
1771 ## @param metrics.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1772 ## @param metrics.containerSecurityContext.runAsUser Set Redis(R) Exporter containers' Security Context runAsUser
1773 ## @param metrics.containerSecurityContext.runAsGroup Set Redis(R) Exporter containers' Security Context runAsGroup
1774 ## @param metrics.containerSecurityContext.runAsNonRoot Set Redis(R) Exporter containers' Security Context runAsNonRoot
1775 ## @param metrics.containerSecurityContext.allowPrivilegeEscalation Set Redis(R) Exporter containers' Security Context allowPrivilegeEscalation
1776 ## @param metrics.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
1777 ## @param metrics.containerSecurityContext.seccompProfile.type Set Redis(R) Exporter containers' Security Context seccompProfile
1778 ## @param metrics.containerSecurityContext.capabilities.drop Set Redis(R) Exporter containers' Security Context capabilities to drop
1780 containerSecurityContext:
1786 allowPrivilegeEscalation: false
1787 readOnlyRootFilesystem: true
1789 type: RuntimeDefault
1792 ## @param metrics.extraVolumes Optionally, specify extra list of additional volumes for the Valkey metrics sidecar
1795 ## @param metrics.extraVolumeMounts Optionally, specify extra list of additional volumeMounts for the Valkey metrics sidecar
1797 extraVolumeMounts: []
1798 ## Redis(R) Exporter resource requests and limits
1799 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1800 ## @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).
1802 resourcesPreset: "nano"
1803 ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1814 ## @param metrics.fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
1815 ## @param metrics.fips.golang Configure Golang FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
1821 ## @param metrics.podLabels Extra labels for Redis(R) Exporter pods
1822 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1825 ## @param metrics.podAnnotations [object] Annotations for Redis(R) Exporter pods
1826 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1829 prometheus.io/scrape: "true"
1830 prometheus.io/port: "9121"
1831 ## Redis(R) Exporter service parameters
1834 ## @param metrics.service.enabled Create Service resource(s) for scraping metrics using PrometheusOperator ServiceMonitor, can be disabled when using a PodMonitor
1837 ## @param metrics.service.type Redis(R) Exporter service type
1840 ## @param metrics.service.ports.http Redis(R) Exporter service port
1844 ## @param metrics.service.externalTrafficPolicy Redis(R) Exporter service external traffic policy
1845 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1847 externalTrafficPolicy: Cluster
1848 ## @param metrics.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
1851 ## @param metrics.service.loadBalancerIP Redis(R) Exporter service Load Balancer IP
1852 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1855 ## @param metrics.service.loadBalancerClass Exporter service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
1856 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1858 loadBalancerClass: ""
1859 ## @param metrics.service.loadBalancerSourceRanges Redis(R) Exporter service Load Balancer sources
1860 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1862 ## loadBalancerSourceRanges:
1865 loadBalancerSourceRanges: []
1866 ## @param metrics.service.annotations Additional custom annotations for Redis(R) Exporter service
1869 ## @param metrics.service.clusterIP Redis(R) Exporter service Cluster IP
1872 ## Prometheus Service Monitor
1873 ## ref: https://github.com/coreos/prometheus-operator
1874 ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1877 ## @param metrics.serviceMonitor.port the service port to scrape metrics from
1880 ## @param metrics.serviceMonitor.enabled Create ServiceMonitor resource(s) for scraping metrics using PrometheusOperator
1883 ## @param metrics.serviceMonitor.namespace The namespace in which the ServiceMonitor will be created
1886 ## @param metrics.serviceMonitor.interval The interval at which metrics should be scraped
1889 ## @param metrics.serviceMonitor.scrapeTimeout The timeout after which the scrape is ended
1892 ## @param metrics.serviceMonitor.relabelings Metrics RelabelConfigs to apply to samples before scraping.
1895 ## @param metrics.serviceMonitor.metricRelabelings Metrics RelabelConfigs to apply to samples before ingestion.
1897 metricRelabelings: []
1898 ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
1901 ## @param metrics.serviceMonitor.additionalLabels Additional labels that can be used so ServiceMonitor resource(s) can be discovered by Prometheus
1903 additionalLabels: {}
1904 ## @param metrics.serviceMonitor.podTargetLabels Labels from the Kubernetes pod to be transferred to the created metrics
1907 ## @param metrics.serviceMonitor.sampleLimit Limit of how many samples should be scraped from every Pod
1910 ## @param metrics.serviceMonitor.targetLimit Limit of how many targets should be scraped
1913 ## @param metrics.serviceMonitor.additionalEndpoints Additional endpoints to scrape (e.g., sentinel)
1914 ## Example to scrape sentinel metrics, also to in order distinguish between Sentinel and Valkey container metrics
1915 ## add metricRelabelings with label like app=valkey to main valkey pod-monitor port:
1916 ## additionalEndpoints:
1917 ## - interval: "30s"
1921 ## target: ["localhost:26379"]
1922 ## metricRelabelings:
1923 ## - targetLabel: "app"
1924 ## replacement: "sentinel"
1926 additionalEndpoints: []
1927 ## Prometheus Pod Monitor
1928 ## ref: https://github.com/coreos/prometheus-operator
1929 ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#podmonitor
1932 ## @param metrics.podMonitor.port the pod port to scrape metrics from
1935 ## @param metrics.podMonitor.enabled Create PodMonitor resource(s) for scraping metrics using PrometheusOperator
1938 ## @param metrics.podMonitor.namespace The namespace in which the PodMonitor will be created
1941 ## @param metrics.podMonitor.interval The interval at which metrics should be scraped
1944 ## @param metrics.podMonitor.scrapeTimeout The timeout after which the scrape is ended
1947 ## @param metrics.podMonitor.relabelings Metrics RelabelConfigs to apply to samples before scraping.
1950 ## @param metrics.podMonitor.metricRelabelings Metrics RelabelConfigs to apply to samples before ingestion.
1952 ## metricRelabelings:
1953 ## - targetLabel: "app"
1954 ## replacement: "valkey"
1956 metricRelabelings: []
1957 ## @param metrics.podMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
1960 ## @param metrics.podMonitor.additionalLabels Additional labels that can be used so PodMonitor resource(s) can be discovered by Prometheus
1962 additionalLabels: {}
1963 ## @param metrics.podMonitor.podTargetLabels Labels from the Kubernetes pod to be transferred to the created metrics
1966 ## @param metrics.podMonitor.sampleLimit Limit of how many samples should be scraped from every Pod
1969 ## @param metrics.podMonitor.targetLimit Limit of how many targets should be scraped
1972 ## @param metrics.podMonitor.additionalEndpoints Additional endpoints to scrape (e.g., sentinel)
1974 ## additionalEndpoints:
1975 ## - interval: "30s"
1979 ## target: ["localhost:26379"]
1980 ## metricRelabelings:
1981 ## - targetLabel: "app"
1982 ## replacement: "sentinel"
1984 additionalEndpoints: []
1985 ## Custom PrometheusRule to be defined
1986 ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
1989 ## @param metrics.prometheusRule.enabled Create a custom prometheusRule Resource for scraping metrics using PrometheusOperator
1992 ## @param metrics.prometheusRule.namespace The namespace in which the prometheusRule will be created
1995 ## @param metrics.prometheusRule.additionalLabels Additional labels for the prometheusRule
1997 additionalLabels: {}
1998 ## @param metrics.prometheusRule.rules Custom Prometheus rules
2001 ## - alert: ValkeyDown
2002 ## expr: valkey_up{service="{{ template "common.names.fullname" . }}-metrics"} == 0
2007 ## summary: Valkey instance {{ "{{ $labels.instance }}" }} down
2008 ## description: Valkey instance {{ "{{ $labels.instance }}" }} is down
2009 ## - alert: ValkeyMemoryHigh
2011 ## valkey_memory_used_bytes{service="{{ template "common.names.fullname" . }}-metrics"} * 100
2013 ## valkey_memory_max_bytes{service="{{ template "common.names.fullname" . }}-metrics"}
2019 ## summary: Valkey instance {{ "{{ $labels.instance }}" }} is using too much memory
2021 ## Valkey instance {{ "{{ $labels.instance }}" }} is using {{ "{{ $value }}" }}% of its available memory.
2022 ## - alert: ValkeyKeyEviction
2024 ## increase(valkey_evicted_keys_total{service="{{ template "common.names.fullname" . }}-metrics"}[5m]) > 0
2029 ## summary: Valkey instance {{ "{{ $labels.instance }}" }} has evicted keys
2031 ## Valkey instance {{ "{{ $labels.instance }}" }} has evicted {{ "{{ $value }}" }} keys in the last 5 minutes.
2034## @section Init Container Parameters
2037## 'volumePermissions' init container parameters
2038## Changes the owner and group of the persistent volume mount point to runAsUser:fsGroup values
2039## based on the *podSecurityContext/*containerSecurityContext parameters
2042 ## @param volumePermissions.enabled Enable init container that changes the owner/group of the PV mount point to `runAsUser:fsGroup`
2045 ## OS Shell + Utility image
2046 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
2047 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
2048 ## @skip volumePermissions.image.tag OS Shell + Utility image tag (immutable tags are recommended)
2049 ## @param volumePermissions.image.digest OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2050 ## @param volumePermissions.image.pullPolicy OS Shell + Utility image pull policy
2051 ## @param volumePermissions.image.pullSecrets OS Shell + Utility image pull secrets
2055 repository: chainguard-private/iamguarded-charts/os-shell-iamguarded
2058 pullPolicy: IfNotPresent
2059 ## Optionally, specify an array of imagePullSecrets.
2060 ## Secrets must be manually created in the namespace.
2061 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2064 ## - myRegistryKeySecretName
2067 ## Init container's resource requests and limits
2068 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2069 ## @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).
2071 resourcesPreset: "nano"
2072 ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
2083 ## @param volumePermissions.fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
2088 ## Init container Security Context
2089 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2090 ## @param volumePermissions.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2091 ## @param volumePermissions.containerSecurityContext.runAsUser Set init container's Security Context runAsUser
2092 ## NOTE: when runAsUser is set to special value "auto", init container will try to chown the
2093 ## data folder to auto-determined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
2094 ## "auto" is especially useful for OpenShift which has scc with dynamic user ids (and 0 is not allowed)
2096 containerSecurityContext:
2099## Kubectl InitContainer
2100## used by Sentinel to update the isPrimary label on the Valkey(TM) pods
2103 ## Iamguarded Kubectl image version
2104 ## @param kubectl.image.registry [default: REGISTRY_NAME] Kubectl image registry
2105 ## @param kubectl.image.repository [default: REPOSITORY_NAME/kubectl] Kubectl image repository
2106 ## @skip kubectl.image.tag Kubectl image tag (immutable tags are recommended), by default, using the current version
2107 ## @param kubectl.image.digest Kubectl image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
2108 ## @param kubectl.image.pullPolicy Kubectl image pull policy
2109 ## @param kubectl.image.pullSecrets Kubectl pull secrets
2113 repository: chainguard-private/iamguarded-charts/kubectl-iamguarded
2116 ## Specify a imagePullPolicy
2117 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
2119 pullPolicy: IfNotPresent
2120 ## Optionally, specify an array of imagePullSecrets.
2121 ## Secrets must be manually created in the namespace.
2122 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
2125 ## - myRegistryKeySecretName
2128 ## @param kubectl.command kubectl command to execute
2130 command: ["/opt/iamguarded/scripts/kubectl-scripts/update-primary-label.sh"]
2131 ## Configure Container Security Context
2132 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2133 ## @param kubectl.containerSecurityContext.enabled Enable kubectl containers' Security Context
2134 ## @param kubectl.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
2135 ## @param kubectl.containerSecurityContext.runAsUser Set kubectl containers' Security Context runAsUser
2136 ## @param kubectl.containerSecurityContext.runAsGroup Set kubectl containers' Security Context runAsGroup
2137 ## @param kubectl.containerSecurityContext.runAsNonRoot Set kubectl containers' Security Context runAsNonRoot
2138 ## @param kubectl.containerSecurityContext.allowPrivilegeEscalation Set kubectl containers' Security Context allowPrivilegeEscalation
2139 ## @param kubectl.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context read-only root filesystem
2140 ## @param kubectl.containerSecurityContext.seccompProfile.type Set kubectl containers' Security Context seccompProfile
2141 ## @param kubectl.containerSecurityContext.capabilities.drop Set kubectl containers' Security Context capabilities to drop
2143 containerSecurityContext:
2149 allowPrivilegeEscalation: false
2150 readOnlyRootFilesystem: true
2152 type: RuntimeDefault
2155 ## Iamguarded Kubectl resource requests and limits
2156 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2157 ## @param kubectl.resources.limits The resources limits for the kubectl containers
2158 ## @param kubectl.resources.requests The requested resources for the kubectl containers
2163 ## @param kubectl.fips.openssl Configure OpenSSL FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
2164 ## @param kubectl.fips.golang Configure Golang FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used
2170## @section useExternalDNS Parameters
2172## @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.
2173## @param useExternalDNS.additionalAnnotations Extra annotations to be utilized when `external-dns` is enabled.
2174## @param useExternalDNS.annotationKey The annotation key utilized when `external-dns` is enabled. Setting this to `false` will disable annotations.
2175## @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.
2180 annotationKey: external-dns.alpha.kubernetes.io/
2181 additionalAnnotations: {}