Loading Dockerfile +2 −2 Original line number Diff line number Diff line Loading @@ -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.0.0-SNAPSHOT-exec.jar /opt/openslice/lib/ CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/openslice/lib/org.etsi.osl.cridge-1.0.0-SNAPSHOT-exec.jar"] docs/K8aas_example.md 0 → 100644 +92 −0 Original line number Diff line number Diff line @startuml actor Participant as caller boundary OSLAPI as oslapirest control OSLC as oslapi control OSOM as osom control CRIDGE as cridge control MGMK8S as mgtk8s control ARGOCD as argo control K8SaaSCRD as k88ascrd caller -> oslapirest : Create Service Order for K8SaaS spec\n (With ACKNOWLEDGED state) oslapirest -> oslapi: Create\nService\nOrder osom -> oslapi: Fetch ACK\norders activate osom osom -> osom: Process orders osom -> cridge: Deploy CR App note right This CR is matched with equivalent Resource in RI (ref resourceId) end note cridge -// mgtk8s: Create CR note right here we label this CR with resourceId end note cridge -> cridge: Start watching\nSO namespace cridge -> osom: response OK osom -> oslapi: Order is INPROGRESS \n (services are created\nin RESERVED) mgtk8s -> argo: Create CR argo -> k88ascrd: Create CR argo -// mgtk8s: CR status mgtk8s -// cridge: CRs watch group sync and reconciliation cridge -// oslapi: Update equivalent resource in RI of this CR\n(ref resourceId) oslapi -> oslapi: EVENT_RESOURCE_STATE_CHANGED mgtk8s -// cridge: Secrets watch cridge -// oslapi: Add/Update equivalent secret resource in RI of this CR\n(ref resourceId) note right org.etsi.osl.* labels are added so this resource can be managed by OSL end note oslapi -> oslapi: EVENT_RESOURCE_STATE_CHANGED note left SIM638 needs to take this event in case this Resource is related to a specific supporting resource (see resourceStateChangedEvent() and updateResourceFromKubernetesLabel() ) Any resources that has characteristic org.etsi.osl.serviceId equals to a service are automatically added as supportingResources of this Service end note end osom -> osom: Wait all Active or Failures note left Wait for all services and underlying resources to be Active or Failed end note osom -> osom: Order is COMPLETED osom -> oslapi: Order is COMPLETED deactivate osom group sync and reconciliation (continuous process) mgtk8s -// cridge: CRs watch cridge -// oslapi: Update equivalent resource in RI of this CR\n(ref resourceId) oslapi -> oslapi: EVENT_RESOURCE_STATE_CHANGED mgtk8s -// cridge: Secrets watch cridge -// oslapi: Add/Update equivalent secret resource in RI of this CR\n(ref resourceId) oslapi -> oslapi: EVENT_RESOURCE_STATE_CHANGED end caller -> oslapirest : request Service Order (by id) activate caller caller <- oslapirest : Service Order caller -> caller : examine supportingService list caller -> oslapirest : request Service (by id) activate caller #FFDDDD group focus only on the Resource Facing Service caller -> caller : examine supportingResource list of this RFS caller -> oslapirest : request Resource (by id) (tf-output@...) caller <- oslapirest : Resource from Inventory caller -> caller :get characteristics kubeconf caller -> oslapirest : request Resource (by id) (tfstate-...) caller <- oslapirest : Resource from Inventory caller -> caller :get characteristic tfstate end deactivate caller deactivate caller @enduml docs/WatcherService_diagrams.md 0 → 100644 +43 −0 Original line number Diff line number Diff line @startuml participant "WatcherService" as Watcher participant "SharedInformerFactory" as InformerFactory participant "SharedIndexInformer<CRD>" as IndexInformer participant "CustomResourceDefinition" as CRD participant "ResourceEventHandler<CRD>" as EventHandler database "CatalogClient" as Catalog Watcher -> InformerFactory : getKubernetesClient().informers() activate InformerFactory InformerFactory --> Watcher : sharedInformerFactory deactivate InformerFactory Watcher -> IndexInformer : sharedInformerFactory.sharedIndexInformerFor(CRD, 30 * 1000L) activate IndexInformer IndexInformer --> Watcher : shixInformer deactivate IndexInformer Watcher -> IndexInformer : addEventHandler(new ResourceEventHandler<CRD>()) activate IndexInformer IndexInformer -> EventHandler : onAdd(CRD) activate EventHandler EventHandler -> Catalog : createOrUpdateResourceSpecByNameCategoryVersion() EventHandler -> Catalog : createOrUpdateResourceByNameCategoryVersion() activate Catalog Catalog --> EventHandler : Response deactivate Catalog EventHandler --> IndexInformer : onAdd Completed EventHandler -> Watcher : createCRDSharedIndexInformer deactivate EventHandler IndexInformer -> EventHandler : onUpdate(oldCRD, newCRD) activate EventHandler EventHandler --> IndexInformer : onUpdate Completed deactivate EventHandler IndexInformer -> EventHandler : onDelete(CRD, deletedFinalStateUnknown) activate EventHandler EventHandler --> IndexInformer : onDelete Completed deactivate EventHandler deactivate IndexInformer @enduml No newline at end of file docs/kubernetesClientResource_diagrams.md 0 → 100644 +53 −0 Original line number Diff line number Diff line @startuml queue MQ control "KubernetesClientResource" as KubeClientResource participant "KubernetesClient" as KubeClient entity "GenericKubernetesResource" as ResourceObj participant "Namespace" as NamespaceDB MQ -> KubeClientResource : deployCR(headers, crspec) alt check if this cridge can handle the CRSPEC\ncurrentContextCluster, clusterMasterURL KubeClientResource --> MQ : Response (SEE OTHER) end activate KubeClientResource KubeClientResource -> KubeClient : new KubernetesClientBuilder() activate KubeClient KubeClient --> KubeClientResource : k8s deactivate KubeClient KubeClientResource -> NamespaceDB : Try creating Namespace activate NamespaceDB NamespaceDB --> KubeClientResource : Namespace Created / Exists deactivate NamespaceDB KubeClientResource -> KubeClientResource : createWatchersFornamespace() activate KubeClientResource KubeClientResource -> SharedInformer : KubernetesClient.secrets().inNamespace(nameSpacename).inform(new ResourceEventHandler<>()) loop For each Secret Event SharedInformer -> EventHandler : onAdd()/onUpdate()/onDelete() activate EventHandler EventHandler -> KubeClientResource : updateKubernetesSecretResourceInOSLCatalog deactivate EventHandler end deactivate KubeClientResource KubeClientResource -> ResourceObj : k8s.resource(gkr) activate ResourceObj ResourceObj --> KubeClientResource : Creation Response deactivate ResourceObj KubeClientResource --> MQ : Response (OK / FAIL) deactivate KubeClientResource @enduml pom.xml +3 −3 Original line number Diff line number Diff line Loading @@ -9,8 +9,8 @@ <relativePath>../org.etsi.osl.main</relativePath> </parent> <artifactId>org.etsi.osl.cridge</artifactId> <artifactId>org.etsi.osl.cridge</artifactId> <name>org.etsi.osl.cridge</name> <url>http://openslice.io</url> Loading Loading @@ -103,12 +103,12 @@ <dependency> <groupId>org.etsi.osl</groupId> <artifactId>org.etsi.osl.model.tmf</artifactId> <version>${project.version}</version> <version>${org.etsi.osl.model.tmf.version}</version> </dependency> <dependency> <groupId>org.etsi.osl</groupId> <artifactId>org.etsi.osl.model.k8s</artifactId> <version>${project.version}</version> <version>${org.etsi.osl.model.k8s.version}</version> </dependency> Loading Loading
Dockerfile +2 −2 Original line number Diff line number Diff line Loading @@ -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.0.0-SNAPSHOT-exec.jar /opt/openslice/lib/ CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/openslice/lib/org.etsi.osl.cridge-1.0.0-SNAPSHOT-exec.jar"]
docs/K8aas_example.md 0 → 100644 +92 −0 Original line number Diff line number Diff line @startuml actor Participant as caller boundary OSLAPI as oslapirest control OSLC as oslapi control OSOM as osom control CRIDGE as cridge control MGMK8S as mgtk8s control ARGOCD as argo control K8SaaSCRD as k88ascrd caller -> oslapirest : Create Service Order for K8SaaS spec\n (With ACKNOWLEDGED state) oslapirest -> oslapi: Create\nService\nOrder osom -> oslapi: Fetch ACK\norders activate osom osom -> osom: Process orders osom -> cridge: Deploy CR App note right This CR is matched with equivalent Resource in RI (ref resourceId) end note cridge -// mgtk8s: Create CR note right here we label this CR with resourceId end note cridge -> cridge: Start watching\nSO namespace cridge -> osom: response OK osom -> oslapi: Order is INPROGRESS \n (services are created\nin RESERVED) mgtk8s -> argo: Create CR argo -> k88ascrd: Create CR argo -// mgtk8s: CR status mgtk8s -// cridge: CRs watch group sync and reconciliation cridge -// oslapi: Update equivalent resource in RI of this CR\n(ref resourceId) oslapi -> oslapi: EVENT_RESOURCE_STATE_CHANGED mgtk8s -// cridge: Secrets watch cridge -// oslapi: Add/Update equivalent secret resource in RI of this CR\n(ref resourceId) note right org.etsi.osl.* labels are added so this resource can be managed by OSL end note oslapi -> oslapi: EVENT_RESOURCE_STATE_CHANGED note left SIM638 needs to take this event in case this Resource is related to a specific supporting resource (see resourceStateChangedEvent() and updateResourceFromKubernetesLabel() ) Any resources that has characteristic org.etsi.osl.serviceId equals to a service are automatically added as supportingResources of this Service end note end osom -> osom: Wait all Active or Failures note left Wait for all services and underlying resources to be Active or Failed end note osom -> osom: Order is COMPLETED osom -> oslapi: Order is COMPLETED deactivate osom group sync and reconciliation (continuous process) mgtk8s -// cridge: CRs watch cridge -// oslapi: Update equivalent resource in RI of this CR\n(ref resourceId) oslapi -> oslapi: EVENT_RESOURCE_STATE_CHANGED mgtk8s -// cridge: Secrets watch cridge -// oslapi: Add/Update equivalent secret resource in RI of this CR\n(ref resourceId) oslapi -> oslapi: EVENT_RESOURCE_STATE_CHANGED end caller -> oslapirest : request Service Order (by id) activate caller caller <- oslapirest : Service Order caller -> caller : examine supportingService list caller -> oslapirest : request Service (by id) activate caller #FFDDDD group focus only on the Resource Facing Service caller -> caller : examine supportingResource list of this RFS caller -> oslapirest : request Resource (by id) (tf-output@...) caller <- oslapirest : Resource from Inventory caller -> caller :get characteristics kubeconf caller -> oslapirest : request Resource (by id) (tfstate-...) caller <- oslapirest : Resource from Inventory caller -> caller :get characteristic tfstate end deactivate caller deactivate caller @enduml
docs/WatcherService_diagrams.md 0 → 100644 +43 −0 Original line number Diff line number Diff line @startuml participant "WatcherService" as Watcher participant "SharedInformerFactory" as InformerFactory participant "SharedIndexInformer<CRD>" as IndexInformer participant "CustomResourceDefinition" as CRD participant "ResourceEventHandler<CRD>" as EventHandler database "CatalogClient" as Catalog Watcher -> InformerFactory : getKubernetesClient().informers() activate InformerFactory InformerFactory --> Watcher : sharedInformerFactory deactivate InformerFactory Watcher -> IndexInformer : sharedInformerFactory.sharedIndexInformerFor(CRD, 30 * 1000L) activate IndexInformer IndexInformer --> Watcher : shixInformer deactivate IndexInformer Watcher -> IndexInformer : addEventHandler(new ResourceEventHandler<CRD>()) activate IndexInformer IndexInformer -> EventHandler : onAdd(CRD) activate EventHandler EventHandler -> Catalog : createOrUpdateResourceSpecByNameCategoryVersion() EventHandler -> Catalog : createOrUpdateResourceByNameCategoryVersion() activate Catalog Catalog --> EventHandler : Response deactivate Catalog EventHandler --> IndexInformer : onAdd Completed EventHandler -> Watcher : createCRDSharedIndexInformer deactivate EventHandler IndexInformer -> EventHandler : onUpdate(oldCRD, newCRD) activate EventHandler EventHandler --> IndexInformer : onUpdate Completed deactivate EventHandler IndexInformer -> EventHandler : onDelete(CRD, deletedFinalStateUnknown) activate EventHandler EventHandler --> IndexInformer : onDelete Completed deactivate EventHandler deactivate IndexInformer @enduml No newline at end of file
docs/kubernetesClientResource_diagrams.md 0 → 100644 +53 −0 Original line number Diff line number Diff line @startuml queue MQ control "KubernetesClientResource" as KubeClientResource participant "KubernetesClient" as KubeClient entity "GenericKubernetesResource" as ResourceObj participant "Namespace" as NamespaceDB MQ -> KubeClientResource : deployCR(headers, crspec) alt check if this cridge can handle the CRSPEC\ncurrentContextCluster, clusterMasterURL KubeClientResource --> MQ : Response (SEE OTHER) end activate KubeClientResource KubeClientResource -> KubeClient : new KubernetesClientBuilder() activate KubeClient KubeClient --> KubeClientResource : k8s deactivate KubeClient KubeClientResource -> NamespaceDB : Try creating Namespace activate NamespaceDB NamespaceDB --> KubeClientResource : Namespace Created / Exists deactivate NamespaceDB KubeClientResource -> KubeClientResource : createWatchersFornamespace() activate KubeClientResource KubeClientResource -> SharedInformer : KubernetesClient.secrets().inNamespace(nameSpacename).inform(new ResourceEventHandler<>()) loop For each Secret Event SharedInformer -> EventHandler : onAdd()/onUpdate()/onDelete() activate EventHandler EventHandler -> KubeClientResource : updateKubernetesSecretResourceInOSLCatalog deactivate EventHandler end deactivate KubeClientResource KubeClientResource -> ResourceObj : k8s.resource(gkr) activate ResourceObj ResourceObj --> KubeClientResource : Creation Response deactivate ResourceObj KubeClientResource --> MQ : Response (OK / FAIL) deactivate KubeClientResource @enduml
pom.xml +3 −3 Original line number Diff line number Diff line Loading @@ -9,8 +9,8 @@ <relativePath>../org.etsi.osl.main</relativePath> </parent> <artifactId>org.etsi.osl.cridge</artifactId> <artifactId>org.etsi.osl.cridge</artifactId> <name>org.etsi.osl.cridge</name> <url>http://openslice.io</url> Loading Loading @@ -103,12 +103,12 @@ <dependency> <groupId>org.etsi.osl</groupId> <artifactId>org.etsi.osl.model.tmf</artifactId> <version>${project.version}</version> <version>${org.etsi.osl.model.tmf.version}</version> </dependency> <dependency> <groupId>org.etsi.osl</groupId> <artifactId>org.etsi.osl.model.k8s</artifactId> <version>${project.version}</version> <version>${org.etsi.osl.model.k8s.version}</version> </dependency> Loading