mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 03:38:15 +00:00 
			
		
		
		
	Merge pull request #102665 from gnufied/add-online-expansion-cap
Add explicit capability for online volume expansion
This commit is contained in:
		@@ -143,6 +143,7 @@ func InitHostPathCSIDriver() storageframework.TestDriver {
 | 
			
		||||
		storageframework.CapBlock:               true,
 | 
			
		||||
		storageframework.CapPVCDataSource:       true,
 | 
			
		||||
		storageframework.CapControllerExpansion: true,
 | 
			
		||||
		storageframework.CapOnlineExpansion:     true,
 | 
			
		||||
		storageframework.CapSingleNodeVolume:    true,
 | 
			
		||||
 | 
			
		||||
		// This is needed for the
 | 
			
		||||
@@ -786,6 +787,7 @@ func InitGcePDCSIDriver() storageframework.TestDriver {
 | 
			
		||||
				storageframework.CapVolumeLimits:        false,
 | 
			
		||||
				storageframework.CapTopology:            true,
 | 
			
		||||
				storageframework.CapControllerExpansion: true,
 | 
			
		||||
				storageframework.CapOnlineExpansion:     true,
 | 
			
		||||
				storageframework.CapNodeExpansion:       true,
 | 
			
		||||
				storageframework.CapSnapshotDataSource:  true,
 | 
			
		||||
			},
 | 
			
		||||
 
 | 
			
		||||
@@ -1251,6 +1251,7 @@ func InitGcePdDriver() storageframework.TestDriver {
 | 
			
		||||
				storageframework.CapExec:                true,
 | 
			
		||||
				storageframework.CapMultiPODs:           true,
 | 
			
		||||
				storageframework.CapControllerExpansion: true,
 | 
			
		||||
				storageframework.CapOnlineExpansion:     true,
 | 
			
		||||
				storageframework.CapNodeExpansion:       true,
 | 
			
		||||
				// GCE supports volume limits, but the test creates large
 | 
			
		||||
				// number of volumes and times out test suites.
 | 
			
		||||
@@ -1692,6 +1693,7 @@ func InitAwsDriver() storageframework.TestDriver {
 | 
			
		||||
				storageframework.CapMultiPODs:           true,
 | 
			
		||||
				storageframework.CapControllerExpansion: true,
 | 
			
		||||
				storageframework.CapNodeExpansion:       true,
 | 
			
		||||
				storageframework.CapOnlineExpansion:     true,
 | 
			
		||||
				// AWS supports volume limits, but the test creates large
 | 
			
		||||
				// number of volumes and times out test suites.
 | 
			
		||||
				storageframework.CapVolumeLimits: false,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								test/e2e/storage/external/external.go
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								test/e2e/storage/external/external.go
									
									
									
									
										vendored
									
									
								
							@@ -203,6 +203,14 @@ func loadDriverDefinition(filename string) (*driverDefinition, error) {
 | 
			
		||||
	if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), data, driver); err != nil {
 | 
			
		||||
		return nil, errors.Wrap(err, filename)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// to ensure backward compatibility if controller expansion is enabled then set online expansion to true
 | 
			
		||||
	if _, ok := driver.GetDriverInfo().Capabilities[storageframework.CapOnlineExpansion]; !ok &&
 | 
			
		||||
		driver.GetDriverInfo().Capabilities[storageframework.CapControllerExpansion] {
 | 
			
		||||
		caps := driver.DriverInfo.Capabilities
 | 
			
		||||
		caps[storageframework.CapOnlineExpansion] = true
 | 
			
		||||
		driver.DriverInfo.Capabilities = caps
 | 
			
		||||
	}
 | 
			
		||||
	return driver, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -17,13 +17,14 @@ limitations under the License.
 | 
			
		||||
package framework
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"k8s.io/api/core/v1"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	v1 "k8s.io/api/core/v1"
 | 
			
		||||
	storagev1 "k8s.io/api/storage/v1"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
			
		||||
	"k8s.io/kubernetes/test/e2e/framework"
 | 
			
		||||
	e2evolume "k8s.io/kubernetes/test/e2e/framework/volume"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// TestDriver represents an interface for a driver to be tested in TestSuite.
 | 
			
		||||
@@ -164,6 +165,7 @@ const (
 | 
			
		||||
	CapRWX                 Capability = "RWX"                 // support ReadWriteMany access modes
 | 
			
		||||
	CapControllerExpansion Capability = "controllerExpansion" // support volume expansion for controller
 | 
			
		||||
	CapNodeExpansion       Capability = "nodeExpansion"       // support volume expansion for node
 | 
			
		||||
	CapOnlineExpansion     Capability = "onlineExpansion"     // supports online volume expansion
 | 
			
		||||
	CapVolumeLimits        Capability = "volumeLimits"        // support volume limits (can be *very* slow)
 | 
			
		||||
	CapSingleNodeVolume    Capability = "singleNodeVolume"    // support volume that can run on single node (like hostpath)
 | 
			
		||||
	CapTopology            Capability = "topology"            // support topology
 | 
			
		||||
 
 | 
			
		||||
@@ -247,6 +247,10 @@ func (v *volumeExpandTestSuite) DefineTests(driver storageframework.TestDriver,
 | 
			
		||||
			init()
 | 
			
		||||
			defer cleanup()
 | 
			
		||||
 | 
			
		||||
			if !driver.GetDriverInfo().Capabilities[storageframework.CapOnlineExpansion] {
 | 
			
		||||
				e2eskipper.Skipf("Driver %q does not support online volume expansion - skipping", driver.GetDriverInfo().Name)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			var err error
 | 
			
		||||
			ginkgo.By("Creating a pod with dynamically provisioned volume")
 | 
			
		||||
			podConfig := e2epod.Config{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user