Package: octodns-selectel
Selectel DNS provider for octoDNSAnoctoDNSprovider that targetsSelectel DNS.ContentsInstallationCapabilitiesConfigurationQuickstartCurrent provider vs. Legacy providerMigration from legacy DNS APIDevelopmentInstallationInstall Selectel plugin in your environment andoctodnsitself if it is not present.pipinstalloctodnsoctodns-selectelCapabilitiesWhatValueSupported recordsA, AAAA, ALIAS, CNAME, MX, NS, SRV, SSHFP, TXTDynamic records❌ConfigurationAdd selectel provider toconfig.yaml.providers:selectel:class:octodns_selectel.SelectelProvidertoken:env/KEYSTONE_PROJECT_TOKENSetKEYSTONE_PROJECT_TOKENenvironmental variable or write value directly in config withoutenv/prefix.How to obtain required token you can readhereQuickstartTo get more details on configuration and capabilities checkoctodns repository1. Organize your configs.Project
└──.octodns├──config.yaml└──zones├──octodns-test-alias.com.yaml└──octodns-test.com.yaml2. Fill octodns configuration file# .octodns/config.yamlproviders:config:class:octodns.provider.yaml.YamlProviderdirectory:./octodns/zonesdefault_ttl:3600enforce_order:Trueselectel:class:octodns_selectel.SelectelProvidertoken:env/KEYSTONE_PROJECT_TOKENzones:octodns-test.com.:sources:-configtargets:-selecteloctodns-test-alias.com.:sources:-configtargets:-selectel3. Prepare config for each of your zones# .octodns/zones/octodns-test.com.yaml'':-ttl:3600type:Avalues:-1.2.3.4-1.2.3.5-ttl:3600type:AAAAvalues:-6dc1:b9af:74ca:84e9:6c7c:5c0f:c292:9188-5051:e345:9038:052c:00db:eb98:d871:8ae6-ttl:3600type:MXvalue:exchange:mail1.octodns-test.com.preference:10-ttl:3600type:TXTvalues:-"bar"-"foo"_sip._tcp:-ttl:3600type:SRVvalues:-port:5060priority:10target:phone1.example.com.weight:60-port:5030priority:20target:phone2.example.com.weight:0foo:-ttl:3600type:CNAMEvalue:bar.octodns-test.com.sshfp:-ttl:3600type:SSHFPvalues:-algorithm:1fingerprint:"4158f281921260b0205508121c6f5cee879e15f22bdbc319ef2ae9fd308db3be"fingerprint_type:2-algorithm:4fingerprint:"123456789abcdef67890123456789abcdef67890123456789abcdef123456789"fingerprint_type:2txt:-ttl:3600type:TXTvalues:-"bar_txt"-"foo_txt"# .octodns/zones/octodns-test-alias.com.yaml'':-ttl:3600type:ALIASvalue:octodns-test.com.4. Check and apply!# Run config and check suggested changesoctodns-sync--config-file=.octodns/config.yaml# Apply changes if everything is ok by addingoctodns-sync--config-file=.octodns/config.yaml--doitCurrent provider vs. Legacy providerCurrent provider isoctodns_selectel.SelectelProviderLegacy provider isoctodns_selectel.SelectelProviderLegacyThey are not compatible. They utilize different API and created zones live on different authoritative servers.
Zone created in v2 API with current provider is entirely new zone, and not available via v1 api and vice versa.If you are going to create new zone, we strongly recommend to useSelectelProvider.If you have zones in v1, you still can manage them withSelectelLegacyProvider.If you updated plugin from unstable (0.x.x) version you should rename provider class in octodns config fromSelectelProvidertoSelectelLegacyProviderto work with legacy api.Migration from legacy DNS APIIf v1 API is still available for you and your zones are hosted there, then you probably would like to move your zones to v2. Legacy API will be eventually shutdown.With octodns you can sync ALL your v1 zone with v2 by using both providers as in example below.❗️IMPORTANT❗️SELECTEL_TOKENandKEYSTONE_PROJECT_TOKENaredifferenttokens!Above we mentioned how to get keystone token, how to obtain selectel token readhereprocessors:# Selectel doesn't allow manage Root NS records# for skipping root ns use IgnoreRootNsFilter classno-root-ns:class:octodns.processor.filter.IgnoreRootNsFilterproviders:selectel_legacy:class:octodns_selectel.SelectelProviderLegacytoken:env/SELECTEL_TOKENselectel:class:octodns_selectel.SelectelProvidertoken:env/KEYSTONE_PROJECT_TOKENzones:# Using '*' to sync all zones available on account."*":sources:-selectel_legacyprocessors:-no-root-nstargets:-selectelDevelopmentSee the/script/directory for some tools to help with the development process. They generally follow theScript to rule them allpattern. Most useful is./script/bootstrapwhich 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.