---
manager:
  # strict and best-practice will become the defaults in 2.x; enabling them
  # now lets you catch and fix any issues before upgrading.
  validators:
    enabled:
      - strict
      - best-practice

providers:
  # The primary source of record data in most setup is YAML files on disk. By
  # convention it's named config.
  config:
    class: octodns.provider.yaml.YamlProvider
    # There are a number of configuration options available to customize the
    # behavior of the provider, but the defaults are generally suitable and the
    # only required value is the name of the directory where the files can be
    # found. Convention is the same config directory in which this file lives.
    directory: ./config

  # Having a no mail SPF record is considered best practice for any domains
  # that you do not plan to use for email. The octodns-spf module provides
  # SpfSource which by default adds the SPF value `v=spf1 -all` to accomplish
  # this. If you have one or more domains that involve mail check out the email
  # example after you're done here.
  no-mail:
    class: octodns_spf.SpfSource

  # PowerDNS serves as a good option for a locally runnable standalone provider
  # to use in our examples. See the top-level example README for information on
  # how to run it and the documentation for octodns-powerdns for documentation
  # about the details of the config below.
  powerdns:
    class: octodns_powerdns.PowerDnsProvider
    host: 127.0.0.1
    port: 8081
    api_key: env/POWERDNS_API_KEY
    timeout: 10

  # If you wish to push your record data to multiple providers you'd define the
  # other here and include them in the targets list down below. See the
  # multiple-provider example for more details.

zones:

  # This configuration is using dynamic zone config. Rather than having to
  # explicitly list out all of the zones here with their coresponding
  # configuration there's a single wildcard entry. Here the `config` source
  # will look for zone files defined in its configured directory, the files
  # alongside this one. For more details see the dynamic-zone-config example.

  '*':
    # This is the place(s) we look for the records in each zone
    sources:
      # The conig provider will be firs in line to provide records for the
      # zones, and since we're using dynamic zone config it will also be
      # responsible for defining what zones exist.
      - config
      # After config has added its records the we'll add an no email SPF value.
      # It'll create the APEX TXT record if necessary. Again see the email
      # example for more details.
      - no-mail
    # This is the place(s) we push the record data to when applying changes
    targets:
      # Here we're pushing things to our local PowerDNS instance
      - powerdns
