spec

package
v0.0.0-...-5dad11b Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2025 License: Apache-2.0 Imports: 4 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseConfig

type BaseConfig struct {
	CommonConfig

	AutoMaxProcs bool `json:"auto_max_procs,omitempty"`

	AutogenHeader string `json:"autogen_header,omitempty"`

	PathAliases map[string]string `json:"path_aliases,omitempty"`

	ClusterOverrides map[string]string `json:"cluster_overrides,omitempty"`

	TestgridConfig TestgridConfig `json:"testgrid_config,omitempty"`
}

BaseConfig represents the fields that can be defined in a .base.yaml file, which is shared by all the meta job config files under the same folder.

func (*BaseConfig) DeepCopy

func (baseConfig *BaseConfig) DeepCopy() BaseConfig

type CommonConfig

type CommonConfig struct {
	GCSLogBucket                  string `json:"gcs_log_bucket,omitempty"`
	TerminationGracePeriodSeconds int64  `json:"termination_grace_period_seconds,omitempty"`

	Interval string `json:"interval,omitempty"`
	Cron     string `json:"cron,omitempty"`

	Cluster      string            `json:"cluster,omitempty"`
	NodeSelector map[string]string `json:"node_selector,omitempty"`

	Annotations map[string]string `json:"annotations,omitempty"`
	Labels      map[string]string `json:"labels,omitempty"`

	Matrix map[string][]string `json:"matrix,omitempty"`
	Params map[string]string   `json:"params,omitempty"`

	ResourcePresets      map[string]v1.ResourceRequirements `json:"resources_presets,omitempty"`
	RequirementPresets   map[string]RequirementPreset       `json:"requirement_presets,omitempty"`
	Requirements         []string                           `json:"requirements,omitempty"`
	ExcludedRequirements []string                           `json:"excluded_requirements,omitempty"`

	Env                []v1.EnvVar `json:"env,omitempty"`
	Image              string      `json:"image,omitempty"`
	ImagePullPolicy    string      `json:"image_pull_policy,omitempty"`
	ImagePullSecrets   []string    `json:"image_pull_secrets,omitempty"`
	ServiceAccountName string      `json:"service_account_name,omitempty"`

	Regex   string `json:"regex,omitempty"`
	Trigger string `json:"trigger,omitempty"`

	Timeout        *prowjob.Duration `json:"timeout,omitempty"`
	MaxConcurrency int               `json:"max_concurrency,omitempty"`

	Resources string   `json:"resources,omitempty"`
	Modifiers []string `json:"modifiers,omitempty"`
}

CommonConfig contains all the common fields that can be overlayed through BaseConfig->JobsConfig->Job

func (*CommonConfig) DeepCopy

func (commonConfig *CommonConfig) DeepCopy() CommonConfig

type Job

type Job struct {
	CommonConfig

	DisableReleaseBranching bool `json:"disable_release_branching,omitempty"`

	Name    string   `json:"name,omitempty"`
	Command []string `json:"command,omitempty"`
	Args    []string `json:"args,omitempty"`
	Tags    []string `json:"tags,omitempty"`
	Types   []string `json:"types,omitempty"`
	Repos   []string `json:"repos,omitempty"`
	// Architectures defines architectures to build as. Defaults to amd64.
	Architectures []string `json:"architectures,omitempty"`

	GerritPresubmitLabel  string `json:"gerrit_presubmit_label,omitempty"`
	GerritPostsubmitLabel string `json:"gerrit_postsubmit_label,omitempty"`

	ReporterConfig *prowjob.ReporterConfig `json:"reporter_config,omitempty"`
}

Job is the last layer for defining the actual Prow jobs.

type JobsConfig

type JobsConfig struct {
	CommonConfig

	SupportReleaseBranching bool `json:"support_release_branching,omitempty"`

	Repo     string   `json:"repo,omitempty"`
	Org      string   `json:"org,omitempty"`
	CloneURI string   `json:"clone_uri,omitempty"`
	Branches []string `json:"branches,omitempty"`

	Jobs []Job `json:"jobs,omitempty"`
}

JobsConfig represents the fields that can be defined in a meta job file, and it can contain multiple Jobs.

type RequirementPreset

type RequirementPreset struct {
	Annotations  map[string]string `json:"annotations,omitempty"`
	Labels       map[string]string `json:"labels,omitempty"`
	Env          []v1.EnvVar       `json:"env,omitempty"`
	Volumes      []v1.Volume       `json:"volumes,omitempty"`
	VolumeMounts []v1.VolumeMount  `json:"volumeMounts,omitempty"`
	Args         []string          `json:"args,omitempty"`
	Cron         string            `json:"cron,omitempty"`
	Secrets      []Secret          `json:"secrets,omitempty"`
	PodSpec      *v1.PodSpec       `json:"podSpec,omitempty"` // Use this field to add extra PodSpec fields except containers and metadata
}

RequirementPreset can be used to re-use settings across multiple jobs.

func (*RequirementPreset) DeepCopy

func (r *RequirementPreset) DeepCopy() RequirementPreset

type Secret

type Secret struct {
	Name    string `json:"secret,omitempty"`
	Project string `json:"project,omitempty"`
	Env     string `json:"env,omitempty"`
	File    string `json:"file,omitempty"`
}

type TestgridConfig

type TestgridConfig struct {
	Enabled            bool   `json:"enabled,omitempty"`
	AlertEmail         string `json:"alert_email,omitempty"`
	NumFailuresToAlert string `json:"num_failures_to_alert,omitempty"`
}

Jump to

Keyboard shortcuts

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