api

package
v0.0.0-...-d50dcce Latest Latest
Warning

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

Go to latest
Published: Nov 11, 2024 License: Apache-2.0 Imports: 27 Imported by: 7

Documentation

Overview

+groupName=ci.openshift.io

Index

Constants

View Source
const (
	RegistryPullCredentialsSecret = "registry-pull-credentials"

	RegistryPushCredentialsCICentralSecret          = "registry-push-credentials-ci-central"
	RegistryPushCredentialsCICentralSecretMountPath = "/etc/push-secret"

	GCSUploadCredentialsSecret          = "gce-sa-credentials-gcs-publisher"
	GCSUploadCredentialsSecretMountPath = "/secrets/gcs"

	ManifestToolLocalPusherSecret          = "manifest-tool-local-pusher"
	ManifestToolLocalPusherSecretMountPath = "/secrets/manifest-tool"

	ReleaseAnnotationSoftDelete = "release.openshift.io/soft-delete"

	// DPTPRequesterLabel is the label on a Kubernates CR whose value indicates the automated tool that requests the CR
	DPTPRequesterLabel = "dptp.openshift.io/requester"

	KVMDeviceLabel           = "devices.kubevirt.io/kvm"
	ClusterLabel             = "ci-operator.openshift.io/cluster"
	CloudLabel               = "ci-operator.openshift.io/cloud"
	CloudClusterProfileLabel = "ci-operator.openshift.io/cloud-cluster-profile"

	NoBuildsLabel = "ci.openshift.io/no-builds"
	NoBuildsValue = "true"

	// HiveCluster is the cluster where Hive is deployed
	HiveCluster = ClusterHive

	// HiveAdminKubeconfigSecret is the name of the secret in ci-op-<hash> namespace that stores the Admin's kubeconfig for the ephemeral cluster provisioned by Hive.
	HiveAdminKubeconfigSecret = "hive-admin-kubeconfig"
	// HiveAdminKubeconfigSecretKey is the key to the kubeconfig in the secret HiveAdminKubeconfigSecret
	HiveAdminKubeconfigSecretKey = "kubeconfig"
	// HiveAdminPasswordSecret the name of the secret in ci-op-<hash> namespace that stores the password for the user "kubeadmin" for the ephemeral cluster provisioned by Hive.
	HiveAdminPasswordSecret = "hive-admin-password"
	// HiveAdminPasswordSecretKey is the key to the password in the secret HiveAdminKubeconfigSecret
	HiveAdminPasswordSecretKey = "password"

	// HiveControlPlaneKubeconfigSecret is the name of the secret that stores kubeconfig to contact the cluster where Hive is deployed
	HiveControlPlaneKubeconfigSecret = "hive-hive-credentials"
	// HiveControlPlaneKubeconfigSecretArg is the flag to ci-operator
	HiveControlPlaneKubeconfigSecretArg = "--hive-kubeconfig=/secrets/hive-hive-credentials/kubeconfig"

	AutoScalePodsLabel = "ci.openshift.io/scale-pods"

	NamespaceDir = "build-resources"

	APPCIKubeAPIURL = "https://api.ci.l2s4.p1.openshiftapps.com:6443"

	// ReasonPending is the error reason for pods not scheduled in time.
	// It is generated when pods are for whatever reason not scheduled before
	// `podStartTimeout`.
	ReasonPending = "pod_pending"
	// CliEnv if the env we use to expose the path to the cli
	CliEnv                = "CLI_DIR"
	DefaultLeaseEnv       = "LEASED_RESOURCE"
	DefaultIPPoolLeaseEnv = "IP_POOL_AVAILABLE"
	// SkipCensoringLabel is the label we use to mark a secret as not needing to be censored
	SkipCensoringLabel = "ci.openshift.io/skip-censoring"

	OauthTokenSecretKey  = "oauth"
	OauthTokenSecretName = "github-credentials-openshift-ci-robot-private-git-cloner"

	CIAdminsGroupName = "test-platform-ci-admins"

	ShmResource       = "ci-operator.openshift.io/shm"
	NvidiaGPUResource = "nvidia.com/gpu"

	// ReleaseConfigAnnotation is the name of annotation created by the release controller.
	// ci-operator uses the release controller configuration to determine
	// the version of OpenShift we create from the ImageStream, so we need
	// to copy the annotation if it exists
	ReleaseConfigAnnotation = "release.openshift.io/config"

	ImageStreamImportRetries = 6
)
View Source
const (
	// ServiceDomain is the domain under which services are
	// routed for the current service cluster.
	ServiceDomainCI    = "ci.openshift.org"
	ServiceDomainAPPCI = "apps.ci.l2s4.p1.openshiftapps.com"
	ServiceDomainGCS   = "googleapis.com"

	ServiceDomainAPPCIRegistry     = "registry.ci.openshift.org"
	ServiceDomainVSphere02Registry = "registry.apps.build02.vmc.ci.openshift.org"
	ServiceDomainArm01Registry     = "registry.arm-build01.arm-build.devcluster.openshift.com"
	ServiceDomainMulti01Registry   = "registry.multi-build01.arm-build.devcluster.openshift.com"

	QuayOpenShiftCIRepo          = "quay.io/openshift/ci"
	QuayOpenShiftNetworkEdgeRepo = "quay.io/openshift/network-edge-testing"

	QCIAPPCIDomain = "quay-proxy.ci.openshift.org"

	QCICacheDomain = "qci-pull-through-cache-us-east-1-ci.apps.ci.l2s4.p1.openshiftapps.com"
)
View Source
const (
	WithOKD    OKDInclusion = true
	WithoutOKD OKDInclusion = false

	PromotionStepName     = "promotion"
	PromotionQuayStepName = "promotion-quay"
)
View Source
const (
	PipelineImageStreamTagSourceRoot         = "build_root"
	PipelineImageStreamTagSourceBinaries     = "binary_build_commands"
	PipelineImageStreamTagSourceTestBinaries = "test_binary_build_commands"
	PipelineImageStreamTagSourceRPMs         = "rpm_build_commands"
)

The fields in ReleaseBuildConfiguration which originate each pipeline image

View Source
const (
	IndexUpdateSemver          = "semver"
	IndexUpdateReplaces        = "replaces"
	IndexUpdateSemverSkippatch = "semver-skippatch"
)
View Source
const (
	// PipelineImageStream is the name of the
	// ImageStream used to hold images built
	// to cache build steps in the pipeline.
	PipelineImageStream = "pipeline"

	// DefaultRPMLocation is the default relative
	// directory for Origin-based projects to put
	// their built RPMs.
	DefaultRPMLocation = "_output/local/releases/rpms/"

	// RPMServeLocation is the location from which
	// we will serve RPMs after they are built.
	RPMServeLocation = "/srv/repo"

	// StableImageStream is the ImageStream used to hold
	// build outputs from the repository under test and
	// the associated images imported from integration streams
	StableImageStream = "stable"
	// LatestReleaseName is the name of the special latest
	// stable stream, images in this stream are held in
	// the StableImageStream. Images for other versions of
	// the stream are held in similarly-named streams.
	LatestReleaseName = "latest"
	// InitialReleaseName is the name of the special initial
	// stream we copy at import to keep for upgrade tests.
	// TODO(skuznets): remove these when they're not implicit
	InitialReleaseName = "initial"

	// ReleaseImageStream is the name of the ImageStream
	// used to hold built or imported release payload images
	ReleaseImageStream = "release"

	ComponentFormatReplacement = "${component}"
)
View Source
const BundlePrefix = "ci-bundle"

BundlePrefix is the prefix used by ci-operator for bundle images without an explicitly configured name

View Source
const CIOperatorStepGraphJSONFilename = "ci-operator-step-graph.json"
View Source
const (
	// PromotionJobLabelKey marks promotion jobs as such. Only its presence is
	// relevant, its value is not.
	PromotionJobLabelKey = "ci-operator.openshift.io/is-promotion"
)

Variables

View Source
var (
	// DefaultMirrorFunc is the default mirroring function
	DefaultMirrorFunc = func(source, target string, _ ImageStreamTagReference, _ string, mirror map[string]string) {
		mirror[target] = source
	}
	// QuayMirrorFunc is the mirroring function for quay.io
	QuayMirrorFunc = func(source, target string, tag ImageStreamTagReference, time string, mirror map[string]string) {
		if time == "" {
			logrus.Warn("Found time is empty string and skipped the promotion to quay for this image")
		} else {
			t := QuayImage(tag)
			mirror[t] = source
			mirror[quayImageWithTime(time, tag)] = t
		}
	}

	// DefaultTargetNameFunc is the default target name function
	DefaultTargetNameFunc = func(registry string, config PromotionTarget) string {
		if len(config.Name) > 0 {
			return fmt.Sprintf("%s/%s/%s:${component}", registry, config.Namespace, config.Name)
		}
		return fmt.Sprintf("%s/%s/${component}:%s", registry, config.Namespace, config.Tag)
	}

	// QuayTargetNameFunc is the target name function for quay.io
	QuayTargetNameFunc = func(_ string, config PromotionTarget) string {
		if len(config.Name) > 0 {
			return fmt.Sprintf("%s:%s_%s_${component}", QuayOpenShiftCIRepo, config.Namespace, config.Name)
		}
		return fmt.Sprintf("%s:%s_${component}_%s", QuayOpenShiftCIRepo, config.Namespace, config.Tag)
	}
)

Functions

func Artifacts

func Artifacts() (string, bool)

func BuildsAnyOfficialImages

func BuildsAnyOfficialImages(configSpec *ReleaseBuildConfiguration, includeOKD OKDInclusion) bool

BuildsAnyOfficialImages determines if a configuration will result in official images being built.

func BuildsOfficialImages

func BuildsOfficialImages(configSpec PromotionTarget, includeOKD OKDInclusion) bool

BuildsOfficialImages determines if a configuration will result in official images being built.

func BundleName

func BundleName(index int) string

func Comparer

func Comparer() cmp.Option

func DomainForService

func DomainForService(service Service) string

DomainForService returns the DNS domain name for the service

func FlavorForBranch

func FlavorForBranch(branch string) string

func GetDefaultClusterProfileSecretName

func GetDefaultClusterProfileSecretName(profile ClusterProfile) string

GetDefaultClusterProfileSecretName returns the default secret name for the profile

func GitHubUserGroup

func GitHubUserGroup(username string) string

GitHubUserGroup returns the group name for a GitHub user

func HasAllLinks(needles, haystack []StepLink) bool
func HasAnyLinks(steps, candidates []StepLink) bool

func ImageTargets

func ImageTargets(c *ReleaseBuildConfiguration) sets.Set[string]

ImageTargets returns image targets

func ImageVersionLabel

func ImageVersionLabel(fromTag PipelineImageStreamTagReference) string

func IndexName

func IndexName(bundleName string) string

func IsCiopConfigCM

func IsCiopConfigCM(name string) bool

IsCiopConfigCM returns true if a given name is a valid ci-operator config ConfigMap

func IsCreatedForClusterBotJob

func IsCreatedForClusterBotJob(namespace string) bool

IsCreatedForClusterBotJob returns true if the given namespace is created for a job from the cluster bot

func IsIndexImage

func IsIndexImage(imageName string) bool

func IsPromotionJob

func IsPromotionJob(jobLabels map[string]string) bool

IsPromotionJob determines if a given ProwJob is a PromotionJob

func IsReleasePayloadStream

func IsReleasePayloadStream(stream string) bool

IsReleasePayloadStream determines if the ImageStream holds release payload images.

func IsReleaseStream

func IsReleaseStream(stream string) bool

IsReleaseStream determines if the ImageStream was created from an import or assembly of a release.

func LeaseTypeFromClusterType

func LeaseTypeFromClusterType(t string) (string, error)

LeaseTypeFromClusterType maps cluster types to lease types

func LogFieldsFor

func LogFieldsFor(metadata Metadata) logrus.Fields

func PromotesOfficialImage

func PromotesOfficialImage(configSpec *ReleaseBuildConfiguration, includeOKD OKDInclusion, promotionName string) bool

PromotesOfficialImage determines if a configuration will promote promotionName and if it belongs to any official stream.

func PromotesOfficialImages

func PromotesOfficialImages(configSpec *ReleaseBuildConfiguration, includeOKD OKDInclusion) bool

PromotesOfficialImages determines if a configuration will result in official images being promoted. This is a proxy for determining if a configuration contributes to the release payload.

func QuayImage

func QuayImage(tag ImageStreamTagReference) string

QuayImage returns the image in quay.io for an image stream tag which is used to push the image

func QuayImageReference

func QuayImageReference(tag ImageStreamTagReference) string

QuayImageReference returns the image in quay.io for an image stream tag which is used to pull the image

func RefersToOfficialImage

func RefersToOfficialImage(namespace string, includeOKD OKDInclusion) bool

RefersToOfficialImage determines if an image is official

func RegistryDomainForClusterName

func RegistryDomainForClusterName(clusterName string) (string, error)

func ReleaseNameFrom

func ReleaseNameFrom(stream string) string

ReleaseNameFrom determines the named release that was imported or assembled into an ImageStream.

func ReleaseStreamFor

func ReleaseStreamFor(name string) string

ReleaseStreamFor determines the ImageStream into which a named release will be imported or assembled.

func ResolveConsoleHost

func ResolveConsoleHost(ctx context.Context, client ctrlruntimeclient.Client) (string, error)

ResolveConsoleHost resolves the console host

func ResolveImageRegistryHost

func ResolveImageRegistryHost(ctx context.Context, client ctrlruntimeclient.Client) (string, error)

ResolveImageRegistryHost resolves the image registry host

func ResolveMultiArch

func ResolveMultiArch(nodes []*StepNode)

ResolveMultiArch traverses the graph of StepNodes and updates the multiArch field of each node. If a node has a child that is multi-arch, the node itself is marked as multi-arch by adding the child's architecture to the node. This function is used to propagate the multi-arch property up the graph, ensuring that any step that depends on a multi-arch step is also considered multi-arch.

func SaveArtifact

func SaveArtifact(censor secretutil.Censorer, relPath string, data []byte) error

SaveArtifact saves the data under the path relative to the artifact directory. If no artifact directory is set, we no-op. A note on censoring: SaveArtifact will ensure that the raw data being written to an artifact file is censored, but care must be taken by the callers of this utility to pre-censor fields that get materially changed or reformatted during encoding. For example, if a secret value contains newlines or quotes, then is used as a field in a JSON or XML representation, when the value is encoded into the `data []byte` that's passed here, censoring the raw bytes will not be sufficient as they will be materially different from the actual secret value. (A literal newline in the raw secret will be an escaped `\n` in the encoded bytes.)

func StepGraphJSONURL

func StepGraphJSONURL(baseJobURL string) string

StepGraphJSONURL takes a base url like https://storage.googleapis.com/test-platform-results/pr-logs/pull/openshift_ci-tools/999/pull-ci-openshift-ci-tools-master-validate-vendor/1283812971092381696 and returns the full url for the step graph json document.

func URLForService

func URLForService(service Service) string

URLForService returns the URL for the service including scheme

func ValidClusterName

func ValidClusterName(clusterName string) bool

ValidClusterName checks if a cluster name is valid

Types

type BuildArg

type BuildArg struct {
	// Name of the build arg.
	Name string `json:"name,omitempty"`

	// Value of the build arg.
	Value string `json:"value,omitempty"`
}

func (*BuildArg) DeepCopy

func (in *BuildArg) DeepCopy() *BuildArg

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildArg.

func (*BuildArg) DeepCopyInto

func (in *BuildArg) DeepCopyInto(out *BuildArg)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BuildRootImageConfiguration

type BuildRootImageConfiguration struct {
	ImageStreamTagReference *ImageStreamTagReference          `json:"image_stream_tag,omitempty"`
	ProjectImageBuild       *ProjectDirectoryImageBuildInputs `json:"project_image,omitempty"`
	// If the BuildRoot images pullspec should be read from a file in the repository (BuildRootImageFileName).
	FromRepository bool `json:"from_repository,omitempty"`

	// UseBuildCache enables the import and use of the prior `bin` image
	// as a build cache, if the underlying build root has not changed since
	// the previous cache was published.
	UseBuildCache bool `json:"use_build_cache,omitempty"`
}

BuildRootImageConfiguration holds the two ways of using a base image that the pipeline will caches on.

func (*BuildRootImageConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildRootImageConfiguration.

func (*BuildRootImageConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Bundle

type Bundle struct {
	// As defines the name for this bundle. If not set, a name will be automatically generated for the bundle.
	As string `json:"as,omitempty"`
	// DockerfilePath defines where the dockerfile for build the bundle exists relative to the contextdir
	DockerfilePath string `json:"dockerfile_path,omitempty"`
	// ContextDir defines the source directory to build the bundle from relative to the repository root
	ContextDir string `json:"context_dir,omitempty"`
	// BaseIndex defines what index image to use as a base when adding the bundle to an index
	BaseIndex string `json:"base_index,omitempty"`
	// UpdateGraph defines the update mode to use when adding the bundle to the base index.
	// Can be: semver (default), semver-skippatch, or replaces
	UpdateGraph IndexUpdate `json:"update_graph,omitempty"`
	// Skip building the index image for this bundle. Default to false.
	// This field works only for named bundles, i.e., "as" is not empty.
	SkipBuildingIndex bool `json:"skip_building_index,omitempty"`
	// Optional indicates that the job's status context, that is generated from the corresponding test, should not be required for merge.
	Optional bool `json:"optional,omitempty"`
}

Bundle contains the data needed to build a bundle from the bundle source image and update an index to include the new bundle

func (*Bundle) DeepCopy

func (in *Bundle) DeepCopy() *Bundle

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Bundle.

func (*Bundle) DeepCopyInto

func (in *Bundle) DeepCopyInto(out *Bundle)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BundleSourceStepConfiguration

type BundleSourceStepConfiguration struct {
	// Substitutions contains pullspecs that need to be replaced by images
	// in the CI cluster for operator bundle images
	Substitutions []PullSpecSubstitution `json:"substitutions,omitempty"`
}

BundleSourceStepConfiguration describes a step that performs a set of substitutions on all yaml files in the `src` image so that the pullspecs in the operator manifests point to images inside the CI registry. It is intended to be used as the source image for bundle image builds.

func (*BundleSourceStepConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BundleSourceStepConfiguration.

func (*BundleSourceStepConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (BundleSourceStepConfiguration) TargetName

func (config BundleSourceStepConfiguration) TargetName() string

type CIOperatorInrepoConfig

type CIOperatorInrepoConfig struct {
	BuildRootImage ImageStreamTagReference `json:"build_root_image"`
}

func (*CIOperatorInrepoConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CIOperatorInrepoConfig.

func (*CIOperatorInrepoConfig) DeepCopyInto

func (in *CIOperatorInrepoConfig) DeepCopyInto(out *CIOperatorInrepoConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CIOperatorStepDetailInfo

type CIOperatorStepDetailInfo struct {
	StepName     string                     `json:"name"`
	Description  string                     `json:"description"`
	Dependencies []string                   `json:"dependencies"`
	StartedAt    *time.Time                 `json:"started_at"`
	FinishedAt   *time.Time                 `json:"finished_at"`
	Duration     *time.Duration             `json:"duration,omitempty"`
	Manifests    []ctrlruntimeclient.Object `json:"manifests,omitempty"`
	LogURL       string                     `json:"log_url,omitempty"`
	Failed       *bool                      `json:"failed,omitempty"`
}

+k8s:deepcopy-gen=false

func (*CIOperatorStepDetailInfo) UnmarshalJSON

func (c *CIOperatorStepDetailInfo) UnmarshalJSON(data []byte) error

type CIOperatorStepDetails

type CIOperatorStepDetails struct {
	CIOperatorStepDetailInfo `json:",inline"`
	Substeps                 []CIOperatorStepDetailInfo `json:"substeps,omitempty"`
}

+k8s:deepcopy-gen=false

type CIOperatorStepGraph

type CIOperatorStepGraph []CIOperatorStepDetails

+k8s:deepcopy-gen=false

func (*CIOperatorStepGraph) MergeFrom

func (graph *CIOperatorStepGraph) MergeFrom(from ...CIOperatorStepDetails)

MergeFrom merges two CIOperatorStepGraphs together using StepNames as merge keys. The merging logic will never ovewrwrite data and only set unset fields. Steps that do not exist in the first graph get appended.

type Candidate

type Candidate struct {
	ReleaseDescriptor
	// ReleaseStream is the stream from which we pick the latest candidate
	Stream ReleaseStream `json:"stream"`
	// Version is the minor version to search for
	Version string `json:"version"`
}

Candidate describes a validated candidate release payload

func (*Candidate) DeepCopy

func (in *Candidate) DeepCopy() *Candidate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Candidate.

func (*Candidate) DeepCopyInto

func (in *Candidate) DeepCopyInto(out *Candidate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClaimRelease

type ClaimRelease struct {
	ReleaseName  string
	OverrideName string
}

func (*ClaimRelease) DeepCopy

func (in *ClaimRelease) DeepCopy() *ClaimRelease

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClaimRelease.

func (*ClaimRelease) DeepCopyInto

func (in *ClaimRelease) DeepCopyInto(out *ClaimRelease)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Cloud

type Cloud string

Cloud is the name of a cloud provider, e.g., aws cluster topology, etc.

const (
	CloudAWS     Cloud = "aws"
	CloudGCP     Cloud = "gcp"
	CloudAzure4  Cloud = "azure4"
	CloudVSphere Cloud = "vsphere"
)

type Cluster

type Cluster string

Cluster is the name of a cluster in CI build farm.

const (
	ClusterAPPCI     Cluster = "app.ci"
	ClusterBuild01   Cluster = "build01"
	ClusterBuild02   Cluster = "build02"
	ClusterBuild03   Cluster = "build03"
	ClusterBuild10   Cluster = "build10"
	ClusterVSphere02 Cluster = "vsphere02"
	ClusterARM01     Cluster = "arm01"
	ClusterHive      Cluster = "hosted-mgmt"
)

type ClusterClaim

type ClusterClaim struct {
	// As is the name to use when importing the cluster claim release payload.
	// If unset, claim release will be imported as `latest`.
	As string `json:"as,omitempty"`
	// Product is the name of the product being released.
	// Defaults to ocp.
	Product ReleaseProduct `json:"product,omitempty"`
	// Version is the version of the product
	Version string `json:"version"`
	// Architecture is the architecture for the product.
	// Defaults to amd64.
	Architecture ReleaseArchitecture `json:"architecture,omitempty"`
	// Cloud is the cloud where the product is installed, e.g., aws.
	Cloud Cloud `json:"cloud"`
	// Owner is the owner of cloud account used to install the product, e.g., dpp.
	Owner string `json:"owner"`
	// Labels is the labels to select the cluster pools
	Labels map[string]string `json:"labels,omitempty"`
	// Timeout is how long ci-operator will wait for the cluster to be ready.
	// Defaults to 1h.
	Timeout *prowv1.Duration `json:"timeout,omitempty"`
}

ClusterClaim claims an OpenShift cluster for the job.

func (*ClusterClaim) ClaimRelease

func (c *ClusterClaim) ClaimRelease(testName string) *ClaimRelease

func (*ClusterClaim) DeepCopy

func (in *ClusterClaim) DeepCopy() *ClusterClaim

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterClaim.

func (*ClusterClaim) DeepCopyInto

func (in *ClusterClaim) DeepCopyInto(out *ClusterClaim)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterClaimDetails

type ClusterClaimDetails struct {
	Claim  string                     `yaml:"claim"`
	Owners []ClusterClaimOwnerDetails `yaml:"owners,omitempty"`
}

func (*ClusterClaimDetails) DeepCopy

func (in *ClusterClaimDetails) DeepCopy() *ClusterClaimDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterClaimDetails.

func (*ClusterClaimDetails) DeepCopyInto

func (in *ClusterClaimDetails) DeepCopyInto(out *ClusterClaimDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterClaimOwnerDetails

type ClusterClaimOwnerDetails struct {
	Org   string   `yaml:"org"`
	Repos []string `yaml:"repos,omitempty"`
}

func (*ClusterClaimOwnerDetails) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterClaimOwnerDetails.

func (*ClusterClaimOwnerDetails) DeepCopyInto

func (in *ClusterClaimOwnerDetails) DeepCopyInto(out *ClusterClaimOwnerDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterClaimOwnersMap

type ClusterClaimOwnersMap map[string]ClusterClaimDetails

func (ClusterClaimOwnersMap) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterClaimOwnersMap.

func (ClusterClaimOwnersMap) DeepCopyInto

func (in ClusterClaimOwnersMap) DeepCopyInto(out *ClusterClaimOwnersMap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterProfile

type ClusterProfile string

ClusterProfile is the name of a set of input variables provided to the installer defining the target cloud, cluster topology, etc.

const (
	ClusterProfileAWS                   ClusterProfile = "aws"
	ClusterProfileAWSCSPIQE             ClusterProfile = "aws-cspi-qe"
	ClusterProfileAWSQE                 ClusterProfile = "aws-qe"
	ClusterProfileAWSC2SQE              ClusterProfile = "aws-c2s-qe"
	ClusterProfileAWSChinaQE            ClusterProfile = "aws-china-qe"
	ClusterProfileAWSGovCloudQE         ClusterProfile = "aws-usgov-qe"
	ClusterProfileAWSSC2SQE             ClusterProfile = "aws-sc2s-qe"
	ClusterProfileAWSSCPQE              ClusterProfile = "aws-scp-qe"
	ClusterProfileAWS1QE                ClusterProfile = "aws-1-qe"
	ClusterProfileAWSAutoreleaseQE      ClusterProfile = "aws-autorelease-qe"
	ClusterProfileAWSSdQE               ClusterProfile = "aws-sd-qe"
	ClusterProfileAWSPerfScale          ClusterProfile = "aws-perfscale"
	ClusterProfileAWSPerfQE             ClusterProfile = "aws-perf-qe"
	ClusterProfileAWSPerfScaleQE        ClusterProfile = "aws-perfscale-qe"
	ClusterProfileAWSPerfScaleLRCQE     ClusterProfile = "aws-perfscale-lrc-qe"
	ClusterProfileAWSOutpostQE          ClusterProfile = "aws-outpost-qe"
	ClusterProfileAWSChaos              ClusterProfile = "aws-chaos"
	ClusterProfileAWSManagedCSPIQE      ClusterProfile = "aws-managed-cspi-qe"
	ClusterProfileAWSOSDMSP             ClusterProfile = "aws-osd-msp"
	ClusterProfileAWSINTEROPQE          ClusterProfile = "aws-interop-qe"
	ClusterProfileAWSTerraformQE        ClusterProfile = "aws-terraform-qe"
	ClusterProfileAWSPipelinesPerf      ClusterProfile = "aws-pipelines-performance"
	ClusterProfileAWSRHTAPQE            ClusterProfile = "aws-rhtap-qe"
	ClusterProfileAWSKonfluxQE          ClusterProfile = "aws-konflux-qe"
	ClusterProfileAWSRHTAPPerformance   ClusterProfile = "aws-rhtap-performance"
	ClusterProfileAWSRHDHPerf           ClusterProfile = "aws-rhdh-performance"
	ClusterProfileAWSServerless         ClusterProfile = "aws-serverless"
	ClusterProfileAWSTelco              ClusterProfile = "aws-telco"
	ClusterProfileAWSOpendatahub        ClusterProfile = "aws-opendatahub"
	ClusterProfileAWSDevfile            ClusterProfile = "aws-devfile"
	ClusterProfileAWSSPLAT              ClusterProfile = "aws-splat"
	ClusterProfileAWSSustAutoRel412     ClusterProfile = "aws-sustaining-autorelease-412"
	ClusterProfileAWSKubeVirt           ClusterProfile = "aws-kubevirt"
	ClusterProfileAWSOVNPerfScale       ClusterProfile = "aws-ovn-perfscale"
	ClusterProfileAlibabaCloud          ClusterProfile = "alibabacloud"
	ClusterProfileAlibabaCloudQE        ClusterProfile = "alibabacloud-qe"
	ClusterProfileAlibabaCloudCNQE      ClusterProfile = "alibabacloud-cn-qe"
	ClusterProfileAzure                 ClusterProfile = "azure"
	ClusterProfileAzure2                ClusterProfile = "azure-2"
	ClusterProfileAzure4                ClusterProfile = "azure4"
	ClusterProfileAzureArc              ClusterProfile = "azure-arc"
	ClusterProfileAzureArm64            ClusterProfile = "azure-arm64"
	ClusterProfileAzurePerfScale        ClusterProfile = "azure-perfscale"
	ClusterProfileAzureStack            ClusterProfile = "azurestack"
	ClusterProfileAzureStackQE          ClusterProfile = "azurestack-qe"
	ClusterProfileAzureMag              ClusterProfile = "azuremag"
	ClusterProfileAzureQE               ClusterProfile = "azure-qe"
	ClusterProfileAzureHCPQE            ClusterProfile = "azure-hcp-qe"
	ClusterProfileAzureHCPHAQE          ClusterProfile = "azure-hcp-ha-qe"
	ClusterProfileAzureAutoreleaseQE    ClusterProfile = "azure-autorelease-qe"
	ClusterProfileAzureArm64QE          ClusterProfile = "azure-arm64-qe"
	ClusterProfileAzureMagQE            ClusterProfile = "azuremag-qe"
	ClusterProfileEquinixOcpMetal       ClusterProfile = "equinix-ocp-metal"
	ClusterProfileEquinixOcpMetalQE     ClusterProfile = "equinix-ocp-metal-qe"
	ClusterProfileEquinixOcpHCP         ClusterProfile = "equinix-ocp-hcp"
	ClusterProfileFleetManagerQE        ClusterProfile = "fleet-manager-qe"
	ClusterProfileGCPQE                 ClusterProfile = "gcp-qe"
	ClusterProfileGCPAutoReleaseQE      ClusterProfile = "gcp-autorelease-qe"
	ClusterProfileGCPArm64              ClusterProfile = "gcp-arm64"
	ClusterProfileGCP                   ClusterProfile = "gcp"
	ClusterProfileGCP3                  ClusterProfile = "gcp-3"
	ClusterProfileGCP2                  ClusterProfile = "gcp-openshift-gce-devel-ci-2"
	ClusterProfileGCPOpendatahub        ClusterProfile = "gcp-opendatahub"
	ClusterProfileGCPTelco              ClusterProfile = "gcp-telco"
	ClusterProfileGCPChaos              ClusterProfile = "gcp-chaos"
	ClusterProfileIBMCloud              ClusterProfile = "ibmcloud"
	ClusterProfileIBMCloudCSPIQE        ClusterProfile = "ibmcloud-cspi-qe"
	ClusterProfileIBMCloudQE            ClusterProfile = "ibmcloud-qe"
	ClusterProfileIBMCloudQE2           ClusterProfile = "ibmcloud-qe-2"
	ClusterProfileIBMCloudMultiPpc64le  ClusterProfile = "ibmcloud-multi-ppc64le"
	ClusterProfileIBMCloudMultiS390x    ClusterProfile = "ibmcloud-multi-s390x"
	ClusterProfilePOWERVSMulti1         ClusterProfile = "powervs-multi-1"
	ClusterProfilePOWERVS1              ClusterProfile = "powervs-1"
	ClusterProfilePOWERVS2              ClusterProfile = "powervs-2"
	ClusterProfilePOWERVS3              ClusterProfile = "powervs-3"
	ClusterProfilePOWERVS4              ClusterProfile = "powervs-4"
	ClusterProfilePOWERVS5              ClusterProfile = "powervs-5"
	ClusterProfilePOWERVS6              ClusterProfile = "powervs-6"
	ClusterProfilePOWERVS7              ClusterProfile = "powervs-7"
	ClusterProfileLibvirtPpc64le        ClusterProfile = "libvirt-ppc64le"
	ClusterProfileLibvirtS390x          ClusterProfile = "libvirt-s390x"
	ClusterProfileLibvirtS390x1         ClusterProfile = "libvirt-s390x-1"
	ClusterProfileLibvirtS390x2         ClusterProfile = "libvirt-s390x-2"
	ClusterProfileLibvirtS390xAmd64     ClusterProfile = "libvirt-s390x-amd64"
	ClusterProfileMetalPerfscaleCPT     ClusterProfile = "metal-perscale-cpt"
	ClusterProfileMetalTelco5G          ClusterProfile = "metal-telco5g"
	ClusterProfileMetalTelco5GPTP       ClusterProfile = "metal-telco5g-ptp"
	ClusterProfileNutanix               ClusterProfile = "nutanix"
	ClusterProfileNutanixQE             ClusterProfile = "nutanix-qe"
	ClusterProfileNutanixQEDis          ClusterProfile = "nutanix-qe-dis"
	ClusterProfileNutanixQEZone         ClusterProfile = "nutanix-qe-zone"
	ClusterProfileNutanixQEGPU          ClusterProfile = "nutanix-qe-gpu"
	ClusterProfileOpenStackHwoffload    ClusterProfile = "openstack-hwoffload"
	ClusterProfileOpenStackIBMOSP       ClusterProfile = "openstack-ibm-osp"
	ClusterProfileOpenStackNFV          ClusterProfile = "openstack-nfv"
	ClusterProfileOpenStackMechaCentral ClusterProfile = "openstack-vh-mecha-central"
	ClusterProfileOpenStackMechaAz0     ClusterProfile = "openstack-vh-mecha-az0"
	ClusterProfileOpenStackOsuosl       ClusterProfile = "openstack-osuosl"
	ClusterProfileOpenStackVexxhost     ClusterProfile = "openstack-vexxhost"
	ClusterProfileOpenStackPpc64le      ClusterProfile = "openstack-ppc64le"
	ClusterProfileOpenStackOpVexxhost   ClusterProfile = "openstack-operators-vexxhost"
	ClusterProfileOpenStackNercDev      ClusterProfile = "openstack-nerc-dev"
	ClusterProfileOvirt                 ClusterProfile = "ovirt"
	ClusterProfilePacket                ClusterProfile = "packet"
	ClusterProfilePacketAssisted        ClusterProfile = "packet-assisted"
	ClusterProfilePacketSNO             ClusterProfile = "packet-sno"
	ClusterProfileVSphereDis2           ClusterProfile = "vsphere-dis-2"
	ClusterProfileVSphereMultizone2     ClusterProfile = "vsphere-multizone-2"
	ClusterProfileVSphereConnected2     ClusterProfile = "vsphere-connected-2"
	ClusterProfileVSphereElastic        ClusterProfile = "vsphere-elastic"
	ClusterProfileKubevirt              ClusterProfile = "kubevirt"
	ClusterProfileAWSCPaaS              ClusterProfile = "aws-cpaas"
	ClusterProfileOSDEphemeral          ClusterProfile = "osd-ephemeral"
	ClusterProfileAWS2                  ClusterProfile = "aws-2"
	ClusterProfileHyperShift            ClusterProfile = "hypershift"
	ClusterProfileAWS3                  ClusterProfile = "aws-3"
	ClusterProfileGCPVirtualization     ClusterProfile = "gcp-virtualization"
	ClusterProfileAWSVirtualization     ClusterProfile = "aws-virtualization"
	ClusterProfileAzureVirtualization   ClusterProfile = "azure-virtualization"
	ClusterProfileOCIAssisted           ClusterProfile = "oci-assisted"
	ClusterProfileHypershiftPowerVS     ClusterProfile = "hypershift-powervs"
	ClusterProfileHypershiftPowerVSCB   ClusterProfile = "hypershift-powervs-cb"
	ClusterProfileOSSM                  ClusterProfile = "ossm-aws"
	ClusterProfileMedik8sAWS            ClusterProfile = "medik8s-aws"
	ClusterProfileGitOpsAWS             ClusterProfile = "gitops-aws"
	ClusterProfileCheAWS                ClusterProfile = "che-aws"
	ClusterProfileOSLGCP                ClusterProfile = "osl-gcp"
	ClusterProfileDevSandboxCIAWS       ClusterProfile = "devsandboxci-aws"
	ClusterProfileQuayAWS               ClusterProfile = "quay-aws"
	ClusterProfileAWSEdgeInfra          ClusterProfile = "aws-edge-infra"
	ClusterProfileRHOpenShiftEcosystem  ClusterProfile = "rh-openshift-ecosystem"
	ClusterProfileODFAWS                ClusterProfile = "odf-aws"
	ClusterProfileKonfluxWorkspacesAWS  ClusterProfile = "konfluxworkspaces-aws"
	ClusterProfileAWSObservabiltity     ClusterProfile = "aws-observability"
	ClusterProfileAWSStackrox           ClusterProfile = "aws-stackrox"
	ClusterProfileAWSSDCICD             ClusterProfile = "aws-sd-cicd"
	ClusterProfileGCPSDCICD             ClusterProfile = "gcp-sd-cicd"
	ClusterProfileAroRH                 ClusterProfile = "aro-redhat-tenant"
)

func ClusterProfiles

func ClusterProfiles() []ClusterProfile

ClusterProfiles are all valid cluster profiles

func (ClusterProfile) ClusterType

func (p ClusterProfile) ClusterType() string

ClusterType maps profiles to the type string used by tests.

func (ClusterProfile) ConfigMap

func (p ClusterProfile) ConfigMap() string

ConfigMap maps profiles to the ConfigMap they require (if applicable).

func (ClusterProfile) IPPoolLeaseShouldValidateBranch

func (p ClusterProfile) IPPoolLeaseShouldValidateBranch() bool

IPPoolLeaseShouldValidateBranch declares whether the ip-pool leases should only be applied to branches matching a specific OpenShift validation model. returns true by default, but should return false for any cluster-profiles that don't want this validation

func (ClusterProfile) IPPoolLeaseType

func (p ClusterProfile) IPPoolLeaseType() string

func (ClusterProfile) LeaseType

func (p ClusterProfile) LeaseType() string

LeaseType maps profiles to the type string used in leases.

func (ClusterProfile) Name

func (p ClusterProfile) Name() string

type ClusterProfileDetails

type ClusterProfileDetails struct {
	Profile     ClusterProfile         `yaml:"profile" json:"profile"`
	Owners      []ClusterProfileOwners `yaml:"owners,omitempty" json:"owners,omitempty"`
	ClusterType string                 `yaml:"cluster_type,omitempty" json:"cluster_type,omitempty"`
	LeaseType   string                 `yaml:"lease_type,omitempty" json:"lease_type,omitempty"`
	Secret      string                 `yaml:"secret,omitempty" json:"secret,omitempty"`
	ConfigMap   string                 `yaml:"config_map,omitempty" json:"config_map,omitempty"`
}

func (*ClusterProfileDetails) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterProfileDetails.

func (*ClusterProfileDetails) DeepCopyInto

func (in *ClusterProfileDetails) DeepCopyInto(out *ClusterProfileDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterProfileOwners

type ClusterProfileOwners struct {
	Org   string   `yaml:"org" json:"org"`
	Repos []string `yaml:"repos,omitempty" json:"repos,omitempty"`
}

func (*ClusterProfileOwners) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterProfileOwners.

func (*ClusterProfileOwners) DeepCopyInto

func (in *ClusterProfileOwners) DeepCopyInto(out *ClusterProfileOwners)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterProfilesList

type ClusterProfilesList []ClusterProfileDetails

func (ClusterProfilesList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterProfilesList.

func (ClusterProfilesList) DeepCopyInto

func (in ClusterProfilesList) DeepCopyInto(out *ClusterProfilesList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterProfilesMap

type ClusterProfilesMap map[ClusterProfile]ClusterProfileDetails

func (ClusterProfilesMap) DeepCopy

func (in ClusterProfilesMap) DeepCopy() ClusterProfilesMap

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterProfilesMap.

func (ClusterProfilesMap) DeepCopyInto

func (in ClusterProfilesMap) DeepCopyInto(out *ClusterProfilesMap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterTestConfiguration

type ClusterTestConfiguration struct {
	ClusterProfile ClusterProfile `json:"cluster_profile"`
}

ClusterTestConfiguration describes a test that provisions a cluster and runs a command in it.

func (*ClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTestConfiguration.

func (*ClusterTestConfiguration) DeepCopyInto

func (in *ClusterTestConfiguration) DeepCopyInto(out *ClusterTestConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CommonStep

type CommonStep interface {
	Inputs() (InputDefinition, error)
	// Validate checks inputs of steps that are part of the execution graph.
	Validate() error
	Run(ctx context.Context) error

	// Name is the name of the stage, used to target it.
	// If this is the empty string the stage cannot be targeted.
	Name() string
	// Description is a short, human readable description of this step.
	Description() string
	Requires() []StepLink
	Creates() []StepLink
	Provides() ParameterMap
	// Objects returns all objects the client for this step has seen
	Objects() []ctrlruntimeclient.Object
}

CommonStep is a self-contained bit of work that the build pipeline needs to do. +k8s:deepcopy-gen=false

type ContainerTestConfiguration

type ContainerTestConfiguration struct {
	// From is the image stream tag in the pipeline to run this
	// command in.
	From PipelineImageStreamTagReference `json:"from"`
	// MemoryBackedVolume mounts a volume of the specified size into
	// the container at /tmp/volume.
	MemoryBackedVolume *MemoryBackedVolume `json:"memory_backed_volume,omitempty"`
	// If the step should clone the source code prior to running the command.
	// Defaults to `true` for `base_images`, `false` otherwise.
	Clone *bool `json:"clone,omitempty"`
}

ContainerTestConfiguration describes a test that runs a command in one of the previously built images.

func (*ContainerTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerTestConfiguration.

func (*ContainerTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CredentialReference

type CredentialReference struct {
	// Namespace is where the source secret exists.
	Namespace string `json:"namespace"`
	// Names is which source secret to mount.
	Name string `json:"name"`
	// MountPath is where the secret should be mounted.
	MountPath string `json:"mount_path"`
}

CredentialReference defines a secret to mount into a step and where to mount it.

func (*CredentialReference) DeepCopy

func (in *CredentialReference) DeepCopy() *CredentialReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialReference.

func (*CredentialReference) DeepCopyInto

func (in *CredentialReference) DeepCopyInto(out *CredentialReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeferredParameters

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

+k8s:deepcopy-gen=false

func NewDeferredParameters

func NewDeferredParameters(params Parameters) *DeferredParameters

func (*DeferredParameters) Add

func (p *DeferredParameters) Add(name string, fn func() (string, error))

func (*DeferredParameters) Get

func (p *DeferredParameters) Get(name string) (string, error)

func (*DeferredParameters) Has

func (p *DeferredParameters) Has(name string) bool

Has returns true if the named parameter exists. Use HasInput if you need to know whether the value comes from outside the graph.

func (*DeferredParameters) HasInput

func (p *DeferredParameters) HasInput(name string) bool

HasInput returns true if the named parameter is an input from outside the graph, rather than provided either by the graph caller or another node.

func (*DeferredParameters) Map

func (p *DeferredParameters) Map() (map[string]string, error)

func (*DeferredParameters) Set

func (p *DeferredParameters) Set(name, value string)

type DependencyOverrides

type DependencyOverrides map[string]string

func (DependencyOverrides) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DependencyOverrides.

func (DependencyOverrides) DeepCopyInto

func (in DependencyOverrides) DeepCopyInto(out *DependencyOverrides)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GraphConfiguration

type GraphConfiguration struct {
	// Steps accumulates step configuration as the configuration is parsed.
	Steps []StepConfiguration
}

GraphConfiguration contains step data used to build the execution graph.

func (*GraphConfiguration) DeepCopy

func (in *GraphConfiguration) DeepCopy() *GraphConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GraphConfiguration.

func (*GraphConfiguration) DeepCopyInto

func (in *GraphConfiguration) DeepCopyInto(out *GraphConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GraphConfiguration) InputImages

func (c *GraphConfiguration) InputImages() (ret []*InputImageTagStepConfiguration)

type ImageBuildInputs

type ImageBuildInputs struct {
	// Paths is a list of paths to copy out of this image and into the
	// context directory.
	Paths []ImageSourcePath `json:"paths,omitempty"`
	// As is a list of multi-stage step names or image names that will
	// be replaced by the image reference from this step. For instance,
	// if the Dockerfile defines FROM nginx:latest AS base, specifying
	// either "nginx:latest" or "base" in this array will replace that
	// image with the pipeline input.
	As []string `json:"as,omitempty"`
}

ImageBuildInputs is a subset of the v1 OpenShift Build API object defining an input source.

func (*ImageBuildInputs) DeepCopy

func (in *ImageBuildInputs) DeepCopy() *ImageBuildInputs

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageBuildInputs.

func (*ImageBuildInputs) DeepCopyInto

func (in *ImageBuildInputs) DeepCopyInto(out *ImageBuildInputs)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImageSourcePath

type ImageSourcePath struct {
	// SourcePath is a file or directory in the source image to copy from.
	SourcePath string `json:"source_path"`
	// DestinationDir is the directory in the destination image to copy
	// to.
	DestinationDir string `json:"destination_dir"`
}

ImageSourcePath maps a path in the source image into a destination path in the context. See the v1 OpenShift Build API for more info.

func (*ImageSourcePath) DeepCopy

func (in *ImageSourcePath) DeepCopy() *ImageSourcePath

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSourcePath.

func (*ImageSourcePath) DeepCopyInto

func (in *ImageSourcePath) DeepCopyInto(out *ImageSourcePath)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImageStreamSource

type ImageStreamSource struct {
	SourceType ImageStreamSourceType
	Name       string
}

func (*ImageStreamSource) DeepCopy

func (in *ImageStreamSource) DeepCopy() *ImageStreamSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamSource.

func (*ImageStreamSource) DeepCopyInto

func (in *ImageStreamSource) DeepCopyInto(out *ImageStreamSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImageStreamSourceType

type ImageStreamSourceType string
const (
	ImageStreamSourceRoot    ImageStreamSourceType = "root"
	ImageStreamSourceBase    ImageStreamSourceType = "base_image"
	ImageStreamSourceBaseRpm ImageStreamSourceType = "base_rpm_image"
	ImageStreamSourceTest    ImageStreamSourceType = "test step"
)

type ImageStreamTagReference

type ImageStreamTagReference struct {
	Namespace string `json:"namespace"`
	Name      string `json:"name"`
	Tag       string `json:"tag"`

	// As is an optional string to use as the intermediate name for this reference.
	As string `json:"as,omitempty"`
}

ImageStreamTagReference identifies an ImageStreamTag

func BuildCacheFor

func BuildCacheFor(metadata Metadata) ImageStreamTagReference

func (*ImageStreamTagReference) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamTagReference.

func (*ImageStreamTagReference) DeepCopyInto

func (in *ImageStreamTagReference) DeepCopyInto(out *ImageStreamTagReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ImageStreamTagReference) ISTagName

func (i *ImageStreamTagReference) ISTagName() string

type IndexGeneratorStepConfiguration

type IndexGeneratorStepConfiguration struct {
	To PipelineImageStreamTagReference `json:"to,omitempty"`

	// OperatorIndex is a list of the names of the bundle images that the
	// index will contain in its database.
	OperatorIndex []string `json:"operator_index,omitempty"`

	// BaseIndex is the index image to add the bundle(s) to. If unset, a new index is created
	BaseIndex string `json:"base_index,omitempty"`

	// UpdateGraph defines the mode to us when updating the index graph
	UpdateGraph IndexUpdate `json:"update_graph,omitempty"`
}

IndexGeneratorStepConfiguration describes a step that creates an index database and Dockerfile to build an operator index that uses the generated database based on bundle names provided in OperatorIndex

func (*IndexGeneratorStepConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IndexGeneratorStepConfiguration.

func (*IndexGeneratorStepConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (IndexGeneratorStepConfiguration) TargetName

func (config IndexGeneratorStepConfiguration) TargetName() string

type IndexUpdate

type IndexUpdate string

IndexUpdate specifies the update mode for an operator being added to an index

type InputConfiguration

type InputConfiguration struct {
	// The list of base images describe
	// which images are going to be necessary outside
	// of the pipeline. The key will be the alias that other
	// steps use to refer to this image.
	BaseImages map[string]ImageStreamTagReference `json:"base_images,omitempty"`
	// BaseRPMImages is a list of the images and their aliases that will
	// have RPM repositories injected into them for downstream
	// image builds that require built project RPMs.
	BaseRPMImages map[string]ImageStreamTagReference `json:"base_rpm_images,omitempty"`

	// BuildRootImage supports two ways to get the image that
	// the pipeline will caches on. The one way is to take the reference
	// from an image stream, and the other from a dockerfile.
	BuildRootImage *BuildRootImageConfiguration `json:"build_root,omitempty"`

	// BuildRootImages entries support two ways to get the image that
	// the pipeline will caches on. The one way is to take the reference
	// from an image stream, and the other from a dockerfile.
	// Mutually exclusive with BuildRootImage
	// DO NOT set this in the config
	BuildRootImages map[string]BuildRootImageConfiguration `json:"build_roots,omitempty"`

	// ReleaseTagConfiguration determines how the
	// full release is assembled.
	ReleaseTagConfiguration *ReleaseTagConfiguration `json:"tag_specification,omitempty"`

	// Releases maps semantic release payload identifiers
	// to the names that they will be exposed under. For
	// instance, an 'initial' name will be exposed as
	// $RELEASE_IMAGE_INITIAL. The 'latest' key is special
	// and cannot co-exist with 'tag_specification', as
	// they result in the same output.
	Releases map[string]UnresolvedRelease `json:"releases,omitempty"`
}

InputConfiguration contains the set of image inputs to a build and can be used as an override to the canonical inputs by a local process.

func (*InputConfiguration) DeepCopy

func (in *InputConfiguration) DeepCopy() *InputConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputConfiguration.

func (*InputConfiguration) DeepCopyInto

func (in *InputConfiguration) DeepCopyInto(out *InputConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InputDefinition

type InputDefinition []string

func (InputDefinition) DeepCopy

func (in InputDefinition) DeepCopy() InputDefinition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputDefinition.

func (InputDefinition) DeepCopyInto

func (in InputDefinition) DeepCopyInto(out *InputDefinition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InputImage

type InputImage struct {
	BaseImage ImageStreamTagReference         `json:"base_image"`
	To        PipelineImageStreamTagReference `json:"to,omitempty"`

	// Ref is an optional string linking to the extra_ref in "org.repo" format that this belongs to
	Ref string `json:"ref,omitempty"`
}

func (*InputImage) DeepCopy

func (in *InputImage) DeepCopy() *InputImage

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputImage.

func (*InputImage) DeepCopyInto

func (in *InputImage) DeepCopyInto(out *InputImage)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InputImageTagStepConfiguration

type InputImageTagStepConfiguration struct {
	InputImage `json:",inline"`
	Sources    []ImageStreamSource `json:"-"`
}

InputImageTagStepConfiguration describes a step that tags an externalImage image in to the build pipeline. if no explicit output tag is provided, the name of the image is used as the tag.

func (*InputImageTagStepConfiguration) AddSources

func (config *InputImageTagStepConfiguration) AddSources(sources ...ImageStreamSource)

func (*InputImageTagStepConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputImageTagStepConfiguration.

func (*InputImageTagStepConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (InputImageTagStepConfiguration) FormattedSources

func (config InputImageTagStepConfiguration) FormattedSources() string

func (InputImageTagStepConfiguration) Matches

func (config InputImageTagStepConfiguration) Matches(other InputImage) bool

func (InputImageTagStepConfiguration) TargetName

func (config InputImageTagStepConfiguration) TargetName() string

type Integration

type Integration struct {
	// Namespace is the namespace in which the integration stream lives.
	Namespace string `json:"namespace"`
	// Name is the name of the ImageStream
	Name string `json:"name"`
	// IncludeBuiltImages determines if the release we assemble will include
	// images built during the test itself.
	IncludeBuiltImages bool `json:"include_built_images,omitempty"`
}

Integration is an ImageStream holding the latest images from development builds of OCP.

func (*Integration) DeepCopy

func (in *Integration) DeepCopy() *Integration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Integration.

func (*Integration) DeepCopyInto

func (in *Integration) DeepCopyInto(out *Integration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JobSpec

type JobSpec struct {
	downwardapi.JobSpec `json:",inline"`

	BaseNamespace string

	Metadata               Metadata
	Target                 string
	TargetAdditionalSuffix string
	// contains filtered or unexported fields
}

JobSpec is a superset of the upstream spec. +k8s:deepcopy-gen=false

func ResolveSpecFromEnv

func ResolveSpecFromEnv() (*JobSpec, error)

ResolveSpecFromEnv will determine the Refs being tested in by parsing Prow environment variable contents

func (*JobSpec) Inputs

func (s *JobSpec) Inputs() InputDefinition

Inputs returns the definition of the job as an input to the execution graph.

func (JobSpec) JobNameHash

func (s JobSpec) JobNameHash() string

func (*JobSpec) Namespace

func (s *JobSpec) Namespace() string

Namespace returns the namespace of the job. Must not be evaluated at step construction time because its unset there

func (*JobSpec) Owner

func (s *JobSpec) Owner() *meta.OwnerReference

func (*JobSpec) RawSpec

func (s *JobSpec) RawSpec() string

func (*JobSpec) SetNamespace

func (s *JobSpec) SetNamespace(namespace string)

func (*JobSpec) SetOwner

func (s *JobSpec) SetOwner(owner *meta.OwnerReference)

func (JobSpec) UniqueHash

func (s JobSpec) UniqueHash() string

type LiteralTestStep

type LiteralTestStep struct {
	// As is the name of the LiteralTestStep.
	As string `json:"as,omitempty"`
	// From is the container image that will be used for this step.
	From string `json:"from,omitempty"`
	// FromImage is a literal ImageStreamTag reference to use for this step.
	FromImage *ImageStreamTagReference `json:"from_image,omitempty"`
	// Commands is the command(s) that will be run inside the image.
	Commands string `json:"commands,omitempty"`
	// Resources defines the resource requirements for the step.
	Resources ResourceRequirements `json:"resources"`
	// Timeout is how long the we will wait before aborting a job with SIGINT.
	Timeout *prowv1.Duration `json:"timeout,omitempty"`
	// GracePeriod is how long the we will wait after sending SIGINT to send
	// SIGKILL when aborting a Step.
	GracePeriod *prowv1.Duration `json:"grace_period,omitempty"`
	// Credentials defines the credentials we'll mount into this step.
	Credentials []CredentialReference `json:"credentials,omitempty"`
	// Environment lists parameters that should be set by the test.
	Environment []StepParameter `json:"env,omitempty"`
	// Dependencies lists images which must be available before the test runs
	// and the environment variables which are used to expose their pull specs.
	Dependencies []StepDependency `json:"dependencies,omitempty"`
	// DnsConfig for step's Pod.
	DNSConfig *StepDNSConfig `json:"dnsConfig,omitempty"`
	// Leases lists resources that should be acquired for the test.
	Leases []StepLease `json:"leases,omitempty"`
	// OptionalOnSuccess defines if this step should be skipped as long
	// as all `pre` and `test` steps were successful and AllowSkipOnSuccess
	// flag is set to true in MultiStageTestConfiguration. This option is
	// applicable to `post` steps.
	OptionalOnSuccess *bool `json:"optional_on_success,omitempty"`
	// BestEffort defines if this step should cause the job to fail when the
	// step fails. This only applies when AllowBestEffortPostSteps flag is set
	// to true in MultiStageTestConfiguration. This option is applicable to
	// `post` steps.
	BestEffort *bool `json:"best_effort,omitempty"`
	// NoKubeconfig determines that no $KUBECONFIG will exist in $SHARED_DIR,
	// so no local copy of it will be created for the step and if the step
	// creates one, it will not be propagated.
	NoKubeconfig *bool `json:"no_kubeconfig,omitempty"`
	// Cli is the (optional) name of the release from which the `oc` binary
	// will be injected into this step.
	Cli string `json:"cli,omitempty"`
	// Observers are the observers that should be running
	Observers []string `json:"observers,omitempty"`
	// RunAsScript defines if this step should be executed as a script mounted
	// in the test container instead of being executed directly via bash
	RunAsScript *bool `json:"run_as_script,omitempty"`
	// NodeArchitecture is the architecture for the node where the test will run.
	// If set, the generated test pod will include a nodeSelector for this architecture.
	NodeArchitecture *NodeArchitecture `json:"node_architecture,omitempty"`
}

LiteralTestStep is the external representation of a test step allowing users to define new test steps. It gets converted to an internal LiteralTestStep struct that represents the full configuration that ci-operator can use.

func (*LiteralTestStep) DeepCopy

func (in *LiteralTestStep) DeepCopy() *LiteralTestStep

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LiteralTestStep.

func (*LiteralTestStep) DeepCopyInto

func (in *LiteralTestStep) DeepCopyInto(out *LiteralTestStep)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*LiteralTestStep) FromImageTag

FromImageTag returns the internal name for the image tag that will be used for this step, if one is configured.

type MemoryBackedVolume

type MemoryBackedVolume struct {
	// Size is the requested size of the volume as a Kubernetes
	// quantity, i.e. "1Gi" or "500M"
	Size string `json:"size"`
}

MemoryBackedVolume describes a tmpfs (memory backed volume) that will be mounted into a test container at /tmp/volume. Use with tests that need extremely fast disk, such as those that run an etcd server or other IO-intensive workload.

func (*MemoryBackedVolume) DeepCopy

func (in *MemoryBackedVolume) DeepCopy() *MemoryBackedVolume

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemoryBackedVolume.

func (*MemoryBackedVolume) DeepCopyInto

func (in *MemoryBackedVolume) DeepCopyInto(out *MemoryBackedVolume)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Metadata

type Metadata struct {
	Org     string `json:"org"`
	Repo    string `json:"repo"`
	Branch  string `json:"branch"`
	Variant string `json:"variant,omitempty"`
}

Metadata describes the source repo for which a config is written

func (*Metadata) AsString

func (m *Metadata) AsString() string

AsString returns a string representation of the metadata suitable for using in human-oriented output

func (*Metadata) Basename

func (m *Metadata) Basename() string

Basename returns the unique name for this file in the config

func (*Metadata) ConfigMapName

func (m *Metadata) ConfigMapName() string

ConfigMapName returns the configmap in which we expect this file to be uploaded

func (*Metadata) DeepCopy

func (in *Metadata) DeepCopy() *Metadata

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.

func (*Metadata) DeepCopyInto

func (in *Metadata) DeepCopyInto(out *Metadata)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Metadata) IsComplete

func (m *Metadata) IsComplete() error

IsComplete returns an error if at least one of Org, Repo, Branch members is empty, otherwise it returns nil

func (*Metadata) JobFilePath

func (m *Metadata) JobFilePath(suffix string) string

JobFilePath returns the file path for the jobs of the supplied suffix type

func (*Metadata) JobName

func (m *Metadata) JobName(prefix, name string) string

JobName returns a full name of a job corresponding to a test defined in this file, including variant, if present

func (*Metadata) RelativePath

func (m *Metadata) RelativePath() string

RelativePath returns the path to the config under the root config dir

func (*Metadata) SimpleJobName

func (m *Metadata) SimpleJobName(prefix, name string) string

SimpleJobName returns the job name without the "ci" infix for a job corresponding to a test defined in this file, including variant, if present

func (*Metadata) TestName

func (m *Metadata) TestName(testName string) string

TestName returns a short name of a test defined in this file, including variant, if present

func (*Metadata) TestNameFromJobName

func (m *Metadata) TestNameFromJobName(jobName, prefix string) string

TestNameFromJobName returns the name of the test from a given job name and prefix

type MetadataWithTest

type MetadataWithTest struct {
	Metadata `json:",inline"`
	Test     string `json:"test,omitempty"`
}

func MetadataTestFromString

func MetadataTestFromString(input string) (*MetadataWithTest, error)

func (*MetadataWithTest) DeepCopy

func (in *MetadataWithTest) DeepCopy() *MetadataWithTest

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetadataWithTest.

func (*MetadataWithTest) DeepCopyInto

func (in *MetadataWithTest) DeepCopyInto(out *MetadataWithTest)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MetadataWithTest) JobName

func (m *MetadataWithTest) JobName(prefix string) string

type MultiArchStep

type MultiArchStep interface {
	CommonStep

	ResolveMultiArch() sets.Set[string]
	AddArchitectures([]string)
}

MultiArchStep is a step that can be executed for multiple architectures. It is used to propagate the multi-arch property up the graph, ensuring that any step that depends on a multi-arch step is also considered multi-arch. +k8s:deepcopy-gen=false

type MultiStageTestConfiguration

type MultiStageTestConfiguration struct {
	// ClusterProfile defines the profile/cloud provider for end-to-end test steps.
	ClusterProfile ClusterProfile `json:"cluster_profile,omitempty"`
	// Pre is the array of test steps run to set up the environment for the test.
	Pre []TestStep `json:"pre,omitempty"`
	// Test is the array of test steps that define the actual test.
	Test []TestStep `json:"test,omitempty"`
	// Post is the array of test steps run after the tests finish and teardown/deprovision resources.
	// Post steps always run, even if previous steps fail. However, they have an option to skip
	// execution if previous Pre and Test steps passed.
	Post []TestStep `json:"post,omitempty"`
	// Workflow is the name of the workflow to be used for this configuration. For fields defined in both
	// the config and the workflow, the fields from the config will override what is set in Workflow.
	Workflow *string `json:"workflow,omitempty"`
	// Environment has the values of parameters for the steps.
	Environment TestEnvironment `json:"env,omitempty"`
	// Dependencies holds override values for dependency parameters.
	Dependencies TestDependencies `json:"dependencies,omitempty"`
	// DnsConfig for step's Pod.
	DNSConfig *StepDNSConfig `json:"dnsConfig,omitempty"`
	// Leases lists resources that should be acquired for the test.
	Leases []StepLease `json:"leases,omitempty"`
	// AllowSkipOnSuccess defines if any steps can be skipped when
	// all previous `pre` and `test` steps were successful. The given step must explicitly
	// ask for being skipped by setting the OptionalOnSuccess flag to true.
	AllowSkipOnSuccess *bool `json:"allow_skip_on_success,omitempty"`
	// AllowBestEffortPostSteps defines if any `post` steps can be ignored when
	// they fail. The given step must explicitly ask for being ignored by setting
	// the OptionalOnSuccess flag to true.
	AllowBestEffortPostSteps *bool `json:"allow_best_effort_post_steps,omitempty"`
	// Observers are the observers that should be running
	Observers *Observers `json:"observers,omitempty"`
	// DependencyOverrides allows a step to override a dependency with a fully-qualified pullspec. This will probably only ever
	// be used with rehearsals. Otherwise, the overrides should be passed in as parameters to ci-operator.
	DependencyOverrides DependencyOverrides `json:"dependency_overrides,omitempty"`
	// NodeArchitecture is the architecture for the node where the test will run.
	// If set, the generated test pod will include a nodeSelector for this architecture.
	NodeArchitecture *NodeArchitecture `json:"node_architecture,omitempty"`
}

MultiStageTestConfiguration is a flexible configuration mode that allows tighter control over the multiple stages of end to end tests.

func (*MultiStageTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MultiStageTestConfiguration.

func (*MultiStageTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MultiStageTestConfigurationLiteral

type MultiStageTestConfigurationLiteral struct {
	// ClusterProfile defines the profile/cloud provider for end-to-end test steps.
	ClusterProfile ClusterProfile `json:"cluster_profile"`
	// Pre is the array of test steps run to set up the environment for the test.
	Pre []LiteralTestStep `json:"pre,omitempty"`
	// Test is the array of test steps that define the actual test.
	Test []LiteralTestStep `json:"test,omitempty"`
	// Post is the array of test steps run after the tests finish and teardown/deprovision resources.
	// Post steps always run, even if previous steps fail.
	Post []LiteralTestStep `json:"post,omitempty"`
	// Environment has the values of parameters for the steps.
	Environment TestEnvironment `json:"env,omitempty"`
	// Dependencies holds override values for dependency parameters.
	Dependencies TestDependencies `json:"dependencies,omitempty"`
	// DnsConfig for step's Pod.
	DNSConfig *StepDNSConfig `json:"dnsConfig,omitempty"`
	// Leases lists resources that should be acquired for the test.
	Leases []StepLease `json:"leases,omitempty"`
	// AllowSkipOnSuccess defines if any steps can be skipped when
	// all previous `pre` and `test` steps were successful. The given step must explicitly
	// ask for being skipped by setting the OptionalOnSuccess flag to true.
	AllowSkipOnSuccess *bool `json:"allow_skip_on_success,omitempty"`
	// AllowBestEffortPostSteps defines if any `post` steps can be ignored when
	// they fail. The given step must explicitly ask for being ignored by setting
	// the OptionalOnSuccess flag to true.
	AllowBestEffortPostSteps *bool `json:"allow_best_effort_post_steps,omitempty"`
	// Observers are the observers that need to be run
	Observers []Observer `json:"observers,omitempty"`
	// DependencyOverrides allows a step to override a dependency with a fully-qualified pullspec. This will probably only ever
	// be used with rehearsals. Otherwise, the overrides should be passed in as parameters to ci-operator.
	DependencyOverrides DependencyOverrides `json:"dependency_overrides,omitempty"`
	// NodeArchitecture is the architecture for the node where the test will run.
	// If set, the generated test pod will include a nodeSelector for this architecture.
	NodeArchitecture *NodeArchitecture `json:"node_architecture,omitempty"`

	// Override job timeout
	Timeout *prowv1.Duration `json:"timeout,omitempty"`
}

MultiStageTestConfigurationLiteral is a form of the MultiStageTestConfiguration that does not include references. It is the type that MultiStageTestConfigurations are converted to when parsed by the ci-operator-configresolver.

func (*MultiStageTestConfigurationLiteral) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MultiStageTestConfigurationLiteral.

func (*MultiStageTestConfigurationLiteral) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeArchitecture

type NodeArchitecture string

NodeArchitecture describes the architecture for the node

const (
	NodeArchitectureAMD64 NodeArchitecture = "amd64"
	NodeArchitectureARM64 NodeArchitecture = "arm64"
)

type OKDInclusion

type OKDInclusion bool

type Observer

type Observer struct {
	// Name is the name of this observer
	Name string `json:"name"`
	// From is the container image that will be used for this observer.
	From string `json:"from,omitempty"`
	// FromImage is a literal ImageStreamTag reference to use for this observer.
	FromImage *ImageStreamTagReference `json:"from_image,omitempty"`
	// Commands is the command(s) that will be run inside the image.
	Commands string `json:"commands,omitempty"`
	// Resources defines the resource requirements for the step.
	Resources ResourceRequirements `json:"resources,omitempty"`
	// Timeout is how long the we will wait before aborting a job with SIGINT.
	Timeout *prowv1.Duration `json:"timeout,omitempty"`
	// GracePeriod is how long the we will wait after sending SIGINT to send
	// SIGKILL when aborting this observer.
	GracePeriod *prowv1.Duration `json:"grace_period,omitempty"`
	// Environment has the values of parameters for the observer.
	Environment []StepParameter `json:"env,omitempty"`
}

Observer is the configuration for an observer Pod that will run in parallel with a multi-stage test job.

func (*Observer) DeepCopy

func (in *Observer) DeepCopy() *Observer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Observer.

func (*Observer) DeepCopyInto

func (in *Observer) DeepCopyInto(out *Observer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Observers

type Observers struct {
	// Enable is a list of named observer that should be enabled
	Enable []string `json:"enable,omitempty"`
	// Disable is a list of named observers that should be disabled
	Disable []string `json:"disable,omitempty"`
}

Observers is a configuration for which observer pods should and should not be run during a job

func (*Observers) DeepCopy

func (in *Observers) DeepCopy() *Observers

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Observers.

func (*Observers) DeepCopyInto

func (in *Observers) DeepCopyInto(out *Observers)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftAnsible40ClusterTestConfiguration

type OpenshiftAnsible40ClusterTestConfiguration struct {
	ClusterTestConfiguration `json:",inline"`
}

OpenshiftAnsible40ClusterTestConfiguration describes a test that provisions a cluster using new installer and openshift-ansible

func (*OpenshiftAnsible40ClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftAnsible40ClusterTestConfiguration.

func (*OpenshiftAnsible40ClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftAnsibleClusterTestConfiguration

type OpenshiftAnsibleClusterTestConfiguration struct {
	ClusterTestConfiguration `json:",inline"`
}

OpenshiftAnsibleClusterTestConfiguration describes a test that provisions a cluster using openshift-ansible and runs conformance tests.

func (*OpenshiftAnsibleClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftAnsibleClusterTestConfiguration.

func (*OpenshiftAnsibleClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftAnsibleCustomClusterTestConfiguration

type OpenshiftAnsibleCustomClusterTestConfiguration struct {
	ClusterTestConfiguration `json:",inline"`
}

OpenshiftAnsibleCustomClusterTestConfiguration describes a test that provisions a cluster using openshift-ansible's custom provisioner, and runs conformance tests.

func (*OpenshiftAnsibleCustomClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftAnsibleCustomClusterTestConfiguration.

func (*OpenshiftAnsibleCustomClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftAnsibleSrcClusterTestConfiguration

type OpenshiftAnsibleSrcClusterTestConfiguration struct {
	ClusterTestConfiguration `json:",inline"`
}

OpenshiftAnsibleSrcClusterTestConfiguration describes a test that provisions a cluster using openshift-ansible and executes a command in the `src` image.

func (*OpenshiftAnsibleSrcClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftAnsibleSrcClusterTestConfiguration.

func (*OpenshiftAnsibleSrcClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftInstallerClusterTestConfiguration

type OpenshiftInstallerClusterTestConfiguration struct {
	ClusterTestConfiguration `json:",inline"`
	// If upgrade is true, RELEASE_IMAGE_INITIAL will be used as
	// the initial payload and the installer image from that
	// will be upgraded. The `run-upgrade-tests` function will be
	// available for the commands.
	Upgrade bool `json:"upgrade,omitempty"`
}

OpenshiftInstallerClusterTestConfiguration describes a test that provisions a cluster using openshift-installer and runs conformance tests.

func (*OpenshiftInstallerClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftInstallerClusterTestConfiguration.

func (*OpenshiftInstallerClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftInstallerConsoleClusterTestConfiguration

type OpenshiftInstallerConsoleClusterTestConfiguration struct {
	ClusterTestConfiguration `json:",inline"`
}

OpenshiftInstallerConsoleClusterTestConfiguration describes a test that provisions a cluster using openshift-installer and executes a command in the `console-test` image.

func (*OpenshiftInstallerConsoleClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftInstallerConsoleClusterTestConfiguration.

func (*OpenshiftInstallerConsoleClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftInstallerCustomTestImageClusterTestConfiguration

type OpenshiftInstallerCustomTestImageClusterTestConfiguration struct {
	ClusterTestConfiguration `json:",inline"`
	// From defines the imagestreamtag that will be used to run the
	// provided test command.  e.g. stable:console-test
	From string `json:"from"`
}

OpenshiftInstallerCustomTestImageClusterTestConfiguration describes a test that provisions a cluster using openshift-installer and executes a command in the image specified by the job configuration.

func (*OpenshiftInstallerCustomTestImageClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftInstallerCustomTestImageClusterTestConfiguration.

func (*OpenshiftInstallerCustomTestImageClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftInstallerGCPNestedVirtCustomTestImageClusterTestConfiguration

type OpenshiftInstallerGCPNestedVirtCustomTestImageClusterTestConfiguration struct {
	ClusterTestConfiguration `json:",inline"`
	// From defines the imagestreamtag that will be used to run the
	// provided test command.  e.g. stable:console-test
	From string `json:"from"`
}

OpenshiftInstallerGCPNestedVirtCustomTestImageClusterTestConfiguration describes a test that provisions a gcp cluster using openshift-installer with nested virt enabled and executes a command in the image specified by the job configuration.

func (*OpenshiftInstallerGCPNestedVirtCustomTestImageClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftInstallerGCPNestedVirtCustomTestImageClusterTestConfiguration.

func (*OpenshiftInstallerGCPNestedVirtCustomTestImageClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftInstallerRandomClusterTestConfiguration

type OpenshiftInstallerRandomClusterTestConfiguration struct{}

OpenshiftInstallerRandomClusterTestConfiguration describes a that provisions a cluster using openshift-installer in a provider chosen randomly and runs conformance tests.

func (*OpenshiftInstallerRandomClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftInstallerRandomClusterTestConfiguration.

func (*OpenshiftInstallerRandomClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftInstallerSrcClusterTestConfiguration

type OpenshiftInstallerSrcClusterTestConfiguration struct {
	ClusterTestConfiguration `json:",inline"`
}

OpenshiftInstallerSrcClusterTestConfiguration describes a test that provisions a cluster using openshift-installer and executes a command in the `src` image.

func (*OpenshiftInstallerSrcClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftInstallerSrcClusterTestConfiguration.

func (*OpenshiftInstallerSrcClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftInstallerUPIClusterTestConfiguration

type OpenshiftInstallerUPIClusterTestConfiguration struct {
	ClusterTestConfiguration `json:",inline"`
}

OpenshiftInstallerUPIClusterTestConfiguration describes a test that provisions machines using installer-upi image and installs the cluster using UPI flow.

func (*OpenshiftInstallerUPIClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftInstallerUPIClusterTestConfiguration.

func (*OpenshiftInstallerUPIClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OpenshiftInstallerUPISrcClusterTestConfiguration

type OpenshiftInstallerUPISrcClusterTestConfiguration struct {
	ClusterTestConfiguration `json:",inline"`
}

OpenshiftInstallerUPISrcClusterTestConfiguration describes a test that provisions machines using installer-upi image and installs the cluster using UPI flow. Tests will be run akin to the OpenshiftInstallerSrcClusterTestConfiguration.

func (*OpenshiftInstallerUPISrcClusterTestConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenshiftInstallerUPISrcClusterTestConfiguration.

func (*OpenshiftInstallerUPISrcClusterTestConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperatorStepConfiguration

type OperatorStepConfiguration struct {
	// Bundles define a dockerfile and build context to build a bundle
	Bundles []Bundle `json:"bundles,omitempty"`

	// Substitutions describes the pullspecs in the operator manifests that must be subsituted
	// with the pull specs of the images in the CI registry
	Substitutions []PullSpecSubstitution `json:"substitutions,omitempty"`
}

OperatorStepConfiguration describes the locations of operator bundle information, bundle build dockerfiles, and images the operator(s) depends on that must be substituted to run in a CI test cluster

func (*OperatorStepConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorStepConfiguration.

func (*OperatorStepConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OrderedStepList

type OrderedStepList []*StepNode

+k8s:deepcopy-gen=false OrderedStepList is a topologically-ordered sequence of steps Edges are determined based on the Creates/Requires methods.

type OutputImageTagStepConfiguration

type OutputImageTagStepConfiguration struct {
	From PipelineImageStreamTagReference `json:"from"`
	To   ImageStreamTagReference         `json:"to"`

	// Optional means the output step is not built, published, or
	// promoted unless explicitly targeted. Use for builds which
	// are invoked only when testing certain parts of the repo.
	Optional bool `json:"optional"`
}

OutputImageTagStepConfiguration describes a step that tags a pipeline image out from the build pipeline.

func (*OutputImageTagStepConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OutputImageTagStepConfiguration.

func (*OutputImageTagStepConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (OutputImageTagStepConfiguration) TargetName

func (config OutputImageTagStepConfiguration) TargetName() string

type ParameterMap

type ParameterMap map[string]func() (string, error)

+k8s:deepcopy-gen=false

type Parameters

type Parameters interface {
	Has(name string) bool
	HasInput(name string) bool
	Get(name string) (string, error)
}

Parameters allows a step to read values set by other steps. +k8s:deepcopy-gen=false

func NewOverrideParameters

func NewOverrideParameters(params Parameters, overrides map[string]string) Parameters

type PipelineImageCacheStepConfiguration

type PipelineImageCacheStepConfiguration struct {
	From PipelineImageStreamTagReference `json:"from"`
	To   PipelineImageStreamTagReference `json:"to"`

	// Commands are the shell commands to run in
	// the repository root to create the cached
	// content.
	Commands string `json:"commands"`

	// Ref is an optional string linking to the extra_ref in "org.repo" format that this belongs to
	Ref string `json:"ref,omitempty"`
}

PipelineImageCacheStepConfiguration describes a step that builds a container image to cache the output of commands.

func (*PipelineImageCacheStepConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PipelineImageCacheStepConfiguration.

func (*PipelineImageCacheStepConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (PipelineImageCacheStepConfiguration) TargetName

func (config PipelineImageCacheStepConfiguration) TargetName() string

type PipelineImageStreamTagReference

type PipelineImageStreamTagReference string

PipelineImageStreamTagReference is a tag on the ImageStream corresponding to the code under test. This tag will identify an image but not use any namespaces or prefixes, For instance, if for the image openshift/origin-pod, the tag would be `pod`.

const (
	PipelineImageStreamTagReferenceRoot         PipelineImageStreamTagReference = "root"
	PipelineImageStreamTagReferenceSource       PipelineImageStreamTagReference = "src"
	PipelineImageStreamTagReferenceBinaries     PipelineImageStreamTagReference = "bin"
	PipelineImageStreamTagReferenceTestBinaries PipelineImageStreamTagReference = "test-bin"
	PipelineImageStreamTagReferenceRPMs         PipelineImageStreamTagReference = "rpms"
)
const PipelineImageStreamTagReferenceBundleSource PipelineImageStreamTagReference = "src-bundle"

PipelineImageStreamTagReferenceBundleSourceName is the name of the bundle source image built by the CI

const PipelineImageStreamTagReferenceIndexImage PipelineImageStreamTagReference = "ci-index"

PipelineImageStreamTagReferenceIndexImage is the name of the index image built by ci-operator

const PipelineImageStreamTagReferenceIndexImageGenerator PipelineImageStreamTagReference = "ci-index-gen"

PipelineImageStreamTagReferenceIndexImageGenerator is the name of the index image generator built by ci-operator

type Prerelease

type Prerelease struct {
	ReleaseDescriptor
	// VersionBounds describe the allowable version bounds to search in
	VersionBounds VersionBounds `json:"version_bounds"`
}

Prerelease describes a validated release payload before it is exposed

func (*Prerelease) DeepCopy

func (in *Prerelease) DeepCopy() *Prerelease

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Prerelease.

func (*Prerelease) DeepCopyInto

func (in *Prerelease) DeepCopyInto(out *Prerelease)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProjectDirectoryImageBuildInputs

type ProjectDirectoryImageBuildInputs struct {
	// ContextDir is the directory in the project
	// from which this build should be run.
	ContextDir string `json:"context_dir,omitempty"`

	// DockerfilePath is the path to a Dockerfile in the
	// project to run relative to the context_dir.
	DockerfilePath string `json:"dockerfile_path,omitempty"`

	// DockerfileLiteral can be used to  provide an inline Dockerfile.
	// Mutually exclusive with DockerfilePath.
	DockerfileLiteral *string `json:"dockerfile_literal,omitempty"`

	// Inputs is a map of tag reference name to image input changes
	// that will populate the build context for the Dockerfile or
	// alter the input image for a multi-stage build.
	Inputs map[string]ImageBuildInputs `json:"inputs,omitempty"`

	// BuildArgs contains build arguments that will be resolved in the Dockerfile.
	// See https://docs.docker.com/engine/reference/builder/#/arg for more details.
	BuildArgs []BuildArg `json:"build_args,omitempty"`

	// Ref is an optional string linking to the extra_ref in "org.repo" format that this belongs to
	Ref string `json:"ref,omitempty"`
}

ProjectDirectoryImageBuildInputs holds inputs for an image build from the repo under test

func (*ProjectDirectoryImageBuildInputs) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectDirectoryImageBuildInputs.

func (*ProjectDirectoryImageBuildInputs) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProjectDirectoryImageBuildStepConfiguration

type ProjectDirectoryImageBuildStepConfiguration struct {
	From PipelineImageStreamTagReference `json:"from,omitempty"`
	To   PipelineImageStreamTagReference `json:"to"`

	ProjectDirectoryImageBuildInputs `json:",inline"`

	// Optional means the build step is not built, published, or
	// promoted unless explicitly targeted. Use for builds which
	// are invoked only when testing certain parts of the repo.
	Optional bool `json:"optional,omitempty"`

	// MultiArch means the build step is built for multiple architectures if available. Defaults to false.
	// DEPRECATED: use AdditionalArchitectures instead
	MultiArch bool `json:"multi_arch,omitempty"`

	// AdditionalArchitectures is a list of additional architectures to build for. AMD64 architecture is included by default.
	AdditionalArchitectures []string `json:"additional_architectures,omitempty"`

	// Ref is an optional string linking to the extra_ref in "org.repo" format that this belongs to
	Ref string `json:"ref,omitempty"`
	// contains filtered or unexported fields
}

ProjectDirectoryImageBuildStepConfiguration describes an image build from a directory in a component project.

func (*ProjectDirectoryImageBuildStepConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectDirectoryImageBuildStepConfiguration.

func (*ProjectDirectoryImageBuildStepConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ProjectDirectoryImageBuildStepConfiguration) IsBundleImage

IsBundleImage returns the value of the isBundleImage field

func (ProjectDirectoryImageBuildStepConfiguration) TargetName

func (*ProjectDirectoryImageBuildStepConfiguration) WithBundleImage

WithBundleImage sets the isBundleImage field to the provided value

type PromotionConfiguration

type PromotionConfiguration struct {
	// Targets configure a set of images to be pushed to
	// a registry.
	Targets []PromotionTarget `json:"to,omitempty"`

	// RegistryOverride is an override for the registry domain to
	// which we will mirror images. This is an advanced option and
	// should *not* be used in common test workflows. The CI chat
	// bot uses this option to facilitate image sharing.
	RegistryOverride string `json:"registry_override,omitempty"`

	// DisableBuildCache stops us from uploading the build cache.
	// This is useful (only) for CI chat bot invocations where
	// promotion does not imply output artifacts are being created
	// for posterity.
	DisableBuildCache bool `json:"disable_build_cache,omitempty"`
}

PromotionConfiguration describes where images created by this config should be published to. The release tag configuration defines the inputs, while this defines the outputs.

func (*PromotionConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromotionConfiguration.

func (*PromotionConfiguration) DeepCopyInto

func (in *PromotionConfiguration) DeepCopyInto(out *PromotionConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PromotionTarget

type PromotionTarget struct {
	// Namespace identifies the namespace to which the built
	// artifacts will be published to.
	Namespace string `json:"namespace"`

	// Name is an optional image stream name to use that
	// contains all component tags. If specified, tag is
	// ignored.
	Name string `json:"name,omitempty"`

	// Tag is the ImageStreamTag tagged in for each
	// build image's ImageStream.
	Tag string `json:"tag,omitempty"`

	// TagByCommit determines if an image should be tagged by the
	// git commit that was used to build it. If Tag is also set,
	// this will cause both a floating tag and commit-specific tags
	// to be promoted.
	TagByCommit bool `json:"tag_by_commit,omitempty"`

	// ExcludedImages are image names that will not be promoted.
	// Exclusions are made before additional_images are included.
	// Use exclusions when you want to build images for testing
	// but not promote them afterwards.
	ExcludedImages []string `json:"excluded_images,omitempty"`

	// AdditionalImages is a mapping of images to promote. The
	// images will be taken from the pipeline image stream. The
	// key is the name to promote as and the value is the source
	// name. If you specify a tag that does not exist as the source
	// the destination tag will not be created.
	AdditionalImages map[string]string `json:"additional_images,omitempty"`

	// Disabled will no-op succeed instead of running the actual
	// promotion step. This is useful when two branches need to
	// promote to the same output imagestream on a cut-over but
	// never concurrently, and you want to have promotion config
	// in the ci-operator configuration files all the time.
	Disabled bool `json:"disabled,omitempty"`
}

func PromotionTargets

func PromotionTargets(c *PromotionConfiguration) []PromotionTarget

PromotionTargets adapts the single-target configuration to the multi-target paradigm. This function will be removed when the previous implementation is removed.

func (*PromotionTarget) DeepCopy

func (in *PromotionTarget) DeepCopy() *PromotionTarget

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromotionTarget.

func (*PromotionTarget) DeepCopyInto

func (in *PromotionTarget) DeepCopyInto(out *PromotionTarget)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PullSpecSubstitution

type PullSpecSubstitution struct {
	// PullSpec is the pullspec that needs to be replaced
	PullSpec string `json:"pullspec,omitempty"`
	// With is the string that the PullSpec is being replaced by
	With string `json:"with,omitempty"`
}

PullSpecSubstitution contains a name of a pullspec that needs to be substituted with the name of a different pullspec. This is used for generated operator bundle images.

func (*PullSpecSubstitution) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PullSpecSubstitution.

func (*PullSpecSubstitution) DeepCopyInto

func (in *PullSpecSubstitution) DeepCopyInto(out *PullSpecSubstitution)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RPMImageInjectionStepConfiguration

type RPMImageInjectionStepConfiguration struct {
	From PipelineImageStreamTagReference `json:"from"`
	To   PipelineImageStreamTagReference `json:"to,omitempty"`
}

RPMImageInjectionStepConfiguration describes a step that updates injects an RPM repo into an image. If no output tag is provided, the input tag is updated.

func (*RPMImageInjectionStepConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RPMImageInjectionStepConfiguration.

func (*RPMImageInjectionStepConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (RPMImageInjectionStepConfiguration) TargetName

func (config RPMImageInjectionStepConfiguration) TargetName() string

type RPMServeStepConfiguration

type RPMServeStepConfiguration struct {
	From PipelineImageStreamTagReference `json:"from"`

	// Ref is an optional string linking to the extra_ref in "org.repo" format that this belongs to
	Ref string `json:"ref,omitempty"`
}

RPMServeStepConfiguration describes a step that launches a server from an image with RPMs and exposes it to the web.

func (*RPMServeStepConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RPMServeStepConfiguration.

func (*RPMServeStepConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (RPMServeStepConfiguration) TargetName

func (config RPMServeStepConfiguration) TargetName() string

type RefCommands

type RefCommands struct {
	Ref      string `json:"ref"`
	Commands string `json:"commands"`
}

RefCommands pairs a ref (in org/repo format) with commands

func (*RefCommands) DeepCopy

func (in *RefCommands) DeepCopy() *RefCommands

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RefCommands.

func (*RefCommands) DeepCopyInto

func (in *RefCommands) DeepCopyInto(out *RefCommands)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RefLocation

type RefLocation struct {
	Ref      string `json:"ref"`
	Location string `json:"location"`
}

RefLocation pairs a ref (in org/repo format) with a location

func (*RefLocation) DeepCopy

func (in *RefLocation) DeepCopy() *RefLocation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RefLocation.

func (*RefLocation) DeepCopyInto

func (in *RefLocation) DeepCopyInto(out *RefLocation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RefRepository

type RefRepository struct {
	Ref        string `json:"ref"`
	Repository string `json:"repository"`
}

RefRepository pairs a ref (in org/repo format) with a repository

func (*RefRepository) DeepCopy

func (in *RefRepository) DeepCopy() *RefRepository

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RefRepository.

func (*RefRepository) DeepCopyInto

func (in *RefRepository) DeepCopyInto(out *RefRepository)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegistryChain

type RegistryChain struct {
	// As defines the name of the chain. This is how the chain will be referenced from a job's config.
	As string `json:"as,omitempty"`
	// Steps contains the list of steps that comprise the chain. Steps will be run in the order they are defined.
	Steps []TestStep `json:"steps"`
	// Documentation describes what the chain does.
	Documentation string `json:"documentation,omitempty"`
	// Environment lists parameters that should be set by the test.
	Environment []StepParameter `json:"env,omitempty"`
	// Leases lists resources that should be acquired for the test.
	Leases []StepLease `json:"leases,omitempty"`
}

RegistryChain contains the array of steps, name, and documentation for a step chain.

func (*RegistryChain) DeepCopy

func (in *RegistryChain) DeepCopy() *RegistryChain

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryChain.

func (*RegistryChain) DeepCopyInto

func (in *RegistryChain) DeepCopyInto(out *RegistryChain)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegistryChainConfig

type RegistryChainConfig struct {
	// Chain is the top level field of a chain config.
	Chain RegistryChain `json:"chain,omitempty"`
}

RegistryChainConfig is the struct that chain references are unmarshalled into.

func (*RegistryChainConfig) DeepCopy

func (in *RegistryChainConfig) DeepCopy() *RegistryChainConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryChainConfig.

func (*RegistryChainConfig) DeepCopyInto

func (in *RegistryChainConfig) DeepCopyInto(out *RegistryChainConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegistryInfo

type RegistryInfo struct {
	// Path is the path of the directoryfor the registry component relative to the registry's base directory
	Path string `json:"path,omitempty"`
	// Owners is the OWNERS config for the registry component
	Owners repoowners.Config `json:"owners,omitempty"`
}

RegistryInfo contains metadata about a registry component that is useful for the web UI of the step registry +k8s:deepcopy-gen=false

type RegistryMetadata

type RegistryMetadata map[string]RegistryInfo

RegistryMetadata maps the registry info for each step in the registry by filename +k8s:deepcopy-gen=false

type RegistryObserver

type RegistryObserver struct {
	// Observer defines the observer pod
	Observer `json:",inline"`
	// Documentation describes what the observer being configured does.
	Documentation string `json:"documentation,omitempty"`
}

RegistryObserver contains the configuration and documentation for an observer

func (*RegistryObserver) DeepCopy

func (in *RegistryObserver) DeepCopy() *RegistryObserver

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryObserver.

func (*RegistryObserver) DeepCopyInto

func (in *RegistryObserver) DeepCopyInto(out *RegistryObserver)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegistryObserverConfig

type RegistryObserverConfig struct {
	// Observer is the top level field of an observer config
	Observer RegistryObserver `json:"observer,omitempty"`
}

RegistryObserverConfig is the struct that observer configs are unmarshalled into

func (*RegistryObserverConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryObserverConfig.

func (*RegistryObserverConfig) DeepCopyInto

func (in *RegistryObserverConfig) DeepCopyInto(out *RegistryObserverConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegistryReference

type RegistryReference struct {
	// LiteralTestStep defines the full test step that can be run by the ci-operator.
	LiteralTestStep `json:",inline"`
	// Documentation describes what the step being referenced does.
	Documentation string `json:"documentation,omitempty"`
}

RegistryReference contains the LiteralTestStep of a reference as well as the documentation for the step.

func (*RegistryReference) DeepCopy

func (in *RegistryReference) DeepCopy() *RegistryReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryReference.

func (*RegistryReference) DeepCopyInto

func (in *RegistryReference) DeepCopyInto(out *RegistryReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegistryReferenceConfig

type RegistryReferenceConfig struct {
	// Reference is the top level field of a reference config.
	Reference RegistryReference `json:"ref,omitempty"`
}

RegistryReferenceConfig is the struct that step references are unmarshalled into.

func (*RegistryReferenceConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryReferenceConfig.

func (*RegistryReferenceConfig) DeepCopyInto

func (in *RegistryReferenceConfig) DeepCopyInto(out *RegistryReferenceConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegistryWorkflow

type RegistryWorkflow struct {
	// As defines the name of the workflow. This is how the workflow will be referenced from a job's config.
	As string `json:"as,omitempty"`
	// Steps contains the MultiStageTestConfiguration that the workflow defines.
	Steps MultiStageTestConfiguration `json:"steps,omitempty"`
	// Documentation describes what the workflow does.
	Documentation string `json:"documentation,omitempty"`
}

RegistryWorkflow contains the MultiStageTestConfiguration, name, and documentation for a workflow.

func (*RegistryWorkflow) DeepCopy

func (in *RegistryWorkflow) DeepCopy() *RegistryWorkflow

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryWorkflow.

func (*RegistryWorkflow) DeepCopyInto

func (in *RegistryWorkflow) DeepCopyInto(out *RegistryWorkflow)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegistryWorkflowConfig

type RegistryWorkflowConfig struct {
	// Workflow is the top level field of a workflow config.
	Workflow RegistryWorkflow `json:"workflow,omitempty"`
}

RegistryWorkflowConfig is the struct that workflow references are unmarshalled into.

func (*RegistryWorkflowConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryWorkflowConfig.

func (*RegistryWorkflowConfig) DeepCopyInto

func (in *RegistryWorkflowConfig) DeepCopyInto(out *RegistryWorkflowConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Release

type Release struct {
	// Version is the minor version to search for
	Version string `json:"version"`
	// Channel is the release channel to search in
	Channel ReleaseChannel `json:"channel"`
	// Architecture is the architecture for the release.
	// Defaults to amd64.
	Architecture ReleaseArchitecture `json:"architecture,omitempty"`
}

Release describes a generally available release payload

func (*Release) DeepCopy

func (in *Release) DeepCopy() *Release

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Release.

func (*Release) DeepCopyInto

func (in *Release) DeepCopyInto(out *Release)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReleaseArchitecture

type ReleaseArchitecture string

ReleaseArchitecture describes the architecture for the product

const (
	ReleaseArchitectureAMD64   ReleaseArchitecture = "amd64"
	ReleaseArchitecturePPC64le ReleaseArchitecture = "ppc64le"
	ReleaseArchitectureS390x   ReleaseArchitecture = "s390x"
	ReleaseArchitectureARM64   ReleaseArchitecture = "arm64"
	ReleaseArchitectureMULTI   ReleaseArchitecture = "multi" //heterogeneous payload
)

type ReleaseBuildConfiguration

type ReleaseBuildConfiguration struct {
	Metadata Metadata `json:"zz_generated_metadata"`

	InputConfiguration `json:",inline"`

	// BinaryBuildCommands will create a "bin" image based on "src" that
	// contains the output of this command. This allows reuse of binary artifacts
	// across other steps. If empty, no "bin" image will be created.
	BinaryBuildCommands string `json:"binary_build_commands,omitempty"`

	// BinaryBuildCommandsList entries will create a "bin" image based on "src" that
	// contains the output of this command. This allows reuse of binary artifacts
	// across other steps. If empty, no "bin" image will be created.
	// Mutually exclusive with BinaryBuildCommands
	// DO NOT set this in the config
	BinaryBuildCommandsList []RefCommands `json:"binary_build_commands_list,omitempty"`

	// TestBinaryBuildCommands will create a "test-bin" image based on "src" that
	// contains the output of this command. This allows reuse of binary artifacts
	// across other steps. If empty, no "test-bin" image will be created.
	TestBinaryBuildCommands string `json:"test_binary_build_commands,omitempty"`

	// TestBinaryBuildCommandsList entries will create a "test-bin" image based on "src" that
	// contains the output of this command. This allows reuse of binary artifacts
	// across other steps. If empty, no "test-bin" image will be created.
	// Mutually exclusive with TestBinaryBuildCommands
	// DO NOT set this in the config
	TestBinaryBuildCommandsList []RefCommands `json:"test_binary_build_commands_list,omitempty"`

	// RpmBuildCommands will create an "rpms" image from "bin" (or "src", if no
	// binary build commands were specified) that contains the output of this
	// command. The created RPMs will then be served via HTTP to the "base" image
	// via an injected rpm.repo in the standard location at /etc/yum.repos.d.
	RpmBuildCommands string `json:"rpm_build_commands,omitempty"`

	// RpmBuildCommandsList entries will create an "rpms" image from "bin" (or "src", if no
	// binary build commands were specified) that contains the output of this
	// command. The created RPMs will then be served via HTTP to the "base" image
	// via an injected rpm.repo in the standard location at /etc/yum.repos.d.
	// Mutually exclusive with RpmBuildCommands
	// DO NOT set this in the config
	RpmBuildCommandsList []RefCommands `json:"rpm_build_commands_list,omitempty"`

	// RpmBuildLocation is where RPms are deposited after being built. If
	// unset, this will default under the repository root to
	// _output/local/releases/rpms/.
	RpmBuildLocation string `json:"rpm_build_location,omitempty"`

	// RpmBuildLocationList entries are where RPms are deposited after being built. If
	// unset, this will default under the repository root to
	// _output/local/releases/rpms/.
	// Mutually exclusive with RpmBuildLocation
	// DO NOT set this in the config
	RpmBuildLocationList []RefLocation `json:"rpm_build_location_list,omitempty"`

	// CanonicalGoRepository is a directory path that represents
	// the desired location of the contents of this repository in
	// Go. If specified the location of the repository we are
	// cloning from is ignored.
	CanonicalGoRepository *string `json:"canonical_go_repository,omitempty"`

	// CanonicalGoRepositoryList is a directory path that represents
	// the desired location of the contents of this repository in
	// Go. If specified the location of the repository we are
	// cloning from is ignored.
	// Mutually exclusive with CanonicalGoRepository
	// DO NOT set this in the config
	CanonicalGoRepositoryList []RefRepository `json:"canonical_go_repository_list,omitempty"`

	// Images describes the images that are built
	// baseImage the project as part of the release
	// process. The name of each image is its "to" value
	// and can be used to build only a specific image.
	Images []ProjectDirectoryImageBuildStepConfiguration `json:"images,omitempty"`

	// Operator describes the operator bundle(s) that is built by the project
	Operator *OperatorStepConfiguration `json:"operator,omitempty"`

	// Tests describes the tests to run inside of built images.
	// The images launched as pods but have no explicit access to
	// the cluster they are running on.
	Tests []TestStepConfiguration `json:"tests,omitempty"`

	// RawSteps are literal Steps that should be
	// included in the final pipeline.
	RawSteps []StepConfiguration `json:"raw_steps,omitempty"`

	// PromotionConfiguration determines how images are promoted
	// by this command. It is ignored unless promotion has specifically
	// been requested. Promotion is performed after all other steps
	// have been completed so that tests can be run prior to promotion.
	// If no promotion is defined, it is defaulted from the ReleaseTagConfiguration.
	PromotionConfiguration *PromotionConfiguration `json:"promotion,omitempty"`

	// Resources is a set of resource requests or limits over the
	// input types. The special name '*' may be used to set default
	// requests and limits.
	Resources ResourceConfiguration `json:"resources,omitempty"`
}

ReleaseBuildConfiguration describes how release artifacts are built from a repository of source code. The configuration is made up of two parts:

  • minimal fields that allow the user to buy into our normal conventions without worrying about how the pipeline flows. Use these preferentially for new projects with simple/conventional build configurations.
  • raw steps that can be used to create custom and fine-grained build flows

func (ReleaseBuildConfiguration) BuildsImage

func (config ReleaseBuildConfiguration) BuildsImage(name string) bool

BuildsImage checks if an image is built by the release configuration.

func (*ReleaseBuildConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReleaseBuildConfiguration.

func (*ReleaseBuildConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ReleaseBuildConfiguration) Default

func (config *ReleaseBuildConfiguration) Default()

Default sets default values after loading but before validation

func (*ReleaseBuildConfiguration) DependencyParts

func (config *ReleaseBuildConfiguration) DependencyParts(dependency StepDependency, claimRelease *ClaimRelease) (stream string, name string, explicit bool)

DependencyParts returns the imageStream and tag name from a user-provided reference to an image in the test namespace. In situations where a user defines a cluster claim and wants to import the cluster claim's release, the user may provide a release name that conflicts with a release defined at the global config level (e.g. the `latest` release, or `stable` imagestream). To prevent conflicts, the name of the imagestream is modified based on the test name. ClaimRelease is used in this function to identify whether to override the imagestream provided by the user to use the cluster claim's imagestream.

func (ReleaseBuildConfiguration) DeterminePathAlias

func (config ReleaseBuildConfiguration) DeterminePathAlias(org, repo string) string

DeterminePathAlias searches through the CanonicalGoRepositoryList to find the matching alias for the provided org and repo. If not found, it returns the CanonicalGoRepository if one is configured

func (*ReleaseBuildConfiguration) ImageStreamFor

func (config *ReleaseBuildConfiguration) ImageStreamFor(image string) (string, bool)

ImageStreamFor guesses at the ImageStream that will hold a tag. We use this to decipher the user's intent when they provide a naked tag in configuration; we support such behavior in order to allow users a simpler workflow for the most common cases, like referring to `pipeline:src`. If they refer to an ambiguous image, however, they will get bad behavior and will need to specify an ImageStream as well, for instance release-initial:installer. We also return whether the stream is explicit or inferred.

func (ReleaseBuildConfiguration) IsBaseImage

func (config ReleaseBuildConfiguration) IsBaseImage(name string) bool

IsBaseImage checks if `name` will be a tag in the pipeline image stream by virtue of being imported as a base image

func (ReleaseBuildConfiguration) IsBundleImage

func (config ReleaseBuildConfiguration) IsBundleImage(imageName string) bool

func (ReleaseBuildConfiguration) IsPipelineImage

func (config ReleaseBuildConfiguration) IsPipelineImage(name string) bool

IsPipelineImage checks if `name` will be a tag in the pipeline image stream.

func (*ReleaseBuildConfiguration) WithPresubmitFrom

func (config *ReleaseBuildConfiguration) WithPresubmitFrom(source *ReleaseBuildConfiguration, test string) (*ReleaseBuildConfiguration, error)

WithPresubmitFrom returns a new configuration, where a selected test from the source configuration is injected into the base configuration, together with all elements from the source configuration that are potentially necessary to allow that test to function in the context of the base configuration. The intended use case is to inject the test definition of a "release job" (informing/blocking) into a component ci-operator config to allow dynamically executing any such job on any component PR, without the need to clutter each individual component ci-operator config.

WARNING: This code is currently experimental and should not be used outside of the "release jobs on PRs" effort TODO: handle the presubmit/periodic better, extract code etc.

type ReleaseChannel

type ReleaseChannel string
const (
	ReleaseChannelStable    ReleaseChannel = "stable"
	ReleaseChannelFast      ReleaseChannel = "fast"
	ReleaseChannelCandidate ReleaseChannel = "candidate"

	// CIOperatorInrepoConfigFileName is the name of the file that contains the build root images
	// pullspec.
	CIOperatorInrepoConfigFileName = ".ci-operator.yaml"
)

type ReleaseConfiguration

type ReleaseConfiguration struct {
	Name              string `json:"name"`
	UnresolvedRelease `json:",inline"`
}

ReleaseConfiguration records a resolved release with its name. We always expect this step to be preempted with an env var that was set at startup. This will be cleaner when we refactor release dependencies.

func (*ReleaseConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReleaseConfiguration.

func (*ReleaseConfiguration) DeepCopyInto

func (in *ReleaseConfiguration) DeepCopyInto(out *ReleaseConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ReleaseConfiguration) TargetName

func (config ReleaseConfiguration) TargetName() string

type ReleaseDescriptor

type ReleaseDescriptor struct {
	// Product is the name of the product being released
	Product ReleaseProduct `json:"product"`
	// Architecture is the architecture for the product.
	// Defaults to amd64.
	Architecture ReleaseArchitecture `json:"architecture,omitempty"`
	// Relative optionally specifies how old of a release
	// is requested from this stream. For instance, a value
	// of 1 will resolve to the previous validated release
	// for this stream.
	Relative int `json:"relative,omitempty"`
}

ReleaseDescriptor holds common data for different types of release payloads

func (*ReleaseDescriptor) DeepCopy

func (in *ReleaseDescriptor) DeepCopy() *ReleaseDescriptor

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReleaseDescriptor.

func (*ReleaseDescriptor) DeepCopyInto

func (in *ReleaseDescriptor) DeepCopyInto(out *ReleaseDescriptor)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReleaseProduct

type ReleaseProduct string

ReleaseProduct describes the product being released

const (
	ReleaseProductOCP ReleaseProduct = "ocp"
	ReleaseProductOKD ReleaseProduct = "okd"
)

type ReleaseStream

type ReleaseStream string
const (
	ReleaseStreamCI      ReleaseStream = "ci"
	ReleaseStreamNightly ReleaseStream = "nightly"
	ReleaseStreamOKD     ReleaseStream = "okd"
	ReleaseStreamOKDScos ReleaseStream = "okd-scos"
)

type ReleaseTagConfiguration

type ReleaseTagConfiguration struct {
	// Namespace identifies the namespace from which
	// all release artifacts not built in the current
	// job are tagged from.
	Namespace string `json:"namespace"`

	// Name is the image stream name to use that contains all
	// component tags.
	Name string `json:"name"`

	// IncludeBuiltImages determines if the release we assemble will include
	// images built during the test itself.
	IncludeBuiltImages bool `json:"include_built_images,omitempty"`
}

ReleaseTagConfiguration describes how a release is assembled from release artifacts. A release image stream is a single stream with multiple tags (openshift/origin-v3.9:control-plane), each tag being a unique and well defined name for a component.

func (*ReleaseTagConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReleaseTagConfiguration.

func (*ReleaseTagConfiguration) DeepCopyInto

func (in *ReleaseTagConfiguration) DeepCopyInto(out *ReleaseTagConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ReleaseTagConfiguration) InputsName

func (config ReleaseTagConfiguration) InputsName() string

func (ReleaseTagConfiguration) TargetName

func (config ReleaseTagConfiguration) TargetName(name string) string

type ResourceConfiguration

type ResourceConfiguration map[string]ResourceRequirements

ResourceConfiguration defines resource overrides for jobs run by the operator.

func (ResourceConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceConfiguration.

func (ResourceConfiguration) DeepCopyInto

func (in ResourceConfiguration) DeepCopyInto(out *ResourceConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ResourceConfiguration) RequirementsForStep

func (c ResourceConfiguration) RequirementsForStep(name string) ResourceRequirements

type ResourceList

type ResourceList map[string]string

ResourceList is a map of string resource names and resource quantities, as defined on Kubernetes objects. Common resources to request or limit are `cpu` and `memory`. For `cpu`, values are provided in vCPUs - for instance, `2` or `200m`. For `memory`, values are provided in bytes - for instance, `20Mi` or `3Gi`.

func (ResourceList) Add

func (l ResourceList) Add(values ResourceList)

func (ResourceList) DeepCopy

func (in ResourceList) DeepCopy() ResourceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceList.

func (ResourceList) DeepCopyInto

func (in ResourceList) DeepCopyInto(out *ResourceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceRequirements

type ResourceRequirements struct {
	// Requests are resource requests applied to an individual step in the job.
	// These are directly used in creating the Pods that execute the Job.
	Requests ResourceList `json:"requests,omitempty"`
	// Limits are resource limits applied to an individual step in the job.
	// These are directly used in creating the Pods that execute the Job.
	Limits ResourceList `json:"limits,omitempty"`
}

ResourceRequirements are resource requests and limits applied to the individual steps in the job. They are passed directly to builds or pods.

func (*ResourceRequirements) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRequirements.

func (*ResourceRequirements) DeepCopyInto

func (in *ResourceRequirements) DeepCopyInto(out *ResourceRequirements)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Secret

type Secret struct {
	// Secret name, used inside test containers
	Name string `json:"name"`
	// Secret mount path. Defaults to /usr/test-secrets for first
	// secret. /usr/test-secrets-2 for second, and so on.
	MountPath string `json:"mount_path"`
}

Secret describes a secret to be mounted inside a test container.

func (*Secret) DeepCopy

func (in *Secret) DeepCopy() *Secret

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Secret.

func (*Secret) DeepCopyInto

func (in *Secret) DeepCopyInto(out *Secret)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Service

type Service string
const (
	ServiceBoskos     Service = "boskos-ci"
	ServiceRegistry   Service = "registry"
	ServiceRPMs       Service = "artifacts-rpms-openshift-origin-ci-rpms"
	ServiceProw       Service = "prow"
	ServiceConfig     Service = "config"
	ServiceGCSWeb     Service = "gcsweb-ci"
	ServiceGCSStorage Service = "storage"
)

type SourceStepConfiguration

type SourceStepConfiguration struct {
	From PipelineImageStreamTagReference `json:"from"`
	To   PipelineImageStreamTagReference `json:"to,omitempty"`

	// ClonerefsImage is the image where we get the clonerefs tool
	ClonerefsImage ImageStreamTagReference `json:"clonerefs_image"`
	// ClonerefsPath is the path in the above image where the
	// clonerefs tool is placed
	ClonerefsPath string `json:"clonerefs_path"`

	// Ref is an optional string linking to the extra_ref in "org.repo" format that this belongs to
	Ref string `json:"ref,omitempty"`
}

SourceStepConfiguration describes a step that clones the source repositories required for jobs. If no output tag is provided, the default of `src` is used.

func (*SourceStepConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceStepConfiguration.

func (*SourceStepConfiguration) DeepCopyInto

func (in *SourceStepConfiguration) DeepCopyInto(out *SourceStepConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (SourceStepConfiguration) TargetName

func (config SourceStepConfiguration) TargetName() string

type Step

type Step interface {
	CommonStep
}

Step holds a common step +k8s:deepcopy-gen=false

type StepConfiguration

type StepConfiguration struct {
	InputImageTagStepConfiguration              *InputImageTagStepConfiguration              `json:"input_image_tag_step,omitempty"`
	PipelineImageCacheStepConfiguration         *PipelineImageCacheStepConfiguration         `json:"pipeline_image_cache_step,omitempty"`
	SourceStepConfiguration                     *SourceStepConfiguration                     `json:"source_step,omitempty"`
	BundleSourceStepConfiguration               *BundleSourceStepConfiguration               `json:"bundle_source_step,omitempty"`
	IndexGeneratorStepConfiguration             *IndexGeneratorStepConfiguration             `json:"index_generator_step,omitempty"`
	ProjectDirectoryImageBuildStepConfiguration *ProjectDirectoryImageBuildStepConfiguration `json:"project_directory_image_build_step,omitempty"`
	RPMImageInjectionStepConfiguration          *RPMImageInjectionStepConfiguration          `json:"rpm_image_injection_step,omitempty"`
	RPMServeStepConfiguration                   *RPMServeStepConfiguration                   `json:"rpm_serve_step,omitempty"`
	OutputImageTagStepConfiguration             *OutputImageTagStepConfiguration             `json:"output_image_tag_step,omitempty"`
	ReleaseImagesTagStepConfiguration           *ReleaseTagConfiguration                     `json:"release_images_tag_step,omitempty"`
	ResolvedReleaseImagesStepConfiguration      *ReleaseConfiguration                        `json:"resolved_release_images_step,omitempty"`
	TestStepConfiguration                       *TestStepConfiguration                       `json:"test_step,omitempty"`
	ProjectDirectoryImageBuildInputs            *ProjectDirectoryImageBuildInputs            `json:"project_directory_image_build_inputs,omitempty"`
}

StepConfiguration holds one step configuration. Only one of the fields in this can be non-null.

func (*StepConfiguration) DeepCopy

func (in *StepConfiguration) DeepCopy() *StepConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepConfiguration.

func (*StepConfiguration) DeepCopyInto

func (in *StepConfiguration) DeepCopyInto(out *StepConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StepDNSConfig

type StepDNSConfig struct {
	// Nameservers is a list of IP addresses that will be used as DNS servers for the Pod
	Nameservers []string `json:"nameservers,omitempty"`
	// Searches is a list of DNS search domains for host-name lookup
	Searches []string `json:"searches,omitempty"`
}

StepDNSConfig defines a resource that needs to be acquired prior to execution. Used to expose to the step via the specificed search list

func (*StepDNSConfig) DeepCopy

func (in *StepDNSConfig) DeepCopy() *StepDNSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepDNSConfig.

func (*StepDNSConfig) DeepCopyInto

func (in *StepDNSConfig) DeepCopyInto(out *StepDNSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StepDependency

type StepDependency struct {
	// Name is the tag or stream:tag that this dependency references
	Name string `json:"name"`
	// Env is the environment variable that the image's pull spec is exposed with
	Env string `json:"env"`
	// PullSpec allows the ci-operator user to pass in an external pull-spec that should be used when resolving the dependency
	PullSpec string `json:"-"`
}

StepDependency defines a dependency on an image and the environment variable used to expose the image's pull spec to the step.

func (*StepDependency) DeepCopy

func (in *StepDependency) DeepCopy() *StepDependency

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepDependency.

func (*StepDependency) DeepCopyInto

func (in *StepDependency) DeepCopyInto(out *StepDependency)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StepGraph

type StepGraph []*StepNode

+k8s:deepcopy-gen=false StepGraph is a DAG of steps referenced by its roots

func BuildGraph

func BuildGraph(steps []Step) StepGraph

BuildGraph returns a graph or graphs that include all steps given.

func BuildPartialGraph

func BuildPartialGraph(steps []Step, names []string) (StepGraph, error)

BuildPartialGraph returns a graph or graphs that include only the dependencies of the named steps.

func (StepGraph) IterateAllEdges

func (g StepGraph) IterateAllEdges(f func(*StepNode))

IterateAllEdges applies an operation to every node in the graph once.

func (StepGraph) TopologicalSort

func (g StepGraph) TopologicalSort() (OrderedStepList, []error)

TopologicalSort validates nodes form a DAG and orders them topologically.

type StepLease

type StepLease struct {
	// ResourceType is the type of resource that will be leased.
	ResourceType string `json:"resource_type"`
	// Env is the environment variable that will contain the resource name.
	Env string `json:"env"`
	// Count is the number of resources to acquire (optional, defaults to 1).
	Count uint `json:"count,omitempty"`
}

StepLease defines a resource that needs to be acquired prior to execution. The resource name will be exposed to the step via the specificed environment variable.

func IPPoolLeaseForTest

func IPPoolLeaseForTest(s *MultiStageTestConfigurationLiteral, metadata Metadata) (ret StepLease)

func LeasesForTest

func LeasesForTest(s *MultiStageTestConfigurationLiteral) (ret []StepLease)

LeasesForTest aggregates all the lease configurations in a test. It is assumed that they have been validated and contain only valid and unique values.

func (*StepLease) DeepCopy

func (in *StepLease) DeepCopy() *StepLease

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepLease.

func (*StepLease) DeepCopyInto

func (in *StepLease) DeepCopyInto(out *StepLease)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StepLink interface {
	// SatisfiedBy determines if the other link satisfies
	// the requirements of this one, either partially or
	// fully. If so, the other step will be executed first.
	SatisfiedBy(other StepLink) bool
	// UnsatisfiableError returns a human-understandable explanation
	// of where exactly in the config the requirement came from and
	// what needs to be done to satisfy it. It must be checked for
	// emptyness and only be used when non-empty.
	UnsatisfiableError() string
}

StepLink abstracts the types of links that steps require and create. +k8s:deepcopy-gen=false

func AllStepsLink() StepLink
func ExternalImageLink(ref ImageStreamTagReference) StepLink
func ImagesReadyLink() StepLink
func InternalImageLink(tag PipelineImageStreamTagReference, o ...StepLinkOption) StepLink

InternalImageLink describes a dependency on a tag in the pipeline stream

func LinkForImage

func LinkForImage(imageStream, tag string) StepLink

LinkForImage determines what dependent link is required for the user's image dependency

func RPMRepoLink() StepLink
func ReleaseImageTagLink(name, tag string) StepLink

ReleaseImageTagLink describes a specific tag in a stable(-foo)? ImageStream in the test namespace.

func ReleaseImagesLink(name string) StepLink

ReleaseImagesLink describes the content of a stable(-foo)? ImageStream in the test namespace.

func ReleasePayloadImageLink(tag string) StepLink

type StepLinkOption

type StepLinkOption func(*StepLinkOptions)

+k8s:deepcopy-gen=false

func StepLinkWithUnsatisfiableErrorMessage

func StepLinkWithUnsatisfiableErrorMessage(msg string) StepLinkOption

type StepLinkOptions

type StepLinkOptions struct {
	// UnsatisfiableError holds a human-understandable explanation
	// of where exactly in the config the requirement came from and
	// what needs to be done to satisfy it.
	UnsatisfiableError string
}

func (*StepLinkOptions) DeepCopy

func (in *StepLinkOptions) DeepCopy() *StepLinkOptions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepLinkOptions.

func (*StepLinkOptions) DeepCopyInto

func (in *StepLinkOptions) DeepCopyInto(out *StepLinkOptions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StepNode

type StepNode struct {
	Step             Step
	Children         []*StepNode
	MultiArchReasons map[string]sets.Set[string]
}

+k8s:deepcopy-gen=false

type StepParameter

type StepParameter struct {
	// Name of the environment variable.
	Name string `json:"name"`
	// Default if not set, optional, makes the parameter not required if set.
	Default *string `json:"default,omitempty"`
	// Documentation is a textual description of the parameter.
	Documentation string `json:"documentation,omitempty"`
}

StepParameter is a variable set by the test, with an optional default.

func (*StepParameter) DeepCopy

func (in *StepParameter) DeepCopy() *StepParameter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepParameter.

func (*StepParameter) DeepCopyInto

func (in *StepParameter) DeepCopyInto(out *StepParameter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TestDependencies

type TestDependencies map[string]string

TestDependencies has the values of dependency overrides for multi-stage tests.

func (TestDependencies) DeepCopy

func (in TestDependencies) DeepCopy() TestDependencies

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestDependencies.

func (TestDependencies) DeepCopyInto

func (in TestDependencies) DeepCopyInto(out *TestDependencies)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TestEnvironment

type TestEnvironment map[string]string

TestEnvironment has the values of parameters for multi-stage tests.

func (TestEnvironment) DeepCopy

func (in TestEnvironment) DeepCopy() TestEnvironment

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestEnvironment.

func (TestEnvironment) DeepCopyInto

func (in TestEnvironment) DeepCopyInto(out *TestEnvironment)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TestStep

type TestStep struct {
	// LiteralTestStep is a full test step definition.
	*LiteralTestStep `json:",inline,omitempty"`
	// Reference is the name of a step reference.
	Reference *string `json:"ref,omitempty"`
	// Chain is the name of a step chain reference.
	Chain *string `json:"chain,omitempty"`
}

TestStep is the struct that a user's configuration gets unmarshalled into. It can contain either a LiteralTestStep, Reference, or Chain. If more than one is filled in an the same time, config validation will fail.

func (*TestStep) DeepCopy

func (in *TestStep) DeepCopy() *TestStep

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestStep.

func (*TestStep) DeepCopyInto

func (in *TestStep) DeepCopyInto(out *TestStep)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TestStepConfiguration

type TestStepConfiguration struct {
	// As is the name of the test.
	As string `json:"as"`
	// Commands are the shell commands to run in
	// the repository root to execute tests.
	Commands string `json:"commands,omitempty"`

	// Cluster specifies the name of the cluster where the test runs.
	Cluster Cluster `json:"cluster,omitempty"`

	// Secret is an optional secret object which
	// will be mounted inside the test container.
	// You cannot set the Secret and Secrets attributes
	// at the same time.
	Secret *Secret `json:"secret,omitempty"`

	// Secrets is an optional array of secret objects
	// which will be mounted inside the test container.
	// You cannot set the Secret and Secrets attributes
	// at the same time.
	Secrets []*Secret `json:"secrets,omitempty"`

	// Cron is how often the test is expected to run outside
	// of pull request workflows. Setting this field will
	// create a periodic job instead of a presubmit
	Cron *string `json:"cron,omitempty"`

	// Presubmit configures prowgen to generate a presubmit job in additional to the periodic job.
	// It can be used only when the test itself is a periodic job.
	Presubmit bool `json:"presubmit,omitempty"`

	// Interval is how frequently the test should be run based
	// on the last time the test ran. Setting this field will
	// create a periodic job instead of a presubmit
	Interval *string `json:"interval,omitempty"`

	// MinimumInterval to wait between two runs of the job. Consecutive
	// jobs are run at `minimum_interval` + `duration of previous job`
	// apart. Setting this field will create a periodic job instead of a
	// presubmit
	MinimumInterval *string `json:"minimum_interval,omitempty"`

	// ReleaseController configures prowgen to create a periodic that
	// does not get run by prow and instead is run by release-controller.
	// The job must be configured as a verification or periodic job in a
	// release-controller config file when this field is set to `true`.
	ReleaseController bool `json:"release_controller,omitempty"`

	// Postsubmit configures prowgen to generate the job as a postsubmit rather than a presubmit
	Postsubmit bool `json:"postsubmit,omitempty"`

	// ClusterClaim claims an OpenShift cluster and exposes environment variable ${KUBECONFIG} to the test container
	ClusterClaim *ClusterClaim `json:"cluster_claim,omitempty"`

	// AlwaysRun can be set to false to disable running the job on every PR
	AlwaysRun *bool `json:"always_run,omitempty"`

	// RunIfChanged is a regex that will result in the test only running if something that matches it was changed.
	RunIfChanged string `json:"run_if_changed,omitempty"`

	// PipelineRunIfChanged is a regex that will result in the test only running in second
	// stage of the pipeline run if something that matches it was changed.
	PipelineRunIfChanged string `json:"pipeline_run_if_changed,omitempty"`

	// Optional indicates that the job's status context, that is generated from the corresponding test, should not be required for merge.
	Optional bool `json:"optional,omitempty"`

	// Portable allows to port periodic tests to current and future release despite the demand to skip periodics
	Portable bool `json:"portable,omitempty"`

	// SkipIfOnlyChanged is a regex that will result in the test being skipped if all changed files match that regex.
	SkipIfOnlyChanged string `json:"skip_if_only_changed,omitempty"`

	// Timeout overrides maximum prowjob duration
	Timeout *prowv1.Duration `json:"timeout,omitempty"`

	// NodeArchitecture is the architecture for the node where the test will run.
	// If set, the generated test pod will include a nodeSelector for this architecture.
	NodeArchitecture NodeArchitecture `json:"node_architecture,omitempty"`

	// RestrictNetworkAccess restricts network access to RedHat intranet.
	RestrictNetworkAccess *bool `json:"restrict_network_access,omitempty"`

	// Only one of the following can be not-null.
	ContainerTestConfiguration                                *ContainerTestConfiguration                                `json:"container,omitempty"`
	MultiStageTestConfiguration                               *MultiStageTestConfiguration                               `json:"steps,omitempty"`
	MultiStageTestConfigurationLiteral                        *MultiStageTestConfigurationLiteral                        `json:"literal_steps,omitempty"`
	OpenshiftAnsibleClusterTestConfiguration                  *OpenshiftAnsibleClusterTestConfiguration                  `json:"openshift_ansible,omitempty"`
	OpenshiftAnsibleSrcClusterTestConfiguration               *OpenshiftAnsibleSrcClusterTestConfiguration               `json:"openshift_ansible_src,omitempty"`
	OpenshiftAnsibleCustomClusterTestConfiguration            *OpenshiftAnsibleCustomClusterTestConfiguration            `json:"openshift_ansible_custom,omitempty"`
	OpenshiftInstallerClusterTestConfiguration                *OpenshiftInstallerClusterTestConfiguration                `json:"openshift_installer,omitempty"`
	OpenshiftInstallerUPIClusterTestConfiguration             *OpenshiftInstallerUPIClusterTestConfiguration             `json:"openshift_installer_upi,omitempty"`
	OpenshiftInstallerUPISrcClusterTestConfiguration          *OpenshiftInstallerUPISrcClusterTestConfiguration          `json:"openshift_installer_upi_src,omitempty"`
	OpenshiftInstallerCustomTestImageClusterTestConfiguration *OpenshiftInstallerCustomTestImageClusterTestConfiguration `json:"openshift_installer_custom_test_image,omitempty"`
}

TestStepConfiguration describes a step that runs a command in one of the previously built images and then gathers artifacts from that step.

func (*TestStepConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestStepConfiguration.

func (*TestStepConfiguration) DeepCopyInto

func (in *TestStepConfiguration) DeepCopyInto(out *TestStepConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (TestStepConfiguration) GetClusterProfileName

func (config TestStepConfiguration) GetClusterProfileName() string

GetClusterProfileName returns the cluster profile name if it's set

func (TestStepConfiguration) IsPeriodic

func (config TestStepConfiguration) IsPeriodic() bool

func (TestStepConfiguration) TargetName

func (config TestStepConfiguration) TargetName() string

type UnresolvedRelease

type UnresolvedRelease struct {
	// Integration describes an integration stream which we can create a payload out of
	Integration *Integration `json:"integration,omitempty"`
	// Candidate describes a candidate release payload
	Candidate *Candidate `json:"candidate,omitempty"`
	// Prerelease describes a yet-to-be released payload
	Prerelease *Prerelease `json:"prerelease,omitempty"`
	// Release describes a released payload
	Release *Release `json:"release,omitempty"`
}

UnresolvedRelease describes a semantic release payload identifier we need to resolve to a pull spec.

func (*UnresolvedRelease) DeepCopy

func (in *UnresolvedRelease) DeepCopy() *UnresolvedRelease

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnresolvedRelease.

func (*UnresolvedRelease) DeepCopyInto

func (in *UnresolvedRelease) DeepCopyInto(out *UnresolvedRelease)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VersionBounds

type VersionBounds struct {
	Lower string `json:"lower"`
	Upper string `json:"upper"`
	// Stream dictates which stream to search for a version within the specified bounds
	// defaults to 4-stable.
	Stream string `json:"stream,omitempty"`
}

VersionBounds describe the upper and lower bounds and stream on a version search

func BoundsFromQuery

func BoundsFromQuery(query string) (*VersionBounds, error)

func (*VersionBounds) DeepCopy

func (in *VersionBounds) DeepCopy() *VersionBounds

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionBounds.

func (*VersionBounds) DeepCopyInto

func (in *VersionBounds) DeepCopyInto(out *VersionBounds)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*VersionBounds) Query

func (b *VersionBounds) Query() string

Directories

Path Synopsis
multiarchbuildconfig
v1
+groupName=ci.openshift.io
+groupName=ci.openshift.io
pullrequestpayloadqualification
v1
+groupName=ci.openshift.io
+groupName=ci.openshift.io
sippy
v1
testimagestreamtagimport
v1
+groupName=ci.openshift.io
+groupName=ci.openshift.io

Jump to

Keyboard shortcuts

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