×

The External DNS Operator includes the following configuration parameters:

Parameter Description

spec

Enables the type of a cloud provider.

spec:
  provider:
    type: AWS (1)
    aws:
      credentials:
        name: aws-access-key (2)
1 Defines available options such as AWS, GCP and Azure.
2 Defines 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.

zones:
- "myzoneid" (1)
1 Specifies 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.

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

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

  • expected: ClusterIP

  • NodePort

  • LoadBalancer

  • ExternalName

4 Ensures that the controller considers only those resources which matches with label filter.
5 The 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.
6 External 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.
source:
  type: OpenShiftRoute (1)
  openshiftRouteOptions:
    routerName: default (2)
    labelFilter:
      matchLabels:
        external-dns.mydomain.org/publish: "yes"
1 ExternalDNS` uses type route as source for creating dns records.
2 If 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.