dns

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2026 License: GPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildProviders

func BuildProviders(ctx context.Context, cfgs []config.DNSProviderConfig, externalIP string, dnsPort int) (map[string]aitm.DNSProvider, error)

BuildProviders constructs all providers from the config slice and returns a map keyed by provider alias. Fails fast if any provider is misconfigured.

func ProviderFactory

func ProviderFactory(ctx context.Context, cfg config.DNSProviderConfig, externalIP string, dnsPort int) (aitm.DNSProvider, error)

ProviderFactory constructs the concrete provider described by cfg and returns it as an aitm.DNSProvider. Calls Ping after construction to fail fast on bad credentials or unreachable APIs.

Types

type BuiltInDNSProvider

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

BuiltInDNSProvider is a self-contained authoritative DNS server. It is the default provider when no external DNS API is configured.

func NewBuiltInDNSProvider

func NewBuiltInDNSProvider(externalIP string, port int) (*BuiltInDNSProvider, error)

NewBuiltInDNSProvider constructs the provider. Call Start to begin listening.

func (*BuiltInDNSProvider) CleanUp

func (p *BuiltInDNSProvider) CleanUp(ctx context.Context, domain, token, keyAuth string) error

func (*BuiltInDNSProvider) CreateRecord

func (p *BuiltInDNSProvider) CreateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error

func (*BuiltInDNSProvider) DeleteRecord

func (p *BuiltInDNSProvider) DeleteRecord(ctx context.Context, zone, name, typ string) error

func (*BuiltInDNSProvider) Name

func (p *BuiltInDNSProvider) Name() string

func (*BuiltInDNSProvider) Ping

func (*BuiltInDNSProvider) Present

func (p *BuiltInDNSProvider) Present(ctx context.Context, domain, token, keyAuth string) error

func (*BuiltInDNSProvider) Start

func (p *BuiltInDNSProvider) Start() error

Start launches the UDP listener in a background goroutine.

func (*BuiltInDNSProvider) Stop

func (p *BuiltInDNSProvider) Stop() error

Stop shuts down the UDP listener and drains pending updates. Safe to call multiple times.

func (*BuiltInDNSProvider) UpdateRecord

func (p *BuiltInDNSProvider) UpdateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error

type CloudflareDNSProvider

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

CloudflareDNSProvider manages records via the Cloudflare API v4.

func NewCloudflareDNSProvider

func NewCloudflareDNSProvider(apiToken string, opts ...cloudflare.Option) (*CloudflareDNSProvider, error)

NewCloudflareDNSProvider constructs a provider using the given API token. The token must have Zone.DNS:Edit permissions on the relevant zones.

func (*CloudflareDNSProvider) CleanUp

func (p *CloudflareDNSProvider) CleanUp(ctx context.Context, domain, token, keyAuth string) error

func (*CloudflareDNSProvider) CreateRecord

func (p *CloudflareDNSProvider) CreateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error

func (*CloudflareDNSProvider) DeleteRecord

func (p *CloudflareDNSProvider) DeleteRecord(ctx context.Context, zone, name, typ string) error

func (*CloudflareDNSProvider) Name

func (p *CloudflareDNSProvider) Name() string

func (*CloudflareDNSProvider) Ping

func (*CloudflareDNSProvider) Present

func (p *CloudflareDNSProvider) Present(ctx context.Context, domain, token, keyAuth string) error

func (*CloudflareDNSProvider) UpdateRecord

func (p *CloudflareDNSProvider) UpdateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error

type GandiDNSProvider

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

GandiDNSProvider manages records via the Gandi LiveDNS REST API.

func NewGandiDNSProvider

func NewGandiDNSProvider(apiKey string) (*GandiDNSProvider, error)

NewGandiDNSProvider constructs a provider using the given Gandi API key.

func (*GandiDNSProvider) CleanUp

func (p *GandiDNSProvider) CleanUp(ctx context.Context, domain, token, keyAuth string) error

func (*GandiDNSProvider) CreateRecord

func (p *GandiDNSProvider) CreateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error

func (*GandiDNSProvider) DeleteRecord

func (p *GandiDNSProvider) DeleteRecord(ctx context.Context, zone, name, typ string) error

func (*GandiDNSProvider) Name

func (p *GandiDNSProvider) Name() string

func (*GandiDNSProvider) Ping

func (p *GandiDNSProvider) Ping(ctx context.Context) error

func (*GandiDNSProvider) Present

func (p *GandiDNSProvider) Present(ctx context.Context, domain, token, keyAuth string) error

func (*GandiDNSProvider) SetBaseURL

func (p *GandiDNSProvider) SetBaseURL(url string)

SetBaseURL overrides the default Gandi API base URL. Used in tests.

func (*GandiDNSProvider) UpdateRecord

func (p *GandiDNSProvider) UpdateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error

type Route53DNSProvider

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

Route53DNSProvider manages records via the AWS Route 53 API.

func NewRoute53DNSProvider

func NewRoute53DNSProvider(ctx context.Context, accessKey, secretKey, region string, optFns ...func(*route53.Options)) (*Route53DNSProvider, error)

NewRoute53DNSProvider constructs a provider using static access key credentials. region should be "us-east-1"; Route 53 is a global service but the SDK requires a region.

func (*Route53DNSProvider) CleanUp

func (p *Route53DNSProvider) CleanUp(ctx context.Context, domain, token, keyAuth string) error

func (*Route53DNSProvider) CreateRecord

func (p *Route53DNSProvider) CreateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error

func (*Route53DNSProvider) DeleteRecord

func (p *Route53DNSProvider) DeleteRecord(ctx context.Context, zone, name, typ string) error

func (*Route53DNSProvider) Name

func (p *Route53DNSProvider) Name() string

func (*Route53DNSProvider) Ping

func (p *Route53DNSProvider) Ping(ctx context.Context) error

func (*Route53DNSProvider) Present

func (p *Route53DNSProvider) Present(ctx context.Context, domain, token, keyAuth string) error

func (*Route53DNSProvider) UpdateRecord

func (p *Route53DNSProvider) UpdateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error

Jump to

Keyboard shortcuts

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