DirectorySecurity AdvisoriesPricing
Sign in
Directory
valkey logoHELM

valkey

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart versions
Default values
Chart metadata
Images

Tag:

1
global:
2
# The global image registry (this will override the registry of all container images defined in this chart)
3
imageRegistry: ""
4
# The global image pull secrets (list of secret names)
5
imagePullSecrets: []
6
image:
7
# Image registry
8
registry: chainreg.biz
9
# Valkey container image repository
10
repository: scratch-images/test-tmp/valkey
11
# Image pull policy (Always, IfNotPresent, Never)
12
pullPolicy: IfNotPresent
13
# Image tag (leave empty to use .Chart.AppVersion)
14
tag: 9.1.0-r4@sha256:918dc4dfad828c9949365c013ae2fb06839cdb76452fcbfedf958de4de5ce92f
15
# List of image pull secrets (for private registries)
16
imagePullSecrets: []
17
# Override the default name or full name of resources
18
nameOverride: ""
19
fullnameOverride: ""
20
# Kubernetes cluster domain name
21
clusterDomain: cluster.local
22
serviceAccount:
23
# Create a service account for Valkey
24
create: true
25
# Whether to automount the service account token
26
automount: false
27
# Annotations to add to the service account
28
annotations: {}
29
# Name of an existing service account to use (if create: false)
30
name: ""
31
# Annotations and labels for the pods
32
podAnnotations: {}
33
podLabels: {}
34
# Annotations for the Deployment/StatefulSet resource
35
workloadAnnotations: {}
36
# Common labels to add to all resources (Deployment, Service, ConfigMap, etc.)
37
commonLabels: {}
38
# Security context for the pod (applies to all containers)
39
podSecurityContext:
40
fsGroup: 1000
41
runAsUser: 1000
42
runAsGroup: 1000
43
seccompProfile:
44
type: RuntimeDefault
45
# Priority class name for pod scheduling (leave empty to use cluster's default)
46
priorityClassName: ""
47
# Security context for the Valkey containers
48
securityContext:
49
allowPrivilegeEscalation: false
50
capabilities:
51
drop:
52
- ALL
53
readOnlyRootFilesystem: true
54
runAsNonRoot: true
55
runAsUser: 1000
56
service:
57
# Type of Kubernetes service (ClusterIP, NodePort, LoadBalancer)
58
type: ClusterIP
59
# Port on which Valkey will be exposed
60
port: 6379
61
annotations: {}
62
# NodePort value (if service.type is NodePort)
63
nodePort: 0
64
# ClusterIP value
65
clusterIP: ""
66
# Class of a load balancer implementation
67
loadBalancerClass: ""
68
# If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer
69
# will be restricted to the specified client IPs.
70
# This field will be ignored if the cloud-provider does not support the feature.
71
loadBalancerSourceRanges: []
72
# Application protocol
73
appProtocol: ""
74
# Network policy to control traffic to the pods
75
# More info: https://kubernetes.io/docs/concepts/services-networking/network-policies/
76
networkPolicy: {}
77
# Resource limits/requests for the main Valkey container
78
resources: {}
79
# Example:
80
# limits:
81
# cpu: 100m
82
# memory: 128Mi
83
# requests:
84
# cpu: 100m
85
# memory: 128Mi
86
87
# Resource limits/requests for init containers
88
initResources: {}
89
# Example:
90
# limits:
91
# cpu: 100m
92
# memory: 128Mi
93
# requests:
94
# cpu: 100m
95
# memory: 128Mi
96
97
# Additional init containers
98
extraInitContainers: []
99
# Additional containers
100
extraContainers: []
101
# Persistent storage configuration (standalone deployment only)
102
dataStorage:
103
# Enable persistent volume claim creation
104
enabled: false
105
# Use existing PVC by name (skip dynamic provisioning if set)
106
persistentVolumeClaimName: ""
107
# Subpath inside PVC to mount
108
subPath: ""
109
# Name of the volume (referenced in deployment)
110
volumeName: "valkey-data"
111
# Request size (e.g. 5Gi) for dynamically provisioned volume
112
requestedSize: ""
113
# Name of the storage class to use
114
className: ""
115
# Access modes for the PVC (e.g., ReadWriteOnce, ReadWriteMany)
116
accessModes:
117
- ReadWriteOnce
118
# If true, keep the PVC on Helm uninstall
119
keepPvc: false
120
# Optional annotations to add to the PVC
121
annotations: {}
122
# Optional labels to add to the PVC
123
labels: {}
124
# If hostPath is set then a hostPath DirectoryOrCreate volume is used
125
hostPath: ""
126
# Mount additional secrets into the Valkey container
127
extraValkeySecrets: []
128
# Mount additional configMaps into the Valkey container
129
extraValkeyConfigs: []
130
# Mount extra secrets as volume to init container (deprecated, use extraValkeySecrets)
131
extraSecretValkeyConfigs: false
132
# Mount additional emptyDir or hostPath volumes (advanced use)
133
extraVolumes: []
134
# - name: hostpath-volume
135
# hostPath:
136
# path: /opt/valkey/hostpath-volume/
137
# type: DirectoryOrCreate
138
extraVolumeMounts: []
139
# - mountPath: /some/path/
140
# name: hostpath-volume
141
142
# Content for valkey.conf (will be mounted via ConfigMap)
143
valkeyConfig: ""
144
auth:
145
# Enable ACL-based authentication
146
# IMPORTANT: When authentication is enabled, the 'default' user MUST be defined in either
147
# aclUsers or aclConfig. Without a default user, anyone can access the database without
148
# credentials, creating a security risk.
149
enabled: false
150
# Use an existing secret for user passwords. Key defaults to username.
151
usersExistingSecret: ""
152
# Map of users to create with ACL permissions.
153
# If usersExistingSecret is set, passwords from the secret take priority over inline passwords.
154
# NOTE: If using aclUsers, the 'default' user must be included here.
155
aclUsers: {}
156
# Example:
157
# default:
158
# permissions: "~* &* +@all"
159
# password: "secretpass" # Inline password (fallback if usersExistingSecret not set)
160
# passwordKey: "admin-pwd" # Key in usersExistingSecret (defaults to username)
161
# read-user:
162
# permissions: "~* -@all +@read +ping +info"
163
164
# Inline ACL configuration that will be appended after generated users.
165
# NOTE: If using aclConfig, ensure the 'default' user is defined here.
166
aclConfig: ""
167
# Example:
168
# aclConfig: |
169
# user default on >secretpass ~* &* +@all
170
# Replica configuration for master-replica replication mode
171
replica:
172
enabled: false
173
# Number of replica instances (total pods = replicas + 1 master)
174
replicas: 2
175
# Username for replicas to authenticate to master, ignored if auth.enabled is false.
176
# IMPORTANT: When auth.enabled is true, this user MUST be defined in auth.aclUsers.
177
# The chart requires this to retrieve the password for replica authentication.
178
# The user must have appropriate replication permissions: +psync +replconf +ping
179
replicationUser: "default"
180
# Replication settings
181
# Use diskless replication (sync directly from memory) vs disk-based
182
disklessSync: false
183
# Write safety - require minimum number of healthy replicas to accept writes
184
# Set to 0 to disable this check, or 1+ to require minimum replicas before accepting writes
185
# This ensures data durability by requiring at least N replicas to be in sync
186
minReplicasToWrite: 0
187
# Maximum replication lag in seconds before a replica is considered unhealthy
188
minReplicasMaxLag: 10
189
# Read service configuration
190
service:
191
# Enable read service (load balances read traffic across all pods)
192
enabled: true
193
# Service type (ClusterIP, NodePort, LoadBalancer)
194
type: ClusterIP
195
# Port on which the read service will be exposed
196
port: 6379
197
# Optional annotations for the read service
198
annotations: {}
199
# NodePort value (if service.type is NodePort)
200
nodePort: 0
201
# ClusterIP value
202
clusterIP: ""
203
# Application protocol
204
appProtocol: ""
205
# Class of a load balancer implementation
206
loadBalancerClass: ""
207
# If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer
208
# will be restricted to the specified client IPs.
209
# This field will be ignored if the cloud-provider does not support the feature.
210
loadBalancerSourceRanges: []
211
# Persistence configuration (required for replicas)
212
persistence:
213
# Size of the PVC for each replica (required when replica.enabled is true)
214
size: ""
215
# Storage class name (empty = use default storage class)
216
storageClass: ""
217
# Access modes for the PVC
218
accessModes:
219
- ReadWriteOnce
220
# PersistentVolumeClaim retention policy for StatefulSet
221
# Controls when PVCs are deleted (requires Kubernetes 1.23+)
222
# More info: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
223
persistentVolumeClaimRetentionPolicy: {}
224
tls:
225
# Enable TLS
226
enabled: false
227
# Name of the Secret containing TLS keys (required)
228
existingSecret: ""
229
# Secret key name containing server public certificate
230
serverPublicKey: server.crt
231
# Secret key name containing server private key
232
serverKey: server.key
233
# Secret key name containing Certificate Authority public certificate
234
caPublicKey: ca.crt
235
# Secret key name containing DH parameters (optional)
236
dhParamKey: ""
237
# Require that clients authenticate with a certificate
238
requireClientCertificate: false
239
# Node selector for pod assignment
240
nodeSelector: {}
241
# Tolerations for pod assignment to tainted nodes
242
tolerations: []
243
# Affinity rules for pod scheduling
244
affinity: {}
245
# Set Deployment strategy. See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
246
deploymentStrategy: RollingUpdate # @schema enum:[RollingUpdate,Recreate]
247
# See https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints
248
topologySpreadConstraints: []
249
# PodDisruptionBudget configuration (only used in replicated mode)
250
# Helps keep enough replicas available during voluntary disruptions
251
podDisruptionBudget:
252
# Enable PodDisruptionBudget
253
enabled: false
254
# Minimum number of pods that must be available (takes precedence over maxUnavailable if both set)
255
minAvailable: null
256
# Maximum number of pods that can be unavailable during disruptions
257
maxUnavailable: 1
258
# Unhealthy pod eviction policy (optional)
259
# Valid values: IfHealthyBudget, AlwaysAllow
260
unhealthyPodEvictionPolicy: ""
261
# Valkey logging level: debug, verbose, notice, warning
262
valkeyLogLevel: "notice"
263
# Environment variables to inject into Valkey container
264
265
env: {}
266
# Example:
267
# LOG_LEVEL: info
268
269
metrics:
270
# Enable Prometheus exporter sidecar
271
enabled: false
272
# Exporter configuration
273
exporter:
274
# Command to run in the metrics exporter container (overrides args)
275
command: []
276
# Arguments to pass to the metrics exporter container
277
args: []
278
# Example:
279
# - --redis.addr=redis:6379
280
# Port on which the metrics exporter will listen
281
port: 9121
282
# Image configuration
283
image:
284
# Image registry
285
registry: chainreg.biz
286
# Prometheus exporter container image repository
287
repository: scratch-images/test-tmp/prometheus-redis-exporter
288
# Image pull policy (Always, IfNotPresent, Never)
289
pullPolicy: IfNotPresent
290
# Image tag (leave empty to use latest)
291
tag: 1.87.0-r0@sha256:d0e72f4e91bb151df3a8012267877d7f8944363544ab9f1de65c9eab81b4efda
292
resources: {}
293
# Example:
294
# limits:
295
# cpu: 100m
296
# memory: 128Mi
297
# requests:
298
# cpu: 100m
299
# memory: 128Mi
300
# Extra volume mounts for metrics exporter container
301
extraVolumeMounts: []
302
# Additional secrets to mount for metrics exporter
303
extraExporterSecrets: []
304
# Environment variables to inject into the metrics exporter container
305
extraEnvs: {}
306
# Example:
307
# LOG_LEVEL: info
308
securityContext: {}
309
# Example:
310
# runAsNonRoot: true
311
# runAsUser: 1000
312
# runAsGroup: 1000
313
# capabilities:
314
# drop:
315
# - ALL
316
# readOnlyRootFilesystem: true
317
# Service configuration for the metrics exporter
318
service:
319
# Enable a separate service for the metrics exporter
320
enabled: true
321
# Service type (ClusterIP, NodePort, LoadBalancer)
322
type: ClusterIP
323
# Port on which the metrics exporter service will be exposed
324
ports:
325
http: 9121
326
# Optional annotations for the metrics exporter service
327
annotations: {}
328
# Optional labels for the metrics exporter service
329
extraLabels: {}
330
# ServiceMonitor configuration for Prometheus Operator
331
# Application protocol
332
appProtocol: ""
333
serviceMonitor:
334
# Enable ServiceMonitor resource for scraping service metrics
335
enabled: false
336
# Port name or number to scrape metrics from
337
port: metrics
338
# Extra labels for the ServiceMonitor resource
339
extraLabels: {}
340
# Extra annotations for the ServiceMonitor resource
341
annotations: {}
342
# How often Prometheus should scrape metrics
343
interval: 30s
344
# Maximum duration allowed for a scrape request
345
scrapeTimeout: ""
346
# Relabeling rules applied before scraping metrics
347
relabelings: []
348
# Relabeling rules applied before ingesting metrics
349
metricRelabelings: []
350
# Set honorLabels to true to preserve original metric labels
351
honorLabels: false
352
# Extra labels to help Prometheus discover ServiceMonitor resources
353
additionalLabels: {}
354
# Pod labels to copy onto the generated metrics
355
podTargetLabels: []
356
# Maximum number of samples to collect per Pod scrape
357
sampleLimit: false
358
# Maximum number of scrape targets allowed
359
targetLimit: false
360
podMonitor:
361
# Enable PodMonitor resource for scraping pod metrics
362
enabled: false
363
# Port name or number to scrape metrics from
364
port: metrics
365
# Extra labels for the ServiceMonitor resource
366
extraLabels: {}
367
# Extra annotations for the ServiceMonitor resource
368
annotations: {}
369
# Frequency for Prometheus to scrape pod metrics
370
interval: 30s
371
# Time limit for each scrape operation
372
scrapeTimeout: ""
373
# Relabeling rules to apply before scraping pod metrics
374
relabelings: []
375
# Relabeling rules to apply before ingesting pod metrics
376
metricRelabelings: []
377
# If true, keeps original labels from the pod metrics
378
honorLabels: false
379
# Additional labels for Prometheus to find PodMonitor resources
380
additionalLabels: {}
381
# Pod labels to attach to the metrics
382
podTargetLabels: []
383
# Maximum samples to scrape from each Pod
384
sampleLimit: false
385
# Maximum number of pods to scrape
386
targetLimit: false
387
# PrometheusRule configuration for alerting rules (used by kube-prometheus-stack)
388
prometheusRule:
389
# Enable creation of PrometheusRule resource
390
enabled: false
391
# Extra labels to add to the PrometheusRule resource
392
extraLabels: {}
393
# Extra annotations to add to the PrometheusRule resource
394
extraAnnotations: {}
395
# List of Prometheus alerting rules
396
rules: []
397
# Example alerting rules:
398
# - alert: ValkeyDown
399
# annotations:
400
# summary: Valkey instance {{ "{{ $labels.instance }}" }} down
401
# description: Valkey instance {{ "{{ $labels.instance }}" }} is down.
402
# expr: |
403
# redis_up{service="{{ include "valkey.fullname" . }}-metrics"} == 0
404
# for: 2m
405
# labels:
406
# severity: error
407
# - alert: ValkeyMemoryHigh
408
# annotations:
409
# summary: Valkey instance {{ "{{ $labels.instance }}" }} is using too much memory
410
# description: |
411
# Valkey instance {{ "{{ $labels.instance }}" }} is using {{ "{{ $value }}" }}% of its available memory.
412
# expr: |
413
# redis_memory_used_bytes{service="{{ include "valkey.fullname" . }}-metrics"} * 100
414
# /
415
# redis_memory_max_bytes{service="{{ include "valkey.fullname" . }}-metrics"}
416
# > 90 <= 100
417
# for: 2m
418
# labels:
419
# severity: error
420
# - alert: ValkeyKeyEviction
421
# annotations:
422
# summary: Valkey instance {{ "{{ $labels.instance }}" }} has evicted keys
423
# description: |
424
# Valkey instance {{ "{{ $labels.instance }}" }} has evicted {{ "{{ $value }}" }} keys in the last 5 minutes.
425
# expr: |
426
# increase(redis_evicted_keys_total{service="{{ include "valkey.fullname" . }}-metrics"}[5m]) > 0
427
# for: 1s
428
# labels:
429
# severity: error
430

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.