azuredns

package
v4.15.1 Latest Latest
Warning

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

Go to latest
Published: Feb 17, 2024 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package azuredns implements a DNS provider for solving the DNS-01 challenge using azure DNS. Azure doesn't like trailing dots on domain names, most of the acme code does.

Index

Constants

View Source
const (
	EnvEnvironment    = envNamespace + "ENVIRONMENT"
	EnvSubscriptionID = envNamespace + "SUBSCRIPTION_ID"
	EnvResourceGroup  = envNamespace + "RESOURCE_GROUP"
	EnvZoneName       = envNamespace + "ZONE_NAME"
	EnvPrivateZone    = envNamespace + "PRIVATE_ZONE"

	EnvTenantID     = envNamespace + "TENANT_ID"
	EnvClientID     = envNamespace + "CLIENT_ID"
	EnvClientSecret = envNamespace + "CLIENT_SECRET"

	EnvOIDCToken         = envNamespace + "OIDC_TOKEN"
	EnvOIDCTokenFilePath = envNamespace + "OIDC_TOKEN_FILE_PATH"
	EnvOIDCRequestURL    = envNamespace + "OIDC_REQUEST_URL"
	EnvOIDCRequestToken  = envNamespace + "OIDC_REQUEST_TOKEN"

	EnvAuthMethod     = envNamespace + "AUTH_METHOD"
	EnvAuthMSITimeout = envNamespace + "AUTH_MSI_TIMEOUT"

	EnvTTL                = envNamespace + "TTL"
	EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
	EnvPollingInterval    = envNamespace + "POLLING_INTERVAL"

	EnvGitHubOIDCRequestURL   = "ACTIONS_ID_TOKEN_REQUEST_URL"
	EnvGitHubOIDCRequestToken = "ACTIONS_ID_TOKEN_REQUEST_TOKEN"
)

Environment variables names.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	SubscriptionID string
	ResourceGroup  string
	PrivateZone    bool

	Environment cloud.Configuration

	// optional if using default Azure credentials
	ClientID     string
	ClientSecret string
	TenantID     string

	OIDCToken         string
	OIDCTokenFilePath string
	OIDCRequestURL    string
	OIDCRequestToken  string

	AuthMethod     string
	AuthMSITimeout time.Duration

	PropagationTimeout time.Duration
	PollingInterval    time.Duration
	TTL                int
	HTTPClient         *http.Client
}

Config is used to configure the creation of the DNSProvider.

func NewDefaultConfig

func NewDefaultConfig() *Config

NewDefaultConfig returns a default configuration for the DNSProvider.

type DNSProvider

type DNSProvider struct {
	// contains filtered or unexported fields
}

DNSProvider implements the challenge.Provider interface.

func NewDNSProvider

func NewDNSProvider() (*DNSProvider, error)

NewDNSProvider returns a DNSProvider instance configured for azuredns.

func NewDNSProviderConfig

func NewDNSProviderConfig(config *Config) (*DNSProvider, error)

NewDNSProviderConfig return a DNSProvider instance configured for Azure.

func (*DNSProvider) CleanUp

func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error

CleanUp removes the TXT record matching the specified parameters.

func (*DNSProvider) Present

func (d *DNSProvider) Present(domain, token, keyAuth string) error

Present creates a TXT record to fulfill the dns-01 challenge.

func (*DNSProvider) Timeout

func (d *DNSProvider) Timeout() (timeout, interval time.Duration)

Timeout returns the timeout and interval to use when checking for DNS propagation. Adjusting here to cope with spikes in propagation times.

type DNSProviderPrivate

type DNSProviderPrivate struct {
	// contains filtered or unexported fields
}

DNSProviderPrivate implements the challenge.Provider interface for Azure Private Zone DNS.

func NewDNSProviderPrivate

func NewDNSProviderPrivate(config *Config, credentials azcore.TokenCredential) (*DNSProviderPrivate, error)

NewDNSProviderPrivate creates a DNSProviderPrivate structure with initialized Azure clients.

func (*DNSProviderPrivate) CleanUp

func (d *DNSProviderPrivate) CleanUp(domain, _, keyAuth string) error

CleanUp removes the TXT record matching the specified parameters.

func (*DNSProviderPrivate) Present

func (d *DNSProviderPrivate) Present(domain, _, keyAuth string) error

Present creates a TXT record to fulfill the dns-01 challenge.

func (*DNSProviderPrivate) Timeout

func (d *DNSProviderPrivate) Timeout() (timeout, interval time.Duration)

Timeout returns the timeout and interval to use when checking for DNS propagation. Adjusting here to cope with spikes in propagation times.

type DNSProviderPublic

type DNSProviderPublic struct {
	// contains filtered or unexported fields
}

DNSProviderPublic implements the challenge.Provider interface for Azure Public Zone DNS.

func NewDNSProviderPublic

func NewDNSProviderPublic(config *Config, credentials azcore.TokenCredential) (*DNSProviderPublic, error)

NewDNSProviderPublic creates a DNSProviderPublic structure with intialised Azure clients.

func (*DNSProviderPublic) CleanUp

func (d *DNSProviderPublic) CleanUp(domain, _, keyAuth string) error

CleanUp removes the TXT record matching the specified parameters.

func (*DNSProviderPublic) Present

func (d *DNSProviderPublic) Present(domain, _, keyAuth string) error

Present creates a TXT record to fulfill the dns-01 challenge.

func (*DNSProviderPublic) Timeout

func (d *DNSProviderPublic) Timeout() (timeout, interval time.Duration)

Timeout returns the timeout and interval to use when checking for DNS propagation. Adjusting here to cope with spikes in propagation times.

Jump to

Keyboard shortcuts

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