Documentation ¶
Index ¶
- Constants
- Variables
- func AddWorker(shoot *gardencorev1beta1.Shoot, cloudProfile *gardencorev1beta1.CloudProfile, ...) error
- func ApplyFilters(event corev1.Event, filters ...EventFilterFunc) bool
- func CAfterEach(body func(context.Context), timeout time.Duration)
- func CAfterSuite(body func(context.Context), timeout time.Duration)
- func CBeforeEach(body func(ctx context.Context), timeout time.Duration)
- func CBeforeSuite(body func(context.Context), timeout time.Duration)
- func CIt(text string, body func(context.Context), timeout time.Duration)
- func CJustBeforeEach(body func(ctx context.Context), timeout time.Duration)
- func CommonAfterSuite()
- func ComputeTechnicalID(projectName string, shoot *gardencorev1beta1.Shoot) string
- func CreateShootTestArtifacts(cfg *ShootCreationConfig, projectNamespace string, clearDNS bool, ...) (string, *gardencorev1beta1.Shoot, error)
- func CreateTokenForServiceAccount(ctx context.Context, k8sClient kubernetes.Interface, ...) (string, error)
- func DeleteAndWaitForResource(ctx context.Context, k8sClient kubernetes.Interface, resource client.Object, ...) error
- func DeployRootPod(ctx context.Context, c client.Client, namespace string, nodename *string) (*corev1.Pod, error)
- func DownloadAdminKubeconfigForShoot(ctx context.Context, client kubernetes.Interface, ...) error
- func DownloadKubeconfig(ctx context.Context, client kubernetes.Interface, ...) error
- func Exists(path string) (bool, error)
- func ExpectNoError(actual any, extra ...any)
- func FCIt(text string, body func(context.Context), timeout time.Duration)
- func FileExists(kc string) bool
- func GetAllNodes(ctx context.Context, c kubernetes.Interface) (*corev1.NodeList, error)
- func GetAllNodesInWorkerPool(ctx context.Context, c kubernetes.Interface, workerGroup *string) (*corev1.NodeList, error)
- func GetDeploymentReplicas(ctx context.Context, c client.Client, namespace, name string) (*int32, error)
- func GetFirstRunningPodWithLabels(ctx context.Context, labelsMap labels.Selector, namespace string, ...) (*corev1.Pod, error)
- func GetObjectFromSecret(ctx context.Context, k8sClient kubernetes.Interface, ...) (string, error)
- func GetPodsByLabels(ctx context.Context, labelsSelector labels.Selector, c kubernetes.Interface, ...) (*corev1.PodList, error)
- func GetTestRunID() string
- func HTTPGet(ctx context.Context, url string) (*http.Response, error)
- func Must(err error)
- func NewClientFromServiceAccount(ctx context.Context, k8sClient kubernetes.Interface, ...) (kubernetes.Interface, error)
- func ParseFileAsProviderConfig(filepath string) (*apimachineryRuntime.RawExtension, error)
- func ParseFileAsWorkers(filepath string) ([]gardencorev1beta1.Worker, error)
- func PatchSecret(ctx context.Context, c client.Client, secret *corev1.Secret) error
- func PodExecByLabel(ctx context.Context, podLabels labels.Selector, ...) (io.Reader, error)
- func PrettyPrintObject(obj runtime.Object) error
- func ReadObject(file string, into apimachineryRuntime.Object) error
- func RemoveCleanupAction(p CleanupActionHandle)
- func RevertableSet(dst, src any) (revert func())
- func RunCleanupActions()
- func ScaleDeployment(ctx context.Context, c client.Client, desiredReplicas *int32, ...) (*int32, error)
- func Set(dst, src any)
- func SetProviderConfigsFromFilepath(shoot *gardencorev1beta1.Shoot, ...) error
- func SetupShootWorker(shoot *gardencorev1beta1.Shoot, cloudProfile *gardencorev1beta1.CloudProfile, ...) error
- func ShootReconciliationSuccessful(shoot *gardencorev1beta1.Shoot) (bool, string)
- func StringSet(s string) bool
- func TestHTTPEndpointWithBasicAuth(ctx context.Context, url, userName, password string) error
- func TestHTTPEndpointWithToken(ctx context.Context, url, token string) error
- func WaitForNNodesToBeHealthy(ctx context.Context, k8sClient kubernetes.Interface, n int, ...) error
- func WaitForNNodesToBeHealthyInWorkerPool(ctx context.Context, k8sClient kubernetes.Interface, n int, ...) error
- func WaitUntilDeploymentScaled(ctx context.Context, c client.Client, namespace, name string, ...) error
- func WaitUntilPodIsRunning(ctx context.Context, log logr.Logger, name, namespace string, ...) error
- type CleanupActionHandle
- type CommonConfig
- type CommonFramework
- func (f *CommonFramework) BeforeEach()
- func (f *CommonFramework) DumpDefaultResourcesInAllNamespaces(ctx context.Context, k8sClient kubernetes.Interface) error
- func (f *CommonFramework) DumpDefaultResourcesInNamespace(ctx context.Context, k8sClient kubernetes.Interface, namespace string) error
- func (f *CommonFramework) DumpLogsForPodInNamespace(ctx context.Context, k8sClient kubernetes.Interface, namespace, name string, ...) error
- func (f *CommonFramework) DumpLogsForPodsWithLabelsInNamespace(ctx context.Context, k8sClient kubernetes.Interface, namespace string, ...) error
- func (f *CommonFramework) RenderAndDeployTemplate(ctx context.Context, k8sClient kubernetes.Interface, templateName string, ...) error
- func (f *CommonFramework) WaitUntilDaemonSetIsRunning(ctx context.Context, k8sClient client.Client, name, namespace string) error
- func (f *CommonFramework) WaitUntilDeploymentIsReady(ctx context.Context, name string, namespace string, ...) error
- func (f *CommonFramework) WaitUntilDeploymentsWithLabelsIsReady(ctx context.Context, deploymentLabels labels.Selector, namespace string, ...) error
- func (f *CommonFramework) WaitUntilIngressIsReady(ctx context.Context, name string, namespace string, ...) error
- func (f *CommonFramework) WaitUntilNamespaceIsDeleted(ctx context.Context, k8sClient kubernetes.Interface, ns string) error
- func (f *CommonFramework) WaitUntilPodIsRunningWithLabels(ctx context.Context, labels labels.Selector, podNamespace string, ...) error
- func (f *CommonFramework) WaitUntilStatefulSetIsRunning(ctx context.Context, name, namespace string, c kubernetes.Interface) error
- type EventFilterFunc
- type GardenerConfig
- type GardenerFramework
- func (f *GardenerFramework) AnnotateShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot, ...) error
- func (f *GardenerFramework) BeforeEach()
- func (f *GardenerFramework) CreateShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
- func (f *GardenerFramework) DeleteShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
- func (f *GardenerFramework) DeleteShootAndWaitForDeletion(ctx context.Context, shoot *gardencorev1beta1.Shoot) (rErr error)
- func (f *GardenerFramework) DumpState(ctx context.Context)
- func (f *GardenerFramework) ForceDeleteShootAndWaitForDeletion(ctx context.Context, shoot *gardencorev1beta1.Shoot) (rErr error)
- func (f *GardenerFramework) GetCloudProfile(ctx context.Context, cloudProfileRef *gardencorev1beta1.CloudProfileReference, ...) (*gardencorev1beta1.CloudProfile, error)
- func (f *GardenerFramework) GetSeed(ctx context.Context, seedName string) (*gardencorev1beta1.Seed, kubernetes.Interface, error)
- func (f *GardenerFramework) GetSeeds(ctx context.Context) ([]gardencorev1beta1.Seed, error)
- func (f *GardenerFramework) GetShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
- func (f *GardenerFramework) GetShootProject(ctx context.Context, shootNamespace string) (*gardencorev1beta1.Project, error)
- func (f *GardenerFramework) HibernateShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
- func (f *GardenerFramework) MigrateShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot, ...) error
- func (f *GardenerFramework) NewShootFramework(ctx context.Context, shoot *gardencorev1beta1.Shoot) (*ShootFramework, error)
- func (f *GardenerFramework) RemoveShootAnnotation(ctx context.Context, shoot *gardencorev1beta1.Shoot, annotationKey string) error
- func (f *GardenerFramework) ScheduleShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot, ...) error
- func (f *GardenerFramework) UpdateShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot, ...) error
- func (f *GardenerFramework) VerifyNoRunningPods(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
- func (f *GardenerFramework) WaitForShootToBeCreated(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
- func (f *GardenerFramework) WaitForShootToBeDeleted(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
- func (f *GardenerFramework) WaitForShootToBeReconciled(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
- func (f *GardenerFramework) WakeUpShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
- type PodExecutor
- type RootPodExecutor
- type SearchResponse
- type ShootComparisonElements
- type ShootConfig
- type ShootCreationConfig
- type ShootCreationFramework
- func (f *ShootCreationFramework) AfterEach(ctx context.Context)
- func (f *ShootCreationFramework) BeforeEach()
- func (f *ShootCreationFramework) CreateShootAndWaitForCreation(ctx context.Context, initializeShootWithFlags bool) error
- func (f *ShootCreationFramework) InitializeShootWithFlags(ctx context.Context) error
- func (f *ShootCreationFramework) Verify()
- type ShootFramework
- func (f *ShootFramework) AddShoot(ctx context.Context, shootName, shootNamespace string) error
- func (f *ShootFramework) AfterEach(ctx context.Context)
- func (f *ShootFramework) BeforeEach(ctx context.Context)
- func (f *ShootFramework) CreateNewNamespace(ctx context.Context) (string, error)
- func (f *ShootFramework) DumpState(ctx context.Context)
- func (f *ShootFramework) GetCloudProfile(ctx context.Context) (*gardencorev1beta1.CloudProfile, error)
- func (f *ShootFramework) GetValiLogs(ctx context.Context, valiLabels map[string]string, ...) (*SearchResponse, error)
- func (f *ShootFramework) HibernateShoot(ctx context.Context) error
- func (f *ShootFramework) IsAPIServerRunning(ctx context.Context) (bool, error)
- func (f *ShootFramework) ShootKubeconfigSecretName() string
- func (f *ShootFramework) ShootSeedNamespace() string
- func (f *ShootFramework) UpdateShoot(ctx context.Context, update func(shoot *gardencorev1beta1.Shoot) error) error
- func (f *ShootFramework) WaitForShootCondition(ctx context.Context, interval, timeout time.Duration, ...) error
- func (f *ShootFramework) WakeUpShoot(ctx context.Context) error
- type ShootMigrationConfig
- type ShootMigrationTest
- func (t *ShootMigrationTest) CheckObjectsTimestamp(ctx context.Context, mrExcludeList, resourcesWithGeneratedName []string) error
- func (t ShootMigrationTest) CheckSecretAndServiceAccount(ctx context.Context) error
- func (t ShootMigrationTest) CleanUpSecretAndServiceAccount(ctx context.Context) error
- func (t ShootMigrationTest) CreateSecretAndServiceAccount(ctx context.Context) error
- func (t *ShootMigrationTest) GetMachineDetails(ctx context.Context, seedClient kubernetes.Interface) (machineNames, machineNodes []string, err error)
- func (t *ShootMigrationTest) GetNodeNames(ctx context.Context, shootClient kubernetes.Interface) (nodeNames []string, err error)
- func (t *ShootMigrationTest) GetPersistedSecrets(ctx context.Context, seedClient kubernetes.Interface) (map[string]corev1.Secret, error)
- func (t ShootMigrationTest) MarkOSCSecret(ctx context.Context) error
- func (t *ShootMigrationTest) MigrateShoot(ctx context.Context) error
- func (t ShootMigrationTest) VerifyMigration(ctx context.Context) error
- type TestDescription
- func (t TestDescription) Beta() TestDescription
- func (t TestDescription) CIt(text string, body func(context.Context), timeout time.Duration, ...)
- func (t TestDescription) Default() TestDescription
- func (t TestDescription) Disruptive() TestDescription
- func (t TestDescription) FCIt(text string, body func(context.Context), timeout time.Duration, ...)
- func (t TestDescription) FIt(text string, body func(), opts ...TestOption)
- func (t TestDescription) It(text string, body func(), opts ...TestOption)
- func (t TestDescription) Release() TestDescription
- func (t TestDescription) Serial() TestDescription
- func (t TestDescription) String() string
- type TestOption
- type TestOptions
- type TextValidation
Constants ¶
const ( // KubeconfigSecretKeyName ist the name of the key in a secret that holds the kubeconfig of a shoot KubeconfigSecretKeyName = "kubeconfig" // IntegrationTestPrefix is the default prefix that will be used for test shoots if none other is specified IntegrationTestPrefix = "itest-" // WorkerNamePrefix is the default prefix that will be used for Shoot workers WorkerNamePrefix = "worker-" // TestMachineryKubeconfigsPathEnvVarName is the name of the environment variable that holds the path to the // testmachinery provided kubeconfigs. TestMachineryKubeconfigsPathEnvVarName = "TM_KUBECONFIG_PATH" // TestMachineryTestRunIDEnvVarName is the name of the environment variable that holds the testrun ID. TestMachineryTestRunIDEnvVarName = "TM_TESTRUN_ID" // SeedTaintTestRun is the taint used to limit shoots that can be scheduled on a seed to shoots created by the same testrun. SeedTaintTestRun = "test.gardener.cloud/test-run" )
Variables ¶
var ( // ErrNoRepositoriesFound no repositories found in repository file ErrNoRepositoriesFound = errors.New("no repositories found in repository file") // ErrNoInternalIPsForNodeWasFound no internal IPs were found for node ErrNoInternalIPsForNodeWasFound = errors.New("no internal IPs were found for node") // ErrNoRunningPodsFound no running pods were found ErrNoRunningPodsFound = errors.New("no running pods were found") )
Functions ¶
func AddWorker ¶
func AddWorker(shoot *gardencorev1beta1.Shoot, cloudProfile *gardencorev1beta1.CloudProfile, workerZone string) error
AddWorker adds a valid default worker to the shoot for the given machineImage and CloudProfile.
func ApplyFilters ¶
func ApplyFilters(event corev1.Event, filters ...EventFilterFunc) bool
ApplyFilters checks if one of the EventFilters filters the current event
func CAfterEach ¶
CAfterEach contextifies Gingko's AfterEach
func CAfterSuite ¶
CAfterSuite contextifies Gingko's FIt
func CBeforeEach ¶
CBeforeEach contextifies Gingko's BeforeEach
func CBeforeSuite ¶
CBeforeSuite contextifies Gingko's FIt
func CJustBeforeEach ¶
CJustBeforeEach contextifies Gingko's JustBeforeEach
func CommonAfterSuite ¶
func CommonAfterSuite()
CommonAfterSuite performs necessary common steps after all tests of a suite a run
func ComputeTechnicalID ¶ added in v1.13.0
func ComputeTechnicalID(projectName string, shoot *gardencorev1beta1.Shoot) string
ComputeTechnicalID computes the technical ID of a shoot
func CreateShootTestArtifacts ¶
func CreateShootTestArtifacts(cfg *ShootCreationConfig, projectNamespace string, clearDNS bool, clearExtensions bool) (string, *gardencorev1beta1.Shoot, error)
CreateShootTestArtifacts creates a shoot object from the given path and sets common attributes (test-individual settings like workers have to be handled by each test).
func CreateTokenForServiceAccount ¶ added in v1.63.0
func CreateTokenForServiceAccount(ctx context.Context, k8sClient kubernetes.Interface, serviceAccount *corev1.ServiceAccount, expirationSeconds *int64) (string, error)
CreateTokenForServiceAccount requests a service account token.
func DeleteAndWaitForResource ¶ added in v1.4.0
func DeleteAndWaitForResource(ctx context.Context, k8sClient kubernetes.Interface, resource client.Object, timeout time.Duration) error
DeleteAndWaitForResource deletes a kubernetes resource and waits for its deletion
func DeployRootPod ¶ added in v1.3.0
func DeployRootPod(ctx context.Context, c client.Client, namespace string, nodename *string) (*corev1.Pod, error)
DeployRootPod deploys a pod with root permissions for testing purposes.
func DownloadAdminKubeconfigForShoot ¶ added in v1.65.0
func DownloadAdminKubeconfigForShoot(ctx context.Context, client kubernetes.Interface, shoot *gardencorev1beta1.Shoot, downloadPath string) error
DownloadAdminKubeconfigForShoot requests an admin kubeconfig for the given shoot and writes the kubeconfig to the given download path. The kubeconfig expires in 6 hours.
func DownloadKubeconfig ¶
func DownloadKubeconfig(ctx context.Context, client kubernetes.Interface, namespace, name, downloadPath string) error
DownloadKubeconfig retrieves the static token kubeconfig for the given shoot and writes the kubeconfig to the given download path.
func ExpectNoError ¶
ExpectNoError checks if an error has occurred
func FileExists ¶
FileExists Checks if a file path exists and fail otherwise
func GetAllNodes ¶ added in v1.2.0
GetAllNodes fetches all nodes
func GetAllNodesInWorkerPool ¶ added in v1.2.0
func GetAllNodesInWorkerPool(ctx context.Context, c kubernetes.Interface, workerGroup *string) (*corev1.NodeList, error)
GetAllNodesInWorkerPool fetches all nodes of a specific worker group
func GetDeploymentReplicas ¶ added in v1.4.0
func GetDeploymentReplicas(ctx context.Context, c client.Client, namespace, name string) (*int32, error)
GetDeploymentReplicas gets the spec.Replicas count from a deployment
func GetFirstRunningPodWithLabels ¶
func GetFirstRunningPodWithLabels(ctx context.Context, labelsMap labels.Selector, namespace string, client kubernetes.Interface) (*corev1.Pod, error)
GetFirstRunningPodWithLabels fetches the first running pod with the desired set of labels <labelsMap>
func GetObjectFromSecret ¶
func GetObjectFromSecret(ctx context.Context, k8sClient kubernetes.Interface, namespace, secretName, objectKey string) (string, error)
GetObjectFromSecret returns object from secret
func GetPodsByLabels ¶
func GetPodsByLabels(ctx context.Context, labelsSelector labels.Selector, c kubernetes.Interface, namespace string) (*corev1.PodList, error)
GetPodsByLabels fetches all pods with the desired set of labels <labelsMap>
func GetTestRunID ¶ added in v1.18.0
func GetTestRunID() string
GetTestRunID returns the current testmachinery testrun ID.
func NewClientFromServiceAccount ¶
func NewClientFromServiceAccount(ctx context.Context, k8sClient kubernetes.Interface, serviceAccount *corev1.ServiceAccount) (kubernetes.Interface, error)
NewClientFromServiceAccount returns a kubernetes client for a service account.
func ParseFileAsProviderConfig ¶
func ParseFileAsProviderConfig(filepath string) (*apimachineryRuntime.RawExtension, error)
ParseFileAsProviderConfig parses a file as a ProviderConfig
func ParseFileAsWorkers ¶
func ParseFileAsWorkers(filepath string) ([]gardencorev1beta1.Worker, error)
ParseFileAsWorkers parses a file as a Worker configuration
func PatchSecret ¶ added in v1.26.0
PatchSecret patches the Secret.
func PodExecByLabel ¶
func PodExecByLabel(ctx context.Context, podLabels labels.Selector, podContainer, command, namespace string, client kubernetes.Interface) (io.Reader, error)
PodExecByLabel executes a command inside pods filtered by label
func PrettyPrintObject ¶ added in v1.2.0
PrettyPrintObject prints a object as pretty printed yaml to stdout
func ReadObject ¶
func ReadObject(file string, into apimachineryRuntime.Object) error
ReadObject loads the contents of file and decodes it as an object.
func RemoveCleanupAction ¶ added in v1.5.0
func RemoveCleanupAction(p CleanupActionHandle)
RemoveCleanupAction removes a function that was installed by AddCleanupAction.
func RevertableSet ¶
func RevertableSet(dst, src any) (revert func())
RevertableSet sets the element of dst to src and returns a function that can revert back to the original values.
func RunCleanupActions ¶ added in v1.5.0
func RunCleanupActions()
RunCleanupActions runs all functions installed by AddCleanupAction. It does not remove them (see RemoveCleanupAction) but it does run unlocked, so they may remove themselves.
func ScaleDeployment ¶ added in v1.4.0
func ScaleDeployment(ctx context.Context, c client.Client, desiredReplicas *int32, name, namespace string) (*int32, error)
ScaleDeployment scales a deployment and waits until it is scaled
func Set ¶
func Set(dst, src any)
Set sets the pointer dst to the value of src.
dst has to be a pointer, src has to be assignable to the element type of dst.
func SetProviderConfigsFromFilepath ¶
func SetProviderConfigsFromFilepath(shoot *gardencorev1beta1.Shoot, infrastructureConfigPath, controlPlaneConfigPath, networkingConfigPath string) error
SetProviderConfigsFromFilepath parses the infrastructure, controlPlane and networking provider-configs and sets them on the shoot
func SetupShootWorker ¶
func SetupShootWorker(shoot *gardencorev1beta1.Shoot, cloudProfile *gardencorev1beta1.CloudProfile, workerZone string) error
SetupShootWorker prepares the Shoot with one worker with provider specific volume. Clears the currently configured workers.
func ShootReconciliationSuccessful ¶ added in v1.49.0
func ShootReconciliationSuccessful(shoot *gardencorev1beta1.Shoot) (bool, string)
ShootReconciliationSuccessful checks if a shoot is successfully reconciled. In case it is not, it also returns a descriptive message stating the reason.
func TestHTTPEndpointWithBasicAuth ¶
TestHTTPEndpointWithBasicAuth validates that a http endpoint can be accessed using basic authentication
func TestHTTPEndpointWithToken ¶
TestHTTPEndpointWithToken validates that a http endpoint can be accessed using a bearer token
func WaitForNNodesToBeHealthy ¶ added in v1.2.0
func WaitForNNodesToBeHealthy(ctx context.Context, k8sClient kubernetes.Interface, n int, timeout time.Duration) error
WaitForNNodesToBeHealthy waits for exactly <n> Nodes to be healthy within a given timeout
func WaitForNNodesToBeHealthyInWorkerPool ¶ added in v1.2.0
func WaitForNNodesToBeHealthyInWorkerPool(ctx context.Context, k8sClient kubernetes.Interface, n int, workerGroup *string, timeout time.Duration) error
WaitForNNodesToBeHealthyInWorkerPool waits for exactly <n> Nodes in a given worker pool to be healthy within a given timeout
func WaitUntilDeploymentScaled ¶ added in v1.4.0
func WaitUntilDeploymentScaled(ctx context.Context, c client.Client, namespace, name string, desiredReplicas int32) error
WaitUntilDeploymentScaled waits until the deployment has the desired replica count in the status
func WaitUntilPodIsRunning ¶ added in v1.4.0
func WaitUntilPodIsRunning(ctx context.Context, log logr.Logger, name, namespace string, c kubernetes.Interface) error
WaitUntilPodIsRunning waits until the pod with <podName> is running
Types ¶
type CleanupActionHandle ¶ added in v1.5.0
type CleanupActionHandle *int
CleanupActionHandle is an integer pointer type for handling cleanup action
func AddCleanupAction ¶ added in v1.5.0
func AddCleanupAction(fn func()) CleanupActionHandle
AddCleanupAction installs a function that will be called in the event of the whole test being terminated. This allows arbitrary pieces of the overall test to hook into SynchronizedAfterSuite(). The hooks are called in last-in-first-out order.
type CommonConfig ¶
type CommonConfig struct { LogLevel string DisableStateDump bool ResourceDir string ChartDir string }
CommonConfig is the configuration for a common framework
func RegisterCommonFrameworkFlags ¶
func RegisterCommonFrameworkFlags() *CommonConfig
RegisterCommonFrameworkFlags adds all flags that are needed to configure a common framework to the provided flagset.
type CommonFramework ¶
type CommonFramework struct { Config *CommonConfig Logger logr.Logger DisableStateDump bool // ResourcesDir is the absolute path to the resources directory ResourcesDir string // TemplatesDir is the absolute path to the templates directory TemplatesDir string // Chart is the absolute path to the helm chart directory ChartDir string }
CommonFramework represents the common gardener test framework that consolidates all shared features of the specific test frameworks (system, garderner, shoot)
func NewCommonFramework ¶
func NewCommonFramework(cfg *CommonConfig) *CommonFramework
NewCommonFramework creates a new common framework and registers its ginkgo BeforeEach setup
func (*CommonFramework) BeforeEach ¶
func (f *CommonFramework) BeforeEach()
BeforeEach should be called in ginkgo's BeforeEach. It sets up the common framework.
func (*CommonFramework) DumpDefaultResourcesInAllNamespaces ¶ added in v1.4.0
func (f *CommonFramework) DumpDefaultResourcesInAllNamespaces(ctx context.Context, k8sClient kubernetes.Interface) error
DumpDefaultResourcesInAllNamespaces dumps all default k8s resources of a namespace
func (*CommonFramework) DumpDefaultResourcesInNamespace ¶ added in v1.4.0
func (f *CommonFramework) DumpDefaultResourcesInNamespace(ctx context.Context, k8sClient kubernetes.Interface, namespace string) error
DumpDefaultResourcesInNamespace dumps all default K8s resources of a namespace.
func (*CommonFramework) DumpLogsForPodInNamespace ¶ added in v1.6.0
func (f *CommonFramework) DumpLogsForPodInNamespace(ctx context.Context, k8sClient kubernetes.Interface, namespace, name string, options *corev1.PodLogOptions) error
DumpLogsForPodInNamespace prints the logs of the pod with the given namespace and name.
func (*CommonFramework) DumpLogsForPodsWithLabelsInNamespace ¶ added in v1.6.0
func (f *CommonFramework) DumpLogsForPodsWithLabelsInNamespace(ctx context.Context, k8sClient kubernetes.Interface, namespace string, opts ...client.ListOption) error
DumpLogsForPodsWithLabelsInNamespace prints the logs of pods in the given namespace selected by the given list options.
func (*CommonFramework) RenderAndDeployTemplate ¶
func (f *CommonFramework) RenderAndDeployTemplate(ctx context.Context, k8sClient kubernetes.Interface, templateName string, values any) error
RenderAndDeployTemplate renders a template from the resource template directory and deploys it to the cluster
func (*CommonFramework) WaitUntilDaemonSetIsRunning ¶
func (f *CommonFramework) WaitUntilDaemonSetIsRunning(ctx context.Context, k8sClient client.Client, name, namespace string) error
WaitUntilDaemonSetIsRunning waits until the daemon set with <daemonSetName> is running
func (*CommonFramework) WaitUntilDeploymentIsReady ¶ added in v1.2.0
func (f *CommonFramework) WaitUntilDeploymentIsReady(ctx context.Context, name string, namespace string, k8sClient kubernetes.Interface) error
WaitUntilDeploymentIsReady waits until the given deployment is ready
func (*CommonFramework) WaitUntilDeploymentsWithLabelsIsReady ¶
func (f *CommonFramework) WaitUntilDeploymentsWithLabelsIsReady(ctx context.Context, deploymentLabels labels.Selector, namespace string, k8sClient kubernetes.Interface) error
WaitUntilDeploymentsWithLabelsIsReady wait until pod with labels <podLabels> is running
func (*CommonFramework) WaitUntilIngressIsReady ¶ added in v1.73.0
func (f *CommonFramework) WaitUntilIngressIsReady(ctx context.Context, name string, namespace string, k8sClient kubernetes.Interface) error
WaitUntilIngressIsReady waits until the given ingress is ready
func (*CommonFramework) WaitUntilNamespaceIsDeleted ¶
func (f *CommonFramework) WaitUntilNamespaceIsDeleted(ctx context.Context, k8sClient kubernetes.Interface, ns string) error
WaitUntilNamespaceIsDeleted waits until a namespace has been deleted
func (*CommonFramework) WaitUntilPodIsRunningWithLabels ¶ added in v1.5.0
func (f *CommonFramework) WaitUntilPodIsRunningWithLabels(ctx context.Context, labels labels.Selector, podNamespace string, c kubernetes.Interface) error
WaitUntilPodIsRunningWithLabels waits until the pod with <podLabels> is running
func (*CommonFramework) WaitUntilStatefulSetIsRunning ¶
func (f *CommonFramework) WaitUntilStatefulSetIsRunning(ctx context.Context, name, namespace string, c kubernetes.Interface) error
WaitUntilStatefulSetIsRunning waits until the stateful set with <statefulSetName> is running
type EventFilterFunc ¶
EventFilterFunc is a function to filter events
type GardenerConfig ¶
type GardenerConfig struct { CommonConfig *CommonConfig GardenerKubeconfig string ProjectNamespace string ExistingShootName string SkipAccessingShoot bool }
GardenerConfig is the configuration for a gardener framework
func RegisterGardenerFrameworkFlags ¶
func RegisterGardenerFrameworkFlags() *GardenerConfig
RegisterGardenerFrameworkFlags adds all flags that are needed to configure a gardener framework to the provided flagset.
type GardenerFramework ¶
type GardenerFramework struct { *CommonFramework TestDescription GardenClient kubernetes.Interface ProjectNamespace string Config *GardenerConfig }
GardenerFramework is the gardener test framework that includes functions for working with a gardener instance
func NewGardenerFramework ¶
func NewGardenerFramework(cfg *GardenerConfig) *GardenerFramework
NewGardenerFramework creates a new gardener test framework. All needed flags are parsed during before each suite.
func (*GardenerFramework) AnnotateShoot ¶
func (f *GardenerFramework) AnnotateShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot, annotations map[string]string) error
AnnotateShoot adds shoot annotation(s)
func (*GardenerFramework) BeforeEach ¶
func (f *GardenerFramework) BeforeEach()
BeforeEach should be called in ginkgo's BeforeEach. It sets up the gardener framework.
func (*GardenerFramework) CreateShoot ¶
func (f *GardenerFramework) CreateShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
CreateShoot Creates a shoot from a shoot Object and waits until it is successfully reconciled
func (*GardenerFramework) DeleteShoot ¶
func (f *GardenerFramework) DeleteShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
DeleteShoot deletes the test shoot
func (*GardenerFramework) DeleteShootAndWaitForDeletion ¶
func (f *GardenerFramework) DeleteShootAndWaitForDeletion(ctx context.Context, shoot *gardencorev1beta1.Shoot) (rErr error)
DeleteShootAndWaitForDeletion deletes the test shoot and waits until it cannot be found anymore.
func (*GardenerFramework) DumpState ¶
func (f *GardenerFramework) DumpState(ctx context.Context)
DumpState greps all necessary logs and state of the cluster if the test failed TODO: dump extension controller namespaces TODO: dump logs of gardener extension controllers and other system components
func (*GardenerFramework) ForceDeleteShootAndWaitForDeletion ¶ added in v1.81.0
func (f *GardenerFramework) ForceDeleteShootAndWaitForDeletion(ctx context.Context, shoot *gardencorev1beta1.Shoot) (rErr error)
ForceDeleteShootAndWaitForDeletion forcefully deletes the test shoot and waits until it cannot be found anymore.
func (*GardenerFramework) GetCloudProfile ¶
func (f *GardenerFramework) GetCloudProfile(ctx context.Context, cloudProfileRef *gardencorev1beta1.CloudProfileReference, namespace string, name *string) (*gardencorev1beta1.CloudProfile, error)
GetCloudProfile returns the cloudprofile from gardener using the cloudprofile reference, alternatively by cloudProfileName.
func (*GardenerFramework) GetSeed ¶
func (f *GardenerFramework) GetSeed(ctx context.Context, seedName string) (*gardencorev1beta1.Seed, kubernetes.Interface, error)
GetSeed returns the seed and its k8s client
func (*GardenerFramework) GetSeeds ¶ added in v1.5.0
func (f *GardenerFramework) GetSeeds(ctx context.Context) ([]gardencorev1beta1.Seed, error)
GetSeeds returns all registered seeds
func (*GardenerFramework) GetShoot ¶
func (f *GardenerFramework) GetShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
GetShoot gets the test shoot
func (*GardenerFramework) GetShootProject ¶
func (f *GardenerFramework) GetShootProject(ctx context.Context, shootNamespace string) (*gardencorev1beta1.Project, error)
GetShootProject returns the project of a shoot
func (*GardenerFramework) HibernateShoot ¶
func (f *GardenerFramework) HibernateShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
HibernateShoot hibernates the test shoot
func (*GardenerFramework) MigrateShoot ¶ added in v1.13.0
func (f *GardenerFramework) MigrateShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot, seed *gardencorev1beta1.Seed, prerequisites func(shoot *gardencorev1beta1.Shoot) error) error
MigrateShoot changes the spec.Seed.Name of a shoot and waits for it to be migrated
func (*GardenerFramework) NewShootFramework ¶
func (f *GardenerFramework) NewShootFramework(ctx context.Context, shoot *gardencorev1beta1.Shoot) (*ShootFramework, error)
NewShootFramework creates a new shoot framework with the current gardener framework and a shoot
func (*GardenerFramework) RemoveShootAnnotation ¶
func (f *GardenerFramework) RemoveShootAnnotation(ctx context.Context, shoot *gardencorev1beta1.Shoot, annotationKey string) error
RemoveShootAnnotation removes an annotation with key <annotationKey> from a shoot object
func (*GardenerFramework) ScheduleShoot ¶ added in v1.5.0
func (f *GardenerFramework) ScheduleShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot, seed *gardencorev1beta1.Seed) error
ScheduleShoot set the Spec.Cloud.Seed of a shoot to the specified seed. This is the request the Gardener Scheduler executes after a scheduling decision.
func (*GardenerFramework) UpdateShoot ¶
func (f *GardenerFramework) UpdateShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot, update func(shoot *gardencorev1beta1.Shoot) error) error
UpdateShoot Updates a shoot from a shoot Object and waits for its reconciliation
func (*GardenerFramework) VerifyNoRunningPods ¶ added in v1.70.0
func (f *GardenerFramework) VerifyNoRunningPods(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
VerifyNoRunningPods verifies that no control plane pods are running for a given shoot. If any control plane pods are found to be running, returns an error with their names. Otherwise, returns nil.
func (*GardenerFramework) WaitForShootToBeCreated ¶
func (f *GardenerFramework) WaitForShootToBeCreated(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
WaitForShootToBeCreated waits for the shoot to be created
func (*GardenerFramework) WaitForShootToBeDeleted ¶
func (f *GardenerFramework) WaitForShootToBeDeleted(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
WaitForShootToBeDeleted waits for the shoot to be deleted
func (*GardenerFramework) WaitForShootToBeReconciled ¶
func (f *GardenerFramework) WaitForShootToBeReconciled(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
WaitForShootToBeReconciled waits for the shoot to be successfully reconciled
func (*GardenerFramework) WakeUpShoot ¶
func (f *GardenerFramework) WakeUpShoot(ctx context.Context, shoot *gardencorev1beta1.Shoot) error
WakeUpShoot wakes up the test shoot from hibernation
type PodExecutor ¶ added in v1.4.0
type PodExecutor interface {
Execute(ctx context.Context, namespace, name, containerName, command string) (io.Reader, error)
}
PodExecutor is the pod executor interface
func NewPodExecutor ¶ added in v1.4.0
func NewPodExecutor(client kubernetes.Interface) PodExecutor
NewPodExecutor returns a podExecutor
type RootPodExecutor ¶ added in v1.4.0
type RootPodExecutor interface { Execute(ctx context.Context, command string) ([]byte, error) Clean(ctx context.Context) error }
RootPodExecutor enables the execution of command on the operating system of a node. The executor deploys a pod with root privileged on a specified node. This pod is then used to execute commands on the host operating system.
func NewRootPodExecutor ¶ added in v1.4.0
func NewRootPodExecutor(log logr.Logger, c kubernetes.Interface, nodeName *string, namespace string) RootPodExecutor
NewRootPodExecutor creates a new root pod executor to run commands on a node.
type SearchResponse ¶
type SearchResponse struct { Data struct { Result []struct { Value []any `json:"value"` } `json:"result"` } `json:"data"` }
SearchResponse represents the response from a search query to vali
type ShootComparisonElements ¶ added in v1.13.0
type ShootComparisonElements struct { MachineNames []string MachineNodes []string NodeNames []string SecretsMap map[string]corev1.Secret }
ShootComparisonElements contains details about Machines and Nodes that will be compared during the tests
type ShootConfig ¶
type ShootConfig struct { GardenerConfig *GardenerConfig ShootName string Fenced bool SeedScheme *runtime.Scheme CreateTestNamespace bool DisableTestNamespaceCleanup bool SkipSeedInitialization bool }
ShootConfig is the configuration for a shoot framework
func RegisterShootFrameworkFlags ¶
func RegisterShootFrameworkFlags() *ShootConfig
RegisterShootFrameworkFlags adds all flags that are needed to configure a shoot framework to the provided flagset.
type ShootCreationConfig ¶ added in v1.3.0
type ShootCreationConfig struct { GardenerConfig *GardenerConfig // contains filtered or unexported fields }
ShootCreationConfig is the configuration for a shoot creation framework
func RegisterShootCreationFrameworkFlags ¶ added in v1.3.0
func RegisterShootCreationFrameworkFlags() *ShootCreationConfig
RegisterShootCreationFrameworkFlags adds all flags that are needed to configure a shoot creation framework to the provided flagset.
type ShootCreationFramework ¶ added in v1.3.0
type ShootCreationFramework struct { *GardenerFramework TestDescription Config *ShootCreationConfig Shoot *gardencorev1beta1.Shoot // ShootFramework is initialized once the shoot has been created successfully ShootFramework *ShootFramework }
ShootCreationFramework represents the shoot test framework that includes test functions that can be executed ona specific shoot
func NewShootCreationFramework ¶ added in v1.3.0
func NewShootCreationFramework(cfg *ShootCreationConfig) *ShootCreationFramework
NewShootCreationFramework creates a new simple Shoot creation framework
func (*ShootCreationFramework) AfterEach ¶ added in v1.3.0
func (f *ShootCreationFramework) AfterEach(ctx context.Context)
AfterEach should be called in ginkgo's AfterEach. Cleans up resources and dumps the shoot state if the test failed
func (*ShootCreationFramework) BeforeEach ¶ added in v1.3.0
func (f *ShootCreationFramework) BeforeEach()
BeforeEach should be called in ginkgo's BeforeEach. It sets up the shoot creation framework.
func (*ShootCreationFramework) CreateShootAndWaitForCreation ¶ added in v1.40.0
func (f *ShootCreationFramework) CreateShootAndWaitForCreation(ctx context.Context, initializeShootWithFlags bool) error
CreateShootAndWaitForCreation creates a shoot using this framework's configuration and waits for successful creation.
func (*ShootCreationFramework) InitializeShootWithFlags ¶ added in v1.5.0
func (f *ShootCreationFramework) InitializeShootWithFlags(ctx context.Context) error
InitializeShootWithFlags initializes a shoot to be created by this framework.
func (*ShootCreationFramework) Verify ¶ added in v1.40.0
func (f *ShootCreationFramework) Verify()
Verify asserts that the shoot creation was successful.
type ShootFramework ¶
type ShootFramework struct { *GardenerFramework TestDescription Config *ShootConfig SeedClient kubernetes.Interface ShootClient kubernetes.Interface Seed *gardencorev1beta1.Seed CloudProfile *gardencorev1beta1.CloudProfile Shoot *gardencorev1beta1.Shoot Project *gardencorev1beta1.Project Namespace string }
ShootFramework represents the shoot test framework that includes test functions that can be executed on a specific shoot
func NewShootFramework ¶
func NewShootFramework(cfg *ShootConfig) *ShootFramework
NewShootFramework creates a new simple Shoot framework
func (*ShootFramework) AddShoot ¶
func (f *ShootFramework) AddShoot(ctx context.Context, shootName, shootNamespace string) error
AddShoot sets the shoot and its seed for the GardenerOperation.
func (*ShootFramework) AfterEach ¶
func (f *ShootFramework) AfterEach(ctx context.Context)
AfterEach should be called in ginkgo's AfterEach. Cleans up resources and dumps the shoot state if the test failed
func (*ShootFramework) BeforeEach ¶
func (f *ShootFramework) BeforeEach(ctx context.Context)
BeforeEach should be called in ginkgo's BeforeEach. It sets up the shoot framework.
func (*ShootFramework) CreateNewNamespace ¶
func (f *ShootFramework) CreateNewNamespace(ctx context.Context) (string, error)
CreateNewNamespace creates a new namespace with a generated name prefixed with "gardener-e2e-". The created namespace is automatically cleaned up when the test is finished.
func (*ShootFramework) DumpState ¶
func (f *ShootFramework) DumpState(ctx context.Context)
DumpState dumps the state of a shoot The state includes all k8s components running in the shoot itself as well as the controlplane
func (*ShootFramework) GetCloudProfile ¶
func (f *ShootFramework) GetCloudProfile(ctx context.Context) (*gardencorev1beta1.CloudProfile, error)
GetCloudProfile returns the cloudprofile of the shoot
func (*ShootFramework) GetValiLogs ¶ added in v1.71.0
func (f *ShootFramework) GetValiLogs(ctx context.Context, valiLabels map[string]string, valiNamespace, key, value string, client kubernetes.Interface) (*SearchResponse, error)
GetValiLogs gets logs from the last 1 hour for <key>, <value> from the vali instance in <valiNamespace>
func (*ShootFramework) HibernateShoot ¶
func (f *ShootFramework) HibernateShoot(ctx context.Context) error
HibernateShoot hibernates the shoot of the framework
func (*ShootFramework) IsAPIServerRunning ¶ added in v1.7.0
func (f *ShootFramework) IsAPIServerRunning(ctx context.Context) (bool, error)
IsAPIServerRunning checks, if the Shoot's API server deployment is present, not yet deleted and has at least one available replica.
func (*ShootFramework) ShootKubeconfigSecretName ¶
func (f *ShootFramework) ShootKubeconfigSecretName() string
ShootKubeconfigSecretName gets the name of the secret with the kubeconfig of the shoot
func (*ShootFramework) ShootSeedNamespace ¶
func (f *ShootFramework) ShootSeedNamespace() string
ShootSeedNamespace gets the shoot namespace in the seed
func (*ShootFramework) UpdateShoot ¶
func (f *ShootFramework) UpdateShoot(ctx context.Context, update func(shoot *gardencorev1beta1.Shoot) error) error
UpdateShoot Updates a shoot from a shoot Object and waits for its reconciliation
func (*ShootFramework) WaitForShootCondition ¶ added in v1.2.0
func (f *ShootFramework) WaitForShootCondition(ctx context.Context, interval, timeout time.Duration, conditionType gardencorev1beta1.ConditionType, conditionStatus gardencorev1beta1.ConditionStatus) error
WaitForShootCondition waits for the shoot to contain the specified condition
func (*ShootFramework) WakeUpShoot ¶
func (f *ShootFramework) WakeUpShoot(ctx context.Context) error
WakeUpShoot wakes up the hibernated shoot of the framework
type ShootMigrationConfig ¶ added in v1.13.0
type ShootMigrationConfig struct { TargetSeedName string SourceSeedName string ShootName string ShootNamespace string AddTestRunTaint string SkipNodeCheck bool SkipMachinesCheck bool SkipShootClientCreation bool SkipProtectedToleration bool }
ShootMigrationConfig is the configuration for a shoot migration test that will be filled with user provided data
type ShootMigrationTest ¶ added in v1.13.0
type ShootMigrationTest struct { GardenerFramework *GardenerFramework Config *ShootMigrationConfig TargetSeedClient kubernetes.Interface SourceSeedClient kubernetes.Interface ShootClient kubernetes.Interface TargetSeed *gardencorev1beta1.Seed SourceSeed *gardencorev1beta1.Seed ComparisonElementsBeforeMigration ShootComparisonElements ComparisonElementsAfterMigration ShootComparisonElements Shoot gardencorev1beta1.Shoot SeedShootNamespace string MigrationTime metav1.Time }
ShootMigrationTest represents a shoot migration test. It can be used to test the migration of shoots between various seeds.
func NewShootMigrationTest ¶ added in v1.13.0
func NewShootMigrationTest(ctx context.Context, f *GardenerFramework, cfg *ShootMigrationConfig) (*ShootMigrationTest, error)
NewShootMigrationTest creates a new simple shoot migration test
func (*ShootMigrationTest) CheckObjectsTimestamp ¶ added in v1.13.0
func (t *ShootMigrationTest) CheckObjectsTimestamp(ctx context.Context, mrExcludeList, resourcesWithGeneratedName []string) error
CheckObjectsTimestamp checks the timestamp of all objects that the resource-manager creates in the Shoot cluster. The timestamp should not be after ShootMigrationTest.MigrationTime.
func (ShootMigrationTest) CheckSecretAndServiceAccount ¶ added in v1.50.0
func (t ShootMigrationTest) CheckSecretAndServiceAccount(ctx context.Context) error
CheckSecretAndServiceAccount checks the test secret and service account exists in the shoot.
func (ShootMigrationTest) CleanUpSecretAndServiceAccount ¶ added in v1.50.0
func (t ShootMigrationTest) CleanUpSecretAndServiceAccount(ctx context.Context) error
CleanUpSecretAndServiceAccount cleans up the test secret and service account
func (ShootMigrationTest) CreateSecretAndServiceAccount ¶ added in v1.50.0
func (t ShootMigrationTest) CreateSecretAndServiceAccount(ctx context.Context) error
CreateSecretAndServiceAccount creates test secret and service account
func (*ShootMigrationTest) GetMachineDetails ¶ added in v1.13.0
func (t *ShootMigrationTest) GetMachineDetails(ctx context.Context, seedClient kubernetes.Interface) (machineNames, machineNodes []string, err error)
GetMachineDetails uses the seedClient to fetch all Machine names and the names of their corresponding Nodes
func (*ShootMigrationTest) GetNodeNames ¶ added in v1.13.0
func (t *ShootMigrationTest) GetNodeNames(ctx context.Context, shootClient kubernetes.Interface) (nodeNames []string, err error)
GetNodeNames uses the shootClient to fetch all Node names from the Shoot
func (*ShootMigrationTest) GetPersistedSecrets ¶ added in v1.44.1
func (t *ShootMigrationTest) GetPersistedSecrets(ctx context.Context, seedClient kubernetes.Interface) (map[string]corev1.Secret, error)
GetPersistedSecrets uses the seedClient to fetch the data of all Secrets that have the `persist` label key set to true from the Shoot's control plane namespace
func (ShootMigrationTest) MarkOSCSecret ¶ added in v1.97.0
func (t ShootMigrationTest) MarkOSCSecret(ctx context.Context) error
MarkOSCSecret marks the operating system config pool hashes secret to verify that it is correctly migrated
func (*ShootMigrationTest) MigrateShoot ¶ added in v1.13.0
func (t *ShootMigrationTest) MigrateShoot(ctx context.Context) error
MigrateShoot triggers shoot migration by changing the value of "shoot.Spec.SeedName" to the value of "ShootMigrationConfig.TargetSeedName"
func (ShootMigrationTest) VerifyMigration ¶ added in v1.50.0
func (t ShootMigrationTest) VerifyMigration(ctx context.Context) error
VerifyMigration checks that the shoot components are migrated properly
type TestDescription ¶
type TestDescription struct {
// contains filtered or unexported fields
}
TestDescription labels tests according to the provided labels in the expected order.
func NewTestDescription ¶
func NewTestDescription(baseLabel string) TestDescription
NewTestDescription creates a new test description
func (TestDescription) Beta ¶
func (t TestDescription) Beta() TestDescription
Beta labels a test as beta test
func (TestDescription) CIt ¶
func (t TestDescription) CIt(text string, body func(context.Context), timeout time.Duration, opts ...TestOption)
CIt defines a contextified ginkgo It block and enhances the test description with the provided labels
func (TestDescription) Default ¶
func (t TestDescription) Default() TestDescription
Default labels a test as default test
func (TestDescription) Disruptive ¶
func (t TestDescription) Disruptive() TestDescription
Disruptive labels a test as disruptive. This kind of test should run with care.
func (TestDescription) FCIt ¶
func (t TestDescription) FCIt(text string, body func(context.Context), timeout time.Duration, opts ...TestOption)
FCIt defines a contextified ginkgo FIt block and enhances the test description with the provided labels
func (TestDescription) FIt ¶
func (t TestDescription) FIt(text string, body func(), opts ...TestOption)
FIt defines a ginkgo FIt block and enhances the test description with the provided labels
func (TestDescription) It ¶
func (t TestDescription) It(text string, body func(), opts ...TestOption)
It defines a ginkgo It block and enhances the test description with the provided labels
func (TestDescription) Release ¶
func (t TestDescription) Release() TestDescription
Release labels a test as release relevant test
func (TestDescription) Serial ¶
func (t TestDescription) Serial() TestDescription
Serial labels a test to be run as serial step
func (TestDescription) String ¶
func (t TestDescription) String() string
String returns the test description labels
type TestOption ¶ added in v1.5.0
type TestOption interface { // ApplyToTestOptions applies this configuration to the given test options. ApplyToTestOptions(*TestOptions) }
TestOption is some configuration that modifies options for testcase.
func WithAfterTests ¶ added in v1.5.0
func WithAfterTests(funcs ...func()) TestOption
WithAfterTests adds functions to the current test that are called when the test has finished
func WithCAfterTest ¶ added in v1.5.0
func WithCAfterTest(body func(ctx context.Context), timeout time.Duration) TestOption
WithCAfterTest adds contextified functions to the current test that are called when the test has finished
type TestOptions ¶ added in v1.5.0
type TestOptions struct { // afterTests holds a list of all registered AfterTest functions // that are executed when the test has finished. AfterTests afterTests // CAfterTests holds a list of all registered contextified AfterTest functions // that are executed when the test has finished. CAfterTests []cAfterTestOption }
TestOptions contains options to add additional functionality or cleanup handlers to a testcase.
func (*TestOptions) ApplyOptions ¶ added in v1.5.0
func (o *TestOptions) ApplyOptions(opts []TestOption) *TestOptions
ApplyOptions applies the given test options on these options.
func (*TestOptions) Complete ¶ added in v1.5.0
func (o *TestOptions) Complete(it func())
Complete registers all test options that are configured. it should be a function that configures a ginkgo test case This should get called when all options are applied.
type TextValidation ¶ added in v1.4.0
TextValidation is a map of regular expression to description that is used to validate texts based on allowed or denied regexps.
func (*TextValidation) ValidateAsAllowlist ¶ added in v1.16.0
func (v *TextValidation) ValidateAsAllowlist(text []byte) error
ValidateAsAllowlist validates that all allowed regular expressions are in the given text.
func (*TextValidation) ValidateAsDenylist ¶ added in v1.16.0
func (v *TextValidation) ValidateAsDenylist(text []byte) error
ValidateAsDenylist validates that no denied regular expressions are in the given text.
Source Files ¶
- cleanup.go
- common.go
- commonframework.go
- dump.go
- errors.go
- gardener_utils.go
- gardenerframework.go
- gingko_utils.go
- gomega_utils.go
- http_utils.go
- k8s_utils.go
- pod_executor.go
- rootpod_executor.go
- shoot_utils.go
- shootcreationframework.go
- shootframework.go
- shootmigrationtest.go
- template.go
- test_description.go
- test_options.go
- utils.go
- worker_utils.go