Merge pull request #82324 from andyzhangx/fix-azure-pv-e2e-test

test: fix azure disk e2e test failure
This commit is contained in:
Kubernetes Prow Robot 2019-09-11 15:25:53 -07:00 committed by GitHub
commit 411caaf469
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 5 deletions

View File

@ -10,6 +10,7 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
"//staging/src/k8s.io/legacy-cloud-providers/azure:go_default_library", "//staging/src/k8s.io/legacy-cloud-providers/azure:go_default_library",
"//test/e2e/framework:go_default_library", "//test/e2e/framework:go_default_library",
"//vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-07-01/compute:go_default_library",
], ],
) )

View File

@ -21,6 +21,8 @@ import (
"fmt" "fmt"
"os" "os"
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-07-01/compute"
v1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
@ -62,16 +64,24 @@ func (p *Provider) DeleteNode(node *v1.Node) error {
// CreatePD creates a persistent volume // CreatePD creates a persistent volume
func (p *Provider) CreatePD(zone string) (string, error) { func (p *Provider) CreatePD(zone string) (string, error) {
pdName := fmt.Sprintf("%s-%s", framework.TestContext.Prefix, string(uuid.NewUUID())) pdName := fmt.Sprintf("%s-%s", framework.TestContext.Prefix, string(uuid.NewUUID()))
_, diskURI, _, err := p.azureCloud.CreateVolume(pdName, "" /* account */, "" /* sku */, "" /* location */, 1 /* sizeGb */)
if err != nil { volumeOptions := &azure.ManagedDiskOptions{
return "", err DiskName: pdName,
StorageAccountType: compute.StandardLRS,
ResourceGroup: "",
PVCName: pdName,
SizeGB: 1,
Tags: nil,
AvailabilityZone: zone,
DiskIOPSReadWrite: "",
DiskMBpsReadWrite: "",
} }
return diskURI, nil return p.azureCloud.CreateManagedDisk(volumeOptions)
} }
// DeletePD deletes a persistent volume // DeletePD deletes a persistent volume
func (p *Provider) DeletePD(pdName string) error { func (p *Provider) DeletePD(pdName string) error {
if err := p.azureCloud.DeleteVolume(pdName); err != nil { if err := p.azureCloud.DeleteManagedDisk(pdName); err != nil {
framework.Logf("failed to delete Azure volume %q: %v", pdName, err) framework.Logf("failed to delete Azure volume %q: %v", pdName, err)
return err return err
} }

View File

@ -1440,10 +1440,12 @@ func (a *azureDriver) GetVolumeSource(readOnly bool, fsType string, volume tests
diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):] diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
kind := v1.AzureManagedDisk
volSource := v1.VolumeSource{ volSource := v1.VolumeSource{
AzureDisk: &v1.AzureDiskVolumeSource{ AzureDisk: &v1.AzureDiskVolumeSource{
DiskName: diskName, DiskName: diskName,
DataDiskURI: av.volumeName, DataDiskURI: av.volumeName,
Kind: &kind,
ReadOnly: &readOnly, ReadOnly: &readOnly,
}, },
} }
@ -1459,10 +1461,12 @@ func (a *azureDriver) GetPersistentVolumeSource(readOnly bool, fsType string, vo
diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):] diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
kind := v1.AzureManagedDisk
pvSource := v1.PersistentVolumeSource{ pvSource := v1.PersistentVolumeSource{
AzureDisk: &v1.AzureDiskVolumeSource{ AzureDisk: &v1.AzureDiskVolumeSource{
DiskName: diskName, DiskName: diskName,
DataDiskURI: av.volumeName, DataDiskURI: av.volumeName,
Kind: &kind,
ReadOnly: &readOnly, ReadOnly: &readOnly,
}, },
} }
@ -1498,6 +1502,13 @@ func (a *azureDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestCo
func (a *azureDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume { func (a *azureDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
ginkgo.By("creating a test azure disk volume") ginkgo.By("creating a test azure disk volume")
if volType == testpatterns.InlineVolume {
// Volume will be created in framework.TestContext.CloudConfig.Zone zone,
// so pods should be also scheduled there.
config.ClientNodeSelector = map[string]string{
v1.LabelZoneFailureDomain: framework.TestContext.CloudConfig.Zone,
}
}
volumeName, err := framework.CreatePDWithRetry() volumeName, err := framework.CreatePDWithRetry()
framework.ExpectNoError(err) framework.ExpectNoError(err)
return &azureVolume{ return &azureVolume{