Documentation ¶
Index ¶
- func SetRoutingMetadata(md metadata.MD, agentID int64) metadata.MD
- type AggregatingQuerier
- type Handler
- type Querier
- type RedisTracker
- func (t *RedisTracker) GC(ctx context.Context, agentIDs []int64) (int, error)
- func (t *RedisTracker) KASURLsByAgentID(ctx context.Context, agentID int64) ([]string, error)
- func (t *RedisTracker) Refresh(ctx context.Context, ttl time.Duration, agentIDs []int64) error
- func (t *RedisTracker) RegisterTunnel(ctx context.Context, ttl time.Duration, agentID int64) error
- func (t *RedisTracker) UnregisterTunnel(ctx context.Context, agentID int64) error
- type Registerer
- type Registry
- func (r *Registry) FindTunnel(ctx context.Context, agentID int64, service, method string) (bool, tunserver.FindHandle)
- func (r *Registry) HandleTunnel(ageCtx context.Context, agentInfo *api.AgentInfo, ...) error
- func (r *Registry) KASURLsByAgentID(ctx context.Context, agentID int64) ([]string, error)
- func (r *Registry) Run(ctx context.Context) error
- type RouterPlugin
- type Tracker
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AggregatingQuerier ¶
type AggregatingQuerier struct {
// contains filtered or unexported fields
}
AggregatingQuerier groups polling requests.
func NewAggregatingQuerier ¶
func (*AggregatingQuerier) CachedGatewayURLs ¶
func (q *AggregatingQuerier) CachedGatewayURLs(agentID int64) []string
func (*AggregatingQuerier) PollGatewayURLs ¶
func (q *AggregatingQuerier) PollGatewayURLs(ctx context.Context, agentID int64, cb tunserver.PollGatewayURLsCallback)
type Handler ¶
type Handler interface { // HandleTunnel is called with server-side interface of the reverse tunnel. // It registers the tunnel and blocks, waiting for a request to proxy through the tunnel. // The method returns the error value to return to gRPC framework. // ageCtx can be used to unblock the method if the tunnel is not being used already. HandleTunnel(ageCtx context.Context, agentInfo *api.AgentInfo, server rpc.ReverseTunnel_ConnectServer) error }
type RedisTracker ¶
type RedisTracker struct {
// contains filtered or unexported fields
}
func NewRedisTracker ¶
func NewRedisTracker(client rueidis.Client, agentKeyPrefix string, ownPrivateAPIURL string, m otelmetric.Meter) (*RedisTracker, error)
func (*RedisTracker) KASURLsByAgentID ¶
func (*RedisTracker) RegisterTunnel ¶
func (*RedisTracker) UnregisterTunnel ¶
func (t *RedisTracker) UnregisterTunnel(ctx context.Context, agentID int64) error
type Registerer ¶
type Registerer interface { // RegisterTunnel registers tunnel with the tracker. RegisterTunnel(ctx context.Context, ttl time.Duration, agentID int64) error // UnregisterTunnel unregisters tunnel with the tracker. UnregisterTunnel(ctx context.Context, agentID int64) error // GC deletes expired tunnels from the underlying storage. GC(ctx context.Context, agentIDs []int64) (int, error) // Refresh refreshes registered tunnels in the underlying storage. Refresh(ctx context.Context, ttl time.Duration, agentIDs []int64) error }
Registerer allows to register and unregister tunnels. Caller is responsible for periodically calling GC() and Refresh(). Not safe for concurrent use.
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
func NewRegistry ¶
func (*Registry) FindTunnel ¶
func (*Registry) HandleTunnel ¶
func (*Registry) KASURLsByAgentID ¶
type RouterPlugin ¶
type RouterPlugin struct { KASPool grpctool.PoolInterface GatewayQuerier tunserver.PollingGatewayURLQuerier AgentFinder tunserver.AgentFinder API modshared.API TunnelRegistry *Registry OwnPrivateAPIURL string PollConfig retry.PollConfigFactory TryNewGatewayInterval time.Duration }
func (*RouterPlugin) FindTunnel ¶
func (p *RouterPlugin) FindTunnel(stream grpc.ServerStream, rpcAPI modshared.RPCAPI) (bool, *zap.Logger, tunserver.FindHandle, error)
func (*RouterPlugin) GatewayFinder ¶
type Tracker ¶
type Tracker interface { Registerer Querier }
Click to show internal directories.
Click to hide internal directories.