An octoDNS provider that targets UltraDNS.
pip install octodns-ultra
Pinning specific versions or SHAs is recommended to avoid unplanned upgrades.
# Start with the latest versions and don't just copy what's here
octodns==0.21.1
octodns-ultra==1.1.3
# Start with the latest/specific versions and don't just copy what's here
-e git+https://git@github.com/octodns/octodns.git@9da19749e28f68407a1c246dfdf65663cdc1c422#egg=octodns
-e git+https://git@github.com/octodns/octodns-ultra.git@ec9661f8b335241ae4746eea467a8509205e6a30#egg=octodns_ultra
providers:
ultra:
class: octodns_ultra.UltraProvider
# Ultra Account Name (required)
account: env/ULTRA_ACCOUNT
# Ultra username (required)
username: env/ULTRA_USERNAME
# Ultra password (required)
password: env/ULTRA_PASSWORD
# Valimail enabled on created zones (optional, default=False)
# valimail: true
# Enable UltraDNS managed DNSSEC (optional, default=None)
# dnssec: trueTargets the UltraDNS REST API. Documentation can be found here.
UltraProvider supports A, AAAA, CAA, CNAME, MX, NS, PTR, SPF, SRV, and TXT
UltraProvider supports full root NS record management.
UltraProvider does not support dynamic records.
Valimail monitor is an UltraDNS feature that automates the creation of email related DNS records. If enabled, octoDNS will ignore the records that the feature automatically adds to the domain.
More information on Valimail Monitor can be found in the UltraDNS documentation.
Important
By default DNSSEC is set to "None", meaning the provider will ignore this setting and maintain current state. Set to "true" or "false" to have the provider manage DNSSEC status.
DNSSEC in UltraDNS is a zone level toggle. Enabling it will create UltraDNS managed DNSSEC related records such as KSK, ZSK, DNSKEY and DS.
More information on UltraDNS's DNSSEC implementation can be found in the UltraDNS documentation.
To have some zones DNSSEC enabled and others not, the recommended implementation is to have two separate providers configured, eg:
providers:
ultra:
class: octodns_ultra.UltraProvider
account: env/ULTRA_ACCOUNT
username: env/ULTRA_USERNAME
password: env/ULTRA_PASSWORD
ultra_dnssec:
class: octodns_ultra.UltraProvider
account: env/ULTRA_ACCOUNT
username: env/ULTRA_USERNAME
password: env/ULTRA_PASSWORD
dnssec: true
zones:
dnssec-zone.net.:
sources:
- config
targets:
- ultra_dnssec
no-dnssec-zone.net.:
sources:
- config
targets:
- ultraSee the /script/ directory for some tools to help with the development process. They generally follow the Script to rule them all pattern. Most useful is ./script/bootstrap which will create a venv and install both the runtime and development related requirements. It will also hook up a pre-commit hook that covers most of what's run by CI.