mirror of https://github.com/k3s-io/k3s
quota: use attributes instead of beta annotations
parent
7dfc71d9eb
commit
916a0a63dd
|
@ -22,7 +22,6 @@ import (
|
|||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/clientset/fake"
|
||||
"k8s.io/kubernetes/pkg/quota"
|
||||
)
|
||||
|
@ -35,6 +34,9 @@ func testVolumeClaim(name string, namespace string, spec api.PersistentVolumeCla
|
|||
}
|
||||
|
||||
func TestPersistentVolumeClaimsConstraintsFunc(t *testing.T) {
|
||||
classGold := "gold"
|
||||
classBronze := "bronze"
|
||||
|
||||
validClaim := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{
|
||||
Selector: &metav1.LabelSelector{
|
||||
MatchExpressions: []metav1.LabelSelectorRequirement{
|
||||
|
@ -72,10 +74,8 @@ func TestPersistentVolumeClaimsConstraintsFunc(t *testing.T) {
|
|||
api.ResourceName(api.ResourceStorage): resource.MustParse("10Gi"),
|
||||
},
|
||||
},
|
||||
StorageClassName: &classGold,
|
||||
})
|
||||
validClaimGoldStorageClass.Annotations = map[string]string{
|
||||
v1.BetaStorageClassAnnotation: "gold",
|
||||
}
|
||||
|
||||
validClaimBronzeStorageClass := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{
|
||||
Selector: &metav1.LabelSelector{
|
||||
|
@ -95,10 +95,8 @@ func TestPersistentVolumeClaimsConstraintsFunc(t *testing.T) {
|
|||
api.ResourceName(api.ResourceStorage): resource.MustParse("10Gi"),
|
||||
},
|
||||
},
|
||||
StorageClassName: &classBronze,
|
||||
})
|
||||
validClaimBronzeStorageClass.Annotations = map[string]string{
|
||||
v1.BetaStorageClassAnnotation: "bronze",
|
||||
}
|
||||
|
||||
missingStorage := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{
|
||||
Selector: &metav1.LabelSelector{
|
||||
|
@ -134,10 +132,8 @@ func TestPersistentVolumeClaimsConstraintsFunc(t *testing.T) {
|
|||
Resources: api.ResourceRequirements{
|
||||
Requests: api.ResourceList{},
|
||||
},
|
||||
StorageClassName: &classGold,
|
||||
})
|
||||
missingGoldStorage.Annotations = map[string]string{
|
||||
v1.BetaStorageClassAnnotation: "gold",
|
||||
}
|
||||
|
||||
testCases := map[string]struct {
|
||||
pvc *api.PersistentVolumeClaim
|
||||
|
@ -151,7 +147,7 @@ func TestPersistentVolumeClaimsConstraintsFunc(t *testing.T) {
|
|||
},
|
||||
"missing gold storage": {
|
||||
pvc: missingGoldStorage,
|
||||
required: []api.ResourceName{ResourceByStorageClass("gold", api.ResourceRequestsStorage)},
|
||||
required: []api.ResourceName{ResourceByStorageClass(classGold, api.ResourceRequestsStorage)},
|
||||
err: `must specify gold.storageclass.storage.k8s.io/requests.storage`,
|
||||
},
|
||||
"valid-claim-quota-storage": {
|
||||
|
@ -171,8 +167,8 @@ func TestPersistentVolumeClaimsConstraintsFunc(t *testing.T) {
|
|||
required: []api.ResourceName{
|
||||
api.ResourceRequestsStorage,
|
||||
api.ResourcePersistentVolumeClaims,
|
||||
ResourceByStorageClass("gold", api.ResourceRequestsStorage),
|
||||
ResourceByStorageClass("gold", api.ResourcePersistentVolumeClaims),
|
||||
ResourceByStorageClass(classGold, api.ResourceRequestsStorage),
|
||||
ResourceByStorageClass(classGold, api.ResourcePersistentVolumeClaims),
|
||||
},
|
||||
},
|
||||
"valid-claim-bronze-with-quota-gold": {
|
||||
|
@ -180,8 +176,8 @@ func TestPersistentVolumeClaimsConstraintsFunc(t *testing.T) {
|
|||
required: []api.ResourceName{
|
||||
api.ResourceRequestsStorage,
|
||||
api.ResourcePersistentVolumeClaims,
|
||||
ResourceByStorageClass("gold", api.ResourceRequestsStorage),
|
||||
ResourceByStorageClass("gold", api.ResourcePersistentVolumeClaims),
|
||||
ResourceByStorageClass(classGold, api.ResourceRequestsStorage),
|
||||
ResourceByStorageClass(classGold, api.ResourcePersistentVolumeClaims),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -200,6 +196,7 @@ func TestPersistentVolumeClaimsConstraintsFunc(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestPersistentVolumeClaimEvaluatorUsage(t *testing.T) {
|
||||
classGold := "gold"
|
||||
validClaim := testVolumeClaim("foo", "ns", api.PersistentVolumeClaimSpec{
|
||||
Selector: &metav1.LabelSelector{
|
||||
MatchExpressions: []metav1.LabelSelectorRequirement{
|
||||
|
@ -237,11 +234,8 @@ func TestPersistentVolumeClaimEvaluatorUsage(t *testing.T) {
|
|||
api.ResourceName(api.ResourceStorage): resource.MustParse("10Gi"),
|
||||
},
|
||||
},
|
||||
StorageClassName: &classGold,
|
||||
})
|
||||
storageClassName := "gold"
|
||||
validClaimByStorageClass.Annotations = map[string]string{
|
||||
v1.BetaStorageClassAnnotation: storageClassName,
|
||||
}
|
||||
|
||||
kubeClient := fake.NewSimpleClientset()
|
||||
evaluator := NewPersistentVolumeClaimEvaluator(kubeClient, nil)
|
||||
|
@ -261,8 +255,8 @@ func TestPersistentVolumeClaimEvaluatorUsage(t *testing.T) {
|
|||
usage: api.ResourceList{
|
||||
api.ResourceRequestsStorage: resource.MustParse("10Gi"),
|
||||
api.ResourcePersistentVolumeClaims: resource.MustParse("1"),
|
||||
ResourceByStorageClass(storageClassName, api.ResourceRequestsStorage): resource.MustParse("10Gi"),
|
||||
ResourceByStorageClass(storageClassName, api.ResourcePersistentVolumeClaims): resource.MustParse("1"),
|
||||
ResourceByStorageClass(classGold, api.ResourceRequestsStorage): resource.MustParse("10Gi"),
|
||||
ResourceByStorageClass(classGold, api.ResourcePersistentVolumeClaims): resource.MustParse("1"),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue