dns

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: May 3, 2026 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Overview

Package dns provides an abstracted interface over various DNS providers using libdns.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChangeSet

type ChangeSet struct {
	Create []Record
	Update []Record
	Delete []Record
}

type Provider

type Provider interface {
	Name() string
	Scope() string
	Zones() []string
	Force() bool
	Records(ctx context.Context, zone string) ([]Record, error)
	Apply(ctx context.Context, zone string, changes ChangeSet) error
}

func BuildProviders

func BuildProviders(cfgs []config.Provider) ([]Provider, error)

func NewCloudflareProvider

func NewCloudflareProvider(cfg config.Provider) Provider

NewCloudflareProvider creates a new Cloudflare DNS provider wrapped for relayd.

func NewDigitalOceanProvider

func NewDigitalOceanProvider(cfg config.Provider) Provider

NewDigitalOceanProvider creates a new DigitalOcean DNS provider wrapped for relayd.

func NewHetznerProvider added in v0.1.2

func NewHetznerProvider(cfg config.Provider) Provider

NewHetznerProvider creates a new Hetzner DNS provider wrapped for relayd.

func NewLinodeProvider added in v0.1.2

func NewLinodeProvider(cfg config.Provider) Provider

NewLinodeProvider creates a new Linode DNS provider wrapped for relayd.

func NewNamecheapProvider added in v0.1.2

func NewNamecheapProvider(cfg config.Provider) Provider

NewNamecheapProvider creates a new Namecheap DNS provider wrapped for relayd.

func NewPiholeProvider

func NewPiholeProvider(cfg config.Provider) Provider

NewPiholeProvider creates a new Pi-hole provider wrapped for relayd. Pi-hole does not support TXT records, so force mode is always enabled to ensure proper cleanup of stale records without TXT-based ownership tracking.

func NewPowerDNSProvider

func NewPowerDNSProvider(cfg config.Provider) Provider

NewPowerDNSProvider creates a new PowerDNS provider wrapped for relayd.

func NewRFC2136Provider

func NewRFC2136Provider(cfg config.Provider) Provider

NewRFC2136Provider creates a new RFC2136 provider wrapped for relayd.

func NewRoute53Provider

func NewRoute53Provider(cfg config.Provider) Provider

NewRoute53Provider creates a new Route53 DNS provider wrapped for relayd.

func NewScalewayProvider added in v0.1.2

func NewScalewayProvider(cfg config.Provider) Provider

NewScalewayProvider creates a new Scaleway DNS provider wrapped for relayd.

func NewUnifiProvider

func NewUnifiProvider(cfg config.Provider) Provider

NewUnifiProvider creates a new UniFi DNS provider wrapped for relayd.

type Record

type Record struct {
	Type     string
	Name     string
	Value    string
	Original libdns.Record
}

Directories

Path Synopsis
Package pihole provides a client for the Pi-hole API.
Package pihole provides a client for the Pi-hole API.
Package unifi provides a client for the UniFi API.
Package unifi provides a client for the UniFi API.

Jump to

Keyboard shortcuts

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