Documentation ¶
Index ¶
- type ExplicitProxyServiceMapper
- type KubeProxyServiceMapper
- type ProxyRegistry
- func (pr *ProxyRegistry) GetConnectedProxy(uuid string) *envoy.Proxy
- func (pr *ProxyRegistry) GetConnectedProxyCount() int
- func (pr *ProxyRegistry) ListConnectedProxies() map[string]*envoy.Proxy
- func (pr *ProxyRegistry) RegisterProxy(proxy *envoy.Proxy)
- func (pr *ProxyRegistry) ReleaseCertificateHandler(certManager certificateReleaser, stop <-chan struct{})
- func (pr *ProxyRegistry) UnregisterProxy(p *envoy.Proxy)
- type ProxyServiceMapper
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ExplicitProxyServiceMapper ¶
type ExplicitProxyServiceMapper func(*envoy.Proxy) ([]service.MeshService, error)
ExplicitProxyServiceMapper is a custom ProxyServiceMapper implementation.
func (ExplicitProxyServiceMapper) ListProxyServices ¶
func (e ExplicitProxyServiceMapper) ListProxyServices(p *envoy.Proxy) ([]service.MeshService, error)
ListProxyServices executes the given mapping.
type KubeProxyServiceMapper ¶
type KubeProxyServiceMapper struct {
KubeController k8s.Controller
}
KubeProxyServiceMapper maps an Envoy instance to services in a Kubernetes cluster.
func (*KubeProxyServiceMapper) ListProxyServices ¶
func (k *KubeProxyServiceMapper) ListProxyServices(p *envoy.Proxy) ([]service.MeshService, error)
ListProxyServices maps an Envoy instance to a number of Kubernetes services.
type ProxyRegistry ¶
type ProxyRegistry struct { ProxyServiceMapper // contains filtered or unexported fields }
ProxyRegistry keeps track of Envoy proxies as they connect and disconnect from the control plane.
func NewProxyRegistry ¶
func NewProxyRegistry(mapper ProxyServiceMapper, msgBroker *messaging.Broker) *ProxyRegistry
NewProxyRegistry initializes a new empty *ProxyRegistry.
func (*ProxyRegistry) GetConnectedProxy ¶ added in v1.2.0
func (pr *ProxyRegistry) GetConnectedProxy(uuid string) *envoy.Proxy
GetConnectedProxy loads a connected proxy from the registry.
func (*ProxyRegistry) GetConnectedProxyCount ¶
func (pr *ProxyRegistry) GetConnectedProxyCount() int
GetConnectedProxyCount counts the number of connected proxies TODO(steeling): switch to a regular map with mutex so we can get the count without iterating the entire list.
func (*ProxyRegistry) ListConnectedProxies ¶
func (pr *ProxyRegistry) ListConnectedProxies() map[string]*envoy.Proxy
ListConnectedProxies lists the Envoy proxies already connected and the time they first connected.
func (*ProxyRegistry) RegisterProxy ¶
func (pr *ProxyRegistry) RegisterProxy(proxy *envoy.Proxy)
RegisterProxy registers a newly connected proxy.
func (*ProxyRegistry) ReleaseCertificateHandler ¶
func (pr *ProxyRegistry) ReleaseCertificateHandler(certManager certificateReleaser, stop <-chan struct{})
ReleaseCertificateHandler releases certificates based on podDelete events
func (*ProxyRegistry) UnregisterProxy ¶
func (pr *ProxyRegistry) UnregisterProxy(p *envoy.Proxy)
UnregisterProxy unregisters the given proxy from the catalog.
type ProxyServiceMapper ¶
type ProxyServiceMapper interface {
ListProxyServices(*envoy.Proxy) ([]service.MeshService, error)
}
ProxyServiceMapper knows how to map Envoy instances to services.