Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AgentTokenAuthenticationOptions ¶
type AgentTokenAuthenticationOptions struct { Enabled bool AgentNamespace string AgentServiceAccount string AuthenticationAudience string KubernetesClient kubernetes.Interface }
AgentTokenAuthenticationOptions contains list of parameters required for agent token based authentication
type BackendManager ¶
type BackendManager interface { // Backend returns a single backend. Backend() (Backend, error) // AddBackend adds a backend. AddBackend(agentID string, conn agent.AgentService_ConnectServer) // RemoveBackend removes a backend. RemoveBackend(agentID string, conn agent.AgentService_ConnectServer) }
BackendManager is an interface to manage backend connections, i.e., connection to the proxy agents.
type DefaultBackendManager ¶
type DefaultBackendManager struct {
// contains filtered or unexported fields
}
DefaultBackendManager is the default backend manager.
func NewDefaultBackendManager ¶
func NewDefaultBackendManager() *DefaultBackendManager
NewDefaultBackendManager returns a DefaultBackendManager.
func (*DefaultBackendManager) AddBackend ¶
func (s *DefaultBackendManager) AddBackend(agentID string, conn agent.AgentService_ConnectServer)
AddBackend adds a backend.
func (*DefaultBackendManager) Backend ¶
func (s *DefaultBackendManager) Backend() (Backend, error)
Backend returns a random backend.
func (*DefaultBackendManager) RemoveBackend ¶
func (s *DefaultBackendManager) RemoveBackend(agentID string, conn agent.AgentService_ConnectServer)
RemoveBackend removes a backend.
type PendingDialManager ¶
type PendingDialManager struct {
// contains filtered or unexported fields
}
func NewPendingDialManager ¶
func NewPendingDialManager() *PendingDialManager
func (*PendingDialManager) Add ¶
func (pm *PendingDialManager) Add(random int64, clientConn *ProxyClientConnection)
func (*PendingDialManager) Get ¶
func (pm *PendingDialManager) Get(random int64) (*ProxyClientConnection, bool)
func (*PendingDialManager) Remove ¶
func (pm *PendingDialManager) Remove(random int64)
type ProxyClientConnection ¶
type ProxyClientConnection struct { Mode string Grpc client.ProxyService_ProxyServer HTTP net.Conn // contains filtered or unexported fields }
ProxyClientConnection...
type ProxyServer ¶
type ProxyServer struct { // BackendManager manages the backends. BackendManager BackendManager PendingDial *PendingDialManager // agent authentication AgentAuthenticationOptions *AgentTokenAuthenticationOptions // contains filtered or unexported fields }
ProxyServer
func NewProxyServer ¶
func NewProxyServer(serverID string, serverCount int, agentAuthenticationOptions *AgentTokenAuthenticationOptions) *ProxyServer
NewProxyServer creates a new ProxyServer instance
func (*ProxyServer) Connect ¶
func (s *ProxyServer) Connect(stream agent.AgentService_ConnectServer) error
Connect is for agent to connect to ProxyServer as next hop
func (*ProxyServer) Proxy ¶
func (s *ProxyServer) Proxy(stream client.ProxyService_ProxyServer) error
Proxy handles incoming streams from gRPC frontend.
type Tunnel ¶
type Tunnel struct {
Server *ProxyServer
}
Tunnel implements Proxy based on HTTP Connect, which tunnels the traffic to the agent registered in ProxyServer.