Documentation ¶
Index ¶
- Constants
- func IsPodReady(c *kubernetes.Clientset, podName, namespace string) wait.ConditionFunc
- func NewJobSpec(log *zap.SugaredLogger, options JobOptions) (*batchv1.Job, error)
- type ExecuteOptions
- type ExecutionCounter
- type Executor
- type HTTPClient
- type JobExecutor
- func (c *JobExecutor) Abort(jobName string) *testkube.ExecutionResult
- func (c JobExecutor) CreateJob(ctx context.Context, execution testkube.Execution, options ExecuteOptions) error
- func (c JobExecutor) Execute(execution *testkube.Execution, options ExecuteOptions) (result testkube.ExecutionResult, err error)
- func (c JobExecutor) ExecuteSync(execution *testkube.Execution, options ExecuteOptions) (result testkube.ExecutionResult, err error)
- func (c *JobExecutor) GetJobPods(podsClient tcorev1.PodInterface, jobName string, retryNr, retryCount int) (*corev1.PodList, error)
- func (c *JobExecutor) GetLastLogLineError(ctx context.Context, pod corev1.Pod) error
- func (c *JobExecutor) GetPodLogError(ctx context.Context, pod corev1.Pod) (logsBytes []byte, err error)
- func (c *JobExecutor) GetPodLogs(pod corev1.Pod, logLinesCount ...int64) (logs []byte, err error)
- func (c JobExecutor) Logs(id string) (out chan output.Output, err error)
- func (c *JobExecutor) TailJobLogs(id string, logs chan []byte) (err error)
- func (c *JobExecutor) TailPodLogs(ctx context.Context, pod corev1.Pod, logs chan []byte) (err error)
- type JobOptions
- type ResultEvent
Constants ¶
const ( // GitUsernameSecretName is git username secret name GitUsernameSecretName = "git-username" // GitUsernameEnvVarName is git username environment var name GitUsernameEnvVarName = "RUNNER_GITUSERNAME" // GitTokenSecretName is git token secret name GitTokenSecretName = "git-token" // GitTokenEnvVarName is git token environment var name GitTokenEnvVarName = "RUNNER_GITTOKEN" )
const (
WatchInterval = time.Second
)
Variables ¶
This section is empty.
Functions ¶
func IsPodReady ¶ added in v1.3.1
func IsPodReady(c *kubernetes.Clientset, podName, namespace string) wait.ConditionFunc
IsPodReady defines if pod is ready or failed for logs scrapping
func NewJobSpec ¶ added in v1.3.1
func NewJobSpec(log *zap.SugaredLogger, options JobOptions) (*batchv1.Job, error)
NewJobSpec is a method to create new job spec
Types ¶
type ExecuteOptions ¶
type ExecuteOptions struct { ID string TestName string Namespace string TestSpec testsv3.TestSpec ExecutorName string ExecutorSpec executorv1.ExecutorSpec Request testkube.ExecutionRequest Sync bool HasSecrets bool Labels map[string]string UsernameSecret *testkube.SecretRef TokenSecret *testkube.SecretRef ImageOverride string }
type ExecutionCounter ¶ added in v1.3.1
type Executor ¶ added in v0.6.4
type Executor interface { // Execute starts new external test execution, reads data and returns ID // execution is started asynchronously client can check later for results Execute(execution *testkube.Execution, options ExecuteOptions) (result testkube.ExecutionResult, err error) // Execute starts new external test execution, reads data and returns ID // execution is started synchronously client is blocked ExecuteSync(execution *testkube.Execution, options ExecuteOptions) (result testkube.ExecutionResult, err error) // Abort aborts pending execution, do nothing when there is no pending execution Abort(id string) (execution *testkube.ExecutionResult) Logs(id string) (logs chan output.Output, err error) }
Executor abstraction to implement new executors
type HTTPClient ¶
type HTTPClient interface { Post(url, contentType string, body io.Reader) (resp *http.Response, err error) Get(url string) (resp *http.Response, err error) }
HTTPClient interface for getting REST based requests
type JobExecutor ¶ added in v0.6.4
type JobExecutor struct { Repository result.Repository Log *zap.SugaredLogger ClientSet *kubernetes.Clientset Namespace string Cmd string Emitter *webhook.Emitter // contains filtered or unexported fields }
JobExecutor is container for managing job executor dependencies
func NewJobExecutor ¶ added in v0.6.4
func NewJobExecutor(repo result.Repository, namespace, initImage, jobTemplate string, metrics ExecutionCounter, emiter *webhook.Emitter) (client *JobExecutor, err error)
NewJobExecutor creates new job executor
func (*JobExecutor) Abort ¶ added in v0.6.4
func (c *JobExecutor) Abort(jobName string) *testkube.ExecutionResult
AbortK8sJob aborts K8S by job name
func (JobExecutor) CreateJob ¶ added in v1.3.1
func (c JobExecutor) CreateJob(ctx context.Context, execution testkube.Execution, options ExecuteOptions) error
CreateJob creates new Kubernetes job based on execution and execute options
func (JobExecutor) Execute ¶ added in v0.6.4
func (c JobExecutor) Execute(execution *testkube.Execution, options ExecuteOptions) (result testkube.ExecutionResult, err error)
Execute starts new external test execution, reads data and returns ID Execution is started asynchronously client can check later for results
func (JobExecutor) ExecuteSync ¶ added in v0.7.6
func (c JobExecutor) ExecuteSync(execution *testkube.Execution, options ExecuteOptions) (result testkube.ExecutionResult, err error)
Execute starts new external test execution, reads data and returns ID Execution is started synchronously client will be blocked
func (*JobExecutor) GetJobPods ¶ added in v1.3.1
func (c *JobExecutor) GetJobPods(podsClient tcorev1.PodInterface, jobName string, retryNr, retryCount int) (*corev1.PodList, error)
GetJobPods returns job pods
func (*JobExecutor) GetLastLogLineError ¶ added in v1.3.1
GetLastLogLineError return error if last line is failed
func (*JobExecutor) GetPodLogError ¶ added in v1.3.1
func (c *JobExecutor) GetPodLogError(ctx context.Context, pod corev1.Pod) (logsBytes []byte, err error)
GetPodLogError returns last line as error
func (*JobExecutor) GetPodLogs ¶ added in v1.3.1
GetPodLogs returns pod logs bytes
func (JobExecutor) Logs ¶ added in v0.6.4
func (c JobExecutor) Logs(id string) (out chan output.Output, err error)
Logs returns job logs stream channel using kubernetes api
func (*JobExecutor) TailJobLogs ¶ added in v1.3.1
func (c *JobExecutor) TailJobLogs(id string, logs chan []byte) (err error)
TailJobLogs - locates logs for job pod(s)
func (*JobExecutor) TailPodLogs ¶ added in v1.3.1
type JobOptions ¶ added in v1.3.1
type JobOptions struct { Name string Namespace string Image string ImageOverride string Jsn string TestName string InitImage string JobTemplate string HasSecrets bool SecretEnvs map[string]string HTTPProxy string HTTPSProxy string UsernameSecret *testkube.SecretRef TokenSecret *testkube.SecretRef }
func NewJobOptions ¶ added in v1.3.1
func NewJobOptions(initImage, jobTemplate string, execution testkube.Execution, options ExecuteOptions) (jobOptions JobOptions, err error)
func NewJobOptionsFromExecutionOptions ¶ added in v1.3.1
func NewJobOptionsFromExecutionOptions(options ExecuteOptions) JobOptions
NewJobOptionsFromExecutionOptions compose JobOptions based on ExecuteOptions
type ResultEvent ¶
type ResultEvent struct { Result testkube.ExecutionResult Error error }
ResultEvent event passed when watching execution changes