mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-12-16 21:07:22 +00:00
Merge pull request #76625 from gnufied/skip-if-no-default-sc
Skip storage tests that depend on default SC - if no default SC is found
This commit is contained in:
@@ -48,12 +48,11 @@ var _ = utils.SIGDescribe("PVC Protection", func() {
|
||||
|
||||
By("Creating a PVC")
|
||||
suffix := "pvc-protection"
|
||||
defaultSC := getDefaultStorageClassName(client)
|
||||
framework.SkipIfNoDefaultStorageClass(client)
|
||||
testStorageClass := testsuites.StorageClassTest{
|
||||
ClaimSize: "1Gi",
|
||||
}
|
||||
pvc = newClaim(testStorageClass, nameSpace, suffix)
|
||||
pvc.Spec.StorageClassName = &defaultSC
|
||||
pvc, err = client.CoreV1().PersistentVolumeClaims(pvc.Namespace).Create(pvc)
|
||||
framework.ExpectNoError(err, "Error creating PVC")
|
||||
pvcCreatedAndNotDeleted = true
|
||||
|
||||
@@ -52,17 +52,19 @@ var _ = utils.SIGDescribe("[Serial] Volume metrics", func() {
|
||||
BeforeEach(func() {
|
||||
c = f.ClientSet
|
||||
ns = f.Namespace.Name
|
||||
var err error
|
||||
framework.SkipUnlessProviderIs("gce", "gke", "aws")
|
||||
defaultScName = getDefaultStorageClassName(c)
|
||||
verifyDefaultStorageClass(c, defaultScName, true)
|
||||
|
||||
defaultScName, err = framework.GetDefaultStorageClassName(c)
|
||||
if err != nil {
|
||||
framework.Failf(err.Error())
|
||||
}
|
||||
test := testsuites.StorageClassTest{
|
||||
Name: "default",
|
||||
ClaimSize: "2Gi",
|
||||
}
|
||||
|
||||
pvc = newClaim(test, ns, "default")
|
||||
var err error
|
||||
|
||||
metricsGrabber, err = metrics.NewMetricsGrabber(c, nil, true, false, true, false, false)
|
||||
|
||||
if err != nil {
|
||||
|
||||
@@ -775,7 +775,10 @@ var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
|
||||
// Modifying the default storage class can be disruptive to other tests that depend on it
|
||||
It("should be disabled by changing the default annotation [Serial] [Disruptive]", func() {
|
||||
framework.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere", "azure")
|
||||
scName := getDefaultStorageClassName(c)
|
||||
scName, scErr := framework.GetDefaultStorageClassName(c)
|
||||
if scErr != nil {
|
||||
framework.Failf(scErr.Error())
|
||||
}
|
||||
test := testsuites.StorageClassTest{
|
||||
Name: "default",
|
||||
ClaimSize: "2Gi",
|
||||
@@ -806,7 +809,10 @@ var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
|
||||
// Modifying the default storage class can be disruptive to other tests that depend on it
|
||||
It("should be disabled by removing the default annotation [Serial] [Disruptive]", func() {
|
||||
framework.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere", "azure")
|
||||
scName := getDefaultStorageClassName(c)
|
||||
scName, scErr := framework.GetDefaultStorageClassName(c)
|
||||
if scErr != nil {
|
||||
framework.Failf(scErr.Error())
|
||||
}
|
||||
test := testsuites.StorageClassTest{
|
||||
Name: "default",
|
||||
ClaimSize: "2Gi",
|
||||
@@ -975,27 +981,6 @@ var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
|
||||
})
|
||||
})
|
||||
|
||||
func getDefaultStorageClassName(c clientset.Interface) string {
|
||||
list, err := c.StorageV1().StorageClasses().List(metav1.ListOptions{})
|
||||
if err != nil {
|
||||
framework.Failf("Error listing storage classes: %v", err)
|
||||
}
|
||||
var scName string
|
||||
for _, sc := range list.Items {
|
||||
if storageutil.IsDefaultAnnotation(sc.ObjectMeta) {
|
||||
if len(scName) != 0 {
|
||||
framework.Failf("Multiple default storage classes found: %q and %q", scName, sc.Name)
|
||||
}
|
||||
scName = sc.Name
|
||||
}
|
||||
}
|
||||
if len(scName) == 0 {
|
||||
framework.Failf("No default storage class found")
|
||||
}
|
||||
framework.Logf("Default storage class: %q", scName)
|
||||
return scName
|
||||
}
|
||||
|
||||
func verifyDefaultStorageClass(c clientset.Interface, scName string, expectedDefault bool) {
|
||||
sc, err := c.StorageV1().StorageClasses().Get(scName, metav1.GetOptions{})
|
||||
framework.ExpectNoError(err)
|
||||
|
||||
Reference in New Issue
Block a user