12
12
import io .csviri .operator .glue .customresource .glue .Glue ;
13
13
import io .csviri .operator .glue .reconciler .ValidationAndErrorHandler ;
14
14
import io .fabric8 .kubernetes .api .model .ConfigMap ;
15
+ import io .fabric8 .kubernetes .api .model .ConfigMapBuilder ;
16
+ import io .fabric8 .kubernetes .api .model .ObjectMetaBuilder ;
15
17
import io .fabric8 .kubernetes .api .model .Secret ;
18
+ import io .fabric8 .kubernetes .client .dsl .NonDeletingOperation ;
16
19
import io .quarkus .test .junit .QuarkusTest ;
17
20
18
21
import static org .assertj .core .api .Assertions .assertThat ;
@@ -237,35 +240,88 @@ void nonUniqueNameResultsInErrorMessageOnStatus() {
237
240
});
238
241
}
239
242
243
+ @ Test
244
+ void childInDifferentNamespace () {
245
+ Glue glue = create (TestUtils .loadGlue ("/glue/ResourceInDifferentNamespace.yaml" ));
246
+
247
+ await ().untilAsserted (() -> {
248
+ var cmDifferentNS = client .configMaps ().inNamespace ("default" )
249
+ .withName ("configmap1" );
250
+ var cm2 = get (ConfigMap .class , "configmap2" );
251
+
252
+ assertThat (cmDifferentNS ).isNotNull ();
253
+ assertThat (cm2 ).isNotNull ();
254
+ });
255
+
256
+ delete (glue );
257
+ await ().timeout (TestUtils .GC_WAIT_TIMEOUT ).untilAsserted (() -> {
258
+ var cmDifferentNS = client .configMaps ().inNamespace ("default" )
259
+ .withName ("configmap1" ).get ();
260
+ var cm2 = get (ConfigMap .class , "configmap2" );
261
+
262
+ assertThat (cmDifferentNS ).isNull ();
263
+ assertThat (cm2 ).isNull ();
264
+ });
265
+ }
266
+
267
+ @ Test
268
+ void clusterScopedChild () {
269
+ var glue = create (TestUtils .loadGlue ("/glue/ClusterScopedChild.yaml" ));
270
+ await ().untilAsserted (() -> {
271
+ var ns = client .namespaces ()
272
+ .withName ("testnamespace" );
273
+ assertThat (ns ).isNotNull ();
274
+ });
275
+
276
+ delete (glue );
277
+ await ().timeout (TestUtils .GC_WAIT_TIMEOUT ).untilAsserted (() -> {
278
+ var ns = client .namespaces ()
279
+ .withName ("testnamespace" ).get ();
280
+ assertThat (ns ).isNull ();
281
+ });
282
+ }
283
+
284
+ @ Test
285
+ void relatedResourceFromDifferentNamespace () {
286
+ client .resource (new ConfigMapBuilder ()
287
+ .withMetadata (new ObjectMetaBuilder ()
288
+ .withName ("related-configmap" )
289
+ .withNamespace ("default" )
290
+ .build ())
291
+ .withData (Map .of ("key1" , "value1" ))
292
+ .build ()).createOr (NonDeletingOperation ::update );
240
293
241
- //
242
- // @Disabled("Not supported in current version")
243
- // @Test
244
- // void childInDifferentNamespaceAsPrimary() {
245
- // Glue w = extension
246
- // .create(TestUtils.loadResoureFlow("/glue/ResourceInDifferentNamespace.yaml"));
247
- //
248
- // await().untilAsserted(() -> {
249
- // var cmDifferentNS = extension.getKubernetesClient().configMaps().inNamespace("default")
250
- // .withName("configmap1");
251
- // var cm2 = extension.get(ConfigMap.class, "configmap2");
252
- //
253
- // assertThat(cmDifferentNS).isNotNull();
254
- // assertThat(cm2).isNotNull();
255
- // });
256
- //
257
- // extension.delete(w);
258
- //
259
- // await().untilAsserted(() -> {
260
- // var cmDifferentNS = extension.getKubernetesClient().configMaps().inNamespace("default")
261
- // .withName("configmap1");
262
- // var cm2 = extension.get(ConfigMap.class, "configmap2");
263
- //
264
- // assertThat(cmDifferentNS).isNull();
265
- // assertThat(cm2).isNull();
266
- // });
267
- //
268
- // }
294
+ var glue = create (TestUtils .loadGlue ("/glue/RelatedResourceFromDifferentNamespace.yaml" ));
295
+
296
+ await ().untilAsserted (() -> {
297
+ var cm = get (ConfigMap .class , "configmap1" );
298
+ assertThat (cm ).isNotNull ();
299
+ assertThat (cm .getData ()).containsEntry ("copy-key" , "value1" );
300
+ });
301
+
302
+ delete (glue );
303
+ await ().timeout (TestUtils .GC_WAIT_TIMEOUT ).untilAsserted (() -> {
304
+ var cm = get (ConfigMap .class , "configmap1" );
305
+ assertThat (cm ).isNull ();
306
+ });
307
+ }
308
+
309
+ @ Test
310
+ void clusterScopedRelatedResource () {
311
+ var glue = create (TestUtils .loadGlue ("/glue/ClusterScopedRelatedResource.yaml" ));
312
+
313
+ await ().untilAsserted (() -> {
314
+ var cm = get (ConfigMap .class , "configmap1" );
315
+ assertThat (cm ).isNotNull ();
316
+ assertThat (cm .getData ()).containsEntry ("phase" , "Active" );
317
+ });
318
+
319
+ delete (glue );
320
+ await ().timeout (TestUtils .GC_WAIT_TIMEOUT ).untilAsserted (() -> {
321
+ var cm = get (ConfigMap .class , "configmap1" );
322
+ assertThat (cm ).isNull ();
323
+ });
324
+ }
269
325
270
326
private List <Glue > testWorkflowList (int num ) {
271
327
List <Glue > res = new ArrayList <>();
@@ -278,4 +334,6 @@ private List<Glue> testWorkflowList(int num) {
278
334
return res ;
279
335
}
280
336
337
+
338
+
281
339
}
0 commit comments