e2e tests: use attributes instead of beta annotations

This commit is contained in:
Jan Safranek 2017-03-02 10:23:57 +01:00
parent ca7cdc8c96
commit 7dfc71d9eb
2 changed files with 51 additions and 28 deletions

View File

@ -38,6 +38,8 @@ const (
resourceQuotaTimeout = 30 * time.Second resourceQuotaTimeout = 30 * time.Second
) )
var classGold string = "gold"
var _ = framework.KubeDescribe("ResourceQuota", func() { var _ = framework.KubeDescribe("ResourceQuota", func() {
f := framework.NewDefaultFramework("resourcequota") f := framework.NewDefaultFramework("resourcequota")
@ -330,17 +332,15 @@ var _ = framework.KubeDescribe("ResourceQuota", func() {
usedResources[v1.ResourceQuotas] = resource.MustParse("1") usedResources[v1.ResourceQuotas] = resource.MustParse("1")
usedResources[v1.ResourcePersistentVolumeClaims] = resource.MustParse("0") usedResources[v1.ResourcePersistentVolumeClaims] = resource.MustParse("0")
usedResources[v1.ResourceRequestsStorage] = resource.MustParse("0") usedResources[v1.ResourceRequestsStorage] = resource.MustParse("0")
usedResources[core.V1ResourceByStorageClass("gold", v1.ResourcePersistentVolumeClaims)] = resource.MustParse("0") usedResources[core.V1ResourceByStorageClass(classGold, v1.ResourcePersistentVolumeClaims)] = resource.MustParse("0")
usedResources[core.V1ResourceByStorageClass("gold", v1.ResourceRequestsStorage)] = resource.MustParse("0") usedResources[core.V1ResourceByStorageClass(classGold, v1.ResourceRequestsStorage)] = resource.MustParse("0")
err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources)
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
By("Creating a PersistentVolumeClaim with storage class") By("Creating a PersistentVolumeClaim with storage class")
pvc := newTestPersistentVolumeClaimForQuota("test-claim") pvc := newTestPersistentVolumeClaimForQuota("test-claim")
pvc.Annotations = map[string]string{ pvc.Spec.StorageClassName = &classGold
v1.BetaStorageClassAnnotation: "gold",
}
pvc, err = f.ClientSet.Core().PersistentVolumeClaims(f.Namespace.Name).Create(pvc) pvc, err = f.ClientSet.Core().PersistentVolumeClaims(f.Namespace.Name).Create(pvc)
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
@ -348,8 +348,8 @@ var _ = framework.KubeDescribe("ResourceQuota", func() {
usedResources = v1.ResourceList{} usedResources = v1.ResourceList{}
usedResources[v1.ResourcePersistentVolumeClaims] = resource.MustParse("1") usedResources[v1.ResourcePersistentVolumeClaims] = resource.MustParse("1")
usedResources[v1.ResourceRequestsStorage] = resource.MustParse("1Gi") usedResources[v1.ResourceRequestsStorage] = resource.MustParse("1Gi")
usedResources[core.V1ResourceByStorageClass("gold", v1.ResourcePersistentVolumeClaims)] = resource.MustParse("1") usedResources[core.V1ResourceByStorageClass(classGold, v1.ResourcePersistentVolumeClaims)] = resource.MustParse("1")
usedResources[core.V1ResourceByStorageClass("gold", v1.ResourceRequestsStorage)] = resource.MustParse("1Gi") usedResources[core.V1ResourceByStorageClass(classGold, v1.ResourceRequestsStorage)] = resource.MustParse("1Gi")
err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources)
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
@ -361,8 +361,8 @@ var _ = framework.KubeDescribe("ResourceQuota", func() {
By("Ensuring resource quota status released usage") By("Ensuring resource quota status released usage")
usedResources[v1.ResourcePersistentVolumeClaims] = resource.MustParse("0") usedResources[v1.ResourcePersistentVolumeClaims] = resource.MustParse("0")
usedResources[v1.ResourceRequestsStorage] = resource.MustParse("0") usedResources[v1.ResourceRequestsStorage] = resource.MustParse("0")
usedResources[core.V1ResourceByStorageClass("gold", v1.ResourcePersistentVolumeClaims)] = resource.MustParse("0") usedResources[core.V1ResourceByStorageClass(classGold, v1.ResourcePersistentVolumeClaims)] = resource.MustParse("0")
usedResources[core.V1ResourceByStorageClass("gold", v1.ResourceRequestsStorage)] = resource.MustParse("0") usedResources[core.V1ResourceByStorageClass(classGold, v1.ResourceRequestsStorage)] = resource.MustParse("0")
err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources)
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
@ -579,8 +579,8 @@ func newTestResourceQuota(name string) *v1.ResourceQuota {
hard[v1.ResourceSecrets] = resource.MustParse("10") hard[v1.ResourceSecrets] = resource.MustParse("10")
hard[v1.ResourcePersistentVolumeClaims] = resource.MustParse("10") hard[v1.ResourcePersistentVolumeClaims] = resource.MustParse("10")
hard[v1.ResourceRequestsStorage] = resource.MustParse("10Gi") hard[v1.ResourceRequestsStorage] = resource.MustParse("10Gi")
hard[core.V1ResourceByStorageClass("gold", v1.ResourcePersistentVolumeClaims)] = resource.MustParse("10") hard[core.V1ResourceByStorageClass(classGold, v1.ResourcePersistentVolumeClaims)] = resource.MustParse("10")
hard[core.V1ResourceByStorageClass("gold", v1.ResourceRequestsStorage)] = resource.MustParse("10Gi") hard[core.V1ResourceByStorageClass(classGold, v1.ResourceRequestsStorage)] = resource.MustParse("10Gi")
return &v1.ResourceQuota{ return &v1.ResourceQuota{
ObjectMeta: metav1.ObjectMeta{Name: name}, ObjectMeta: metav1.ObjectMeta{Name: name},
Spec: v1.ResourceQuotaSpec{Hard: hard}, Spec: v1.ResourceQuotaSpec{Hard: hard},

View File

@ -114,7 +114,9 @@ var _ = framework.KubeDescribe("Dynamic provisioning", func() {
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
By("creating a claim with a dynamic provisioning annotation") By("creating a claim with a dynamic provisioning annotation")
claim := newClaim(ns, "internal", false) claim := newClaim(ns)
claim.Spec.StorageClassName = &class.Name
defer func() { defer func() {
c.Core().PersistentVolumeClaims(ns).Delete(claim.Name, nil) c.Core().PersistentVolumeClaims(ns).Delete(claim.Name, nil)
}() }()
@ -131,6 +133,32 @@ var _ = framework.KubeDescribe("Dynamic provisioning", func() {
testDynamicProvisioning(c, claim, "2Gi") testDynamicProvisioning(c, claim, "2Gi")
} }
}) })
})
framework.KubeDescribe("DynamicProvisioner Beta", func() {
It("should create and delete persistent volumes [Slow] [Volume]", func() {
framework.SkipUnlessProviderIs("openstack", "gce", "aws", "gke")
By("creating a StorageClass")
class := newStorageClass("", "beta")
_, err := c.StorageV1beta1().StorageClasses().Create(class)
defer c.StorageV1beta1().StorageClasses().Delete(class.Name, nil)
Expect(err).NotTo(HaveOccurred())
By("creating a claim with a dynamic provisioning annotation")
claim := newClaim(ns)
claim.Annotations = map[string]string{
v1.BetaStorageClassAnnotation: class.Name,
}
defer func() {
c.Core().PersistentVolumeClaims(ns).Delete(claim.Name, nil)
}()
claim, err = c.Core().PersistentVolumeClaims(ns).Create(claim)
Expect(err).NotTo(HaveOccurred())
testDynamicProvisioning(c, claim, "2Gi")
})
// NOTE: Slow! The test will wait up to 5 minutes (framework.ClaimProvisionTimeout) when there is // NOTE: Slow! The test will wait up to 5 minutes (framework.ClaimProvisionTimeout) when there is
// no regression. // no regression.
@ -165,7 +193,7 @@ var _ = framework.KubeDescribe("Dynamic provisioning", func() {
} }
By("Creating a StorageClass for the unmanaged zone") By("Creating a StorageClass for the unmanaged zone")
sc := newStorageClass("kubernetes.io/gce-pd", suffix) sc := newStorageClass("", suffix)
// Set an unmanaged zone. // Set an unmanaged zone.
sc.Parameters = map[string]string{"zone": unmanagedZone} sc.Parameters = map[string]string{"zone": unmanagedZone}
sc, err = c.StorageV1beta1().StorageClasses().Create(sc) sc, err = c.StorageV1beta1().StorageClasses().Create(sc)
@ -173,7 +201,9 @@ var _ = framework.KubeDescribe("Dynamic provisioning", func() {
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
By("Creating a claim and expecting it to timeout") By("Creating a claim and expecting it to timeout")
pvc := newClaim(ns, suffix, false) pvc := newClaim(ns)
className := sc.Name
pvc.Spec.StorageClassName = &className
pvc, err = c.Core().PersistentVolumeClaims(ns).Create(pvc) pvc, err = c.Core().PersistentVolumeClaims(ns).Create(pvc)
defer Expect(c.Core().PersistentVolumeClaims(ns).Delete(pvc.Name, nil)).To(Succeed()) defer Expect(c.Core().PersistentVolumeClaims(ns).Delete(pvc.Name, nil)).To(Succeed())
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
@ -190,7 +220,9 @@ var _ = framework.KubeDescribe("Dynamic provisioning", func() {
framework.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere") framework.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere")
By("creating a claim with an alpha dynamic provisioning annotation") By("creating a claim with an alpha dynamic provisioning annotation")
claim := newClaim(ns, "", true) claim := newClaim(ns)
claim.Annotations = map[string]string{v1.AlphaStorageClassAnnotation: ""}
defer func() { defer func() {
c.Core().PersistentVolumeClaims(ns).Delete(claim.Name, nil) c.Core().PersistentVolumeClaims(ns).Delete(claim.Name, nil)
}() }()
@ -228,7 +260,9 @@ var _ = framework.KubeDescribe("Dynamic provisioning", func() {
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
By("creating a claim with a dynamic provisioning annotation") By("creating a claim with a dynamic provisioning annotation")
claim := newClaim(ns, "external", false) claim := newClaim(ns)
className := class.Name
claim.Spec.StorageClassName = &className
defer func() { defer func() {
c.Core().PersistentVolumeClaims(ns).Delete(claim.Name, nil) c.Core().PersistentVolumeClaims(ns).Delete(claim.Name, nil)
}() }()
@ -242,7 +276,7 @@ var _ = framework.KubeDescribe("Dynamic provisioning", func() {
}) })
}) })
func newClaim(ns, suffix string, alpha bool) *v1.PersistentVolumeClaim { func newClaim(ns string) *v1.PersistentVolumeClaim {
claim := v1.PersistentVolumeClaim{ claim := v1.PersistentVolumeClaim{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
GenerateName: "pvc-", GenerateName: "pvc-",
@ -260,17 +294,6 @@ func newClaim(ns, suffix string, alpha bool) *v1.PersistentVolumeClaim {
}, },
} }
if alpha {
claim.Annotations = map[string]string{
v1.AlphaStorageClassAnnotation: "",
}
} else {
claim.Annotations = map[string]string{
v1.BetaStorageClassAnnotation: "myclass-" + suffix,
}
}
return &claim return &claim
} }