Skip to main content

Lexicon provider for OctoDNS

Project description

Build Status


Use Lexicon providers in OctoDNS


octodns_lexicon is a provider for OctoDNS which by acting as a wrapper, it lets you to use Lexion providers in OctoDNS and thus you can manage your DNS records as code across even more providers.

Getting started

Extra dependencies

Some providers has extra dependencies. These are not installed by default.

See here for instructions on how to install extra dependencies for such providers.


From OctoDNS, this provider can be configured pretty much like any other,

  • class: octodns_lexicon.LexiconProvider
  • raise_on_unknown: if True, raise RuntimeError on unhandled record types (default False)
  • lexicon_config: lexicon config. This dictionary gets sent staight into the wrapped Lexicon provider as a DictConfigSource

Furthermore: this provider also uses the Lexicon EnvironmentConfigSource, so that you can put your lexicon dns providers settings into environment variables, just like in Lexicon.

Example Configuration

         class: octodns_lexicon.LexiconProvider
             provider_name: gandi
                 auth_token: "better kept in environment variable"
                 api_protocol: rest
          class: octodns_provider.LexiconProvider
              provider_name: namecheap
                  auth_sandbox: True
                  auth_username: foobar
                  auth_token: "better kept in environment variable"

Some words of caution.

On Lexicon providers

Some Lexicon providers is not well suited for use in OctoDNS. For example, not all providers support updating TTL, some do not handle multi value records. Others yet might have other unknown shortcomings which makes them unsuitable.

Because of the sheer amount of providers available for Lexicon, it is very hard to test them all and therefore, some sandboxing is recommended before committing to using OctoDNS with a particular LexiconProvider.

A good test case can be creating a multi-value A record (or whichever, really), and then to applying it with OctoDNS multiple times. Only the first run should apply any changes.

Second step could be to change some of the values for that record, and maybe add one or two values, but keep some intact, and then change TTL and apply that a couple of times. Only the first run should apply any changes.

On native OctoDNS providers

If there is a native OctoDNS provider available for a particular provider, then it is advisable to use that one and to not use the wrapped Lexicon equivalent, because some OctoDNS providers handle their DNS updates in atomic transactions, and others has geo DNS support. Also some providers handle updating a multi value record as a single operation whereas octodns_lexicon performs an update/create/create+delete per value.

Download files

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

Files for octodns-lexicon, version 0.1.dev1
Filename, size File type Python version Upload date Hashes
Filename, size octodns_lexicon-0.1.dev1.tar.gz (6.5 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page