Documentation

Overview

    Package server provides an implementation of a streaming xDS server.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type Callbacks

    type Callbacks interface {
    	// OnStreamOpen is called once an xDS stream is open with a stream ID and the type URL (or "" for ADS).
    	// Returning an error will end processing and close the stream. OnStreamClosed will still be called.
    	OnStreamOpen(context.Context, int64, string) error
    	// OnStreamClosed is called immediately prior to closing an xDS stream with a stream ID.
    	OnStreamClosed(int64)
    	// OnStreamRequest is called once a request is received on a stream.
    	// Returning an error will end processing and close the stream. OnStreamClosed will still be called.
    	OnStreamRequest(int64, *v2.DiscoveryRequest) error
    	// OnStreamResponse is called immediately prior to sending a response on a stream.
    	OnStreamResponse(int64, *v2.DiscoveryRequest, *v2.DiscoveryResponse)
    	// OnFetchRequest is called for each Fetch request. Returning an error will end processing of the
    	// request and respond with an error.
    	OnFetchRequest(context.Context, *v2.DiscoveryRequest) error
    	// OnFetchResponse is called immediately prior to sending a response.
    	OnFetchResponse(*v2.DiscoveryRequest, *v2.DiscoveryResponse)
    }

      Callbacks is a collection of callbacks inserted into the server operation. The callbacks are invoked synchronously.

      type HTTPGateway

      type HTTPGateway struct {
      	// Log is an optional log for errors in response write
      	Log log.Logger
      
      	// Server is the underlying gRPC server
      	Server Server
      }

        HTTPGateway is a custom implementation of [gRPC gateway](https://github.com/grpc-ecosystem/grpc-gateway) specialized to Envoy xDS API.

        func (*HTTPGateway) ServeHTTP

        func (h *HTTPGateway) ServeHTTP(resp http.ResponseWriter, req *http.Request)

        type Server

          Server is a collection of handlers for streaming discovery requests.

          func NewServer

          func NewServer(config cache.Cache, callbacks Callbacks) Server

            NewServer creates handlers from a config watcher and callbacks.