dependency

package
v0.0.0-...-77c115d Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2023 License: MPL-2.0 Imports: 26 Imported by: 0

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

func SetVaultDefaultLeaseDuration(t time.Duration)

Make sure to only set VaultDefaultLeaseDuration once

Types

type ByName

type ByName []*CatalogSnippet

ByName is a sortable slice of CatalogService structs.

func (ByName) Len

func (s ByName) Len() int

func (ByName) Less

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

func (ByName) Swap

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

type ByNode

type ByNode []*Node

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

func (ByNode) Len

func (s ByNode) Len() int

func (ByNode) Less

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

func (ByNode) Swap

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

type ByNodeThenID

type ByNodeThenID []*HealthService

ByNodeThenID is a sortable slice of Service

func (ByNodeThenID) Len

func (s ByNodeThenID) Len() int

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

func (ByNodeThenID) Less

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

func (ByNodeThenID) Swap

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

type ByService

type ByService []*CatalogNodeService

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

func (ByService) Len

func (s ByService) Len() int

func (ByService) Less

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

func (ByService) Swap

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

type CatalogDatacentersQuery

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

CatalogDatacentersQuery is the dependency to query all datacenters

func NewCatalogDatacentersQuery

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

NewCatalogDatacentersQuery creates a new datacenter dependency.

func (*CatalogDatacentersQuery) CanShare

func (d *CatalogDatacentersQuery) CanShare() bool

CanShare returns if this dependency is shareable.

func (*CatalogDatacentersQuery) Fetch

func (d *CatalogDatacentersQuery) Fetch(clients *ClientSet, opts *QueryOptions, logger hclog.Logger) (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

func (d *CatalogDatacentersQuery) Stop()

Stop terminates this dependency's fetch.

func (*CatalogDatacentersQuery) String

func (d *CatalogDatacentersQuery) String() string

String returns the human-friendly version of this dependency.

func (*CatalogDatacentersQuery) Type

func (d *CatalogDatacentersQuery) Type() Type

Type returns the type of this dependency.

type CatalogNode

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

CatalogNode is a wrapper around the node and its services.

type CatalogNodeQuery

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

CatalogNodeQuery represents a single node from the Consul catalog.

func NewCatalogNodeQuery

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

func (d *CatalogNodeQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*CatalogNodeQuery) Fetch

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

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

func (*CatalogNodeQuery) Stop

func (d *CatalogNodeQuery) Stop()

Stop halts the dependency's fetch function.

func (*CatalogNodeQuery) String

func (d *CatalogNodeQuery) String() string

String returns the human-friendly version of this dependency.

func (*CatalogNodeQuery) Type

func (d *CatalogNodeQuery) Type() Type

Type returns the type of this dependency.

type CatalogNodeService

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

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

CatalogNodesQuery is the representation of all registered nodes in Consul.

func NewCatalogNodesQuery

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

func (d *CatalogNodesQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*CatalogNodesQuery) Fetch

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

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

func (*CatalogNodesQuery) Stop

func (d *CatalogNodesQuery) Stop()

Stop halts the dependency's fetch function.

func (*CatalogNodesQuery) String

func (d *CatalogNodesQuery) String() string

String returns the human-friendly version of this dependency.

func (*CatalogNodesQuery) Type

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

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

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

func NewCatalogServiceQuery

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

NewCatalogServiceQuery parses a string into a CatalogServiceQuery.

func (*CatalogServiceQuery) CanShare

func (d *CatalogServiceQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*CatalogServiceQuery) Fetch

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

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

func (*CatalogServiceQuery) Stop

func (d *CatalogServiceQuery) Stop()

Stop halts the dependency's fetch function.

func (*CatalogServiceQuery) String

func (d *CatalogServiceQuery) String() string

String returns the human-friendly version of this dependency.

func (*CatalogServiceQuery) Type

func (d *CatalogServiceQuery) Type() Type

Type returns the type of this dependency.

type CatalogServicesQuery

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

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

func NewCatalogServicesQuery

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

NewCatalogServicesQuery parses a string of the format @dc.

func (*CatalogServicesQuery) CanShare

func (d *CatalogServicesQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*CatalogServicesQuery) Fetch

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

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

func (*CatalogServicesQuery) Stop

func (d *CatalogServicesQuery) Stop()

Stop halts the dependency's fetch function.

func (*CatalogServicesQuery) String

func (d *CatalogServicesQuery) String() string

String returns the human-friendly version of this dependency.

func (*CatalogServicesQuery) Type

func (d *CatalogServicesQuery) Type() Type

Type returns the type of this dependency.

type CatalogSnippet

type CatalogSnippet struct {
	Name string
	Tags ServiceTags
}

CatalogSnippet is a catalog entry in Consul.

type ClientSet

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

func NewClientSet() *ClientSet

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

func (*ClientSet) Consul

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

Consul returns the Consul client for this set.

func (*ClientSet) CreateConsulClient

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

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

func (*ClientSet) CreateVaultClient

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

func (*ClientSet) Stop

func (c *ClientSet) Stop()

Stop closes all idle connections for any attached clients.

func (*ClientSet) Vault

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

Vault returns the Vault client for this set.

type ConnectCAQuery

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

func NewConnectCAQuery

func NewConnectCAQuery() *ConnectCAQuery

func (*ConnectCAQuery) CanShare

func (d *ConnectCAQuery) CanShare() bool

func (*ConnectCAQuery) Fetch

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

func (*ConnectCAQuery) Stop

func (d *ConnectCAQuery) Stop()

func (*ConnectCAQuery) String

func (d *ConnectCAQuery) String() string

func (*ConnectCAQuery) Type

func (d *ConnectCAQuery) Type() Type

type ConnectLeafQuery

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

func NewConnectLeafQuery

func NewConnectLeafQuery(service string) *ConnectLeafQuery

func (*ConnectLeafQuery) CanShare

func (d *ConnectLeafQuery) CanShare() bool

func (*ConnectLeafQuery) Fetch

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

func (*ConnectLeafQuery) Stop

func (d *ConnectLeafQuery) Stop()

func (*ConnectLeafQuery) String

func (d *ConnectLeafQuery) String() string

func (*ConnectLeafQuery) Type

func (d *ConnectLeafQuery) Type() Type

type CreateConsulClientInput

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

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, hclog.Logger) (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

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

FileQuery represents a local file dependency.

func NewFileQuery

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

NewFileQuery creates a file dependency from the given path.

func (*FileQuery) CanShare

func (d *FileQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*FileQuery) Fetch

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

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

func (*FileQuery) Stop

func (d *FileQuery) Stop()

Stop halts the dependency's fetch function.

func (*FileQuery) String

func (d *FileQuery) String() string

String returns the human-friendly version of this dependency.

func (*FileQuery) Type

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

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

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

func NewHealthConnectQuery

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

NewHealthConnect Query processes the strings to build a connect dependency.

func NewHealthServiceQuery

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

NewHealthServiceQuery processes the strings to build a service dependency.

func (*HealthServiceQuery) CanShare

func (d *HealthServiceQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*HealthServiceQuery) Fetch

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

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

func (*HealthServiceQuery) Stop

func (d *HealthServiceQuery) Stop()

Stop halts the dependency's fetch function.

func (*HealthServiceQuery) String

func (d *HealthServiceQuery) String() string

String returns the human-friendly version of this dependency.

func (*HealthServiceQuery) Type

func (d *HealthServiceQuery) Type() Type

Type returns the type of this dependency.

type KVGetQuery

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

KVGetQuery queries the KV store for a single key.

func NewKVGetQuery

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

NewKVGetQuery parses a string into a dependency.

func (*KVGetQuery) CanShare

func (d *KVGetQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*KVGetQuery) EnableBlocking

func (d *KVGetQuery) EnableBlocking()

EnableBlocking turns this into a blocking KV query.

func (*KVGetQuery) Fetch

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

Fetch queries the Consul API defined by the given client.

func (*KVGetQuery) Stop

func (d *KVGetQuery) Stop()

Stop halts the dependency's fetch function.

func (*KVGetQuery) String

func (d *KVGetQuery) String() string

String returns the human-friendly version of this dependency.

func (*KVGetQuery) Type

func (d *KVGetQuery) Type() Type

Type returns the type of this dependency.

type KVKeysQuery

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

KVKeysQuery queries the KV store for a single key.

func NewKVKeysQuery

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

NewKVKeysQuery parses a string into a dependency.

func (*KVKeysQuery) CanShare

func (d *KVKeysQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*KVKeysQuery) Fetch

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

Fetch queries the Consul API defined by the given client.

func (*KVKeysQuery) Stop

func (d *KVKeysQuery) Stop()

Stop halts the dependency's fetch function.

func (*KVKeysQuery) String

func (d *KVKeysQuery) String() string

String returns the human-friendly version of this dependency.

func (*KVKeysQuery) Type

func (d *KVKeysQuery) Type() Type

Type returns the type of this dependency.

type KVListQuery

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

KVListQuery queries the KV store for a single key.

func NewKVListQuery

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

NewKVListQuery parses a string into a dependency.

func (*KVListQuery) CanShare

func (d *KVListQuery) CanShare() bool

CanShare returns a boolean if this dependency is shareable.

func (*KVListQuery) Fetch

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

Fetch queries the Consul API defined by the given client.

func (*KVListQuery) Stop

func (d *KVListQuery) Stop()

Stop halts the dependency's fetch function.

func (*KVListQuery) String

func (d *KVListQuery) String() string

String returns the human-friendly version of this dependency.

func (*KVListQuery) Type

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

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

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

func (*QueryOptions) String

func (q *QueryOptions) String() string

func (*QueryOptions) ToConsulOpts

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

type ResponseMetadata

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

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

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

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

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

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

func (*Set) Add

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

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

func (*Set) Get

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

Get retrieves a single element from the set by name.

func (*Set) Len

func (s *Set) Len() int

Len is the size of the set.

func (*Set) List

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

List returns the insertion-ordered list of dependencies.

func (*Set) String

func (s *Set) String() string

String is a string representation of the set.

type Type

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

type VaultAgentTokenQuery

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

VaultAgentTokenQuery is the dependency to Vault Agent token

func NewVaultAgentTokenQuery

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

NewVaultAgentTokenQuery creates a new dependency.

func (*VaultAgentTokenQuery) CanShare

func (d *VaultAgentTokenQuery) CanShare() bool

CanShare returns if this dependency is sharable.

func (*VaultAgentTokenQuery) Fetch

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

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

func (*VaultAgentTokenQuery) Stop

func (d *VaultAgentTokenQuery) Stop()

Stop halts the dependency's fetch function.

func (*VaultAgentTokenQuery) String

func (d *VaultAgentTokenQuery) String() string

String returns the human-friendly version of this dependency.

func (*VaultAgentTokenQuery) Type

func (d *VaultAgentTokenQuery) Type() Type

Type returns the type of this dependency.

type VaultListQuery

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

VaultListQuery is the dependency to Vault for a secret

func NewVaultListQuery

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

NewVaultListQuery creates a new datacenter dependency.

func (*VaultListQuery) CanShare

func (d *VaultListQuery) CanShare() bool

CanShare returns if this dependency is shareable.

func (*VaultListQuery) Fetch

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

Fetch queries the Vault API

func (*VaultListQuery) Stop

func (d *VaultListQuery) Stop()

Stop halts the given dependency's fetch.

func (*VaultListQuery) String

func (d *VaultListQuery) String() string

String returns the human-friendly version of this dependency.

func (*VaultListQuery) Type

func (d *VaultListQuery) Type() Type

Type returns the type of this dependency.

type VaultReadQuery

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

VaultReadQuery is the dependency to Vault for a secret

func NewVaultReadQuery

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

NewVaultReadQuery creates a new datacenter dependency.

func (*VaultReadQuery) CanShare

func (d *VaultReadQuery) CanShare() bool

CanShare returns if this dependency is shareable.

func (*VaultReadQuery) Fetch

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

Fetch queries the Vault API

func (*VaultReadQuery) Stop

func (d *VaultReadQuery) Stop()

Stop halts the given dependency's fetch.

func (*VaultReadQuery) String

func (d *VaultReadQuery) String() string

String returns the human-friendly version of this dependency.

func (*VaultReadQuery) Type

func (d *VaultReadQuery) Type() Type

Type returns the type of this dependency.

type VaultTokenQuery

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

VaultTokenQuery is the dependency to Vault for a secret

func NewVaultTokenQuery

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

NewVaultTokenQuery creates a new dependency.

func (*VaultTokenQuery) CanShare

func (d *VaultTokenQuery) CanShare() bool

CanShare returns if this dependency is shareable.

func (*VaultTokenQuery) Fetch

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

Fetch queries the Vault API

func (*VaultTokenQuery) Stop

func (d *VaultTokenQuery) Stop()

Stop halts the dependency's fetch function.

func (*VaultTokenQuery) String

func (d *VaultTokenQuery) String() string

String returns the human-friendly version of this dependency.

func (*VaultTokenQuery) Type

func (d *VaultTokenQuery) Type() Type

Type returns the type of this dependency.

type VaultWriteQuery

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

VaultWriteQuery is the dependency to Vault for a secret

func NewVaultWriteQuery

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

NewVaultWriteQuery creates a new datacenter dependency.

func (*VaultWriteQuery) CanShare

func (d *VaultWriteQuery) CanShare() bool

CanShare returns if this dependency is shareable.

func (*VaultWriteQuery) Fetch

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

Fetch queries the Vault API

func (*VaultWriteQuery) Stop

func (d *VaultWriteQuery) Stop()

Stop halts the given dependency's fetch.

func (*VaultWriteQuery) String

func (d *VaultWriteQuery) String() string

String returns the human-friendly version of this dependency.

func (*VaultWriteQuery) Type

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