consul

package
v0.0.0-...-d8a8f93 Latest Latest
Warning

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

Go to latest
Published: May 2, 2019 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Controller

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

Controller communicates with Consul and monitors for changes

func NewController

func NewController(addr string, interval time.Duration) (*Controller, error)

NewController creates a new Consul controller

func (*Controller) AppendInstanceHandler

func (c *Controller) AppendInstanceHandler(f func(*model.ServiceInstance, model.Event)) error

AppendInstanceHandler implements a service catalog operation

func (*Controller) AppendServiceHandler

func (c *Controller) AppendServiceHandler(f func(*model.Service, model.Event)) error

AppendServiceHandler implements a service catalog operation

func (*Controller) GetIstioServiceAccounts

func (c *Controller) GetIstioServiceAccounts(hostname model.Hostname, ports []string) []string

GetIstioServiceAccounts implements model.ServiceAccounts operation TODO

func (*Controller) GetProxyServiceInstances

func (c *Controller) GetProxyServiceInstances(node *model.Proxy) ([]*model.ServiceInstance, error)

GetProxyServiceInstances lists service instances co-located with a given proxy

func (*Controller) GetService

func (c *Controller) GetService(hostname model.Hostname) (*model.Service, error)

GetService retrieves a service by host name if it exists

func (*Controller) GetServiceAttributes

func (c *Controller) GetServiceAttributes(hostname model.Hostname) (*model.ServiceAttributes, error)

GetServiceAttributes retrieves namespace of a service if it exists.

func (*Controller) Instances

func (c *Controller) Instances(hostname model.Hostname, ports []string,
	labels model.LabelsCollection) ([]*model.ServiceInstance, error)

Instances retrieves instances for a service and its ports that match any of the supplied labels. All instances match an empty tag list.

func (*Controller) InstancesByPort

func (c *Controller) InstancesByPort(hostname model.Hostname, port int,
	labels model.LabelsCollection) ([]*model.ServiceInstance, error)

InstancesByPort retrieves instances for a service that match any of the supplied labels. All instances match an empty tag list.

func (*Controller) ManagementPorts

func (c *Controller) ManagementPorts(addr string) model.PortList

ManagementPorts retrieves set of health check ports by instance IP. This does not apply to Consul service registry, as Consul does not manage the service instances. In future, when we integrate Nomad, we might revisit this function.

func (*Controller) Run

func (c *Controller) Run(stop <-chan struct{})

Run all controllers until a signal is received

func (*Controller) Services

func (c *Controller) Services() ([]*model.Service, error)

Services list declarations of all services in the system

func (*Controller) WorkloadHealthCheckInfo

func (c *Controller) WorkloadHealthCheckInfo(addr string) model.ProbeList

WorkloadHealthCheckInfo retrieves set of health check info by instance IP. This does not apply to Consul service registry, as Consul does not manage the service instances. In future, when we integrate Nomad, we might revisit this function.

type InstanceHandler

type InstanceHandler func(instance *api.CatalogService, event model.Event) error

InstanceHandler processes service instance change events

type Monitor

type Monitor interface {
	Start(<-chan struct{})
	AppendServiceHandler(ServiceHandler)
	AppendInstanceHandler(InstanceHandler)
}

Monitor handles service and instance changes

func NewConsulMonitor

func NewConsulMonitor(client *api.Client, period time.Duration) Monitor

NewConsulMonitor polls for changes in Consul Services and CatalogServices

type ServiceHandler

type ServiceHandler func(instances []*api.CatalogService, event model.Event) error

ServiceHandler processes service change events

Jump to

Keyboard shortcuts

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