Documentation ¶
Index ¶
- Variables
- func GetControllerConfig(st *state.State) (controller.Config, error)
- func Manifold(config ManifoldConfig) dependency.Manifold
- func NewTLSConfig(st *state.State, defaultSNI SNIGetterFunc, logger Logger) (*tls.Config, error)
- func NewWorkerShim(config Config) (worker.Worker, error)
- type Config
- type Logger
- type ManifoldConfig
- type SNIGetterFunc
- type Worker
Constants ¶
This section is empty.
Variables ¶
var ( // ShutdownTimeout is how long the http server will wait for active connections // to close. ShutdownTimeout = 30 * time.Second )
Functions ¶
func GetControllerConfig ¶
func GetControllerConfig(st *state.State) (controller.Config, error)
GetControllerConfig gets the controller config from a *State - it exists so we can test the manifold without a StateSuite.
func Manifold ¶
func Manifold(config ManifoldConfig) dependency.Manifold
Manifold returns a dependency.Manifold that will run an HTTP server worker. The manifold outputs an *apiserverhttp.Mux, for other workers to register handlers against.
func NewTLSConfig ¶
NewTLSConfig returns the TLS configuration for the HTTP server to use based on controller configuration stored in the state database.
func NewWorkerShim ¶
NewWorkerShim calls through to NewWorker, and exists only to adapt to the signature of ManifoldConfig.NewWorker.
Types ¶
type Config ¶
type Config struct { AgentName string Clock clock.Clock TLSConfig *tls.Config Mux *apiserverhttp.Mux MuxShutdownWait time.Duration LogDir string Logger Logger PrometheusRegisterer prometheus.Registerer Hub *pubsub.StructuredHub APIPort int APIPortOpenDelay time.Duration ControllerAPIPort int }
Config is the configuration required for running an API server worker.
type ManifoldConfig ¶
type ManifoldConfig struct { AuthorityName string HubName string MuxName string StateName string // We don't use these in the worker, but we want to prevent the // httpserver from starting until they're running so that all of // their handlers are registered. RaftTransportName string APIServerName string AgentName string Clock clock.Clock MuxShutdownWait time.Duration LogDir string PrometheusRegisterer prometheus.Registerer Logger Logger GetControllerConfig func(*state.State) (controller.Config, error) NewTLSConfig func(*state.State, SNIGetterFunc, Logger) (*tls.Config, error) NewWorker func(Config) (worker.Worker, error) }
ManifoldConfig holds the information necessary to run an HTTP server in a dependency.Engine.
func (ManifoldConfig) Validate ¶
func (config ManifoldConfig) Validate() error
Validate validates the manifold configuration.
type SNIGetterFunc ¶
type SNIGetterFunc func(*tls.ClientHelloInfo) (*tls.Certificate, error)
type Worker ¶
type Worker struct {
// contains filtered or unexported fields
}
func (*Worker) URL ¶
URL returns the base URL of the HTTP server of the form https://ipaddr:port with no trailing slash.