COREDNS-AZURE(7)

πŸ“¦
version 1.15.0 Β· 3 versions
, in opensuse-leap 16.0

πŸ’– NAME πŸ’–

azure β€” enables serving zone data from Microsoft Azure DNS service. ✨ And hii bestie, this is the COREDNS-AZURE(7) page from the CoreDNS Plugins manual, so we're literally about to make Azure DNS make sense πŸ’…

🌸 DESCRIPTION 🌸

Okay so the azure plugin is useful for serving zones from Microsoft Azure DNS. It supports all the DNS records supported by Azure, viz. A, AAAA, CNAME, MX, NS, PTR, SOA, SRV, and TXT record types. Heads up though: the NS record type is not supported by azure private DNS. πŸ™ˆ

Zone data is loaded asynchronously after startup and refreshed every minute. ⏰ An unavailable zone or zone-listing error is logged without preventing CoreDNS from starting or other configured zones from being updated. Each zone listing, including retries and pagination, has a one-minute timeout. Configuration and credential initialization errors still prevent startup β€” no cap. πŸ’€

Caveat corner, bestie: until a zone has been successfully loaded, queries for it return SERVFAIL unless fallthrough is explicitly configured. 😭

Only complete, successful updates replace the in-memory zone. Failed updates, including a deleted Azure zone returning an error, retain the last successfully loaded data and are retried. Remove the zone from the Corefile to stop serving this retained data. Snapshots are not persisted across restarts or configuration reloads. 🫢

✨ SYNTAX ✨

Here's the whole syntax vibe πŸͺ„:

              azure RESOURCE_GROUP:ZONE... {
                  tenant TENANT_ID
                  client CLIENT_ID
                  secret CLIENT_SECRET
                  subscription SUBSCRIPTION_ID
                  environment ENVIRONMENT
                  fallthrough [ZONES...]
                  access private
              }
  • RESOURCE_GROUP:ZONE β€” the resource group on Azure to which the hosted zones belongs, and ZONE is the zone that contains data. πŸ—‚οΈ
  • CLIENT_ID and CLIENT_SECRET β€” the credentials for Azure, and tenant specifies the TENANT_ID to be used. SUBSCRIPTION_ID is the subscription ID. All of these are needed to access the data in Azure. πŸ”‘
  • environment β€” specifies the Azure ENVIRONMENT. 🌍
  • fallthrough β€” If zone matches and no record can be generated, pass request to the next plugin. If ZONES is omitted, then fallthrough happens for all zones for which the plugin is authoritative. πŸšͺ
  • access β€” specifies if the zone is public or private. Default is public. πŸ‘€

πŸŽ€ EXAMPLES πŸŽ€

Enable the azure plugin with Azure credentials for private zones example.org, example.private:

              example.org {
                  azure resource_group_foo:example.org resource_group_foo:example.private {
                    tenant 123abc-123abc-123abc-123abc
                    client 123abc-123abc-123abc-234xyz
                    subscription 123abc-123abc-123abc-563abc
                    secret mysecret
                    access private
                  }
              }

πŸ¦‹ SEE ALSO πŸ¦‹

The Azure DNS Overview ⟨https://docs.microsoft.com/en-us/azure/dns/dns-overview⟩. 🌈


mwah πŸ’‹ β€” that's the COREDNS-AZURE(7) page from CoreDNS, dated October 2026. bye bestie, go slay your zones 🫢✨

πŸ“¦ where this page comes from