mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 07:47:56 +00:00
Update in-tree azureDisk and azureFile tests
This commit is contained in:
parent
3a4c35cc89
commit
31c86e38ac
@ -1246,14 +1246,7 @@ type azureDiskDriver struct {
|
|||||||
driverInfo storageframework.DriverInfo
|
driverInfo storageframework.DriverInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
type azureDiskVolume struct {
|
|
||||||
volumeName string
|
|
||||||
}
|
|
||||||
|
|
||||||
var _ storageframework.TestDriver = &azureDiskDriver{}
|
var _ storageframework.TestDriver = &azureDiskDriver{}
|
||||||
var _ storageframework.PreprovisionedVolumeTestDriver = &azureDiskDriver{}
|
|
||||||
var _ storageframework.InlineVolumeTestDriver = &azureDiskDriver{}
|
|
||||||
var _ storageframework.PreprovisionedPVTestDriver = &azureDiskDriver{}
|
|
||||||
var _ storageframework.DynamicPVTestDriver = &azureDiskDriver{}
|
var _ storageframework.DynamicPVTestDriver = &azureDiskDriver{}
|
||||||
var _ storageframework.CustomTimeoutsTestDriver = &azureDiskDriver{}
|
var _ storageframework.CustomTimeoutsTestDriver = &azureDiskDriver{}
|
||||||
|
|
||||||
@ -1297,51 +1290,6 @@ func (a *azureDiskDriver) SkipUnsupportedTest(pattern storageframework.TestPatte
|
|||||||
e2eskipper.SkipUnlessProviderIs("azure")
|
e2eskipper.SkipUnlessProviderIs("azure")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *azureDiskDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume storageframework.TestVolume) *v1.VolumeSource {
|
|
||||||
av, ok := e2evolume.(*azureDiskVolume)
|
|
||||||
if !ok {
|
|
||||||
framework.Failf("Failed to cast test volume of type %T to the Azure test volume", e2evolume)
|
|
||||||
}
|
|
||||||
diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
|
|
||||||
|
|
||||||
kind := v1.AzureManagedDisk
|
|
||||||
volSource := v1.VolumeSource{
|
|
||||||
AzureDisk: &v1.AzureDiskVolumeSource{
|
|
||||||
DiskName: diskName,
|
|
||||||
DataDiskURI: av.volumeName,
|
|
||||||
Kind: &kind,
|
|
||||||
ReadOnly: &readOnly,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
if fsType != "" {
|
|
||||||
volSource.AzureDisk.FSType = &fsType
|
|
||||||
}
|
|
||||||
return &volSource
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *azureDiskDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume storageframework.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
|
|
||||||
av, ok := e2evolume.(*azureDiskVolume)
|
|
||||||
if !ok {
|
|
||||||
framework.Failf("Failed to cast test volume of type %T to the Azure test volume", e2evolume)
|
|
||||||
}
|
|
||||||
|
|
||||||
diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
|
|
||||||
|
|
||||||
kind := v1.AzureManagedDisk
|
|
||||||
pvSource := v1.PersistentVolumeSource{
|
|
||||||
AzureDisk: &v1.AzureDiskVolumeSource{
|
|
||||||
DiskName: diskName,
|
|
||||||
DataDiskURI: av.volumeName,
|
|
||||||
Kind: &kind,
|
|
||||||
ReadOnly: &readOnly,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
if fsType != "" {
|
|
||||||
pvSource.AzureDisk.FSType = &fsType
|
|
||||||
}
|
|
||||||
return &pvSource, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *azureDiskDriver) GetDynamicProvisionStorageClass(ctx context.Context, config *storageframework.PerTestConfig, fsType string) *storagev1.StorageClass {
|
func (a *azureDiskDriver) GetDynamicProvisionStorageClass(ctx context.Context, config *storageframework.PerTestConfig, fsType string) *storagev1.StorageClass {
|
||||||
provisioner := "kubernetes.io/azure-disk"
|
provisioner := "kubernetes.io/azure-disk"
|
||||||
parameters := map[string]string{}
|
parameters := map[string]string{}
|
||||||
@ -1362,27 +1310,12 @@ func (a *azureDiskDriver) PrepareTest(ctx context.Context, f *framework.Framewor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *azureDiskDriver) CreateVolume(ctx context.Context, config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
|
func (a *azureDiskDriver) GetTimeouts() *framework.TimeoutContext {
|
||||||
ginkgo.By("creating a test azure disk volume")
|
timeouts := framework.NewTimeoutContext()
|
||||||
zone := getInlineVolumeZone(ctx, config.Framework)
|
timeouts.PodStart = time.Minute * 15
|
||||||
if volType == storageframework.InlineVolume {
|
timeouts.PodDelete = time.Minute * 15
|
||||||
// PD will be created in framework.TestContext.CloudConfig.Zone zone,
|
timeouts.PVDelete = time.Minute * 20
|
||||||
// so pods should be also scheduled there.
|
return timeouts
|
||||||
config.ClientNodeSelection = e2epod.NodeSelection{
|
|
||||||
Selector: map[string]string{
|
|
||||||
v1.LabelTopologyZone: zone,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
volumeName, err := e2epv.CreatePDWithRetryAndZone(ctx, zone)
|
|
||||||
framework.ExpectNoError(err)
|
|
||||||
return &azureDiskVolume{
|
|
||||||
volumeName: volumeName,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (v *azureDiskVolume) DeleteVolume(ctx context.Context) {
|
|
||||||
_ = e2epv.DeletePDWithRetry(ctx, v.volumeName)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// AWS
|
// AWS
|
||||||
@ -1704,17 +1637,7 @@ type azureFileDriver struct {
|
|||||||
driverInfo storageframework.DriverInfo
|
driverInfo storageframework.DriverInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
type azureFileVolume struct {
|
|
||||||
accountName string
|
|
||||||
shareName string
|
|
||||||
secretName string
|
|
||||||
secretNamespace string
|
|
||||||
}
|
|
||||||
|
|
||||||
var _ storageframework.TestDriver = &azureFileDriver{}
|
var _ storageframework.TestDriver = &azureFileDriver{}
|
||||||
var _ storageframework.PreprovisionedVolumeTestDriver = &azureFileDriver{}
|
|
||||||
var _ storageframework.InlineVolumeTestDriver = &azureFileDriver{}
|
|
||||||
var _ storageframework.PreprovisionedPVTestDriver = &azureFileDriver{}
|
|
||||||
var _ storageframework.DynamicPVTestDriver = &azureFileDriver{}
|
var _ storageframework.DynamicPVTestDriver = &azureFileDriver{}
|
||||||
|
|
||||||
// InitAzureFileDriver returns azureFileDriver that implements TestDriver interface
|
// InitAzureFileDriver returns azureFileDriver that implements TestDriver interface
|
||||||
@ -1751,37 +1674,6 @@ func (a *azureFileDriver) SkipUnsupportedTest(pattern storageframework.TestPatte
|
|||||||
e2eskipper.SkipUnlessProviderIs("azure")
|
e2eskipper.SkipUnlessProviderIs("azure")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *azureFileDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume storageframework.TestVolume) *v1.VolumeSource {
|
|
||||||
av, ok := e2evolume.(*azureFileVolume)
|
|
||||||
if !ok {
|
|
||||||
framework.Failf("Failed to cast test volume of type %T to the Azure test volume", e2evolume)
|
|
||||||
}
|
|
||||||
volSource := v1.VolumeSource{
|
|
||||||
AzureFile: &v1.AzureFileVolumeSource{
|
|
||||||
SecretName: av.secretName,
|
|
||||||
ShareName: av.shareName,
|
|
||||||
ReadOnly: readOnly,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return &volSource
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *azureFileDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume storageframework.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
|
|
||||||
av, ok := e2evolume.(*azureFileVolume)
|
|
||||||
if !ok {
|
|
||||||
framework.Failf("Failed to cast test volume of type %T to the Azure test volume", e2evolume)
|
|
||||||
}
|
|
||||||
pvSource := v1.PersistentVolumeSource{
|
|
||||||
AzureFile: &v1.AzureFilePersistentVolumeSource{
|
|
||||||
SecretName: av.secretName,
|
|
||||||
ShareName: av.shareName,
|
|
||||||
SecretNamespace: &av.secretNamespace,
|
|
||||||
ReadOnly: readOnly,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return &pvSource, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *azureFileDriver) GetDynamicProvisionStorageClass(ctx context.Context, config *storageframework.PerTestConfig, fsType string) *storagev1.StorageClass {
|
func (a *azureFileDriver) GetDynamicProvisionStorageClass(ctx context.Context, config *storageframework.PerTestConfig, fsType string) *storagev1.StorageClass {
|
||||||
provisioner := "kubernetes.io/azure-file"
|
provisioner := "kubernetes.io/azure-file"
|
||||||
parameters := map[string]string{}
|
parameters := map[string]string{}
|
||||||
@ -1797,45 +1689,3 @@ func (a *azureFileDriver) PrepareTest(ctx context.Context, f *framework.Framewor
|
|||||||
Framework: f,
|
Framework: f,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *azureFileDriver) CreateVolume(ctx context.Context, config *storageframework.PerTestConfig, volType storageframework.TestVolType) storageframework.TestVolume {
|
|
||||||
ginkgo.By("creating a test azure file volume")
|
|
||||||
accountName, accountKey, shareName, err := e2epv.CreateShare()
|
|
||||||
framework.ExpectNoError(err)
|
|
||||||
|
|
||||||
secretName := "azure-storage-account-" + accountName + "-secret"
|
|
||||||
secret := &v1.Secret{
|
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
|
||||||
Namespace: config.Framework.Namespace.Name,
|
|
||||||
Name: secretName,
|
|
||||||
},
|
|
||||||
|
|
||||||
Data: map[string][]byte{
|
|
||||||
"azurestorageaccountname": []byte(accountName),
|
|
||||||
"azurestorageaccountkey": []byte(accountKey),
|
|
||||||
},
|
|
||||||
Type: "Opaque",
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = config.Framework.ClientSet.CoreV1().Secrets(config.Framework.Namespace.Name).Create(ctx, secret, metav1.CreateOptions{})
|
|
||||||
framework.ExpectNoError(err)
|
|
||||||
return &azureFileVolume{
|
|
||||||
accountName: accountName,
|
|
||||||
shareName: shareName,
|
|
||||||
secretName: secretName,
|
|
||||||
secretNamespace: config.Framework.Namespace.Name,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (v *azureFileVolume) DeleteVolume(ctx context.Context) {
|
|
||||||
err := e2epv.DeleteShare(v.accountName, v.shareName)
|
|
||||||
framework.ExpectNoError(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *azureDiskDriver) GetTimeouts() *framework.TimeoutContext {
|
|
||||||
timeouts := framework.NewTimeoutContext()
|
|
||||||
timeouts.PodStart = time.Minute * 15
|
|
||||||
timeouts.PodDelete = time.Minute * 15
|
|
||||||
timeouts.PVDelete = time.Minute * 20
|
|
||||||
return timeouts
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user