containerexecutor

package
v1.16.25-beta001 Latest Latest
Warning

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

Go to latest
Published: Jan 31, 2024 License: MIT Imports: 43 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// EntrypointScriptName is entrypoint script name
	EntrypointScriptName = "entrypoint.sh"
)

Variables

This section is empty.

Functions

func InspectDockerImage added in v1.14.0

func InspectDockerImage(namespace, registry, image string, imageSecrets []string) ([]string, string, error)

InspectDockerImage inspects docker image

func NewExecutorJobSpec added in v1.7.16

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

NewExecutorJobSpec is a method to create new executor job spec

func NewPVCOptionsFromJobOptions added in v1.16.21

func NewPVCOptionsFromJobOptions(options JobOptions) client.PVCOptions

func NewScraperJobSpec added in v1.7.16

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

NewScraperJobSpec is a method to create new scraper job spec

Types

type ContainerExecutor

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

ContainerExecutor is container for managing job executor dependencies

func NewContainerExecutor

func NewContainerExecutor(
	repo result.Repository,
	namespace string,
	images executor.Images,
	templates executor.Templates,
	serviceAccountName string,
	metrics ExecutionCounter,
	emiter EventEmitter,
	configMap config.Repository,
	executorsClient executorsclientv1.Interface,
	testsClient testsv3.Interface,
	testExecutionsClient testexecutionsv1.Interface,
	templatesClient templatesv1.Interface,
	registry string,
	podStartTimeout time.Duration,
	clusterID string,
	dashboardURI string,
	apiURI string,
	natsUri string,
	debug bool,
	logsStream logsclient.Stream,
	features featureflags.FeatureFlags,
) (client *ContainerExecutor, err error)

NewContainerExecutor creates new job executor

func (*ContainerExecutor) Abort

Abort K8sJob 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) Logs

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

Logs returns job logs stream channel using kubernetes api

func (*ContainerExecutor) TailJobLogs added in v1.15.0

func (c *ContainerExecutor) TailJobLogs(ctx context.Context, id string, logs chan []byte) (err error)

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

type EventEmitter

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

type ExecutionCounter

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

type JobOptions

type JobOptions struct {
	Name                      string
	Namespace                 string
	Image                     string
	ImagePullSecrets          []string
	Command                   []string
	Args                      []string
	WorkingDir                string
	Jsn                       string
	TestName                  string
	InitImage                 string
	ScraperImage              string
	JobTemplate               string
	ScraperTemplate           string
	PvcTemplate               string
	SecretEnvs                map[string]string
	Envs                      map[string]string
	HTTPProxy                 string
	HTTPSProxy                string
	UsernameSecret            *testkube.SecretRef
	TokenSecret               *testkube.SecretRef
	CertificateSecret         string
	Variables                 map[string]testkube.Variable
	ActiveDeadlineSeconds     int64
	ArtifactRequest           *testkube.ArtifactRequest
	ServiceAccountName        string
	DelaySeconds              int
	JobTemplateExtensions     string
	ScraperTemplateExtensions string
	PvcTemplateExtensions     string
	EnvConfigMaps             []testkube.EnvReference
	EnvSecrets                []testkube.EnvReference
	Labels                    map[string]string
	Registry                  string
	ClusterID                 string
	ExecutionNumber           int32
	ContextType               string
	ContextData               string
	Debug                     bool
	LogSidecarImage           string
	NatsUri                   string
	APIURI                    string
	Features                  featureflags.FeatureFlags
}

func NewJobOptions

func NewJobOptions(log *zap.SugaredLogger, templatesClient templatesv1.Interface, images executor.Images,
	templates executor.Templates, serviceAccountName, registry, clusterID, apiURI string,
	execution testkube.Execution, options client.ExecuteOptions, natsUri string, debug bool) (*JobOptions, error)

TODO refactor JobOptions to use builder pattern TODO extract JobOptions for both container and job executor to common package in separate PR NewJobOptions provides job options for templates

func NewJobOptionsFromExecutionOptions

func NewJobOptionsFromExecutionOptions(options client.ExecuteOptions) *JobOptions

NewJobOptionsFromExecutionOptions compose JobOptions based on ExecuteOptions

Jump to

Keyboard shortcuts

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