e2e/storage: drivers determine the claim size

Different drivers support different volume sizes. Some have certain
minimum sizes, some maximum sizes. Instead of hard-coding some kind of
default into the testsuites, now each driver that supports dynamic
provisioning has to provide the size.
This commit is contained in:
Patrick Ohly 2018-11-09 10:07:26 +01:00
parent 5349ce75fa
commit 41ab9449ed
6 changed files with 44 additions and 3 deletions

View File

@ -74,6 +74,11 @@ type DynamicPVTestDriver interface {
// 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
}
// Capability represents a feature that a volume plugin supports

View File

@ -103,6 +103,10 @@ func (h *hostpathCSIDriver) GetDynamicProvisionStorageClass(fsType string) *stor
return getStorageClass(provisioner, parameters, nil, ns, suffix)
}
func (h *hostpathCSIDriver) GetClaimSize() string {
return "5Gi"
}
func (h *hostpathCSIDriver) CreateDriver() {
By(fmt.Sprintf("deploying %s driver", h.driverInfo.Name))
f := h.driverInfo.Framework
@ -205,6 +209,10 @@ func (g *gcePDCSIDriver) GetDynamicProvisionStorageClass(fsType string) *storage
return getStorageClass(provisioner, parameters, nil, ns, suffix)
}
func (g *gcePDCSIDriver) GetClaimSize() string {
return "5Gi"
}
func (g *gcePDCSIDriver) CreateDriver() {
By("deploying csi gce-pd driver")
// It would be safer to rename the gcePD driver, but that
@ -293,6 +301,10 @@ func (g *gcePDExternalCSIDriver) GetDynamicProvisionStorageClass(fsType string)
return getStorageClass(provisioner, parameters, nil, ns, suffix)
}
func (g *gcePDExternalCSIDriver) GetClaimSize() string {
return "5Gi"
}
func (g *gcePDExternalCSIDriver) CreateDriver() {
}

View File

@ -138,6 +138,10 @@ func (n *nfsDriver) GetDynamicProvisionStorageClass(fsType string) *storagev1.St
return getStorageClass(provisioner, parameters, nil, ns, suffix)
}
func (n *nfsDriver) GetClaimSize() string {
return "5Gi"
}
func (n *nfsDriver) CreateDriver() {
f := n.driverInfo.Framework
cs := f.ClientSet
@ -1034,6 +1038,10 @@ func (c *cinderDriver) GetDynamicProvisionStorageClass(fsType string) *storagev1
return getStorageClass(provisioner, parameters, nil, ns, suffix)
}
func (c *cinderDriver) GetClaimSize() string {
return "5Gi"
}
func (c *cinderDriver) CreateDriver() {
}
@ -1196,6 +1204,10 @@ func (g *gcePdDriver) GetDynamicProvisionStorageClass(fsType string) *storagev1.
return getStorageClass(provisioner, parameters, nil, ns, suffix)
}
func (h *gcePdDriver) GetClaimSize() string {
return "5Gi"
}
func (g *gcePdDriver) CreateDriver() {
}
@ -1318,6 +1330,10 @@ func (v *vSphereDriver) GetDynamicProvisionStorageClass(fsType string) *storagev
return getStorageClass(provisioner, parameters, nil, ns, suffix)
}
func (v *vSphereDriver) GetClaimSize() string {
return "5Gi"
}
func (v *vSphereDriver) CreateDriver() {
}
@ -1436,6 +1452,10 @@ func (a *azureDriver) GetDynamicProvisionStorageClass(fsType string) *storagev1.
return getStorageClass(provisioner, parameters, nil, ns, suffix)
}
func (a *azureDriver) GetClaimSize() string {
return "5Gi"
}
func (a *azureDriver) CreateDriver() {
}
@ -1543,6 +1563,10 @@ func (a *awsDriver) GetDynamicProvisionStorageClass(fsType string) *storagev1.St
return getStorageClass(provisioner, parameters, nil, ns, suffix)
}
func (a *awsDriver) GetClaimSize() string {
return "5Gi"
}
func (a *awsDriver) CreateDriver() {
}

View File

@ -164,7 +164,7 @@ func (r *genericVolumeTestResource) setupResource(driver drivers.TestDriver, pat
case testpatterns.DynamicPV:
framework.Logf("Creating resource for dynamic PV")
if dDriver, ok := driver.(drivers.DynamicPVTestDriver); ok {
claimSize := "5Gi"
claimSize := dDriver.GetClaimSize()
r.sc = dDriver.GetDynamicProvisionStorageClass(fsType)
By("creating a StorageClass " + r.sc.Name)

View File

@ -151,7 +151,7 @@ func (p *provisioningTestResource) setupResource(driver drivers.TestDriver, patt
framework.Skipf("Driver %q does not define Dynamic Provision StorageClass - skipping", driver.GetDriverInfo().Name)
}
p.driver = driver
p.claimSize = "5Gi"
p.claimSize = dDriver.GetClaimSize()
p.pvc = getClaim(p.claimSize, driver.GetDriverInfo().Framework.Namespace.Name)
p.pvc.Spec.StorageClassName = &p.sc.Name
framework.Logf("In creating storage class object and pvc object for driver - sc: %v, pvc: %v", p.sc, p.pvc)

View File

@ -196,7 +196,7 @@ func (s *volumeModeTestResource) setupResource(driver drivers.TestDriver, patter
}
s.sc.VolumeBindingMode = &volBindMode
claimSize := "5Gi"
claimSize := dDriver.GetClaimSize()
s.pvc = getClaim(claimSize, ns.Name)
s.pvc.Spec.StorageClassName = &s.sc.Name
s.pvc.Spec.VolumeMode = &volMode