dependency

package
Version: v0.27.1 Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2021 License: MPL-2.0 Imports: 25 Imported by: 142

Documentation

Index

Constants

View Source
const (
	HealthAny      = "any"
	HealthPassing  = "passing"
	HealthWarning  = "warning"
	HealthCritical = "critical"
	HealthMaint    = "maintenance"

	NodeMaint    = "_node_maintenance"
	ServiceMaint = "_service_maintenance:"
)
View Source
const (
	// VaultAgentTokenSleepTime is the amount of time to sleep between queries, since
	// the fsnotify library is not compatible with solaris and other OSes yet.
	VaultAgentTokenSleepTime = 15 * time.Second
)

Variables

View Source
var (

	// CatalogDatacentersQuerySleepTime is the amount of time to sleep between
	// queries, since the endpoint does not support blocking queries.
	CatalogDatacentersQuerySleepTime = 15 * time.Second
)
View Source
var (

	// CatalogNodeQueryRe is the regular expression to use.
	CatalogNodeQueryRe = regexp.MustCompile(`\A` + nodeNameRe + dcRe + `\z`)
)
View Source
var (

	// CatalogNodesQueryRe is the regular expression to use.
	CatalogNodesQueryRe = regexp.MustCompile(`\A` + dcRe + nearRe + `\z`)
)
View Source
var (

	// CatalogServiceQueryRe is the regular expression to use.
	CatalogServiceQueryRe = regexp.MustCompile(`\A` + tagRe + serviceNameRe + dcRe + nearRe + `\z`)
)
View Source
var (

	// CatalogServicesQueryRe is the regular expression to use for CatalogNodesQuery.
	CatalogServicesQueryRe = regexp.MustCompile(`\A` + dcRe + `\z`)
)
View Source
var ErrContinue = errors.New("dependency continue")

ErrContinue is a special error which says to continue (retry) on error.

View Source
var ErrLeaseExpired = errors.New("lease expired or is not renewable")
View Source
var ErrStopped = errors.New("dependency stopped")

ErrStopped is a special error that is returned when a dependency is prematurely stopped, usually due to a configuration reload or a process interrupt.

View Source
var (

	// FileQuerySleepTime is the amount of time to sleep between queries, since
	// the fsnotify library is not compatible with solaris and other OSes yet.
	FileQuerySleepTime = 2 * time.Second
)
View Source
var (

	// HealthServiceQueryRe is the regular expression to use.
	HealthServiceQueryRe = regexp.MustCompile(`\A` + tagRe + serviceNameRe + dcRe + nearRe + filterRe + `\z`)
)
View Source
var (

	// KVGetQueryRe is the regular expression to use.
	KVGetQueryRe = regexp.MustCompile(`\A` + keyRe + dcRe + `\z`)
)
View Source
var (

	// KVKeysQueryRe is the regular expression to use.
	KVKeysQueryRe = regexp.MustCompile(`\A` + prefixRe + dcRe + `\z`)
)
View Source
var (

	// KVListQueryRe is the regular expression to use.
	KVListQueryRe = regexp.MustCompile(`\A` + prefixRe + dcRe + `\z`)
)
View Source
var (
	// VaultDefaultLeaseDuration is the default lease duration in seconds.
	VaultDefaultLeaseDuration time.Duration
)

Functions

func SetVaultDefaultLeaseDuration added in v0.26.0

func SetVaultDefaultLeaseDuration(t time.Duration)

Make sure to only set VaultDefaultLeaseDuration once

Types

type ByName added in v0.18.0

type ByName []*CatalogSnippet

ByName is a sortable slice of CatalogService structs.

func (ByName) Len added in v0.18.0

func (s ByName) Len() int

func (ByName) Less added in v0.18.0

func (s ByName) Less(i, j int) bool

func (ByName) Swap added in v0.18.0

func (s ByName) Swap(i, j int)

type ByNode added in v0.18.0

type ByNode []*Node

ByNode is a sortable list of nodes by name and then IP address.

func (ByNode) Len added in v0.18.0

func (s ByNode) Len() int

func (ByNode) Less added in v0.18.0

func (s ByNode) Less(i, j int) bool

func (ByNode) Swap added in v0.18.0

func (s ByNode) Swap(i, j int)

type ByNodeThenID added in v0.18.0

type ByNodeThenID []*HealthService

ByNodeThenID is a sortable slice of Service

func (ByNodeThenID) Len added in v0.18.0

func (s ByNodeThenID) Len() int

Len, Swap, and Less are used to implement the sort.Sort interface.

func (ByNodeThenID) Less added in v0.18.0

func (s ByNodeThenID) Less(i, j int) bool

func (ByNodeThenID) Swap added in v0.18.0

func (s ByNodeThenID) Swap(i, j int)

type ByService added in v0.18.0

type ByService []*CatalogNodeService

ByService is a sorter of node services by their service name and then ID.

func (ByService) Len added in v0.18.0

func (s ByService) Len() int

func (ByService) Less added in v0.18.0

func (s ByService) Less(i, j int) bool

func (ByService) Swap added in v0.18.0

func (s ByService) Swap(i, j int)

type CatalogDatacentersQuery added in v0.18.0

type CatalogDatacentersQuery struct {
	// contains filtered or unexported fields
}

CatalogDatacentersQuery is the dependency to query all datacenters

func NewCatalogDatacentersQuery added in v0.18.0

func NewCatalogDatacentersQuery(ignoreFailing bool) (*CatalogDatacentersQuery, error)

NewCatalogDatacentersQuery creates a new datacenter dependency.

func (*CatalogDatacentersQuery) CanShare added in v0.18.0

func (d *CatalogDatacentersQuery) CanShare() bool

CanShare returns if this dependency is shareable.

func (*CatalogDatacentersQuery) Fetch added in v0.18.0

func (d *CatalogDatacentersQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch queries the Consul API defined by the given client and returns a slice of strings representing the datacenters

func (*CatalogDatacentersQuery) Stop added in v0.18.0

func (d *CatalogDatacentersQuery) Stop()

Stop terminates this dependency's fetch.

func (*CatalogDatacentersQuery) String added in v0.18.0

func (d *CatalogDatacentersQuery) String() string

String returns the human-friendly version of this dependency.

func (*CatalogDatacentersQuery) Type added in v0.18.0

func (d *CatalogDatacentersQuery) Type() Type

Type returns the type of this dependency.

type CatalogNode added in v0.10.0

type CatalogNode struct {
	Node     *Node
	Services []*CatalogNodeService
}

CatalogNode is a wrapper around the node and its services.

type CatalogNodeQuery added in v0.18.0

type CatalogNodeQuery struct {
	// contains filtered or unexported fields
}

CatalogNodeQuery represents a single node from the Consul catalog.

func NewCatalogNodeQuery added in v0.18.0

func NewCatalogNodeQuery(s string) (*CatalogNodeQuery, error)

NewCatalogNodeQuery parses the given string into a dependency. If the name is empty then the name of the local agent is used.

func (*CatalogNodeQuery) CanShare added in v0.18.0

func (d *CatalogNodeQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*CatalogNodeQuery) Fetch added in v0.18.0

func (d *CatalogNodeQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch queries the Consul API defined by the given client and returns a of CatalogNode object.

func (*CatalogNodeQuery) Stop added in v0.18.0

func (d *CatalogNodeQuery) Stop()

Stop halts the dependency's fetch function.

func (*CatalogNodeQuery) String added in v0.18.0

func (d *CatalogNodeQuery) String() string

String returns the human-friendly version of this dependency.

func (*CatalogNodeQuery) Type added in v0.18.0

func (d *CatalogNodeQuery) Type() Type

Type returns the type of this dependency.

type CatalogNodeService added in v0.18.0

type CatalogNodeService struct {
	ID                string
	Service           string
	Tags              ServiceTags
	Meta              map[string]string
	Port              int
	Address           string
	EnableTagOverride bool
}

CatalogNodeService is a service on a single node.

type CatalogNodesQuery added in v0.18.0

type CatalogNodesQuery struct {
	// contains filtered or unexported fields
}

CatalogNodesQuery is the representation of all registered nodes in Consul.

func NewCatalogNodesQuery added in v0.18.0

func NewCatalogNodesQuery(s string) (*CatalogNodesQuery, error)

NewCatalogNodesQuery parses the given string into a dependency. If the name is empty then the name of the local agent is used.

func (*CatalogNodesQuery) CanShare added in v0.18.0

func (d *CatalogNodesQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*CatalogNodesQuery) Fetch added in v0.18.0

func (d *CatalogNodesQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch queries the Consul API defined by the given client and returns a slice of Node objects

func (*CatalogNodesQuery) Stop added in v0.18.0

func (d *CatalogNodesQuery) Stop()

Stop halts the dependency's fetch function.

func (*CatalogNodesQuery) String added in v0.18.0

func (d *CatalogNodesQuery) String() string

String returns the human-friendly version of this dependency.

func (*CatalogNodesQuery) Type added in v0.18.0

func (d *CatalogNodesQuery) Type() Type

Type returns the type of this dependency.

type CatalogService

type CatalogService struct {
	ID              string
	Node            string
	Address         string
	Datacenter      string
	TaggedAddresses map[string]string
	NodeMeta        map[string]string
	ServiceID       string
	ServiceName     string
	ServiceAddress  string
	ServiceTags     ServiceTags
	ServiceMeta     map[string]string
	ServicePort     int
}

CatalogService is a catalog entry in Consul.

type CatalogServiceQuery added in v0.18.0

type CatalogServiceQuery struct {
	// contains filtered or unexported fields
}

CatalogServiceQuery is the representation of a requested catalog services dependency from inside a template.

func NewCatalogServiceQuery added in v0.18.0

func NewCatalogServiceQuery(s string) (*CatalogServiceQuery, error)

NewCatalogServiceQuery parses a string into a CatalogServiceQuery.

func (*CatalogServiceQuery) CanShare added in v0.18.0

func (d *CatalogServiceQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*CatalogServiceQuery) Fetch added in v0.18.0

func (d *CatalogServiceQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch queries the Consul API defined by the given client and returns a slice of CatalogService objects.

func (*CatalogServiceQuery) Stop added in v0.18.0

func (d *CatalogServiceQuery) Stop()

Stop halts the dependency's fetch function.

func (*CatalogServiceQuery) String added in v0.18.0

func (d *CatalogServiceQuery) String() string

String returns the human-friendly version of this dependency.

func (*CatalogServiceQuery) Type added in v0.18.0

func (d *CatalogServiceQuery) Type() Type

Type returns the type of this dependency.

type CatalogServicesQuery added in v0.18.0

type CatalogServicesQuery struct {
	// contains filtered or unexported fields
}

CatalogServicesQuery is the representation of a requested catalog service dependency from inside a template.

func NewCatalogServicesQuery added in v0.18.0

func NewCatalogServicesQuery(s string) (*CatalogServicesQuery, error)

NewCatalogServicesQuery parses a string of the format @dc.

func (*CatalogServicesQuery) CanShare added in v0.18.0

func (d *CatalogServicesQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*CatalogServicesQuery) Fetch added in v0.18.0

func (d *CatalogServicesQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch queries the Consul API defined by the given client and returns a slice of CatalogService objects.

func (*CatalogServicesQuery) Stop added in v0.18.0

func (d *CatalogServicesQuery) Stop()

Stop halts the dependency's fetch function.

func (*CatalogServicesQuery) String added in v0.18.0

func (d *CatalogServicesQuery) String() string

String returns the human-friendly version of this dependency.

func (*CatalogServicesQuery) Type added in v0.18.0

func (d *CatalogServicesQuery) Type() Type

Type returns the type of this dependency.

type CatalogSnippet added in v0.18.0

type CatalogSnippet struct {
	Name string
	Tags ServiceTags
}

CatalogSnippet is a catalog entry in Consul.

type ClientSet added in v0.9.0

type ClientSet struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

ClientSet is a collection of clients that dependencies use to communicate with remote services like Consul or Vault.

func NewClientSet added in v0.9.0

func NewClientSet() *ClientSet

NewClientSet creates a new client set that is ready to accept clients.

func (*ClientSet) Consul added in v0.9.0

func (c *ClientSet) Consul() *consulapi.Client

Consul returns the Consul client for this set.

func (*ClientSet) CreateConsulClient added in v0.15.0

func (c *ClientSet) CreateConsulClient(i *CreateConsulClientInput) error

CreateConsulClient creates a new Consul API client from the given input.

func (*ClientSet) CreateVaultClient added in v0.15.0

func (c *ClientSet) CreateVaultClient(i *CreateVaultClientInput) error

func (*ClientSet) Stop added in v0.15.0

func (c *ClientSet) Stop()

Stop closes all idle connections for any attached clients.

func (*ClientSet) Vault added in v0.9.0

func (c *ClientSet) Vault() *vaultapi.Client

Vault returns the Vault client for this set.

type ConnectCAQuery added in v0.23.0

type ConnectCAQuery struct {
	// contains filtered or unexported fields
}

func NewConnectCAQuery added in v0.23.0

func NewConnectCAQuery() *ConnectCAQuery

func (*ConnectCAQuery) CanShare added in v0.23.0

func (d *ConnectCAQuery) CanShare() bool

func (*ConnectCAQuery) Fetch added in v0.23.0

func (d *ConnectCAQuery) Fetch(clients *ClientSet, opts *QueryOptions) (
	interface{}, *ResponseMetadata, error,
)

func (*ConnectCAQuery) Stop added in v0.23.0

func (d *ConnectCAQuery) Stop()

func (*ConnectCAQuery) String added in v0.23.0

func (d *ConnectCAQuery) String() string

func (*ConnectCAQuery) Type added in v0.23.0

func (d *ConnectCAQuery) Type() Type

type ConnectLeafQuery added in v0.23.0

type ConnectLeafQuery struct {
	// contains filtered or unexported fields
}

func NewConnectLeafQuery added in v0.23.0

func NewConnectLeafQuery(service string) *ConnectLeafQuery

func (*ConnectLeafQuery) CanShare added in v0.23.0

func (d *ConnectLeafQuery) CanShare() bool

func (*ConnectLeafQuery) Fetch added in v0.23.0

func (d *ConnectLeafQuery) Fetch(clients *ClientSet, opts *QueryOptions) (
	interface{}, *ResponseMetadata, error,
)

func (*ConnectLeafQuery) Stop added in v0.23.0

func (d *ConnectLeafQuery) Stop()

func (*ConnectLeafQuery) String added in v0.23.0

func (d *ConnectLeafQuery) String() string

func (*ConnectLeafQuery) Type added in v0.23.0

func (d *ConnectLeafQuery) Type() Type

type CreateConsulClientInput added in v0.15.0

type CreateConsulClientInput struct {
	Address      string
	Namespace    string
	Token        string
	AuthEnabled  bool
	AuthUsername string
	AuthPassword string
	SSLEnabled   bool
	SSLVerify    bool
	SSLCert      string
	SSLKey       string
	SSLCACert    string
	SSLCAPath    string
	ServerName   string

	TransportDialKeepAlive       time.Duration
	TransportDialTimeout         time.Duration
	TransportDisableKeepAlives   bool
	TransportIdleConnTimeout     time.Duration
	TransportMaxIdleConns        int
	TransportMaxIdleConnsPerHost int
	TransportTLSHandshakeTimeout time.Duration
}

CreateConsulClientInput is used as input to the CreateConsulClient function.

type CreateVaultClientInput added in v0.15.0

type CreateVaultClientInput struct {
	Address     string
	Namespace   string
	Token       string
	UnwrapToken bool
	SSLEnabled  bool
	SSLVerify   bool
	SSLCert     string
	SSLKey      string
	SSLCACert   string
	SSLCAPath   string
	ServerName  string

	TransportDialKeepAlive       time.Duration
	TransportDialTimeout         time.Duration
	TransportDisableKeepAlives   bool
	TransportIdleConnTimeout     time.Duration
	TransportMaxIdleConns        int
	TransportMaxIdleConnsPerHost int
	TransportTLSHandshakeTimeout time.Duration
}

CreateVaultClientInput is used as input to the CreateVaultClient function.

type Dependency

type Dependency interface {
	Fetch(*ClientSet, *QueryOptions) (interface{}, *ResponseMetadata, error)
	CanShare() bool
	String() string
	Stop()
	Type() Type
}

Dependency is an interface for a dependency that Consul Template is capable of watching.

type FileQuery added in v0.18.0

type FileQuery struct {
	// contains filtered or unexported fields
}

FileQuery represents a local file dependency.

func NewFileQuery added in v0.18.0

func NewFileQuery(s string) (*FileQuery, error)

NewFileQuery creates a file dependency from the given path.

func (*FileQuery) CanShare added in v0.18.0

func (d *FileQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*FileQuery) Fetch added in v0.18.0

func (d *FileQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch retrieves this dependency and returns the result or any errors that occur in the process.

func (*FileQuery) Stop added in v0.18.0

func (d *FileQuery) Stop()

Stop halts the dependency's fetch function.

func (*FileQuery) String added in v0.18.0

func (d *FileQuery) String() string

String returns the human-friendly version of this dependency.

func (*FileQuery) Type added in v0.18.0

func (d *FileQuery) Type() Type

Type returns the type of this dependency.

type HealthService

type HealthService struct {
	Node                   string
	NodeID                 string
	NodeAddress            string
	NodeTaggedAddresses    map[string]string
	NodeMeta               map[string]string
	ServiceMeta            map[string]string
	Address                string
	ServiceTaggedAddresses map[string]api.ServiceAddress
	ID                     string
	Name                   string
	Tags                   ServiceTags
	Checks                 api.HealthChecks
	Status                 string
	Port                   int
	Weights                api.AgentWeights
}

HealthService is a service entry in Consul.

type HealthServiceQuery added in v0.18.0

type HealthServiceQuery struct {
	// contains filtered or unexported fields
}

HealthServiceQuery is the representation of all a service query in Consul.

func NewHealthConnectQuery added in v0.23.0

func NewHealthConnectQuery(s string) (*HealthServiceQuery, error)

NewHealthConnect Query processes the strings to build a connect dependency.

func NewHealthServiceQuery added in v0.18.0

func NewHealthServiceQuery(s string) (*HealthServiceQuery, error)

NewHealthServiceQuery processes the strings to build a service dependency.

func (*HealthServiceQuery) CanShare added in v0.18.0

func (d *HealthServiceQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*HealthServiceQuery) Fetch added in v0.18.0

func (d *HealthServiceQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch queries the Consul API defined by the given client and returns a slice of HealthService objects.

func (*HealthServiceQuery) Stop added in v0.18.0

func (d *HealthServiceQuery) Stop()

Stop halts the dependency's fetch function.

func (*HealthServiceQuery) String added in v0.18.0

func (d *HealthServiceQuery) String() string

String returns the human-friendly version of this dependency.

func (*HealthServiceQuery) Type added in v0.18.0

func (d *HealthServiceQuery) Type() Type

Type returns the type of this dependency.

type KVGetQuery added in v0.18.0

type KVGetQuery struct {
	// contains filtered or unexported fields
}

KVGetQuery queries the KV store for a single key.

func NewKVGetQuery added in v0.18.0

func NewKVGetQuery(s string) (*KVGetQuery, error)

NewKVGetQuery parses a string into a dependency.

func (*KVGetQuery) CanShare added in v0.18.0

func (d *KVGetQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*KVGetQuery) EnableBlocking added in v0.18.0

func (d *KVGetQuery) EnableBlocking()

EnableBlocking turns this into a blocking KV query.

func (*KVGetQuery) Fetch added in v0.18.0

func (d *KVGetQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch queries the Consul API defined by the given client.

func (*KVGetQuery) Stop added in v0.18.0

func (d *KVGetQuery) Stop()

Stop halts the dependency's fetch function.

func (*KVGetQuery) String added in v0.18.0

func (d *KVGetQuery) String() string

String returns the human-friendly version of this dependency.

func (*KVGetQuery) Type added in v0.18.0

func (d *KVGetQuery) Type() Type

Type returns the type of this dependency.

type KVKeysQuery added in v0.18.0

type KVKeysQuery struct {
	// contains filtered or unexported fields
}

KVKeysQuery queries the KV store for a single key.

func NewKVKeysQuery added in v0.18.0

func NewKVKeysQuery(s string) (*KVKeysQuery, error)

NewKVKeysQuery parses a string into a dependency.

func (*KVKeysQuery) CanShare added in v0.18.0

func (d *KVKeysQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*KVKeysQuery) Fetch added in v0.18.0

func (d *KVKeysQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch queries the Consul API defined by the given client.

func (*KVKeysQuery) Stop added in v0.18.0

func (d *KVKeysQuery) Stop()

Stop halts the dependency's fetch function.

func (*KVKeysQuery) String added in v0.18.0

func (d *KVKeysQuery) String() string

String returns the human-friendly version of this dependency.

func (*KVKeysQuery) Type added in v0.18.0

func (d *KVKeysQuery) Type() Type

Type returns the type of this dependency.

type KVListQuery added in v0.18.0

type KVListQuery struct {
	// contains filtered or unexported fields
}

KVListQuery queries the KV store for a single key.

func NewKVListQuery added in v0.18.0

func NewKVListQuery(s string) (*KVListQuery, error)

NewKVListQuery parses a string into a dependency.

func (*KVListQuery) CanShare added in v0.18.0

func (d *KVListQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*KVListQuery) Fetch added in v0.18.0

func (d *KVListQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch queries the Consul API defined by the given client.

func (*KVListQuery) Stop added in v0.18.0

func (d *KVListQuery) Stop()

Stop halts the dependency's fetch function.

func (*KVListQuery) String added in v0.18.0

func (d *KVListQuery) String() string

String returns the human-friendly version of this dependency.

func (*KVListQuery) Type added in v0.18.0

func (d *KVListQuery) Type() Type

Type returns the type of this dependency.

type KeyPair

type KeyPair struct {
	Path  string
	Key   string
	Value string

	// Lesser-used, but still valuable keys from api.KV
	CreateIndex uint64
	ModifyIndex uint64
	LockIndex   uint64
	Flags       uint64
	Session     string
}

KeyPair is a simple Key-Value pair

type Node

type Node struct {
	ID              string
	Node            string
	Address         string
	Datacenter      string
	TaggedAddresses map[string]string
	Meta            map[string]string
}

Node is a node entry in Consul

type QueryOptions added in v0.9.0

type QueryOptions struct {
	AllowStale        bool
	Datacenter        string
	Near              string
	RequireConsistent bool
	VaultGrace        time.Duration
	WaitIndex         uint64
	WaitTime          time.Duration
}

QueryOptions is a list of options to send with the query. These options are client-agnostic, and the dependency determines which, if any, of the options to use.

func (*QueryOptions) Merge added in v0.18.0

func (q *QueryOptions) Merge(o *QueryOptions) *QueryOptions

func (*QueryOptions) String added in v0.18.0

func (q *QueryOptions) String() string

func (*QueryOptions) ToConsulOpts added in v0.18.0

func (q *QueryOptions) ToConsulOpts() *consulapi.QueryOptions

type ResponseMetadata added in v0.9.0

type ResponseMetadata struct {
	LastIndex   uint64
	LastContact time.Duration
	Block       bool
}

ResponseMetadata is a struct that contains metadata about the response. This is returned from a Fetch function call.

type Secret added in v0.9.0

type Secret struct {
	// The request ID that generated this response
	RequestID string

	LeaseID       string
	LeaseDuration int
	Renewable     bool

	// Data is the actual contents of the secret. The format of the data
	// is arbitrary and up to the secret backend.
	Data map[string]interface{}

	// Warnings contains any warnings related to the operation. These
	// are not issues that caused the command to fail, but that the
	// client should be aware of.
	Warnings []string

	// Auth, if non-nil, means that there was authentication information
	// attached to this response.
	Auth *SecretAuth

	// WrapInfo, if non-nil, means that the initial response was wrapped in the
	// cubbyhole of the given token (which has a TTL of the given number of
	// seconds)
	WrapInfo *SecretWrapInfo
}

Secret is the structure returned for every secret within Vault.

type SecretAuth added in v0.19.1

type SecretAuth struct {
	ClientToken string
	Accessor    string
	Policies    []string
	Metadata    map[string]string

	LeaseDuration int
	Renewable     bool
}

SecretAuth is the structure containing auth information if we have it.

type SecretWrapInfo added in v0.19.1

type SecretWrapInfo struct {
	Token           string
	TTL             int
	CreationTime    time.Time
	WrappedAccessor string
}

SecretWrapInfo contains wrapping information if we have it. If what is contained is an authentication token, the accessor for the token will be available in WrappedAccessor.

type ServiceTags

type ServiceTags []string

ServiceTags is a slice of tags assigned to a Service

type Set added in v0.18.0

type Set struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

Set is a dependency-specific set implementation. Relative ordering is preserved.

func (*Set) Add added in v0.18.0

func (s *Set) Add(d Dependency) bool

Add adds a new element to the set if it does not already exist.

func (*Set) Get added in v0.18.0

func (s *Set) Get(v string) Dependency

Get retrieves a single element from the set by name.

func (*Set) Len added in v0.18.0

func (s *Set) Len() int

Len is the size of the set.

func (*Set) List added in v0.18.0

func (s *Set) List() []Dependency

List returns the insertion-ordered list of dependencies.

func (*Set) String added in v0.18.0

func (s *Set) String() string

String is a string representation of the set.

type Type added in v0.18.0

type Type int
const (
	TypeConsul Type = iota
	TypeVault
	TypeLocal
)

type VaultAgentTokenQuery added in v0.20.0

type VaultAgentTokenQuery struct {
	// contains filtered or unexported fields
}

VaultAgentTokenQuery is the dependency to Vault Agent token

func NewVaultAgentTokenQuery added in v0.20.0

func NewVaultAgentTokenQuery(path string) (*VaultAgentTokenQuery, error)

NewVaultAgentTokenQuery creates a new dependency.

func (*VaultAgentTokenQuery) CanShare added in v0.20.0

func (d *VaultAgentTokenQuery) CanShare() bool

CanShare returns if this dependency is sharable.

func (*VaultAgentTokenQuery) Fetch added in v0.20.0

func (d *VaultAgentTokenQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch retrieves this dependency and returns the result or any errors that occur in the process.

func (*VaultAgentTokenQuery) Stop added in v0.20.0

func (d *VaultAgentTokenQuery) Stop()

Stop halts the dependency's fetch function.

func (*VaultAgentTokenQuery) String added in v0.20.0

func (d *VaultAgentTokenQuery) String() string

String returns the human-friendly version of this dependency.

func (*VaultAgentTokenQuery) Type added in v0.20.0

func (d *VaultAgentTokenQuery) Type() Type

Type returns the type of this dependency.

type VaultListQuery added in v0.18.0

type VaultListQuery struct {
	// contains filtered or unexported fields
}

VaultListQuery is the dependency to Vault for a secret

func NewVaultListQuery added in v0.18.0

func NewVaultListQuery(s string) (*VaultListQuery, error)

NewVaultListQuery creates a new datacenter dependency.

func (*VaultListQuery) CanShare added in v0.18.0

func (d *VaultListQuery) CanShare() bool

CanShare returns if this dependency is shareable.

func (*VaultListQuery) Fetch added in v0.18.0

func (d *VaultListQuery) Fetch(clients *ClientSet, opts *QueryOptions) (interface{}, *ResponseMetadata, error)

Fetch queries the Vault API

func (*VaultListQuery) Stop added in v0.18.0

func (d *VaultListQuery) Stop()

Stop halts the given dependency's fetch.

func (*VaultListQuery) String added in v0.18.0

func (d *VaultListQuery) String() string

String returns the human-friendly version of this dependency.

func (*VaultListQuery) Type added in v0.18.0

func (d *VaultListQuery) Type() Type

Type returns the type of this dependency.

type VaultReadQuery added in v0.18.0

type VaultReadQuery struct {
	// contains filtered or unexported fields
}

VaultReadQuery is the dependency to Vault for a secret

func NewVaultReadQuery added in v0.18.0

func NewVaultReadQuery(s string) (*VaultReadQuery, error)

NewVaultReadQuery creates a new datacenter dependency.

func (*VaultReadQuery) CanShare added in v0.18.0

func (d *VaultReadQuery) CanShare() bool

CanShare returns if this dependency is shareable.

func (*VaultReadQuery) Fetch added in v0.18.0

func (d *VaultReadQuery) Fetch(clients *ClientSet, opts *QueryOptions,
) (interface{}, *ResponseMetadata, error)

Fetch queries the Vault API

func (*VaultReadQuery) Stop added in v0.18.0

func (d *VaultReadQuery) Stop()

Stop halts the given dependency's fetch.

func (*VaultReadQuery) String added in v0.18.0

func (d *VaultReadQuery) String() string

String returns the human-friendly version of this dependency.

func (*VaultReadQuery) Type added in v0.18.0

func (d *VaultReadQuery) Type() Type

Type returns the type of this dependency.

type VaultTokenQuery added in v0.18.0

type VaultTokenQuery struct {
	// contains filtered or unexported fields
}

VaultTokenQuery is the dependency to Vault for a secret

func NewVaultTokenQuery added in v0.18.0

func NewVaultTokenQuery(token string) (*VaultTokenQuery, error)

NewVaultTokenQuery creates a new dependency.

func (*VaultTokenQuery) CanShare added in v0.18.0

func (d *VaultTokenQuery) CanShare() bool

CanShare returns if this dependency is shareable.

func (*VaultTokenQuery) Fetch added in v0.18.0

func (d *VaultTokenQuery) Fetch(clients *ClientSet, opts *QueryOptions,
) (interface{}, *ResponseMetadata, error)

Fetch queries the Vault API

func (*VaultTokenQuery) Stop added in v0.18.0

func (d *VaultTokenQuery) Stop()

Stop halts the dependency's fetch function.

func (*VaultTokenQuery) String added in v0.18.0

func (d *VaultTokenQuery) String() string

String returns the human-friendly version of this dependency.

func (*VaultTokenQuery) Type added in v0.18.0

func (d *VaultTokenQuery) Type() Type

Type returns the type of this dependency.

type VaultWriteQuery added in v0.18.0

type VaultWriteQuery struct {
	// contains filtered or unexported fields
}

VaultWriteQuery is the dependency to Vault for a secret

func NewVaultWriteQuery added in v0.18.0

func NewVaultWriteQuery(s string, d map[string]interface{}) (*VaultWriteQuery, error)

NewVaultWriteQuery creates a new datacenter dependency.

func (*VaultWriteQuery) CanShare added in v0.18.0

func (d *VaultWriteQuery) CanShare() bool

CanShare returns if this dependency is shareable.

func (*VaultWriteQuery) Fetch added in v0.18.0

func (d *VaultWriteQuery) Fetch(clients *ClientSet, opts *QueryOptions,
) (interface{}, *ResponseMetadata, error)

Fetch queries the Vault API

func (*VaultWriteQuery) Stop added in v0.18.0

func (d *VaultWriteQuery) Stop()

Stop halts the given dependency's fetch.

func (*VaultWriteQuery) String added in v0.18.0

func (d *VaultWriteQuery) String() string

String returns the human-friendly version of this dependency.

func (*VaultWriteQuery) Type added in v0.18.0

func (d *VaultWriteQuery) Type() Type

Type returns the type of this dependency.

Jump to

Keyboard shortcuts

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