External DNS Operator configuration parameters

The External DNS Operator includes the following configuration parameters:

ParameterDescription

spec

Enables the type of a cloud provider.

  1. spec:
  2. provider:
  3. type: AWS (1)
  4. aws:
  5. credentials:
  6. name: aws-access-key (2)
1Defines available options such as AWS, GCP and Azure.
2Defines a name of the secret which contains credentials for your cloud provider.

zones

Enables you to specify DNS zones by their domains. If you do not specify zones, ExternalDNS discovers all the zones present in your cloud provider account.

  1. zones:
  2. - myzoneid (1)
1Specifies the IDs of DNS zones.

domains

Enables you to specify AWS zones by their domains. If you do not specify domains, ExternalDNS discovers all the zones present in your cloud provider account.

  1. domains:
  2. - filterType: Include (1)
  3. matchType: Exact (2)
  4. name: myzonedomain1.com (3)
  5. - filterType: Include
  6. matchType: Pattern (4)
  7. pattern: “.*\.otherzonedomain\.com (5)
1Instructs ExternalDNS to include the domain specified.
2Instructs ExtrnalDNS that the domain matching has to be exact as opposed to regular expression match.
3Defines the exact domain name by which ExternalDNS filters.
4Sets regex-domain-filter flag in ExternalDNS. You can limit possible domains by using a Regex filter.
5Defines the regex pattern to be used by ExternalDNS to filter the domains of the target zones.

source

Enables you to specify the source for the DNS records, Service or Route.

  1. source: (1)
  2. type: Service (2)
  3. service:
  4. serviceType:(3)
  5. - LoadBalancer
  6. - ClusterIP
  7. labelFilter: (4)
  8. matchLabels:
  9. external-dns.mydomain.org/publish: yes
  10. hostnameAnnotation: Allow (5)
  11. fqdnTemplate:
  12. - “{{.Name}}.myzonedomain.com (6)
1Defines the settings for the source of DNS records.
2ExternalDNS uses Service type as source for creating dns records.
3Sets service-type-filter flag in ExternalDNS. The serviceType contains the following fields:
  • default: LoadBalancer

  • expected: ClusterIP

  • NodePort

  • LoadBalancer

  • ExternalName

4Ensures that the controller considers only those resources which matches with label filter.
5The default value for hostnameAnnotation is Ignore which instructs ExternalDNS to generate DNS records using the templates specified in the field fqdnTemplates. When the value is Allow the DNS records get generated based on the value specified in the external-dns.alpha.kubernetes.io/hostname annotation.
6External DNS Operator uses a string to generate DNS names from sources that don’t define a hostname, or to add a hostname suffix when paired with the fake source.
  1. source:
  2. type: OpenShiftRoute (1)
  3. openshiftRouteOptions:
  4. routerName: default (2)
  5. labelFilter:
  6. matchLabels:
  7. external-dns.mydomain.org/publish: yes
1ExternalDNS` uses type route as source for creating dns records.
2If the source is OpenShiftRoute, then you can pass the Ingress Controller name. The ExternalDNS uses canonical name of Ingress Controller as the target for CNAME record.