validate

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Oct 19, 2023 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Copyright The Shipwright Contributors

SPDX-License-Identifier: Apache-2.0

Index

Constants

View Source
const (
	// Secrets for validating secret references in Build objects
	Secrets = "secrets"
	// Strategies for validating strategy references in Build objects
	Strategies = "strategy"
	// SourceURL for validating the source URL in Build objects
	SourceURL = "sourceurl"
	// Sources for validating `spec.sources` entries
	Sources = "sources"
	// BuildName for validating `metadata.name` entry
	BuildName = "buildname"
	// Envs for validating `spec.env` entries
	Envs = "env"
	// OwnerReferences for validating the ownerreferences between a Build
	// and BuildRun objects
	OwnerReferences = "ownerreferences"
	// Triggers for validating the `.spec.triggers` entries
	Triggers = "triggers"
)

Variables

This section is empty.

Functions

func All added in v0.9.0

func All(ctx context.Context, validations ...BuildPath) error

All runs all given validations and exists at the first technical error

func BuildParameters added in v0.9.0

func BuildParameters(parameterDefinitions []buildv1alpha1.Parameter, buildParamValues []buildv1alpha1.ParamValue) (bool, buildv1alpha1.BuildReason, string)

BuildParameters validates that the parameter values specified in Build are suitable for what is defined in the BuildStrategy

func BuildRunFields added in v0.9.0

func BuildRunFields(buildRun *build.BuildRun) (string, string)

BuildRunFields runs field validations against a BuildRun to detect disallowed field combinations

func BuildRunParameters added in v0.9.0

func BuildRunParameters(parameterDefinitions []buildv1alpha1.Parameter, buildParamValues []buildv1alpha1.ParamValue, buildRunParamValues []buildv1alpha1.ParamValue) (bool, string, string)

BuildRunParameters validates that the parameter values specified in Build and BuildRun are suitable for what is defined in the BuildStrategy

func BuildRunVolumes added in v0.10.0

func BuildRunVolumes(strategyVolumes []buildv1alpha1.BuildStrategyVolume, buildVolumes []buildv1alpha1.BuildVolume) (bool, string, string)

BuildRunVolumes is used to validate volumes in the BuildRun object

func BuildVolumes added in v0.10.0

func BuildVolumes(strategyVolumes []buildv1alpha1.BuildStrategyVolume, buildVolumes []buildv1alpha1.BuildVolume) (bool, buildv1alpha1.BuildReason, string)

BuildVolumes is used to validate volumes in the Build object

Types

type BuildNameRef added in v0.6.0

type BuildNameRef struct {
	Build *build.Build // build instance for analysis
}

BuildNameRef contains all required fields to validate a build name

func NewBuildName added in v0.9.0

func NewBuildName(build *build.Build) *BuildNameRef

func (*BuildNameRef) ValidatePath added in v0.6.0

func (b *BuildNameRef) ValidatePath(_ context.Context) error

ValidatePath implements BuildPath interface and validates that build name is a valid label value

type BuildPath

type BuildPath interface {
	ValidatePath(ctx context.Context) error
}

BuildPath is an interface that holds a ValidatePath() function for validating different Build spec paths

func NewValidation

func NewValidation(
	validationType string,
	build *build.Build,
	client client.Client,
	scheme *runtime.Scheme,
) (BuildPath, error)

NewValidation returns a specific structure that implements BuildPath interface

type Credentials added in v0.4.0

type Credentials struct {
	Build  *build.Build
	Client client.Client
}

Credentials contains all required fields to validate a Build spec secrets definitions

func NewCredentials added in v0.9.0

func NewCredentials(client client.Client, build *build.Build) *Credentials

func (Credentials) ValidatePath added in v0.4.0

func (s Credentials) ValidatePath(ctx context.Context) error

ValidatePath implements BuildPath interface and validates that all referenced secrets under spec exists

type Env added in v0.6.0

type Env struct {
	Build *build.Build
}

Env implements the Env interface to add validations for the `build.spec.env` slice.

func NewEnv added in v0.6.0

func NewEnv(b *build.Build) *Env

NewEnv instantiates a new Env passing the build object pointer along.

func (*Env) ValidatePath added in v0.6.0

func (e *Env) ValidatePath(_ context.Context) error

ValidatePath executes the validation routine, inspecting the `build.spec.env` path, which contains a slice of corev1.EnvVar.

type OwnerRef

type OwnerRef struct {
	Build  *build.Build
	Client client.Client
	Scheme *runtime.Scheme
}

OwnerRef contains all required fields to validate a Build OwnerReference definition

func (OwnerRef) ValidatePath

func (o OwnerRef) ValidatePath(ctx context.Context) error

ValidatePath implements BuildPath interface and validates setting the ownershipReference between a Build and a BuildRun

type SourceURLRef

type SourceURLRef struct {
	Build  *build.Build
	Client client.Client
}

SourceURLRef contains all required fields to validate a Build spec source definition

func NewSourceURL added in v0.9.0

func NewSourceURL(client client.Client, build *build.Build) *SourceURLRef

func (SourceURLRef) MarkBuildStatus

func (s SourceURLRef) MarkBuildStatus(b *build.Build, reason build.BuildReason, msg string)

MarkBuildStatus updates a Build Status fields

func (SourceURLRef) ValidatePath

func (s SourceURLRef) ValidatePath(ctx context.Context) error

ValidatePath implements BuildPath interface and validates that the spec.source.url exists. This validation only applies to endpoints that do not require authentication.

type SourcesRef added in v0.5.0

type SourcesRef struct {
	Build *build.Build // build instance for analysis
}

SourcesRef implements RuntimeRef interface to add validations for `build.spec.sources` slice.

func NewSourcesRef added in v0.5.0

func NewSourcesRef(b *build.Build) *SourcesRef

NewSourcesRef instantiate a new SourcesRef passing the build object pointer along.

func (*SourcesRef) ValidatePath added in v0.5.0

func (s *SourcesRef) ValidatePath(_ context.Context) error

ValidatePath executes the validation routine, inspecting the `build.spec.sources` path, which contains a slice of BuildSource.

type Strategy added in v0.4.0

type Strategy struct {
	Build  *build.Build
	Client client.Client
}

Strategy contains all required fields to validate a Build spec strategy definition

func NewStrategies added in v0.9.0

func NewStrategies(client client.Client, build *build.Build) *Strategy

func (Strategy) ValidatePath added in v0.4.0

func (s Strategy) ValidatePath(ctx context.Context) error

ValidatePath implements BuildPath interface and validates that the referenced strategy exists. This applies to both namespaced or cluster scoped strategies

type Trigger added in v0.11.0

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

Trigger implements the interface BuildPath with the objective of applying validations against the `.spec.trigger` related attributes.

func NewTrigger added in v0.11.0

func NewTrigger(b *build.Build) *Trigger

NewTrigger instantiate Trigger validation helper.

func (*Trigger) ValidatePath added in v0.11.0

func (t *Trigger) ValidatePath(_ context.Context) error

ValidatePath validates the `.spec.trigger` path.

Jump to

Keyboard shortcuts

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