consulagent

package
v0.37.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2023 License: Apache-2.0 Imports: 22 Imported by: 0

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

func New

func New(opts component.Options, args Arguments) (*discovery.Component, error)

New returns a new instance of a discovery.consulagent component.

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.

func (*Arguments) Validate

func (args *Arguments) Validate() error

Validate implements river.Validator.

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.

func (*Discovery) Run

func (d *Discovery) Run(ctx context.Context, ch chan<- []*targetgroup.Group)

Run implements the Discoverer interface.

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) Name

func (*SDConfig) Name() string

Name returns the name of the Config.

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.

Jump to

Keyboard shortcuts

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