Separate in-tree gcepd driver for windows

Add a separate in-tree gcepd driver for windows cluster because it does
not support certain features as Linux driver.

Change-Id: I2fca86b3f32f17db7703c46a36944d9ee51f355f
This commit is contained in:
Jing Xu 2020-11-05 21:15:14 -08:00
parent 819ff9b087
commit 8c953c21ba
2 changed files with 33 additions and 5 deletions

View File

@ -1229,17 +1229,12 @@ var _ testsuites.DynamicPVTestDriver = &gcePdDriver{}
// InitGcePdDriver returns gcePdDriver that implements TestDriver interface
func InitGcePdDriver() testsuites.TestDriver {
// In current test structure, it first initialize the driver and then set up
// the new framework, so we cannot get the correct OS here. So here set to
// support all fs types including both linux and windows. We have code to check Node OS later
// during test.
supportedTypes := sets.NewString(
"", // Default fsType
"ext2",
"ext3",
"ext4",
"xfs",
"ntfs",
)
return &gcePdDriver{
driverInfo: testsuites.DriverInfo{
@ -1269,6 +1264,38 @@ func InitGcePdDriver() testsuites.TestDriver {
}
}
// InitWindowsGcePdDriver returns gcePdDriver running on Windows cluster that implements TestDriver interface
// In current test structure, it first initialize the driver and then set up
// the new framework, so we cannot get the correct OS here and select which file system is supported.
// So here uses a separate Windows in-tree gce pd driver
func InitWindowsGcePdDriver() testsuites.TestDriver {
supportedTypes := sets.NewString(
"ntfs",
)
return &gcePdDriver{
driverInfo: testsuites.DriverInfo{
Name: "windows-gcepd",
InTreePluginName: "kubernetes.io/gce-pd",
MaxFileSize: testpatterns.FileSizeMedium,
SupportedSizeRange: e2evolume.SizeRange{
Min: "1Gi",
},
SupportedFsType: supportedTypes,
TopologyKeys: []string{v1.LabelZoneFailureDomain},
Capabilities: map[testsuites.Capability]bool{
testsuites.CapControllerExpansion: false,
testsuites.CapPersistence: true,
testsuites.CapExec: true,
testsuites.CapMultiPODs: true,
// GCE supports volume limits, but the test creates large
// number of volumes and times out test suites.
testsuites.CapVolumeLimits: false,
testsuites.CapTopology: true,
},
},
}
}
func (g *gcePdDriver) GetDriverInfo() *testsuites.DriverInfo {
return &g.driverInfo
}

View File

@ -35,6 +35,7 @@ var testDrivers = []func() testsuites.TestDriver{
drivers.InitEmptydirDriver,
drivers.InitCinderDriver,
drivers.InitGcePdDriver,
drivers.InitWindowsGcePdDriver,
drivers.InitVSphereDriver,
drivers.InitAzureDiskDriver,
drivers.InitAwsDriver,