Documentation ¶
Index ¶
- func BuildArgs(flags map[string]string) []string
- func BuildKingpinArgs(flags map[string]string) []string
- func EmptyFlags() map[string]string
- func MergeFlags(inputs ...map[string]string) map[string]string
- func MergeFlagsWithoutRemovingEmpty(inputs ...map[string]string) map[string]string
- func StartAndWaitReady(runnables ...Runnable) error
- type CmdReadinessProbe
- type Command
- type DockerEnvironment
- func (e *DockerEnvironment) AddCloser(f func())
- func (e *DockerEnvironment) AddListener(listener EnvironmentListener)
- func (e *DockerEnvironment) Close()
- func (e *DockerEnvironment) HostAddr() string
- func (e *DockerEnvironment) Name() string
- func (e *DockerEnvironment) Runnable(name string) RunnableBuilder
- func (e *DockerEnvironment) SharedDir() string
- type Environment
- type EnvironmentListener
- type EnvironmentOption
- type ExecOption
- type ExecOptions
- type FutureRunnable
- type HTTPReadinessProbe
- type LinePrefixLogger
- type Linkable
- type Logger
- type ReadinessProbe
- type Runnable
- type RunnableBuilder
- type RunnableCapabilities
- type SimpleLogger
- type StartOptions
- type TCPReadinessProbe
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildKingpinArgs ¶ added in v0.10.0
BuildKingpinArgs is like BuildArgs but with special handling of slice args. NOTE(bwplotka): flags with values as comma but not indented to be slice will cause issues.
func EmptyFlags ¶
func StartAndWaitReady ¶
Types ¶
type CmdReadinessProbe ¶
type CmdReadinessProbe struct {
// contains filtered or unexported fields
}
CmdReadinessProbe checks readiness by `Exec`ing a command (within container) which returns 0 to consider status being ready.
func NewCmdReadinessProbe ¶
func NewCmdReadinessProbe(cmd Command) *CmdReadinessProbe
func (*CmdReadinessProbe) Ready ¶
func (p *CmdReadinessProbe) Ready(runnable Runnable) error
type Command ¶
func NewCommand ¶
func NewCommandRunUntilStop ¶ added in v0.12.1
func NewCommandRunUntilStop() Command
NewCommandRunUntilStop is a command that allows to keep container running.
type DockerEnvironment ¶
type DockerEnvironment struct {
// contains filtered or unexported fields
}
DockerEnvironment defines single node docker engine that allows to run Services.
func New ¶ added in v0.13.0
func New(opts ...EnvironmentOption) (_ *DockerEnvironment, err error)
New creates new, isolated docker environment.
func NewDockerEnvironment ¶
func NewDockerEnvironment(name string, opts ...EnvironmentOption) (_ *DockerEnvironment, err error)
NewDockerEnvironment creates new, isolated docker environment. The `name` option is now deprecated and is equivalent to `e2e.WithName()`. Feel free to leave it empty. Deprecated: Use New instead.
func (*DockerEnvironment) AddCloser ¶ added in v0.11.0
func (e *DockerEnvironment) AddCloser(f func())
func (*DockerEnvironment) AddListener ¶ added in v0.10.0
func (e *DockerEnvironment) AddListener(listener EnvironmentListener)
AddListener registers given listener to be notified on environment runnable changes.
func (*DockerEnvironment) Close ¶
func (e *DockerEnvironment) Close()
func (*DockerEnvironment) HostAddr ¶ added in v0.11.0
func (e *DockerEnvironment) HostAddr() string
func (*DockerEnvironment) Name ¶ added in v0.11.0
func (e *DockerEnvironment) Name() string
func (*DockerEnvironment) Runnable ¶
func (e *DockerEnvironment) Runnable(name string) RunnableBuilder
func (*DockerEnvironment) SharedDir ¶
func (e *DockerEnvironment) SharedDir() string
type Environment ¶
type Environment interface { // Name returns environment name. Name() string SharedDir() string // HostAddr returns host address that is available from runnables. HostAddr() string // Runnable returns runnable builder which can build runnables that can be started and stopped within this environment. Runnable(name string) RunnableBuilder // AddListener registers given listener to be notified on environment runnable changes. AddListener(listener EnvironmentListener) // AddCloser registers function to be invoked on close, before all containers are sent kill signal. AddCloser(func()) // Close shutdowns isolated environment and cleans its resources. Close() }
Environment defines how to run Runnable in isolated area e.g via docker in isolated docker network.
type EnvironmentListener ¶ added in v0.10.0
type EnvironmentOption ¶
type EnvironmentOption func(*environmentOptions)
EnvironmentOption defined the signature of a function used to manipulate options.
func WithLogger ¶
func WithLogger(logger Logger) EnvironmentOption
WithLogger tells environment to use custom logger to default one (stdout).
func WithName ¶ added in v0.13.0
func WithName(name string) EnvironmentOption
WithName injects custom name of environment which will be used as a network name. If the name is not unique across different e2e environments ran at the same moment this will race them. In the same time if name is unique across every environment run for the same test it won't be able to easily clean up (so be reused) on the next run if the network was not cleaned properly.
By default, it creates `e2e_<hash based on function name>` environment name.
NOTE: Some restrictions apply. See https://stackoverflow.com/a/53478768.
func WithVerbose ¶
func WithVerbose() EnvironmentOption
WithVerbose tells environment to be verbose i.e print all commands it executes.
func WithVolumes ¶ added in v0.14.0
func WithVolumes(volumes ...string) EnvironmentOption
type ExecOption ¶ added in v0.12.1
type ExecOption func(o *ExecOptions)
func WithExecOptionStderr ¶ added in v0.12.1
func WithExecOptionStderr(stderr io.Writer) ExecOption
WithExecOptionStderr sets stderr writer to be used when exec is performed. By default, it is streaming to the env logger.
func WithExecOptionStdout ¶ added in v0.12.1
func WithExecOptionStdout(stdout io.Writer) ExecOption
WithExecOptionStdout sets stdout writer to be used when exec is performed. By default, it is streaming to the env logger.
type FutureRunnable ¶
type FutureRunnable interface { Linkable // Init transforms future into runnable. Init(opts StartOptions) Runnable }
type HTTPReadinessProbe ¶
type HTTPReadinessProbe struct {
// contains filtered or unexported fields
}
HTTPReadinessProbe checks readiness by making HTTP or HTTPS call and checking for expected HTTP/HTTPS status code.
func NewHTTPReadinessProbe ¶
func NewHTTPReadinessProbe(portName string, path string, expectedStatusRangeStart, expectedStatusRangeEnd int, expectedContent ...string) *HTTPReadinessProbe
func NewHTTPSReadinessProbe ¶ added in v0.12.0
func NewHTTPSReadinessProbe(portName, path string, expectedStatusRangeStart, expectedStatusRangeEnd int, expectedContent ...string) *HTTPReadinessProbe
func (*HTTPReadinessProbe) Ready ¶
func (p *HTTPReadinessProbe) Ready(runnable Runnable) (err error)
type LinePrefixLogger ¶
type LinePrefixLogger struct {
// contains filtered or unexported fields
}
type Linkable ¶
type Linkable interface { // Name returns unique name for the Runnable instance. Name() string // Dir returns the working directory path that is shared with the host and this runnable. The paths are exactly // the same for runnable and host to enable symbolic links (as long as those don't link to paths outside of Dir or not // otherwise shared with runnable). Dir() string // Deprecated. Use Dir instead. For compatibility Dir() is returned. InternalDir() string // InternalEndpoint returns internal runnable endpoint (host:port) for given internal port. // Internal means that it will be accessible only from runnable context. InternalEndpoint(portName string) string }
Linkable is the entity that one can use to link runnable to other runnables before started.
type Logger ¶
type Logger interface {
Log(keyvals ...interface{}) error
}
Logger is the fundamental interface for all log operations. Log creates a log event from keyvals, a variadic sequence of alternating keys and values. Implementations must be safe for concurrent use by multiple goroutines. In particular, any implementation of Logger that appends to keyvals or modifies or retains any of its elements must make a copy first. This is 1:1 copy of "github.com/go-kit/kit/log" interface.
type ReadinessProbe ¶
type Runnable ¶
type Runnable interface { Linkable // contains filtered or unexported methods }
Runnable is the entity that environment returns to manage single instance.
func Containerize ¶ added in v0.12.0
func Containerize(e Environment, name string, startFn func(context.Context) error) (Runnable, error)
Containerize inspects startFn and builds Go shim with local process endpoint that imports given `startFn` function. Binary is then put in adhoc container and returned as runnable ready to be started.
func NewFailedRunnable ¶ added in v0.13.0
NewFailedRunnable returns runnable that failed in construction.
type RunnableBuilder ¶ added in v0.10.0
type RunnableBuilder interface { // WithPorts adds ports to runnable, allowing caller to // use `InternalEndpoint` and `Endpoint` methods by referencing port by name. WithPorts(map[string]int) RunnableBuilder // Future returns future runnable Future() FutureRunnable // Init returns runnable. Init(opts StartOptions) Runnable }
RunnableBuilder represents options that can be build into runnable and if you want Future or Initiated Runnable from it.
type RunnableCapabilities ¶ added in v0.12.0
type RunnableCapabilities string
const (
RunnableCapabilitiesSysAdmin RunnableCapabilities = "SYS_ADMIN"
)
type SimpleLogger ¶
type SimpleLogger struct {
// contains filtered or unexported fields
}
func NewLogger ¶
func NewLogger(w io.Writer) *SimpleLogger
func (*SimpleLogger) Log ¶
func (l *SimpleLogger) Log(keyvals ...interface{}) error
type StartOptions ¶
type StartOptions struct { Image string EnvVars map[string]string User string Command Command Readiness ReadinessProbe // WaitReadyBackofff represents backoff used for WaitReady. WaitReadyBackoff *backoff.Config Volumes []string UserNs string Privileged bool Capabilities []RunnableCapabilities LimitMemoryBytes uint LimitCPUs float64 }
StartOptions represents starting option of runnable in the environment.
type TCPReadinessProbe ¶
type TCPReadinessProbe struct {
// contains filtered or unexported fields
}
TCPReadinessProbe checks readiness by ensure a TCP connection can be established.
func NewTCPReadinessProbe ¶
func NewTCPReadinessProbe(portName string) *TCPReadinessProbe
func (*TCPReadinessProbe) Ready ¶
func (p *TCPReadinessProbe) Ready(runnable Runnable) (err error)
Directories ¶
Path | Synopsis |
---|---|
Package e2edb is a reference, instrumented runnables that are running various popular databases one could run in their tests or benchmarks.
|
Package e2edb is a reference, instrumented runnables that are running various popular databases one could run in their tests or benchmarks. |
examples
|
|
thanos
Module
|
|