Documentation ¶
Overview ¶
Package cloudflare implements a DNS provider for solving the DNS-01 challenge using cloudflare DNS.
Index ¶
- type Config
- type DNSProvider
- func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error
- func (d *DNSProvider) CreateRecord(fqdn, value string) error
- func (d *DNSProvider) Present(domain, token, keyAuth string) error
- func (d *DNSProvider) RemoveRecord(fqdn, value string) error
- func (d *DNSProvider) Timeout() (timeout, interval time.Duration)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { AuthEmail string AuthKey string AuthToken string ZoneToken string TTL int PropagationTimeout time.Duration PollingInterval time.Duration 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 is an implementation of the challenge.Provider interface
func NewDNSProvider ¶
func NewDNSProvider() (*DNSProvider, error)
NewDNSProvider returns a DNSProvider instance configured for Cloudflare. Credentials must be passed in as environment variables:
Either provide CLOUDFLARE_EMAIL and CLOUDFLARE_API_KEY, or a CLOUDFLARE_DNS_API_TOKEN.
For a more paranoid setup, provide CLOUDFLARE_DNS_API_TOKEN and CLOUDFLARE_ZONE_API_TOKEN.
The email and API key should be avoided, if possible. Instead setup a API token with both Zone:Read and DNS:Edit permission, and pass the CLOUDFLARE_DNS_API_TOKEN environment variable. You can split the Zone:Read and DNS:Edit permissions across multiple API tokens: in this case pass both CLOUDFLARE_ZONE_API_TOKEN and CLOUDFLARE_DNS_API_TOKEN accordingly.
func NewDNSProviderConfig ¶
func NewDNSProviderConfig(config *Config) (*DNSProvider, error)
NewDNSProviderConfig return a DNSProvider instance configured for Cloudflare.
func (*DNSProvider) CleanUp ¶
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error
CleanUp gets the TXT record and calls to RemoveRecord to remove it
func (*DNSProvider) CreateRecord ¶
func (d *DNSProvider) CreateRecord(fqdn, value string) error
CreateRecord creates a TXT record to fulfill the dns-01 challenge
func (*DNSProvider) Present ¶
func (d *DNSProvider) Present(domain, token, keyAuth string) error
Present gets the TXT record and calls to CreateRecord to create it
func (*DNSProvider) RemoveRecord ¶
func (d *DNSProvider) RemoveRecord(fqdn, value string) error
RemoveRecord removes the TXT record matching the specified parameters
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.