suiteutils

package
v1.5.10-test Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2026 License: Apache-2.0 Imports: 52 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GiteaClusterURL        = "http://gitea.gitea.svc.cluster.local:3000/porch/"
	GiteaUser              = "porch"
	GiteaPassword          = "secret"
	PorchTestRepoName      = "porch-test"
	TestBlueprintsRepoName = "test-blueprints"
	GiteaRepoAPi           = "http://localhost:3000/api/v1/repos/porch/" + PorchTestRepoName
)
View Source
const (
	// TODO: accept a flag?
	PorchTestConfigFile = "porch-test-config.yaml"
)
View Source
const (
	TestGitServerImage = "test-git-server"
)

Variables

View Source
var (
	PackageRevisionGVK = porchapi.SchemeGroupVersion.WithKind("PackageRevision")
)

Functions

func DebugFormat

func DebugFormat(obj client.Object) string

func InferGitServerImage

func InferGitServerImage(porchImage string) string

func IsPorchTestRepo

func IsPorchTestRepo(repo string) bool

IsPorchTestRepo checks if a repository URL is specifically the porch-test repository

func RunInParallel

func RunInParallel(functions ...func() any) []any

func SplitContainerFullName

func SplitContainerFullName(fullName string) (repo, image, tag string)

Types

type ErrorHandler

type ErrorHandler func(format string, args ...interface{})

type GitConfig

type GitConfig struct {
	Repo      string   `json:"repo"`
	Branch    string   `json:"branch"`
	Directory string   `json:"directory"`
	Username  string   `json:"username"`
	Password  Password `json:"password"`
}

type MetricsCollectionResults

type MetricsCollectionResults struct {
	PorchServerMetrics         string
	PorchControllerMetrics     string
	PorchFunctionRunnerMetrics string
	PorchWrapperServerMetrics  string
}

type MultiClusterTestSuite

type MultiClusterTestSuite struct {
	TestSuite

	PorchRoot string
	// contains filtered or unexported fields
}

func (*MultiClusterTestSuite) DropCachedClients

func (t *MultiClusterTestSuite) DropCachedClients(kubeconfigPath string)

func (*MultiClusterTestSuite) PackageRevisionCountsMustMatch

func (t *MultiClusterTestSuite) PackageRevisionCountsMustMatch(expected *PackageRevisionStatusCounts)

func (*MultiClusterTestSuite) SetupSuite

func (t *MultiClusterTestSuite) SetupSuite()

func (*MultiClusterTestSuite) UseKubeconfigFile

func (t *MultiClusterTestSuite) UseKubeconfigFile(kubeconfigPath string) error

type MutatorOption

type MutatorOption func(*kptfilev1.Function)

func WithConfigPath

func WithConfigPath(configPath string) MutatorOption

func WithConfigmap

func WithConfigmap(configMap map[string]string) MutatorOption

type PackageRevisionStatusCounts

type PackageRevisionStatusCounts struct {
	Total, Draft, Proposed, Published, DeletionProposed int
}

func (*PackageRevisionStatusCounts) String

func (c *PackageRevisionStatusCounts) String() string

type Password

type Password string

func (Password) String

func (p Password) String() string

type RepositoryOption

type RepositoryOption func(*configapi.Repository)

func InNamespace

func InNamespace(ns string) RepositoryOption

func WithBranch

func WithBranch(branch string) RepositoryOption

func WithDeployment

func WithDeployment() RepositoryOption

func WithSync

func WithSync(sync string) RepositoryOption

type RepositoryOptions

type RepositoryOptions struct {
	RepOpts RepositoryOption
	SecOpts SecretOption
}

type SecretOption

type SecretOption func(*corev1.Secret)

func SecretInNamespace

func SecretInNamespace(ns string) SecretOption

type TestSuite

type TestSuite struct {
	suite.Suite

	Kubeconfig *rest.Config
	Client     client.Client
	Reader     client.Reader

	// Strongly-typed client handy for reading e.g. pod logs
	KubeClient kubernetes.Interface

	Namespace         string // K8s namespace for this test run
	TestRunnerIsLocal bool   // Tests running against local dev porch

	UsingDBCache bool // Tests running against Porch with database cache
	// contains filtered or unexported fields
}

func (*TestSuite) AddMutator

func (t *TestSuite) AddMutator(resources *porchapi.PackageRevisionResources, image string, opts ...MutatorOption)

addMutator adds a mutator to the Kptfile pipeline of the resources (in-place)

func (*TestSuite) AddResourceToPackage

func (t *TestSuite) AddResourceToPackage(resources *porchapi.PackageRevisionResources, filePath string, name string)

func (*TestSuite) CheckRenderError

func (t *TestSuite) CheckRenderError(rs *porchapi.RenderStatus) error

func (*TestSuite) Cleanup

func (t *TestSuite) Cleanup(f func())

func (*TestSuite) CollectMetricsFromPods

func (t *TestSuite) CollectMetricsFromPods() (*MetricsCollectionResults, error)

func (*TestSuite) CompareStringYAML

func (t *TestSuite) CompareStringYAML(expectedContents string, gotContents string) string

func (*TestSuite) CountPackageRevisions

func (t *TestSuite) CountPackageRevisions() (*PackageRevisionStatusCounts, error)

func (*TestSuite) CreateE

func (t *TestSuite) CreateE(obj client.Object, opts ...client.CreateOption)

func (*TestSuite) CreateF

func (t *TestSuite) CreateF(obj client.Object, opts ...client.CreateOption)

func (*TestSuite) CreateGitRepo

func (t *TestSuite) CreateGitRepo() GitConfig

func (*TestSuite) CreateOrUpdateE

func (t *TestSuite) CreateOrUpdateE(obj client.Object, opts ...client.CreateOption)

func (*TestSuite) CreateOrUpdateF

func (t *TestSuite) CreateOrUpdateF(obj client.Object, opts ...client.CreateOption)

func (*TestSuite) CreateOrUpdateSecret

func (t *TestSuite) CreateOrUpdateSecret(name string, username string, password Password, opts ...RepositoryOptions) string

func (*TestSuite) CreatePackageCloneF

func (t *TestSuite) CreatePackageCloneF(repoName, packageName, workspace, ref, directory string) *porchapi.PackageRevision

CreatePackageCloneF creates a package revision with a clone task. Assumes the GitePackage.SecretRef was created by t.RegisterGitRepositoryF.

func (*TestSuite) CreatePackageDraftF

func (t *TestSuite) CreatePackageDraftF(repository, packageName, workspace string) *porchapi.PackageRevision

Creates an empty package draft by initializing an empty package

func (*TestSuite) CreatePackageSkeleton

func (t *TestSuite) CreatePackageSkeleton(repoName, packageName, workspace string) *porchapi.PackageRevision

func (*TestSuite) DeleteE

func (t *TestSuite) DeleteE(obj client.Object, opts ...client.DeleteOption)

func (*TestSuite) DeleteEH

func (t *TestSuite) DeleteEH(obj client.Object, eh ErrorHandler, opts ...client.DeleteOption)

DeleteEH calls delete with a custom ErrorHandler

func (*TestSuite) DeleteF

func (t *TestSuite) DeleteF(obj client.Object, opts ...client.DeleteOption)

func (*TestSuite) DeleteL

func (t *TestSuite) DeleteL(obj client.Object, opts ...client.DeleteOption)

func (*TestSuite) DumpLogsForDeploymentE

func (t *TestSuite) DumpLogsForDeploymentE(deploymentKey client.ObjectKey)

func (*TestSuite) Error

func (t *TestSuite) Error(args ...any)

func (*TestSuite) Errorf

func (t *TestSuite) Errorf(format string, args ...any)

func (*TestSuite) Fatal

func (t *TestSuite) Fatal(args ...any)

func (*TestSuite) Fatalf

func (t *TestSuite) Fatalf(format string, args ...any)

func (*TestSuite) FindAndDecodeF

func (t *TestSuite) FindAndDecodeF(resources *porchapi.PackageRevisionResources, name string, value interface{})

func (*TestSuite) FindFirstContainerByImageName

func (t *TestSuite) FindFirstContainerByImageName(ns string, wantedImages ...string) *coreapi.Container

func (*TestSuite) FnNamespaceName

func (t *TestSuite) FnNamespaceName() string

func (*TestSuite) GetContext

func (t *TestSuite) GetContext() context.Context

func (*TestSuite) GetE

func (t *TestSuite) GetE(key client.ObjectKey, obj client.Object)

func (*TestSuite) GetF

func (t *TestSuite) GetF(key client.ObjectKey, obj client.Object)

func (*TestSuite) GetPackageRevision

func (t *TestSuite) GetPackageRevision(repo string, pkgName string, revision int) *porchapi.PackageRevision

func (*TestSuite) GetPorchTestRepoURL

func (t *TestSuite) GetPorchTestRepoURL() string

GetPorchTestRepoURL returns the dynamic PorchTestRepo URL

func (*TestSuite) GetTestBlueprintsRepoURL

func (t *TestSuite) GetTestBlueprintsRepoURL() string

GetTestBlueprintsRepoURL returns the dynamic TestBlueprintsRepo URL

func (*TestSuite) Initialize

func (t *TestSuite) Initialize()

func (*TestSuite) IsPorchServerInCluster

func (t *TestSuite) IsPorchServerInCluster() bool

func (*TestSuite) IsTestRunnerInCluster

func (t *TestSuite) IsTestRunnerInCluster() bool

func (*TestSuite) ListE

func (t *TestSuite) ListE(list client.ObjectList, opts ...client.ListOption)

func (*TestSuite) ListF

func (t *TestSuite) ListF(list client.ObjectList, opts ...client.ListOption)

func (*TestSuite) Log

func (t *TestSuite) Log(args ...any)

func (*TestSuite) Logf

func (t *TestSuite) Logf(format string, args ...any)

func (*TestSuite) MustExist

func (t *TestSuite) MustExist(key client.ObjectKey, obj client.Object)

func (*TestSuite) MustFindPackageRevision

func (t *TestSuite) MustFindPackageRevision(packages *porchapi.PackageRevisionList, name repository.PackageRevisionKey) *porchapi.PackageRevision

func (*TestSuite) MustHaveLabels

func (t *TestSuite) MustHaveLabels(name string, labels map[string]string)

func (*TestSuite) MustNotExist

func (t *TestSuite) MustNotExist(obj client.Object)

func (*TestSuite) MustNotHaveLabels

func (t *TestSuite) MustNotHaveLabels(name string, labels []string)

func (*TestSuite) Name

func (t *TestSuite) Name() string

func (*TestSuite) ParseKptfileF

func (t *TestSuite) ParseKptfileF(resources *porchapi.PackageRevisionResources) *kptfilev1.KptFile

func (*TestSuite) PatchE

func (t *TestSuite) PatchE(obj client.Object, patch client.Patch, opts ...client.PatchOption)

func (*TestSuite) PatchF

func (t *TestSuite) PatchF(obj client.Object, patch client.Patch, opts ...client.PatchOption)

func (*TestSuite) PorchServerServiceKey

func (t *TestSuite) PorchServerServiceKey() client.ObjectKey

func (*TestSuite) RecreateGiteaTestRepo

func (t *TestSuite) RecreateGiteaTestRepo()

RecreateGiteaTestRepo recreates the porch-test repository to its initial state

func (*TestSuite) RegisterGitRepositoryF

func (t *TestSuite) RegisterGitRepositoryF(repo, name, directory string, username string, password Password, opts ...RepositoryOptions)

func (*TestSuite) RetriggerBackgroundJobForRepo

func (t *TestSuite) RetriggerBackgroundJobForRepo(repoName string)

func (*TestSuite) SaveKptfileF

func (t *TestSuite) SaveKptfileF(resources *porchapi.PackageRevisionResources, kptfile *kptfilev1.KptFile)

func (*TestSuite) SetupSuite

func (t *TestSuite) SetupSuite()

func (*TestSuite) Skipf

func (t *TestSuite) Skipf(format string, args ...any)

func (*TestSuite) TimingHelper

func (t *TestSuite) TimingHelper(operationDescription string, toTime func(t *TestSuite))

func (*TestSuite) UpdateApprovalE

func (t *TestSuite) UpdateApprovalE(pr *porchapi.PackageRevision) error

UpdateApprovalE returns error for concurrent testing

func (*TestSuite) UpdateApprovalF

func (t *TestSuite) UpdateApprovalF(pr *porchapi.PackageRevision) *porchapi.PackageRevision

func (*TestSuite) UpdateApprovalL

func (t *TestSuite) UpdateApprovalL(pr *porchapi.PackageRevision) *porchapi.PackageRevision

func (*TestSuite) UpdateE

func (t *TestSuite) UpdateE(obj client.Object, opts ...client.UpdateOption)

func (*TestSuite) UpdateF

func (t *TestSuite) UpdateF(obj client.Object, opts ...client.UpdateOption)

func (*TestSuite) ValidateFinalizers

func (t *TestSuite) ValidateFinalizers(name string, finalizers []string)

func (*TestSuite) ValidateLabelsAndAnnos

func (t *TestSuite) ValidateLabelsAndAnnos(name string, labels, annos map[string]string)

func (*TestSuite) ValidateOwnerReferences

func (t *TestSuite) ValidateOwnerReferences(name string, ownerRefs []metav1.OwnerReference)

func (*TestSuite) WaitUntilAllPackageRevisionsDeleted

func (t *TestSuite) WaitUntilAllPackageRevisionsDeleted(repoName string, namespace string)

func (*TestSuite) WaitUntilAllPackageRevsDeleted

func (t *TestSuite) WaitUntilAllPackageRevsDeleted(repoName string, namespace string)

func (*TestSuite) WaitUntilAllPackageVariantsReady

func (t *TestSuite) WaitUntilAllPackageVariantsReady()

func (*TestSuite) WaitUntilAllPackagesDeleted

func (t *TestSuite) WaitUntilAllPackagesDeleted(repoName string, namespace string)

func (*TestSuite) WaitUntilMultipleRepositoriesReady

func (t *TestSuite) WaitUntilMultipleRepositoriesReady(waitingRepos []configapi.Repository)

func (*TestSuite) WaitUntilObjectDeleted

func (t *TestSuite) WaitUntilObjectDeleted(gvk schema.GroupVersionKind, namespacedName types.NamespacedName, d time.Duration)

func (*TestSuite) WaitUntilPackageRevisionExists

func (t *TestSuite) WaitUntilPackageRevisionExists(repository string, pkgName string, revision int) *porchapi.PackageRevision

func (*TestSuite) WaitUntilPackageRevisionFulfillingConditionExists

func (t *TestSuite) WaitUntilPackageRevisionFulfillingConditionExists(
	timeout time.Duration,
	condition func(porchapi.PackageRevision) bool,
) (*porchapi.PackageRevision, error)

func (*TestSuite) WaitUntilPackageRevisionResourcesExists

func (t *TestSuite) WaitUntilPackageRevisionResourcesExists(
	key types.NamespacedName,
) *porchapi.PackageRevisionResources

func (*TestSuite) WaitUntilRepositoryDeleted

func (t *TestSuite) WaitUntilRepositoryDeleted(name, namespace string)

func (*TestSuite) WaitUntilRepositoryReady

func (t *TestSuite) WaitUntilRepositoryReady(name, namespace string)

WaitUntilRepositoryReady waits for up to 300 seconds for the repository with the provided name and namespace is ready, i.e. the Ready condition is true. It also queries for PackageRevisions, to ensure these are also ready - this is an artifact of the way we've implemented the aggregated apiserver, where the first fetch can sometimes be synchronous.

type TestSuiteWithGit

type TestSuiteWithGit struct {
	TestSuite

	UseGitea             bool
	KrmFunctionsRegistry string
	// contains filtered or unexported fields
}

func (*TestSuiteWithGit) AddSleepFunctionToPipeline

func (t *TestSuiteWithGit) AddSleepFunctionToPipeline(prKey client.ObjectKey, sleepDuration time.Duration) error

func (*TestSuiteWithGit) SetupEnvVars

func (t *TestSuiteWithGit) SetupEnvVars()

func (*TestSuiteWithGit) SetupSuite

func (t *TestSuiteWithGit) SetupSuite()

Jump to

Keyboard shortcuts

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