# Default values for external-dns. # This is a YAML-formatted file. # Declare variables to be passed into your templates. global: # -- Global image pull secrets. imagePullSecrets: [] # @schema item: object image: # @schema additionalProperties: false # -- Image repository for the `external-dns` container. repository: registry.k8s.io/external-dns/external-dns # -- Image tag for the `external-dns` container, this will default to `.Chart.AppVersion` if not set. tag: # @schema type:[string, null] # -- Image pull policy for the `external-dns` container. pullPolicy: IfNotPresent # @schema enum:[IfNotPresent, Always] # -- Image pull secrets. imagePullSecrets: [] # @schema item: object # -- (string) Override the name of the chart. nameOverride: # @schema type:[string, null]; default: null # -- (string) Override the full name of the chart. fullnameOverride: # @schema type:[string, null]; default: null # -- Labels to add to all chart resources. commonLabels: {} serviceAccount: # -- If `true`, create a new `ServiceAccount`. create: true # -- Labels to add to the service account. labels: {} # -- Annotations to add to the service account. Templates are allowed in both the key and the value. Example: `example.com/annotation/{{ .Values.nameOverride }}: {{ .Values.nameOverride }}` annotations: {} # -- (string) If this is set and `serviceAccount.create` is `true` this will be used for the created `ServiceAccount` name, if set and `serviceAccount.create` is `false` then this will define an existing `ServiceAccount` to use. name: # @schema type:[string, null]; default: null # -- Set this to `false` to [opt out of API credential automounting](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#opt-out-of-api-credential-automounting) for the `ServiceAccount`. automountServiceAccountToken: true service: # -- Service annotations. annotations: {} # -- Service HTTP port. port: 7979 # @schema minimum:0; default:7979 # -- Service IP families (e.g. IPv4 and/or IPv6). ipFamilies: [] # @schema type: [array, null]; item: string; itemEnum: ["IPv4", "IPv6"]; minItems:0; maxItems:2; uniqueItems: true # - IPv4 # - IPv6 # -- Service IP family policy. ipFamilyPolicy: # @schema type: [string, null]; enum:[SingleStack, PreferDualStack, RequireDualStack, null] rbac: # @schema additionalProperties: true # -- If `true`, create a `ClusterRole` & `ClusterRoleBinding` with access to the Kubernetes API. create: true # -- Additional rules to add to the `ClusterRole`. additionalPermissions: [] # -- Annotations to add to the `Deployment`. deploymentAnnotations: {} # -- Extra containers to add to the `Deployment`. extraContainers: [] # -- [Deployment Strategy](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy). deploymentStrategy: # @schema additionalProperties: true type: Recreate # @schema enum:[Recreate, RollingUpdate]; type:string; default: Recreate # -- (int) Specify the number of old `ReplicaSets` to retain to allow rollback of the `Deployment``. revisionHistoryLimit: # @schema type:[integer, null];minimum:0 # -- Labels to add to the `Pod`. podLabels: {} # -- Annotations to add to the `Pod`. podAnnotations: {} # -- (bool) Set this to `false` to [opt out of API credential automounting](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#opt-out-of-api-credential-automounting) for the `Pod`. automountServiceAccountToken: true # -- If `true`, the `Pod` will have [process namespace sharing](https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) enabled. shareProcessNamespace: false # -- [Pod security context](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#podsecuritycontext-v1-core), this supports full customisation. # @default -- See _values.yaml_ podSecurityContext: runAsNonRoot: true fsGroup: 65534 seccompProfile: type: RuntimeDefault # -- (string) Priority class name for the `Pod`. priorityClassName: # @schema type:[string, null]; default: null # -- (int) Termination grace period for the `Pod` in seconds. terminationGracePeriodSeconds: # @schema type:[integer, null] # -- (string) [DNS policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) for the pod, if not set the default will be used. dnsPolicy: # @schema type:[string, null]; default: null # -- (object) [DNS config](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config) for the pod, if not set the default will be used. dnsConfig: # @schema type:[object, null]; default: null # -- [Init containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) to add to the `Pod` definition. initContainers: [] # -- [Security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container) for the `external-dns` container. # @default -- See _values.yaml_ securityContext: privileged: false allowPrivilegeEscalation: false readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 65532 runAsGroup: 65532 capabilities: drop: ["ALL"] # -- [Environment variables](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) for the `external-dns` container. env: [] # -- [Liveness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) configuration for the `external-dns` container. # @default -- See _values.yaml_ livenessProbe: httpGet: path: /healthz port: http initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 2 successThreshold: 1 # -- [Readiness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) configuration for the `external-dns` container. # @default -- See _values.yaml_ readinessProbe: httpGet: path: /healthz port: http initialDelaySeconds: 5 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 6 successThreshold: 1 # -- Extra [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) for the `Pod`. extraVolumes: [] # -- Extra [volume mounts](https://kubernetes.io/docs/concepts/storage/volumes/) for the `external-dns` container. extraVolumeMounts: [] # -- [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the `external-dns` container. resources: {} # -- Node labels to match for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). nodeSelector: {} # -- Affinity settings for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). If an explicit label selector is not provided for pod affinity or pod anti-affinity one will be created from the pod selector labels. affinity: {} # -- Topology spread constraints for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). If an explicit label selector is not provided one will be created from the pod selector labels. topologySpreadConstraints: [] # -- Node taints which will be tolerated for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). tolerations: [] serviceMonitor: # -- If `true`, create a `ServiceMonitor` resource to support the _Prometheus Operator_. enabled: false # -- Additional labels for the `ServiceMonitor`. additionalLabels: {} # -- Annotations to add to the `ServiceMonitor`. annotations: {} # -- (string) If set create the `ServiceMonitor` in an alternate namespace. namespace: # @schema type:[string, null]; default: null # -- (string) If set override the _Prometheus_ default interval. interval: # @schema type:[string, null]; default: null # -- (string) If set override the _Prometheus_ default scrape timeout. scrapeTimeout: # @schema type:[string, null]; default: null # -- (string) If set overrides the _Prometheus_ default scheme. scheme: # @schema type:[string, null]; default: null # -- Configure the `ServiceMonitor` [TLS config](https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#tlsconfig). tlsConfig: {} # -- (string) Provide a bearer token file for the `ServiceMonitor`. bearerTokenFile: # @schema type:[string, null]; default: null # -- [Relabel configs](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config) to apply to samples before ingestion. relabelings: [] # -- [Metric relabel configs](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs) to apply to samples before ingestion. metricRelabelings: [] # -- Provide target labels for the `ServiceMonitor`. targetLabels: [] # -- Log level. logLevel: info # @schema enum:[panic, debug, info, warning, error, fatal]; type:string; default: "info" # -- Log format. logFormat: text # @schema enum:["text", "json"]; type:string; default: "text" # -- Interval for DNS updates. interval: 1m # -- If `true`, triggers run loop on create/update/delete events in addition of regular interval. triggerLoopOnEvent: false # -- if `true`, _ExternalDNS_ will run in a namespaced scope (`Role`` and `Rolebinding`` will be namespaced too). namespaced: false # -- _Gateway API_ gateway namespace to watch. gatewayNamespace: # @schema type:[string, null]; default: null # -- _Kubernetes_ resources to monitor for DNS entries. sources: - service - ingress # -- How DNS records are synchronized between sources and providers; available values are `create-only`, `sync`, & `upsert-only`. policy: upsert-only # @schema enum:[create-only, sync, upsert-only]; type:string; default: "upsert-only" # -- Specify the registry for storing ownership and labels. # Valid values are `txt`, `aws-sd`, `dynamodb` & `noop`. registry: txt # @schema enum:[txt, aws-sd, dynamodb, noop]; default: "txt" # -- (string) Specify an identifier for this instance of _ExternalDNS_ when using a registry other than `noop`. txtOwnerId: # @schema type:[string, null]; default: null # -- (string) Specify a prefix for the domain names of TXT records created for the `txt` registry. # Mutually exclusive with `txtSuffix`. txtPrefix: # @schema type:[string, null]; default: null # -- (string) Specify a suffix for the domain names of TXT records created for the `txt` registry. # Mutually exclusive with `txtPrefix`. txtSuffix: # @schema type:[string, null]; default: null # -- Limit possible target zones by domain suffixes. domainFilters: [] # -- Intentionally exclude domains from being managed. excludeDomains: [] # -- Filter resources queried for endpoints by label selector. labelFilter: # @schema type: [string,null]; default: null # -- Filter resources queried for endpoints by annotation selector. annotationFilter: # @schema type: [string,null]; default: null # -- Annotation prefix for external-dns annotations (useful for split horizon DNS with multiple instances). annotationPrefix: # @schema type: [string,null]; default: null # -- Record types to manage (default: A, AAAA, CNAME) managedRecordTypes: [] # @schema type: [array, null]; item: string; uniqueItems: true provider: # @schema type: [object, string] # -- _ExternalDNS_ provider name; for the available providers and how to configure them see [README](https://github.com/kubernetes-sigs/external-dns/blob/master/charts/external-dns/README.md#providers). name: aws webhook: image: # -- (string) Image repository for the `webhook` container. repository: # @schema type:[string, null]; default: null # -- (string) Image tag for the `webhook` container. tag: # @schema type:[string, null]; default: null # -- Image pull policy for the `webhook` container. pullPolicy: IfNotPresent # -- [Environment variables](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) for the `webhook` container. env: [] # -- Extra arguments to provide for the `webhook` container. args: [] # -- Extra [volume mounts](https://kubernetes.io/docs/concepts/storage/volumes/) for the `webhook` container. extraVolumeMounts: [] # -- [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the `webhook` container. resources: {} # -- [Pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container) for the `webhook` container. # @default -- See _values.yaml_ securityContext: {} # -- [Liveness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) configuration for the `external-dns` container. # @default -- See _values.yaml_ livenessProbe: httpGet: path: /healthz # @schema type:[string, null]; default: null port: http-webhook # @schema type:[integer,string]; default: string initialDelaySeconds: 10 # @schema type:[integer, null]; default: null periodSeconds: 10 # @schema type:[integer, null]; default: null timeoutSeconds: 5 # @schema type:[integer, null]; default: null failureThreshold: 2 # @schema type:[integer, null]; default: null successThreshold: 1 # @schema type:[integer, null]; default: null # -- [Readiness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) configuration for the `webhook` container. # @default -- See _values.yaml_ readinessProbe: httpGet: path: /healthz # @schema type:[string, null]; default: null port: http-webhook # @schema type:[integer,string]; default: string initialDelaySeconds: 5 # @schema type:[integer, null]; default: null periodSeconds: 10 # @schema type:[integer, null]; default: null timeoutSeconds: 5 # @schema type:[integer, null]; default: null failureThreshold: 6 # @schema type:[integer, null]; default: null successThreshold: 1 # @schema type:[integer, null]; default: null service: # -- Webhook exposed HTTP port for the service. port: 8080 # -- Optional [Service Monitor](https://prometheus-operator.dev/docs/operator/design/#servicemonitor) configuration for the `webhook` container. # @default -- See _values.yaml_ serviceMonitor: interval: # @schema type:[string, null]; default: null scheme: # @schema type:[string, null]; default: null tlsConfig: {} bearerTokenFile: # @schema type:[string, null]; default: null scrapeTimeout: # @schema type:[string, null]; default: null metricRelabelings: [] relabelings: [] # -- Extra arguments to provide to _ExternalDNS_. # An array or map can be used, with maps allowing for value overrides; maps also support slice values to use the same arg multiple times. extraArgs: {} # @schema type: [array, null, object]; item: string; uniqueItems: true secretConfiguration: # -- If `true`, create a `Secret` to store sensitive provider configuration (**DEPRECATED**). enabled: false # -- Mount path for the `Secret`, this can be templated. mountPath: # @schema type:[string, null]; default: null # -- Sub-path for mounting the `Secret`, this can be templated. subPath: # @schema type:[string, null]; default: null # -- `Secret` data. data: {} # -- (bool) No effect - reserved for use in sub-charting. enabled: # @schema type: [boolean, null]; description: No effect - reserved for use in sub-charting