// newTestResourceQuota returns a quota that enforces default constraints for testing func newTestResourceQuota(name string) *v1.ResourceQuota { hard := v1.ResourceList{} hard[v1.ResourcePods] = resource.MustParse("5") hard[v1.ResourceServices] = resource.MustParse("10") hard[v1.ResourceServicesNodePorts] = resource.MustParse("1") hard[v1.ResourceServicesLoadBalancers] = resource.MustParse("1") hard[v1.ResourceReplicationControllers] = resource.MustParse("10") hard[v1.ResourceQuotas] = resource.MustParse("1") hard[v1.ResourceCPU] = resource.MustParse("1") hard[v1.ResourceMemory] = resource.MustParse("500Mi") hard[v1.ResourceConfigMaps] = resource.MustParse("2") hard[v1.ResourceSecrets] = resource.MustParse("10") hard[v1.ResourcePersistentVolumeClaims] = resource.MustParse("10") hard[v1.ResourceRequestsStorage] = resource.MustParse("10Gi") hard[core.V1ResourceByStorageClass("gold", v1.ResourcePersistentVolumeClaims)] = resource.MustParse("10") hard[core.V1ResourceByStorageClass("gold", v1.ResourceRequestsStorage)] = resource.MustParse("10Gi") return &v1.ResourceQuota{ ObjectMeta: v1.ObjectMeta{Name: name}, Spec: v1.ResourceQuotaSpec{Hard: hard}, } }
Expect(err).NotTo(HaveOccurred()) }) It("should create a ResourceQuota and capture the life of a persistent volume claim with a storage class.", func() { By("Creating a ResourceQuota") quotaName := "test-quota" resourceQuota := newTestResourceQuota(quotaName) resourceQuota, err := createResourceQuota(f.ClientSet, f.Namespace.Name, resourceQuota) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status is calculated") usedResources := v1.ResourceList{} usedResources[v1.ResourceQuotas] = resource.MustParse("1") usedResources[v1.ResourcePersistentVolumeClaims] = resource.MustParse("0") usedResources[v1.ResourceRequestsStorage] = resource.MustParse("0") usedResources[core.V1ResourceByStorageClass("gold", v1.ResourcePersistentVolumeClaims)] = resource.MustParse("0") usedResources[core.V1ResourceByStorageClass("gold", v1.ResourceRequestsStorage)] = resource.MustParse("0") err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) Expect(err).NotTo(HaveOccurred()) By("Creating a PersistentVolumeClaim with storage class") pvc := newTestPersistentVolumeClaimForQuota("test-claim") pvc.Annotations = map[string]string{ util.StorageClassAnnotation: "gold", } pvc, err = f.ClientSet.Core().PersistentVolumeClaims(f.Namespace.Name).Create(pvc) Expect(err).NotTo(HaveOccurred()) By("Ensuring resource quota status captures persistent volume claim creation") usedResources = v1.ResourceList{}