Package bluecat implements a DNS provider for solving the DNS-01 challenge using a self-hosted Bluecat Address Manager.



    View Source
    const (
    	EnvServerURL  = envNamespace + "SERVER_URL"
    	EnvUserName   = envNamespace + "USER_NAME"
    	EnvPassword   = envNamespace + "PASSWORD"
    	EnvConfigName = envNamespace + "CONFIG_NAME"
    	EnvDNSView    = envNamespace + "DNS_VIEW"
    	EnvTTL                = envNamespace + "TTL"
    	EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
    	EnvPollingInterval    = envNamespace + "POLLING_INTERVAL"
    	EnvHTTPTimeout        = envNamespace + "HTTP_TIMEOUT"

      Environment variables names.


      This section is empty.


      This section is empty.


      type Config

      type Config struct {
      	BaseURL            string
      	UserName           string
      	Password           string
      	ConfigName         string
      	DNSView            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 implements the challenge.Provider interface.

            func NewDNSProvider

            func NewDNSProvider() (*DNSProvider, error)

              NewDNSProvider returns a DNSProvider instance configured for Bluecat DNS. Credentials must be passed in the environment variables: BLUECAT_SERVER_URL, BLUECAT_USER_NAME and BLUECAT_PASSWORD. BLUECAT_SERVER_URL should have the scheme, hostname, and port (if required) of the authoritative Bluecat BAM server. The REST endpoint will be appended. In addition, the Configuration name and external DNS View Name must be passed in BLUECAT_CONFIG_NAME and BLUECAT_DNS_VIEW.

              func NewDNSProviderConfig

              func NewDNSProviderConfig(config *Config) (*DNSProvider, error)

                NewDNSProviderConfig return a DNSProvider instance configured for Bluecat DNS.

                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 using the specified parameters This will *not* create a subzone to contain the TXT record, so make sure the FQDN specified is within an extant zone.

                    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.