From 092ad6f364eaeecab51bef591b338c4c1fd91445 Mon Sep 17 00:00:00 2001 From: trantzas Date: Tue, 28 Jan 2025 14:19:10 +0000 Subject: [PATCH 1/5] Preparing for Release 2025Q2 --- Dockerfile | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6cffc0c..5732826 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,5 +2,5 @@ FROM ibm-semeru-runtimes:open-17.0.7_7-jdk MAINTAINER openslice.io RUN mkdir /opt/shareclasses RUN mkdir -p /opt/openslice/lib/ -COPY target/org.etsi.osl.cridge-1.1.0-exec.jar /opt/openslice/lib/ -CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/openslice/lib/org.etsi.osl.cridge-1.1.0-exec.jar"] +COPY target/org.etsi.osl.cridge-1.2.0-SNAPSHOT-exec.jar /opt/openslice/lib/ +CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/openslice/lib/org.etsi.osl.cridge-1.2.0-SNAPSHOT-exec.jar"] diff --git a/pom.xml b/pom.xml index 56b90c4..28c7870 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.etsi.osl org.etsi.osl.main - 2024Q4 + 2025Q2-SNAPSHOT ../org.etsi.osl.main -- GitLab From 33f1416a7fd4f9aed7234bd8522b45cd71456740 Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Tue, 18 Feb 2025 16:16:50 +0200 Subject: [PATCH 2/5] fix attempt for #20 --- .../org/etsi/osl/cridge/CRRouteBuilder.java | 13 +++++++--- .../osl/cridge/KubernetesClientResource.java | 7 ----- .../org/etsi/osl/cridge/NamespaceWatcher.java | 26 ++++++++++++++++--- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/etsi/osl/cridge/CRRouteBuilder.java b/src/main/java/org/etsi/osl/cridge/CRRouteBuilder.java index 8323709..b6a920b 100644 --- a/src/main/java/org/etsi/osl/cridge/CRRouteBuilder.java +++ b/src/main/java/org/etsi/osl/cridge/CRRouteBuilder.java @@ -57,8 +57,8 @@ public class CRRouteBuilder extends RouteBuilder{ .bean( kubernetesClientResource, "patchCR(${headers}, ${body})") .convertBodyTo( String.class ); - // every 120000 ms (2 minutes) - from( "timer://processUpdateResources?period=120000" ) + // every 300000 ms (5 minutes) + from( "timer://processUpdateResources?period=300000" ) .log(LoggingLevel.INFO, log, " process nameSpacesTobeDeleted!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( CRRouteBuilder.class , "processNameSpacesTobeDeleted()"); @@ -73,9 +73,9 @@ public class CRRouteBuilder extends RouteBuilder{ long diffInMillies = Math.abs(currentTime .getTime() - datetime.getTime()); long diff = TimeUnit.MINUTES.convert(diffInMillies, TimeUnit.MILLISECONDS); - if (diff<=2) { //after 2 minutes this namespace will be deleted + if (diff<=10) { //after 10 minutes this namespace will be deleted return; - } + } try (final KubernetesClient k8s = new KubernetesClientBuilder().build()) { logger.info("Trying to delete namespace {}", nameSpaceName); @@ -85,6 +85,11 @@ public class CRRouteBuilder extends RouteBuilder{ .endMetadata().build(); k8s.namespaces().resource(ns).delete(); + NamespaceWatcher watchersForNamespace = kubernetesClientResource.getWatchersForNamespaces().get( nameSpaceName ); + if ( watchersForNamespace!= null) { + watchersForNamespace.disableNamespace( nameSpaceName ); + } + kubernetesClientResource.getWatchersForNamespaces().remove(nameSpaceName); kubernetesClientResource.getNameSpacesTobeDeleted().remove(nameSpaceName); }catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java b/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java index 4546d74..1d35d36 100644 --- a/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java +++ b/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java @@ -481,13 +481,6 @@ public class KubernetesClientResource { this.nameSpacesTobeDeleted.put(nameSpacename, new Date() ); - NamespaceWatcher watchersForNamespace = this.watchersForNamespaces.get(nameSpacename); - if ( watchersForNamespace!= null) { - watchersForNamespace.disableNamespace( nameSpacename ); - } - - this.watchersForNamespaces.remove(nameSpacename); - }catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java b/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java index 1e1ea08..268957a 100644 --- a/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java +++ b/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java @@ -14,6 +14,7 @@ import org.etsi.osl.tmf.ri639.model.ResourceCreate; import org.etsi.osl.tmf.ri639.model.ResourceStatusType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.yaml.snakeyaml.Yaml; import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMeta; @@ -45,6 +46,10 @@ public class NamespaceWatcher { List< SharedIndexInformer> informers = new ArrayList<>(); + + @Autowired + private KubernetesClientResource kubernetesClientResource; + public NamespaceWatcher(KubernetesClient kubernetesClient, CatalogClient catalogClient, String anameSpacename, Map aheaders) { super(); @@ -140,7 +145,11 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); - updateKubernetesSecretResourceInOSLCatalog( newObj, false ); + if ( kubernetesClientResource.getNameSpacesTobeDeleted().get( newObj.getMetadata().getNamespace())==null ) { + updateKubernetesSecretResourceInOSLCatalog( newObj, false ); + } else { + updateKubernetesSecretResourceInOSLCatalog( newObj, true ); + } } @@ -283,7 +292,12 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); - updateKubernetesServiceResourceInOSLCatalog( newObj, false ); + //check if namespace is under deletion so to ignore any changes + if ( kubernetesClientResource.getNameSpacesTobeDeleted().get( newObj.getMetadata().getNamespace()) == null ) { + updateKubernetesServiceResourceInOSLCatalog( newObj, false ); + } else { + updateKubernetesServiceResourceInOSLCatalog( newObj, true ); + } } @@ -449,7 +463,13 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); - updateKubernetesConfigMapResourceInOSLCatalog( newObj, false ); + //check if namespace is under deletion so to ignore any changes + if ( kubernetesClientResource.getNameSpacesTobeDeleted().get( newObj.getMetadata().getNamespace()) == null ) { + updateKubernetesConfigMapResourceInOSLCatalog( newObj, false ); + } else { + updateKubernetesConfigMapResourceInOSLCatalog( newObj, true ); + } + } -- GitLab From 3ade71cf87e830f2624fbf315a47b0930c4cf02f Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Tue, 18 Feb 2025 21:35:38 +0200 Subject: [PATCH 3/5] fix for #20 --- .../org/etsi/osl/cridge/KubernetesClientResource.java | 2 +- src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java b/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java index 1d35d36..95c6621 100644 --- a/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java +++ b/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java @@ -419,7 +419,7 @@ public class KubernetesClientResource { if ( this.watchersForNamespaces.get(nameSpacename) == null ) { //SharedIndexInformer result = createWatchersFornamespace( nameSpacename, headers ); - NamespaceWatcher result = NamespaceWatcher.getNew( kubernetesClient, catalogClient, nameSpacename, headers); + NamespaceWatcher result = NamespaceWatcher.getNew( kubernetesClient, catalogClient, nameSpacename, headers, this); this.watchersForNamespaces.put(nameSpacename, result); } diff --git a/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java b/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java index 268957a..7088c22 100644 --- a/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java +++ b/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java @@ -46,17 +46,16 @@ public class NamespaceWatcher { List< SharedIndexInformer> informers = new ArrayList<>(); - - @Autowired private KubernetesClientResource kubernetesClientResource; - public NamespaceWatcher(KubernetesClient kubernetesClient, CatalogClient catalogClient, String anameSpacename, Map aheaders) { + public NamespaceWatcher(KubernetesClient kubernetesClient, CatalogClient catalogClient, String anameSpacename, Map aheaders, KubernetesClientResource akubernetesClientResource) { super(); this.kubernetesClient = kubernetesClient; this.catalogClient = catalogClient; this.nameSpacename = anameSpacename; this.headers = aheaders; + this.kubernetesClientResource = akubernetesClientResource; kubernetesSecretResourceSpec = catalogClient.retrieveResourceSpecByNameCategoryVersion( KubernetesSecret.OSL_KUBSECRET_RSPEC_NAME, @@ -75,9 +74,9 @@ public class NamespaceWatcher { KubernetesConfigMap.OSL_KUBCMAP_RSPEC_VERSION); } - public static NamespaceWatcher getNew(KubernetesClient kubernetesClient2, CatalogClient catalogClient2, String anameSpacename, Map aheaders) { + public static NamespaceWatcher getNew(KubernetesClient kubernetesClient2, CatalogClient catalogClient2, String anameSpacename, Map aheaders, KubernetesClientResource akubernetesClientResource) { - NamespaceWatcher aNamespaceWatchers = new NamespaceWatcher(kubernetesClient2, catalogClient2, anameSpacename, aheaders); + NamespaceWatcher aNamespaceWatchers = new NamespaceWatcher(kubernetesClient2, catalogClient2, anameSpacename, aheaders, akubernetesClientResource); SharedIndexInformer rSecret = aNamespaceWatchers.createSecretWatchersFornamespace(anameSpacename, aheaders); aNamespaceWatchers.informers.add( rSecret ); -- GitLab From 5aa52f997973134953ee91cfd9a28ec5098cb5d8 Mon Sep 17 00:00:00 2001 From: Christos Tranoris Date: Thu, 24 Apr 2025 17:32:27 +0300 Subject: [PATCH 4/5] fix for #21 --- .../org/etsi/osl/cridge/KubernetesClientResource.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java b/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java index 95c6621..6763c70 100644 --- a/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java +++ b/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java @@ -467,7 +467,12 @@ public class KubernetesClientResource { } })); - gkr.getMetadata().setName( (String) headers.get("org.etsi.osl.prefixName")) ; + + String crName = (String) headers.get("org.etsi.osl.prefixName"); + if ( crName == null || crName.isBlank() || crName.isEmpty() ) { + return "ERROR Custom Resource Name is empty"; + } + gkr.getMetadata().setName( crName ) ; String nameSpacename = (String) headers.get("org.etsi.osl.namespace"); if ( gkr.getMetadata().getNamespace() == null ) { gkr.getMetadata().setNamespace(nameSpacename); @@ -475,7 +480,8 @@ public class KubernetesClientResource { logger.debug("Object to delete:{}", Serialization.asYaml( gkr ) ); Resource dummyObject = kubernetesClient.resource( gkr ); - + + logger.debug("============ DELETE crspec: dummyObject {} =============", dummyObject.toString() ); List result = dummyObject.delete(); logger.debug("============ DELETE crspec: result {} =============", result.toString() ); -- GitLab From 842b2481a65c633e18f28c5747b1a41c7ef5eae6 Mon Sep 17 00:00:00 2001 From: trantzas Date: Fri, 18 Jul 2025 11:31:19 +0000 Subject: [PATCH 5/5] Preparing for the Release 2025Q2 --- Dockerfile | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5732826..d6ec778 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,5 +2,5 @@ FROM ibm-semeru-runtimes:open-17.0.7_7-jdk MAINTAINER openslice.io RUN mkdir /opt/shareclasses RUN mkdir -p /opt/openslice/lib/ -COPY target/org.etsi.osl.cridge-1.2.0-SNAPSHOT-exec.jar /opt/openslice/lib/ -CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/openslice/lib/org.etsi.osl.cridge-1.2.0-SNAPSHOT-exec.jar"] +COPY target/org.etsi.osl.cridge-1.2.0-exec.jar /opt/openslice/lib/ +CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/openslice/lib/org.etsi.osl.cridge-1.2.0-exec.jar"] diff --git a/pom.xml b/pom.xml index 28c7870..7e9b633 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.etsi.osl org.etsi.osl.main - 2025Q2-SNAPSHOT + 2025Q2 ../org.etsi.osl.main -- GitLab