containerexecutor

package
v1.5.35 Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2022 License: MIT Imports: 23 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
	HTTPProxy        string
	HTTPSProxy       string
	UsernameSecret   *testkube.SecretRef
	TokenSecret      *testkube.SecretRef
	Variables        map[string]testkube.Variable
}

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