@@ -189,7 +189,7 @@ var _ = Describe("Limitador controller", func() {
189
189
Equal ("/home/limitador/etc/limitador-config.yaml" ),
190
190
)
191
191
Expect (createdLimitadorDeployment .Spec .Template .Spec .Containers [0 ].VolumeMounts [0 ].MountPath ).Should (
192
- Equal ("/home/limitador/etc/ " ),
192
+ Equal ("/home/limitador/etc" ),
193
193
)
194
194
Expect (createdLimitadorDeployment .Spec .Template .Spec .Volumes [0 ].VolumeSource .ConfigMap .Name ).Should (
195
195
Equal (limitador .LimitsConfigMapName (limitadorObj )),
@@ -640,4 +640,36 @@ var _ = Describe("Limitador controller", func() {
640
640
641
641
})
642
642
})
643
+
644
+ // This test requires actual k8s cluster
645
+ // It's testing implementation based on CRD x-kubernetes-validations extentions
646
+ // used to alidate custom resources using Common Expression Language (CEL)
647
+ // https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation-rules
648
+ Context ("Disk storage does not allow multiple replicas" , func () {
649
+ AfterEach (func () {
650
+ limitadorObj := limitadorWithInvalidDiskReplicas ()
651
+ err := k8sClient .Delete (context .TODO (), limitadorObj , deletePropagationPolicy )
652
+ Expect (err == nil || errors .IsNotFound (err ))
653
+ })
654
+
655
+ It ("resource is rejected" , func () {
656
+ limitadorObj := limitadorWithInvalidDiskReplicas ()
657
+ err := k8sClient .Create (context .TODO (), limitadorObj )
658
+ Expect (err ).To (HaveOccurred ())
659
+ Expect (errors .IsInvalid (err )).To (BeTrue ())
660
+ })
661
+ })
643
662
})
663
+
664
+ func limitadorWithInvalidDiskReplicas () * limitadorv1alpha1.Limitador {
665
+ return & limitadorv1alpha1.Limitador {
666
+ TypeMeta : metav1.TypeMeta {Kind : "Limitador" , APIVersion : "limitador.kuadrant.io/v1alpha1" },
667
+ ObjectMeta : metav1.ObjectMeta {Name : "limitador-with-invalid-disk-replicas" , Namespace : "default" },
668
+ Spec : limitadorv1alpha1.LimitadorSpec {
669
+ Replicas : & []int {2 }[0 ],
670
+ Storage : & limitadorv1alpha1.Storage {
671
+ Disk : & limitadorv1alpha1.DiskSpec {},
672
+ },
673
+ },
674
+ }
675
+ }
0 commit comments