testsuites

package
v1.24.1 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2024 License: Apache-2.0 Imports: 39 Imported by: 0

Documentation

Index

Constants

View Source
const (
	VolumePVCKind      = "PersistentVolumeClaim"
	APIVersionv1alpha1 = "v1alpha1"
)

Variables

This section is empty.

Functions

func GenerateSASToken added in v1.16.0

func GenerateSASToken(accountName, accountKey string) string

Types

type DataSource

type DataSource struct {
	Kind string
	Name string
}

type DynamicallyProvisionedCmdVolumeTest

type DynamicallyProvisionedCmdVolumeTest struct {
	CSIDriver              driver.DynamicPVTestDriver
	Pods                   []PodDetails
	StorageClassParameters map[string]string
}

DynamicallyProvisionedCmdVolumeTest will provision required StorageClass(es), PVC(s) and Pod(s) Waiting for the PV provisioner to create a new PV Testing if the Pod(s) Cmd is run with a 0 exit code

func (*DynamicallyProvisionedCmdVolumeTest) Run

type DynamicallyProvisionedCollocatedPodTest

type DynamicallyProvisionedCollocatedPodTest struct {
	CSIDriver              driver.DynamicPVTestDriver
	Pods                   []PodDetails
	ColocatePods           bool
	StorageClassParameters map[string]string
}

DynamicallyProvisionedCollocatedPodTest will provision required StorageClass(es), PVC(s) and Pod(s) Waiting for the PV provisioner to create a new PV Testing if multiple Pod(s) can write simultaneously

func (*DynamicallyProvisionedCollocatedPodTest) Run

type DynamicallyProvisionedDeletePodTest

type DynamicallyProvisionedDeletePodTest struct {
	CSIDriver              driver.DynamicPVTestDriver
	Pod                    PodDetails
	PodCheck               *PodExecCheck
	StorageClassParameters map[string]string
}

DynamicallyProvisionedDeletePodTest will provision required StorageClass and Deployment Testing if the Pod can write and read to mounted volumes Deleting a pod, and again testing if the Pod can write and read to mounted volumes

func (*DynamicallyProvisionedDeletePodTest) Run

type DynamicallyProvisionedInlineVolumeTest added in v1.2.0

type DynamicallyProvisionedInlineVolumeTest struct {
	CSIDriver     driver.DynamicPVTestDriver
	Pods          []PodDetails
	SecretName    string
	ContainerName string
	ReadOnly      bool
}

DynamicallyProvisionedInlineVolumeTest will provision required SecretName, ContainerName Waiting for the PV provisioner to create an inline volume Testing if the Pod(s) Cmd is run with a 0 exit code

func (*DynamicallyProvisionedInlineVolumeTest) Run added in v1.2.0

type DynamicallyProvisionedInvalidMountOptions added in v0.7.0

type DynamicallyProvisionedInvalidMountOptions struct {
	CSIDriver              driver.DynamicPVTestDriver
	Pods                   []PodDetails
	StorageClassParameters map[string]string
}

DynamicallyProvisionedInvalidMountOptions will provision a storage class with invalid mount options Testing if the Pod(s) Cmd is run with a 0 exit code

func (*DynamicallyProvisionedInvalidMountOptions) Run added in v0.7.0

type DynamicallyProvisionedPodWithMultiplePVsTest added in v0.7.0

type DynamicallyProvisionedPodWithMultiplePVsTest struct {
	CSIDriver driver.DynamicPVTestDriver
	Pods      []PodDetails
}

DynamicallyProvisionedPodWithMultiplePVsTest will provision one pod with multiple PVs Waiting for the PV provisioner to create a new PV Testing if the Pod(s) Cmd is run with a 0 exit code

func (*DynamicallyProvisionedPodWithMultiplePVsTest) Run added in v0.7.0

type DynamicallyProvisionedReadOnlyVolumeTest

type DynamicallyProvisionedReadOnlyVolumeTest struct {
	CSIDriver              driver.DynamicPVTestDriver
	Pods                   []PodDetails
	StorageClassParameters map[string]string
}

DynamicallyProvisionedReadOnlyVolumeTest will provision required StorageClass(es), PVC(s) and Pod(s) Waiting for the PV provisioner to create a new PV Testing that the Pod(s) cannot write to the volume when mounted

func (*DynamicallyProvisionedReadOnlyVolumeTest) Run

type DynamicallyProvisionedReclaimPolicyTest

type DynamicallyProvisionedReclaimPolicyTest struct {
	CSIDriver              driver.DynamicPVTestDriver
	Volumes                []VolumeDetails
	Driver                 *blob.Driver
	StorageClassParameters map[string]string
}

DynamicallyProvisionedReclaimPolicyTest will provision required PV(s) and PVC(s) Testing the correct behavior for different reclaimPolicies

func (*DynamicallyProvisionedReclaimPolicyTest) Run

type DynamicallyProvisionedResizeVolumeTest added in v0.11.0

type DynamicallyProvisionedResizeVolumeTest struct {
	CSIDriver              driver.DynamicPVTestDriver
	Pods                   []PodDetails
	StorageClassParameters map[string]string
}

DynamicallyProvisionedResizeVolumeTest will provision required StorageClass(es), PVC(s) and Pod(s) Waiting for the PV provisioner to resize the PV Testing if the PV is resized successfully.

func (*DynamicallyProvisionedResizeVolumeTest) Run added in v0.11.0

type DynamicallyProvisionedRestartDriverTest added in v1.17.0

type DynamicallyProvisionedRestartDriverTest struct {
	CSIDriver              driver.DynamicPVTestDriver
	Pod                    PodDetails
	PodCheck               *PodExecCheck
	StorageClassParameters map[string]string
	RestartDriverFunc      func()
}

DynamicallyProvisionedRestartDriverTest will test to ensure that restarting driver doesn't affect pod mounting. It will mount a pod, restart the driver daemonset and ensure that the pod still has access to original volume.

func (*DynamicallyProvisionedRestartDriverTest) Run added in v1.17.0

type DynamicallyProvisionedVolumeCloningTest added in v1.23.2

type DynamicallyProvisionedVolumeCloningTest struct {
	CSIDriver              driver.DynamicPVTestDriver
	Pod                    PodDetails
	PodWithClonedVolume    PodDetails
	ClonedVolumeSize       string
	StorageClassParameters map[string]string
}

DynamicallyProvisionedVolumeCloningTest will provision required StorageClass(es), PVC(s) and Pod(s) ClonedVolumeSize optional for when testing for cloned volume with different size to the original volume

func (*DynamicallyProvisionedVolumeCloningTest) Run added in v1.23.2

type DynamicallyProvisionedVolumeUnmountTest added in v1.20.0

type DynamicallyProvisionedVolumeUnmountTest struct {
	CSIDriver              driver.DynamicPVTestDriver
	Driver                 *blob.Driver
	Pod                    PodDetails
	PodCheck               *PodExecCheck
	StorageClassParameters map[string]string
}

DynamicallyProvisionedVolumeUnmountTest will provision required StorageClass and Deployment Testing if the Pod can write and read to mounted volumes Delete the volume and check whether pod could be terminated successfully

func (*DynamicallyProvisionedVolumeUnmountTest) Run added in v1.20.0

type PodDetails

type PodDetails struct {
	Cmd     string
	Volumes []VolumeDetails
}

func (*PodDetails) SetupDeployment

func (pod *PodDetails) SetupDeployment(ctx context.Context, client clientset.Interface, namespace *v1.Namespace, csiDriver driver.DynamicPVTestDriver, storageClassParameters map[string]string) (*TestDeployment, []func(context.Context), string)

func (*PodDetails) SetupWithCSIInlineVolumes added in v1.2.0

func (pod *PodDetails) SetupWithCSIInlineVolumes(client clientset.Interface, namespace *v1.Namespace, secretName, shareName string, readOnly bool) (*TestPod, []func(context.Context))

func (*PodDetails) SetupWithDynamicMultipleVolumes added in v0.7.0

func (pod *PodDetails) SetupWithDynamicMultipleVolumes(ctx context.Context, client clientset.Interface, namespace *v1.Namespace, csiDriver driver.DynamicPVTestDriver) (*TestPod, []func(context.Context))

SetupWithDynamicMultipleVolumes each pod will be mounted with multiple volumes with different storage account types

func (*PodDetails) SetupWithDynamicVolumes

func (pod *PodDetails) SetupWithDynamicVolumes(ctx context.Context, client clientset.Interface, namespace *v1.Namespace, csiDriver driver.DynamicPVTestDriver, storageClassParameters map[string]string) (*TestPod, []func(context.Context))

func (*PodDetails) SetupWithPreProvisionedVolumes

func (pod *PodDetails) SetupWithPreProvisionedVolumes(ctx context.Context, client clientset.Interface, namespace *v1.Namespace, csiDriver driver.PreProvisionedVolumeTestDriver) (*TestPod, []func(context.Context))

type PodExecCheck

type PodExecCheck struct {
	Cmd            []string
	ExpectedString string
}

type PreProvisionedExistingCredentialsTest added in v0.5.0

type PreProvisionedExistingCredentialsTest struct {
	CSIDriver driver.PreProvisionedVolumeTestDriver
	Pods      []PodDetails
}

PreProvisionedExistingCredentialsTest will provision required StorageClass(es), PVC(s) and Pod(s) Testing that the Pod(s) can be created successfully with existing credentials in k8s cluster

func (*PreProvisionedExistingCredentialsTest) Run added in v0.5.0

type PreProvisionedKeyVaultTest added in v1.16.0

type PreProvisionedKeyVaultTest struct {
	CSIDriver driver.PreProvisionedVolumeTestDriver
	Pods      []PodDetails
	Driver    *blob.Driver
}

PreProvisionedKeyVaultTest will provision required PV(s), PVC(s) and Pod(s) Testing that the Pod(s) can be created successfully with provided Key Vault which is used to store storage account name and key

func (*PreProvisionedKeyVaultTest) Run added in v1.16.0

func (t *PreProvisionedKeyVaultTest) Run(ctx context.Context, client clientset.Interface, namespace *v1.Namespace)

type PreProvisionedMultiplePods added in v1.2.0

type PreProvisionedMultiplePods struct {
	CSIDriver driver.PreProvisionedVolumeTestDriver
	Pods      []PodDetails
}

PreProvisionedMultiplePods will provision required PV(s), PVC(s) and Pod(s) Testing that the Pod(s) cannot write to the volume when mounted

func (*PreProvisionedMultiplePods) Run added in v1.2.0

func (t *PreProvisionedMultiplePods) Run(ctx context.Context, client clientset.Interface, namespace *v1.Namespace)

type PreProvisionedProvidedCredentiasTest added in v0.5.0

type PreProvisionedProvidedCredentiasTest struct {
	CSIDriver driver.PreProvisionedVolumeTestDriver
	Pods      []PodDetails
	Driver    *blob.Driver
}

PreProvisionedProvidedCredentiasTest will provision required PV(s), PVC(s) and Pod(s) Testing that the Pod(s) can be created successfully with provided storage account name and key(or sastoken)

func (*PreProvisionedProvidedCredentiasTest) Run added in v0.5.0

type PreProvisionedReadOnlyVolumeTest

type PreProvisionedReadOnlyVolumeTest struct {
	CSIDriver driver.PreProvisionedVolumeTestDriver
	Pods      []PodDetails
}

PreProvisionedReadOnlyVolumeTest will provision required PV(s), PVC(s) and Pod(s) Testing that the Pod(s) cannot write to the volume when mounted

func (*PreProvisionedReadOnlyVolumeTest) Run

type PreProvisionedReclaimPolicyTest

type PreProvisionedReclaimPolicyTest struct {
	CSIDriver driver.PreProvisionedVolumeTestDriver
	Volumes   []VolumeDetails
}

PreProvisionedReclaimPolicyTest will provision required PV(s) and PVC(s) Testing the correct behavior for different reclaimPolicies

func (*PreProvisionedReclaimPolicyTest) Run

type PreProvisionedSASTokenTest added in v1.16.0

type PreProvisionedSASTokenTest struct {
	CSIDriver driver.PreProvisionedVolumeTestDriver
	Pods      []PodDetails
	Driver    *blob.Driver
}

PreProvisionedSASTokenTest will provision required PV(s), PVC(s) and Pod(s) Testing that the Pod(s) can be created successfully with provided Key Vault which is used to store storage SAS token

func (*PreProvisionedSASTokenTest) Run added in v1.16.0

func (t *PreProvisionedSASTokenTest) Run(ctx context.Context, client clientset.Interface, namespace *v1.Namespace)

type TestDeployment

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

func NewTestDeployment

func NewTestDeployment(c clientset.Interface, ns *v1.Namespace, command string, pvc *v1.PersistentVolumeClaim, volumeName, mountPath string, readOnly bool) *TestDeployment

func (*TestDeployment) Cleanup

func (t *TestDeployment) Cleanup(ctx context.Context)

func (*TestDeployment) Create

func (t *TestDeployment) Create(ctx context.Context)

func (*TestDeployment) DeletePodAndWait

func (t *TestDeployment) DeletePodAndWait(ctx context.Context)

func (*TestDeployment) Exec

func (t *TestDeployment) Exec(command []string, expectedString string)

func (*TestDeployment) Logs

func (t *TestDeployment) Logs(ctx context.Context) ([]byte, error)

func (*TestDeployment) PollForStringInPodsExec added in v1.17.0

func (t *TestDeployment) PollForStringInPodsExec(command []string, expectedString string)

func (*TestDeployment) WaitForPodReady

func (t *TestDeployment) WaitForPodReady(ctx context.Context)

type TestPersistentVolumeClaim

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

func NewTestPersistentVolumeClaim

func NewTestPersistentVolumeClaim(c clientset.Interface, ns *v1.Namespace, claimSize string, volumeMode VolumeMode, sc *storagev1.StorageClass) *TestPersistentVolumeClaim

func NewTestPersistentVolumeClaimWithDataSource

func NewTestPersistentVolumeClaimWithDataSource(c clientset.Interface, ns *v1.Namespace, claimSize string, volumeMode VolumeMode, sc *storagev1.StorageClass, dataSource *v1.TypedLocalObjectReference) *TestPersistentVolumeClaim

func (*TestPersistentVolumeClaim) Cleanup

func (t *TestPersistentVolumeClaim) Cleanup(ctx context.Context)

func (*TestPersistentVolumeClaim) Create

func (t *TestPersistentVolumeClaim) Create(ctx context.Context)

func (*TestPersistentVolumeClaim) DeleteBackingVolume

func (t *TestPersistentVolumeClaim) DeleteBackingVolume(ctx context.Context, azfile *blob.Driver)

func (*TestPersistentVolumeClaim) DeleteBoundPersistentVolume

func (t *TestPersistentVolumeClaim) DeleteBoundPersistentVolume(ctx context.Context)

func (*TestPersistentVolumeClaim) ReclaimPolicy

func (*TestPersistentVolumeClaim) ValidateProvisionedPersistentVolume

func (t *TestPersistentVolumeClaim) ValidateProvisionedPersistentVolume(ctx context.Context)

func (*TestPersistentVolumeClaim) WaitForBound

func (*TestPersistentVolumeClaim) WaitForPersistentVolumePhase

func (t *TestPersistentVolumeClaim) WaitForPersistentVolumePhase(ctx context.Context, phase v1.PersistentVolumePhase)

type TestPod

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

func NewTestPod

func NewTestPod(c clientset.Interface, ns *v1.Namespace, command string) *TestPod

func (*TestPod) Cleanup

func (t *TestPod) Cleanup(ctx context.Context)

func (*TestPod) Create

func (t *TestPod) Create(ctx context.Context)

func (*TestPod) Logs

func (t *TestPod) Logs(ctx context.Context) ([]byte, error)

func (*TestPod) SetNodeSelector

func (t *TestPod) SetNodeSelector(nodeSelector map[string]string)

func (*TestPod) SetupInlineVolume added in v1.2.0

func (t *TestPod) SetupInlineVolume(name, mountPath, secretName, containerName string, readOnly bool)

func (*TestPod) SetupRawBlockVolume

func (t *TestPod) SetupRawBlockVolume(pvc *v1.PersistentVolumeClaim, name, devicePath string)

func (*TestPod) SetupVolume

func (t *TestPod) SetupVolume(pvc *v1.PersistentVolumeClaim, name, mountPath string, readOnly bool)

func (*TestPod) WaitForFailedMountError added in v0.7.0

func (t *TestPod) WaitForFailedMountError(ctx context.Context)

func (*TestPod) WaitForFailure

func (t *TestPod) WaitForFailure(ctx context.Context)

func (*TestPod) WaitForRunning

func (t *TestPod) WaitForRunning(ctx context.Context)

func (*TestPod) WaitForSuccess

func (t *TestPod) WaitForSuccess(ctx context.Context)

type TestPreProvisionedPersistentVolume

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

func (*TestPreProvisionedPersistentVolume) Create

type TestSecret added in v0.5.0

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

func NewTestSecret added in v0.5.0

func NewTestSecret(c clientset.Interface, ns *v1.Namespace, name string, data map[string]string) *TestSecret

func (*TestSecret) Cleanup added in v0.5.0

func (t *TestSecret) Cleanup(ctx context.Context)

func (*TestSecret) Create added in v0.5.0

func (t *TestSecret) Create(ctx context.Context)

type TestStorageClass

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

func (*TestStorageClass) Cleanup

func (t *TestStorageClass) Cleanup(ctx context.Context)

func (*TestStorageClass) Create

type VolumeDetails

type VolumeDetails struct {
	VolumeType            string
	FSType                string
	Encrypted             bool
	MountOptions          []string
	ClaimSize             string
	ReclaimPolicy         *v1.PersistentVolumeReclaimPolicy
	VolumeBindingMode     *storagev1.VolumeBindingMode
	AllowedTopologyValues []string
	VolumeMode            VolumeMode
	VolumeMount           VolumeMountDetails
	VolumeDevice          VolumeDeviceDetails
	// Optional, used with pre-provisioned volumes
	VolumeID string
	// Optional, used with PVCs created from snapshots
	DataSource *DataSource
	// Optional, used with specified StorageClass
	StorageClass       *storagev1.StorageClass
	NodeStageSecretRef string
	Attrib             map[string]string
}

func (*VolumeDetails) CreateStorageClass added in v1.23.2

func (volume *VolumeDetails) CreateStorageClass(ctx context.Context, client clientset.Interface, namespace *v1.Namespace, csiDriver driver.DynamicPVTestDriver, storageClassParameters map[string]string) (*TestStorageClass, func(ctx context.Context))

func (*VolumeDetails) SetupDynamicPersistentVolumeClaim

func (volume *VolumeDetails) SetupDynamicPersistentVolumeClaim(ctx context.Context, client clientset.Interface, namespace *v1.Namespace, csiDriver driver.DynamicPVTestDriver, storageClassParameters map[string]string) (*TestPersistentVolumeClaim, []func(context.Context))

func (*VolumeDetails) SetupPreProvisionedPersistentVolumeClaim

func (volume *VolumeDetails) SetupPreProvisionedPersistentVolumeClaim(ctx context.Context, client clientset.Interface, namespace *v1.Namespace, csiDriver driver.PreProvisionedVolumeTestDriver) (*TestPersistentVolumeClaim, []func(ctx context.Context))

type VolumeDeviceDetails

type VolumeDeviceDetails struct {
	NameGenerate string
	DevicePath   string
}

type VolumeMode

type VolumeMode int
const (
	FileSystem VolumeMode = iota
	Block
)

type VolumeMountDetails

type VolumeMountDetails struct {
	NameGenerate      string
	MountPathGenerate string
	ReadOnly          bool
}

Jump to

Keyboard shortcuts

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