Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrInvalidConfig when missing or wrong config values ErrInvalidConfig = errors.New("config is invalid") )
Functions ¶
Types ¶
type ClientConfig ¶
type ClientConfig struct {
Config
// LocalEndpoint <HOST>:<PORT> of the user's server (e.g. Rails server)
LocalEndpoint string
// LocalEndpointUseTLS allows us to specify whether to connect to local
// Note: this is for wh-client <-> local-endpoint only
LocalEndpointUseTLS bool
// LocalEndpointInsecureSkipVerify disables SSL cert verification for local endpoints
// Note: this is for wh-client <-> local-endpoint only
LocalEndpointInsecureSkipVerify bool
// LocalEndpointCACert is the data for a CACert to verify the local endpoint
// Note: this is for wh-client <-> local-endpoint only
LocalEndpointCACert []byte
// RemoteEndpoint <HOST>:<PORT> of the wormhole server
RemoteEndpoint string
// Token for auth when connecting to wormhole server
Token string
// ReleaseID...
// when set this will override the default VCS ID (i.e. git commit SHA1)
// defaults to FLY_RELASE_ID (but can be overridden with FLY_RELEASE_ID_VAR to point ot a different ENV)
ReleaseID string
// ReleaseDesc...
// when set this will override the default VCS message (i.e. git commit message)
// defaults to FLY_RELASE_DESC (but can be overridden with FLY_RELEASE_DESC_VAR to point ot a different ENV)
ReleaseDesc string
// ReleaseBranch...
// when set this will override the default VCS branch
// defaults to FLY_RELASE_BRANCH (but can be overridden with FLY_RELEASE_BRANCH_VAR to point ot a different ENV)
ReleaseBranch string
}
ClientConfig stores wormhole client parameters
func NewClientConfig ¶
func NewClientConfig() (*ClientConfig, error)
NewClientConfig parses config values collected from Viper and validates them it returns a ClientConfig struct or an error if config values are invalid
type Config ¶
type Config struct {
// Protocol specifies transportation layer used by wormhole
// e.g. SSH tunneling, TLS conn pool, etc.
Protocol TunnelProto
// Port...
// for server this means its listening port
// for client this means listening port of the local server
Port string
// Version...
// wormhole's version
Version string
// Localhost...
// for server this means hostname or IP address of the host/container running
// a particular server instance
// for client this means the hostname or IP address of the local server
Localhost string
// TLSCert is used when TLS conn pool is used as transportation layer
// Server also needs TLSPrivateKey
// Client should only need a cert if the cert is not verifiable using system Root CAs
// Note: this is only for use with conns between wh-server <-> wh-client
TLSCert []byte
// Insecure allows one not to use tls for handlers which support it
// this is only for use with wh-server <-> wh-client conns
Insecure bool
// LogLevel represents which level we should log eg: info, debug ...
LogLevel string
// Logger instance
Logger *logrus.Logger
}
Config stores wormole shared parameters
type ServerConfig ¶
type ServerConfig struct {
Config
// ClusterURL identifies of wormhole servers
// used as metadata for session storage
ClusterURL string
// RedisURL is url of Redis instance
// Redis powers the session storage
RedisURL string
// NodeID of the wormhole server
// used as metadata for session storage
NodeID string
// SSHPrivateKey is used by the server when SSH tunneling is used
// as transportation layer
SSHPrivateKey []byte
// TLSPrivateKey is used as the global private key for all listening ports
// Currently this includes TLS tunnels and receiving conns used for SNI
// based client forwarding
TLSPrivateKey []byte
// And determine the endpoint to forward to via an ID in the SNI eg: <uid>.wormhole.server.com:443
//
// NOTE: We still use the old version along side shared port when in use. When not specified we use
// the legacy 1-port per session only
UseSharedPortForwarding bool
SharedTLSForwardingPort string
SharedPortTLSCert []byte
SharedPortTLSPrivateKey []byte
// BugsnagAPIKey token for error reporting to Bugsnag
BugsnagAPIKey string
// MetricsAPIPort used by HTTP server to serve metrics
// Used by Prometheus to scrape wormhole server endpoint
MetricsAPIPort string
// Region represents the location of the wormhole server
Region string
}
ServerConfig stores wormhole server parameters
func NewServerConfig ¶
func NewServerConfig() (*ServerConfig, error)
NewServerConfig parses config values collected from Viper and validates them it returns a ServerConfig struct or an error if config values are invalid
type TunnelProto ¶
type TunnelProto int
TunnelProto specifies the type of transport protocol used by wormhole instance
const ( // SSH tunnel with remote port forwarding SSH TunnelProto = iota // TCP connection pool TCP // HTTP2 connection pool HTTP2 // UNSUPPORTED is a catch all for unsupported protocol types UNSUPPORTED )
func ParseTunnelProto ¶
func ParseTunnelProto(proto string) TunnelProto
ParseTunnelProto converts protocol string name to TunnelProto
Click to show internal directories.
Click to hide internal directories.