Documentation ¶
Index ¶
- func CreateVolume(driver TestDriver, volType testpatterns.TestVolType) interface{}
- func DeleteVolume(driver TestDriver, volType testpatterns.TestVolType, testResource interface{})
- func GetDriverNameWithFeatureTags(driver TestDriver) string
- func GetSnapshotClass(snapshotter string, parameters map[string]string, ns string, suffix string) *unstructured.Unstructured
- func GetStorageClass(provisioner string, parameters map[string]string, ...) *storagev1.StorageClass
- func GetUniqueDriverName(driver TestDriver) string
- func RunTestSuite(f *framework.Framework, driver TestDriver, tsInits []func() TestSuite, ...)
- func SubpathTestPod(f *framework.Framework, subpath, volumeType string, source *v1.VolumeSource, ...) *v1.Pod
- func TestBasicSubpath(f *framework.Framework, contents string, pod *v1.Pod)
- func TestBasicSubpathFile(f *framework.Framework, contents string, pod *v1.Pod, filepath string)
- func TestBindingWaitForFirstConsumer(t StorageClassTest, client clientset.Interface, ...) (*v1.PersistentVolume, *v1.Node)
- func TestBindingWaitForFirstConsumerMultiPVC(t StorageClassTest, client clientset.Interface, ...) ([]*v1.PersistentVolume, *v1.Node)
- func TestCreateSnapshot(t SnapshotClassTest, client clientset.Interface, ...) *unstructured.Unstructured
- func TestDynamicProvisioning(t StorageClassTest, client clientset.Interface, ...) *v1.PersistentVolume
- func WaitForSnapshotReady(c dynamic.Interface, ns string, snapshotName string, ...) error
- type Capability
- type DriverInfo
- type DynamicPVTestDriver
- type InlineVolumeTestDriver
- type PreprovisionedPVTestDriver
- type PreprovisionedVolumeTestDriver
- type SnapshotClassTest
- type SnapshottableTestDriver
- type StorageClassTest
- type TestConfig
- type TestDriver
- type TestResource
- type TestSuite
- type TestSuiteInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateVolume ¶ added in v1.14.0
func CreateVolume(driver TestDriver, volType testpatterns.TestVolType) interface{}
CreateVolume creates volume for test unless dynamicPV test
func DeleteVolume ¶
func DeleteVolume(driver TestDriver, volType testpatterns.TestVolType, testResource interface{})
DeleteVolume deletes volume for test unless dynamicPV test
func GetDriverNameWithFeatureTags ¶ added in v1.14.0
func GetDriverNameWithFeatureTags(driver TestDriver) string
GetDriverNameWithFeatureTags returns driver name with feature tags For example)
- [Driver: nfs]
- [Driver: rbd][Feature:Volumes]
func GetSnapshotClass ¶ added in v1.14.0
func GetSnapshotClass( snapshotter string, parameters map[string]string, ns string, suffix string, ) *unstructured.Unstructured
GetSnapshotClass constructs a new SnapshotClass instance with a unique name that is based on namespace + suffix.
func GetStorageClass ¶ added in v1.14.0
func GetStorageClass( provisioner string, parameters map[string]string, bindingMode *storagev1.VolumeBindingMode, ns string, suffix string, ) *storagev1.StorageClass
GetStorageClass constructs a new StorageClass instance with a unique name that is based on namespace + suffix.
func GetUniqueDriverName ¶
func GetUniqueDriverName(driver TestDriver) string
GetUniqueDriverName returns unique driver name that can be used parallelly in tests
func RunTestSuite ¶
func RunTestSuite(f *framework.Framework, driver TestDriver, tsInits []func() TestSuite, tunePatternFunc func([]testpatterns.TestPattern) []testpatterns.TestPattern)
RunTestSuite runs all testpatterns of all testSuites for a driver
func SubpathTestPod ¶
func SubpathTestPod(f *framework.Framework, subpath, volumeType string, source *v1.VolumeSource, privilegedSecurityContext bool) *v1.Pod
SubpathTestPod returns a pod spec for subpath tests
func TestBasicSubpath ¶
TestBasicSubpath runs basic subpath test
func TestBasicSubpathFile ¶
TestBasicSubpathFile runs basic subpath file test
func TestBindingWaitForFirstConsumer ¶
func TestBindingWaitForFirstConsumer(t StorageClassTest, client clientset.Interface, claim *v1.PersistentVolumeClaim, class *storage.StorageClass) (*v1.PersistentVolume, *v1.Node)
func TestBindingWaitForFirstConsumerMultiPVC ¶
func TestBindingWaitForFirstConsumerMultiPVC(t StorageClassTest, client clientset.Interface, claims []*v1.PersistentVolumeClaim, class *storage.StorageClass) ([]*v1.PersistentVolume, *v1.Node)
func TestCreateSnapshot ¶
func TestCreateSnapshot( t SnapshotClassTest, client clientset.Interface, dynamicClient dynamic.Interface, claim *v1.PersistentVolumeClaim, class *storage.StorageClass, snapshotClass *unstructured.Unstructured, ) *unstructured.Unstructured
TestCreateSnapshot tests dynamic creating snapshot with specified SnapshotClassTest and snapshotClass
func TestDynamicProvisioning ¶ added in v1.13.0
func TestDynamicProvisioning(t StorageClassTest, client clientset.Interface, claim *v1.PersistentVolumeClaim, class *storage.StorageClass) *v1.PersistentVolume
TestDynamicProvisioning tests dynamic provisioning with specified StorageClassTest and storageClass
Types ¶
type Capability ¶ added in v1.14.0
type Capability string
Capability represents a feature that a volume plugin supports
const ( CapPersistence Capability = "persistence" // data is persisted across pod restarts CapBlock Capability = "block" // raw block mode CapFsGroup Capability = "fsGroup" // volume ownership via fsGroup CapExec Capability = "exec" // exec a file in the volume CapDataSource Capability = "dataSource" // support populate data from snapshot )
type DriverInfo ¶ added in v1.14.0
type DriverInfo struct { Name string // Name of the driver FeatureTag string // FeatureTag for the driver MaxFileSize int64 // Max file size to be tested for this driver SupportedFsType sets.String // Map of string for supported fs type SupportedMountOption sets.String // Map of string for supported mount option RequiredMountOption sets.String // Map of string for required mount option (Optional) Capabilities map[Capability]bool // Map that represents plugin capabilities Config TestConfig // Test configuration for the current test. }
DriverInfo represents a combination of parameters to be used in implementation of TestDriver
type DynamicPVTestDriver ¶ added in v1.14.0
type DynamicPVTestDriver interface { TestDriver // GetDynamicProvisionStorageClass returns a StorageClass dynamic provision Persistent Volume. // It will set fsType to the StorageClass, if TestDriver supports it. // It will return nil, if the TestDriver doesn't support it. GetDynamicProvisionStorageClass(fsType string) *storagev1.StorageClass // GetClaimSize returns the size of the volume that is to be provisioned ("5Gi", "1Mi"). // The size must be chosen so that the resulting volume is large enough for all // enabled tests and within the range supported by the underlying storage. GetClaimSize() string }
DynamicPVTestDriver represents an interface for a TestDriver that supports DynamicPV
type InlineVolumeTestDriver ¶ added in v1.14.0
type InlineVolumeTestDriver interface { PreprovisionedVolumeTestDriver // GetVolumeSource returns a volumeSource for inline volume. // It will set readOnly and fsType to the volumeSource, if TestDriver supports both of them. // It will return nil, if the TestDriver doesn't support either of the parameters. GetVolumeSource(readOnly bool, fsType string, testResource interface{}) *v1.VolumeSource }
InlineVolumeTestDriver represents an interface for a TestDriver that supports InlineVolume
type PreprovisionedPVTestDriver ¶ added in v1.14.0
type PreprovisionedPVTestDriver interface { PreprovisionedVolumeTestDriver // GetPersistentVolumeSource returns a PersistentVolumeSource with volume node affinity for pre-provisioned Persistent Volume. // It will set readOnly and fsType to the PersistentVolumeSource, if TestDriver supports both of them. // It will return nil, if the TestDriver doesn't support either of the parameters. // Volume node affinity is optional, it will be nil for volumes which does not have volume node affinity. GetPersistentVolumeSource(readOnly bool, fsType string, testResource interface{}) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) }
PreprovisionedPVTestDriver represents an interface for a TestDriver that supports PreprovisionedPV
type PreprovisionedVolumeTestDriver ¶ added in v1.14.0
type PreprovisionedVolumeTestDriver interface { TestDriver // CreateVolume creates a pre-provisioned volume. CreateVolume(testpatterns.TestVolType) interface{} // DeleteVolume deletes a volume that is created in CreateVolume DeleteVolume(testpatterns.TestVolType, interface{}) }
PreprovisionedVolumeTestDriver represents an interface for a TestDriver that has pre-provisioned volume
type SnapshotClassTest ¶ added in v1.14.0
type SnapshottableTestDriver ¶ added in v1.14.0
type SnapshottableTestDriver interface { TestDriver // GetSnapshotClass returns a SnapshotClass to create snapshot. // It will return nil, if the TestDriver doesn't support it. GetSnapshotClass() *unstructured.Unstructured }
SnapshottableTestDriver represents an interface for a TestDriver that supports DynamicSnapshot
type StorageClassTest ¶ added in v1.13.0
type StorageClassTest struct { Name string CloudProviders []string Provisioner string StorageClassName string Parameters map[string]string DelayBinding bool ClaimSize string ExpectedSize string PvCheck func(volume *v1.PersistentVolume) error NodeName string SkipWriteReadCheck bool VolumeMode *v1.PersistentVolumeMode NodeSelector map[string]string // NodeSelector for the pod ExpectUnschedulable bool // Whether the test pod is expected to be unschedulable }
StorageClassTest represents parameters to be used by provisioning tests
type TestConfig ¶
type TestConfig struct { // Some short word that gets inserted into dynamically // generated entities (pods, paths) as first part of the name // to make debugging easier. Can be the same for different // tests inside the test suite. Prefix string // The framework instance allocated for the current test. Framework *framework.Framework // If non-empty, then pods using a volume will be scheduled // onto the node with this name. Otherwise Kubernetes will // pick a node. ClientNodeName string // Some tests also support scheduling pods onto nodes with // these label/value pairs. As not all tests use this field, // a driver that absolutely needs the pods on a specific // node must use ClientNodeName. ClientNodeSelector map[string]string // Some test drivers initialize a storage server. This is // the configuration that then has to be used to run tests. // The values above are ignored for such tests. ServerConfig *framework.VolumeTestConfig // TopologyEnabled indicates that the Topology feature gate // should be enabled in external-provisioner TopologyEnabled bool }
TestConfig represents parameters that control test execution. They can still be modified after defining tests, for example in a BeforeEach or when creating the driver.
type TestDriver ¶ added in v1.14.0
type TestDriver interface { // GetDriverInfo returns DriverInfo for the TestDriver GetDriverInfo() *DriverInfo // CreateDriver creates all driver resources that is required for TestDriver method // except CreateVolume CreateDriver() // CreateDriver cleanup all the resources that is created in CreateDriver CleanupDriver() // SkipUnsupportedTest skips test in Testpattern is not suitable to test with the TestDriver SkipUnsupportedTest(testpatterns.TestPattern) }
TestDriver represents an interface for a driver to be tested in TestSuite
type TestResource ¶
type TestResource interface {
// contains filtered or unexported methods
}
TestResource represents an interface for resources that is used by TestSuite
type TestSuite ¶
type TestSuite interface {
// contains filtered or unexported methods
}
TestSuite represents an interface for a set of tests which works with TestDriver
func InitProvisioningTestSuite ¶ added in v1.13.0
func InitProvisioningTestSuite() TestSuite
InitProvisioningTestSuite returns provisioningTestSuite that implements TestSuite interface
func InitSnapshottableTestSuite ¶ added in v1.14.0
func InitSnapshottableTestSuite() TestSuite
InitSnapshottableTestSuite returns snapshottableTestSuite that implements TestSuite interface
func InitSubPathTestSuite ¶
func InitSubPathTestSuite() TestSuite
InitSubPathTestSuite returns subPathTestSuite that implements TestSuite interface
func InitVolumeIOTestSuite ¶
func InitVolumeIOTestSuite() TestSuite
InitVolumeIOTestSuite returns volumeIOTestSuite that implements TestSuite interface
func InitVolumeModeTestSuite ¶
func InitVolumeModeTestSuite() TestSuite
InitVolumeModeTestSuite returns volumeModeTestSuite that implements TestSuite interface
func InitVolumesTestSuite ¶
func InitVolumesTestSuite() TestSuite
InitVolumesTestSuite returns volumesTestSuite that implements TestSuite interface
type TestSuiteInfo ¶
type TestSuiteInfo struct {
// contains filtered or unexported fields
}
TestSuiteInfo represents a set of parameters for TestSuite