mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-11-26 19:35:10 +00:00
Merge pull request #45109 from rootfs/azure-e2e-pr
Automatic merge from submit-queue (batch tested with PRs 44044, 44766, 44930, 45109, 43301) e2e test: test azure disk volume **What this PR does / why we need it**: E2E test Azure disk volume **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes # **Special notes for your reviewer**: @kubernetes/sig-testing-pr-reviews **Release note**: ```release-note NONE ```
This commit is contained in:
@@ -64,6 +64,7 @@ go_library(
|
||||
"//pkg/client/unversioned/remotecommand:go_default_library",
|
||||
"//pkg/cloudprovider:go_default_library",
|
||||
"//pkg/cloudprovider/providers/aws:go_default_library",
|
||||
"//pkg/cloudprovider/providers/azure:go_default_library",
|
||||
"//pkg/cloudprovider/providers/gce:go_default_library",
|
||||
"//pkg/controller:go_default_library",
|
||||
"//pkg/controller/deployment/util:go_default_library",
|
||||
|
||||
@@ -689,6 +689,19 @@ func createPD() (string, error) {
|
||||
|
||||
volumeName := "aws://" + az + "/" + awsID
|
||||
return volumeName, nil
|
||||
} else if TestContext.Provider == "azure" {
|
||||
pdName := fmt.Sprintf("%s-%s", TestContext.Prefix, string(uuid.NewUUID()))
|
||||
azureCloud, err := GetAzureCloud()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
_, diskUri, _, err := azureCloud.CreateVolume(pdName, "" /* account */, "" /* sku */, "" /* location */, 1 /* sizeGb */)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return diskUri, nil
|
||||
|
||||
} else {
|
||||
return "", fmt.Errorf("provider does not support volume creation")
|
||||
}
|
||||
@@ -728,6 +741,18 @@ func deletePD(pdName string) error {
|
||||
}
|
||||
}
|
||||
return nil
|
||||
} else if TestContext.Provider == "azure" {
|
||||
azureCloud, err := GetAzureCloud()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
diskName := pdName[(strings.LastIndex(pdName, "/") + 1):]
|
||||
err = azureCloud.DeleteVolume(diskName, pdName)
|
||||
if err != nil {
|
||||
Logf("failed to delete Azure volume %q: %v", pdName, err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
} else {
|
||||
return fmt.Errorf("provider does not support volume deletion")
|
||||
}
|
||||
|
||||
@@ -141,6 +141,7 @@ type CloudConfig struct {
|
||||
NumNodes int
|
||||
ClusterTag string
|
||||
Network string
|
||||
ConfigFile string // for azure and openstack
|
||||
|
||||
Provider cloudprovider.Interface
|
||||
}
|
||||
@@ -209,6 +210,7 @@ func RegisterClusterFlags() {
|
||||
flag.IntVar(&cloudConfig.NumNodes, "num-nodes", -1, "Number of nodes in the cluster")
|
||||
|
||||
flag.StringVar(&cloudConfig.ClusterTag, "cluster-tag", "", "Tag used to identify resources. Only required if provider is aws.")
|
||||
flag.StringVar(&cloudConfig.ConfigFile, "cloud-config-file", "", "Cloud config file. Only required if provider is azure.")
|
||||
flag.IntVar(&TestContext.MinStartupPods, "minStartupPods", 0, "The number of pods which we need to see in 'Running' state with a 'Ready' condition of true, before we try running tests. This is useful in any cluster which needs some base pod-based services running before it can be used.")
|
||||
flag.DurationVar(&TestContext.SystemPodsStartupTimeout, "system-pods-startup-timeout", 10*time.Minute, "Timeout for waiting for all system pods to be running before starting tests.")
|
||||
flag.DurationVar(&TestContext.NodeSchedulableTimeout, "node-schedulable-timeout", 4*time.Hour, "Timeout for waiting for all nodes to be schedulable.")
|
||||
|
||||
@@ -83,6 +83,7 @@ import (
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
"k8s.io/kubernetes/pkg/client/conditions"
|
||||
"k8s.io/kubernetes/pkg/cloudprovider/providers/azure"
|
||||
gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
|
||||
"k8s.io/kubernetes/pkg/controller"
|
||||
deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util"
|
||||
@@ -5510,3 +5511,12 @@ func CreateEmptyFileOnPod(namespace string, podName string, filePath string) err
|
||||
_, err := RunKubectl("exec", fmt.Sprintf("--namespace=%s", namespace), podName, "--", "/bin/sh", "-c", fmt.Sprintf("touch %s", filePath))
|
||||
return err
|
||||
}
|
||||
|
||||
// GetAzureCloud returns azure cloud provider
|
||||
func GetAzureCloud() (*azure.Cloud, error) {
|
||||
cloud, ok := TestContext.CloudConfig.Provider.(*azure.Cloud)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("failed to convert CloudConfig.Provider to Azure: %#v", TestContext.CloudConfig.Provider)
|
||||
}
|
||||
return cloud, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user