v2.7.2+incompatible Latest Latest

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

Go to latest
Published: Jul 31, 2019 License: MIT Imports: 9 Imported by: 66



Package rackspace implements a DNS provider for solving the DNS-01 challenge using rackspace DNS.



This section is empty.


This section is empty.


This section is empty.


type APIKeyCredentials added in v1.1.0

type APIKeyCredentials struct {
	Username string `json:"username"`
	APIKey   string `json:"apiKey"`

APIKeyCredentials API credential

type Access added in v1.1.0

type Access struct {
	ServiceCatalog []ServiceCatalog `json:"serviceCatalog"`
	Token          Token            `json:"token"`

Access Access

type Auth added in v1.1.0

type Auth struct {
	APIKeyCredentials `json:"RAX-KSKEY:apiKeyCredentials"`

Auth auth credentials

type AuthData added in v1.1.0

type AuthData struct {
	Auth `json:"auth"`

AuthData Auth data

type Config added in v1.1.0

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 added in v1.1.0

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 added in v1.1.0

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 added in v1.1.0

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 Endpoint added in v1.1.0

type Endpoint struct {
	PublicURL string `json:"publicURL"`
	TenantID  string `json:"tenantId"`

Endpoint Endpoint

type HostedZone added in v1.1.0

type HostedZone struct {
	ID   int    `json:"id"`
	Name string `json:"name"`

HostedZone HostedZone

type Identity added in v1.1.0

type Identity struct {
	Access Access `json:"access"`

Identity Identity

type Record added in v1.0.0

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 added in v1.0.0

type Records struct {
	Record []Record `json:"records"`

Records is the list of records sent/received from the DNS API

type ServiceCatalog added in v1.1.0

type ServiceCatalog struct {
	Endpoints []Endpoint `json:"endpoints"`
	Name      string     `json:"name"`

ServiceCatalog ServiceCatalog

type Token added in v1.1.0

type Token struct {
	ID string `json:"id"`

Token Token

type ZoneSearchResponse added in v1.1.0

type ZoneSearchResponse struct {
	TotalEntries int          `json:"totalEntries"`
	HostedZones  []HostedZone `json:"domains"`

ZoneSearchResponse represents the response when querying Rackspace DNS zones

Jump to

Keyboard shortcuts

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