An octoDNS provider that targets NS1.
pip install octodns-ns1
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-ns1==0.0.1
# 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-ns1.git@ec9661f8b335241ae4746eea467a8509205e6a30#egg=octodns_ns1
providers:
ns1:
class: octodns_ns1.Ns1Provider
api_key: env/NS1_API_KEY
# Only required if using dynamic records
monitor_regions:
- lga
# Optional. Default: false. true is Recommended, but not the default
# for backwards compatibility reasons. If true, all NS1 monitors will
# use a shared notify list rather than one per record & value
# combination. See CHANGELOG,
# https://github.com/octodns/octodns/blob/master/CHANGELOG.md, for more
# information before enabling this behavior.
shared_notifylist: false
# Optional. Default: None. If set, back off in advance to avoid 429s
# from rate-limiting. Generally this should be set to the number
# of processes or workers hitting the API, e.g. the value of
# `max_workers`.
parallelism: 11
# Optional. Default: 4. Number of times to retry if a 429 response
# is received.
retry_count: 4
# Optional. Default: None. Additional options or overrides passed to
# the NS1 SDK config, as key-value pairs.
client_config:
endpoint: my.nsone.endpoint # Default: api.nsone.net
ignore-ssl-errors: true # Default: false
follow_pagination: false # Default: true
# Optional. Default: false. Use modern HTTP monitor (true) or the legacy
# HTTP-emulating TCP monitor (false) for HTTP(s) healthchecks.
use_http_monitors: false
# Optional. Default: HTTP/1.0. Default HTTP protocol to use when
# health-checking dynamic record endpoints. See "Health Check Options"
# README section below to override per dynamic record.
# This is only supported when use_http_monitors is set to false. If it
# is set to true, HTTP/1.1 will be used and it cannot be changed.
default_healthcheck_http_version: HTTP/1.0
All octoDNS record types are supported.
Ns1Provider supports full root NS record management.
Ns1Provider supports dynamic records.
Ns1Provider supports subnet targeting in dynamic records.
See https://github.com/octodns/octodns/blob/master/docs/dynamic_records.md#health-checks for information on health checking for dynamic records. Ns1Provider supports the following options:
Key | Description | Default |
---|---|---|
policy | One of:
|
quorum |
frequency | Frequency (in seconds) of health-check | 60 |
connect_timeout | Timeout (in seconds) before we give up trying to connect | 2 |
response_timeout | Timeout (in seconds) after connecting to wait for output | 10 |
rapid_recheck | Enable or disable a second, automatic verification test before changing the status of a host. Enabling this option can help prevent false positives. | False |
http_version | Specify HTTP version to use when HTTP health-checking a host. Only applicable if use_http_monitors=False . One of
|
HTTP/1.0 |
---
octodns:
ns1:
healthcheck:
policy: quorum
frequency: 60
connect_timeout: 2
response_timeout: 10
rapid_recheck: True
http_version: HTTP/1.1
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.