Skip to content

Commit 4ba225a

Browse files
authored
Merge pull request kubernetes#81486 from wongma7/aws-testdriver
Re-implement AWS test driver interfaces
2 parents bd8a8db + 7851929 commit 4ba225a

File tree

1 file changed

+33
-21
lines changed

1 file changed

+33
-21
lines changed

test/e2e/storage/drivers/in_tree.go

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1512,17 +1512,18 @@ func (v *azureVolume) DeleteVolume() {
15121512

15131513
// AWS
15141514
type awsDriver struct {
1515-
volumeName string
1516-
15171515
driverInfo testsuites.DriverInfo
15181516
}
15191517

1518+
type awsVolume struct {
1519+
volumeName string
1520+
}
1521+
15201522
var _ testsuites.TestDriver = &awsDriver{}
15211523

1522-
// TODO: Fix authorization error in attach operation and uncomment below
1523-
//var _ testsuites.PreprovisionedVolumeTestDriver = &awsDriver{}
1524-
//var _ testsuites.InlineVolumeTestDriver = &awsDriver{}
1525-
//var _ testsuites.PreprovisionedPVTestDriver = &awsDriver{}
1524+
var _ testsuites.PreprovisionedVolumeTestDriver = &awsDriver{}
1525+
var _ testsuites.InlineVolumeTestDriver = &awsDriver{}
1526+
var _ testsuites.PreprovisionedPVTestDriver = &awsDriver{}
15261527
var _ testsuites.DynamicPVTestDriver = &awsDriver{}
15271528

15281529
// InitAwsDriver returns awsDriver that implements TestDriver interface
@@ -1534,7 +1535,10 @@ func InitAwsDriver() testsuites.TestDriver {
15341535
MaxFileSize: testpatterns.FileSizeMedium,
15351536
SupportedFsType: sets.NewString(
15361537
"", // Default fsType
1538+
"ext2",
15371539
"ext3",
1540+
"ext4",
1541+
"xfs",
15381542
"ntfs",
15391543
),
15401544
SupportedMountOption: sets.NewString("debug", "nouid32"),
@@ -1562,12 +1566,12 @@ func (a *awsDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
15621566
framework.SkipUnlessProviderIs("aws")
15631567
}
15641568

1565-
// TODO: Fix authorization error in attach operation and uncomment below
1566-
/*
15671569
func (a *awsDriver) GetVolumeSource(readOnly bool, fsType string, volume testsuites.TestVolume) *v1.VolumeSource {
1570+
av, ok := volume.(*awsVolume)
1571+
gomega.Expect(ok).To(gomega.BeTrue(), "Failed to cast test volume to AWS test volume")
15681572
volSource := v1.VolumeSource{
15691573
AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
1570-
VolumeID: a.volumeName,
1574+
VolumeID: av.volumeName,
15711575
ReadOnly: readOnly,
15721576
},
15731577
}
@@ -1578,18 +1582,19 @@ func (a *awsDriver) GetVolumeSource(readOnly bool, fsType string, volume testsui
15781582
}
15791583

15801584
func (a *awsDriver) GetPersistentVolumeSource(readOnly bool, fsType string, volume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
1585+
av, ok := volume.(*awsVolume)
1586+
gomega.Expect(ok).To(gomega.BeTrue(), "Failed to cast test volume to AWS test volume")
15811587
pvSource := v1.PersistentVolumeSource{
15821588
AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
1583-
VolumeID: a.volumeName,
1589+
VolumeID: av.volumeName,
15841590
ReadOnly: readOnly,
15851591
},
15861592
}
15871593
if fsType != "" {
15881594
pvSource.AWSElasticBlockStore.FSType = fsType
15891595
}
1590-
return &pvSource
1596+
return &pvSource, nil
15911597
}
1592-
*/
15931598

15941599
func (a *awsDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
15951600
provisioner := "kubernetes.io/aws-ebs"
@@ -1599,8 +1604,9 @@ func (a *awsDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestCo
15991604
}
16001605
ns := config.Framework.Namespace.Name
16011606
suffix := fmt.Sprintf("%s-sc", a.driverInfo.Name)
1607+
delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
16021608

1603-
return testsuites.GetStorageClass(provisioner, parameters, nil, ns, suffix)
1609+
return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
16041610
}
16051611

16061612
func (a *awsDriver) GetClaimSize() string {
@@ -1621,19 +1627,25 @@ func (a *awsDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConf
16211627
return config, func() {}
16221628
}
16231629

1624-
// TODO: Fix authorization error in attach operation and uncomment below
1625-
/*
16261630
func (a *awsDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
1631+
if volType == testpatterns.InlineVolume {
1632+
// PD will be created in framework.TestContext.CloudConfig.Zone zone,
1633+
// so pods should be also scheduled there.
1634+
config.ClientNodeSelector = map[string]string{
1635+
v1.LabelZoneFailureDomain: framework.TestContext.CloudConfig.Zone,
1636+
}
1637+
}
16271638
ginkgo.By("creating a test aws volume")
1628-
var err error
1629-
a.volumeName, err = framework.CreatePDWithRetry()
1630-
framework.ExpectNoError(err))
1639+
vname, err := framework.CreatePDWithRetry()
1640+
framework.ExpectNoError(err)
1641+
return &awsVolume{
1642+
volumeName: vname,
1643+
}
16311644
}
16321645

1633-
DeleteVolume() {
1634-
framework.DeletePDWithRetry(a.volumeName)
1646+
func (v *awsVolume) DeleteVolume() {
1647+
framework.DeletePDWithRetry(v.volumeName)
16351648
}
1636-
*/
16371649

16381650
// local
16391651
type localDriver struct {

0 commit comments

Comments
 (0)