Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultArguments = Arguments{
Server: "localhost:8500",
TagSeparator: ",",
Scheme: "http",
RefreshInterval: 30 * time.Second,
}
View Source
var (
// DefaultSDConfig is the default Consul SD configuration.
DefaultSDConfig = SDConfig{
TagSeparator: ",",
Scheme: "http",
Server: "localhost:8500",
RefreshInterval: model.Duration(30 * time.Second),
}
)
Functions ¶
Types ¶
type Arguments ¶
type Arguments struct {
Server string `river:"server,attr,optional"`
Token rivertypes.Secret `river:"token,attr,optional"`
Datacenter string `river:"datacenter,attr,optional"`
TagSeparator string `river:"tag_separator,attr,optional"`
Scheme string `river:"scheme,attr,optional"`
Username string `river:"username,attr,optional"`
Password rivertypes.Secret `river:"password,attr,optional"`
RefreshInterval time.Duration `river:"refresh_interval,attr,optional"`
Services []string `river:"services,attr,optional"`
ServiceTags []string `river:"tags,attr,optional"`
TLSConfig config.TLSConfig `river:"tls_config,block,optional"`
}
func (*Arguments) Convert ¶
func (args *Arguments) Convert() *SDConfig
Convert converts Arguments into the SDConfig type.
func (*Arguments) SetToDefault ¶
func (args *Arguments) SetToDefault()
SetToDefault implements river.Defaulter.
type Discovery ¶
type Discovery struct {
// contains filtered or unexported fields
}
Discovery retrieves target information from a Consul Agent and updates them via watches.
func NewDiscovery ¶
func NewDiscovery(conf *SDConfig, logger log.Logger) (*Discovery, error)
NewDiscovery returns a new Discovery for the given config.
type SDConfig ¶
type SDConfig struct {
Server string `yaml:"server,omitempty"`
Token config.Secret `yaml:"token,omitempty"`
Datacenter string `yaml:"datacenter,omitempty"`
TagSeparator string `yaml:"tag_separator,omitempty"`
Scheme string `yaml:"scheme,omitempty"`
Username string `yaml:"username,omitempty"`
Password config.Secret `yaml:"password,omitempty"`
// By default use blocking queries (https://www.consul.io/api/index.html#blocking-queries)
// but allow users to throttle updates if necessary. This can be useful because of "bugs" like
// https://github.com/hashicorp/consul/issues/3712 which cause an un-necessary
// amount of requests on consul.
RefreshInterval model.Duration `yaml:"refresh_interval,omitempty"`
// See https://www.consul.io/api/catalog.html#list-services
// The list of services for which targets are discovered.
// Defaults to all services if empty.
Services []string `yaml:"services,omitempty"`
// A list of tags used to filter instances inside a service. Services must contain all tags in the list.
ServiceTags []string `yaml:"tags,omitempty"`
TLSConfig config.TLSConfig `yaml:"tls_config,omitempty"`
}
SDConfig is the configuration for Consul service discovery.
func (*SDConfig) NewDiscoverer ¶
func (c *SDConfig) NewDiscoverer(opts discovery.DiscovererOptions) (discovery.Discoverer, error)
NewDiscoverer returns a Discoverer for the Config.
func (*SDConfig) SetDirectory ¶
func (c *SDConfig) SetDirectory(dir string)
SetDirectory joins any relative file paths with dir.
func (*SDConfig) UnmarshalYAML ¶
func (c *SDConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface.
Click to show internal directories.
Click to hide internal directories.