containerexecutor

package
v1.6.14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 17, 2022 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewJobSpec

func NewJobSpec(log *zap.SugaredLogger, options *JobOptions) (*batchv1.Job, error)

NewJobSpec is a method to create new job spec

func TailJobLogs

func TailJobLogs(log *zap.SugaredLogger, c kubernetes.Interface, namespace string, id string, logs chan []byte) (err error)

These methods here are similiar to Job executor, but they don't require the json structure. TailJobLogs - locates logs for job pod(s)

Types

type ContainerExecutor

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

ContainerExecutor is container for managing job executor dependencies

func NewContainerExecutor

func NewContainerExecutor(repo ResultRepository, namespace, initImage, jobTemplate string, metrics ExecutionCounter, emiter EventEmitter) (client *ContainerExecutor, err error)

NewContainerExecutor creates new job executor

func (*ContainerExecutor) Abort

func (c *ContainerExecutor) Abort(jobName string) *testkube.ExecutionResult

AbortK8sJob aborts K8S by job name

func (*ContainerExecutor) Execute

Execute starts new external test execution, reads data and returns ID Execution is started asynchronously client can check later for results

func (*ContainerExecutor) ExecuteSync

func (c *ContainerExecutor) ExecuteSync(execution *testkube.Execution, options client.ExecuteOptions) (testkube.ExecutionResult, error)

Execute starts new external test execution, reads data and returns ID Execution is started synchronously client will be blocked

func (*ContainerExecutor) Logs

func (c *ContainerExecutor) Logs(id string) (out chan output.Output, err error)

Logs returns job logs stream channel using kubernetes api

type EventEmitter

type EventEmitter interface {
	Notify(event testkube.Event)
}

type ExecutionCounter

type ExecutionCounter interface {
	IncExecuteTest(execution testkube.Execution)
}

type JobOptions

type JobOptions struct {
	Name                  string
	Namespace             string
	Image                 string
	ImagePullSecrets      []string
	Command               []string
	Args                  []string
	ImageOverride         string
	Jsn                   string
	TestName              string
	JobTemplate           string
	InitImage             string
	SecretEnvs            map[string]string
	Envs                  map[string]string
	HTTPProxy             string
	HTTPSProxy            string
	UsernameSecret        *testkube.SecretRef
	TokenSecret           *testkube.SecretRef
	Variables             map[string]testkube.Variable
	ActiveDeadlineSeconds int64
}

func NewJobOptions

func NewJobOptions(initImage, jobTemplate string, execution testkube.Execution, options client.ExecuteOptions) (*JobOptions, error)

func NewJobOptionsFromExecutionOptions

func NewJobOptionsFromExecutionOptions(options client.ExecuteOptions) *JobOptions

NewJobOptionsFromExecutionOptions compose JobOptions based on ExecuteOptions

type ResultRepository

type ResultRepository interface {
	// UpdateExecution updates result in execution
	UpdateResult(ctx context.Context, id string, execution testkube.ExecutionResult) error
	// StartExecution updates execution start time
	StartExecution(ctx context.Context, id string, startTime time.Time) error
	// EndExecution updates execution end time
	EndExecution(ctx context.Context, execution testkube.Execution) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL