Skip to main content

OpsDev.nz OctoDNS provider for the Metaname DNS API

Project description

octodns-metaname

OctoDNS provider for the Metaname DNS API, originally bootstrapped from the upstream octodns-template. Use it to run a DNS-as-Code workflow with OctoDNS for any zones you host at Metaname.

Installation

PyPI release:

pip install octodns-metaname

If you rely on the OpsDev.nz 1Password resolver, install the optional extra:

pip install octodns-metaname[onepassword]

Editable install for local development:

python -m venv venv && source venv/bin/activate
pip install -e .[dev]

OctoDNS integration

Once installed, the provider is available via the entry point metaname. Sample config.yaml fragment:

providers:
  metaname-test:
    class: octodns_metaname.MetanameProvider
    base_url: https://test.metaname.net/api/1.1

Populate/apply workflows follow the standard OctoDNS CLI tools. Consult the OctoDNS docs for full CLI details.

Secret resolution

By default the provider reads secrets directly from environment variables such as METANAME_ACCOUNT_REF and METANAME_API_TOKEN. If your workflow stores values in a vault (e.g., 1Password) you can register a resolver using:

from octodns_metaname import secrets

def resolve(name: str, reference: str | None) -> str | None:
    ...

secrets.set_secret_resolver(resolve)

For CLI usage set OCTODNS_METANAME_SECRET_RESOLVER="module:function" so the resolver is loaded automatically. OpsDev.nz deployments point this at op_opsdevnz.octodns_hooks:resolve, which returns values directly from the 1Password Service Account SDK/CLI.

Development

python -m venv venv && source venv/bin/activate
pip install -e .[dev]
ruff check src tests
mypy src
pytest --maxfail=1

The repo includes a GitHub Actions workflow that runs linting, type checking, tests, and a build on every push.

Releasing

See RELEASING.md for the full TestPyPI → PyPI checklist.

License

Apache-2.0 © OpsDev.nz

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

octodns_metaname-0.1.1.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

octodns_metaname-0.1.1-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file octodns_metaname-0.1.1.tar.gz.

File metadata

  • Download URL: octodns_metaname-0.1.1.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for octodns_metaname-0.1.1.tar.gz
Algorithm Hash digest
SHA256 436643467d24ba176a87bcdfe6981b202a384f526669e3a1c19c25979c73953e
MD5 028a9ae4dcb347cc89b5f347f60463b3
BLAKE2b-256 c4148511633a11e5fc17e03642446fcb48dc1fa3b435b20b25c0f8f7c73d304c

See more details on using hashes here.

File details

Details for the file octodns_metaname-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for octodns_metaname-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a8621461464bdb5950c8810f3d67fc9cd3191941ed178c81fd7b4f26b9269118
MD5 e191017cbfb261f1386c87c50bc4a6cb
BLAKE2b-256 90df86b4a9a7410c6313a1f6e091b8c451525e649f83def6dc9bc290302e4c80

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page