@@ -17,6 +17,9 @@ limitations under the License.
1717package controllers_test
1818
1919import (
20+ "context"
21+ "fmt"
22+
2023 . "github.com/onsi/ginkgo/v2"
2124 . "github.com/onsi/gomega"
2225
@@ -32,6 +35,8 @@ import (
3235var _ = Describe ("TemplateResourceDef utils " , func () {
3336 var cluster * clusterv1.Cluster
3437 var namespace string
38+ var labelKey , labelValue string
39+ var annotationKey , annotationValue string
3540
3641 BeforeEach (func () {
3742 var err error
@@ -40,15 +45,34 @@ var _ = Describe("TemplateResourceDef utils ", func() {
4045
4146 namespace = randomString ()
4247
48+ ns := & corev1.Namespace {
49+ ObjectMeta : metav1.ObjectMeta {
50+ Name : namespace ,
51+ },
52+ }
53+
54+ Expect (testEnv .Create (context .TODO (), ns )).To (Succeed ())
55+ Expect (waitForObject (context .TODO (), testEnv .Client , ns )).To (Succeed ())
56+
57+ labelKey = randomString ()
58+ labelValue = randomString ()
59+ annotationKey = randomString ()
60+ annotationValue = randomString ()
4361 cluster = & clusterv1.Cluster {
4462 ObjectMeta : metav1.ObjectMeta {
4563 Name : upstreamClusterNamePrefix + randomString (),
4664 Namespace : namespace ,
4765 Labels : map [string ]string {
48- randomString (): randomString (),
66+ labelKey : labelValue ,
67+ },
68+ Annotations : map [string ]string {
69+ annotationKey : annotationValue ,
4970 },
5071 },
5172 }
73+
74+ Expect (testEnv .Create (context .TODO (), cluster )).To (Succeed ())
75+ Expect (waitForObject (context .TODO (), testEnv .Client , cluster )).To (Succeed ())
5276 })
5377
5478 It ("GetTemplateResourceName returns the correct name (uses ClusterNamespace and ClusterName)" , func () {
@@ -70,11 +94,37 @@ var _ = Describe("TemplateResourceDef utils ", func() {
7094 },
7195 }
7296
73- value , err := controllers .GetTemplateResourceName (clusterSummary , ref )
97+ value , err := controllers .GetTemplateResourceName (context . TODO (), clusterSummary , ref )
7498 Expect (err ).To (BeNil ())
7599 Expect (value ).To (Equal (cluster .Namespace + "-" + cluster .Name ))
76100 })
77101
102+ It ("GetTemplateResourceName returns the correct name (uses cluster label)" , func () {
103+ name := fmt .Sprintf ("{{ index .Cluster.metadata.labels %q }}-{{ index .Cluster.metadata.annotations %q }}" ,
104+ labelKey , annotationKey )
105+ ref := & configv1beta1.TemplateResourceRef {
106+ Resource : corev1.ObjectReference {
107+ Name : name ,
108+ },
109+ Identifier : randomString (),
110+ }
111+
112+ clusterSummary := & configv1beta1.ClusterSummary {
113+ ObjectMeta : metav1.ObjectMeta {
114+ Name : randomString (),
115+ },
116+ Spec : configv1beta1.ClusterSummarySpec {
117+ ClusterNamespace : cluster .Namespace ,
118+ ClusterName : cluster .Name ,
119+ ClusterType : libsveltosv1beta1 .ClusterTypeCapi ,
120+ },
121+ }
122+
123+ value , err := controllers .GetTemplateResourceName (context .TODO (), clusterSummary , ref )
124+ Expect (err ).To (BeNil ())
125+ Expect (value ).To (Equal (fmt .Sprintf ("%s-%s" , labelValue , annotationValue )))
126+ })
127+
78128 It ("GetTemplateResourceNamespace returns the correct namespace (uses Cluster)" , func () {
79129 ref := & configv1beta1.TemplateResourceRef {
80130 Resource : corev1.ObjectReference {
@@ -94,7 +144,7 @@ var _ = Describe("TemplateResourceDef utils ", func() {
94144 },
95145 }
96146
97- value , err := controllers .GetTemplateResourceName (clusterSummary , ref )
147+ value , err := controllers .GetTemplateResourceName (context . TODO (), clusterSummary , ref )
98148 Expect (err ).To (BeNil ())
99149 Expect (value ).To (Equal (cluster .Namespace + "-" + cluster .Name ))
100150 })
@@ -118,12 +168,12 @@ var _ = Describe("TemplateResourceDef utils ", func() {
118168 },
119169 }
120170
121- value , err := controllers .GetTemplateResourceNamespace (clusterSummary , ref )
171+ value , err := controllers .GetTemplateResourceNamespace (context . TODO (), clusterSummary , ref )
122172 Expect (err ).To (BeNil ())
123173 Expect (value ).To (Equal (cluster .Namespace ))
124174
125175 ref .Resource .Namespace = randomString ()
126- value , err = controllers .GetTemplateResourceNamespace (clusterSummary , ref )
176+ value , err = controllers .GetTemplateResourceNamespace (context . TODO (), clusterSummary , ref )
127177 Expect (err ).To (BeNil ())
128178 Expect (value ).To (Equal (ref .Resource .Namespace ))
129179 })
@@ -148,14 +198,43 @@ var _ = Describe("TemplateResourceDef utils ", func() {
148198 },
149199 }
150200
151- value , err := controllers .GetTemplateResourceNamespace (clusterSummary , ref )
201+ value , err := controllers .GetTemplateResourceNamespace (context . TODO (), clusterSummary , ref )
152202 Expect (err ).To (BeNil ())
153203 Expect (value ).To (Equal (cluster .Namespace + "-foo" ))
154204
155205 ref .Resource .Namespace = randomString ()
156- value , err = controllers .GetTemplateResourceNamespace (clusterSummary , ref )
206+ value , err = controllers .GetTemplateResourceNamespace (context . TODO (), clusterSummary , ref )
157207 Expect (err ).To (BeNil ())
158208 Expect (value ).To (Equal (ref .Resource .Namespace ))
159209 })
160210
211+ It ("GetTemplateResourceNamespace returns the correct namespace (template version with labels)" , func () {
212+ ref := & configv1beta1.TemplateResourceRef {
213+ Resource : corev1.ObjectReference {
214+ Name : randomString (),
215+ Namespace : fmt .Sprintf ("{{ index .Cluster.metadata.labels %q }}" , labelKey ),
216+ },
217+ Identifier : randomString (),
218+ }
219+
220+ clusterSummary := & configv1beta1.ClusterSummary {
221+ ObjectMeta : metav1.ObjectMeta {
222+ Name : randomString (),
223+ },
224+ Spec : configv1beta1.ClusterSummarySpec {
225+ ClusterNamespace : cluster .Namespace ,
226+ ClusterName : cluster .Name ,
227+ ClusterType : libsveltosv1beta1 .ClusterTypeCapi ,
228+ },
229+ }
230+
231+ value , err := controllers .GetTemplateResourceNamespace (context .TODO (), clusterSummary , ref )
232+ Expect (err ).To (BeNil ())
233+ Expect (value ).To (Equal (labelValue ))
234+
235+ ref .Resource .Namespace = randomString ()
236+ value , err = controllers .GetTemplateResourceNamespace (context .TODO (), clusterSummary , ref )
237+ Expect (err ).To (BeNil ())
238+ Expect (value ).To (Equal (ref .Resource .Namespace ))
239+ })
161240})
0 commit comments