An octoDNS provider that targets PowerDNS's API.
pip install octodns-powerdns
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.9.14
octodns-powerdns==0.0.1
requests==2.26.0
# Start with the latest/specific versions and don't just copy what's here
-e git+https://[email protected]/octodns/octodns.git@9da19749e28f68407a1c246dfdf65663cdc1c422#egg=octodns
-e git+https://[email protected]/octodns/octodns-powerdns.git@ec9661f8b335241ae4746eea467a8509205e6a30#egg=octodns_powerdns
requests==2.26.0
providers:
powerdns:
class: octodns_powerdns.PowerDnsProvider
# The host on which PowerDNS api is listening (required)
host: fqdn
# The port on which PowerDNS api is listening (optional, default 8081)
port: 8081
# The api key that grans access (required, example is using an env var)
api_key: env/POWERDNS_API_KEY
# The nameservers to use for this provider (optional, default unmanaged)
nameserver_values:
- 1.2.3.4.
- 1.2.3.5.
# The nameserver record TTL when managed, (optional, default 600)
nameserver_ttl: 300
All octoDNS record types are supported.
PowerDnsProvider supports full root NS record management.
PowerDnsProvider does not support dynamic records.
See 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.
There is a docker-compose.yml file included in the repo that will set up a PowerDNS server with the API enabled for use in development. The api-key for it is its@secret
.