servicediscovery

package
v1.9.2 Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2024 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConsulAgent

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

ConsulAgent is the custom consul agent that will be used by all go lang applications

func (*ConsulAgent) DeregisterService

func (c *ConsulAgent) DeregisterService(serviceID string)

DeregisterService will deregister all the checks and the service itself This should be used on an exit listener of the application. It will help reduce clutter in consul

func (*ConsulAgent) GetHealthyService

func (c *ConsulAgent) GetHealthyService(moduleName string, k8sNamespace string) ([]string, error)

GetHealthyService will give all the IPs of the service

func (*ConsulAgent) GetHealthyServiceWithZoneInfo added in v1.2.0

func (c *ConsulAgent) GetHealthyServiceWithZoneInfo(moduleName string, k8sNamspace string) ([]EndpointsWithExtraInfo, error)

GetHealthyServiceWithZoneInfo will give all the IPs of the service and other info like zones

func (*ConsulAgent) RegisterService

func (c *ConsulAgent) RegisterService(name, ipAddress, port, healthCheckPort string, checkFunction func() (bool, error), isDockerType bool, tags []string, metadata map[string]string) (string, error)

RegisterService will register the service on consul It will also register two checks for the service. A mon check and a gRPC check mon check can be used for releases while the gRPC service check script should check whether the service is running or not.

type EndpointsWithExtraInfo added in v1.2.0

type EndpointsWithExtraInfo struct {
	Address string
	Zone    string
}

EndpointsWithExtraInfo is an object that holds addresses and zone info

type IServiceDiscoveryAgent

type IServiceDiscoveryAgent interface {
	//RegisterService will register the service given the name, ip and port
	//It returns the ID of the service
	RegisterService(name, ipAddress, port, healthCheckPort string, checkFunction func() (bool, error), isDockerType bool, tags []string, metadata map[string]string) (string, error)
	//DeregisterService will deregister the service given the ID
	DeregisterService(serviceID string)
	//GetHealthyService will give a list of all the instances of the module
	GetHealthyService(moduleName string, k8sNamespace string) ([]string, error)
	//GetHealthyServiceWithZoneInfo will give a list of all the instances of the module along with other infor like zones for all the pods
	GetHealthyServiceWithZoneInfo(moduleName string, k8sNamespace string) ([]EndpointsWithExtraInfo, error)
}

func NewConsulAgent

func NewConsulAgent(options ...Options) IServiceDiscoveryAgent

NewConsulAgent will initialize consul client.

func NewK8sClient

func NewK8sClient(options ...K8SOptions) IServiceDiscoveryAgent

NewK8sClient returns new K8s Service discovery agent

func NewMultiSourceClient

func NewMultiSourceClient(clients ...IServiceDiscoveryAgent) IServiceDiscoveryAgent

NewMultiSourceClient returns new K8s Service discovery agent

type K8SOptions

type K8SOptions func(k *k8sClient)

func IsInK8SCluster

func IsInK8SCluster(flag bool) K8SOptions

IsInK8SCluster sets whether running inside kubernetes cluster. Defults to true.

func SetK8sNamespace

func SetK8sNamespace(namespace string) K8SOptions

SetK8sNamespace sets the namespace to be used for querying k8s. Defaults to 'default'

type Options

type Options func(c *ConsulAgent)

Options sets a parameter for consul agent

func ConsulHost

func ConsulHost(hostName string) Options

ConsulHost sets the IP for consul agent. Defults to 127.0.0.1

func ConsulMonScriptName

func ConsulMonScriptName(name string) Options

ConsulMonScriptName sets the name of the mon check script for the service The script should be located in the mon folder of the application Defaults to mon.py

func ConsulPort

func ConsulPort(portNumber int) Options

ConsulPort sets the port for consul agent. Defaults to 8500

func Logger

func Logger(customLogger *gologger.CustomLogger) Options

Logger sets the logger for consul Defaults to consul logger

Jump to

Keyboard shortcuts

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