sigs.k8s.io/external-dns@v0.14.1/charts/external-dns/README.md (about) 1 # external-dns 2 3    4 5 ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers. 6 7 **Homepage:** <https://github.com/kubernetes-sigs/external-dns/> 8 9 ## Maintainers 10 11 | Name | Email | Url | 12 | ---- | ------ | --- | 13 | stevehipwell | <steve.hipwell@gmail.com> | | 14 15 ## Source Code 16 17 * <https://github.com/kubernetes-sigs/external-dns/> 18 19 ## Installing the Chart 20 21 Before you can install the chart you will need to add the `external-dns` repo to [Helm](https://helm.sh/). 22 23 ```shell 24 helm repo add external-dns https://kubernetes-sigs.github.io/external-dns/ 25 ``` 26 27 After you've installed the repo you can install the chart. 28 29 ```shell 30 helm upgrade --install external-dns external-dns/external-dns --version 1.14.3 31 ``` 32 33 ## Providers 34 35 Configuring the _ExternalDNS_ provider should be done via the `provider.name` value with provider specific configuration being set via the `provider.<name>.<key>` values, where supported, and the `extraArgs` value. For legacy support `provider` can be set to the name of the provider with all additional configuration being set via the `extraArgs` value. 36 See [documentation](https://kubernetes-sigs.github.io/external-dns/#new-providers) for more info on available providers and tutorials. 37 38 ### Providers with Specific Configuration Support 39 40 | Provider | Supported | 41 |------------------------|------------| 42 | `webhook` | ✅ | 43 44 ## Namespaced Scoped Installation 45 46 external-dns supports running on a namespaced only scope, too. 47 If `namespaced=true` is defined, the helm chart will setup `Roles` and `RoleBindings` instead `ClusterRoles` and `ClusterRoleBindings`. 48 49 ### Limited Supported 50 51 Not all sources are supported in namespaced scope, since some sources depends on cluster-wide resources. 52 For example: Source `node` isn't supported, since `kind: Node` has scope `Cluster`. 53 Sources like `istio-virtualservice` only work, if all resources like `Gateway` and `VirtualService` are present in the same 54 namespaces as `external-dns`. 55 56 The annotation `external-dns.alpha.kubernetes.io/endpoints-type: NodeExternalIP` is not supported. 57 58 If `namespaced` is set to `true`, please ensure that `sources` my only contains supported sources (Default: `service,ingress`). 59 60 ### Support Matrix 61 62 | Source | Supported | Infos | 63 |------------------------|------------|------------------------| 64 | `ingress` | ✅ | | 65 | `istio-gateway` | ✅ | | 66 | `istio-virtualservice` | ✅ | | 67 | `crd` | ✅ | | 68 | `kong-tcpingress` | ✅ | | 69 | `openshift-route` | ✅ | | 70 | `skipper-routegroup` | ✅ | | 71 | `gloo-proxy` | ✅ | | 72 | `contour-httpproxy` | ✅ | | 73 | `service` | ⚠️️ | NodePort not supported | 74 | `node` | ❌ | | 75 | `pod` | ❌ | | 76 77 ## Values 78 79 | Key | Type | Default | Description | 80 |-----|------|---------|-------------| 81 | affinity | object | `{}` | 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. | 82 | automountServiceAccountToken | bool | `nil` | 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`. | 83 | commonLabels | object | `{}` | Labels to add to all chart resources. | 84 | deploymentAnnotations | object | `{}` | Annotations to add to the `Deployment`. | 85 | deploymentStrategy | object | `{"type":"Recreate"}` | [Deployment Strategy](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy). | 86 | dnsConfig | object | `nil` | [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. | 87 | dnsPolicy | string | `nil` | [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. | 88 | domainFilters | list | `[]` | | 89 | env | list | `[]` | [Environment variables](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) for the `external-dns` container. | 90 | extraArgs | list | `[]` | Extra arguments to provide to _ExternalDNS_. | 91 | extraVolumeMounts | list | `[]` | Extra [volume mounts](https://kubernetes.io/docs/concepts/storage/volumes/) for the `external-dns` container. | 92 | extraVolumes | list | `[]` | Extra [volumes](https://kubernetes.io/docs/concepts/storage/volumes/) for the `Pod`. | 93 | fullnameOverride | string | `nil` | Override the full name of the chart. | 94 | image.pullPolicy | string | `"IfNotPresent"` | Image pull policy for the `external-dns` container. | 95 | image.repository | string | `"registry.k8s.io/external-dns/external-dns"` | Image repository for the `external-dns` container. | 96 | image.tag | string | `nil` | Image tag for the `external-dns` container, this will default to `.Chart.AppVersion` if not set. | 97 | imagePullSecrets | list | `[]` | Image pull secrets. | 98 | initContainers | list | `[]` | [Init containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) to add to the `Pod` definition. | 99 | interval | string | `"1m"` | Interval for DNS updates. | 100 | livenessProbe | object | See _values.yaml_ | [Liveness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) configuration for the `external-dns` container. | 101 | logFormat | string | `"text"` | Log format. | 102 | logLevel | string | `"info"` | Log level. | 103 | nameOverride | string | `nil` | Override the name of the chart. | 104 | namespaced | bool | `false` | if `true`, _ExternalDNS_ will run in a namespaced scope (`Role`` and `Rolebinding`` will be namespaced too). | 105 | nodeSelector | object | `{}` | Node labels to match for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). | 106 | podAnnotations | object | `{}` | Annotations to add to the `Pod`. | 107 | podLabels | object | `{}` | Labels to add to the `Pod`. | 108 | podSecurityContext | object | See _values.yaml_ | [Pod security context](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#podsecuritycontext-v1-core), this supports full customisation. | 109 | policy | string | `"upsert-only"` | How DNS records are synchronized between sources and providers; available values are `sync` & `upsert-only`. | 110 | priorityClassName | string | `nil` | Priority class name for the `Pod`. | 111 | provider.name | string | `"aws"` | _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). | 112 | provider.webhook.args | list | `[]` | Extra arguments to provide for the `webhook` container. | 113 | provider.webhook.env | list | `[]` | [Environment variables](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) for the `webhook` container. | 114 | provider.webhook.extraVolumeMounts | list | `[]` | Extra [volume mounts](https://kubernetes.io/docs/concepts/storage/volumes/) for the `webhook` container. | 115 | provider.webhook.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy for the `webhook` container. | 116 | provider.webhook.image.repository | string | `nil` | Image repository for the `webhook` container. | 117 | provider.webhook.image.tag | string | `nil` | Image tag for the `webhook` container. | 118 | provider.webhook.livenessProbe | object | See _values.yaml_ | [Liveness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) configuration for the `external-dns` container. | 119 | provider.webhook.readinessProbe | object | See _values.yaml_ | [Readiness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) configuration for the `webhook` container. | 120 | provider.webhook.resources | object | `{}` | [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the `webhook` container. | 121 | provider.webhook.securityContext | object | See _values.yaml_ | [Pod security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container) for the `webhook` container. | 122 | provider.webhook.serviceMonitor | object | See _values.yaml_ | Optional [Service Monitor](https://prometheus-operator.dev/docs/operator/design/#servicemonitor) configuration for the `webhook` container. | 123 | rbac.additionalPermissions | list | `[]` | Additional rules to add to the `ClusterRole`. | 124 | rbac.create | bool | `true` | If `true`, create a `ClusterRole` & `ClusterRoleBinding` with access to the Kubernetes API. | 125 | readinessProbe | object | See _values.yaml_ | [Readiness probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) configuration for the `external-dns` container. | 126 | registry | string | `"txt"` | Specify the registry for storing ownership and labels. Valid values are `txt`, `aws-sd`, `dynamodb` & `noop`. | 127 | resources | object | `{}` | [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the `external-dns` container. | 128 | revisionHistoryLimit | int | `nil` | Specify the number of old `ReplicaSets` to retain to allow rollback of the `Deployment``. | 129 | secretConfiguration.data | object | `{}` | `Secret` data. | 130 | secretConfiguration.enabled | bool | `false` | If `true`, create a `Secret` to store sensitive provider configuration (**DEPRECATED**). | 131 | secretConfiguration.mountPath | string | `nil` | Mount path for the `Secret`, this can be templated. | 132 | secretConfiguration.subPath | string | `nil` | Sub-path for mounting the `Secret`, this can be templated. | 133 | securityContext | object | See _values.yaml_ | [Security context](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container) for the `external-dns` container. | 134 | service.annotations | object | `{}` | Service annotations. | 135 | service.ipFamilies | list | `[]` | Service IP families. | 136 | service.ipFamilyPolicy | string | `nil` | Service IP family policy. | 137 | service.port | int | `7979` | Service HTTP port. | 138 | serviceAccount.annotations | object | `{}` | Annotations to add to the service account. | 139 | serviceAccount.automountServiceAccountToken | string | `nil` | 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`. | 140 | serviceAccount.create | bool | `true` | If `true`, create a new `ServiceAccount`. | 141 | serviceAccount.labels | object | `{}` | Labels to add to the service account. | 142 | serviceAccount.name | string | `nil` | 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. | 143 | serviceMonitor.additionalLabels | object | `{}` | Additional labels for the `ServiceMonitor`. | 144 | serviceMonitor.annotations | object | `{}` | Annotations to add to the `ServiceMonitor`. | 145 | serviceMonitor.bearerTokenFile | string | `nil` | Provide a bearer token file for the `ServiceMonitor`. | 146 | serviceMonitor.enabled | bool | `false` | If `true`, create a `ServiceMonitor` resource to support the _Prometheus Operator_. | 147 | serviceMonitor.interval | string | `nil` | If set override the _Prometheus_ default interval. | 148 | serviceMonitor.metricRelabelings | list | `[]` | [Metric relabel configs](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs) to apply to samples before ingestion. | 149 | serviceMonitor.namespace | string | `nil` | If set create the `ServiceMonitor` in an alternate namespace. | 150 | serviceMonitor.relabelings | list | `[]` | [Relabel configs](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config) to apply to samples before ingestion. | 151 | serviceMonitor.scheme | string | `nil` | If set overrides the _Prometheus_ default scheme. | 152 | serviceMonitor.scrapeTimeout | string | `nil` | If set override the _Prometheus_ default scrape timeout. | 153 | serviceMonitor.targetLabels | list | `[]` | Provide target labels for the `ServiceMonitor`. | 154 | serviceMonitor.tlsConfig | object | `{}` | Configure the `ServiceMonitor` [TLS config](https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#tlsconfig). | 155 | shareProcessNamespace | bool | `false` | If `true`, the `Pod` will have [process namespace sharing](https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) enabled. | 156 | sources | list | `["service","ingress"]` | _Kubernetes_ resources to monitor for DNS entries. | 157 | terminationGracePeriodSeconds | int | `nil` | Termination grace period for the `Pod` in seconds. | 158 | tolerations | list | `[]` | Node taints which will be tolerated for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). | 159 | topologySpreadConstraints | list | `[]` | 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. | 160 | triggerLoopOnEvent | bool | `false` | If `true`, triggers run loop on create/update/delete events in addition of regular interval. | 161 | txtOwnerId | string | `nil` | Specify an identifier for this instance of _ExternalDNS_ wWhen using a registry other than `noop`. | 162 | txtPrefix | string | `nil` | Specify a prefix for the domain names of TXT records created for the `txt` registry. Mutually exclusive with `txtSuffix`. | 163 | txtSuffix | string | `nil` | Specify a suffix for the domain names of TXT records created for the `txt` registry. Mutually exclusive with `txtPrefix`. | 164 165 ---------------------------------------------- 166 167 Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs/).