Skip to main content

EdgeCenter DNS v2 API provider for octoDNS

An octoDNS provider that targets EdgeCenter DNS.

Installation

Command line

pip install octodns-edgecenter

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-edgecenter==0.0.2
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-edgecenter.git@ec9661f8b335241ae4746eea467a8509205e6a30#egg=octodns_edgecenter

Configuration

EdgeCenterProvider

providers:
  ec:
    class: octodns_edgecenter.EdgeCenterProvider
    # Your API key
    token: env/EC_TOKEN
    token_type: APIKey
    # or login + password
    #login: env/EC_LOGIN
    #password: env/EC_PASSWORD
    #auth_url: https://api.edgecenter.ru/iam
    #url: https://api.edgecenter.ru/dns/v2
    #records_per_response: 1

Support Information

Records

Supports A, AAAA, NS, MX, TXT, SRV, CNAME, and PTR

Dynamic

Supports dynamic records.

EdgeCenter RR meta passthrough

EdgeCenter RR meta keys that octoDNS dynamic does not model (asn, ip, latlong, notes, regions, and others outside geo/weight/default/backup) can be preserved in YAML under provider-specific passthrough:

octodns:
  edgecenter:
    resource_record_meta:
      - value: 2.2.2.2
        meta:
          regions: [ru-lug]
          notes: set in EdgeCenter UI

On sync, passthrough meta is restored to the API by matching value to the RR content (CNAME targets are stored with a trailing dot, matching octoDNS dynamic values).

YAML is the source of truth. Extra changes now compare the full API payload, not just failover settings. If meta exists in EdgeCenter (for example set in the UI) but is not represented in your config — including passthrough entries — octodns-sync may plan an update that removes it on apply.

Records with EdgeCenter filters but only unsupported RR meta (for example asn or regions without geo, weight, default, or backup on any RR) import as plain values/value records instead of failing. Filters and that meta are not preserved on import. Syncing such a record may flatten server-side steering into a plain multi-value record.

Filters

Supports filter weight of records type A, AAAA, and CNAME (weighted_shuffle)

You need to use the weight pool:

---
'':
  # This is a dynamic record when used with providers that support it
  dynamic:
    # These are the pools of records that can be referenced and thus used by rules
    pools:
      weight:
        # Implicit weight to the weight pool (below)
        values:
        - value: 5.5.5.5
          weight: 25
        - value: 6.6.6.6
        - value: 7.7.7.7
          weight: 75
    # Rules that assign queries to pools
    rules:
    # No geos means match all queries
    - pool: weight
  ttl: 60
  type: A
  # These values become a non-healthchecked default pool
  values:
  - 5.5.5.5
  - 6.6.6.6
  - 7.7.7.7
{
    "rrsets": [
        {
            "name": "your.zone.",
            "type": "A",
            "ttl": 60,
            "filters": [
                {
                    "type": "weighted_shuffle"
                },
                {
                    "limit": 1,
                    "type": "first_n"
                }
            ],
            "resource_records": [
                {
                    "content": [
                        "7.7.7.7"
                    ],
                    "meta": {
                        "weight": 75
                    }
                },
                {
                    "content": [
                        "6.6.6.6"
                    ],
                    "meta": {
                        "weight": 1
                    }
                },
                {
                    "content": [
                        "5.5.5.5"
                    ],
                    "meta": {
                        "weight": 25
                    }
                }
            ]
        }
     ]
}

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.

Metadata

Release files for octodns-edgecenter 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for octodns-edgecenter 1.2.0
File Size Uploaded
octodns_edgecenter-1.2.0.tar.gz 20.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for octodns-edgecenter 1.2.0
File Interpreter ABI Platform
octodns_edgecenter-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.8 kB

Release files / octodns_edgecenter-1.2.0.tar.gz

Download URL octodns_edgecenter-1.2.0.tar.gz
Size 20.6 kB
Tags Source
SHA-256 checksum
How to use checksums
1a27f432d07274a20cbfed23580184415c4e72b8a7f2b2406e6d02635091fb12
BLAKE2b-256 checksum
How to use checksums
27b2f4e51b6b5ae83412a9afabacb429437241979b6afa610e76762f0756f399
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / octodns_edgecenter-1.2.0-py3-none-any.whl

Download URL octodns_edgecenter-1.2.0-py3-none-any.whl
Size 11.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6843759c4835984f45ab93daa088a2b559732272808407491c27b2b8505fc25d
BLAKE2b-256 checksum
How to use checksums
9245867eada80f246112f73b568baefa9105ff813cb999dfd50bcb63f3302bbb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page