azure

package
v0.0.0-...-36c2227 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

README

azure

Name

azure - enables serving zone data from Microsoft Azure DNS service.

Description

The azure plugin is useful for serving zones from Microsoft Azure DNS. The azure plugin supports all the DNS records supported by Azure, viz. A, AAAA, CNAME, MX, NS, PTR, SOA, SRV, and TXT record types. NS record type is not supported by azure private DNS.

Syntax

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 is the resource group to which the hosted zones belongs on Azure, and ZONE the zone that contains data.

  • CLIENT_ID and CLIENT_SECRET are 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.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Azure

type Azure struct {
	Next plugin.Handler
	Fall fall.F
	// contains filtered or unexported fields
}

Azure is the core struct of the azure plugin.

func New

func New(ctx context.Context, publicClient publicdns.RecordSetsClient, privateClient privatedns.RecordSetsClient, keys map[string][]string, accessMap map[string]string) (*Azure, error)

New validates the input DNS zones and initializes the Azure struct.

func (*Azure) Name

func (h *Azure) Name() string

Name implements plugin.Handler.Name.

func (*Azure) Run

func (h *Azure) Run(ctx context.Context) error

Run updates the zone from azure.

func (*Azure) ServeDNS

func (h *Azure) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error)

ServeDNS implements the plugin.Handler interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL