Documentation ¶
Overview ¶
Package rackspace implements a DNS provider for solving the DNS-01 challenge using rackspace DNS.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIKeyCredentials ¶
APIKeyCredentials API credential
type Access ¶
type Access struct { ServiceCatalog []ServiceCatalog `json:"serviceCatalog"` Token Token `json:"token"` }
Access Access
type Auth ¶
type Auth struct {
APIKeyCredentials `json:"RAX-KSKEY:apiKeyCredentials"`
}
Auth auth credentials
type Config ¶
type Config struct { BaseURL string APIUser string APIKey string 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 is an implementation of the acme.ChallengeProvider interface used to store the reusable token and DNS API endpoint
func NewDNSProvider ¶
func NewDNSProvider() (*DNSProvider, error)
NewDNSProvider returns a DNSProvider instance configured for Rackspace. Credentials must be passed in the environment variables: RACKSPACE_USER and RACKSPACE_API_KEY.
func NewDNSProviderConfig ¶
func NewDNSProviderConfig(config *Config) (*DNSProvider, error)
NewDNSProviderConfig return a DNSProvider instance configured for Rackspace. It authenticates against the API, also grabbing the DNS Endpoint.
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 HostedZone ¶
HostedZone HostedZone
type Record ¶
type Record struct { Name string `json:"name"` Type string `json:"type"` Data string `json:"data"` TTL int `json:"ttl,omitempty"` ID string `json:"id,omitempty"` }
Record represents a Rackspace DNS record
type Records ¶
type Records struct {
Record []Record `json:"records"`
}
Records is the list of records sent/received from the DNS API
type ServiceCatalog ¶
ServiceCatalog ServiceCatalog
type ZoneSearchResponse ¶
type ZoneSearchResponse struct { TotalEntries int `json:"totalEntries"` HostedZones []HostedZone `json:"domains"` }
ZoneSearchResponse represents the response when querying Rackspace DNS zones