DirectorySecurity AdvisoriesPricing
Sign in
Directory
coredns logoHELM

coredns

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:
Compare:

1
# Default values for coredns.
2
# This is a YAML-formatted file.
3
# Declare variables to be passed into your templates.
4
5
image:
6
repository: cgr.dev/chainguard-private/coredns-fips
7
# Overrides the image tag whose default is the chart appVersion.
8
tag: 1.14.7@sha256:e1c179395cd6d82fe050ba0065c192c075be9ad8391b9b524fd29b5f828ba6f9
9
pullPolicy: IfNotPresent
10
## Optionally specify an array of imagePullSecrets.
11
## Secrets must be manually created in the namespace.
12
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
13
##
14
pullSecrets: []
15
# pullSecrets:
16
# - name: myRegistryKeySecretName
17
replicaCount: 1
18
resources:
19
limits:
20
cpu: 100m
21
memory: 128Mi
22
requests:
23
cpu: 100m
24
memory: 128Mi
25
rollingUpdate:
26
maxUnavailable: 1
27
maxSurge: 25%
28
terminationGracePeriodSeconds: 30
29
podAnnotations: {}
30
# cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
31
32
podLabels: {}
33
serviceType: "ClusterIP"
34
prometheus:
35
service:
36
enabled: false
37
annotations:
38
prometheus.io/scrape: "true"
39
prometheus.io/port: "9153"
40
selector: {}
41
monitor:
42
enabled: false
43
additionalLabels: {}
44
namespace: ""
45
interval: ""
46
scrapeTimeout: ""
47
scheme: ""
48
honorLabels: false
49
tlsConfig: {}
50
relabelings: []
51
metricRelabelings: []
52
selector: {}
53
service:
54
# clusterIP: ""
55
# clusterIPs: []
56
# loadBalancerIP: ""
57
# loadBalancerClass: ""
58
# externalIPs: []
59
# externalTrafficPolicy: ""
60
# ipFamilyPolicy: ""
61
# trafficDistribution: PreferClose
62
# The name of the Service
63
# If not set, a name is generated using the fullname template
64
name: "kube-dns"
65
annotations: {}
66
# Pod selector
67
selector: {}
68
serviceAccount:
69
create: false
70
# The name of the ServiceAccount to use
71
# If not set and create is true, a name is generated using the fullname template
72
name: ""
73
annotations: {}
74
rbac:
75
# If true, create & use RBAC resources
76
create: true
77
clusterRole:
78
# By default a name is generated using the fullname template.
79
# Override here if desired:
80
nameOverride: ""
81
# isClusterService specifies whether chart should be deployed as cluster-service or normal k8s app.
82
isClusterService: true
83
# Optional priority class to be used for the coredns pods. Used for autoscaler if autoscaler.priorityClassName not set.
84
priorityClassName: ""
85
# Configure the pod level securityContext.
86
podSecurityContext: {}
87
# Configure SecurityContext for Pod.
88
# Ensure that required linux capability to bind port number below 1024 is assigned (`CAP_NET_BIND_SERVICE`).
89
securityContext:
90
allowPrivilegeEscalation: false
91
capabilities:
92
add:
93
- NET_BIND_SERVICE
94
drop:
95
- ALL
96
readOnlyRootFilesystem: true
97
# Default zone is what Kubernetes recommends:
98
# https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#coredns-configmap-options
99
servers:
100
- zones:
101
- zone: .
102
use_tcp: true
103
port: 53
104
# -- expose the service on a different port
105
# servicePort: 5353
106
# If serviceType is nodePort you can specify nodePort here
107
# nodePort: 30053
108
# hostPort: 53
109
plugins:
110
- name: errors
111
# Serves a /health endpoint on :8080, required for livenessProbe
112
- name: health
113
configBlock: |-
114
lameduck 10s
115
# Serves a /ready endpoint on :8181, required for readinessProbe
116
- name: ready
117
# Required to query kubernetes API for data
118
- name: kubernetes
119
parameters: cluster.local in-addr.arpa ip6.arpa
120
configBlock: |-
121
pods insecure
122
fallthrough in-addr.arpa ip6.arpa
123
ttl 30
124
# Serves a /metrics endpoint on :9153, required for serviceMonitor
125
- name: prometheus
126
parameters: 0.0.0.0:9153
127
- name: forward
128
parameters: . /etc/resolv.conf
129
- name: cache
130
parameters: 30
131
- name: loop
132
- name: reload
133
- name: loadbalance
134
# Complete example with all the options:
135
# - zones: # the `zones` block can be left out entirely, defaults to "."
136
# - zone: hello.world. # optional, defaults to "."
137
# scheme: tls:// # optional, defaults to "" (which equals "dns://" in CoreDNS)
138
# - zone: foo.bar.
139
# scheme: dns://
140
# use_tcp: true # set this parameter to optionally expose the port on tcp as well as udp for the DNS protocol
141
# # Note that this will not work if you are also exposing tls or grpc on the same server
142
# port: 12345 # optional, defaults to "" (which equals 53 in CoreDNS)
143
# plugins: # the plugins to use for this server block
144
# - name: kubernetes # name of plugin, if used multiple times ensure that the plugin supports it!
145
# parameters: foo bar # list of parameters after the plugin
146
# configBlock: |- # if the plugin supports extra block style config, supply it here
147
# hello world
148
# foo bar
149
150
# Extra configuration that is applied outside of the default zone block.
151
# Example to include additional config files, which may come from extraVolumes:
152
# extraConfig:
153
# import:
154
# parameters: /opt/coredns/*.conf
155
extraConfig: {}
156
# To use the livenessProbe, the health plugin needs to be enabled in CoreDNS' server config
157
livenessProbe:
158
enabled: true
159
initialDelaySeconds: 60
160
periodSeconds: 10
161
timeoutSeconds: 5
162
failureThreshold: 5
163
successThreshold: 1
164
# To use the readinessProbe, the ready plugin needs to be enabled in CoreDNS' server config
165
readinessProbe:
166
enabled: true
167
initialDelaySeconds: 30
168
periodSeconds: 5
169
timeoutSeconds: 5
170
failureThreshold: 1
171
successThreshold: 1
172
# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#affinity-v1-core
173
# for example:
174
# affinity:
175
# nodeAffinity:
176
# requiredDuringSchedulingIgnoredDuringExecution:
177
# nodeSelectorTerms:
178
# - matchExpressions:
179
# - key: foo.bar.com/role
180
# operator: In
181
# values:
182
# - master
183
affinity: {}
184
# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#topologyspreadconstraint-v1-core
185
# and supports Helm templating.
186
# For example:
187
# topologySpreadConstraints:
188
# - labelSelector:
189
# matchLabels:
190
# app.kubernetes.io/name: '{{ template "coredns.name" . }}'
191
# app.kubernetes.io/instance: '{{ .Release.Name }}'
192
# topologyKey: topology.kubernetes.io/zone
193
# maxSkew: 1
194
# whenUnsatisfiable: ScheduleAnyway
195
# - labelSelector:
196
# matchLabels:
197
# app.kubernetes.io/name: '{{ template "coredns.name" . }}'
198
# app.kubernetes.io/instance: '{{ .Release.Name }}'
199
# topologyKey: kubernetes.io/hostname
200
# maxSkew: 1
201
# whenUnsatisfiable: ScheduleAnyway
202
topologySpreadConstraints: []
203
# Node labels for pod assignment
204
# Ref: https://kubernetes.io/docs/user-guide/node-selection/
205
nodeSelector: {}
206
# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#toleration-v1-core
207
# for example:
208
# tolerations:
209
# - key: foo.bar.com/role
210
# operator: Equal
211
# value: master
212
# effect: NoSchedule
213
tolerations: []
214
# https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
215
podDisruptionBudget: {}
216
# configure custom zone files as per https://coredns.io/2017/05/08/custom-dns-entries-for-kubernetes/
217
zoneFiles: []
218
# - filename: example.db
219
# domain: example.com
220
# contents: |
221
# example.com. IN SOA sns.dns.icann.com. noc.dns.icann.com. 2015082541 7200 3600 1209600 3600
222
# example.com. IN NS b.iana-servers.net.
223
# example.com. IN NS a.iana-servers.net.
224
# example.com. IN A 192.168.99.102
225
# *.example.com. IN A 192.168.99.102
226
227
# optional array of sidecar containers
228
extraContainers: []
229
# - name: some-container-name
230
# image: some-image:latest
231
# imagePullPolicy: Always
232
# optional array of extra volumes to create
233
extraVolumes: []
234
# - name: some-volume-name
235
# emptyDir: {}
236
# optional array of mount points for extraVolumes
237
extraVolumeMounts: []
238
# - name: some-volume-name
239
# mountPath: /etc/wherever
240
241
# optional array of secrets to mount inside coredns container
242
# possible usecase: need for secure connection with etcd backend
243
extraSecrets: []
244
# - name: etcd-client-certs
245
# mountPath: /etc/coredns/tls/etcd
246
# defaultMode: 420
247
# - name: some-fancy-secret
248
# mountPath: /etc/wherever
249
# defaultMode: 440
250
251
# optional array of environment variables for coredns container
252
# possible usecase: provides username and password for etcd user authentications
253
env: []
254
# - name: WHATEVER_ENV
255
# value: whatever
256
# - name: SOME_SECRET_ENV
257
# valueFrom:
258
# secretKeyRef:
259
# name: some-secret-name
260
# key: secret-key
261
262
# To support legacy deployments using CoreDNS with the "k8s-app: kube-dns" label selectors.
263
# See https://github.com/coredns/helm/blob/master/charts/coredns/README.md#adopting-existing-coredns-resources
264
# k8sAppLabelOverride: "kube-dns"
265
266
# Custom labels to apply to Deployment, Pod, Configmap, Service, ServiceMonitor.
267
# Also applied to the autoscaler when autoscaler.inheritCustomLabels is true.
268
customLabels: {}
269
# Custom annotations to apply to Deployment, Pod, Configmap, Service, ServiceMonitor. Including autoscaler if enabled.
270
customAnnotations: {}
271
## Alternative configuration for HPA deployment if wanted
272
## Create HorizontalPodAutoscaler object.
273
##
274
# hpa:
275
# enabled: false
276
# minReplicas: 1
277
# maxReplicas: 10
278
# metrics:
279
# metrics:
280
# - type: Resource
281
# resource:
282
# name: memory
283
# target:
284
# type: Utilization
285
# averageUtilization: 60
286
# - type: Resource
287
# resource:
288
# name: cpu
289
# target:
290
# type: Utilization
291
# averageUtilization: 60
292
hpa:
293
enabled: false
294
minReplicas: 1
295
maxReplicas: 2
296
metrics: []
297
## Configue a cluster-proportional-autoscaler for coredns
298
# See https://github.com/kubernetes-incubator/cluster-proportional-autoscaler
299
autoscaler:
300
# Enabled the cluster-proportional-autoscaler
301
enabled: false
302
# Number of cores in the cluster per coredns replica
303
coresPerReplica: 256
304
# Number of nodes in the cluster per coredns replica
305
nodesPerReplica: 16
306
# Min size of replicaCount
307
min: 0
308
# Max size of replicaCount (default of 0 is no max)
309
max: 0
310
# Whether to include unschedulable nodes in the nodes/cores calculations - this requires version 1.8.0+ of the autoscaler
311
includeUnschedulableNodes: false
312
# If true does not allow single points of failure to form
313
preventSinglePointFailure: true
314
# Annotations for the coredns proportional autoscaler pods
315
podAnnotations: {}
316
# When true, top-level customLabels are also applied to the autoscaler Deployment/pods.
317
inheritCustomLabels: true
318
# Extra labels for the autoscaler Deployment and pods. Independent of customLabels
319
# when inheritCustomLabels is false.
320
customLabels: {}
321
# Extra labels applied only to autoscaler pods.
322
podLabels: {}
323
# Optional pod selector override for the autoscaler Deployment.
324
# If set, pod template labels must match this selector.
325
selector: {}
326
podSecurityContext: {}
327
securityContext:
328
allowPrivilegeEscalation: false
329
readOnlyRootFilesystem: true
330
privileged: false
331
## Optionally specify some extra flags to pass to cluster-proprtional-autoscaler.
332
## Useful for e.g. the nodelabels flag.
333
# customFlags:
334
# - --nodelabels=topology.kubernetes.io/zone=us-east-1a
335
image:
336
repository: cgr.dev/chainguard-private/cluster-proportional-autoscaler-fips
337
tag: 1.11.0@sha256:f3e04058795f077389cc8d34806ca7b0b93a4fe6f54664d759d32ed08e16c4ce
338
pullPolicy: IfNotPresent
339
## Optionally specify an array of imagePullSecrets.
340
## Secrets must be manually created in the namespace.
341
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
342
##
343
pullSecrets: []
344
# pullSecrets:
345
# - name: myRegistryKeySecretName
346
# Optional priority class to be used for the autoscaler pods. priorityClassName used if not set.
347
priorityClassName: ""
348
# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#affinity-v1-core
349
affinity: {}
350
# Node labels for pod assignment
351
# Ref: https://kubernetes.io/docs/user-guide/node-selection/
352
nodeSelector: {}
353
# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#toleration-v1-core
354
tolerations: []
355
# resources for autoscaler pod
356
resources:
357
requests:
358
cpu: "20m"
359
memory: "10Mi"
360
limits:
361
cpu: "20m"
362
memory: "10Mi"
363
# Options for autoscaler configmap
364
configmap:
365
## Annotations for the coredns-autoscaler configmap
366
# i.e. strategy.spinnaker.io/versioned: "false" to ensure configmap isn't renamed
367
annotations: {}
368
# Enables the livenessProbe for cluster-proportional-autoscaler - this requires version 1.8.0+ of the autoscaler
369
livenessProbe:
370
enabled: true
371
initialDelaySeconds: 10
372
periodSeconds: 5
373
timeoutSeconds: 5
374
failureThreshold: 3
375
successThreshold: 1
376
# optional array of sidecar containers
377
extraContainers: []
378
# - name: some-container-name
379
# image: some-image:latest
380
# imagePullPolicy: Always
381
deployment:
382
skipConfig: false
383
enabled: true
384
name: ""
385
## Annotations for the coredns deployment
386
annotations: {}
387
## Pod selector
388
selector: {}
389
# dnsPolicy determines how DNS resolution is handled for the pod.
390
# When isClusterService is true, this defaults to "Default" to avoid circular DNS resolution.
391
# Options: Default, ClusterFirst, ClusterFirstWithHostNet, None
392
# If set to "None", you must provide dnsConfig.
393
dnsPolicy: "Default"
394
# dnsConfig allows fine-grained DNS configuration for the pod.
395
# Only used when dnsPolicy is set to "None" or when custom DNS settings are needed.
396
# Example:
397
# dnsConfig:
398
# nameservers:
399
# - 8.8.8.8
400
# searches:
401
# - my.dns.search.suffix
402
# options:
403
# - name: ndots
404
# value: "2"
405
dnsConfig: {}
406
# Configures initcontainers for the coredns deployment.
407
initContainers: []
408

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.