Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DialTimeout

func DialTimeout(duration time.Duration) func(*Dialer) error

DialTimeout sets the timeout

Types

type Addr

type Addr struct {
	net.Addr
	// contains filtered or unexported fields
}

Addr defines a proxy net/addr format

func NewAddrFromConn

func NewAddrFromConn(c Conn) Addr

NewAddrFromConn creates an Addr from the given connection

func (Addr) Network

func (a Addr) Network() string

Network returns a fake network

func (Addr) String

func (a Addr) String() string

String returns encoded information about the connection

type Conn

type Conn struct {
	// contains filtered or unexported fields
}

Conn is a Kubernetes API server proxied type of net/conn

func NewConn

func NewConn(connection httpstream.Connection, stream httpstream.Stream) Conn

NewConn creates a new net/conn interface based on an underlying Kubernetes API server proxy connection

func (Conn) Close

func (c Conn) Close() error

Close the underlying proxied connection

func (Conn) LocalAddr

func (c Conn) LocalAddr() net.Addr

Return a fake address representing the proxied connection

func (Conn) Read

func (c Conn) Read(b []byte) (n int, err error)

Read from the connection

func (Conn) RemoteAddr

func (c Conn) RemoteAddr() net.Addr

Return a fake address representing the proxied connection

func (Conn) SetDeadline

func (c Conn) SetDeadline(t time.Time) error

SetDeadline sets the read and write deadlines to the specified interval

func (Conn) SetReadDeadline

func (c Conn) SetReadDeadline(t time.Time) error

SetReadDeadline sets the read and write deadlines to the specified interval

func (Conn) SetWriteDeadline

func (c Conn) SetWriteDeadline(t time.Time) error

SetWriteDeadline sets the read and write deadlines to the specified interval

func (Conn) Write

func (c Conn) Write(b []byte) (n int, err error)

Write to the connection

type Dialer

type Dialer struct {
	// contains filtered or unexported fields
}

Dialer creates connections using Kubernetes API Server port-forwarding

func NewDialer

func NewDialer(p Proxy, options ...func(*Dialer) error) (*Dialer, error)

NewDialer creates a new dialer for a given API server scope

func (*Dialer) DialContext

func (d *Dialer) DialContext(_ context.Context, network string, addr string) (net.Conn, error)

DialContext creates proxied port-forwarded connections. ctx is currently unused, but fulfils the type signature used by GRPC.

func (*Dialer) DialContextWithAddr

func (d *Dialer) DialContextWithAddr(ctx context.Context, addr string) (net.Conn, error)

DialContextWithAddr is a GO grpc compliant dialer construct

type Proxy

type Proxy struct {

	// Kind is the kind of Kubernetes resource
	Kind string

	// Namespace is the namespace in which the Kubernetes resource exists
	Namespace string

	// ResourceName is the name of the Kubernetes resource
	ResourceName string

	// KubeConfig is the config to connect to the API server
	KubeConfig *rest.Config

	// TLSConfig is for connecting to TLS servers listening on a proxied port
	TLSConfig *tls.Config

	// KeepAlive specifies how often a keep alive message is sent to hold
	// the connection open
	KeepAlive *time.Duration

	// Port is the port to be forwarded from the relevant resource
	Port int
}

Proxy defines the API server port-forwarded proxy