consul

package
v0.0.0-...-730bba4 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2018 License: Apache-2.0 Imports: 9 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 string, 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 string) (*model.Service, error)

GetService retrieves a service by host name if it exists

func (*Controller) Instances

func (c *Controller) Instances(hostname string, 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) ManagementPorts

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

ManagementPorts retries 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

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