Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Timeout after which tokens become invalid.
	CacheTTL = 1 * time.Minute
	// The maximum number of in-flight requests to allow.
	MaxInFlight = 1000
	// Length of the random base64 encoded token identifying the request.
	TokenLen = 8
)
View Source
var DefaultConfig = Config{
	StreamIdleTimeout:               4 * time.Hour,
	StreamCreationTimeout:           remotecommandconsts.DefaultStreamCreationTimeout,
	SupportedRemoteCommandProtocols: remotecommandconsts.SupportedStreamingProtocols,
	SupportedPortForwardProtocols:   portforward.SupportedProtocols,
}

    DefaultConfig provides default values for server Config. The DefaultConfig is partial, so some fields like Addr must still be provided.

    Functions

    func ErrorStreamingDisabled

    func ErrorStreamingDisabled(method string) error

    func ErrorTooManyInFlight

    func ErrorTooManyInFlight() error

      The error returned when the maximum number of in-flight requests is exceeded.

      func WriteError

      func WriteError(err error, w http.ResponseWriter) error

        Translates a CRI streaming error into an appropriate HTTP response.

        Types

        type Config

        type Config struct {
        	// The host:port address the server will listen on.
        	Addr string
        	// The optional base URL for constructing streaming URLs. If empty, the baseURL will be
        	// constructed from the serve address.
        	BaseURL *url.URL
        
        	// How long to leave idle connections open for.
        	StreamIdleTimeout time.Duration
        	// How long to wait for clients to create streams. Only used for SPDY streaming.
        	StreamCreationTimeout time.Duration
        
        	// The streaming protocols the server supports (understands and permits).  See
        	// k8s.io/kubernetes/pkg/kubelet/server/remotecommand/constants.go for available protocols.
        	// Only used for SPDY streaming.
        	SupportedRemoteCommandProtocols []string
        
        	// The streaming protocols the server supports (understands and permits).  See
        	// k8s.io/kubernetes/pkg/kubelet/server/portforward/constants.go for available protocols.
        	// Only used for SPDY streaming.
        	SupportedPortForwardProtocols []string
        
        	// The config for serving over TLS. If nil, TLS will not be used.
        	TLSConfig *tls.Config
        }

          Config defines the options used for running the stream server.

          type Runtime

          type Runtime interface {
          	Exec(containerID string, cmd []string, in io.Reader, out, err io.WriteCloser, tty bool, resize <-chan remotecommand.TerminalSize) error
          	Attach(containerID string, in io.Reader, out, err io.WriteCloser, tty bool, resize <-chan remotecommand.TerminalSize) error
          	PortForward(podSandboxID string, port int32, stream io.ReadWriteCloser) error
          }

            The interface to execute the commands and provide the streams.

            type Server

            type Server interface {
            	http.Handler
            
            	// Get the serving URL for the requests.
            	// Requests must not be nil. Responses may be nil iff an error is returned.
            	GetExec(*runtimeapi.ExecRequest) (*runtimeapi.ExecResponse, error)
            	GetAttach(req *runtimeapi.AttachRequest) (*runtimeapi.AttachResponse, error)
            	GetPortForward(*runtimeapi.PortForwardRequest) (*runtimeapi.PortForwardResponse, error)
            
            	// Start the server.
            	// addr is the address to serve on (address:port) stayUp indicates whether the server should
            	// listen until Stop() is called, or automatically stop after all expected connections are
            	// closed. Calling Get{Exec,Attach,PortForward} increments the expected connection count.
            	// Function does not return until the server is stopped.
            	Start(stayUp bool) error
            	// Stop the server, and terminate any open connections.
            	Stop() error
            }

              The library interface to serve the stream requests.

              func NewServer

              func NewServer(config Config, runtime Runtime) (Server, error)

                TODO(timstclair): Add auth(n/z) interface & handling.