1212import io .csviri .operator .glue .customresource .glue .Glue ;
1313import io .csviri .operator .glue .reconciler .ValidationAndErrorHandler ;
1414import io .fabric8 .kubernetes .api .model .ConfigMap ;
15+ import io .fabric8 .kubernetes .api .model .ConfigMapBuilder ;
16+ import io .fabric8 .kubernetes .api .model .ObjectMetaBuilder ;
1517import io .fabric8 .kubernetes .api .model .Secret ;
18+ import io .fabric8 .kubernetes .client .dsl .NonDeletingOperation ;
1619import io .quarkus .test .junit .QuarkusTest ;
1720
1821import static org .assertj .core .api .Assertions .assertThat ;
@@ -237,35 +240,76 @@ void nonUniqueNameResultsInErrorMessageOnStatus() {
237240 });
238241 }
239242
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+ });
240255
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- // }
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 );
293+
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+
312+ }
269313
270314 private List <Glue > testWorkflowList (int num ) {
271315 List <Glue > res = new ArrayList <>();
@@ -278,4 +322,6 @@ private List<Glue> testWorkflowList(int num) {
278322 return res ;
279323 }
280324
325+
326+
281327}
0 commit comments