@@ -171,7 +171,7 @@ var _ = Describe("Limitador controller", func() {
171
171
Equal ("/home/limitador/etc/limitador-config.yaml" ),
172
172
)
173
173
Expect (createdLimitadorDeployment .Spec .Template .Spec .Containers [0 ].VolumeMounts [0 ].MountPath ).Should (
174
- Equal ("/home/limitador/etc/ " ),
174
+ Equal ("/home/limitador/etc" ),
175
175
)
176
176
Expect (createdLimitadorDeployment .Spec .Template .Spec .Volumes [0 ].VolumeSource .ConfigMap .Name ).Should (
177
177
Equal (limitador .LimitsConfigMapName (limitadorObj )),
@@ -579,4 +579,36 @@ var _ = Describe("Limitador controller", func() {
579
579
580
580
})
581
581
})
582
+
583
+ // This test requires actual k8s cluster
584
+ // It's testing implementation based on CRD x-kubernetes-validations extentions
585
+ // used to alidate custom resources using Common Expression Language (CEL)
586
+ // https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation-rules
587
+ Context ("Disk storage does not allow multiple replicas" , func () {
588
+ AfterEach (func () {
589
+ limitadorObj := limitadorWithInvalidDiskReplicas ()
590
+ err := k8sClient .Delete (context .TODO (), limitadorObj , deletePropagationPolicy )
591
+ Expect (err == nil || errors .IsNotFound (err ))
592
+ })
593
+
594
+ It ("resource is rejected" , func () {
595
+ limitadorObj := limitadorWithInvalidDiskReplicas ()
596
+ err := k8sClient .Create (context .TODO (), limitadorObj )
597
+ Expect (err ).To (HaveOccurred ())
598
+ Expect (errors .IsInvalid (err )).To (BeTrue ())
599
+ })
600
+ })
582
601
})
602
+
603
+ func limitadorWithInvalidDiskReplicas () * limitadorv1alpha1.Limitador {
604
+ return & limitadorv1alpha1.Limitador {
605
+ TypeMeta : metav1.TypeMeta {Kind : "Limitador" , APIVersion : "limitador.kuadrant.io/v1alpha1" },
606
+ ObjectMeta : metav1.ObjectMeta {Name : "limitador-with-invalid-disk-replicas" , Namespace : "default" },
607
+ Spec : limitadorv1alpha1.LimitadorSpec {
608
+ Replicas : & []int {2 }[0 ],
609
+ Storage : & limitadorv1alpha1.Storage {
610
+ Disk : & limitadorv1alpha1.DiskSpec {},
611
+ },
612
+ },
613
+ }
614
+ }
0 commit comments