Documentation ¶
Index ¶
- type Controller
- func (c *Controller) AppendInstanceHandler(f func(*model.ServiceInstance, model.Event)) error
- func (c *Controller) AppendServiceHandler(f func(*model.Service, model.Event)) error
- func (c *Controller) GetIstioServiceAccounts(hostname model.Hostname, ports []string) []string
- func (c *Controller) GetProxyServiceInstances(node *model.Proxy) ([]*model.ServiceInstance, error)
- func (c *Controller) GetService(hostname model.Hostname) (*model.Service, error)
- func (c *Controller) GetServiceAttributes(hostname model.Hostname) (*model.ServiceAttributes, error)
- func (c *Controller) Instances(hostname model.Hostname, ports []string, labels model.LabelsCollection) ([]*model.ServiceInstance, error)
- func (c *Controller) InstancesByPort(hostname model.Hostname, port int, labels model.LabelsCollection) ([]*model.ServiceInstance, error)
- func (c *Controller) ManagementPorts(addr string) model.PortList
- func (c *Controller) Run(stop <-chan struct{})
- func (c *Controller) Services() ([]*model.Service, error)
- func (c *Controller) WorkloadHealthCheckInfo(addr string) model.ProbeList
- type InstanceHandler
- type Monitor
- type ServiceHandler
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 ¶
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 ¶
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
type ServiceHandler ¶
type ServiceHandler func(instances []*api.CatalogService, event model.Event) error
ServiceHandler processes service change events