LuPo / octodns-powerdns

PowerDNS API provider for octoDNS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PowerDNS API provider for octoDNS

An octoDNS provider that targets PowerDNS's API.

Installation

Command line

pip install octodns-powerdns

requirements.txt/setup.py

Pinning specific versions or SHAs is recommended to avoid unplanned upgrades.

Versions
# 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
SHAs
# 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-powerdns.git@ec9661f8b335241ae4746eea467a8509205e6a30#egg=octodns_powerdns
requests==2.26.0

Configuration

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

Support Information

Records

All octoDNS record types are supported.

Root NS Records

PowerDnsProvider supports full root NS record management.

Dynamic

PowerDnsProvider does not support dynamic records.

Development

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.

About

PowerDNS API provider for octoDNS


Languages

Language:Python 87.2%Language:Shell 12.8%