testutils

package
v0.0.0-...-f3138f8 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2024 License: Apache-2.0 Imports: 51 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KLMPodPrefix    = "klm-controller-manager"
	KLMPodContainer = "manager"
)
View Source
const (
	TestModuleCRName                   = "sample-yaml"
	TestModuleName                     = "template-operator"
	TestModuleResourceNamespace        = "template-operator-system"
	ModuleResourceName                 = "template-operator-controller-manager"
	ModuleServiceAccountName           = "template-operator-controller-manager"
	ModuleManagedCRName                = "template-operator-managed-resource"
	ModuleDeploymentNameInNewerVersion = "template-operator-v2-controller-manager"
	ModuleDeploymentNameInOlderVersion = "template-operator-v1-controller-manager"
)
View Source
const (
	RemoteNamespace       = shared.DefaultRemoteNamespace
	ControlPlaneNamespace = "kcp-system"
)
View Source
const (
	Timeout                = time.Second * 10
	ConsistentCheckTimeout = time.Second * 10
	Interval               = time.Millisecond * 250
)
View Source
const DefaultFQDN = "kyma-project.io/module/template-operator"
View Source
const (
	OCIRegistryCredLabelKeyForTest = shared.OperatorGroup + shared.Separator + "oci-registry-cred"
)

Variables

View Source
var (
	ErrDeploymentNotReady = errors.New("deployment is not ready")
	ErrDeploymentUpdating = errors.New("deployment is still updating")
)
View Source
var (
	ErrStatusModuleStateMismatch        = errors.New("status.modules.state not match")
	ErrContainsUnexpectedModules        = errors.New("kyma CR contains unexpected modules")
	ErrNotContainsExpectedModules       = errors.New("kyma CR not contains expected modules")
	ErrModuleVersionInStatusIsIncorrect = errors.New("status.modules.version is incorrect")
	ErrModuleMessageInStatusIsIncorrect = errors.New("status.modules.message is incorrect")
)
View Source
var (
	ErrPodNotFound = errors.New("could not find pod")
	ErrLogNotFound = errors.New("logMsg was not found in log")
)
View Source
var (
	ErrManifestResourceIsNil = errors.New("manifest spec.resource is nil")
	ErrManifestsExist        = errors.New("cluster contains manifest CRs")
)
View Source
var (
	ErrLabelNotFound        = errors.New("label is not found")
	ErrLabelValueNotCorrect = errors.New("label value is not as expected")
)
View Source
var (
	ErrNotFound                   = errors.New("resource does not exist")
	ErrNotDeleted                 = errors.New("resource has not been deleted")
	ErrDeletionTimestampFound     = errors.New("deletion timestamp not nil")
	ErrSampleCrNotInExpectedState = errors.New("resource not in expected state")
	ErrFetchingStatus             = errors.New("could not fetch status from resource")
)
View Source
var ErrManifestStateMisMatch = errors.New("ManifestState mismatch")
View Source
var ErrMetricNotFound = errors.New("metric was not found")
View Source
var ErrNotExpectedChannelVersion = errors.New("channel-version pair not found")
View Source
var ErrStatefulSetNotReady = errors.New("statefulset is not ready")

Functions

func AddFinalizerToManifest

func AddFinalizerToManifest(ctx context.Context, clnt client.Client, kymaName,
	kymaNamespace,
	moduleName, finalizer string,
) error

func AddFinalizerToModuleCR

func AddFinalizerToModuleCR(ctx context.Context, clnt client.Client, moduleCR *unstructured.Unstructured,
	finalizer string,
) error

func AllModuleTemplatesExists

func AllModuleTemplatesExists(ctx context.Context, clnt client.Client, kyma *v1beta2.Kyma) error

func AppendExternalCRDs

func AppendExternalCRDs(path string, files ...string) ([]*apiextensionsv1.CustomResourceDefinition, error)

func ApplyYAML

func ApplyYAML(ctx context.Context, clnt client.Client, yamlFilePath string) error

func AssertKymaStateMetricNotFound

func AssertKymaStateMetricNotFound(ctx context.Context, kymaName string, state shared.State) error

func CRExists

func CRExists(obj apimetav1.Object, clientError error) error

func CRIsInState

func CRIsInState(ctx context.Context, group, version, kind, name, namespace string, statusPath []string,
	clnt client.Client, expectedState shared.State,
) error

func CertificateSecretExists

func CertificateSecretExists(ctx context.Context, secretName types.NamespacedName, k8sClient client.Client) error

func CertificateSecretIsCreatedAfter

func CertificateSecretIsCreatedAfter(ctx context.Context,
	secretName types.NamespacedName, k8sClient client.Client, notBeforeTime *apimetav1.Time,
) error

func CertificateSecretIsSyncedToSkrCluster

func CertificateSecretIsSyncedToSkrCluster(ctx context.Context,
	kcpSecretName types.NamespacedName, kcpClient client.Client,
	skrSecretName types.NamespacedName, skrClient client.Client,
) error

func CheckManifestIsInState

func CheckManifestIsInState(
	ctx context.Context,
	kymaName, kymaNamespace, moduleName string,
	clnt client.Client,
	expectedState shared.State,
) error

func CheckModuleState

func CheckModuleState(ctx context.Context, clnt client.Client,
	kymaName, kymaNamespace, moduleName string,
	state shared.State,
) error

func CheckPodLogs

func CheckPodLogs(ctx context.Context,
	namespace, podPrefix, container, logMsg string,
	restConfig *rest.Config,
	k8sClient client.Client,
	logsSince *apimetav1.Time,
) error

func ConditionExists

func ConditionExists(ctx context.Context,
	clnt client.Client,
	kymaName,
	kymaNamespace,
	moduleName,
	expectedConditionType,
	expectedConditionReason string,
	expectedConditionStatus apimetav1.ConditionStatus,
) error

func ContainsKymaManagerField

func ContainsKymaManagerField(
	ctx context.Context, clnt client.Client,
	kymaName, kymaNamespace, managerName string,
) (bool, error)

func ContainsModuleInSpec

func ContainsModuleInSpec(ctx context.Context,
	clnt client.Client,
	kymaName, kymaNamespace,
	moduleName string,
) error

func CreateCR

func CreateCR(ctx context.Context, clnt client.Client, obj client.Object) error

func CreateImageSpecLayer

func CreateImageSpecLayer(manifestFilePath string) (containerregistryv1.Layer, error)

func CreateNamespace

func CreateNamespace(ctx context.Context, clnt client.Client, name string) error

func CreateOCIImageSpecFromFile

func CreateOCIImageSpecFromFile(name, repo, manifestFilePath string, enableCredSecretSelector bool) (v1beta2.ImageSpec,
	error,
)

func CreateOCIImageSpecFromTar

func CreateOCIImageSpecFromTar(name, repo, manifestTarPath string, enableCredSecretSelector bool) (v1beta2.ImageSpec,
	error,
)

func CredSecretLabelSelector

func CredSecretLabelSelector(labelValue string) *apimetav1.LabelSelector

func DeleteCR

func DeleteCR(ctx context.Context, clnt client.Client, obj client.Object) error

func DeleteCRWithGVK

func DeleteCRWithGVK(ctx context.Context, clnt client.Client, name, namespace, group, version, kind string) error

func DeleteCertificateSecret

func DeleteCertificateSecret(ctx context.Context, secret types.NamespacedName, k8sClient client.Client,
) error

func DeleteKyma

func DeleteKyma(ctx context.Context,
	clnt client.Client,
	kyma *v1beta2.Kyma,
	deletionPropagation apimetav1.DeletionPropagation,
) error

func DeleteKymaByForceRemovePurgeFinalizer

func DeleteKymaByForceRemovePurgeFinalizer(ctx context.Context, clnt client.Client, kyma *v1beta2.Kyma) error

func DeleteManifest

func DeleteManifest(ctx context.Context, clnt client.Client, kymaName, kymaNamespace, moduleName string) error

func DeleteManifestAndVerify

func DeleteManifestAndVerify(ctx context.Context, clnt client.Client, manifest *v1beta2.Manifest) func() error

func DeleteModule

func DeleteModule(ctx context.Context, clnt client.Client, kyma *v1beta2.Kyma, moduleName string) error

func DeleteModuleReleaseMeta

func DeleteModuleReleaseMeta(ctx context.Context, moduleName, namespace string, clnt client.Client) error

func DeleteModuleTemplate

func DeleteModuleTemplate(ctx context.Context,
	clnt client.Client, module v1beta2.Module, kymaChannel string, namespace string,
) error

func DeletionTimeStampExists

func DeletionTimeStampExists(ctx context.Context, group, version, kind, name, namespace string,
	clnt client.Client,
) (bool, error)

func DeploymentIsReady

func DeploymentIsReady(ctx context.Context, clnt client.Client, name, namespace string) error

func DisableModule

func DisableModule(ctx context.Context, clnt client.Client,
	kymaName, kymaNamespace, moduleName string,
) error

func EnableDeployment

func EnableDeployment(ctx context.Context, clnt client.Client,
	name, namespace string,
) error

func EnableModule

func EnableModule(ctx context.Context,
	clnt client.Client,
	kymaName, kymaNamespace string,
	module v1beta2.Module,
) error

func ExpectManifestLastOperationMessageContains

func ExpectManifestLastOperationMessageContains(ctx context.Context, clnt client.Client,
	manifestName, message string,
) error

func ExpectManifestStateIn

func ExpectManifestStateIn(ctx context.Context, clnt client.Client,
	state shared.State,
) func(manifestName string) error

func ExpectOCISyncRefAnnotationExists

func ExpectOCISyncRefAnnotationExists(ctx context.Context, clnt client.Client,
	mustExist bool,
) func(manifestName string) error

func FinalizerIsRemoved

func FinalizerIsRemoved(ctx context.Context, clnt client.Client, moduleCR *unstructured.Unstructured,
	finalizer string,
) error

func GetCACertificate

func GetCACertificate(ctx context.Context, namespacedCertName types.NamespacedName, k8sClient client.Client,
) (*certmanagerv1.Certificate, error)

func GetClusterRoleBindingPolicyRules

func GetClusterRoleBindingPolicyRules(ctx context.Context, clnt client.Client, roleName string,
	clusterRoleBindings apirbacv1.ClusterRoleBindingList,
) ([]apirbacv1.PolicyRule, error)

func GetDeployment

func GetDeployment(ctx context.Context, clnt client.Client,
	name, namespace string,
) (*apiappsv1.Deployment, error)

func GetKyma

func GetKyma(ctx context.Context, clnt client.Client, name, namespace string) (*v1beta2.Kyma, error)

func GetKymaStateMetricCount

func GetKymaStateMetricCount(ctx context.Context, kymaName string, state shared.State) (int, error)

func GetMandatoryModuleStateMetric

func GetMandatoryModuleStateMetric(ctx context.Context, kymaName, moduleName, state string) (int, error)

func GetMandatoryModuleTemplateCountMetric

func GetMandatoryModuleTemplateCountMetric(ctx context.Context) (int, error)

func GetManifest

func GetManifest(ctx context.Context,
	clnt client.Client,
	kymaName,
	kymaNamespace,
	moduleName string,
) (*v1beta2.Manifest, error)

GetManifest should be only used when manifest still been tracked in kyma.status.

func GetManifestResource

func GetManifestResource(ctx context.Context,
	clnt client.Client,
	kymaName,
	kymaNamespace,
	moduleName string,
) (*unstructured.Unstructured, error)

func GetManifestSpecRemote

func GetManifestSpecRemote(
	ctx context.Context,
	clnt client.Client,
	kymaName,
	kymaNamespace,
	moduleName string,
) (bool, error)

func GetManifestStatus

func GetManifestStatus(ctx context.Context, clnt client.Client, manifestName string) (shared.Status, error)

func GetManifestWithMetadata

func GetManifestWithMetadata(ctx context.Context,
	clnt client.Client, manifestNamespace, manifestName string,
) (*v1beta2.Manifest, error)

func GetManifestWithName

func GetManifestWithName(ctx context.Context, clnt client.Client, manifestName string) (*v1beta2.Manifest, error)

func GetModuleCRWarningConditionMetric

func GetModuleCRWarningConditionMetric(ctx context.Context, kymaName, moduleName string) (int, error)

func GetModuleReleaseMeta

func GetModuleReleaseMeta(ctx context.Context, moduleName, namespace string,
	clnt client.Client,
) (*v1beta2.ModuleReleaseMeta, error)

func GetModuleStateMetricCount

func GetModuleStateMetricCount(ctx context.Context, kymaName, moduleName string, state shared.State) (int, error)

func GetModuleTemplate

func GetModuleTemplate(ctx context.Context,
	clnt client.Client,
	module v1beta2.Module,
	defaultChannel string,
	namespace string,
) (*v1beta2.ModuleTemplate, error)

func GetRequeueReasonCount

func GetRequeueReasonCount(ctx context.Context,
	requeueReason, requeueType string,
) (int, error)

func GetRoleBindingRolePolicyRules

func GetRoleBindingRolePolicyRules(ctx context.Context, clnt client.Client, roleName, namespace string,
	roleBindings apirbacv1.RoleBindingList,
) ([]apirbacv1.PolicyRule, error)

func GetRoleBindingwithClusterRolePolicyRules

func GetRoleBindingwithClusterRolePolicyRules(ctx context.Context, clnt client.Client, roleName string,
	roleBindings apirbacv1.RoleBindingList,
) ([]apirbacv1.PolicyRule, error)

func GetSelfSignedCertNotRenewMetricsGauge

func GetSelfSignedCertNotRenewMetricsGauge(ctx context.Context, kymaName string) (int, error)

func GetStatefulSet

func GetStatefulSet(ctx context.Context, clnt client.Client,
	name, namespace string,
) (*apiappsv1.StatefulSet, error)

func HasExpectedLabel

func HasExpectedLabel(ctx context.Context, clnt client.Client,
	objectKey client.ObjectKey,
	gvk schema.GroupVersionKind, expectedLabelKey string, expectedLabelValue string,
) error

func InstallManifest

func InstallManifest(ctx context.Context, clnt client.Client, manifest *v1beta2.Manifest, installSpecByte []byte,
	enableResource bool,
) error

func IsManifestRequeueReasonCountIncreased

func IsManifestRequeueReasonCountIncreased(ctx context.Context, requeueReason, requeueType string) (bool,
	error,
)

func IsResourceVersionSame

func IsResourceVersionSame(ctx context.Context, clnt client.Client,
	objectKey client.ObjectKey,
	gvk schema.GroupVersionKind, expectedVersion string,
) (bool, error)

func KymaDeleted

func KymaDeleted(ctx context.Context,
	kymaName string, kymaNamespace string, k8sClient client.Client,
) error

func KymaExists

func KymaExists(ctx context.Context, clnt client.Client, name, namespace string) error

func KymaHasDeletionTimestamp

func KymaHasDeletionTimestamp(ctx context.Context,
	clnt client.Client,
	kymaName string,
	kymaNamespace string,
) bool

func KymaIsInState

func KymaIsInState(ctx context.Context, name, namespace string, clnt client.Client, state shared.State) error

func ListKlmClusterRoleBindings

func ListKlmClusterRoleBindings(clnt client.Client, ctx context.Context,
	serviceAccountName string,
) (apirbacv1.ClusterRoleBindingList, error)

func ListKlmRoleBindings

func ListKlmRoleBindings(clnt client.Client, ctx context.Context,
	serviceAccountName, namespace string,
) (apirbacv1.RoleBindingList, error)

func MandatoryManifestExistsWithLabelAndAnnotation

func MandatoryManifestExistsWithLabelAndAnnotation(ctx context.Context, clnt client.Client,
	annotationKey, annotationValue string,
) error

func MandatoryModuleTemplateHasExpectedLabel

func MandatoryModuleTemplateHasExpectedLabel(ctx context.Context, clnt client.Client, moduleName, key, value string,
) error

func ManifestExists

func ManifestExists(
	ctx context.Context,
	clnt client.Client,
	kymaName,
	kymaNamespace,
	moduleName string,
) error

func ManifestExistsByMetadata

func ManifestExistsByMetadata(
	ctx context.Context,
	clnt client.Client,
	manifestNamespace,
	manifestName string,
) error

func ManifestNoDeletionTimeStampSet

func ManifestNoDeletionTimeStampSet(ctx context.Context,
	kymaName, kymaNamespace, moduleName string,
	clnt client.Client,
) error

func ManifestStatusLastUpdateTimeIsNotChanged

func ManifestStatusLastUpdateTimeIsNotChanged(ctx context.Context,
	clnt client.Client,
	kymaName, kymaNamespace, moduleName string,
	oldStatus shared.Status,
) error

func ManifestStatusOperationContainsMessage

func ManifestStatusOperationContainsMessage(ctx context.Context, clnt client.Client,
	kymaName, kymaNamespace, moduleName, msg string,
) error

func ManifestVersionIsCorrect

func ManifestVersionIsCorrect(ctx context.Context, clnt client.Client,
	kymaName, kymaNamespace, moduleName, version string,
) error

func ModuleCRExists

func ModuleCRExists(ctx context.Context, clnt client.Client, moduleCR *unstructured.Unstructured) error

func ModuleCRIsInExpectedState

func ModuleCRIsInExpectedState(ctx context.Context,
	clnt client.Client,
	moduleCR *unstructured.Unstructured,
	expectedState shared.State,
) bool

func ModuleCRWarningConditionMetricNotFound

func ModuleCRWarningConditionMetricNotFound(ctx context.Context, kymaName, moduleName string) error

func ModuleMessageInKymaStatusIsCorrect

func ModuleMessageInKymaStatusIsCorrect(ctx context.Context, clnt client.Client,
	kymaName, kymaNamespace, moduleName, message string,
) error

func ModuleReleaseMetaContainsCorrectChannelVersion

func ModuleReleaseMetaContainsCorrectChannelVersion(ctx context.Context,
	moduleName, namespace, channel, version string, clnt client.Client,
) error

func ModuleReleaseMetaExists

func ModuleReleaseMetaExists(ctx context.Context, moduleName, namespace string, clnt client.Client) error

func ModuleTemplateExists

func ModuleTemplateExists(ctx context.Context,
	clnt client.Client,
	module v1beta2.Module,
	defaultChannel string,
	namespace string,
) error

func ModuleVersionInKymaStatusIsCorrect

func ModuleVersionInKymaStatusIsCorrect(ctx context.Context,
	clnt client.Client, kymaName, kymaNamespace, moduleName, moduleVersion string,
) error

func NewKymaWithSyncLabel

func NewKymaWithSyncLabel(name, namespace, channel string) *v1beta2.Kyma

NewKymaWithSyncLabel use this function to initialize kyma CR with SyncStrategyLocalSecret are typically used in e2e test, which expect related access secret provided.

func NewTemplateOperator

func NewTemplateOperator(channel string) v1beta2.Module

func NewTemplateOperatorWithVersion

func NewTemplateOperatorWithVersion(version string) v1beta2.Module

func NewTestIssuer

func NewTestIssuer(namespace string) *certmanagerv1.Issuer

func NewTestKyma

func NewTestKyma(name string) *v1beta2.Kyma

func NewTestManifest

func NewTestManifest(prefix string) *v1beta2.Manifest

func NewTestModule

func NewTestModule(name, channel string) v1beta2.Module

func NewTestModuleCR

func NewTestModuleCR(namespace string) *unstructured.Unstructured

NewTestModuleCR init one module cr used by template-operator.

func NewTestModuleWithChannelVersion

func NewTestModuleWithChannelVersion(name, channel, version string) v1beta2.Module

func NewTestModuleWithFixName

func NewTestModuleWithFixName(name, channel, version string) v1beta2.Module

func NewTestNamespace

func NewTestNamespace(namespace string) *apicorev1.Namespace

func NoManifestExist

func NoManifestExist(ctx context.Context,
	clnt client.Client,
) error

func NotContainsModuleInSpec

func NotContainsModuleInSpec(ctx context.Context,
	clnt client.Client,
	kymaName, kymaNamespace,
	moduleName string,
) error

func PurgeMetricsAreAsExpected

func PurgeMetricsAreAsExpected(ctx context.Context,
	timeShouldBeMoreThan float64,
	expectedRequests int,
) bool

func PushToRemoteOCIRegistry

func PushToRemoteOCIRegistry(server *httptest.Server, manifestFilePath, layerName string) error

func ReadModuleVersionFromModuleTemplate

func ReadModuleVersionFromModuleTemplate(ctx context.Context, clnt client.Client, module v1beta2.Module,
	channel string, namespace string,
) (string, error)

func SampleCRDeletionTimeStampSet

func SampleCRDeletionTimeStampSet(ctx context.Context, name, namespace string, clnt client.Client) error

func SampleCRNoDeletionTimeStampSet

func SampleCRNoDeletionTimeStampSet(ctx context.Context, name, namespace string, clnt client.Client) error

func SetKymaState

func SetKymaState(ctx context.Context, kyma *v1beta2.Kyma, clnt client.Client, state shared.State) error

func SetModuleManaged

func SetModuleManaged(ctx context.Context, clnt client.Client,
	kymaName, kymaNamespace, moduleName string, managed bool,
) error

func SetSkipLabelToMandatoryManifests

func SetSkipLabelToMandatoryManifests(ctx context.Context, clnt client.Client, ifSkip bool,
) error

func SetSkipLabelToManifest

func SetSkipLabelToManifest(
	ctx context.Context,
	clnt client.Client,
	kymaName,
	kymaNamespace,
	moduleName string,
	ifSkip bool,
) error

func SkipLabelExistsInManifest

func SkipLabelExistsInManifest(ctx context.Context,
	clnt client.Client,
	kymaName,
	kymaNamespace,
	moduleName string,
) bool

func StatefulSetIsReady

func StatefulSetIsReady(ctx context.Context, clnt client.Client, name, namespace string) error

func StopDeployment

func StopDeployment(ctx context.Context, clnt client.Client,
	name, namespace string,
) error

func SyncKyma

func SyncKyma(ctx context.Context, clnt client.Client, kyma *v1beta2.Kyma) error

func UpdateAllModuleReleaseMetaChannelVersions

func UpdateAllModuleReleaseMetaChannelVersions(ctx context.Context, client client.Client, namespace, name, version string) error

func UpdateChannelVersionIfModuleReleaseMetaExists

func UpdateChannelVersionIfModuleReleaseMetaExists(ctx context.Context, clnt client.Client,
	moduleName, namespace, channel, version string,
) error

func UpdateKymaLabel

func UpdateKymaLabel(
	ctx context.Context,
	clnt client.Client,
	kymaName, kymaNamespace,
	labelKey, labelValue string,
) error

func UpdateKymaModuleChannel

func UpdateKymaModuleChannel(ctx context.Context, clnt client.Client,
	kymaName, kymaNamespace, channel string,
) error

func UpdateManifestSpec

func UpdateManifestSpec(cxt context.Context, clnt client.Client, manifestName string, spec v1beta2.ManifestSpec) error

func UpdateManifestState

func UpdateManifestState(
	ctx context.Context,
	clnt client.Client,
	kymaName,
	kymaNamespace,
	moduleName string,
	state shared.State,
) error

func UpdateModuleTemplateSpec

func UpdateModuleTemplateSpec(ctx context.Context,
	clnt client.Client,
	module v1beta2.Module,
	key,
	newValue,
	kymaChannel string,
	namespace string,
) error

func WithInvalidInstallImageSpec

func WithInvalidInstallImageSpec(ctx context.Context, clnt client.Client,
	enableResource bool, manifestFilePath string,
) func(manifest *v1beta2.Manifest) error

func WithValidInstallImageSpecFromFile

func WithValidInstallImageSpecFromFile(ctx context.Context, clnt client.Client,
	name, manifestFilePath, serverURL string,
	enableResource, enableCredSecretSelector bool,
) func(manifest *v1beta2.Manifest) error

func WithValidInstallImageSpecFromTar

func WithValidInstallImageSpecFromTar(ctx context.Context, clnt client.Client, name, manifestTarPath, serverURL string,
	enableResource, enableCredSecretSelector bool,
) func(manifest *v1beta2.Manifest) error

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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