1# Default values for coredns.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
5# EKS add-on compatibility settings, in the shape of AWS's own CoreDNS add-on.
6# templates/_eks-addon-compat.tpl maps them onto this chart's settings, and they
7# win when both are set. Unset, they render nothing.
8# The whole Corefile; replaces the one built from servers and extraConfig.
10# enabled, minReplicas, maxReplicas, nodesPerReplica, and cpuCoresPerReplica
11# set autoscaler.enabled, min, max, nodesPerReplica, and coresPerReplica.
13# Sets service.trafficDistribution.
14trafficDistribution: ""
15# Disabled or Auto; sets the service.kubernetes.io/topology-mode annotation.
16annotationTopologyMode: ""
17# podDisruptionBudget also takes AWS's enabled key: false removes the PDB, and
18# true alone creates one with maxUnavailable: 1 (see podDisruptionBudget below).
21 repository: cgr.dev/chainguard-private/coredns-fips
22 # Overrides the image tag whose default is the chart appVersion.
23 tag: 1.15.0-r1@sha256:57bbf8bf574dbff315cccf6a0e2cc91c57c014cbfda174e07d6fb8e32c9b2b71
24 pullPolicy: IfNotPresent
25 ## Optionally specify an array of imagePullSecrets.
26 ## Secrets must be manually created in the namespace.
27 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
31 # - name: myRegistryKeySecretName
43terminationGracePeriodSeconds: 30
45# cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
48serviceType: "ClusterIP"
53 prometheus.io/scrape: "true"
54 prometheus.io/port: "9153"
72 # loadBalancerClass: ""
74 # externalTrafficPolicy: ""
77 # trafficDistribution: PreferClose
78 # The name of the Service
79 # If not set, a name is generated using the fullname template
85 # Create a ServiceAccount for CoreDNS. The ClusterRole (list/watch on pods,
86 # services, endpoints, endpointslices and namespaces) is bound to this
87 # account; with create: false and no name it is bound to the namespace's
88 # "default" ServiceAccount, and so granted to every pod that runs as it.
90 # The name of the ServiceAccount to use
91 # If not set and create is true, a name is generated using the fullname template
95 # If true, create & use RBAC resources
98 # By default a name is generated using the fullname template.
99 # Override here if desired:
101# isClusterService specifies whether chart should be deployed as cluster-service or normal k8s app.
102isClusterService: true
103# Optional priority class to be used for the coredns pods. Used for autoscaler if autoscaler.priorityClassName not set.
105# Configure the pod level securityContext.
106podSecurityContext: {}
107# Configure SecurityContext for the CoreDNS container.
108# The defaults satisfy the `restricted` Pod Security Standard, so the chart
109# installs into a namespace that enforces it.
110# Ensure that required linux capability to bind port number below 1024 is assigned (`CAP_NET_BIND_SERVICE`).
111# The CoreDNS image runs as the distroless `nonroot` user (uid/gid 65532) since
112# 1.11.0. The numeric ids are set here because images before 1.14.7 declare the
113# user by name, which the kubelet cannot verify when `runAsNonRoot` is true.
115 allowPrivilegeEscalation: false
121 readOnlyRootFilesystem: true
127# Default zone is what Kubernetes recommends:
128# https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#coredns-configmap-options
134 # -- expose the service on a different port
136 # If serviceType is nodePort you can specify nodePort here
141 # Serves a /health endpoint on :8080, required for livenessProbe
145 # Serves a /ready endpoint on :8181, required for readinessProbe
147 # Required to query kubernetes API for data
149 parameters: cluster.local in-addr.arpa ip6.arpa
152 fallthrough in-addr.arpa ip6.arpa
154 # Serves a /metrics endpoint on :9153, required for serviceMonitor
156 parameters: 0.0.0.0:9153
158 parameters: . /etc/resolv.conf
164# Complete example with all the options:
165# - zones: # the `zones` block can be left out entirely, defaults to "."
166# - zone: hello.world. # optional, defaults to "."
167# scheme: tls:// # optional, defaults to "" (which equals "dns://" in CoreDNS)
170# use_tcp: true # set this parameter to optionally expose the port on tcp as well as udp for the DNS protocol
171# # Note that this will not work if you are also exposing tls or grpc on the same server
172# port: 12345 # optional, defaults to "" (which equals 53 in CoreDNS)
173# plugins: # the plugins to use for this server block
174# - name: kubernetes # name of plugin, if used multiple times ensure that the plugin supports it!
175# parameters: foo bar # list of parameters after the plugin
176# configBlock: |- # if the plugin supports extra block style config, supply it here
180# Extra configuration that is applied outside of the default zone block.
181# Example to include additional config files, which may come from extraVolumes:
184# parameters: /opt/coredns/*.conf
186# To use the livenessProbe, the health plugin needs to be enabled in CoreDNS' server config
189 initialDelaySeconds: 60
194# To use the readinessProbe, the ready plugin needs to be enabled in CoreDNS' server config
197 initialDelaySeconds: 30
202# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#affinity-v1-core
206# requiredDuringSchedulingIgnoredDuringExecution:
209# - key: foo.bar.com/role
214# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#topologyspreadconstraint-v1-core
215# and supports Helm templating.
217# topologySpreadConstraints:
220# app.kubernetes.io/name: '{{ template "coredns.name" . }}'
221# app.kubernetes.io/instance: '{{ .Release.Name }}'
222# topologyKey: topology.kubernetes.io/zone
224# whenUnsatisfiable: ScheduleAnyway
227# app.kubernetes.io/name: '{{ template "coredns.name" . }}'
228# app.kubernetes.io/instance: '{{ .Release.Name }}'
229# topologyKey: kubernetes.io/hostname
231# whenUnsatisfiable: ScheduleAnyway
232topologySpreadConstraints: []
233# Node labels for pod assignment
234# Ref: https://kubernetes.io/docs/user-guide/node-selection/
236# expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#toleration-v1-core
239# - key: foo.bar.com/role
244# https://kubernetes.io/docs/tasks/run-application/configure-pdb/#specifying-a-poddisruptionbudget
245podDisruptionBudget: {}
246# configure custom zone files as per https://coredns.io/2017/05/08/custom-dns-entries-for-kubernetes/
248# - filename: example.db
251# example.com. IN SOA sns.dns.icann.com. noc.dns.icann.com. 2015082541 7200 3600 1209600 3600
252# example.com. IN NS b.iana-servers.net.
253# example.com. IN NS a.iana-servers.net.
254# example.com. IN A 192.168.99.102
255# *.example.com. IN A 192.168.99.102
257# optional array of sidecar containers
259# - name: some-container-name
260# image: some-image:latest
261# imagePullPolicy: Always
262# optional array of extra volumes to create
264# - name: some-volume-name
266# optional array of mount points for extraVolumes
268# - name: some-volume-name
269# mountPath: /etc/wherever
271# optional array of secrets to mount inside coredns container
272# possible usecase: need for secure connection with etcd backend
274# - name: etcd-client-certs
275# mountPath: /etc/coredns/tls/etcd
277# - name: some-fancy-secret
278# mountPath: /etc/wherever
281# optional array of environment variables for coredns container
282# possible usecase: provides username and password for etcd user authentications
284# - name: WHATEVER_ENV
286# - name: SOME_SECRET_ENV
289# name: some-secret-name
292# To support legacy deployments using CoreDNS with the "k8s-app: kube-dns" label selectors.
293# See https://github.com/coredns/helm/blob/master/charts/coredns/README.md#adopting-existing-coredns-resources
294# k8sAppLabelOverride: "kube-dns"
296# Custom labels to apply to Deployment, Pod, Configmap, Service, ServiceMonitor.
297# Also applied to the autoscaler when autoscaler.inheritCustomLabels is true.
299# Custom annotations to apply to Deployment, Pod, Configmap, Service, ServiceMonitor. Including autoscaler if enabled.
301## Alternative configuration for HPA deployment if wanted
302## Create HorizontalPodAutoscaler object.
315# averageUtilization: 60
321# averageUtilization: 60
327## Configue a cluster-proportional-autoscaler for coredns
328# See https://github.com/kubernetes-incubator/cluster-proportional-autoscaler
330 # Enabled the cluster-proportional-autoscaler
332 # Number of autoscaler pods. null omits replicas (Kubernetes defaults to one).
333 # Multiple replicas run independent scaling loops without leader election.
335 # Optional PodDisruptionBudget for autoscaler pods, e.g. {maxUnavailable: 1}.
336 # Use multiple replicas to retain availability during voluntary disruptions.
337 podDisruptionBudget: {}
338 # Number of cores in the cluster per coredns replica
340 # Number of nodes in the cluster per coredns replica
342 # Min size of replicaCount
344 # Max size of replicaCount (default of 0 is no max)
346 # Whether to include unschedulable nodes in the nodes/cores calculations - this requires version 1.8.0+ of the autoscaler
347 includeUnschedulableNodes: false
348 # If true does not allow single points of failure to form
349 preventSinglePointFailure: true
350 # Annotations for the coredns proportional autoscaler pods
352 # When true, top-level customLabels are also applied to the autoscaler Deployment/pods.
353 inheritCustomLabels: true
354 # Extra labels for the autoscaler Deployment and pods. Independent of customLabels
355 # when inheritCustomLabels is false.
357 # Extra labels applied only to autoscaler pods.
359 # Optional pod selector override for the autoscaler Deployment.
360 # If set, pod template labels must match this selector.
362 podSecurityContext: {}
364 allowPrivilegeEscalation: false
365 readOnlyRootFilesystem: true
367 ## Optionally specify some extra flags to pass to cluster-proprtional-autoscaler.
368 ## Useful for e.g. the nodelabels flag.
370 # - --nodelabels=topology.kubernetes.io/zone=us-east-1a
372 repository: cgr.dev/chainguard-private/cluster-proportional-autoscaler-fips
373 tag: 1.11.0-r7@sha256:d7b7e39d655bf9a583885eb668c9034b54e043340d805c40185f18c96a02bbfa
374 pullPolicy: IfNotPresent
375 ## Optionally specify an array of imagePullSecrets.
376 ## Secrets must be manually created in the namespace.
377 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
381 # - name: myRegistryKeySecretName
382 # Optional priority class to be used for the autoscaler pods. priorityClassName used if not set.
383 priorityClassName: ""
384 # expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#affinity-v1-core
386 # Node labels for pod assignment
387 # Ref: https://kubernetes.io/docs/user-guide/node-selection/
389 # expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#toleration-v1-core
391 # resources for autoscaler pod
399 # Options for autoscaler configmap
401 ## Annotations for the coredns-autoscaler configmap
402 # i.e. strategy.spinnaker.io/versioned: "false" to ensure configmap isn't renamed
404 # Enables the livenessProbe for cluster-proportional-autoscaler - this requires version 1.8.0+ of the autoscaler
407 initialDelaySeconds: 10
412 # optional array of sidecar containers
414 # - name: some-container-name
415 # image: some-image:latest
416 # imagePullPolicy: Always
421 ## Annotations for the coredns deployment
425 # dnsPolicy determines how DNS resolution is handled for the pod.
426 # When isClusterService is true, this defaults to "Default" to avoid circular DNS resolution.
427 # Options: Default, ClusterFirst, ClusterFirstWithHostNet, None
428 # If set to "None", you must provide dnsConfig.
430 # dnsConfig allows fine-grained DNS configuration for the pod.
431 # Only used when dnsPolicy is set to "None" or when custom DNS settings are needed.
437 # - my.dns.search.suffix
442# Configures initcontainers for the coredns deployment.