octodns-metaname¶
OctoDNS provider for the Metaname DNS API.
- Status: Development
- License: Apache 2.0
- Python: 3.10+
Overview¶
octodns-metaname is an OctoDNS provider that enables DNS-as-Code workflows for domains hosted with Metaname, a New Zealand-based DNS registrar.
This provider allows you to manage your Metaname DNS zones using YAML configuration files, enabling version control, automated testing, and CI/CD integration for your DNS infrastructure.
Features¶
- Full support for Metaname DNS record types
- Domain registration and availability checking
- Zone synchronization with OctoDNS
- Integration with 1Password for secret management (via op-opsdevnz)
- Comprehensive test coverage
- Type-safe implementation with mypy
Installation¶
For 1Password integration:
Quick Start¶
- Create an OctoDNS configuration file (
config.yaml):
providers:
config:
class: octodns.provider.yaml.YamlProvider
directory: ./zones
metaname:
class: octodns_metaname.provider.MetanameProvider
api_key: env/METANAME_API_KEY
account_reference: env/METANAME_ACCOUNT_REFERENCE
- Create your zone file (
zones/example.com.yaml):
- Sync your DNS:
Documentation¶
- Specifications - Functional and non-functional requirements
- Design Decisions - Architecture and integration decisions
- User Stories - Usage patterns and workflows
- Testing - Unit and integration test setup
Development¶
# Install with dev dependencies
pip install -e .[dev]
# Run tests
pytest
# Run linting
ruff check .
# Build docs
zensical build