Registry / devops / octodns

octodns

JSON →
library1.19.0pypypi✓ verified 84d ago

OctoDNS is an infrastructure-as-code tool for managing DNS records across multiple providers. Current version 1.16.0, requires Python >=3.9. Released on a variable cadence, approximately quarterly.

pip install octodns
INSTALL
IMPORT
SIG · OCTODNS
O
octodns
devopspythonv1.19.0
Install
2.6s avg
Import
353ms
Disk
25MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.19.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.910 runs
installs and imports cleanly · install 0.0s · import 0.365s · 25.7MB
glibc
py 3.103.910 runs
installs and imports cleanly · install 2.6s · import 0.341s · 27MB
25MB installed
● package 25MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

YamlProvider
from octodns.provider.yaml import YamlProvider
from octodns.yaml import YamlProvider
Wrong path - YAML provider is in octodns.provider.yaml
Manager
from octodns.manager import Manager
from octodns import Manager
Manager is not exposed at top-level package

Basic setup for managing a zone with YAML configuration.

from octodns.manager import Manager from octodns.provider.yaml import YamlProvider from octodns.source.yaml import YamlSource from octodns.zone import Zone # Minimal configuration config = { 'manager': { 'id': 'test', 'sources': ['config'], 'providers': {'config': {'class': 'octodns.provider.yaml.YamlProvider'}}, } } zone = Zone('example.com.', [])
octodns --version
Debug
Known issues
breakingThe 'manager' and 'source' directory structure changed in v1.0.0. Existing configs that rely on old import paths or YAML format may break.
fix
Update imports to octodns.manager, octodns.provider.yaml, etc. Refer to migration guide.
affects: <1.0.0
breakingProvider modules that previously lived in octodns.providers (plural) have been moved to octodns.provider (singular) in v1.0.0.
fix
Replace import 'octodns.providers' with 'octodns.provider'.
affects: <1.0.0
gotchaTrailing dot required on zone names (e.g., 'example.com.' not 'example.com'). Missing dot causes validation errors.
fix
Always include trailing dot on FQDN zone names.
affects: all
gotchaYAML provider expects file paths relative to the config directory; absolute paths may not work as expected.
fix
Use paths relative to the config file, or use absolute paths with care.
affects: all
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'octodns.providers'
Import path changed in v1.0.0: 'providers' -> 'provider'.
fix
Use 'from octodns.provider.yaml import YamlProvider' (singular).
Validation error: Zone name must end with a '.'
Zone name string missing trailing dot.
fix
Add trailing dot: 'example.com.'
octodns.manager.Manager: 'config' is not a valid source
Missing or misconfigured 'sources' key in manager config or YAML file path is wrong.
fix
Ensure manager config has a 'sources' list and correct file paths.
Upgrade
Version history
1.19.0latest on PyPI · released Jun 7, 2026
Audit
Dependencies

No dependency data recorded yet.

Agent activity
4 hits · last 30 days
node
4
Resources
octodns — pip install octodns · libregistry