repoconfig

package
v0.3.9 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ArgSpec

type ArgSpec struct {
	Name string `yaml:"name"`
	Req  bool   `yaml:"required"`
	Desc string `yaml:"description"`
}

ArgSpec specifies an argument/annotation for a job.

type C

type C struct {
	DefaultJob string          `yaml:"defaultJob"`
	Rules      []*JobStartRule `yaml:"rules"`
}

C is the struct we expect to find in the repo root which configures how we build things

func (*C) ShouldRun

func (rc *C) ShouldRun(md *werftv1.JobMetadata) bool

ShouldRun determines based on the repo config if the job should run

func (*C) TemplatePath

func (rc *C) TemplatePath(md *werftv1.JobMetadata) string

TemplatePath returns the path to the job template in the repo

type JobSpec

type JobSpec struct {
	// Desc describes the purpose of this job spec.
	Desc string `yaml:"description,omitempty"`

	// Pod is the actual job spec to start. Prior to deploying this to Kubernetes, we'll run this
	// as a Go template.
	Pod *corev1.PodSpec `yaml:"pod"`

	// Mutex makes job execution exclusive, with new ones canceling the currently running one.
	// For example: job A is running at the moment, and job B is about to start. If A and B share the
	// same mutex, B will cancel A.
	Mutex string `yaml:"mutex,omitempty"`

	// Args describe annotations which this job expects. This list is only used on the UI when manually
	// starting the job.
	// This is list is neither exhaustive (i.e. jobs can use annotations not listed here), nor binding
	// (i.e. jobs can run even when annotations listed here are not present). What matters for a job to
	// run is only if Kubernetes accepts the produced podspec.
	Args []ArgSpec `yaml:"args,omitempty"`

	// Sidecars list side car containers of the job, i.e. containers
	// for which we don't wait that they end to end the job.
	Sidecars []string `yaml:"sidecars,omitempty"`

	// Plugins list plugin-specific information
	Plugins map[string]string `yaml:"plugins,omitempty"`
}

JobSpec is the format of the files we expect to find when starting jobs

type JobStartRule

type JobStartRule struct {
	Path string                      `yaml:"path"`
	Expr []*werftv1.FilterExpression `yaml:"matchesAll"`
}

JobStartRule determines if a job will be started

func (*JobStartRule) UnmarshalYAML

func (r *JobStartRule) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML unmarshals the filter expressions

type JobStartRuleOr

type JobStartRuleOr struct {
	Or []string `yaml:"or"`
}

JobStartRuleOr contains an "OR'ed" list of conditions which have to match for a job to run

Jump to

Keyboard shortcuts

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