Documentation
¶
Index ¶
- func BuildProviders(ctx context.Context, cfgs []config.DNSProviderConfig, externalIP string, ...) (map[string]aitm.DNSProvider, error)
- func ProviderFactory(ctx context.Context, cfg config.DNSProviderConfig, externalIP string, ...) (aitm.DNSProvider, error)
- type BuiltInDNSProvider
- func (p *BuiltInDNSProvider) CleanUp(ctx context.Context, domain, token, keyAuth string) error
- func (p *BuiltInDNSProvider) CreateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error
- func (p *BuiltInDNSProvider) DeleteRecord(ctx context.Context, zone, name, typ string) error
- func (p *BuiltInDNSProvider) Name() string
- func (p *BuiltInDNSProvider) Ping(_ context.Context) error
- func (p *BuiltInDNSProvider) Present(ctx context.Context, domain, token, keyAuth string) error
- func (p *BuiltInDNSProvider) Start() error
- func (p *BuiltInDNSProvider) Stop() error
- func (p *BuiltInDNSProvider) UpdateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error
- type CloudflareDNSProvider
- func (p *CloudflareDNSProvider) CleanUp(ctx context.Context, domain, token, keyAuth string) error
- func (p *CloudflareDNSProvider) CreateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error
- func (p *CloudflareDNSProvider) DeleteRecord(ctx context.Context, zone, name, typ string) error
- func (p *CloudflareDNSProvider) Name() string
- func (p *CloudflareDNSProvider) Ping(ctx context.Context) error
- func (p *CloudflareDNSProvider) Present(ctx context.Context, domain, token, keyAuth string) error
- func (p *CloudflareDNSProvider) UpdateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error
- type GandiDNSProvider
- func (p *GandiDNSProvider) CleanUp(ctx context.Context, domain, token, keyAuth string) error
- func (p *GandiDNSProvider) CreateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error
- func (p *GandiDNSProvider) DeleteRecord(ctx context.Context, zone, name, typ string) error
- func (p *GandiDNSProvider) Name() string
- func (p *GandiDNSProvider) Ping(ctx context.Context) error
- func (p *GandiDNSProvider) Present(ctx context.Context, domain, token, keyAuth string) error
- func (p *GandiDNSProvider) SetBaseURL(url string)
- func (p *GandiDNSProvider) UpdateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error
- type Route53DNSProvider
- func (p *Route53DNSProvider) CleanUp(ctx context.Context, domain, token, keyAuth string) error
- func (p *Route53DNSProvider) CreateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error
- func (p *Route53DNSProvider) DeleteRecord(ctx context.Context, zone, name, typ string) error
- func (p *Route53DNSProvider) Name() string
- func (p *Route53DNSProvider) Ping(ctx context.Context) error
- func (p *Route53DNSProvider) Present(ctx context.Context, domain, token, keyAuth string) error
- func (p *Route53DNSProvider) UpdateRecord(ctx context.Context, zone, name, typ, value string, ttl int) error
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 (*BuiltInDNSProvider) DeleteRecord ¶
func (p *BuiltInDNSProvider) DeleteRecord(ctx context.Context, zone, name, typ string) error
func (*BuiltInDNSProvider) Name ¶
func (p *BuiltInDNSProvider) Name() string
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 ¶
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 (*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 (p *CloudflareDNSProvider) Ping(ctx context.Context) error
func (*CloudflareDNSProvider) Present ¶
func (p *CloudflareDNSProvider) Present(ctx context.Context, domain, token, keyAuth string) error
func (*CloudflareDNSProvider) UpdateRecord ¶
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 (*GandiDNSProvider) DeleteRecord ¶
func (p *GandiDNSProvider) DeleteRecord(ctx context.Context, zone, name, typ string) error
func (*GandiDNSProvider) Name ¶
func (p *GandiDNSProvider) Name() string
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 ¶
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 (*Route53DNSProvider) DeleteRecord ¶
func (p *Route53DNSProvider) DeleteRecord(ctx context.Context, zone, name, typ string) error
func (*Route53DNSProvider) Name ¶
func (p *Route53DNSProvider) Name() string
func (*Route53DNSProvider) Present ¶
func (p *Route53DNSProvider) Present(ctx context.Context, domain, token, keyAuth string) error