1# Default values for coredns.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
6 repository: cgr.dev/chainguard-private/coredns
7 # Overrides the image tag whose default is the chart appVersion.
8 tag: 1.15.0-r0@sha256:f6141cbcbc82a30cad58e8c917a9198d06917516a9a8790d9f0e1a51ddfc8cdb
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/
16 # - name: myRegistryKeySecretName
28terminationGracePeriodSeconds: 30
30# cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
33serviceType: "ClusterIP"
38 prometheus.io/scrape: "true"
39 prometheus.io/port: "9153"
57 # loadBalancerClass: ""
59 # externalTrafficPolicy: ""
61 # trafficDistribution: PreferClose
62 # The name of the Service
63 # If not set, a name is generated using the fullname template
69 # Create a ServiceAccount for CoreDNS. The ClusterRole (list/watch on pods,
70 # services, endpoints, endpointslices and namespaces) is bound to this
71 # account; with create: false and no name it is bound to the namespace's
72 # "default" ServiceAccount, and so granted to every pod that runs as it.
74 # The name of the ServiceAccount to use
75 # If not set and create is true, a name is generated using the fullname template
79 # If true, create & use RBAC resources
82 # By default a name is generated using the fullname template.
83 # Override here if desired:
85# isClusterService specifies whether chart should be deployed as cluster-service or normal k8s app.
87# Optional priority class to be used for the coredns pods. Used for autoscaler if autoscaler.priorityClassName not set.
89# Configure the pod level securityContext.
91# Configure SecurityContext for the CoreDNS container.
92# The defaults satisfy the `restricted` Pod Security Standard, so the chart
93# installs into a namespace that enforces it.
94# Ensure that required linux capability to bind port number below 1024 is assigned (`CAP_NET_BIND_SERVICE`).
95# The CoreDNS image runs as the distroless `nonroot` user (uid/gid 65532) since
96# 1.11.0. The numeric ids are set here because images before 1.14.7 declare the
97# user by name, which the kubelet cannot verify when `runAsNonRoot` is true.
99 allowPrivilegeEscalation: false
105 readOnlyRootFilesystem: true
111# Default zone is what Kubernetes recommends:
112# https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#coredns-configmap-options
118 # -- expose the service on a different port
120 # If serviceType is nodePort you can specify nodePort here
125 # Serves a /health endpoint on :8080, required for livenessProbe
129 # Serves a /ready endpoint on :8181, required for readinessProbe
131 # Required to query kubernetes API for data
133 parameters: cluster.local in-addr.arpa ip6.arpa
136 fallthrough in-addr.arpa ip6.arpa
138 # Serves a /metrics endpoint on :9153, required for serviceMonitor
140 parameters: 0.0.0.0:9153
142 parameters: . /etc/resolv.conf
148# Complete example with all the options:
149# - zones: # the `zones` block can be left out entirely, defaults to "."
150# - zone: hello.world. # optional, defaults to "."
151# scheme: tls:// # optional, defaults to "" (which equals "dns://" in CoreDNS)
154# use_tcp: true # set this parameter to optionally expose the port on tcp as well as udp for the DNS protocol
155# # Note that this will not work if you are also exposing tls or grpc on the same server
156# port: 12345 # optional, defaults to "" (which equals 53 in CoreDNS)
157# plugins: # the plugins to use for this server block
158# - name: kubernetes # name of plugin, if used multiple times ensure that the plugin supports it!
159# parameters: foo bar # list of parameters after the plugin
160# configBlock: |- # if the plugin supports extra block style config, supply it here
164# Extra configuration that is applied outside of the default zone block.
165# Example to include additional config files, which may come from extraVolumes:
168# parameters: /opt/coredns/*.conf
170# To use the livenessProbe, the health plugin needs to be enabled in CoreDNS' server config
173 initialDelaySeconds: 60
178# To use the readinessProbe, the ready plugin needs to be enabled in CoreDNS' server config
181 initialDelaySeconds: 30
186# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#affinity-v1-core
190# requiredDuringSchedulingIgnoredDuringExecution:
193# - key: foo.bar.com/role
198# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#topologyspreadconstraint-v1-core
199# and supports Helm templating.
201# topologySpreadConstraints:
204# app.kubernetes.io/name: '{{ template "coredns.name" . }}'
205# app.kubernetes.io/instance: '{{ .Release.Name }}'
206# topologyKey: topology.kubernetes.io/zone
208# whenUnsatisfiable: ScheduleAnyway
211# app.kubernetes.io/name: '{{ template "coredns.name" . }}'
212# app.kubernetes.io/instance: '{{ .Release.Name }}'
213# topologyKey: kubernetes.io/hostname
215# whenUnsatisfiable: ScheduleAnyway
216topologySpreadConstraints: []
217# Node labels for pod assignment
218# Ref: https://kubernetes.io/docs/user-guide/node-selection/
220# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#toleration-v1-core
223# - key: foo.bar.com/role
228# https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
229podDisruptionBudget: {}
230# configure custom zone files as per https://coredns.io/2017/05/08/custom-dns-entries-for-kubernetes/
232# - filename: example.db
235# example.com. IN SOA sns.dns.icann.com. noc.dns.icann.com. 2015082541 7200 3600 1209600 3600
236# example.com. IN NS b.iana-servers.net.
237# example.com. IN NS a.iana-servers.net.
238# example.com. IN A 192.168.99.102
239# *.example.com. IN A 192.168.99.102
241# optional array of sidecar containers
243# - name: some-container-name
244# image: some-image:latest
245# imagePullPolicy: Always
246# optional array of extra volumes to create
248# - name: some-volume-name
250# optional array of mount points for extraVolumes
252# - name: some-volume-name
253# mountPath: /etc/wherever
255# optional array of secrets to mount inside coredns container
256# possible usecase: need for secure connection with etcd backend
258# - name: etcd-client-certs
259# mountPath: /etc/coredns/tls/etcd
261# - name: some-fancy-secret
262# mountPath: /etc/wherever
265# optional array of environment variables for coredns container
266# possible usecase: provides username and password for etcd user authentications
268# - name: WHATEVER_ENV
270# - name: SOME_SECRET_ENV
273# name: some-secret-name
276# To support legacy deployments using CoreDNS with the "k8s-app: kube-dns" label selectors.
277# See https://github.com/coredns/helm/blob/master/charts/coredns/README.md#adopting-existing-coredns-resources
278# k8sAppLabelOverride: "kube-dns"
280# Custom labels to apply to Deployment, Pod, Configmap, Service, ServiceMonitor.
281# Also applied to the autoscaler when autoscaler.inheritCustomLabels is true.
283# Custom annotations to apply to Deployment, Pod, Configmap, Service, ServiceMonitor. Including autoscaler if enabled.
285## Alternative configuration for HPA deployment if wanted
286## Create HorizontalPodAutoscaler object.
299# averageUtilization: 60
305# averageUtilization: 60
311## Configue a cluster-proportional-autoscaler for coredns
312# See https://github.com/kubernetes-incubator/cluster-proportional-autoscaler
314 # Enabled the cluster-proportional-autoscaler
316 # Number of autoscaler pods. null omits replicas (Kubernetes defaults to one).
317 # Multiple replicas run independent scaling loops without leader election.
319 # Optional PodDisruptionBudget for autoscaler pods, e.g. {maxUnavailable: 1}.
320 # Use multiple replicas to retain availability during voluntary disruptions.
321 podDisruptionBudget: {}
322 # Number of cores in the cluster per coredns replica
324 # Number of nodes in the cluster per coredns replica
326 # Min size of replicaCount
328 # Max size of replicaCount (default of 0 is no max)
330 # Whether to include unschedulable nodes in the nodes/cores calculations - this requires version 1.8.0+ of the autoscaler
331 includeUnschedulableNodes: false
332 # If true does not allow single points of failure to form
333 preventSinglePointFailure: true
334 # Annotations for the coredns proportional autoscaler pods
336 # When true, top-level customLabels are also applied to the autoscaler Deployment/pods.
337 inheritCustomLabels: true
338 # Extra labels for the autoscaler Deployment and pods. Independent of customLabels
339 # when inheritCustomLabels is false.
341 # Extra labels applied only to autoscaler pods.
343 # Optional pod selector override for the autoscaler Deployment.
344 # If set, pod template labels must match this selector.
346 podSecurityContext: {}
348 allowPrivilegeEscalation: false
349 readOnlyRootFilesystem: true
351 ## Optionally specify some extra flags to pass to cluster-proprtional-autoscaler.
352 ## Useful for e.g. the nodelabels flag.
354 # - --nodelabels=topology.kubernetes.io/zone=us-east-1a
356 repository: cgr.dev/chainguard-private/cluster-proportional-autoscaler
357 tag: 1.11.0-r5@sha256:40fc9c14b3123dca408dddbff508e3fceb0a353f433246470ced05ad1e46c432
358 pullPolicy: IfNotPresent
359 ## Optionally specify an array of imagePullSecrets.
360 ## Secrets must be manually created in the namespace.
361 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
365 # - name: myRegistryKeySecretName
366 # Optional priority class to be used for the autoscaler pods. priorityClassName used if not set.
367 priorityClassName: ""
368 # expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#affinity-v1-core
370 # Node labels for pod assignment
371 # Ref: https://kubernetes.io/docs/user-guide/node-selection/
373 # expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#toleration-v1-core
375 # resources for autoscaler pod
383 # Options for autoscaler configmap
385 ## Annotations for the coredns-autoscaler configmap
386 # i.e. strategy.spinnaker.io/versioned: "false" to ensure configmap isn't renamed
388 # Enables the livenessProbe for cluster-proportional-autoscaler - this requires version 1.8.0+ of the autoscaler
391 initialDelaySeconds: 10
396 # optional array of sidecar containers
398 # - name: some-container-name
399 # image: some-image:latest
400 # imagePullPolicy: Always
405 ## Annotations for the coredns deployment
409 # dnsPolicy determines how DNS resolution is handled for the pod.
410 # When isClusterService is true, this defaults to "Default" to avoid circular DNS resolution.
411 # Options: Default, ClusterFirst, ClusterFirstWithHostNet, None
412 # If set to "None", you must provide dnsConfig.
414 # dnsConfig allows fine-grained DNS configuration for the pod.
415 # Only used when dnsPolicy is set to "None" or when custom DNS settings are needed.
421 # - my.dns.search.suffix
426# Configures initcontainers for the coredns deployment.