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