From f3c70990b56e1f863d77654e9d903a644531fca6 Mon Sep 17 00:00:00 2001
From: Dimitrios <dimit.giannopoulos@upnet.gr>
Date: Thu, 18 Jul 2024 10:12:43 +0000
Subject: [PATCH] Deployed cb1e130 to develop in public with MkDocs 1.6.0 and
 mike 2.1.2

---
 public/develop/404.html                       |    2 +-
 .../OpenSlice_deployment_examples/index.html  |   29 +-
 public/develop/alarms_actions/index.html      |    2 +-
 .../CRIDGE/CRIDGEforDevelopers/index.html     |    2 +-
 .../architecture/architecture/index.html      |    2 +-
 .../architecture/centrallog/index.html        |    2 +-
 .../index.html                                |    2 +-
 .../develop/architecture/issuemgt/index.html  |    2 +-
 .../architecture/messagebus/index.html        |    2 +-
 public/develop/architecture/nfvapi/index.html |    2 +-
 public/develop/architecture/oauth/index.html  |    2 +-
 public/develop/architecture/osom/index.html   |    2 +-
 public/develop/architecture/tmfapi/index.html |    2 +-
 public/develop/config_intro/index.html        |    2 +-
 .../contributing/developing/index.html        |    2 +-
 .../develop/contributing/wishlist/index.html  |    2 +-
 public/develop/deployment/index.html          |    2 +-
 public/develop/deploymentCompose/index.html   |    2 +-
 public/develop/deploymentK8s/index.html       |    2 +-
 public/develop/etsi_osl/index.html            |    6 +-
 public/develop/history/index.html             |   35 +-
 public/develop/index.html                     |   13 +-
 public/develop/naas/exposed_apis/index.html   |    2 +-
 public/develop/naas/gst_to_tmf/index.html     |    2 +-
 public/develop/naas/introduction/index.html   |   78 +-
 public/develop/naas/lcm_intro/index.html      |    2 +-
 .../develop/naas/lcm_rules_intro/index.html   |    2 +-
 public/develop/naas/nfv/intro/index.html      |    4 +-
 .../develop/naas/nfv/nfvcatalogs/index.html   |    4 +-
 .../develop/naas/nfv/nfvservices/index.html   |   28 +-
 .../develop/naas/resource_catalog/index.html  |    3 +-
 .../naas/resource_inventory/index.html        |    4 +-
 public/develop/naas/resource_spec/index.html  |    4 +-
 .../develop/naas/service_catalog/index.html   |    2 +-
 .../develop/naas/service_inventory/index.html |    6 +-
 .../develop/naas/service_ordering/index.html  |    2 +-
 public/develop/naas/service_spec/index.html   |    2 +-
 public/develop/naas/so_intro/index.html       |    8 +-
 .../index.html                                |    4 +-
 .../so_servicespec_to_services_nfv/index.html |    2 +-
 public/develop/nfvoconfig/index.html          |    2 +-
 .../ole_keycloak_management/index.html        |    2 +-
 public/develop/portals_intro/index.html       |   18 +-
 .../role_keycloak_management/index.html       |    2 +-
 public/develop/search/search_index.json       |    2 +-
 .../service_design/catalogs/index.html        |    2 +-
 .../index.html                                |    8 +-
 .../index.html                                | 2946 +++++++++++++++++
 .../img01.png                                 |  Bin 0 -> 17523 bytes
 .../img02.png                                 |  Bin 0 -> 96942 bytes
 .../img03.png                                 |  Bin 0 -> 102756 bytes
 .../img04.png                                 |  Bin 0 -> 81200 bytes
 .../img05.png                                 |  Bin 0 -> 27558 bytes
 .../img06.png                                 |  Bin 0 -> 76472 bytes
 .../img061.png                                |  Bin 0 -> 37433 bytes
 .../img07.png                                 |  Bin 0 -> 117362 bytes
 .../img08.png                                 |  Bin 0 -> 88296 bytes
 .../img09.png                                 |  Bin 0 -> 158338 bytes
 .../service_design/examples/intro/index.html  |    4 +-
 .../develop/service_design/intro/index.html   |    4 +-
 .../ExposingKubernetesResources/index.html    |    2 +-
 .../kubernetes/helm/design_helmaas/index.html |    6 +-
 .../kubernetes/intro/index.html               |    2 +-
 .../lcmrules/examples/index.html              |    2 +-
 .../service_design/lcmrules/intro/index.html  |    2 +-
 .../lcmrules/specification/index.html         |    2 +-
 .../nfv/design_nfv_services/index.html        |    4 +-
 .../ordering_services/index.html              |    8 +-
 public/develop/sitemap.xml                    |  122 +-
 public/develop/sitemap.xml.gz                 |  Bin 777 -> 784 bytes
 public/develop/terminology/index.html         |    2 +-
 public/develop/under_construction/index.html  |    2 +-
 72 files changed, 3215 insertions(+), 207 deletions(-)
 create mode 100644 public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example/index.html
 create mode 100644 public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img01.png
 create mode 100644 public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img02.png
 create mode 100644 public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img03.png
 create mode 100644 public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img04.png
 create mode 100644 public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img05.png
 create mode 100644 public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img06.png
 create mode 100644 public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img061.png
 create mode 100644 public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img07.png
 create mode 100644 public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img08.png
 create mode 100644 public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img09.png

diff --git a/public/develop/404.html b/public/develop/404.html
index d1bfbd60..71dbbb25 100644
--- a/public/develop/404.html
+++ b/public/develop/404.html
@@ -1814,7 +1814,7 @@
   
   
     <li class="md-nav__item">
-      <a href="/develop/service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="/develop/./service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/OpenSlice_deployment_examples/index.html b/public/develop/OpenSlice_deployment_examples/index.html
index ef471b17..847071a0 100644
--- a/public/develop/OpenSlice_deployment_examples/index.html
+++ b/public/develop/OpenSlice_deployment_examples/index.html
@@ -335,9 +335,9 @@
     <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
       
         <li class="md-nav__item">
-  <a href="#5ginfire-eu-project2018" class="md-nav__link">
+  <a href="#5ginfire-eu-project-2018" class="md-nav__link">
     <span class="md-ellipsis">
-      5GinFIRE EU project(2018)
+      5GinFIRE EU project (2018)
     </span>
   </a>
   
@@ -1939,7 +1939,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2773,9 +2773,9 @@
     <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
       
         <li class="md-nav__item">
-  <a href="#5ginfire-eu-project2018" class="md-nav__link">
+  <a href="#5ginfire-eu-project-2018" class="md-nav__link">
     <span class="md-ellipsis">
-      5GinFIRE EU project(2018)
+      5GinFIRE EU project (2018)
     </span>
   </a>
   
@@ -2861,11 +2861,11 @@
 
 <h1 id="openslice-deployment-examples">OpenSlice deployment examples</h1>
 <p>Here are some examples from past and current efforts that use OpenSlice in various cases.</p>
-<h2 id="5ginfire-eu-project2018">5GinFIRE EU project(2018)</h2>
+<h2 id="5ginfire-eu-project-2018">5GinFIRE EU project (2018)</h2>
 <ul>
 <li>MultiVIM approach</li>
 <li>9 Testbeds</li>
-<li>Automotive, Smart City, eHeath, PPDR, Media, SDR, Cloud</li>
+<li>Automotive, Smart City, eHeath, PPDR, Media, SDR, Cloud</li>
 <li>22 Experiment proposals from Verticals</li>
 <li>100+ Users</li>
 <li>VxF catalog: </li>
@@ -2877,14 +2877,14 @@
 <li>30+ are public to be reused</li>
 <li>500+ Deployment requests (orchestrations) performed</li>
 </ul>
-<p>[<img alt="OpenSlice  usage" src="../images/deployment_example/Slide1.PNG" /></p>
+<p><img alt="OpenSlice  usage" src="../images/deployment_example/Slide1.PNG" /></p>
 <h2 id="5g-vinni-eu-project-2020">5G-VINNI  EU project (2020)</h2>
 <ul>
 <li>Multi-vendor challenge – Commercial and opensource</li>
 <li>5G services on multiple sites</li>
 <li>Introduction of TMFORUM models and APIs </li>
 </ul>
-<p>[<img alt="OpenSlice  usage" src="../images/deployment_example/Slide2.PNG" /></p>
+<p><img alt="OpenSlice  usage" src="../images/deployment_example/Slide2.PNG" /></p>
 <h2 id="5gasp-eu-project-2021-2024">5GASP  EU project (2021-2024)</h2>
 <ul>
 <li>Support a multi-site CI/CD testing automated DevOps cycle for network Applications</li>
@@ -2892,25 +2892,25 @@
 <li>Introducing Service Test models</li>
 <li>Introducing the Product models for a network application marketplace</li>
 </ul>
-<p>[<img alt="OpenSlice  usage" src="../images/deployment_example/Slide3.PNG" /></p>
+<p><img alt="OpenSlice  usage" src="../images/deployment_example/Slide3.PNG" /></p>
 <h2 id="fidal-eu-project-2023-">FIDAL EU project (2023-)</h2>
 <ul>
 <li>Support multi-site automated testing</li>
 <li>Multiple testbeds/ different APIs</li>
 </ul>
-<p>[<img alt="OpenSlice  usage" src="../images/deployment_example/Slide4.PNG" /></p>
+<p><img alt="OpenSlice  usage" src="../images/deployment_example/Slide4.PNG" /></p>
 <h2 id="across-eu-project-2023-">ACROSS EU project (2023-)</h2>
 <ul>
 <li>Used as a cross-domain orchestrator</li>
 <li>Support the multi-domain orchestrator</li>
 <li>Support Zero-touch provisioning concepts</li>
 </ul>
-<p>[<img alt="OpenSlice  usage" src="../images/deployment_example/Slide5.PNG" /></p>
+<p><img alt="OpenSlice  usage" src="../images/deployment_example/Slide5.PNG" /></p>
 <h2 id="incode-eu-project-2023-">INCODE EU project (2023-)</h2>
 <ul>
 <li>Support the provisioning of end-to-end domain services</li>
 </ul>
-<p>[<img alt="OpenSlice  usage" src="../images/deployment_example/Slide6.PNG" /></p>
+<p><img alt="OpenSlice  usage" src="../images/deployment_example/Slide6.PNG" /></p>
 <h2 id="imagineb5g-eu-project-2023-">IMAGINEB5G EU project (2023-)</h2>
 <ul>
 <li>Support the provisioning of end-to-end domain services</li>
@@ -2918,8 +2918,9 @@
 <h2 id="etsi-zsm-poc-2">ETSI ZSM PoC #2</h2>
 <ul>
 <li>Automated Network Slice Scaling in Multi-Site Environments</li>
+<li><a href="https://zsmwiki.etsi.org/index.php?title=PoC_2_Automated_Network_Slice_Scaling_in_Multi-Site_Environments">See more</a></li>
 </ul>
-<p>[<img alt="OpenSlice  usage" src="../images/deployment_example/Slide7.PNG" /></p>
+<p><img alt="OpenSlice  usage" src="../images/deployment_example/Slide7.PNG" /></p>
 
 
 
diff --git a/public/develop/alarms_actions/index.html b/public/develop/alarms_actions/index.html
index dc339be8..40a2c9d3 100644
--- a/public/develop/alarms_actions/index.html
+++ b/public/develop/alarms_actions/index.html
@@ -1821,7 +1821,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/architecture/CRIDGE/CRIDGEforDevelopers/index.html b/public/develop/architecture/CRIDGE/CRIDGEforDevelopers/index.html
index 07ddd0d4..bcf45cff 100644
--- a/public/develop/architecture/CRIDGE/CRIDGEforDevelopers/index.html
+++ b/public/develop/architecture/CRIDGE/CRIDGEforDevelopers/index.html
@@ -1825,7 +1825,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/architecture/architecture/index.html b/public/develop/architecture/architecture/index.html
index c16743ee..035ec7c8 100644
--- a/public/develop/architecture/architecture/index.html
+++ b/public/develop/architecture/architecture/index.html
@@ -1825,7 +1825,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/architecture/centrallog/index.html b/public/develop/architecture/centrallog/index.html
index 22f51881..084d81ac 100644
--- a/public/develop/architecture/centrallog/index.html
+++ b/public/develop/architecture/centrallog/index.html
@@ -1825,7 +1825,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/architecture/consumingServicesFromExternalPartners/index.html b/public/develop/architecture/consumingServicesFromExternalPartners/index.html
index ef1a970a..7db1127a 100644
--- a/public/develop/architecture/consumingServicesFromExternalPartners/index.html
+++ b/public/develop/architecture/consumingServicesFromExternalPartners/index.html
@@ -1880,7 +1880,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/architecture/issuemgt/index.html b/public/develop/architecture/issuemgt/index.html
index c1e794da..e16c82cc 100644
--- a/public/develop/architecture/issuemgt/index.html
+++ b/public/develop/architecture/issuemgt/index.html
@@ -1825,7 +1825,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/architecture/messagebus/index.html b/public/develop/architecture/messagebus/index.html
index 2a28ed01..2f4e81b5 100644
--- a/public/develop/architecture/messagebus/index.html
+++ b/public/develop/architecture/messagebus/index.html
@@ -1825,7 +1825,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/architecture/nfvapi/index.html b/public/develop/architecture/nfvapi/index.html
index 9e13b70c..96dd287b 100644
--- a/public/develop/architecture/nfvapi/index.html
+++ b/public/develop/architecture/nfvapi/index.html
@@ -1825,7 +1825,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/architecture/oauth/index.html b/public/develop/architecture/oauth/index.html
index 6302a3e7..fb3a4494 100644
--- a/public/develop/architecture/oauth/index.html
+++ b/public/develop/architecture/oauth/index.html
@@ -1825,7 +1825,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/architecture/osom/index.html b/public/develop/architecture/osom/index.html
index 5e0d197a..3485289e 100644
--- a/public/develop/architecture/osom/index.html
+++ b/public/develop/architecture/osom/index.html
@@ -1825,7 +1825,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/architecture/tmfapi/index.html b/public/develop/architecture/tmfapi/index.html
index 92e53bf9..f8fd7e51 100644
--- a/public/develop/architecture/tmfapi/index.html
+++ b/public/develop/architecture/tmfapi/index.html
@@ -1825,7 +1825,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/config_intro/index.html b/public/develop/config_intro/index.html
index 2c8151af..adc63574 100644
--- a/public/develop/config_intro/index.html
+++ b/public/develop/config_intro/index.html
@@ -1878,7 +1878,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/contributing/developing/index.html b/public/develop/contributing/developing/index.html
index b78b49ed..ba1eb521 100644
--- a/public/develop/contributing/developing/index.html
+++ b/public/develop/contributing/developing/index.html
@@ -1825,7 +1825,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/contributing/wishlist/index.html b/public/develop/contributing/wishlist/index.html
index 887262d2..32f8f2a6 100644
--- a/public/develop/contributing/wishlist/index.html
+++ b/public/develop/contributing/wishlist/index.html
@@ -1821,7 +1821,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/deployment/index.html b/public/develop/deployment/index.html
index 6c3bef1c..42b6adc0 100644
--- a/public/develop/deployment/index.html
+++ b/public/develop/deployment/index.html
@@ -1878,7 +1878,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/deploymentCompose/index.html b/public/develop/deploymentCompose/index.html
index e59d86b6..d74f9dff 100644
--- a/public/develop/deploymentCompose/index.html
+++ b/public/develop/deploymentCompose/index.html
@@ -2184,7 +2184,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/deploymentK8s/index.html b/public/develop/deploymentK8s/index.html
index 9f1fb864..f53032e5 100644
--- a/public/develop/deploymentK8s/index.html
+++ b/public/develop/deploymentK8s/index.html
@@ -2202,7 +2202,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/etsi_osl/index.html b/public/develop/etsi_osl/index.html
index 27210684..ebe434b9 100644
--- a/public/develop/etsi_osl/index.html
+++ b/public/develop/etsi_osl/index.html
@@ -1837,7 +1837,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2677,8 +2677,8 @@
                   
 
 
-<h1 id="the-etsi-sdg-osl">The ETSi SDG OSL</h1>
-<p>OpenSlice is developed by the OSL ETSI Software Development Group <a href="https://osl.etsi.org/">see more info</a></p>
+<h1 id="the-etsi-sdg-osl">The ETSI SDG OSL</h1>
+<p>OpenSlice is developed by the OSL ETSI Software Development Group <a href="https://osl.etsi.org/">see more info</a>.</p>
 
 
 
diff --git a/public/develop/history/index.html b/public/develop/history/index.html
index c29075e5..64478fb6 100644
--- a/public/develop/history/index.html
+++ b/public/develop/history/index.html
@@ -316,6 +316,8 @@
       <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
       
       
+        
+      
       
         <label class="md-nav__link md-nav__link--active" for="__toc">
           
@@ -344,6 +346,8 @@
   
   
   
+    
+  
   
     <label class="md-nav__title" for="__toc">
       <span class="md-nav__icon md-icon"></span>
@@ -351,15 +355,6 @@
     </label>
     <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
       
-        <li class="md-nav__item">
-  <a href="#history" class="md-nav__link">
-    <span class="md-ellipsis">
-      History
-    </span>
-  </a>
-  
-</li>
-      
         <li class="md-nav__item">
   <a href="#citation" class="md-nav__link">
     <span class="md-ellipsis">
@@ -1881,7 +1876,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2705,6 +2700,8 @@
   
   
   
+    
+  
   
     <label class="md-nav__title" for="__toc">
       <span class="md-nav__icon md-icon"></span>
@@ -2712,15 +2709,6 @@
     </label>
     <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
       
-        <li class="md-nav__item">
-  <a href="#history" class="md-nav__link">
-    <span class="md-ellipsis">
-      History
-    </span>
-  </a>
-  
-</li>
-      
         <li class="md-nav__item">
   <a href="#citation" class="md-nav__link">
     <span class="md-ellipsis">
@@ -2745,9 +2733,7 @@
                   
 
 
-  <h1>History</h1>
-
-<h2 id="history">History</h2>
+<h1 id="history">History</h1>
 <ul>
 <li>The NFV portal part of OpenSlice was initially developed in H2020 European Research project <a href="https://5ginfire.eu">5GinFIRE</a> by University of Patras, Greece</li>
 <li>OpenSlice core services, APIs was further developed and maintained in H2020 European project <a href="https://5g-vinni.eu/">5G-VINNI</a> by University of Patras, Greece</li>
@@ -2756,8 +2742,7 @@
 </ul>
 <h2 id="citation">Citation</h2>
 <p>Please cite our <a href="https://arxiv.org/abs/2102.03290">![paper]</a> if you use OpenSlice in your research</p>
-<pre><code>
-@misc{tranoris2021openslice,
+<pre><code>@misc{tranoris2021openslice,
       title={Openslice: An opensource OSS for Delivering Network Slice as a Service}, 
       author={Christos Tranoris},
       year={2021},
@@ -2765,8 +2750,6 @@
       archivePrefix={arXiv},
       primaryClass={cs.NI}
 }
-
-
 </code></pre>
 
 
diff --git a/public/develop/index.html b/public/develop/index.html
index e6b0d48b..1bb5bb23 100644
--- a/public/develop/index.html
+++ b/public/develop/index.html
@@ -1930,7 +1930,7 @@
   
   
     <li class="md-nav__item">
-      <a href="service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2898,17 +2898,20 @@ There are various portals offering UI friendly access to users acting as Service
 <p>3rd party applications can use OpenSlice through TMForum Open APIs.</p>
 <h2 id="live-demo">Live Demo</h2>
 <p>Check a live demo of OpenSlice in the following pages:</p>
-<p>(username=admin, password=openslice <br> or <br>username=admin, password=changeme)</p>
 <ul>
 <li>OpenSlice demo: <a href="http://portal.openslice.io/">http://portal.openslice.io/</a></li>
 <li>OpenSlice Service Catalogs and ordering: <a href="http://portal.openslice.io/services/">http://portal.openslice.io/services/</a></li>
-<li>OpenSlice NFV Services onboarding: <a href="http://portal.openslice.io/nfvportal">http://portal.openslice.io/nfvportal</a><blockquote></blockquote>
-</li>
+<li>OpenSlice NFV Services onboarding: <a href="http://portal.openslice.io/nfvportal">http://portal.openslice.io/nfvportal</a></li>
+</ul>
+<p>Login credentials:</p>
+<ul>
+<li>username=admin, password=openslice </li>
+<li>username=admin, password=changeme</li>
 </ul>
 <h1 id="probe-further">Probe further</h1>
 <ul>
 <li>Installing OpenSlice. See the <a href="deployment/">Deployment</a> of OpenSlice</li>
-<li>Learn more on [how OpenSlice supports Network as a Service(NaaS)](./naas/introduction</li>
+<li>Learn more on <a href="./naas/introduction">how OpenSlice supports Network as a Service(NaaS)</a></li>
 <li>Who is implementing OpenSlice? See <a href="https://osl.etsi.org/">OSL ETSI SDG</a></li>
 <li>How OpenSlice works? See the <a href="architecture/architecture/">Architecture</a> of OpenSlice</li>
 </ul>
diff --git a/public/develop/naas/exposed_apis/index.html b/public/develop/naas/exposed_apis/index.html
index c8e96dab..99fec8bf 100644
--- a/public/develop/naas/exposed_apis/index.html
+++ b/public/develop/naas/exposed_apis/index.html
@@ -1830,7 +1830,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/naas/gst_to_tmf/index.html b/public/develop/naas/gst_to_tmf/index.html
index 83379ae5..81b523ff 100644
--- a/public/develop/naas/gst_to_tmf/index.html
+++ b/public/develop/naas/gst_to_tmf/index.html
@@ -1887,7 +1887,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/naas/introduction/index.html b/public/develop/naas/introduction/index.html
index 023eb081..16fa805c 100644
--- a/public/develop/naas/introduction/index.html
+++ b/public/develop/naas/introduction/index.html
@@ -785,6 +785,17 @@
         
       
       
+        <label class="md-nav__link md-nav__link--active" for="__toc">
+          
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+          <span class="md-nav__icon md-icon"></span>
+        </label>
+      
       <a href="./" class="md-nav__link md-nav__link--active">
         
   
@@ -795,6 +806,43 @@
 
       </a>
       
+        
+
+<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      Table of contents
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#openslice-and-naas" class="md-nav__link">
+    <span class="md-ellipsis">
+      OpenSlice and NaaS
+    </span>
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#probe-further" class="md-nav__link">
+    <span class="md-ellipsis">
+      Probe further
+    </span>
+  </a>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+      
     </li>
   
 
@@ -1837,7 +1885,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2664,6 +2712,32 @@
     
   
   
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      Table of contents
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#openslice-and-naas" class="md-nav__link">
+    <span class="md-ellipsis">
+      OpenSlice and NaaS
+    </span>
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#probe-further" class="md-nav__link">
+    <span class="md-ellipsis">
+      Probe further
+    </span>
+  </a>
+  
+</li>
+      
+    </ul>
+  
 </nav>
                   </div>
                 </div>
@@ -2686,7 +2760,7 @@
 <li>GSMA Open Gatewy initiative</li>
 </ul>
 <p>In general Network as a Service (NaaS) is a  service model that allows users to consume network infrastructure and services , similar to how they would consume other cloud services like Software as a Service (SaaS) or Infrastructure as a Service (IaaS). NaaS abstracts the complexity of managing physical network infrastructure, providing users with virtualized network resources that can be dynamically allocated and managed through software.</p>
-<h1 id="openslice-and-naas">OpenSlice and NaaS</h1>
+<h2 id="openslice-and-naas">OpenSlice and NaaS</h2>
 <p>OpenSlice makes extensive use of TMFORUM's models and APIs. Therefore if one is familiar with TMF APIs the terminology and ideas are the same.</p>
 <p>To deliver NaaS we need to incorporate various APIs (see TMF909 API Suite Specification for NaaS). OpenSlice implements various TMF APIs to deliver NaaS and support the  lifecycle functions required to manage the network capabilities exposed as Network as a Service and managed by operational domains.</p>
 <h2 id="probe-further">Probe further</h2>
diff --git a/public/develop/naas/lcm_intro/index.html b/public/develop/naas/lcm_intro/index.html
index 3e7a5af9..b61f637b 100644
--- a/public/develop/naas/lcm_intro/index.html
+++ b/public/develop/naas/lcm_intro/index.html
@@ -2001,7 +2001,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/naas/lcm_rules_intro/index.html b/public/develop/naas/lcm_rules_intro/index.html
index 0dc873a2..5f75e3dd 100644
--- a/public/develop/naas/lcm_rules_intro/index.html
+++ b/public/develop/naas/lcm_rules_intro/index.html
@@ -1905,7 +1905,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/naas/nfv/intro/index.html b/public/develop/naas/nfv/intro/index.html
index c3f63329..3d8eb224 100644
--- a/public/develop/naas/nfv/intro/index.html
+++ b/public/develop/naas/nfv/intro/index.html
@@ -1832,7 +1832,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2672,7 +2672,7 @@
 
   <h1>Introduction</h1>
 
-
+<p><em>This section is WIP.</em></p>
 
 
 
diff --git a/public/develop/naas/nfv/nfvcatalogs/index.html b/public/develop/naas/nfv/nfvcatalogs/index.html
index 5d125e13..e76f27cd 100644
--- a/public/develop/naas/nfv/nfvcatalogs/index.html
+++ b/public/develop/naas/nfv/nfvcatalogs/index.html
@@ -1816,7 +1816,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2656,7 +2656,7 @@
 
   <h1>Nfvcatalogs</h1>
 
-
+<p><em>This section is WIP.</em></p>
 
 
 
diff --git a/public/develop/naas/nfv/nfvservices/index.html b/public/develop/naas/nfv/nfvservices/index.html
index b8d36a1e..ab54336e 100644
--- a/public/develop/naas/nfv/nfvservices/index.html
+++ b/public/develop/naas/nfv/nfvservices/index.html
@@ -1878,7 +1878,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2736,26 +2736,28 @@
 
 
 <h1 id="nfv-services">NFV Services</h1>
-<p>NFV Services are managed through a dedicate UI the NFV portal (eg http://portal.openslice.io/nfvportal)</p>
-<p>Users are able through this portal to manage their NFV artifacts towards the NFVO, ( for example onboard VNFs and NSDs to a target OSM)</p>
-<p>Openslice NFV Services target to accommodate the following envisaged user roles. All users are assumed to be Authenticated:</p>
+<p>NFV Services are managed through a dedicated UI, i.e. the NFV portal (eg., <a href="http://portal.openslice.io/nfvportal">http://portal.openslice.io/nfvportal</a>).</p>
+<p>Users are able through this portal to manage their NFV artifacts towards the NFVO (for example onboard VNFs and NSDs to a target OSM).</p>
+<p>OpenSlice NFV Services target to accommodate the following envisaged user roles. All users are assumed to be Authenticated:</p>
 <ul>
-<li>NFV developer: This role is responsible to upload VNF and NSD Descriptors in the Openslice services towards NFVO like OSM</li>
-<li>Services administrator: This role represents the user that are responsible for maintenance of the Openslice services</li>
+<li>NFV developer: This role is responsible to upload VNF and NSD Descriptors in the OpenSlice services towards NFVO, like OSM</li>
+<li>Services administrator: This role represents the user that are responsible for maintenance of the OpenSlice services</li>
 </ul>
-<p>(obsolete: )</p>
+<p>(obsolete:)</p>
 <ul>
 <li>Testbed provider: This role represents users that are responsible for testbed administration, configuration, integration, adaptation, support, etc</li>
 <li>Experimenter: This role represents the user that will utilize our services and tools to deploy an experiment. That is the experiment description in terms of e.g.: NSD (Network Service Descriptor) or TOSCA Specification (in future versions)</li>
 </ul>
 <p>Finally an anonymous user role exists who has some really simple usage scenarios (e.g. signup through the portal)</p>
 <p>During the onboarding process the following occurs:</p>
-<p>• A NFV developer submits a NFV archive (VNF or NSD) (he can later manage if needed some metadata)
-• The administrator can manage the NFV artifact (e.g. edit it)
-• The administrator On-Boards the NFV artifact to the target MANO
-• The administrator can optionally mark the NFV:
-o As public in order to be publicly visible by all portal users
-o As Certified which means this is certified by a certain entity</p>
+<ul>
+<li>A NFV developer submits a NFV archive (VNF or NSD) (he can later manage if needed some metadata)</li>
+<li>The administrator can manage the NFV artifact (e.g. edit it)</li>
+<li>The administrator On-Boards the NFV artifact to the target MANO</li>
+<li>The administrator can optionally mark the NFV:</li>
+<li>As public in order to be publicly visible by all portal users</li>
+<li>As Certified which means this is certified by a certain entity</li>
+</ul>
 <h2 id="request-a-new-nsd-deployment-this-is-different-in-comparison-to-services">Request a new NSD deployment (this is different in comparison to Services)</h2>
 <p>A developer requests a new network service deployment (which NSD, tentative dates, target infrastructure, etc.). The request is marked as UNDER_REVIEW</p>
 <ul>
diff --git a/public/develop/naas/resource_catalog/index.html b/public/develop/naas/resource_catalog/index.html
index 9f1e3bce..cdbda7e2 100644
--- a/public/develop/naas/resource_catalog/index.html
+++ b/public/develop/naas/resource_catalog/index.html
@@ -1839,7 +1839,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2683,6 +2683,7 @@
 <pre><code>* Resource Specifications: Defines the underlying resources required to deliver services, such as network components, servers, and software.
 * Resource Availability: Tracks the availability and status of resources to ensure efficient service delivery.
 </code></pre>
+<p><em>This section is WIP.</em></p>
 
 
 
diff --git a/public/develop/naas/resource_inventory/index.html b/public/develop/naas/resource_inventory/index.html
index 20015a99..9c23c174 100644
--- a/public/develop/naas/resource_inventory/index.html
+++ b/public/develop/naas/resource_inventory/index.html
@@ -1832,7 +1832,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2672,7 +2672,7 @@
 
   <h1>Resources Inventory</h1>
 
-
+<p><em>This section is WIP.</em></p>
 
 
 
diff --git a/public/develop/naas/resource_spec/index.html b/public/develop/naas/resource_spec/index.html
index 146da263..72f8d99e 100644
--- a/public/develop/naas/resource_spec/index.html
+++ b/public/develop/naas/resource_spec/index.html
@@ -1832,7 +1832,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2672,7 +2672,7 @@
 
   <h1>Resources Specification</h1>
 
-
+<p><em>This section is WIP.</em></p>
 
 
 
diff --git a/public/develop/naas/service_catalog/index.html b/public/develop/naas/service_catalog/index.html
index 3e697604..5b0e3c92 100644
--- a/public/develop/naas/service_catalog/index.html
+++ b/public/develop/naas/service_catalog/index.html
@@ -1914,7 +1914,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/naas/service_inventory/index.html b/public/develop/naas/service_inventory/index.html
index 04011bb2..31215936 100644
--- a/public/develop/naas/service_inventory/index.html
+++ b/public/develop/naas/service_inventory/index.html
@@ -1905,7 +1905,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2790,11 +2790,11 @@
 
 
 <h1 id="service-inventory">Service Inventory</h1>
-<p>Service Inventory contains refences to running services that realize a Service Order</p>
+<p>Service Inventory contains references to running services that realize a Service Order.</p>
 <h2 id="intended-audience-service-designers-openslice-administrators-users">Intended Audience: Service Designers, OpenSlice administrators, Users</h2>
 <p>The Service Inventory is a repository that maintains detailed records of all active services and the underlying resources that support them. It acts as a central repository, tracking the lifecycle of each service from provisioning to decommissioning, and includes references to the specific virtual and physical resources that realize the service, such as servers, network components, storage, and software instances. </p>
 <p>This inventory enables real-time visibility into the status, configuration, and dependencies of each service, facilitating effective management, troubleshooting, and optimization. </p>
-<p>By providing a view of the active services, the Service Inventory includes services/resource allocation, and ensures that services are delivered in alignment with the inital requst. </p>
+<p>By providing a view of the active services, the Service Inventory includes services/resource allocation, and ensures that services are delivered in alignment with the initial request. </p>
 <h2 id="ui-management">UI management</h2>
 <p>Through the menu and dedicated forms the administrator can manage the Service Inventory and any active Services (reconfigure or terminate).Various examples in this document will guide you to the usage and the management of the Services in Service Inventory.</p>
 <h2 id="api-exposed">API exposed</h2>
diff --git a/public/develop/naas/service_ordering/index.html b/public/develop/naas/service_ordering/index.html
index b704f34e..11fd932a 100644
--- a/public/develop/naas/service_ordering/index.html
+++ b/public/develop/naas/service_ordering/index.html
@@ -1905,7 +1905,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/naas/service_spec/index.html b/public/develop/naas/service_spec/index.html
index 328d64ec..e57293de 100644
--- a/public/develop/naas/service_spec/index.html
+++ b/public/develop/naas/service_spec/index.html
@@ -1941,7 +1941,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/naas/so_intro/index.html b/public/develop/naas/so_intro/index.html
index d7ffa6f8..92b65e2e 100644
--- a/public/develop/naas/so_intro/index.html
+++ b/public/develop/naas/so_intro/index.html
@@ -1878,7 +1878,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2736,12 +2736,10 @@
 
 
 <h1 id="service-orchestration">Service Orchestration</h1>
-<ul>
-<li>Service Orchestration: The orchestration engine evaluates the request, determines the necessary resources, and initiates the automated workflows.It interacts with underlying controller components (e.g. 5G Core, Radios, Containerized controllers, NFV, SDN controllers ) to provision and configure the required network functions and connectivity.</li>
-</ul>
+<p>Definition: The orchestration engine evaluates the request, determines the necessary resources, and initiates the automated workflows.It interacts with underlying controller components (e.g. 5G Core, Radios, Containerized controllers, NFV, SDN controllers) to provision and configure the required network functions and connectivity.</p>
 <h2 id="intended-audience-service-designers">Intended Audience: Service Designers</h2>
 <p>OpenSlice end-to-end (E2E) service orchestration framework is designed to manage and automate the entire lifecycle of services across multiple domains and technologies. For delivering, Network as a Service (NaaS) OpenSlice automates and manages the entire lifecycle of network services, from provisioning to monitoring and decommissioning, while ensuring seamless integration, operation, and delivery of services from the initial request to the final delivery, spanning all involved components and layers.</p>
-<p>As next image depicts, service orchestrators follow some predefined workflows. OpenSlice end-to-end (E2E) service orchestrator follows some predefined workflows to manage a service lifecycle (They are described in BPMN language and included in our orchestration engine)</p>
+<p>As next image depicts, service orchestrators follow some predefined workflows. OpenSlice end-to-end (E2E) service orchestrator follows some predefined workflows to manage a service lifecycle (They are described in BPMN language and included in our orchestration engine).</p>
 <p><a href="../so/img01.png"><img alt="SO" src="../so/img01.png" /></a></p>
 <p>This section provides a high level overview of the Service Orchestration process.</p>
 
diff --git a/public/develop/naas/so_servicespec_to_services_kubernetes/index.html b/public/develop/naas/so_servicespec_to_services_kubernetes/index.html
index b65be192..73c32551 100644
--- a/public/develop/naas/so_servicespec_to_services_kubernetes/index.html
+++ b/public/develop/naas/so_servicespec_to_services_kubernetes/index.html
@@ -1834,7 +1834,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2674,7 +2674,7 @@
 
   <h1>Exposing Kubernetes services</h1>
 
-
+<p><em>This section is WIP.</em></p>
 
 
 
diff --git a/public/develop/naas/so_servicespec_to_services_nfv/index.html b/public/develop/naas/so_servicespec_to_services_nfv/index.html
index 83feed28..4019ce89 100644
--- a/public/develop/naas/so_servicespec_to_services_nfv/index.html
+++ b/public/develop/naas/so_servicespec_to_services_nfv/index.html
@@ -1898,7 +1898,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/nfvoconfig/index.html b/public/develop/nfvoconfig/index.html
index ff596d98..c33c20c8 100644
--- a/public/develop/nfvoconfig/index.html
+++ b/public/develop/nfvoconfig/index.html
@@ -1839,7 +1839,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/ole_keycloak_management/index.html b/public/develop/ole_keycloak_management/index.html
index 49b77d60..6851fcd0 100644
--- a/public/develop/ole_keycloak_management/index.html
+++ b/public/develop/ole_keycloak_management/index.html
@@ -1816,7 +1816,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/portals_intro/index.html b/public/develop/portals_intro/index.html
index 7a1a9a4e..b2b41b02 100644
--- a/public/develop/portals_intro/index.html
+++ b/public/develop/portals_intro/index.html
@@ -1839,7 +1839,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2680,15 +2680,15 @@
 
 
 <h1 id="openslice-portals">OpenSlice Portals</h1>
-<p>Openslice comprises of a web landing page <a href="http://portal.openslice.io/">See Demo</a> that navigates to the respective Portal:</p>
+<p>OpenSlice comprises of a web landing page <a href="http://portal.openslice.io/">(See Demo)</a> that navigates to the respective Portals:</p>
 <ul>
-<li>Services Portal <a href="http://portal.openslice.io/services">See Demo</a></li>
-<li>NFV Portal <a href="http://portal.openslice.io/nfvportal">See Demo</a></li>
-<li>Products Portal <a href="http://portal.openslice.io/products">See Demo</a></li>
-<li>Testing Portal <a href="http://portal.openslice.io/testing">See Demo</a></li>
-<li>Resources Portal <a href="http://portal.openslice.io/resources">See Demo</a></li>
+<li>Services Portal <a href="http://portal.openslice.io/services">(See Demo)</a></li>
+<li>NFV Portal <a href="http://portal.openslice.io/nfvportal">(See Demo)</a></li>
+<li>Products Portal <a href="http://portal.openslice.io/products">(See Demo)</a></li>
+<li>Testing Portal <a href="http://portal.openslice.io/testing">(See Demo)</a></li>
+<li>Resources Portal <a href="http://portal.openslice.io/resources">(See Demo)</a></li>
 </ul>
-<p>Following you may find the scope each portal focuses on and the main TMF APIs it supports.</p>
+<p>Following you may find the scope each portal focuses on and the main TMF APIs it supports:</p>
 <p><strong>Services Portal</strong> is a designated portal for the:
 - Service Designer - To design Customer Facing Services as bundles of Resource Facing Services that map to specific Resourses (e.g. NFV, Testing, General Resources). Then, it is charged with the designed Services' exposure to public Service Catalogs.
 - Service Customer - To browse the public Service Catalogs and order the offered Services. The fulfilment process of the Service Order is also captured and the final deployed Services are exposed to the Customer.</p>
@@ -2783,7 +2783,7 @@ Indicatively, the portal can be used to:
 </tr>
 </tbody>
 </table>
-<p>The NFV Portal uses a proprietary API</p>
+<p>The NFV Portal uses a proprietary API.</p>
 
 
 
diff --git a/public/develop/role_keycloak_management/index.html b/public/develop/role_keycloak_management/index.html
index 2e81e449..bcd5c1b9 100644
--- a/public/develop/role_keycloak_management/index.html
+++ b/public/develop/role_keycloak_management/index.html
@@ -1878,7 +1878,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/search/search_index.json b/public/develop/search/search_index.json
index 9f786ce7..6b5e37d6 100644
--- a/public/develop/search/search_index.json
+++ b/public/develop/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introduction","text":"<p>version: 2024Q2 - SNAPSHOT</p> <p>The ETSI Software Development Group for OpenSlice (SDG OSL) is developing an open-source service-based Operations Support System (OSS) to deliver Network as a Service (NaaS) following specifications from major SDOs including ETSI, TM Forum and GSMA.</p>"},{"location":"#usage","title":"Usage","text":"<p>OpenSlice can be used in managing 5G network services from the user device to the core network and cloud as well as for Orchestrating cloud resources across private and public clouds for enterprise applications.  OpenSlice is capable of supporting most of the features of an end-to-end (E2E) service orchestration framework while many of them will be more mature in future releases. The following figure displays the general usage of OpenSlice. </p> <p></p> <p>The image illustrates how OpenSlice supports the idea of an E2E network service orchestration framework by integrating multiple network components and layers, from user devices at the edge to radio, transport networks, core and public cloud services, ensuring seamless, secure, and efficient delivery of network services. Assuming that there are domain controllers for all the above domains OpenSlice can create the end-to-end service via the domain controllers by following the process of creating and deploying the end-to-end service by implementing transformations, and consuming APIs from various network entities. OpenSlice, in a nutchell, offers user interfaces where users can interact with the framework to order, expose, and manage service catalogs, services and resources that can be ordered, following business logic and policies and exposed through the APIs. </p>"},{"location":"#an-end-to-end-e2e-service-orchestration-framework","title":"An end-to-end (E2E) service orchestration framework","text":"<p>An end-to-end (E2E) service orchestration framework is designed to manage and automate the entire lifecycle of services across multiple domains and technologies. For delivering, especially, Network as a Service (NaaS) a comprehensive system is needed that automates and manages the entire lifecycle of network services, from provisioning to monitoring and decommissioning, while ensuring seamless integration, operation, and delivery of services from the initial request to the final delivery, spanning all involved components and layers. Such E2E frameworks enable users to consume network services on-demand, similar to how cloud computing services are consumed. Some key components and features of such frameworks are:</p> <ul> <li>Service Catalogs including predefined Network Services based on service templates for common network services like 5G core functions, 5G slices, VPNs, SD-WAN, firewalls, load balancers, etc. as well as custom Network services with Options for users to define their own network configurations.</li> <li>User Interface (UI) and APIs exposure, offering both a Self-Service Portal that allows users to request, configure, and manage network services as well as APIs for enabling programmatic access to network services for integration with other systems and automation scripts.</li> <li>Service Design and Creation tharough service templates based on predefined models for creating services.</li> <li>Automation and Workflow Management via Orchestration Engines, supporting  Process Automation for automating repetitive tasks and processes,  workflow management and orchestration for automating the provisioning, configuration, and management of network services while coordinating multiple workflows to ensure services are delivered efficiently, ensuring that services comply with predefined policies and standards.</li> <li>Standardized API exposure for seamless integration with different systems and services and APIs transformation support for converting data formats and protocols to ensure compatibility and information exhange between systems during workflows orchestration</li> <li>Service and Resource management and Orchestration while including the capability of multi-domain coordination in managing services/resources across different domains like cloud, 5G core, radios, transport network, and edge including dynamic allocation with adjusting resources based on demand and service requirements. To accomplish the above advanced technologies need to be exploited like, Containerized workloads,  Network Function Virtualization (NFV) which uses virtualized network functions to provide services like routing, switching, and security and Software-Defined Networking (SDN) which Controls the network programmatically to dynamically manage traffic and resources.</li> <li>Monitoring and Analytics including  Service Monitoring while continuously tracking the performance and health of services with capabilities to analyse data to optimize service delivery and predict issues. Real-Time Monitoring is also needed for tracking the performance and health of network services enabling analytics that provide insights for optimization and troubleshooting.</li> <li>Security and Access Control for ensuring only authorized users and systems can access network services. while implementing rules and policies to comply with regulatory requirements.</li> </ul>"},{"location":"#an-e2e-service-orchestration-workflow","title":"An E2E service orchestration workflow","text":"<p>In general an E2E service orchestration workflow includes the following phases:</p> <ul> <li>Service Request: Users or systems request a network service through the self-service portal or API. The request can specify details such as bandwidth, security features, geographic coverage, and duration.</li> <li>Service Orchestration: The orchestration engine evaluates the request, determines the necessary resources, and initiates the automated workflows.It interacts with the underlying components (e.g. 5G Core, Radios, Containerized controllers, NFV, SDN controllers ) to provision and configure the required network functions and connectivity.</li> <li>Provisioning and Configuration: Services, network resources and network functions (VNFs) are instantiated and configured according to the service request during Service Orchestration through the orchestration engine. Other controllers manage their own domains, for example SDN controllers, manage the flow of data through the network to ensure optimal performance and adherence to policies, RAN controllers manage the RAN resoruces, Containerized controllers manage their workload, etc</li> <li>Service Delivery: The E2E network service is activated and made available to the user. Continuous monitoring ensures the service operates as expected, with automatic adjustments made as necessary.</li> <li>Lifecycle Management: The orchestration framework handles updates, scaling, and any necessary modifications throughout the service lifecycle.</li> <li>At the end of the service period, resources are decommissioned and reclaimed.</li> </ul>"},{"location":"#openslice-for-service-providers","title":"OpenSlice for Service Providers","text":"<p>OpenSlice is used by Service Providers to design Network Services, expose them in Service Catalogues and make them available for Service Orders. OpenSlice then can perform the E2E service orchestration workflow.</p> <p>There are various portals offering UI friendly access to users acting as Service Providers:</p> <ul> <li>The Services portal allows Service Providers to design and expose services.</li> <li>The Resource portal allows users to access resource specifications and running resources in resource inventory.</li> <li>The NFV portal allows users to manage NFV artifacts and onboard them to a target MANO/NFV Orchestrator.</li> <li>The Testing portal allows Service Providers to manage test artifacts</li> <li>The Products portal allows Service Providers to expose services as products</li> </ul>"},{"location":"#openslice-for-service-consumers","title":"OpenSlice for Service Consumers","text":"<p>OpenSlice allows Service Consumers to browse the available offered service specifications in a self-service manner. It also supports TMFORUM Northbound APIs  regarding Service Catalog Management, Ordering, Resource, etc. There are various portals offering UI friendly access to users acting as Service Consumers:</p> <ul> <li>The Services portal allows Service Consumers to select and order predefined services.</li> <li>The Resource portal allows users to access running resources in resource inventory.</li> <li>The NFV portal allows users to self-manage NFV artifacts and onboard them to a target MANO/NFV Orchestrator.</li> <li>The Testing portal allows Service Consumers to manage test artifacts</li> <li>The Products portal allows Service Consumers to expose services as products</li> </ul> <p>3rd party applications can use OpenSlice through TMForum Open APIs.</p>"},{"location":"#live-demo","title":"Live Demo","text":"<p>Check a live demo of OpenSlice in the following pages:</p> <p>(username=admin, password=openslice  or username=admin, password=changeme)</p> <ul> <li>OpenSlice demo: http://portal.openslice.io/</li> <li>OpenSlice Service Catalogs and ordering: http://portal.openslice.io/services/</li> <li>OpenSlice NFV Services onboarding: http://portal.openslice.io/nfvportal </li> </ul>"},{"location":"#probe-further","title":"Probe further","text":"<ul> <li>Installing OpenSlice. See the Deployment of OpenSlice</li> <li>Learn more on [how OpenSlice supports Network as a Service(NaaS)](./naas/introduction</li> <li>Who is implementing OpenSlice? See OSL ETSI SDG</li> <li>How OpenSlice works? See the Architecture of OpenSlice</li> </ul>"},{"location":"OpenSlice_deployment_examples/","title":"OpenSlice deployment examples","text":"<p>Here are some examples from past and current efforts that use OpenSlice in various cases.</p>"},{"location":"OpenSlice_deployment_examples/#5ginfire-eu-project2018","title":"5GinFIRE EU project(2018)","text":"<ul> <li>MultiVIM approach</li> <li>9 Testbeds</li> <li>Automotive, Smart City, eHeath, \u000bPPDR, Media, SDR, Cloud</li> <li>22 Experiment proposals from Verticals</li> <li>100+ Users</li> <li>VxF catalog: </li> <li>150+ ONBOARDED VxFs</li> <li>OSM TWO, FOUR, FIVE</li> <li>50+ are public to be reused</li> <li>NSD catalog: </li> <li>90+ ONBOARDED NSDs</li> <li>30+ are public to be reused</li> <li>500+ Deployment requests \u000b(orchestrations) performed</li> </ul> <p>[</p>"},{"location":"OpenSlice_deployment_examples/#5g-vinni-eu-project-2020","title":"5G-VINNI  EU project (2020)","text":"<ul> <li>Multi-vendor challenge \u2013 Commercial and opensource</li> <li>5G services on multiple sites</li> <li>Introduction of TMFORUM models and APIs </li> </ul> <p>[</p>"},{"location":"OpenSlice_deployment_examples/#5gasp-eu-project-2021-2024","title":"5GASP  EU project (2021-2024)","text":"<ul> <li>Support a multi-site CI/CD testing automated DevOps cycle for network Applications</li> <li>Multiple NFVOs</li> <li>Introducing Service Test models</li> <li>Introducing the Product models for a network application marketplace</li> </ul> <p>[</p>"},{"location":"OpenSlice_deployment_examples/#fidal-eu-project-2023-","title":"FIDAL EU project (2023-)","text":"<ul> <li>Support multi-site automated testing</li> <li>Multiple testbeds/ different APIs</li> </ul> <p>[</p>"},{"location":"OpenSlice_deployment_examples/#across-eu-project-2023-","title":"ACROSS EU project (2023-)","text":"<ul> <li>Used as a cross-domain orchestrator</li> <li>Support the multi-domain orchestrator</li> <li>Support Zero-touch provisioning concepts</li> </ul> <p>[</p>"},{"location":"OpenSlice_deployment_examples/#incode-eu-project-2023-","title":"INCODE EU project (2023-)","text":"<ul> <li>Support the provisioning of end-to-end domain services</li> </ul> <p>[</p>"},{"location":"OpenSlice_deployment_examples/#imagineb5g-eu-project-2023-","title":"IMAGINEB5G EU project (2023-)","text":"<ul> <li>Support the provisioning of end-to-end domain services</li> </ul>"},{"location":"OpenSlice_deployment_examples/#etsi-zsm-poc-2","title":"ETSI ZSM PoC #2","text":"<ul> <li>Automated Network Slice Scaling in Multi-Site Environments</li> </ul> <p>[</p>"},{"location":"alarms_actions/","title":"Alarms","text":"<p>In Openslice parts of TMF642 Alarm Management API are currently implemented. Alarms can be managed through the TMF API endpoint as well as the UI.</p>"},{"location":"alarms_actions/#alarms-and-actions","title":"Alarms and Actions","text":"<p>Note: Actions is an experimental feature. We expect to have a more mature solution in future. The component in the architecture is the Openslcie Assurance Services</p> <p>Alarms can be automatically resolved by specific actions. Today only the following actions are offered.</p> <ul> <li>execDay2</li> <li>scaleServiceEqually</li> </ul>"},{"location":"alarms_actions/#execday2","title":"execDay2","text":"<p>Usually used to perform a Day2 configuration (towards OSM). To use it, Create a New Action Specification Name=execDay2 as following</p> <p></p> <p>Now make a Service Order for your service. In this example \u03c2\u03b5 used a cirros NSD</p> <p>Create a  New Action Rule for the running services as the following example:</p> <p></p> <p>The scope is the running cirros service. </p> <p>Params should be paramname=value;paramname2=value2;paramname3=value3 (must exist in the VNF otherwise OSM will raise an error).</p> <p>In this case should be filename=test.txt</p> <p>Primitive=touch</p> <p>ServiceId = select the service which will accept the Day2. In this case is the same</p> <p>To test it:</p> <p>Go to the Service Inventory and select the active Service.</p> <p>Note the UUID of the service (e.g. c4e7990a-e174-4cd2-9133-b10e56721e08 copy from address bar),  DeploymentRequestID and NSDID from characteristics</p> <p>You can either use the UUID of the service or the DeploymentRequestID  and POST to the Alarms endpoint ( /tmf-api/alarmManagement/v4/alarm)</p> <p>If the DeploymentRequestID  is used then POST:</p> <pre><code>\n{\n  \"alarmRaisedTime\": \"2021-06-29T12:30:24.675Z\",\n  \"alarmReportingTime\": \"2021-06-29T12:30:54.675Z\",\n  \"state\": \"raised\",\n  \"alarmType\": \"qualityOfServiceAlarm\",\n  \"probableCause\": \"thresholdCrossed\",\n  \"ackState\": \"unacknowledged\",\n  \"perceivedSeverity\": \"major\",\n  \"sourceSystemId\": \"mano-client-service\",\n  \"alarmDetails\": \"NSID=3;DeploymentRequestID=1\",\n  \"specificProblem\": \"myalram raised\"\n}\n\n</code></pre> <p>If the UUID is used then POST:</p> <pre><code>\n{\n  \"alarmRaisedTime\": \"2021-06-29T12:30:24.675Z\",\n  \"alarmReportingTime\": \"2021-06-29T12:30:54.675Z\",\n  \"state\": \"raised\",\n  \"alarmType\": \"qualityOfServiceAlarm\",\n  \"probableCause\": \"thresholdCrossed\",\n  \"ackState\": \"unacknowledged\",\n  \"perceivedSeverity\": \"major\",\n  \"sourceSystemId\": \"mano-client-service\",\n  \"alarmDetails\": \"analarm\",\n  \"specificProblem\": \"myalram raised\",\n  \"affectedService\": [\n    {\n      \"id\": \"c4e7990a-e174-4cd2-9133-b10e56721e08\"\n    }\n  ]\n\n}\n\n</code></pre> <p>The Alarm to be created must have the affected Service ID equal to the running service from the scope (the cirros_ns)</p> <p>Go to service inventory you will see the notes and also the service characteristics for any  EXEC_ACTION updates</p> <p>You can also adjust the alarm conditions. They must match true so the alarm to be acknowledged So if another external service raises an Alarm (with POST) for the running service, a Day2 will be performed on another Service</p>"},{"location":"alarms_actions/#scaleserviceequally","title":"scaleServiceEqually","text":"<p>This action is used from getting a scaling event from OSM. Please see the next demo for details on how it works</p>"},{"location":"alarms_actions/#prototype-demo","title":"Prototype demo","text":"<p>You can watch how we used the prototype on the following ETSI ZMS PoC #2</p> <ul> <li>ETSI ZMS PoC #2: https://www.etsi.org/events/1905-webinar-zsm-poc-2-showcase-automated-network-slice-scaling-in-multi-site-environments/</li> </ul>"},{"location":"config_intro/","title":"Configuring and managing OpenSlice","text":""},{"location":"config_intro/#intended-audience-openslice-administrators","title":"Intended Audience: OpenSlice administrators","text":"<p>This section provides information on how to configure and manage different aspect of OpenSlice while in operation. For example:</p> <ul> <li>Manage user roles and access in Keycloak</li> <li>Configure/Manage NFVOs</li> <li>Advanced configuration scenarios</li> </ul>"},{"location":"deployment/","title":"OpenSlice Deployment","text":"<p>This section is meant to guide the user through the installation of OpenSlice. </p>"},{"location":"deployment/#intended-audience-openslice-administrators","title":"Intended Audience: OpenSlice administrators","text":"<p>Following, you may thorough guides depending on the installation type of your choice:</p> <ul> <li>Installing via Docker Compose guide</li> <li>Installing via Kubernetes guide</li> </ul>"},{"location":"deploymentCompose/","title":"OpenSlice Deployment Guide with Docker Compose","text":""},{"location":"deploymentCompose/#intended-audience-openslice-administrators","title":"Intended Audience: OpenSlice administrators","text":""},{"location":"deploymentCompose/#requirements","title":"Requirements","text":""},{"location":"deploymentCompose/#hardware-requirements","title":"Hardware requirements:","text":"Minimum Hardware Requirements Recomended Hardware Requirements 4 CPU cores 8 CPU cores 8 GB RAM 16 GB RAM 30 GB storage 50 GB storage"},{"location":"deploymentCompose/#software-requirements","title":"Software Requirements:","text":"<ul> <li>Docker: A running environment for Docker Compose services</li> </ul>"},{"location":"deploymentCompose/#preparing-the-environment","title":"Preparing the environment","text":""},{"location":"deploymentCompose/#1-backup-your-previous-database-if-necessary","title":"1. Backup your previous database if necessary:","text":"<pre><code>sudo docker exec amysql /usr/bin/mysqldump -u root --password=letmein ostmfdb &gt; backup_ostmfdb.sql\n</code></pre>"},{"location":"deploymentCompose/#2-install-docker","title":"2. Install docker","text":"<p>Since July 2023 Docker Compose V1 stopped receiving updates. OpenSlice fully reverted to Compose V2, which is integrated in the Docker installation.</p>"},{"location":"deploymentCompose/#3-configure-containers-to-properly-resolve-the-dns-of-your-domain-optional","title":"3. Configure containers to properly resolve the DNS of your domain (optional)","text":"<pre><code>sudo nano /etc/docker/daemon.json\n</code></pre> <p>and add:</p> <pre><code>{ \n  \"dns\": [\"8.8.8.8\", \"8.8.4.4\"]\n}\n</code></pre> <p>After editing daemon.json restart docker daemon for the changes to take place</p> <pre><code>sudo systemctl restart docker\n</code></pre>"},{"location":"deploymentCompose/#downloading-the-project","title":"Downloading the project","text":""},{"location":"deploymentCompose/#1-create-a-new-folder-to-download-the-project","title":"1. Create a new folder to download the project","text":"<pre><code>mkdir openslice\n</code></pre> <pre><code>cd openslice\n</code></pre>"},{"location":"deploymentCompose/#2-download-the-deployment-script","title":"2. Download the deployment script","text":"<p>Download the deployment / environment preparation script</p> <pre><code>wget https://labs.etsi.org/rep/osl/code/org.etsi.osl.main/-/raw/develop/compose/deploy.sh\n</code></pre> <p>Make it executable</p> <pre><code>sudo chmod +x deploy.sh\n</code></pre>"},{"location":"deploymentCompose/#3-run-the-deployment-script","title":"3. Run the deployment script","text":"<p>OpenSlice is a multi repo project. This script selects the same branch for all repositories of the project to pull from.</p> <p>After that it builds the respective jar files locally and installs all the npm packages needed for the UI.</p> <p>If you run the script without selecting a branch the the main branch is going to be selected.</p> <p>We recommend:</p> <ul> <li>main branch for the most stable experience and</li> <li>develop branch for an experience with the latest features (for develop branch installation, it is strongly advisable that you may as well follow the develop documentation)</li> </ul> <pre><code>sudo ./deploy.sh develop #[or replace main with other branch name]\n</code></pre> <p>We recommend running the deploy.sh script with root permissions! In other case, some directories may not be accessible by the project building tools and hinder the smooth installation.</p>"},{"location":"deploymentCompose/#configure-docker-compose-services","title":"Configure Docker Compose services","text":""},{"location":"deploymentCompose/#1-create-configuration-specific-docker-compose-file-from-the-template","title":"1. Create configuration specific Docker Compose file from the template","text":"<pre><code>cd org.etsi.osl.main/compose/\n</code></pre> <pre><code>sudo cp docker-compose.yaml.configure docker-compose.yaml\n</code></pre>"},{"location":"deploymentCompose/#2-configure-mysql-portal-container-optional","title":"2. Configure mysql-portal container (optional)","text":"<ol> <li>In folder <code>org.etsi.osl.main/compose/mysql-init</code> edit the file <code>01-databases.sql</code>.</li> <li>In the <code>org.etsi.osl.main/compose/docker-compose.yaml</code> edit the credentials of the users that services use to connect to the databases, if you wish.<ul> <li>portaluser (default is 12345) and</li> <li>keycloak (default is password)</li> </ul> </li> </ol>"},{"location":"deploymentCompose/#3-configure-keycloak-container-optional","title":"3. Configure keycloak container (optional)","text":"<ol> <li> <p>If you made changes to keycloak's mysql credentials:</p> <p>In folder <code>org.etsi.osl.main/compose/</code> edit the file <code>docker-compose.yaml</code>.</p> </li> </ol> <pre><code>DB_DATABASE: keycloak\nDB_USER: keycloak\nDB_PASSWORD: password\n</code></pre> <ol> <li> <p>If you want to change the keycloak admin password:</p> <p>In folder <code>org.etsi.osl.main/compose/</code> edit the file <code>docker-compose.yaml</code></p> </li> </ol> <pre><code>KEYCLOAK_PASSWORD: Pa55w0rd\n</code></pre>"},{"location":"deploymentCompose/#4-configure-bugzilla-container-optional","title":"4. Configure bugzilla container (optional)","text":"<p>If you want to utilise the Bugzilla connector:</p> <p>In folder <code>org.etsi.osl.main/compose/</code> edit the file <code>docker-compose.yaml</code></p> <pre><code>SPRING_APPLICATION_JSON: '{\n  \"spring.activemq.brokerUrl\": \"tcp://anartemis:61616?jms.watchTopicAdvisories=false\",\n  \"spring.activemq.user\": \"artemis\",\n  \"spring.activemq.password\": \"artemis\",\n  \"bugzillaurl\":\"\",\n  \"bugzillakey\":\"\",\n  \"main_operations_product\":\"\"\n}'\n</code></pre> <p>And add the provided Bugzilla installation information:</p> <pre><code>\"bugzillaurl\":\"bugzillaurl.xx:443/bugzilla/\",\n\"bugzillakey\":\"exampleKeyeqNNwxBlgxZgMEIne0Oeq0Bz\",\n\"main_operations_product\":\"Main Site Operations\" // this is the default product to issue tickets\n</code></pre> <p>Bugzilla should have the following components under the specified product:  </p> <ul> <li>NSD Deployment Request: Component used to schedule deployment req  </li> <li>Onboarding: Issues related to VNF/NSD Onboarding  </li> <li>Operations Support: Default component for operations support  </li> <li>Validation: Use to track validation processes of VNFs and NSDs  </li> <li>VPN Credentials/Access: Used for requesting VPN Credentials/Access   </li> </ul> <p>Also in the 'Main Site Operations' product, a version named 'unspecified' must be created.</p>"},{"location":"deploymentCompose/#5-configure-osportalapi-container-nfv-services-conditional","title":"5. Configure osportalapi container (NFV services) (conditional)","text":"<p>Change the respective fields: </p> <ul> <li>If you made changes to mysql and keycloak credentials.</li> <li>If you want to change logging level (TRACE / DEBUG / INFO / WARN / ERROR).</li> </ul> <p>If you are using a non-local domain, replace everywhere the http://keycloak:8080 with the respective {{protocol://domain.name}}, as well as \"spring.portal.main.domain\" property.</p> <p>In folder <code>org.etsi.osl.main/compose/</code> edit the file <code>docker-compose.yaml</code></p> <pre><code>SPRING_APPLICATION_JSON: '{\n  \"spring.datasource.username\":\"root\",\n  \"spring.datasource.password\":\"letmein\",\n  \"spring-addons.issuers[0].uri\": \"http://keycloak:8080/auth/realms/openslice\",\n  \"spring.security.oauth2.resourceserver.jwt.issuer-uri\": \"http://keycloak:8080/auth/realms/openslice\",\n  \"springdoc.oAuthFlow.authorizationUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth\",\n  \"springdoc.oAuthFlow.tokenUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token\",  \n  \"spring.portal.main.domain\": \"http://localhost\",\n  \"logging.level.org.springframework\" : \"INFO\"\n}'\n</code></pre>"},{"location":"deploymentCompose/#6-osscapi-container-tmf-api-service-conditional","title":"6. osscapi container (TMF API service) (conditional)","text":"<p>Change the respective fields: </p> <ul> <li>If you made changes to mysql and keycloak credentials.</li> <li>If you want to change logging level (TRACE / DEBUG / INFO / WARN / ERROR).</li> </ul> <p>If you are using a non-local domain, replace everywhere the http://keycloak:8080 with the respective {{protocol://domain.name}}.</p> <p>In folder <code>org.etsi.osl.main/compose/</code> edit the file <code>docker-compose.yaml</code></p> <pre><code>SPRING_APPLICATION_JSON: '{\n  \"spring.datasource.username\":\"root\",\n  \"spring.datasource.password\":\"letmein\",\n  \"spring-addons.issuers[0].uri\": \"http://keycloak:8080/auth/realms/openslice\",\n  \"spring.security.oauth2.resourceserver.jwt.issuer-uri\": \"http://keycloak:8080/auth/realms/openslice\",\n  \"springdoc.oAuthFlow.authorizationUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth\",\n  \"springdoc.oAuthFlow.tokenUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token\",  \n  \"logging.level.org.springframework\" : \"INFO\"\n}'\n</code></pre>"},{"location":"deploymentCompose/#configure-nginx","title":"Configure nginx","text":"<p>In folder <code>org.etsi.osl.main/compose/nginx</code> create a configuration specific <code>nginx.conf</code> file.</p> <pre><code>cd org.etsi.osl.main/compose/nginx/\n</code></pre> <pre><code>sudo cp nginx.conf.default nginx.conf\n</code></pre> <p>If needed, in the nginx.conf file, edit the server_name for an non-local deployment.</p>"},{"location":"deploymentCompose/#configure-web-ui","title":"Configure Web UI","text":"<p>In folder <code>org.etsi.osl.portal.web/src/js/</code> create a configuration specific <code>config.js</code> file.</p> <pre><code>cd org.etsi.osl.portal.web/src/js\n</code></pre> <pre><code>sudo cp config.js.default config.js\n</code></pre> <p>Edit the <code>config.js</code> file with the information of your domain. <code>ROOTURL</code> will automatically extract the the Origin (Protocol://Domain:Port) of the deployment, but you must change <code>APIURL</code> property, if you are not aiming for a localhost installation, e.g. \"https://portal.openslice.io\".</p> <p>Example file:</p> <pre><code>{     \n  BUGZILLA: \"ROOTURL/bugzilla/\",\n  STATUS: \"ROOTURL/status/\",\n  APIURL: \"http://localhost\",\n  WEBURL: \"ROOTURL/nfvportal\",\n  APIOAUTHURL: \"ROOTURL/auth/realms/openslice\",\n  APITMFURL: \"ROOTURL/tmf-api/serviceCatalogManagement/v4\"\n}\n</code></pre>"},{"location":"deploymentCompose/#configure-tmf-web-ui","title":"Configure TMF Web UI","text":"<p>In the folder <code>org.etsi.osl.tmf.web/src/assets/config</code> there are 3 files available for configuration:</p> <ul> <li>config.prod.json (Basic information + API configuration)</li> <li>theming.scss (CSS color palette theming)</li> <li>config.theming.json (HTML configuration - Logo, Favicon, Footer)</li> </ul> <p>The first 2 files above (i.e. config.prod.json, theming.scss) are essential for the successful deployment of OpenSlice, thus created automatically during the initial deployment at <code>org.etsi.osl.tmf.web/src/assets/config</code> directory as a copy of the default ones from the remote repository.</p> <p>Ensure that you check the <code>config.prod.json</code> and <code>theming.scss</code> files and readjust to your deployment if needed.</p> <pre><code># Starting from the root project directory\ncd org.etsi.osl.tmf.web/src/assets/config\n</code></pre> <p>E.g. You may edit \"TITLE\", \"WIKI\", etc properties with your domain title. Also configure TMF's API and Keycloak's location for the web application, if needed.</p> <p>Example file:</p> <pre><code>{         \n    \"TITLE\": \"OpenSlice by ETSI\",\n    \"PORTALVERSION\":\"2024Q2\",\n    \"WIKI\": \"https://osl.etsi.org/documentation\",\n    \"BUGZILLA\": \"{BASEURL}/bugzilla/\",\n    \"STATUS\": \"{BASEURL}/status/\",\n    \"WEBURL\": \"{BASEURL}\",\n    \"PORTAL_REPO_APIURL\": \"{BASEURL}/osapi\",\n    \"ASSURANCE_SERVICE_MGMT_APIURL\": \"{BASEURL}/oas-api\",\n    \"APITMFURL\": \"{BASEURL}/tmf-api\",\n    \"OAUTH_CONFIG\" : {\n        \"issuer\": \"{BASEURL}/auth/realms/openslice\",\n        \"loginUrl\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/auth\",\n        \"tokenEndpoint\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/token\",\n        \"userinfoEndpoint\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/userinfo\",\n        \"redirectUri\": \"{BASEURL}/redirect\",\n        \"logoutUrl\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/logout\", \n        \"postLogoutRedirectUri\": \"{BASEURL}\",\n\n        \"responseType\": \"code\",\n        \"oidc\": false,\n        \"clientId\": \"osapiWebClientId\",\n        \"dummyClientSecret\": \"secret\",\n\n        \"requireHttps\": false,\n        \"useHttpBasicAuth\": true,\n        \"clearHashAfterLogin\": false,\n\n        \"showDebugInformation\": true\n    }\n}\n</code></pre> <p>The {BASEURL} placeholder in the file automatically detects the Origin (Protocol://Domain:Port) of the deployment and applies it to every respective property. E.g. If you are attempting a local deployment of OpenSlice, then {BASEURL} is automatically translated to \"http://localhost\". Similarly, you may use {BASEURL} to translate to a public deployment configuration, e.g. \"https://portal.openslice.io\".</p> <p>If further customization, apart from the default provided, is needed for branding (Logo, Footer) then <code>config.theming.json</code> needs to be created in io.openslice.tmf.web/src/assets/config directory, as follows:</p> <pre><code># Starting from the root project directory\ncd org.etsi.osl.tmf.web/src/assets/config\n</code></pre> <pre><code>sudo cp config.theming.default.json config.theming.json\n</code></pre> <p>IMPORTANT NOTE: If you want to apply changes to the JSON configuration files without the need to rebuild the application, you have to apply the changes at the <code>org.etsi.osl.tmf.web/dist/io-openslice-portal-web/assets/config</code> directory. Although, it is mandatory to also apply these changes to the <code>org.etsi.osl.tmf.web/src/assets/config</code> for persistancy, as after any future rebuild of OpenSlice the <code>/dist</code> directory is being overwritten along with its contents. The OpenSlice team strongly recommends to always apply your changes to the TMF web UI configuration files at <code>org.etsi.osl.tmf.web/src/assets/config</code> and rebuild the application.</p>"},{"location":"deploymentCompose/#deploy-openslice-via-docker-compose","title":"Deploy OpenSlice via Docker Compose","text":"<p>After configuring the services, and editing the docker compose file accordingly, the docker compose instantiation command can be performed.</p> <pre><code># Starting from the root project directory\ncd org.etsi.osl.main/compose/\n</code></pre> <pre><code>sudo docker compose --profile prod down;sudo docker compose --profile prod up -d --build\n</code></pre> <p>Depending on your machine, this process might take time. if for any reason the deployment fails during first time, please rerun the above before any further measures.</p>"},{"location":"deploymentCompose/#validating-deployments-and-container-monitoring","title":"Validating deployments and container monitoring","text":"<p>You can monitor containers' status with portainer at port 9000 (http://your-ip:9000).</p> <p>Initially, you may monitor the local machine at portainer.</p> <p>Please check that all containers are in running state.</p>"},{"location":"deploymentCompose/#post-installation-steps","title":"Post installation steps","text":"<p>After the successful deployment of OpenSlice, to ensure the E2E user experience, this section is mandatory. It contains crucial configuration in regard of authentication and user creation.</p>"},{"location":"deploymentCompose/#configure-keycloak-server","title":"Configure Keycloak server","text":"<p>The Keycloack server is managing authentication and running on a container at port 8080. It is also proxied to your host via nginx under http://localhost/auth. </p> <ul> <li> <p>Navigate to http://domain.com/auth/ or https://domain.com/auth/, (http://ipaddress:8080/auth/ or https://ipaddress:8443/auth/ which are directly accessible without proxy) </p> </li> <li> <p>Navigate to Administration Console </p> </li> <li> <p>Login with the credentials from section Configure keycloak container. Default values are:</p> <ul> <li>user: admin and </li> <li>password: Pa55w0rd</li> </ul> </li> </ul> <p>if you are running in HTTP you will get a message: HTTPS required.</p> <p>To resolve this issue when running in HTTP: </p> <ul> <li>Select the master realm from top left corner</li> <li>Go to login Tab and select \"Require SSL\": None</li> <li>Repeat for realm Openslice</li> </ul> <p>If you are running in HTTPS, then \"Require SSL\" can be left unchanged to external requests.</p>"},{"location":"deploymentCompose/#1-configure-redirects","title":"1. Configure redirects","text":"<p>Navigate to realm Openslice &gt; Clients &gt; osapiWebClientId and change the Root URL to your domain. </p> <p>Also, insert your domain, e.g. http://example.org/*, at:</p> <ul> <li>Valid Redirect URIs</li> <li>Web Origins</li> </ul>"},{"location":"deploymentCompose/#2-configure-email","title":"2. Configure email","text":"<p>Keycloak allows new users to register. Subsequently, this will also allow new users to register to the OpenSlice portal.</p> <p>Navigate to realm Openslice &gt; Realm Settings &gt; Login Tab &gt; check User registration, Verify email, Forgot password etc.</p> <p>Finally, enter the details of the mail server at the Email Tab.</p> <p>Email configuration is optional for test runs, but if not provided the above functionalities (e.g. external user registration) will not be possible.</p>"},{"location":"deploymentCompose/#3-add-an-openslice-admin-user","title":"3. Add an OpenSlice admin user","text":"<p>This step is mandatory so as to access the OpenSlice Web UI. To add an OpenSlice admin user you must:</p> <ul> <li>Navigate to realm Openslice &gt; Users &gt; Add user</li> <li>Set a password</li> <li>Upon creation, navigate to Role Mappings and add ADMIN to Assigned Roles list</li> </ul> <p>That user is different from the Keycloak admin user. It is required to login and browse the OpenSlice Web UI. The Role ADMIN guarantee full access through the OpenSlice UI, thus such a user is always required.</p>"},{"location":"deploymentCompose/#keycloak-at-localhost","title":"Keycloak at localhost","text":"<p>This is an important step if you run Keycloak on localhost!</p> <p>1 - Edit your Hosts File, adding the line below</p> <p><code>127.0.0.1 keycloak</code></p> <p>Hosts File Location:</p> <ul> <li> <p>In Linux/Unix, the file's location is at /etc/hosts </p> </li> <li> <p>In Windows, its location is at c:\\Windows\\System32\\Drivers\\etc\\hosts</p> </li> </ul> <p>2 - Replace http://localhost/auth/ with http://keycloak:8080/auth/ in your Keycloak config for AngularJS and Angular (see examples below).</p> <p>Explanation</p> <p>Nginx uses the http://keycloak:8080 URL, which is accessible via the internal docker system's network. The Front-end (TS/Angular) shall also use the http://keycloak:8080. This way, you will not get the invalid token error, as the API is acquiring the token from http://keycloak:8080 (internally) and the Front-end is getting verified by an issuer at the same URL, as well.</p> <p>2.1 - For the Angular configuration (TMF portal UI), navigate to  org.etsi.osl.tmf.web/src/assets/config and edit config.prod.json</p> <pre><code># Starting from the root project directory\ncd org.etsi.osl.tmf.web/src/assets/config\n</code></pre> <pre><code>nano config.prod.json\n</code></pre> <p>After editing, the displayed properties should look like the example below:</p> <pre><code>{         \n  \"OAUTH_CONFIG\" : {\n      \"issuer\": \"http://keycloak:8080/auth/realms/openslice\",\n      \"loginUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth\",\n      \"tokenEndpoint\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token\",\n      \"userinfoEndpoint\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/userinfo\",\n      \"redirectUri\": \"{BASEURL}/redirect\",\n      \"logoutUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/logout\", \n      \"postLogoutRedirectUri\": \"{BASEURL}\",\n  }\n}\n</code></pre> <p>Note the difference in changing {BASEURL} -&gt; http://keycloak:8080</p> <p>If you want the changes to take place immediately without rebuilding the project, then repeat the process for org.etsi.osl.tmf.web/dist/org.etsi.osl.tmf.web/assets/config/config.prod.json</p> <p>2.2 - For the AngularJS configuration (NVF portal UI), navigate to org.etsi.osl.portal.web/src/js and edit config.js</p> <pre><code># Starting from the root project directory\ncd org.etsi.osl.portal.web/src/js\n</code></pre> <pre><code>nano config.js\n</code></pre> <p>After editing, the displayed properties should look like the example below:</p> <pre><code>var appConfig = angular.module('portalwebapp.config',[]);\n\n\nappConfig.factory('APIEndPointService', function() {\n   return {       \n      APIOAUTHURL: \"http://keycloak:8080/auth/realms/openslice\",\n   };\n});\n</code></pre> <p>Note the difference in \"APIOAUTHURL\" property, changing ROOTURL -&gt; http://keycloak:8080</p>"},{"location":"deploymentCompose/#nfv-orchestrator-configuration","title":"NFV Orchestrator Configuration","text":"<p>After successfully deploying and configuring OpenSlice, you may configure its environment (e.g. the NFVO) that will facilitate the deployment of NFV artifacts.</p> <p>See NFV Orchestrator Configuration.</p>"},{"location":"deploymentK8s/","title":"OpenSlice Deployment Guide with Kubernetes","text":""},{"location":"deploymentK8s/#intended-audience-openslice-administrators","title":"Intended Audience: OpenSlice administrators","text":""},{"location":"deploymentK8s/#requirements","title":"Requirements","text":""},{"location":"deploymentK8s/#hardware-requirements","title":"Hardware requirements:","text":"Minimum Hardware Requirements Recommended Hardware Requirements 4 CPU cores 8 CPU cores 8 GB RAM 16 GB RAM 30 GB storage 50 GB storage"},{"location":"deploymentK8s/#software-requirements","title":"Software Requirements:","text":"<ul> <li>git: For cloning the project repository.</li> <li>Kubernetes: A running cluster where OpenSlice will be deployed. <ul> <li>Disclaimer: The current manual setup of Persistent Volumes using <code>hostPath</code> is designed to operate with only a single worker node. This setup will not support data persistence if a pod is rescheduled to another node.</li> </ul> </li> <li>Helm: For managing the deployment of OpenSlice.</li> <li>Ingress Controller: Ingress exposes HTTP and HTTPS routes from outside the cluster to services within the cluster. Traffic routing is controlled by rules defined on the Ingress resource. An Ingress may be configured to give Services externally-reachable URLs, load balance traffic, terminate SSL / TLS, and offer name-based virtual hosting. An Ingress controller is responsible for fulfilling the Ingress, usually with a load balancer, though it may also configure your edge router or additional frontends to help handle the traffic. You must have an Ingress controller to satisfy an Ingress.<ul> <li>An Nginx ingress controller is required, which can be installed using this guide. </li> <li>If you use another type of ingress controller, you'll need to modify <code>[repo-root]/kubernetes/helm/openslice/templates/openslice-ingress.yaml</code> to conform to your ingress controller's requirements.</li> </ul> </li> <li>Network Load Balancer: Required for exposing the service (e.g., GCP, AWS, Azure, MetalLB).</li> <li>Domain/IP Address: Necessary for accessing the application. This should be configured in <code>[repo-root]/kubernetes/helm/openslice/values.yaml</code> under <code>rooturl</code>.</li> </ul>"},{"location":"deploymentK8s/#additional-configuration","title":"Additional Configuration","text":"<ul> <li>Storage Class: In a production environment, specify your <code>storageClass</code> in <code>[repo-root]/kubernetes/helm/openslice/values.yaml</code> under <code>storageClass</code>. If not defined, PVs will be created and managed manually.<ul> <li>Disclaimer: Before deploying, confirm that your storage system supports claims of one 10G and two 1G volumes.</li> </ul> </li> </ul>"},{"location":"deploymentK8s/#preparing-the-environment","title":"Preparing the environment","text":""},{"location":"deploymentK8s/#1-setting-up-a-kubernetes-cluster","title":"1. Setting Up A Kubernetes Cluster","text":"<p>Refer to the official Kubernetes documentation for setting up a cluster. Ensure your cluster meets the hardware requirements specified above.</p>"},{"location":"deploymentK8s/#2-installing-helm","title":"2. Installing Helm","text":"<p>Helm must be installed on your machine to deploy OpenSlice via Helm charts. Follow the official Helm installation guide.</p>"},{"location":"deploymentK8s/#downloading-the-project","title":"Downloading the project","text":""},{"location":"deploymentK8s/#1-create-a-new-folder-to-download-the-project","title":"1. Create a new folder to download the project","text":"<pre><code>mkdir openslice\ncd openslice\n</code></pre>"},{"location":"deploymentK8s/#2-download-the-project-code","title":"2. Download the project code","text":"<p>Clone the project code from the GitLab repository.  Note: This process will be simplified once the charts are published in the GitLab registry, requiring only the chart to be pulled.</p> <pre><code>git clone https://labs.etsi.org/rep/osl/code/org.etsi.osl.main.git\ncd org.etsi.osl.main/kubernetes/helm/openslice/\n</code></pre>"},{"location":"deploymentK8s/#3-prerequisites-before-deployment","title":"3. Prerequisites before deployment","text":"<p>Before deploying the Helm chart, ensure you have configured the necessary components as detailed in the following section, i.e. Configure Helm Chart Services. By default, the <code>main</code> branch is selected for deployment.</p> <p>We recommend:</p> <ul> <li>main branch for the most stable experience and</li> <li>develop branch for an experience with the latest features (for develop branch installation, it is strongly advisable that you may as well follow the develop documentation)</li> </ul>"},{"location":"deploymentK8s/#configure-helm-chart-services","title":"Configure Helm Chart Services","text":"<p>When deploying OpenSlice with Helm, service configurations are handled through the <code>values.yaml</code> file. This file allows you to define all necessary configurations for your deployment, including database credentials, service URLs, and logging levels. Below are examples of how to configure your services in Helm based on your provided values.</p>"},{"location":"deploymentK8s/#configuring-services","title":"Configuring Services","text":""},{"location":"deploymentK8s/#1-database-configuration","title":"1. Database Configuration","text":"<p>To configure MySQL and other related services, you can directly set the values in your <code>values.yaml</code> file under the <code>oscreds</code> and <code>mysql</code> sections. For example:</p> <pre><code>oscreds:\n  mysql:\n    username: \"root\"\n    password: \"letmein\"\n    openslicedb: \"osdb\"\n    keycloak: \n      database: \"keycloak\"\n      username: \"keycloak\"\n      password: \"password\"\n      adminpassword: \"Pa55w0rd\"\n    portal:\n      database: \"osdb\"\n      username: \"portaluser\"\n      password: \"12345\"\n</code></pre>"},{"location":"deploymentK8s/#2-external-services-configuration","title":"2. External Services Configuration","text":"<p>For configuring external services like Bugzilla and CentralLog, specify their URLs and credentials in the <code>values.yaml</code> file:</p> <pre><code>bugzillaurl: \"example.com:443/bugzilla\"\nbugzillakey: \"VH2Vw0iI5aYgALFFzVDWqhACwt6Hu3bXla9kSC1Z\"\nmain_operations_product: \"Main Site Operations\" // this is the default product to issue tickets\ncentrallogurl: \"http://elk_ip:elk_port/index_name/_doc\"\n</code></pre> <p>Bugzilla should have the following components under the specified product:  </p> <ul> <li>NSD Deployment Request: Component used to schedule deployment req  </li> <li>Onboarding: Issues related to VNF/NSD Onboarding  </li> <li>Operations Support: Default component for operations support  </li> <li>Validation: Use to track validation processes of VNFs and NSDs  </li> <li>VPN Credentials/Access: Used for requesting VPN Credentials/Access   </li> </ul> <p>Also in the 'Main Site Operations' product, a version named 'unspecified' must be created.</p>"},{"location":"deploymentK8s/#3-keycloak-configuration","title":"3. Keycloak Configuration","text":"<p>Keycloak settings, including the database and admin password, are part of the <code>oscreds.mysql.keycloak</code> section. If you need to adjust Keycloak-specific settings like realms or client configurations, you'll likely need to customize your Helm chart further or manage these settings directly within Keycloak after deployment. The Keycloak realm configuration that is imported by default can be found under <code>kubernetes/helm/openslice/files/keycloak-init/realm-export.json</code>.</p> <pre><code>oscreds:\n  mysql:\n    keycloak: \n      database: \"keycloak\"\n      username: \"keycloak\"\n      password: \"password\"\n      adminpassword: \"Pa55w0rd\"\n</code></pre>"},{"location":"deploymentK8s/#4-application-and-logging-configuration","title":"4. Application and Logging Configuration","text":"<p>Application-specific configurations, such as OAuth client secrets, can be set in the <code>spring</code> section:</p> <pre><code>spring:\n  oauthClientSecret: \"secret\"\n</code></pre>"},{"location":"deploymentK8s/#5-ingress-and-root-url","title":"5. Ingress and Root URL","text":"<p>To configure the ingress controller and root URL for OpenSlice, update the rooturl field with your ingress load balancer IP or domain. This setting is crucial for external access to your application:</p> <pre><code>rooturl: \"http://openslice.com\" # Example domain\n# or\nrooturl: \"http://3.15.198.35:8080\" # Example IP with port\n</code></pre>"},{"location":"deploymentK8s/#6-persistent-volume-for-mysql","title":"6. Persistent Volume for MySQL","text":"<p>For persistent storage, especially for MySQL, define the storage size under the <code>mysql</code> section. This ensures that your database retains data across pod restarts and deployments.</p> <pre><code>mysql:\n  storage: \"10Gi\"\n</code></pre>"},{"location":"deploymentK8s/#configure-web-ui","title":"Configure Web UI","text":"<p>In folder <code>kubernetes/helm/openslice/files/org.etsi.osl.portal.web/src/js</code> you must make a copy of <code>config.js.default</code> file and rename it to <code>config.js</code>. </p> <p>This is mandatory for the configuration file to be discoverable.</p> <p>Edit the <code>config.js</code> configuration file with your static configuration, if needed.</p> <pre><code>{\n  TITLE: \"OpenSlice by ETSI\",\n  WIKI: \"https://osl.etsi.org/documentation/\",\n  BUGZILLA: \"{{ .Values.rooturl }}/bugzilla\",\n  STATUS: \"{{ .Values.rooturl }}/status\",\n  APIURL: \"{{ .Values.rooturl }}\",\n  WEBURL: \"{{ .Values.rooturl }}/nfvportal\",\n  APIOAUTHURL: \"{{ .Values.rooturl }}/auth/realms/openslice\",\n  APITMFURL: \"{{ .Values.rooturl }}/tmf-api/serviceCatalogManagement/v4\"\n}\n</code></pre>"},{"location":"deploymentK8s/#configure-tmf-web-ui","title":"Configure TMF Web UI","text":"<p>In the folder <code>kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config</code> there are 3 files available for configuration:</p> <ul> <li>config.prod.default.json (Basic information + API configuration)</li> <li>theming.default.scss (CSS color palette theming)</li> <li>config.theming.default.json (HTML configuration - Logo, Favicon, Footer)</li> </ul> <p>You must make a copy of files:</p> <ul> <li><code>config.prod.default.json</code> and rename it to <code>config.prod.json</code></li> <li><code>theming.default.scss</code> and rename it to <code>theming.scss</code></li> </ul> <p>The 2 files above (i.e. config.prod.json, theming.scss) are essential for the successful deployment of OpenSlice, and executing the above steps is mandatory for the configuration files to be discoverable.</p> <p>Ensure that you check the <code>config.prod.json</code> and <code>theming.scss</code> files and readjust to your deployment if needed.</p> <pre><code># Starting from the root project directory\ncd kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config\n</code></pre> <p>E.g. You may edit \"TITLE\", \"WIKI\", etc properties with your domain title. Also configure TMF's API and Keycloak's location for the web application, if needed.</p> <pre><code>{         \n    \"TITLE\": \"OpenSlice by ETSI\",\n    \"PORTALVERSION\":\"2024Q2\",\n    \"WIKI\": \"https://osl.etsi.org/documentation\",\n    \"BUGZILLA\": \"{BASEURL}/bugzilla/\",\n    \"STATUS\": \"{BASEURL}/status/\",\n    \"WEBURL\": \"{BASEURL}\",\n    \"PORTAL_REPO_APIURL\": \"{BASEURL}/osapi\",\n    \"ASSURANCE_SERVICE_MGMT_APIURL\": \"{BASEURL}/oas-api\",\n    \"APITMFURL\": \"{BASEURL}/tmf-api\",\n    \"OAUTH_CONFIG\" : {\n        \"issuer\": \"{BASEURL}/auth/realms/openslice\",\n        \"loginUrl\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/auth\",\n        \"tokenEndpoint\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/token\",\n        \"userinfoEndpoint\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/userinfo\",\n        \"redirectUri\": \"{BASEURL}/redirect\",\n        \"logoutUrl\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/logout\", \n        \"postLogoutRedirectUri\": \"{BASEURL}\",\n\n        \"responseType\": \"code\",\n        \"oidc\": false,\n        \"clientId\": \"osapiWebClientId\",\n        \"dummyClientSecret\": \"secret\",\n\n        \"requireHttps\": false,\n        \"useHttpBasicAuth\": true,\n        \"clearHashAfterLogin\": false,\n\n        \"showDebugInformation\": true\n    }\n}\n</code></pre> <p>The {BASEURL} placeholder in the file automatically detects the Origin (Protocol://Domain:Port) of the deployment and applies it to every respective property. E.g. If you are attempting a local deployment of OpenSlice, then {BASEURL} is automatically translated to \"http://localhost\". Similarly, you may use {BASEURL} to translate to a public deployment configuration, e.g. \"https://portal.openslice.io\".</p> <p>If further customization, apart from the default provided, is needed for branding (Logo, Footer) then <code>config.theming.json</code> needs to be created in kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config directory, as follows:</p> <pre><code># Starting from the root project directory\ncd kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config\n</code></pre> <pre><code>sudo cp config.theming.default.json config.theming.json\n</code></pre>"},{"location":"deploymentK8s/#3-deploy-the-helm-chart","title":"3. Deploy the Helm Chart","text":"<p>After configuring the services, and editing the <code>values.yaml</code> file accordingly, the helm install command can be performed.</p> <pre><code>cd kubernetes/helm/openslice/\nhelm install myopenslice . --namespace openslice --create-namespace\n</code></pre>"},{"location":"deploymentK8s/#validating-deployments-and-container-monitoring","title":"Validating deployments and container monitoring","text":"<p>In a Kubernetes environment, you can monitor the status of your deployments and containers using <code>kubectl</code>, the Kubernetes command-line tool, which provides powerful capabilities for inspecting the state of resources in your cluster.</p>"},{"location":"deploymentK8s/#checking-the-status-of-your-applications-deployment","title":"Checking the Status of your application's deployment","text":"<p>To check the status of your deployment, use the following commands. The output should be similar:</p> <pre><code>\nkubectl get pods -n openslice\n\nNAME                      READY   UP-TO-DATE   AVAILABLE   AGE\nmyopenslice-artemis       1/1     1            1           6m28s\nmyopenslice-blockdiag     1/1     1            1           6m28s\nmyopenslice-bugzilla      1/1     1            1           6m28s\nmyopenslice-centrallog    1/1     1            1           6m28s\nmyopenslice-cridge        1/1     1            1           6m28s\nmyopenslice-keycloak      1/1     1            1           6m28s\nmyopenslice-kroki         1/1     1            1           6m28s\nmyopenslice-manoclient    1/1     1            1           6m28s\nmyopenslice-oasapi        1/1     1            1           6m28s\nmyopenslice-osom          1/1     1            1           6m28s\nmyopenslice-osportalapi   1/1     1            1           6m28s\nmyopenslice-osscapi       1/1     1            1           6m28s\nmyopenslice-portalweb     1/1     1            1           6m28s\nmyopenslice-tmfweb        1/1     1            1           6m28s\n</code></pre> <pre><code>kubectl get deployments -n openslice\n\nNAME                      READY   UP-TO-DATE   AVAILABLE   AGE\nmyopenslice-artemis       1/1     1            1           7m17s\nmyopenslice-blockdiag     1/1     1            1           7m17s\nmyopenslice-bugzilla      1/1     1            1           7m17s\nmyopenslice-centrallog    1/1     1            1           7m17s\nmyopenslice-cridge        1/1     1            1           7m17s\nmyopenslice-keycloak      1/1     1            1           7m17s\nmyopenslice-kroki         1/1     1            1           7m17s\nmyopenslice-manoclient    1/1     1            1           7m17s\nmyopenslice-oasapi        1/1     1            1           7m17s\nmyopenslice-osom          1/1     1            1           7m17s\nmyopenslice-osportalapi   1/1     1            1           7m17s\nmyopenslice-osscapi       1/1     1            1           7m17s\nmyopenslice-portalweb     1/1     1            1           7m17s\nmyopenslice-tmfweb        1/1     1            1           7m17s\n</code></pre> <pre><code>kubectl get services -n openslice\n\nNAME                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                        AGE\nmyopenslice-artemis       ClusterIP   10.101.128.223   &lt;none&gt;        8161/TCP,61616/TCP,61613/TCP   7m43s\nmyopenslice-blockdiag     ClusterIP   10.109.196.90    &lt;none&gt;        8001/TCP                       7m43s\nmyopenslice-bugzilla      ClusterIP   10.107.10.101    &lt;none&gt;        13010/TCP                      7m43s\nmyopenslice-centrallog    ClusterIP   10.109.84.33     &lt;none&gt;        13013/TCP                      7m43s\nmyopenslice-keycloak      ClusterIP   10.104.172.73    &lt;none&gt;        8080/TCP,8443/TCP              7m43s\nmyopenslice-kroki         ClusterIP   10.106.92.111    &lt;none&gt;        8000/TCP                       7m43s\nmyopenslice-manoclient    ClusterIP   10.100.143.154   &lt;none&gt;        13011/TCP                      7m43s\nmyopenslice-mysql         ClusterIP   10.108.206.75    &lt;none&gt;        3306/TCP                       7m43s\nmyopenslice-oasapi        ClusterIP   10.100.107.66    &lt;none&gt;        13101/TCP                      7m43s\nmyopenslice-osom          ClusterIP   10.97.88.133     &lt;none&gt;        13100/TCP                      7m43s\nmyopenslice-osportalapi   ClusterIP   10.111.212.76    &lt;none&gt;        13000/TCP                      7m43s\nmyopenslice-osscapi       ClusterIP   10.101.84.220    &lt;none&gt;        13082/TCP                      7m43s\nmyopenslice-portalweb     ClusterIP   10.101.16.112    &lt;none&gt;        80/TCP                         7m43s\nmyopenslice-tmfweb        ClusterIP   10.101.157.185   &lt;none&gt;        80/TCP                         7m43s\n</code></pre>"},{"location":"deploymentK8s/#accessing-logs-for-troubleshooting","title":"Accessing Logs for Troubleshooting","text":"<p>If a pod is not in the expected state, you can access its logs for troubleshooting:</p> <pre><code>kubectl logs &lt;pod-name&gt; -n openslice\n</code></pre>"},{"location":"deploymentK8s/#post-installation-steps","title":"Post installation steps","text":"<p>After the successful deployment of OpenSlice, to ensure the E2E user experience, this section is mandatory. It contains crucial configuration in regard of authentication and user creation.</p>"},{"location":"deploymentK8s/#configure-keycloak-server","title":"Configure Keycloak server","text":"<p>The Keycloack server is managing authentication and running on a container at port 8080. It is also proxied to your host via the ingress resource under http://your-domain/auth. </p> <ul> <li> <p>Navigate to http://your-domain/auth/ or https://your-domain/auth/, (http://ipaddress:8080/auth/ or https://ipaddress:8443/auth/ which are directly accessible without proxy) </p> </li> <li> <p>Navigate to Administration Console </p> </li> <li> <p>Login with the credentials from section Keycloak Configuration. Default values are:</p> <ul> <li>user: admin </li> <li>password: Pa55w0rd</li> </ul> </li> </ul> <p>This applies only if you are running in HTTP and get a message: HTTPS required.</p> <p>To resolve this issue when running in HTTP: </p> <ul> <li>Select the master realm from top left corner</li> <li>Go to login Tab and select \"Require SSL\": None</li> <li>Repeat for realm Openslice</li> </ul> <p>If you are running in HTTPS, then \"Require SSL\" can be left unchanged to external requests.</p>"},{"location":"deploymentK8s/#1-configure-email","title":"1. Configure email","text":"<p>Keycloak allows new users to register. Subsequently, this will also allow new users to register to the OpenSlice portal.</p> <p>Navigate to realm Openslice &gt; Realm Settings &gt; Login Tab &gt; check User registration, Verify email, Forgot password etc.</p> <p>Finally, enter the details of the mail server at the Email Tab.</p> <p>Email configuration is optional for test runs, but if not provided the above functionalities (e.g. external user registration) will not be possible.</p>"},{"location":"deploymentK8s/#2-add-an-openslice-admin-user","title":"2. Add an OpenSlice admin user","text":"<p>This step is mandatory so as to access the OpenSlice Web UI. To add an OpenSlice admin user you must: - Navigate to realm Openslice &gt; Users &gt; Add user  - Set a password - Upon creation, navigate to Role Mappings and add ADMIN to Assigned Roles list</p> <p>That user is different from the Keycloak admin user. It is required to login and browse the OpenSlice Web UI. The Role ADMIN guarantee full access through the OpenSlice UI, thus such a user is always required.</p>"},{"location":"deploymentK8s/#nfv-orchestrator-configuration","title":"NFV Orchestrator Configuration","text":"<p>After successfully deploying and configuring OpenSlice, you may configure its environment (e.g. the NFVO) that will facilitate the deployment of NFV artifacts.</p> <p>See NFV Orchestrator Configuration.</p>"},{"location":"etsi_osl/","title":"The ETSi SDG OSL","text":"<p>OpenSlice is developed by the OSL ETSI Software Development Group see more info</p>"},{"location":"history/","title":"History","text":""},{"location":"history/#history","title":"History","text":"<ul> <li>The NFV portal part of OpenSlice was initially developed in H2020 European Research project 5GinFIRE by University of Patras, Greece</li> <li>OpenSlice core services, APIs was further developed and maintained in H2020 European project 5G-VINNI by University of Patras, Greece</li> <li>OpenSlice has been a part of OSM's OSS/BSS ecosystem</li> <li>OpenSlice is now an ETSI SDG Group since 2023</li> </ul>"},{"location":"history/#citation","title":"Citation","text":"<p>Please cite our ![paper] if you use OpenSlice in your research</p> <pre><code>\n@misc{tranoris2021openslice,\n      title={Openslice: An opensource OSS for Delivering Network Slice as a Service}, \n      author={Christos Tranoris},\n      year={2021},\n      eprint={2102.03290},\n      archivePrefix={arXiv},\n      primaryClass={cs.NI}\n}\n\n\n</code></pre>"},{"location":"nfvoconfig/","title":"NFV Orchestrator configuration","text":"<p>Currently we support Open Source MANO version EIGHT/NINE/TEN/ELEVEN/THIRTEEN. Later versions of OSM may also be supported by the existing configuration, as from OSM 9+ the project converged to the SOL005 interface, regarding the NBI, and SOL006 (YANG model), regarding the NFV/NS packaging. Also an implementation of a generic SOL005 interface is supported, but not extensively tested.</p> <p>Configuration of your target(s) NFVOs/MANO services with Openslice is performed through the NFV portal.</p> <ol> <li> <p>Login to {{yourdomain}}/nfvportal/</p> </li> <li> <p>Navigate to Admin &gt; Manage MANO Platforms &gt; Add New MANO Platform, pick one of the supported MANO platform(s), e.g. Name=OSMvTHIRTEEN, Version=OSMvTHIRTEEN and save. You may edit the saved MANO platforms after this.</p> </li> <li> <p>Navigate to Admin &gt; Manage MANO providers &gt; Add New MANO Provider and enter its details:</p> <ul> <li>Name and description of your choice. The selected name will supplement the NFV artifacts of this provider.</li> <li>One of the already defined MANO platforms</li> <li>API URL Endpoint, eg: https://10.10.10.10:9999 (This is the SOL005 NBI endpoint - Note the port 9999)</li> <li>Username, Password and Project of your OSM tenant.</li> </ul> </li> </ol> <p>Check EnabledForONBOARDING, if you want VNF/NS packages uploaded through the UI by the user, to also be automatically ONBOARDED to this MANO (1 step process). If left unchecked, the onboarding process must be performed manually after the VNF/NS package is uploaded to the portal, by the designated UI (2 step process).</p> <p>Check EnabledForSYNC, if you want to support the automatic synchronization of this MANO with OpenSlice. When enabled, the existing VNF/NS packages and VIMs (and any updates on them) of the registered MANO are also reflected to the portal to the respective UIs (Registered VNFs/NSDs and Manage Infrastructures). </p> <p>The synchronization is a continuous process that will confirm that the artifacts are still present in the MANO, updating the status field of the respective artifacts to <code>OSM_PRESENT</code>. If during this process, an artifact is deleted from the MANO, the respective status field will be updated to <code>OSM_MISSING</code>.</p>"},{"location":"portals_intro/","title":"OpenSlice Portals","text":"<p>Openslice comprises of a web landing page See Demo that navigates to the respective Portal:</p> <ul> <li>Services Portal See Demo</li> <li>NFV Portal See Demo</li> <li>Products Portal See Demo</li> <li>Testing Portal See Demo</li> <li>Resources Portal See Demo</li> </ul> <p>Following you may find the scope each portal focuses on and the main TMF APIs it supports.</p> <p>Services Portal is a designated portal for the: - Service Designer - To design Customer Facing Services as bundles of Resource Facing Services that map to specific Resourses (e.g. NFV, Testing, General Resources). Then, it is charged with the designed Services' exposure to public Service Catalogs. - Service Customer - To browse the public Service Catalogs and order the offered Services. The fulfilment process of the Service Order is also captured and the final deployed Services are exposed to the Customer.</p> <p>NFV Portal is a designated portal for the: Indicatively, the portal can be used to: - Register new a new MANO provider (e.g. OSM) - Synchronize the onboarded VNF/NS packages, and the VIMs of the registered MANO provider - Onboard/Delete VNF/NS packages on specific MANO provider - Deploy a NS to a target MANO provider</p> <p>More information can be found at NFV Services.</p> <p>Resources Portal is a designated portal for the: - Resource Administrator - To view the available Resources that are being synchronized from the underlying infrastructure. -  Products Portal is a designated portal for the: - Product Designer - To design Products as bundles of available Services. Then, it is charged with the designed Products' exposure to public Product Catalogs. - Product Customer - To browse the public Product Catalogs and navigate to the respective offered Services.</p> <p>Testing Portal is a designated portal for the: - Testing Designer - To design Tests and provide the testing scripts as attachments to the latter. The Tests can be imported as Services at the Services Portal, and can be included in a Service Bundle.</p> TMF620 TMF632 TMF633 TMF634 TMF638 TMF639 TMF640 TMF641 TMF642 TMF653 TMF685 Services Portal x x x x x x Products Portal x x Testing Portal x x Resources Portal x x x x <p>The NFV Portal uses a proprietary API</p>"},{"location":"role_keycloak_management/","title":"Role management in Keycloak","text":"<p>Some initial configuration of Keycloak happens at Installation/Deployment time. Here are some notes regarding user management</p>"},{"location":"role_keycloak_management/#intended-audience-openslice-administrators","title":"Intended Audience: OpenSlice administrators","text":"<p>There are cases that OpenSlice administrators need to configure Keycloak:</p> <ul> <li>Change user roles, e.g. make a Simple user a Service Designer</li> <li>Domain management</li> <li>User Password reset</li> </ul>"},{"location":"terminology/","title":"User Roles","text":"<ul> <li>User</li> <li>Service Designer</li> <li>OpenSlice administrator</li> </ul>"},{"location":"terminology/#terms","title":"Terms","text":"<ul> <li>Resource Facing Service Specification (RFSSpec): A Service that exposes a resource Specification as a Service.</li> <li>Customer Facing Service Specification (CFSSpec): Service exposed to users for Service Orders. Usually it exposes other CFSSpec(Service Bundle) or other RFSSpecs</li> <li>OpenSlice management cluster</li> <li>Service Specification: Detailed descriptions of services, including attributes, configurations, performance metrics, and SLAs.</li> <li>Service Catalog</li> <li>Service Categories</li> <li>Service Inventory</li> </ul>"},{"location":"under_construction/","title":"Under construction","text":"<p>under construction</p>"},{"location":"architecture/architecture/","title":"Architecture","text":"<p>Openslice offers the following main functionalities:</p> <ul> <li>Service Catalog Management: A CSP will have the ability to manage the Service Catalog Items, their attributes , organize in categories and decide what to make available to Customers</li> <li>Services Specifications: A CSP will be able to manage Service Specifications</li> <li>Service Catalog Exposure: A CSP will be able to expose catalog to customers and related parties</li> <li>Service Catalog to Service Catalog: Openslice able to consume and provide Service Catalog items to other catalogs</li> <li>Service Order: The Customer will be able to place a Service Order</li> <li>Service Inventory: The Customer and Provider will be able to view deployed Services status</li> </ul> <p>The following figure displays the overall architecture of Openslice.</p> <p></p> <p>Openslice allows Vertical Customers browsing the available offered service specifications. It consists of:</p> <ul> <li>Web frontend UIs that consist of mainly two portals: i) a NFV portal allowing users self-service management and onboarding VNFDs/NSDs to facility\u2019s NFVO ii) a Services Portal, which allows users to browse the Service Catalog, Service Blueprints specifications and the Service Inventory</li> <li>An API gateway that proxies the internal APIs and used by the web front end as well as any other 3rd party service</li> <li>A Message Bus where all microservices use it to exchange messages either via message queues or via publish/subscribe topics</li> <li>An authentication server implementing Oauth2 authentication scheme</li> <li>A microservice offering TMF compliant API services (eg Service Catalog API, Service Ordering APIetc)</li> <li>A microservice offering NFV API services (eg VNF/NSD onboarding etc) and allows to store VNFDs and NSDs in a catalog</li> <li>A microservice that is capable to interface to an issue management system. For example it raises an issue to all related stakeholders (CSP, NOP, CSC) that a new Service Order is requested</li> <li>Central logging microservice that is capable to log all distributed actions in to an Elasticsearch cluster</li> <li>A Service Orchestrator solution that will propagate Service Ordering requests to the equivalent SOs and NFVOs </li> </ul> <p>The following figure depicts how Openslice microservices are deployed</p> <p></p>"},{"location":"architecture/architecture/#deploying-openslice-in-multi-domain-scenarios","title":"Deploying Openslice in multi domain scenarios","text":"<p>A typical deployment across domains, involves today some typical components: i) an OSS/BSS to allow customers access the service catalog and perform service orders, ii) a Service Orchestrator (SO) component for executing the service order workflow, as well as iii) a Network Functions Virtualization Orchestrator (NFVO) for configuring the iv) network resources.</p> <p>TMF Open APIs are introduced not only for exposing catalogues and accepting service orders, but also implementing the East-West interfaces between the domains, fulfilling also the LSO requirements as introduced by MEF.</p> <p>The following figure shows how openslice could be used in such scenarios:</p> <p></p> <p>See more Consuming Services From External Partner Organizations</p>"},{"location":"architecture/centrallog/","title":"Central Logging","text":"<p>Openslice follows the centralized log management concept, i.e. a type of logging solution system that consolidates the log data from different services and pushes it to a central, accessible and easy-to-use interface. </p> <p>For that reason, Elasticsearch is elected as an open-source centralized logging solution for collecting, parsing and storing logs towards a real-time data analytics tool that provides insights from any type of structured and unstructured data source.</p>"},{"location":"architecture/consumingServicesFromExternalPartners/","title":"Consuming Services From External Partner Organizations","text":"<p>A typical deployment across domains, involves today some typical components: i) an OSS/BSS to allow customers access the service catalog and perform service orders, ii) a Service Orchestrator (SO) component for executing the service order workflow, as well as iii) a Network Functions Virtualization Orchestrator (NFVO) for configuring the iv) network resources.</p> <p>TMF Open APIs are introduced not only for exposing catalogues and accepting service orders, but also implementing the East-West interfaces between the domains, fulfilling also the LSO requirements as introduced by MEF.</p> <p>The following figure shows how openslice could be used in such scenarios:</p> <p></p> <p>In Openslice we can consume services from 3rd parties via Open APIs.</p> <p>We use the TMF 632 Party Management model to specify Organizations that we can exchange items and other information such as:</p> <ul> <li>Import Service Specifications</li> <li>Create a Service Order</li> <li>Use the Service Inventory to query the status of the service ordered to the external partner organization</li> </ul>"},{"location":"architecture/consumingServicesFromExternalPartners/#define-an-organization-as-3rd-party-to-consume-services-east-west","title":"Define an Organization as 3rd party to consume services East-West","text":"<p>An organization must have the following characteristics in openslice catalog, like for example:</p> <p>\"EXTERNAL_TMFAPI_BASEURL\", \"http://portal.openslice.io\"</p> <p>\"EXTERNAL_TMFAPI_CLIENTREGISTRATIONID\", \"authOpensliceProvider\"</p> <p>\"EXTERNAL_TMFAPI_OAUTH2CLIENTID\", \"osapiWebClientId\"</p> <p>\"EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET\", \"secret\"</p> <p>\"EXTERNAL_TMFAPI_OAUTH2SCOPES\", scopes</p> <p>\"EXTERNAL_TMFAPI_OAUTH2TOKENURI\", \"http://portal.openslice.io/osapi-oauth-server/oauth/token\"</p> <p>\"EXTERNAL_TMFAPI_USERNAME\", \"admin\"</p> <p>\"EXTERNAL_TMFAPI_PASSWORD\", \"openslice\"</p> <p>\"EXTERNAL_TMFAPI_SERVICE_CATALOG_URLS\" = \"/tmf-api/serviceCatalogManagement/v4/serviceSpecification?type=CustomerFacingServiceSpecification\" (this is optional, fetch a list of service specs it will be relative with the BASEURL. If the url is empty then no specs will be fetched, the EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS might be used)</p> <p>\"EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS\" = \"/tmf-api/serviceCatalogManagement/v4/serviceCategory/{categoryid}\" (this example will fetch all specs in a category. You may define comma separated URLs of categories API URL . This will  fetch  specifications of every defined category. If you want only one specific category put for example the uuid only of one category: \"/tmf-api/serviceCatalogManagement/v4/serviceCategory/bda02821-bc4d-4bd6-b64b-d9c2aa5f8e6d\". multiple urls should be \"/tmf-api/serviceCatalogManagement/v4/serviceCategory/bda02821-bc4d-4bd6-b64b-d9c2aa5f8e6d,/tmf-api/serviceCatalogManagement/v4/serviceCategory/9b6d8bf3-abd2-43c4-8154-c8c6fe5545b2\")</p> <p>\"EXTERNAL_TMFAPI_SERVICE_SPEC\" = \"/tmf-api/serviceCatalogManagement/v4/serviceSpecification\"</p> <p>\"EXTERNAL_TMFAPI_SERVICE_ORDER_URLS\"= \"/test/v1/serviceorder\" (this is optional)</p> <p>An example Organization defined example in json:</p> <pre><code>\n{\n  \"uuid\": \"1a09a8b5-6bd5-444b-b0b9-a73c69eb42ae\",\n  \"@baseType\": \"BaseEntity\",\n  \"@schemaLocation\": null,\n  \"@type\": null,\n  \"href\": null,\n  \"name\": \"Openslice.io\",\n  \"id\": \"1a09a8b5-6bd5-444b-b0b9-a73c69eb42ae\",\n  \"isHeadOffice\": null,\n  \"isLegalEntity\": null,\n  \"nameType\": null,\n  \"organizationType\": null,\n  \"tradingName\": null,\n  \"contactMedium\": [],\n  \"creditRating\": [],\n  \"existsDuring\": null,\n  \"externalReference\": [],\n  \"organizationChildRelationship\": [],\n  \"organizationIdentification\": [],\n  \"organizationParentRelationship\": null,\n  \"otherName\": [],\n  \"partyCharacteristic\": [\n    {\n      \"uuid\": \"3a2f7221-e0a2-4a6b-88d1-534c8e1963f6\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_CLIENTREGISTRATIONID\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"authOpensliceProvider\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"c24bb527-f178-4d38-9b93-2027c1732876\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_USERNAME\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"admin\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"27e45df8-414b-44c6-a5d5-3f064e2cfd3b\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_PASSWORD\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"openslice\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"e0e470b8-6024-4014-8a18-2333e5465ce1\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"secret\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"3e0de762-ac80-4c1e-a0a1-f265ff0899b4\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_OAUTH2SCOPES\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"admin;read\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"0bbb8314-f7f2-420d-9fed-ba054b15f886\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_OAUTH2TOKENURI\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"http://portal.openslice.io/osapi-oauth-server/oauth/token\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"3a567de4-79eb-4006-a500-3e5229b44175\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_OAUTH2CLIENTID\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"osapiWebClientId\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"6dca729f-dbe1-46b7-89f1-5c4f9fe89d4e\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_BASEURL\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"http://portal.openslice.io\",\n        \"alias\": null\n      }\n    }\n  ],\n  \"relatedParty\": [],\n  \"status\": null,\n  \"taxExemptionCertificate\": []\n}\n\n</code></pre>"},{"location":"architecture/issuemgt/","title":"Issue Management","text":"<p>For issue management support, Openslice relies on Bugzilla. Bugzilla is a ticketing tool that allows issue reporting and tracking via tickets to all relevant stakeholders. </p> <p>The figure below displays the overall issue management service architecture integrating Bugzilla as its core and how this tool interacts with other Openslice services presenting some distinctive scenarios. It should be noted that Bugzilla tickets will not only be used for bugs/errors, but also for general requests, e.g. Service Order procedure.</p> <p></p>"},{"location":"architecture/messagebus/","title":"Message Bus and exchanged Messages","text":"<p>Openslice has a Message bus which allows Openslice services to exchange messages via queues and topics.</p> <p>It is based on ActiveMQ.</p> <p>3rd party services can be attached to bus and subscribe to message topics or request resources via queues.</p>"},{"location":"architecture/messagebus/#queue-messages","title":"QUEUE MESSAGES","text":"Message Alias CATALOG_GET_SERVICEORDERS Name jms:queue:CATALOG.GET.SERVICEORDERS Type queue Destination TMF API service Producers OSOM Body Description Return a List as String Json Message Alias CATALOG_GET_SERVICEORDER_BY_ID Name jms:queue:CATALOG.GET.SERVICEORDER_BY_ID Type queue Destination TMF API service Producers OSOM Body String orderid Description Return a ServiceOrder as String Json Message Alias CATALOG_UPD_SERVICEORDER_BY_ID Name jms:queue:CATALOG.UPD.SERVICEORDER_BY_ID Type queue Destination TMF API service Producers OSOM Body ServiceOrderUpdate serviceOrder Headers \"orderid\"= orderid Description Returns a ServiceOrder as String Message Alias CATALOG_GET_SERVICESPEC_BY_ID Name jms:queue:CATALOG.GET.SERVICESPEC_BY_ID Type queue Destination TMF API service Producers OSOM Body specid Description Return a ServiceSpecification Message Alias CATALOG_ADD_SERVICESPEC Name jms:queue:CATALOG.ADD.SERVICESPEC Type queue Destination TMF API service Producers CRIDGE Body ServiceSpecCreate Description Creates a ServiceSpecification and  returns a ServiceSpecification as String Message Alias CATALOG_UPD_SERVICESPEC Name jms:queue:CATALOG.UPD.SERVICESPEC Type queue Destination TMF API service Producers CRIDGE Body ServiceSpecUpdate Headers \"serviceSpecid\" = serviceSpecId Description Updates a ServiceSpecification and  returns a ServiceSpecification as String. --- Message Alias CATALOG_UPDADD_SERVICESPEC Name jms:queue:CATALOG.UPDADD.SERVICESPEC Type queue Destination TMF API service Producers CRIDGE Body ServiceSpecUpdate Headers \"serviceSpecid\" = serviceSpecId, \"forceId\"=forceId Description Updates a ServiceSpecification and  returns a ServiceSpecification as String. If forceId is true then tries to assign the requested ID to the spec Message Alias CATALOG_ADD_SERVICEORDER Name jms:queue:CATALOG.ADD.SERVICEORDER Type queue Destination TMF API service Producers OSOM Body ServiceOrderCreate serviceOrder Headers Description Creates a ServiceOrder and  returns a ServiceOrder as String Message Alias CATALOG_GET_INITIAL_SERVICEORDERS_IDS Name jms:queue:CATALOG.GET.INITIAL_SERVICEORDERS Type queue Destination TMF API service Producers Body Description Return a List as String Json Message Alias CATALOG_GET_SERVICEORDER_IDS_BY_STATE Name jms:queue:CATALOG.GET.ACKNOWLEDGED_SERVICEORDERS Type queue Destination TMF API service Producers OSOM Body Headers \"orderstate\"= orderState Description String Json ArrayList of ServiceOrders Message Alias CATALOG_ADD_SERVICE Name jms:queue:CATALOG.ADD.SERVICE Type queue Destination TMF API service Producers OSOM Body ServiceCreate String json Headers \"orderid\"=orderid, \"serviceSpecid\"= specid Description Creates Service based an a Service Spec, Returns a Service object Message Alias CATALOG_UPD_SERVICE Name jms:queue:CATALOG.UPD.SERVICE Type queue Destination TMF API service Producers Body ServiceUpdate Headers \"serviceid\" = serviceId, \"propagateToSO\" = true/false Description will update a service by id and return the service instance. If propagateToSO=true then any service change will be handled by OSOM. This is needed to be controlled in order to avoid update loops Message Alias CATALOG_GET_SERVICE_BY_ID Name jms:queue:CATALOG.GET.SERVICE Type queue Destination TMF API service Producers OSOM Body String serviceID Description returns a Service instance <p>---| Message |    | | ------------- |----------------| |Alias |  CATALOG_GET_SERVICE_BY_ORDERID  | |Name |  jms:queue:CATALOG.GET.SERVICE_BY_ORDERID  | |Type | queue  | |Destination |   TMF API service | |Producers |  | |Body |  String serviceID | |Description |   returns Service IDs of a specific order given then order id |</p> Message Alias CATALOG_SERVICE_QUEUE_ITEMS_GET Name jms:queue:CATALOG.SERVICEQUEUEITEMS.GET Type queue Destination TMF API service Producers OSOM Body Description returns a LIST OF Service Queue Items --- Message Alias CATALOG_SERVICE_QUEUE_ITEM_UPD Name jms:queue:CATALOG.SERVICEQUEUEITEM.UPDATE Type queue Destination TMF API service Producers OSOM Body String SERVICEQUEUEITEM Headers \"itemid\" = SERVICEQUEUEITEM id Description ill update a service queue item by id and return the instance --- Message Alias CATALOG_SERVICE_QUEUE_ITEM_DELETE Name jms:queue:CATALOG.SERVICEQUEUEITEM.DELETE Type queue Destination TMF API service Producers OSOM Body Headers \"itemid\" = SERVICEQUEUEITEM id Description ill delete a service queue item by id Message Alias CATALOG_SERVICES_TO_TERMINATE Name jms:queue:CATALOG.GET.SERVICETOTERMINATE Type queue Destination TMF API service Producers OSOM Body Headers Description Get a list of ACTIVE services with END DAte in the past --- Message Alias CATALOG_SERVICES_OF_PARTNERS Name jms:queue:CATALOG.GET.SERVICESOFPARTNERS Type queue Destination TMF API service Producers OSOM Body Headers Description Get a list of ACTIVE services from the inventory of partners Message Alias NFV_CATALOG_GET_NSD_BY_ID Name jms:queue:NFVCATALOG.GET.NSD_BY_ID Type queue Destination NFV Catalog service Producers TMF API, OSOM Body NSDid Description Returns a NetworkServiceDescriptor object Message Alias NFV_CATALOG_DEPLOY_NSD_REQ Name jms:queue:NFVCATALOG.DEPLOY.NSD_REQ Type queue Destination NFV Catalog service Producers OSOM Body DeploymentDescriptor as Json String Headers NSD id Description Returns a DeploymentDescriptor object as json string containing deployment info Message Alias NFV_CATALOG_UPD_DEPLOYMENT_BY_ID Name jms:queue:NFVCATALOG.UPD.DEPLOYMENT_BY_ID Type queue Destination NFV Catalog service Producers OSOM Body DeploymentDescriptor as Json String Headers DeploymentDescriptor id Description Updates and Returns a DeploymentDescriptor object as json string containing deployment info Message Alias GET_USER_BY_USERNAME Name jms:queue:GET.USER_BY_USERNAME Type queue Destination NFV Catalog service (this is temproary for now) Producers TMF API Body username Headers Description Returns a PortalUser object as json string containing user info Message Alias NFV_CATALOG_GET_DEPLOYMENT_BY_ID Name jms:queue:NFVCATALOG.GET.DEPLOYMENT_BY_ID Type queue Destination NFV Catalog service Producers OSOM Body Deployment ID Description Returns a DeploymentDescriptor object Message Alias CATALOG_GET_EXTERNAL_SERVICE_PARTNERS Name jms:queue:CATALOG.GET.EXTERNALSERVICEPARTNERS Type queue Destination TMF API service Producers OSOM Body Headers Description As a String Json ArrayList of Organizaton objects containing the characteristic name EXTERNAL_TMFAPI Message Alias CATALOG_UPD_EXTERNAL_SERVICESPEC Name jms:queue:CATALOG.UPD.EXTERNAL_SERVICESPEC Type queue Destination TMF API service Producers OSOM or maybe used by others that would like to update a Service Spec Body A serviceSpecification as json string Headers servicespecification id, orgid id Description Updates (or inserts if does not exist in catalog) an external service specification) Message Alias NFV_CATALOG_NSACTIONS_SCALE Name jms:queue:NSACTIONS.SCALE Type queue Destination TMF API service Producers OSOM or maybe used by others that would like scale a NS Body A ScaleDescriptor as json string Headers none Description performs a scale Message Alias NFV_CATALOG_NS_LCMCHANGED Name NFV_CATALOG_NS_LCMCHANGED Type topic Destination any Producers MANO client Body A json string Headers none Description A NFV_CATALOG_NS_LCMCHANGED message is published when LCM of a running NS is changed"},{"location":"architecture/messagebus/#alarms","title":"ALARMS","text":"Message Alias ALARMS_ADD_ALARM Name jms:queue:ALARMS.ADD.ALARM Type queue Publishers Consumers TMF API Body AlarmCreate Headers Description Add an alarm Message Alias ALARMS_UPDATE_ALARM Name jms:queue:ALARMS.UPDATE.ALARM Type queue Publishers Consumers TMF API Body AlarmUpdate Headers alarmid = alarm id, body (AlarmUpdate object) Description Update an alarm Message Alias ALARMS_GET_ALARM Name jms:queue:ALARMS.GET.ALARM Type queue Publishers Consumers TMF API Body Headers alarmid = alarm id Description get an alarm"},{"location":"architecture/messagebus/#event-topics-in-message-bus","title":"EVENT TOPICS IN Message Bus","text":"Message Alias EVENT_SERVICE_CREATE Name jms:topic:EVENT.SERVICE.CREATE Type topic Publishers TMF API Consumers - Body Notification object Headers \"eventid\"=eventid, \"objId\"= objId Description xx Message Alias EVENT_SERVICE_STATE_CHANGED Name jms:topic:EVENT.SERVICE.STATECHANGED Type topic Publishers TMF API Consumers - Body Notification object Headers \"eventid\"=eventid, \"objId\"= objId Description xx Message Alias EVENT_SERVICE_DELETE Name jms:topic:EVENT.SERVICE.DELETE Type topic Publishers TMF API Consumers - Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description xx Message Alias EVENT_SERVICE_ATTRIBUTE_VALUE_CHANGED Name jms:topic:EVENT.SERVICE.ATTRCHANGED Type topic Publishers TMF API Consumers - Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description xx Message Alias EVENT_SERVICE_ORDER_CREATE Name jms:topic:EVENT.SERVICEORDER.CREATE Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the ServiceOrder object. Bugzilla service for example uses this to create a new issue Message Alias EVENT_SERVICE_ORDER_STATE_CHANGED Name jms:topic:EVENT.SERVICEORDER.STATECHANGED Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the ServiceOrder object. Bugzilla service for example uses this to update an issue Message Alias EVENT_SERVICE_ORDER_DELETE Name jms:topic:EVENT.SERVICEORDER.DELETE Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the ServiceOrder object Message Alias EVENT_SERVICE_ORDER_ATTRIBUTE_VALUE_CHANGED Name jms:topic:EVENT.SERVICEORDER.ATTRCHANGED Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the ServiceOrder object Message Alias EVENT_ALARM_CREATE Name jms:topic:EVENT.ALARM.CREATE Type topic Publishers TMF API Consumers OAS, BUGZILLA Service, CentralLog Service Body AlarmCreateEvent Headers Description The Event  contains the Alarm object in payload Message Alias CATALOG_ADD_RESOURCE Name jms:queue:CATALOG.ADD.RESOURCE Type topic Publishers TMF API Consumers any Body ResourceCreate Headers Description The Body  contains the ResourceCreate object to add Message Alias CATALOG_UPD_RESOURCE Name jms:queue:CATALOG.UPD.RESOURCE Type topic Publishers TMF API Consumers any Body ResourceUpdate Headers resourceid , propagateToSO Description The Body  contains the ResourceCreate object to update Message Alias CATALOG_GET_RESOURCE_BY_ID Name jms:queue:CATALOG.GET.RESOURCE Type topic Publishers TMF API Consumers any Body resourceid Headers Description The Body  contains the ResourceCreate object to update Message Alias CATALOG_RESOURCES_OF_PARTNERS Name jms:queue:CATALOG.GET.SERVICESOFPARTNERS Type topic Publishers TMF API Consumers any Body none Headers none Description retrieve all active services of partners Message Alias CATALOG_ADD_RESOURCESPEC Name jms:queue:CATALOG.ADD.RESOURCESPEC Type topic Publishers TMF API Consumers any Body ResourceSpecificationCreate Headers Description The Body  contains the ResourceSpecificationCreate object to add Message Alias CATALOG_UPD_RESOURCESPEC Name jms:queue:CATALOG.UPD.RESOURCESPEC Type topic Publishers TMF API Consumers any Body ResourceSpecificationUpdate Headers resourceSpecId Description The Body  contains the ResourceSpecificationCreate object to update Message Alias CATALOG_GET_RESOURCESPEC_BY_ID Name jms:queue:CATALOG.GET.RESOURCESPEC_BY_ID Type topic Publishers TMF API Consumers any Body resourceSpecid Headers Description The Body  contains the object id to find Message Alias CATALOG_UPDADD_RESOURCESPEC Name jms:queue:CATALOG.UPDADD.RESOURCESPEC Type topic Publishers TMF API Consumers any Body resourceid Headers Description The Body  contains the ResourceSpecificationCreate object to update or create if not exist Message Alias EVENT_RESOURCE_CREATE Name jms:topic:EVENT.RESOURCE.CREATE Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service, other Body Notification object. Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the Resource object Message Alias EVENT_RESOURCE_STATE_CHANGED Name jms:topic:EVENT.RESOURCE.STATECHANGED Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service, other Body Notification object. Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the Resource object Message Alias EVENT_RESOURCE_DELETE Name jms:topic:EVENT.SERVICE.RESOURCE Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service, other Body Notification object. Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the Resource object Message Alias EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED Name jms:topic:EVENT.RESOURCE.ATTRCHANGED Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service, other Body Notification object. Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the Resource object Message Alias CATALOG_GET_LCMRULE_BY_ID Name jms:queue:CATALOG.GET.LCMRULE Type topic Publishers TMF API Consumers any Body lcmid Headers Description The Body  contains the LCMRuleSpec object Message Alias CATALOG_GET_LCMRULES_BY_SPECID_PHASE Name jms:queue:CATALOG.GET.LCMRULES_BY_SPECID_PHASE Type topic Publishers TMF API Consumers any Body Headers header.servicespecid, header.phasename Description The Body  contains the LCMRuleSpec objects of the specific Service Spec and the specific phase Message Alias CATALOG_GET_SERVICETESTSPEC_BY_ID Name jms:queue:CATALOG.GET.SERVICETESTSPEC_BY_ID Type queue Destination TMF API service Producers OSOM Body specid Description Return a ServiceTestSpecification Message Alias CATALOG_ADD_SERVICETEST Name jms:queue:CATALOG.ADD.SERVICETEST Type queue Destination TMF API service Producers OSOM Body ServiceTestCreate String json Headers \"orderid\"=orderid, \"serviceTestSpecid\"= specid Description Creates Service Test based an a Service Test Spec, Returns a ServiceTest object Message Alias CATALOG_UPD_SERVICETEST Name jms:queue:CATALOG.UPD.SERVICETEST Type queue Destination TMF API service Producers Body ServiceTestUpdate Headers \"serviceid\" = serviceId, \"propagateToSO\" = true/false Description will update a service test by id and return the service instance. If propagateToSO=true then any service change will be handled by OSOM. This is needed to be controlled in order to avoid update loops Message Alias CATALOG_GET_SERVICETEST_BY_ID Name jms:queue:CATALOG.GET.SERVICETEST Type queue Destination TMF API service Producers OSOM Body String serviceID Description returns a Service TEST instance Message Alias CRD_DEPLOY_CR_REQ Name jms:queue:CRD.DEPLOY.CR_REQ Type queue Destination CRD  service Producers OSOM Body CR spec as String Headers related service id Description Returns a String object containing deployment info Message Alias CRD_PATCH_CR_REQ Name jms:queue:CRD.PATCH.CR_REQ Type queue Destination CRD  service Producers OSOM Body CR  as String Headers related service id Description Returns a String object containing PATCH info Message Alias CRD_DELETE_CR_REQ Name jms:queue:CRD.DELETE.CR_REQ Type queue Destination CRD  service Producers OSOM Body CR  as String Headers related service id Description Returns a String object containing deletion info"},{"location":"architecture/nfvapi/","title":"API interaction","text":""},{"location":"architecture/nfvapi/#oauth-token","title":"OAuth token","text":"<p>See oauth</p>"},{"location":"architecture/nfvapi/#request-a-protected-api-resource","title":"Request a protected API resource","text":"<p>Example: Get all vxfs (check the <code>Authorization:Bearer</code> to be correct)</p> <pre><code>curl -H \"Authorization:Bearer eybGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbIm9wZW5hcGkiLCJhZG1pbiIsInJlYWQiLCJ3cml0ZSJdLCJvcmdhbml6YXRpb24iOiJteW9yZ2FuaXp0aW9uIiwiZXhwIjoxNTcxOTI0MjU2LCJhdXRob3JpdGllcyI6WyJST0xFX01FTlRPUiIsIlJPTEVfQURNSU4iXSwianRpIjoiNzNkZmIxODEtNTMwOS00MmExLThkOWUtOGM3YmQ0YTE1YmU0IiwiY2xpZW50X2lkIjoib3NhcGlXZWJDbGllbnRJZE91dCJ9.Pj_hxnyMGhFhN8avU_DiAw1-LlcaIz5Hp9HNqalw-X4\" http://localhost:13000/osapi/admin/vxfs\n</code></pre> <p>Example response:</p> <pre><code>[\n  {\n    \"id\": 1,\n    \"owner\": {\n      \"id\": 1,\n      \"organization\": \"ee\",\n      \"name\": \"Portal Administrator\",\n      \"email\": \"\",\n      \"username\": \"admin\",\n      \"createdAt\": null\n    },\n    \"uuid\": \"a954daf2-16da-4b7e-ae42-4825936d453c\",\n    \"name\": \"cirros_vnfd\",\n    \"iconsrc\": \"/osapi/images/a954daf2-16da-4b7e-ae42-4825936d453c/cirros-64.png\",\n    \"shortDescription\": \"cirros_vnfd\",\n    \"longDescription\": \"Simple VNF example with a cirros\",\n    \"version\": \"1.0\",\n    \"packageLocation\": \"/osapi/packages/a954daf2-16da-4b7e-ae42-4825936d453c/cirros_vnf.tar.gz\",\n    \"dateCreated\": 1568971426000,\n    \"dateUpdated\": 1568981107000,\n    \"categories\": [\n      {\n        \"id\": 3,\n        \"name\": \"Service\",\n        \"productsCount\": 1,\n        \"appscount\": 0,\n        \"vxFscount\": 1\n      },\n      {\n        \"id\": 2,\n        \"name\": \"Networking\",\n        \"productsCount\": 1,\n        \"appscount\": 0,\n        \"vxFscount\": 1\n      }\n    ],\n    \"extensions\": [],\n    \"validationJobs\": [],\n    \"screenshots\": \"\",\n    \"vendor\": \"OSM\",\n    \"published\": false,\n    \"termsOfUse\": null,\n    \"descriptor\": \"vnfd-catalog:\\n    vnfd:\\n    -   connection-point:\\n        -   name: eth0\\n            type: VPORT\\n        description: Simple VNF example with a cirros\\n        id: cirros_vnfd\\n        logo: cirros-64.png\\n        mgmt-interface:\\n            cp: eth0\\n        name: cirros_vnfd\\n        short-name: cirros_vnfd\\n        vdu:\\n        -   count: 1\\n            description: cirros_vnfd-VM\\n            id: cirros_vnfd-VM\\n            image: cirros034\\n            interface:\\n            -   external-connection-point-ref: eth0\\n                name: eth0\\n                position: '1'\\n                type: EXTERNAL\\n                virtual-interface:\\n                    bandwidth: '0'\\n                    type: VIRTIO\\n                    vpci: 0000:00:0a.0\\n            name: cirros_vnfd-VM\\n            vm-flavor:\\n                memory-mb: 512\\n                storage-gb: 1\\n                vcpu-count: 1\\n        vendor: OSM\\n        version: '1.0'\\n\",\n    \"descriptorHTML\": \"&lt;h3&gt;cirros_vnfd&lt;/h3&gt;&lt;br&gt;&lt;b&gt;Vendor: &lt;/b&gt;OSM&lt;br&gt;&lt;b&gt;Version: &lt;/b&gt;1.0&lt;br&gt;&lt;b&gt;Description: &lt;/b&gt;Simple VNF example with a cirros&lt;br&gt;&lt;b&gt;VM Count: &lt;/b&gt;1&lt;br&gt;&lt;b&gt;vCPU Count: &lt;/b&gt;1&lt;br&gt;&lt;b&gt;Memory: &lt;/b&gt;512 MB&lt;br&gt;&lt;b&gt;Storage: &lt;/b&gt;1 GB&lt;br&gt;\",\n    \"certified\": false,\n    \"certifiedBy\": null,\n    \"validationStatus\": \"UNDER_REVIEW\",\n    \"packagingFormat\": \"OSMvFIVE\",\n    \"supportedMANOPlatforms\": [\n      {\n        \"id\": 1,\n        \"name\": \"osm fivee\",\n        \"version\": \"osm fivee\",\n        \"description\": \"osm five\"\n      }\n    ],\n    \"vxfOnBoardedDescriptors\": [],\n    \"vfimagesVDU\": [\n      {\n        \"id\": 1,\n        \"name\": \"cirros034\",\n        \"uuid\": \"d4549610-8abd-42ad-97f4-0a64e1c93977\",\n        \"shortDescription\": \"Automatically created during vxf cirros_vnfd submission. Owner must update.\",\n        \"packageLocation\": null,\n        \"publicURL\": null,\n        \"dateCreated\": 1568971426000,\n        \"dateUpdated\": null,\n        \"refVxFs\": [\n          {\n            \"id\": 1,\n            \"name\": \"cirros_vnfd\"\n          }\n        ],\n        \"owner\": {\n          \"id\": 1,\n          \"organization\": \"ee\",\n          \"name\": \"Portal Administrator\",\n          \"email\": \"\",\n          \"username\": \"admin\",\n          \"active\": true,\n          \"currentSessionID\": null,\n          \"apikey\": \"e41c1cc4-aa56-4b7e-9f4d-64589549d768\",\n          \"createdAt\": 1568711859000,\n          \"roles\": [\n            \"ADMIN\",\n            \"MENTOR\"\n          ]\n        },\n        \"published\": false,\n        \"termsOfUse\": null,\n        \"deployedInfrastructures\": []\n      }\n    ]\n  },\n  {\n    \"id\": 2,\n    \"owner\": {\n      \"id\": 1,\n      \"organization\": \"ee\",\n      \"name\": \"Portal Administrator\",\n      \"email\": \"\",\n      \"username\": \"admin\",\n      \"createdAt\": null\n    },\n    \"uuid\": \"4ab80095-a63e-4fe7-8598-e1c7e880706e\",\n    \"name\": \"cirros_sriov_vnfd\",\n    \"iconsrc\": null,\n    \"shortDescription\": \"cirros_sriov_vnf\",\n    \"longDescription\": \"Simple VNF example with a cirros SRIOV interface\",\n    \"version\": \"1.0\",\n    \"packageLocation\": \"/osapi/packages/4ab80095-a63e-4fe7-8598-e1c7e880706e/cirros_sriov.tar.gz\",\n    \"dateCreated\": 1568971740000,\n    \"dateUpdated\": 1568981100000,\n    \"categories\": [\n      {\n        \"id\": 4,\n        \"name\": \"tyu\",\n        \"productsCount\": 1,\n        \"appscount\": 0,\n        \"vxFscount\": 1\n      },\n      {\n        \"id\": 5,\n        \"name\": \"tyi\",\n        \"productsCount\": 1,\n        \"appscount\": 0,\n        \"vxFscount\": 1\n      }\n    ],\n    \"extensions\": [],\n    \"validationJobs\": [],\n    \"screenshots\": \"\",\n    \"vendor\": \"OSM\",\n    \"published\": false,\n    \"termsOfUse\": null,\n    \"descriptor\": \"vnfd:vnfd-catalog:\\n  vnfd:\\n  - connection-point:\\n    - name: eth0\\n      type: VPORT\\n    - name: eth1\\n      type: VPORT\\n    description: Simple VNF example with a cirros SRIOV interface\\n    id: cirros_sriov_vnfd\\n    logo: cirros-64.png\\n    mgmt-interface:\\n      cp: eth0\\n    name: cirros_sriov_vnf\\n    short-name: cirros_sriov_vnf\\n    vdu:\\n    - count: 1\\n      description: cirros_sriov_vnfd-VM\\n      guest-epa:\\n        cpu-pinning-policy: DEDICATED\\n        cpu-thread-pinning-policy: PREFER\\n        mempage-size: SMALL\\n        numa-node-policy:\\n          mem-policy: STRICT\\n          node:\\n          - id: '1'\\n          node-cnt: '1'\\n      id: cirros_sriov_vnfd-VM\\n      image: cirros-0.3.6-x86_64\\n      interface:\\n      - external-connection-point-ref: eth0\\n        name: eth0\\n        position: '1'\\n        type: EXTERNAL\\n        virtual-interface:\\n          bandwidth: '0'\\n          type: VIRTIO\\n          vpci: 0000:00:0a.0\\n      - external-connection-point-ref: eth1\\n        name: eth1\\n        position: '2'\\n        type: EXTERNAL\\n        virtual-interface:\\n          type: SR-IOV\\n      name: cirros_sriov_vnfd-VM\\n      vm-flavor:\\n        memory-mb: 4096\\n        storage-gb: 10\\n        vcpu-count: 4\\n    vendor: OSM\\n    version: '1.0'\\n\",\n    \"descriptorHTML\": \"&lt;h3&gt;cirros_sriov_vnf&lt;/h3&gt;&lt;br&gt;&lt;b&gt;Vendor: &lt;/b&gt;OSM&lt;br&gt;&lt;b&gt;Version: &lt;/b&gt;1.0&lt;br&gt;&lt;b&gt;Description: &lt;/b&gt;Simple VNF example with a cirros SRIOV interface&lt;br&gt;&lt;b&gt;VM Count: &lt;/b&gt;1&lt;br&gt;&lt;b&gt;vCPU Count: &lt;/b&gt;1&lt;br&gt;&lt;b&gt;Memory: &lt;/b&gt;4096 MB&lt;br&gt;&lt;b&gt;Storage: &lt;/b&gt;10 GB&lt;br&gt;\",\n    \"certified\": false,\n    \"certifiedBy\": null,\n    \"validationStatus\": \"UNDER_REVIEW\",\n    \"packagingFormat\": \"OSMvFIVE\",\n    \"supportedMANOPlatforms\": [\n      {\n        \"id\": 1,\n        \"name\": \"osm fivee\",\n        \"version\": \"osm fivee\",\n        \"description\": \"osm five\"\n      }\n    ],\n    \"vxfOnBoardedDescriptors\": [],\n    \"vfimagesVDU\": [\n      {\n        \"id\": 2,\n        \"name\": \"cirros-0.3.6-x86_64\",\n        \"uuid\": \"be121176-1d62-4a1b-a3c1-7dce2e069d22\",\n        \"shortDescription\": \"Automatically created during vxf cirros_sriov_vnfd submission. Owner must update.\",\n        \"packageLocation\": null,\n        \"publicURL\": null,\n        \"dateCreated\": 1568971740000,\n        \"dateUpdated\": null,\n        \"refVxFs\": [\n          {\n            \"id\": 2,\n            \"name\": \"cirros_sriov_vnfd\"\n          }\n        ],\n        \"owner\": {\n          \"id\": 1,\n          \"organization\": \"ee\",\n          \"name\": \"Portal Administrator\",\n          \"email\": \"\",\n          \"username\": \"admin\",\n          \"active\": true,\n          \"currentSessionID\": null,\n          \"apikey\": \"e41c1cc4-aa56-4b7e-9f4d-64589549d768\",\n          \"createdAt\": 1568711859000,\n          \"roles\": [\n            \"ROLE_ADMIN\",\n            \"ROLE_MENTOR\"\n          ]\n        },\n        \"published\": false,\n        \"termsOfUse\": null,\n        \"deployedInfrastructures\": []\n      }\n    ]\n  }\n]\n</code></pre>"},{"location":"architecture/oauth/","title":"Authentication Server","text":"<p>Authentication is based on oAuth2. Our authentication service is a Keycloak server which is deployed with Openslice deployment </p> <p>API users needs to authenticate.  All APIs (except grant token request) must include Bearer token in request Authorization header.</p>"},{"location":"architecture/oauth/#oauth-token","title":"OAuth token","text":"<p>Get first an oauth token, using your username and password. </p> <pre><code>curl -X POST http://portal.openslice.io/auth/realms/openslice/protocol/openid-connect/token -H 'Content-Type: application/x-www-form-urlencoded' -d 'username=demouser' -d 'password=demouser' -d 'grant_type=password' -d 'client_id=osapiWebClientId' \n</code></pre> <p>response:</p> <pre><code>                                                       {\"access_token\":\"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJHZFRjQnpxczg2VW10NTRVZV8ybTJyWHJkV3dzaWdSZE9EUldMYm1memNvIn0.eyJleHAiOjE1ODgyNDA1NzAsImlhdCI6MTU4ODI0MDI3MCwianRpIjoiOGI2ZTU0NWUtNDIyYy00NzFiLWEwN2UtYTUzYzY1NDQ0MzZmIiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6ImExYTI3NjVhLWVjODMtNDQ1Ni1iN2IyLTIwNzMxOTg2ZTAzNSIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9zYXBpV2ViQ2xpZW50SWQiLCJzZXNzaW9uX3N0YXRlIjoiMzM1MGY0OTMtNjYyNy00MzczLTg1NDQtZGVmZDI3YWQzYzc0IiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwOi8vbG9jYWxob3N0OjEzMDgyIiwiaHR0cDovL2xvY2FsaG9zdCIsImh0dHA6Ly9vcGVuc2xpY2UuaW8iLCJodHRwOi8vbG9jYWxob3N0OjEzMDAwIiwiaHR0cDovL2xvY2FsaG9zdDo0MjAwIiwiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8iXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIk5GVl9ERVZFTE9QRVIiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiRVhQRVJJTUVOVEVSIiwiVVNFUiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJkZW1vdXNlciJ9.TnzzpRLMD94UTKpT5_wkr1h4_3KUQmr4TGvFLpJ7cZx-Klrv8tB_eRkWnPqqzCAM9G21a1qXboL8MLMW8ECzG7HYKpobKOGr7LSczMOTdA2ZDyBCRUSOdW77pchu54tJ0ITEkFaDwSKMKKt04V_Sy4U-eIndj0XzzRlkDolWDnK4Z2lRaXAI6fMwOKx1Toa6RfOcemxtzl3pdtjPx92zo6MaKlbIqHK82lxdK0k8aQQaT6TmIrXbZKV2dU_1d3O0q0dVUEZJ_1kzwqOFkmxr9w0EnndC6ccYJlDAr_-GgUhhhNOn5v6tjYLUQdj5e4KEAsxIPzaCreK4un7mEAPmDw\",\"expires_in\":300,\"refresh_expires_in\":1800,\"refresh_token\":\"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIwZjUxMDk5Yy0wNTIzLTRjNGQtODM0Zi1iNDc0YzBjOTA1MzkifQ.eyJleHAiOjE1ODgyNDIwNzAsImlhdCI6MTU4ODI0MDI3MCwianRpIjoiZmViOTg5NWEtOTY5ZS00MzIzLWJjY2QtZTY2YzQ0NGE1MzJlIiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwiYXVkIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwic3ViIjoiYTFhMjc2NWEtZWM4My00NDU2LWI3YjItMjA3MzE5ODZlMDM1IiwidHlwIjoiUmVmcmVzaCIsImF6cCI6Im9zYXBpV2ViQ2xpZW50SWQiLCJzZXNzaW9uX3N0YXRlIjoiMzM1MGY0OTMtNjYyNy00MzczLTg1NDQtZGVmZDI3YWQzYzc0Iiwic2NvcGUiOiJwcm9maWxlIGVtYWlsIn0.cDTx9BE1Df8EfGYm3VLr_MNFeymxZtJhMtlK7PVbIuk\",\"token_type\":\"bearer\",\"not-before-policy\":1586797346,\"session_state\":\"3350f493-6627-4373-8544-defd27ad3c74\",\"scope\":\"profile email\"}\n\n</code></pre> <p>The <code>access_token</code> will be used next as a Bearer.</p> <pre><code>curl http://portal.openslice.io/tmf-api/serviceCatalogManagement/v4/serviceCatalog -H 'Authorization: Bearer yJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJHZFRjQnpxczg2VW10NTRVZV8ybTJyWHJkV3dzaWdSZE9EUldMYm1memNvIn0.eyJleHAiOjE1ODgyNDA1MjQsImlhdCI6MTU4ODI0MDIyNCwianRpIjoiYjg0NGYxZDAtMzk3Mi00YTMyLThiMWEtZDAxMDY3OGZjMTQ4IiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwic3ViIjoiYTFhMjc2NWEtZWM4My00NDU2LWI3YjItMjA3MzE5ODZlMDM1IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiYWRtaW4tY2xpIiwic2Vzc2lvbl9zdGF0ZSI6ImFmMmMzZmY1LTE4YWQtNDFkNC1hYTAyLTFlMGJkNzNmOTM5MSIsImFjciI6IjEiLCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoiZGVtb3VzZXIifQ.SMtgV1E44_K_MQumGXZtWsLGVhYNaoM8Pk-DiFIZtUP4Zu-ervOsxHVQMX1frgVERR4jJidBcSshy9TnJ3UjF4l33WujHltbs-1UPy-gaIufVuEpl8RmbjOti3Up70vLfLXbzb6kN6WaahgobWXlbJsSXXwaBPQP6vSX5KigCa8TmzXcuqom14lOrlU-RB2zQTlJ30p7d9ag-a7o3I5m9GZWLJCZW2UYMl1JkskTHKgilA8HFQY4C9DYwWu8YDMyzqQSNumrTlURalBFidFbZvb1kp4dAyct8TysSWSbxxiwaL2RX1PWUqk-5Fpc1Q6BnBC8muMheiukFuoSkuADAg'^C\nubuntu@portal:~$ curl http://portal.openslice.io/tmf-api/serviceCatalogManagement/v4/serviceCatalog -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJHZFRjQnpxczg2VW10NTRVZV8ybTJyWHJkV3dzaWdSZE9EUldMYm1memNvIn0.eyJleHAiOjE1ODgyNDA1NzAsImlhdCI6MTU4ODI0MDI3MCwianRpIjoiOGI2ZTU0NWUtNDIyYy00NzFiLWEwN2UtYTUzYzY1NDQ0MzZmIiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6ImExYTI3NjVhLWVjODMtNDQ1Ni1iN2IyLTIwNzMxOTg2ZTAzNSIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9zYXBpV2ViQ2xpZW50SWQiLCJzZXNzaW9uX3N0YXRlIjoiMzM1MGY0OTMtNjYyNy00MzczLTg1NDQtZGVmZDI3YWQzYzc0IiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwOi8vbG9jYWxob3N0OjEzMDgyIiwiaHR0cDovL2xvY2FsaG9zdCIsImh0dHA6Ly9vcGVuc2xpY2UuaW8iLCJodHRwOi8vbG9jYWxob3N0OjEzMDAwIiwiaHR0cDovL2xvY2FsaG9zdDo0MjAwIiwiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8iXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIk5GVl9ERVZFTE9QRVIiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiRVhQRVJJTUVOVEVSIiwiVVNFUiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJkZW1vdXNlciJ9.TnzzpRLMD94UTKpT5_wkr1h4_3KUQmr4TGvFLpJ7cZx-Klrv8tB_eRkWnPqqzCAM9G21a1qXboL8MLMW8ECzG7HYKpobKOGr7LSczMOTdA2ZDyBCRUSOdW77pchu54tJ0ITEkFaDwSKMKKt04V_Sy4U-eIndj0XzzRlkDolWDnK4Z2lRaXAI6fMwOKx1Toa6RfOcemxtzl3pdtjPx92zo6MaKlbIqHK82lxdK0k8aQQaT6TmIrXbZKV2dU_1d3O0q0dVUEZJ_1kzwqOFkmxr9w0EnndC6ccYJlDAr_-GgUhhhNOn5v6tjYLUQdj5e4KEAsxIPzaCreK4un7mEAPmDw'\n\nResponse:\n\n\n[{\"uuid\":\"9e186cd5-b2b2-4a06-b1d6-895720193bc9\",\"lastUpdate\":\"2020-03-11T23:19:05Z\",\"@baseType\":\"BaseEntity\",\"@schemaLocation\":null,\"@type\":\"ServiceCatalog\",\"href\":null,\"name\":\"Example Facility Services\",\"description\":\"Example Facility Services\",\"lifecycleStatus\":\"Active\",\"version\":\"1.0\",\"validFor\":{\"endDateTime\":\"2039-11-20T23:07:21Z\",\"startDateTime\":\"2019-11-20T23:07:21Z\"},\"relatedParty\":null,\"id\":\"9e186cd5-b2b2-4a06-b1d6-895720193bc9\",\"category\":[{\"@baseType\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"@schemaLocation\":null,\"@type\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"href\":null,\"name\":\"Generic Services\",\"@referredType\":null,\"id\":\"98b9adf1-a1d6-4165-855f-153ddc2131b1\"},{\"@baseType\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"@schemaLocation\":null,\"@type\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"href\":null,\"name\":\"External\",\"@referredType\":null,\"id\":\"08ffdb3c-6237-45d0-9f3a-d43b5fc5f0b6\"},{\"@baseType\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"@schemaLocation\":null,\"@type\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"href\":null,\"name\":\"eMBB\",\"@referredType\":null,\"id\":\"ef2c90dd-b65e-4a9f-a9c3-427c9fb0219b\"}]}]\n\n\n</code></pre>"},{"location":"architecture/osom/","title":"Openslice Service Orchestration and Order Management - OSOM","text":"<p>OSOM is a service responsible for:</p> <ul> <li>Service Order Management (SOM)</li> <li>Service Orchestration (SO)</li> </ul> <p>It uses open source Flowable Business process engine (https://www.flowable.org) .</p> <p>A Service Order follows the states as defined in TMF641 specification: </p> <p></p>"},{"location":"architecture/osom/#initial-state","title":"Initial state","text":"<p>When a new order is created, it goes into the Initial state. It is stored in the repository and triggers an Event.</p> <p></p> <p>Administrators are notified usually from the Ticketing System of a new order. They login to Openslice and change the State of the order either to ACKNOWLEDGED or REJECTED. If ACKNOWLEDGED they can Propose a startDate, add Notes, and add any additional service items</p>"},{"location":"architecture/osom/#order-scheduler","title":"Order scheduler","text":"<p>A process checks every 1 minute for ACKNOWLEDGED orders.</p> <p></p> <p></p> <p>It retrieves all orders that are in ACKNOWLEDGED state and if the start date is in time it will initialize the process by settingn the order in IN_PROGRESS state. Finally the Start Order Process will start.</p>"},{"location":"architecture/osom/#start-order-process","title":"Start order process","text":"<p>This process for now is a draft simple prototype to make a simple orchestration via NFVO. Here the actual Services (TMF638/640 model) are created and attached to Service Order and Service Inventory.</p> <p></p> <p></p> <p>We expect here to check which tasks can be orchestrated by NFVO and which by human. We create the equivalent Services(TMF638/640 model) for this order.</p> <ol> <li>During check it should decide to create Service(s) for this service order O1 and send it to ServiceInventory</li> <li>The Services(TMF638 model) are assigned to the Order O1 In supportService List</li> <li>Each OrderItem OI1 is related to one serviceSpecification</li> <li>Each ServiceSpecification has also related serviceSpecRelationships</li> <li>So if we receive an order O1 for a ServiceSpec A which relates to (a bundle of) 3 specs(2 CFS, 1 RFS) we do the following:<ol> <li>Create a Service S_A(TMF638 model) for ServiceSpec A for Order O1</li> <li>We create also 3 Services S_C1, S_C2 and S_R1 equivalent to the serviceSpecRelationships (2 CFS, 1 RFS) </li> <li>At this point the order will have 1 Local Service Orchestration Process(S_A),  2 supportingServices  refs(S_C1, S_C2) and 1 supportingResource(S_R1)</li> <li>The 3 supportingServices and 1 supportingResource correspond to total 4 Services in ServiceInventory</li> <li>Service S_A will have: <ol> <li>startMode 1: Automatically by the managed environment</li> <li>State: RESERVED and the Lifecycle will be handled by OSOM</li> </ol> </li> <li>Services S_C1 and S_C2 we decide that cannot be orchestrated then they have <ol> <li>startMode: 3: Manually by the Provider of the Service</li> <li>State: RESERVED and the Lifecycle will be handled by OSOM</li> <li>If the CFS is a bundle spec it is further recursively orchestrated </li> </ol> </li> <li>Service S_R1 will have <ol> <li>startMode 1: Automatically by the managed environment.</li> <li>State: RESERVED</li> <li>IF The Service has the characteristic CharacteristicByName( \"NSDID\") it will be further processed by the NFVO </li> </ol> </li> </ol> </li> </ol> <p>There will be two instances of task \"User Task Manual Complete Service\" each for Services S_C1 and S_C2. The task is Transient for now. It displays only the services that are not automated!  Here is a flow for future:</p> <ol> <li>We wait here for human decision.</li> <li>From API we get a result:     a. If set to ACTIVE/TERMINATED then we complete the task     b. In any other state we stay in this task until it is resolved as in step a     c. The Status of ORDER O1 is also updated to PARTIAL</li> </ol> <p>There will be an instance of  NFVODeploymentRequest process  each for Service S_R1. (see later)</p> <ol> <li>This process is related with the NFVO orchestration</li> <li>It will send a msg to NFVO(s?) for a specific deployment request</li> </ol> <p>All services in \"Order Complete\" are in a status:</p> <ol> <li>Depending on the result the service S_A is either ACTIVE or INACTIVE or TERMINATED</li> <li>The Status of ORDER O1 is also updated to COMPLETED  or PARTIAL (in case we have some services running) or FAILED (in cases we have errors)</li> </ol> <p>A Service follows the states as defined in TMF638 Service Inventory specification: </p> <p></p>"},{"location":"architecture/osom/#nfvodeploymentrequest-process","title":"NFVODeploymentRequest process","text":"<p>This process is related with the NFVO orchestration It will send a msg to NFVO(s?) for a specific deployment request Then it checks the deployment status. It will wait 30 secs each time until the deployment is running (or failed)</p>"},{"location":"architecture/osom/#check-in-progress-orders-process","title":"Check In Progress orders process","text":"<p>Every 1 minute the \"Check In Progress Orders\" process is executed checking if a supported Service changed state (i.e. to ACTIVE) then the whole Order will change state (e.g. go to COMPLETED)</p> <p></p>"},{"location":"architecture/osom/#external-service-provider-deployment-request-process","title":"External Service Provider Deployment Request process","text":"<p>This process contains tasks for submitting order requests to external partners. - Submit Order To External Service Provider Task: This task creates automatically a Service Order request to a 3rd party provider SO that hosts the Service Specification - Check external service order fulfillment task: This task Check external partner for Service creations and updates our local inventory of services the service characteristics of remote Service Inventory</p>"},{"location":"architecture/osom/#fetch-partner-services-process","title":"Fetch Partner Services Process","text":"<p>Every 2 minutes the \"fetchPartnerServicesProcess\" process is executed checking remote Partner Organizations for changes in the published catalogues. The Fetch and Update External Partner Services Task is executed in paralle l for each Partner Organization </p>"},{"location":"architecture/osom/#local-service-orchestration-process","title":"Local Service Orchestration Process","text":"<p>This process handles automatically services that need to be further orchestrated or processed by OSOM. For example, for a CFS Bundled service we create such automated service instances that just aggregate the underlying services. </p>"},{"location":"architecture/tmfapi/","title":"TMF OpenAPI specification","text":"<p>PLease check the complete specification here.</p>"},{"location":"architecture/tmfapi/#api-interaction","title":"API interaction","text":""},{"location":"architecture/tmfapi/#oauth-token","title":"OAuth token","text":"<p>See oauth</p>"},{"location":"architecture/tmfapi/#request-a-protected-api-resource","title":"Request a protected API resource","text":"<p>Example: Get all Service Catalogs (check the <code>Authorization:Bearer</code> to be correct)</p> <pre><code>curl -H \"Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbIm9wZW5hcGkiLCJhZG1pbiIsInJlYWQiLCJ3cml0ZSJdLCJvcmdhbml6YXRpb24iOiJteW9yZ2FuaXp0aW9uIiwiZXhwIjoxNTc4NTA1MDcyLCJhdXRob3JpdGllcyI6WyJST0xFX01FTlRPUiIsIlJPTEVfQURNSU4iXSwianRpIjoiMTFlNGYxYTUtZDY0Ny00YzA1LWE0ZGMtYWFhYzUyMjk4YzMwIiwiY2xpZW50X2lkIjoib3NhcGlXZWJDbGllbnRJZE91dCJ9.gm7cKdusDrdMRkxEiFU5sENKGRC1xwVj2SgPRmE9xxx\"  -H  \"accept: application/json;charset=utf-8\" -X GET \"http://portal.openslice.io/tmf-api/serviceCatalogManagement/v4/serviceCatalog\"\n\n</code></pre> <p>response:</p> <pre><code>[\n  {\n    \"uuid\": \"9e186cd5-b2b2-4a06-b1d6-895720193bc9\",\n    \"lastUpdate\": \"2019-12-19T10:45:55Z\",\n    \"@baseType\": \"BaseEntity\",\n    \"@schemaLocation\": null,\n    \"@type\": \"ServiceCatalog\",\n    \"href\": null,\n    \"name\": \"Example Facility Services\",\n    \"description\": \"Example Facility Services\",\n    \"lifecycleStatus\": \"Active\",\n    \"version\": \"1.0\",\n    \"validFor\": {\n      \"endDateTime\": \"2039-11-20T23:07:21Z\",\n      \"startDateTime\": \"2019-11-20T23:07:21Z\"\n    },\n    \"relatedParty\": null,\n    \"id\": \"9e186cd5-b2b2-4a06-b1d6-895720193bc9\",\n    \"category\": [\n      {\n        \"@baseType\": \"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\n        \"@schemaLocation\": null,\n        \"@type\": \"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\n        \"href\": null,\n        \"name\": \"eMBB\",\n        \"@referredType\": null,\n        \"id\": \"ef2c90dd-b65e-4a9f-a9c3-427c9fb0219b\"\n      },\n      {\n        \"@baseType\": \"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\n        \"@schemaLocation\": null,\n        \"@type\": \"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\n        \"href\": null,\n        \"name\": \"Generic Services\",\n        \"@referredType\": null,\n        \"id\": \"98b9adf1-a1d6-4165-855f-153ddc2131b1\"\n      }\n    ]\n  }\n]\n</code></pre>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/","title":"CRIDGE: A Service to manage Custom Resources in a Kubernetes Cluster","text":""},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#intended-audience-osl-developers","title":"Intended Audience: OSL developers","text":"<p>Kubernetes is an orchestration system for automating software deployment, scaling, and management. One can interact though the Kubernetes API and it has a set of objects ready for use out of the box. Custom Resource Definitions (CRDs) is a way that allows to manage things other than Kubernetes itself and allows to create our own objects The use of CRDs makes the possibilities of Kubernetes management almost limitless. You can extend the base Kubernetes API with any object you like using CRDs.</p> <p>CRIDGE is a service designed to create and manage Custom Resources (CRs) based on Custom Resource Definitions (CRDs) installed on a Kubernetes cluster. By leveraging the OpenSlice (OSL), CRIDGE enables seamless integration and  orchestration within Kubernetes environments, utilizing Kubernetes APIs via the TMF APIs and models. Thus, more or less, OSL exposes Kubernetes APIs as TMF APIs and models.</p> <p>By allowing the design and lifecycle management of services/resources that expose CRDs/CRs in a Kubernetes cluster via the TMF APIs, OSL can be used in many complex scenarios now involing resources from multiple domains.</p> <ol> <li> <p>CRIDGE service allows OSL to:</p> <ul> <li>Create and manage Custom Resources (CRs) using installed CRDs on a target Kubernetes cluster.</li> <li>Facilitate complex orchestration scenarios by wrapping Kubernetes APIs as TMF APIs and models.</li> <li>Handles connectivity to a Kubernetes cluster and manages the lifecycle of CRDs</li> <li>Wraps the Kubernetes API, Receives and provides resources towards other OSL services via the service bus</li> </ul> </li> <li> <p>Enabling Loose Coupling and Orchestration</p> <ul> <li>Language Flexibility: Developers can write CRDs in any language and expose them via the Kubernetes APIs. OSL will reuse these CRDs, enhancing flexibility and integration capabilities.</li> <li>Familiar Deployment: Developers can create and deploy applications using familiar tools such as Helm charts, simplifying the process and reducing the learning curve.</li> </ul> </li> <li> <p>Ecosystem Reusability</p> <ul> <li>CRIDGE capitalizes on the extensive Kubernetes ecosystem, particularly focusing on operators (CRDs).</li> <li>Key repositories and hubs such as artifacthub.io and Operatorhub.io can be utilized for finding and deploying operators.</li> </ul> </li> <li> <p>Service Catalog Exposure and Deployment</p> <p>OSL can expose CRs in service catalogs, facilitating their deployment in complex scenarios. These scenarios may include service bundles that involve multiple systems, such as RAN controllers or other Kubernetes clusters, providing a robust and versatile deployment framework.</p> </li> </ol> <p>Why the CRIDGE name? we wanted to build a service that maps TMF models to CRDs; a kind of a CRD to TMF bridge. Therefore CRIDGE was born</p>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#approach","title":"Approach","text":"<p>OSL in general is responible for exposing service specifications  which are ready to be ordered and orchestrated, through tmforum Open APIs as defined in the OSL Service Spec Catalog. Usually for a service specification a corresponding (one or more) resource specification (resourceSpecificationReference) is registered in the OSL Resource Spec Catalog.</p> <p>The following image illustrates the approach.</p> <p></p> <ol> <li>A CRD in a cluster will be mapped in TMF model as a Resource specification and therefore can be exposed as a service specification in a catalog</li> <li>Service Orders can be created for this service specification. The OSL Orchestrator (OSOM) will manage the lifecycle of the Service Order.</li> <li>OSOM creates a Resource in OSL Resource inventory and requests (via CRIDGE) a new Custom Resource (CR) in the target cluster<ul> <li>The resource is created in a specific namespace (for example the UUID of the Service Order)</li> <li>A CR in a cluster will be mapped in TMF model as a Resource in the resource Inventory</li> <li>Other related resources created by the CRD Controller within the namespace are automatically created in OSL Resource Inventory under the same Service Order</li> </ul> </li> </ol> <p></p> <p>The provided image illustrates the architecture and workflow of the CRIDGE service, showing how it interacts with other components within a Kubernetes (K8s) cluster. Here is an explanation of the key components and flow in the diagram:</p> <ul> <li>Other OSL Services: This box represents various OSL services such as Service Spec Catalogue, Resource Spec Catalogue, Service Inventory, Resource Inventory, and OSOM (OpenSlice Service Orchestration and Management).</li> <li>Service Bus: This is the communication layer that facilitates interaction between the CRIDGE service and other OSL services.</li> <li>CRIDGE: CRIDGE acts as a bridge that converts CRDs (Custom Resource Definitions) to TMF (TM Forum) APIs and models. It enables the creation and management of Custom Resources (CRs) in the Kubernetes cluster.</li> <li> <p>K8s API: The Kubernetes API server, which is the central control point for managing the Kubernetes cluster. CRIDGE interacts with the K8s API to manage CRDs and CRs.</p> <p>CRD (Custom Resource Definition): A CRD is a way to define custom resources in Kubernetes cluster-wise. It allows the extension of Kubernetes API to create and manage user-defined resources. Example :</p> </li> </ul> <pre><code>        apiVersion: apiextensions.k8s.io/v1\n        kind: CustomResourceDefinition\n        metadata:\n            name: myresource.example.com\n</code></pre> <ul> <li>Namespaces: Kubernetes namespaces provide a way to partition resources within a cluster. The diagram shows that multiple namespaces (nsxx, nsyy, nsz) can be managed by CRIDGE.</li> </ul> <p>CR (Custom Resource):  A CR is an instance of a CRD. It represents the actual custom resource that is managed within the Kubernetes cluster. Example shown in different namespaces:</p> <pre><code>        apiVersion: example.com/v1\n        kind: Myresource\n        metadata:\n          name: example_resource_1\n</code></pre> <p>In a nutchell:</p> <ul> <li>Various OSL services use the Service Bus to communicate with CRIDGE.</li> <li>CRIDGE converts requests towards Kubernetes API and vice-versa, facilitating the integration of custom resources with other OSL services.</li> <li>CRDs are defined and managed through the K8s API. The example CRD is named myresource.example.com.</li> <li>Deploying CRs in Namespaces: Custom resources defined by the CRD are created and managed within different namespaces in the Kubernetes cluster. Each namespace can have its own instances of the custom resources.<pre><code>&gt; The example CRD myresource.example.com allows the creation of custom resources of type Myresource.\n&gt; Instances of Myresource are created in various namespaces, each with unique names like example_resource_1.\n</code></pre> </li> </ul>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#handling-more-than-one-clusters","title":"Handling more than one clusters","text":"<p>A CRIDGE service is usually responsible for managing one cluster. In the following diagram we show how it can be used for managing multiple clusters:</p> <p></p> <p>We assume that there is an OSL Management cluster that OSL is installed. CRIDGE is also installed there if we would like to manage resources in the same management cluster.   - Each CRIDGE service has for example its own configuration to connect to target cluster  - Each CRIDGE can be installed either in the managed cluster or at the remote clusters. Connectivity is handled via the service bus  - Important: Each CRIDGE has a different context and API endpoints. This is used to request CRDs on a different cluster</p> <p>A CRD has a globally unique name for example mycrd.example.com. So we need to somehow identify also the different cluster</p>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#awareness-for-crds-and-crs-in-cluster","title":"Awareness for CRDs and CRs in cluster","text":"<p>CRDs and CRs can appear (disappear) or change status at any time in a cluster. OSL Resource Inventory need to be aware of these events.</p> <p>The sync process is found in the code and explained by the following picture:</p> <p></p> <p>WatcherService is executed when the cridge service application starts (see onApplicationEvent). First things:</p> <ul> <li>KubernetesClientResource is a class that wraps fabric8\u2019s KubernetesClient<ul> <li>This fabric8 KubernetesClient is initialized from the kubeconf and default context of the machine that runs CRIDGE</li> </ul> </li> <li>On CRIDGE Start up we try to register this cluster and context to OSL catalogs.<ul> <li>See registerKubernetesClientInOSLResource method which registers the KubernetesContextDefinition in Resource Inventory as a LogicalResource via  createOrUpdateResourceByNameCategoryVersion method</li> </ul> </li> <li>After the creation(or update) of this cluster as a Resource in OSL we proceed to create  SharedIndexInformers for CustomResourceDefinition objects</li> <li>In this way CRIDGE is always aware of all CRDs and their CRs in the cluster, even if a CRD or CR is added/updated/deleted in the K8S cluster outside of OSL(CRIDGE)</li> <li>The SharedIndexInformer events notify CRIDGE, which is always aware of all CRDs and their CRs in the cluster, even if a CRD or CR is added/updated/deleted in the K8S cluster outside of OSL(CRIDGE)<ul> <li>NOTE: The ADD event is raised every time also we run CRIDGE. Therefore, on ADD we do the method to createORupdate resource specifications and resources</li> </ul> </li> <li>On ADD event:<ul> <li>The CRD is transformed to OSL Kubernetes domain model: method kubernetesClientResource.KubernetesCRD2OpensliceCRD</li> <li>Then the OSL Kubernetes domain model is:<ul> <li>transformed to Resource Specification and is stored to catalog (see createOrUpdateResourceSpecByNameCategoryVersion)</li> <li>Transformed to Resource and is stored to catalog (see createOrUpdateResourceByNameCategoryVersion)</li> </ul> </li> <li>Conceptually while a CRD is a new resource located in the Kubernetes cluster resource, it is transformed also as a Resource Specification (a high-level entity) which is ready to be reused as an entity to other scenarios. The same concept as in Kubernetes where a CRD is a definition ready to be used for instantiating resources of this CRD</li> <li>Then for this CRD a Watcher is added for all Resources of this Kind (fabric8\u2019s GenericKubernetesResource entity)  </li> <li>When we have a newly added/updated/deleted resource of a certain CRD the method updateGenericKubernetesResourceInOSLCatalog is called for this object  (fabric8\u2019s GenericKubernetesResource entity)</li> <li>We examine if the resource has label org.etsi.osl.resourceId<ul> <li>This label is added by OSOM during service orders to correlate K8S requested resources with resources in inventory</li> </ul> </li> <li>If the label exists, we update the resource by ID updateResourceById</li> <li>Else a resource is created in catalog</li> </ul> </li> </ul>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#deployment-of-a-new-cr-based-on-a-crd","title":"Deployment of a new CR based on a CRD","text":"<ul> <li>A message arrives to deploy a CR<ul> <li>The call examines if this CRIDGE service can handle the request (based on context and masterURL)</li> </ul> </li> <li>There are headers received and a crspec in json</li> <li>The crspec is unmarshaled as GenericKubernetesResource</li> <li>Headers are in format org.etsi.osl.*</li> <li>These headers are injected as labels <ul> <li>(see later in orchestration)</li> </ul> </li> <li>A  namespace is created for this resource</li> <li>Watchers are created for this namespace for e.g. new secrets, config maps etc , so that they can be available back as resources to the Inventory of OSL (Note only Secrets for now are watched)</li> </ul>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#expose-crds-as-service-specifications-in-openslice-catalogs","title":"Expose CRDs as Service Specifications in OpenSlice catalogs","text":"<p>See ExposingKubernetesResources</p>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#service-orchestration-and-crdscrs","title":"Service Orchestration and CRDs/CRs","text":"<p>OSOM checks the presence of attribute _CR_SPEC at the RFS to make a request for a CR deployment</p> <ul> <li>_CR_SPEC is a JSON or YAML string that is used for the request<ul> <li>It is similar to what one will do with e.g. a kubectl apply</li> <li>There are tools to translate a yaml file to a json</li> </ul> </li> </ul> <p>LCM rules can be used to change attributes of this yaml/json file, before sending this for orchestration</p> <p>However, the following issue needs to be solved: ** How to map the CR lifecycle that is defined in the CRD with the TMF resource Lifecycle? **     - For this We introduced the following characteristics:  _CR_CHECK_FIELD, _CR_CHECKVAL_STANDBY, _CR_CHECKVAL_ALARM, _CR_CHECKVAL_AVAILABLE, _CR_CHECKVAL_RESERVED, _CR_CHECKVAL_UNKNOWN, _CR_CHECKVAL_SUSPENDED</p> <p>OSOM sends to CRIDGE a message with the following information:</p> <ul> <li>currentContextCluster: current context of cluster </li> <li>clusterMasterURL: current master url of the cluster </li> <li>org.etsi.osl.serviceId: This is the related service id that the created resource has a reference </li> <li>org.etsi.osl.resourceId: This is the related resource id that the created CR will wrap and reference.  </li> <li>org.etsi.osl.prefixName: we need to add a short prefix (default is cr) to various places. For example in K8s cannot start with a number </li> <li>org.etsi.osl.serviceOrderId: the related service order id of this deployment request </li> <li>org.etsi.osl.namespace: requested namespace name </li> <li>org.etsi.osl.statusCheckFieldName: The name of the field that is needed to be monitored in order to monitor the status of the service and translate it to TMF resource statys (RESERVED AVAILABLE, etc) </li> <li>org.etsi.osl.statusCheckValueStandby: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state STANDBY (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>org.etsi.osl.statusCheckValueAlarm: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state ALARMS (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>org.etsi.osl.statusCheckValueAvailable: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state AVAILABLE (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>org.etsi.osl.statusCheckValueReserved: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state RESERVED (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>org.etsi.osl.statusCheckValueUnknown: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state UNKNOWN (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li> <p>org.etsi.osl.statusCheckValueSuspended: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state SUSPENDED (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </p> </li> <li> <p>Parameters:</p> <ul> <li>aService reference to the service that the resource and the CR belongs to</li> <li>resourceCR reference the equivalent resource in TMF repo of the target CR. One to one mapping</li> <li>orderId related service order ID</li> <li>startDate start date of the deployment (not used currently)</li> <li>endDate end date of the deployment (not used currently)</li> <li>_CR_SPEC the spec that is sent to cridge (in json)</li> </ul> </li> <li> <p>Returns:</p> <ul> <li>a string response from cridge. It might return \"OK\" if everything is ok. \"SEE OTHER\" if there are multiple CRIDGEs then some other cridge will handle the request for the equivalent cluster. Any other response is handled as error</li> </ul> </li> <li> <p>CRIDGE receives the message and creates according to the labels the necessary CR</p> </li> <li>It monitors the created resource(s) in namespace (see the Sequence Diagram in previous images)</li> <li>It monitors and tries to figure out and map the Status of the CR to the TMF Status according to the provided org.etsi.osl.statusCheck* labels</li> <li>It sends to the message bus the current resource for creation or update to the TMF service inventory</li> </ul>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#probe-further","title":"Probe further","text":"<ul> <li>See examples of exposing operators via OpenSlice:<ul> <li>Exposing Kubernetes Operators as a Service : Offering \"Calculator as a Service\" through OpenSlice</li> </ul> </li> </ul>"},{"location":"contributing/developing/","title":"Developing","text":"<p>OpenSlice backend services are mainly implemented with Java 17 or above and Spring boot.</p> <p>OpenSlice uses various subsystems and depending on the module would you like to work, other subsystems must be present (you can disable them though in the code, e.g. at docker-compose.yaml file).</p> <p>To get the latest development branch:</p> <pre><code>wget https://labs.etsi.org/rep/osl/code/org.etsi.osl.main/-/raw/develop/compose/deploy.sh \nsudo ./deploy.sh develop  #[or replace develop with other branch name]\n</code></pre> <p>You may follow the installation process, as described at \"develop\" tagged documentation.</p> <p>To work on a specific subsystem e.g. org.etsi.osl.tmf.api, you must:</p> <p>1a - Deploy only the core necessary subsystems through:</p> <pre><code>sudo docker compose --profile dev down;sudo docker compose --profile dev up -d --build\n</code></pre> <p>Note --profile dev that will only deploy the core dependency subsystems, instead   of the whole OpenSlice.</p> <p>1b - Or alternatively, commend out the respective container from the docker-compose.yaml file, so as to deploy the whole OpenSlice, except the subsystem you want to work on, following the provided installation steps.</p> <p>2 - Clone the respective repository, e.g. https://labs.etsi.org/rep/osl/code/org.etsi.osl.tmf.api/-/tree/develop</p> <p>3 - Code :)</p>"},{"location":"contributing/developing/#general-requirements","title":"General requirements","text":"<ul> <li>Docker should be installed in your development environment</li> <li>Run the core subsystems (see above section)</li> </ul>"},{"location":"contributing/developing/#slack","title":"Slack","text":"<p>Feel free to join OpenSlice Slack for any development oriented questions.</p>"},{"location":"contributing/developing/#examples-of-developing-on-specific-subsystems","title":"Examples of developing on specific subsystems","text":""},{"location":"contributing/developing/#vnfnsd-catalog-management-and-nsd-deployment-api-service","title":"VNF/NSD Catalog Management and NSD Deployment API service","text":"<p>Clone the repository: https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.api/-/tree/develop</p> <p>Check the docker-compose.yml file. Default port is 13080. Check specifically the datasource username/password, server port.</p> <p>Make sure that the core subsystems are up and running.</p> <p>Execute it with </p> <pre><code>mvn spring-boot:run\n</code></pre> <p>For verification, Swagger API of the service is at <code>http://localhost:13000/osapi/swagger-ui/index.html</code>. </p> <p>There, you may try there various REST actions and authenticate via the OAuth server without the use of the UI.</p>"},{"location":"contributing/developing/#vnfnsd-catalog-management-and-nsd-deployment-web-ui-service","title":"VNF/NSD Catalog Management and NSD Deployment WEB UI service","text":"<p>The Web UI is written in AngularJS.</p> <p>Clone the repository: https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.web/-/tree/develop</p> <p>By default the project org.etsi.osl.portal.api exposes the folder ../org.etsi.osl.portal.web/src/ in a folder testweb (Check class MvcConfig.java in org.etsi.osl.portal.api) for development. (In production nginx is used). Point your browser to <code>http://localhost:13000/osapi/testweb/index.html/</code></p>"},{"location":"contributing/developing/#versionrelease-management","title":"Version/release management","text":"<p>Check this nice article on how we develop and release versions.</p> <p>https://nvie.com/posts/a-successful-git-branching-model/</p> <p>We develop in the develop branch and follow a issue driven development model.</p>"},{"location":"contributing/developing/#wishlist","title":"Wishlist","text":"<p>Check also our wishlist of new features. You can add your own.</p> <p>See Wishlist.</p>"},{"location":"contributing/wishlist/","title":"TMF API","text":"<ul> <li>RBAC of API endpoints</li> <li>TMF Ticketing API support</li> <li>TMF Product</li> <li>HATEOAS integration</li> <li>Select Specs that can be exposed to partners (maybe with a characteristic?)</li> </ul>"},{"location":"contributing/wishlist/#resource-management","title":"resource management","text":"<ul> <li>Resource Activation and Configuration API TMF702 (NEW) (https://projects.tmforum.org/wiki/pages/viewpage.action?pageId=128855518)</li> </ul>"},{"location":"contributing/wishlist/#tmf-web","title":"TMF WEB","text":""},{"location":"contributing/wishlist/#osom","title":"OSOM","text":"<ul> <li>Actions on service order item and acknowledge order status will define the lifecycle</li> <li>action shutdown on specific date for service order</li> <li>action edit on service order item</li> </ul>"},{"location":"contributing/wishlist/#dynamic-attribute-transformation","title":"Dynamic attribute transformation","text":"<ul> <li>DTM decision tables support per Service Specification</li> <li>Schedule Termination of completed order on running services</li> </ul>"},{"location":"contributing/wishlist/#nfvo-connectivity","title":"NFVO connectivity","text":""},{"location":"contributing/wishlist/#osm-client","title":"OSM Client","text":"<ul> <li>VNF/NSD config params Day 2</li> <li>NSD Lifcecylce</li> <li>NST support</li> </ul>"},{"location":"contributing/wishlist/#nfv-api","title":"NFV API","text":""},{"location":"contributing/wishlist/#nfv-web","title":"NFV WEB","text":""},{"location":"contributing/wishlist/#3rd-party-connectivity","title":"3rd party connectivity","text":""},{"location":"contributing/wishlist/#flowone-connector","title":"FlowOne connector","text":""},{"location":"contributing/wishlist/#openstack-connector","title":"Openstack connector","text":""},{"location":"contributing/wishlist/#kubernetes-connector","title":"Kubernetes connector","text":""},{"location":"contributing/wishlist/#centrallog","title":"CentralLog","text":"<ul> <li>Events from TMF to be written to Central Log</li> </ul>"},{"location":"contributing/wishlist/#authentication","title":"Authentication","text":""},{"location":"naas/exposed_apis/","title":"Supported TMFORUM exposed APIs","text":"Endpoint Title Description Version /tmf-api/serviceCatalogManagement/v4 633 Service Catalog Management Provides a catalog of services. 4.0.0 /tmf-api/productCatalogManagement/v4/ 620 Product Catalog Management Provides a catalog of products. 4.0.0 /tmf-api/productOrderingManagement/v4/ v622 Product Ordering Provides a standardized mechanism for placing a product order. 4.0.0 /tmf-api/resourceCatalogManagement/v4 634 Resource Catalog Management This is Swagger UI environment generated for the TMF Resource Catalog Management specification. 4.0.0 /tmf-api/serviceInventory/v4 638 Service Inventory Management Provides a consistent/standardized mechanism to query and manipulate the Service inventory. 4.0.0 /tmf-api/serviceOrdering/v4 641 API ServiceOrdering Provides a standardized mechanism for managing Service Order. 4.0.0 /tmf-api/serviceQualityManagement/v2 657 Service Quality Management This is Swagger UI environment generated for the TMF Service Quality Management specification. 2.0.0 /tmf-api/partyRoleManagement/v4/ 669 Party Role Management This is Swagger UI environment generated for the TMF Party Role Management specification. 4.0.0 /tmf-api/party/v4/organization 632 API Party Provides standardized mechanism for party management such as creation, update, retrieval, deletion and notification of events. 4.0.0 /tmf-api/agreementManagement/v2/ 651 Agreement Management T his is Swagger UI environment generated for the TMF Agreement Management specification. 2.0.0 /tmf-api/resourceOrderingManagement/v4 652 Resource Order Management-v4.0.0 This is Swagger UI environment generated for the TMF 652-Resource Order Management-v4.0.0 specification. 4.0.0 /tmf-api/accountManagement/v4 666 Account Management This is Swagger UI environment generated for the TMF Account Management specification. 4.0.0 /tmf-api/customerManagement/v4 629 Customer Management TMF Customer Management 4.0.0 /tmf-api/userinfo 691 Federated ID TMF Federated ID 1.0.0 /tmf-api/ServiceActivationAndConfiguration/v3/ 640 API Service Activation and Configuration Provides the ability to activate and configure Services. 3.0.0 /tmf-api/alarmManagement/v4/ 642 API Alarm 4.0.0 /tmf-api/serviceTestManagement/v4 653 Service Test Management Provides the ability to manage tests of provisioned Services. 4.0.0 /tmf-api/resourceInventoryManagement/v4 639 API Resource Inventory Management Provides the ability to manage Resources. 4.0.0 /tmf-api/lcmrulesmanagement/v1/ LCM Rules Custom API environment for LCM Rules 1.0.0 /tmf-api/resourcePoolManagement/v1 685 Resource Pool Management Resources that can be reserved are only in one pool. 1.0.0 /tmf-api/geographicSiteManagement/v5 674 Geographic Site Management Covers the operations to manage sites that can be associated with entities 5.0.0"},{"location":"naas/gst_to_tmf/","title":"Generic Slice Template as a Service Specification","text":""},{"location":"naas/gst_to_tmf/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>GSMA Generic Slice Template (GST) Defines customer-oriented service requirements, E.g. Availability, Area of service, delay tolerance, etc. and attempts to narrow down the gap between (network) service customers and vendors</p> <p>Moreove it Proposes standardized Network Slice Templates (NESTs) to target specific use cases</p> <p>In OpenSlice we made an effort and translated the GST to a Service Specification model. So Service Designers can use it as a template to design a new Service.</p> <p>The image illustrates the relationship between the GSMA Generic Slice Template (GST), TM Forum Service Specification, and how they are utilized within OpenSlice to offer network services.</p> <p></p> <p>The GST to TM Forum via OpenSlice:</p> <pre><code>    * GST Attributes List: A comprehensive list of service attributes, such as availability, delay tolerance, downlink throughput, energy efficiency, isolation level, mission-critical support, and many others.\n    * TMF Service Specification: Demonstrates the transformation of GST attributes into a TM Forum service specification, showing JSON code snippets that define service parameters.\n    * Offered Service based on GST: Represents the final offered service, an example of a GST-based service shown as an entry in a catalog, ready to be consumed by customers.\n</code></pre> <p>What was our flow:</p> <pre><code>* Started with defining service requirements and attributes using GST.\n* Translated these GST attributes into a formal TM Forum service specification.\n* Service Offering in OpenSlice: The service specification is then used to create and offer a specific network service within OpenSlice, available for customer selection and deployment.\n</code></pre>"},{"location":"naas/gst_to_tmf/#probe-further","title":"Probe further","text":"<p>See v9 of the  GST model in GSMA here</p>"},{"location":"naas/introduction/","title":"Network as a Service (NaaS)","text":"<p>This section describes some core concepts for Delivering Network as a Service in OpenSlice. There are many articles and reports on the subject like:</p> <ul> <li>TMF909 API Suite Specification for NaaS</li> <li>TMF926A Connectivity as a Service </li> <li>TMF931-Open Gateway Onboarding and Ordering Component Suite</li> <li>GSMA Open Gatewy initiative</li> </ul> <p>In general Network as a Service (NaaS) is a  service model that allows users to consume network infrastructure and services , similar to how they would consume other cloud services like Software as a Service (SaaS) or Infrastructure as a Service (IaaS). NaaS abstracts the complexity of managing physical network infrastructure, providing users with virtualized network resources that can be dynamically allocated and managed through software.</p>"},{"location":"naas/introduction/#openslice-and-naas","title":"OpenSlice and NaaS","text":"<p>OpenSlice makes extensive use of TMFORUM's models and APIs. Therefore if one is familiar with TMF APIs the terminology and ideas are the same.</p> <p>To deliver NaaS we need to incorporate various APIs (see TMF909 API Suite Specification for NaaS). OpenSlice implements various TMF APIs to deliver NaaS and support the  lifecycle functions required to manage the network capabilities exposed as Network as a Service and managed by operational domains.</p>"},{"location":"naas/introduction/#probe-further","title":"Probe further","text":"<ul> <li>Check the TMFORUM - API assets - Onboarding and Ordering Component Suite (TMF931)</li> <li>For a complete list of supported APIs, see Supported APIs</li> <li>Check the defined user roles of OpenSlice in our Terminology</li> </ul>"},{"location":"naas/lcm_intro/","title":"Lifecycle Management - LCM","text":"<p>Lifecycle Management: The orchestration framework handles the activation, termination and any necessary modifications throughout the service lifecycle.</p>"},{"location":"naas/lcm_intro/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>In OpenSlice the Lifecycle of a service follows in general the concept of Network Slice lifecycle as defined by 3GPP.</p> <p></p>"},{"location":"naas/lcm_intro/#introduction-in-openslice-lcm","title":"Introduction in OpenSlice LCM","text":"<p>OpenSlice adopted the LCM model by 3GPP and mapped to the TMF model service state. Next we discuss briefly the process and the relationships.</p> <p>The lifecycle of a service, particularly in the context of Network Service lifecycle encompasses several stages that ensure the service is effectively planned, deployed, managed, and eventually decommissioned. </p> <p>Here is an overview of these stages and relationships with OpenSlice:</p>"},{"location":"naas/lcm_intro/#0-preparation-phase","title":"0. Preparation Phase","text":"<p>This phase is performed by Service Designers</p>"},{"location":"naas/lcm_intro/#service-design","title":"Service Design:","text":"<ul> <li>Requirements Gathering: Collect service requirements from stakeholders, including performance metrics, quality of service (QoS), security needs, and geographical coverage.</li> <li>Service Specification: Define the service in terms of functionalities, attributes, and dependencies. This can be formalized using standardized templates such as the GSMA Generic Slice Template (GST).</li> <li>Resource Planning: Identify and plan the required resources, including network functions, computing power, storage, and connectivity, inclluding network function configurations.</li> <li>Expose to Service Catalog:  Expose to service catalog for user ordering.</li> </ul> <p>Next phases are handled by the Service Orchestrator after a service is scheduled for instantiation</p> <p>If it is a bundle of services, each services follows its own Lifecycle!</p>"},{"location":"naas/lcm_intro/#1-instantiation-phase","title":"1. Instantiation Phase","text":""},{"location":"naas/lcm_intro/#service-instantiation","title":"Service Instantiation:","text":"<ul> <li>Configuration: Configure the network service according to the specifications including the user requirements from the service order, ensuring that all components are correctly set up to provide the desired service.</li> <li>Resource Allocation - Feasibility check: Allocate the necessary physical and virtual resources based on the service specification. This includes any containerized resources, virtual network functions (VNFs) and software-defined networking (SDN) components. (This step is not performed in OpenSlice)</li> <li>OpenSlice Service Orchestrator creates the services at \"RESERVED\" state</li> <li>User Notification:  There could be an email notification from the system (if Bugzilla is configured)</li> </ul>"},{"location":"naas/lcm_intro/#service-deployment","title":"Service Deployment:","text":"<ul> <li>Activation: OpenSlice Service Orchestrator activates the network service and makes the service available to the end-users. This may involve:</li> <li>Create any related services that the service depends on</li> <li>Contacting all related controllers during provisioning, e.g. Kubernetes controllers, Kubernetes operators, MANO Orchestrators, RAN controllers, SDN Controlles, or other external services (e.g. via REST calls)</li> <li>Scheduling instantiation, Resolving dependencies and passing paramemters between controllers,</li> <li>setting up user accounts, provisioning access credentials -this is performed either offline or via other services.</li> <li>OpenSlice Service Orchestrator if everything is succesful puts the service at \"ACTIVE\" state</li> <li>User Notification:  There could be an email notification from the system (if Bugzilla is configured)</li> </ul>"},{"location":"naas/lcm_intro/#2-operation-phase","title":"2. Operation Phase","text":""},{"location":"naas/lcm_intro/#service-operation","title":"Service Operation:","text":"<ul> <li>Lifecycle Management: Manage the network slice throughout its lifecycle, including scaling, reconfiguration, and adaptation to changing requirements. </li> <li>In OpenSlice this is performed with Lifecycle management Rules (see next)</li> </ul> <p>In this phase the Service Designer can define several aspects.  Be aware that these are NOT performed automatically by OpenSlice - further examples and future enhancements will address these. This could include:</p> <ul> <li>Monitoring: Continuously monitor the service for performance, availability, and compliance with SLAs. Utilize tools for real-time tracking and alerts for any anomalies or performance degradation.</li> <li>Maintenance: Conduct regular maintenance activities, including software updates, patching, and optimization to ensure the service runs smoothly.</li> <li>Scaling: Dynamically scale the resources up or down based on the demand and performance requirements.</li> <li>Fault Management: Detect and resolve faults in the network slice to minimize downtime and maintain service quality.</li> </ul>"},{"location":"naas/lcm_intro/#3-decommissioning-phase","title":"3. Decommissioning Phase","text":"<ul> <li>Service Termination: Service Orchestrator terminates the network service. This may involve:</li> <li>Terminate any related services that the service depends on</li> <li>Contacting all related controllers during termination to release resources, e.g. Kubernetes controllers, Kubernetes operators, MANO Orchestrators, RAN controllers, SDN Controlles, or other external services (e.g. via REST calls)</li> <li>Scheduling termination, Resolving dependencies and passing paramemters between controllers</li> <li>OpenSlice Service Orchestrator, if everything is succesful, puts the service at \"TERMINATED\" state</li> <li>User Notification:  There could be an email notification from the system (if Bugzilla is configured)</li> </ul>"},{"location":"naas/lcm_intro/#high-level-example-enhanced-mobile-broadband-embb-service-lifecycle","title":"High level example: Enhanced Mobile Broadband (eMBB) Service Lifecycle","text":"<ol> <li> <p>Preparation:</p> </li> <li> <p>Define eMBB service requirements for high bandwidth and low latency.</p> </li> <li>Create an eMBB service specification template specifying related services and resources to Kubernetes Operators, VNFs for content delivery and traffic management.</li> <li> <p>Expose to catalog</p> </li> <li> <p>Instantiation:</p> </li> <li> <p>Instantiate other services and allocate resources such as edge computing nodes and high-capacity links.</p> </li> <li> <p>Configure the service to prioritize video streaming traffic.</p> </li> <li> <p>Operation:</p> </li> <li> <p>Monitor the service to ensure it meets high-bandwidth requirements.</p> </li> <li> <p>Scale up resources during peak usage periods, such as live sports events.</p> </li> <li> <p>Decommissioning:</p> </li> <li> <p>Notify users about service termination.</p> </li> <li>Decommission the network service, reclaiming resources for other services.</li> </ol>"},{"location":"naas/lcm_intro/#probe-further","title":"Probe further","text":"<ul> <li>See 3GPP Lifecycle</li> </ul>"},{"location":"naas/lcm_rules_intro/","title":"Lifecycle Management Rules - LCM Rules","text":"<p>Lifecycle Management Rules: Defining complex conditions and actions during the lifecycle of a service and any necessary modifications throughout the service lifecycle.</p>"},{"location":"naas/lcm_rules_intro/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>OpenSlice end-to-end (E2E) service orchestrator follows some predefined workflows to manage a service lifecycle (They are described in BPMN language and included in our orchestration engine)</p> <p>So in the system there are already predefined recipes, which in each process-step of the workflow some piece of code is executed. </p> <p>How is it possible to intervene in the workflow process and inject some user defined actions? The next image illustrates the idea</p> <p></p>"},{"location":"naas/lcm_rules_intro/#how-is-it-possible-to-intervene-in-the-workflow-process-and-affect-it","title":"How is it possible to intervene in the workflow process and affect it?","text":"<p>LCM Rules are used for defining complex conditions and actions during the lifecycle of a service. In Openslice there are the following types of rules defined:</p> <ul> <li>PRE_PROVISION</li> <li>CREATION</li> <li>AFTER_ACTIVATION </li> <li>SUPERVISION </li> <li>AFTER_DEACTIVATION </li> </ul> <p>The following figure displays the different phases that the rules are performed, during the lifecycle of a Network Service Instance. </p> <p></p> <ul> <li>PRE_PROVISION rules: Run only once just before creating a service with a given priority. </li> <li>CREATION rules: Run while the referenced service dependencies of a service are created</li> <li>AFTER_ACTIVATION rules: Run only once just after a service get the ACTIVE state</li> <li>SUPERVISION rules: Run when a characteristic of a service is changed and the service is in the ACTIVE state </li> <li>AFTER_DEACTIVATION rules: Run only once just after a service get the INACTIVE/TERMINATED state </li> </ul> <p>In general the rules allow to perform many actions during service LCM. These are some examples:</p> <ul> <li>Modify service specification parameters before the instantiation of a service (or during operation) based on other dependencies. These parameters might be part of other services already included in Service order</li> <li>Translate GST/NEST parameter values to other values passed later to NFVO for instantiation or control</li> <li>Define complex OSM Configs based on other dependencies and passing variables</li> <li>Define any dependencies when creating the referenced services</li> <li>Dynamically include new service dependencies</li> <li>Create new service orders so include dynamically other services</li> <li>Call external (RESTful) services (via http(s), define payload, examine response)</li> </ul>"},{"location":"naas/lcm_rules_intro/#examine-if-the-rules-are-executed-successfully","title":"Examine if the rules are executed successfully","text":"<p>Rules are transformed automatically to executable code (currently is Java). If a rule is performed successfully  or has any issues (e.g. unexpected syntax errors or exceptions) appear in OSOM logfiles and also tey are attached as Notes to the running Service.</p>"},{"location":"naas/lcm_rules_intro/#probe-further","title":"Probe further","text":"<ul> <li>In the Service Design section we present in details the Lifecycle rules and how one can design them</li> <li>Many of them are used in our provided Service Design examples</li> </ul>"},{"location":"naas/resource_catalog/","title":"OpenSlice Resource Catalog:","text":"<pre><code>* Resource Specifications: Defines the underlying resources required to deliver services, such as network components, servers, and software.\n* Resource Availability: Tracks the availability and status of resources to ensure efficient service delivery.\n</code></pre>"},{"location":"naas/service_catalog/","title":"OpenSlice Service Catalogs","text":"<p>OpenSlice offers complete management of  Service Catalogs.</p>"},{"location":"naas/service_catalog/#intended-audience-service-designers-openslice-administrators-users","title":"Intended Audience: Service Designers, OpenSlice administrators, Users","text":"<p>OpenSlice offers complete management of  Service Catalogs which offer to end users:</p> <ul> <li>Service categories: Lists the available services, including their specifications and performance metrics.</li> <li>Service Bundles: Combines multiple services into a single offering to provide added value to customers.</li> </ul> <p>Service Catalogs contain Service Specifications (organized in Service Categories) exposed to users for Service Orders.</p>"},{"location":"naas/service_catalog/#ui-management","title":"UI management","text":"<p>In the UI this looks like the following. Service catalogs and categories exposed in Service marketplace. </p> <p>In the menu the administrator can manage the Service Catalogs and Categories.</p> <p></p>"},{"location":"naas/service_catalog/#api-exposed","title":"API exposed","text":"<p>When installing OpenSlice the API endpoints can be browsed at: </p> <pre><code>[YOURDOMAIN]/tmf-api/swagger-ui/index.html?urls.primaryName=tmf-api-633-ServiceCatalogManagement-v4.0.0\n\nendpoint examples:\n\n/serviceCatalogManagement/v4/serviceCatalog List or find ServiceCatalog objects\n/serviceCatalogManagement/v4/serviceCategory List or find ServiceCategory objects\n\n</code></pre>"},{"location":"naas/service_catalog/#example-use-case","title":"Example Use Case","text":"<p>Scenario: A service provider wants to offer a new managed XXXX service to enterprise customers.</p> <ul> <li>Service Definition:  Service Template thus create a template for the XXXX service, including specifications for bandwidth, network features, and performance metrics.</li> <li>Service Catalog Integration: Add to Service Catalog the XXXX service  with all relevant details.</li> <li>Service Delivery/Order: Provision Service by Using the orchestration system to provision and configure the XXXX service based on customer orders.</li> </ul>"},{"location":"naas/service_catalog/#probe-further","title":"Probe further","text":"<ul> <li>Read the model of Service Catalogs in TMF TMF633 Service Catalog API User Guide v4.0.0</li> <li>Check a demo of the API here</li> <li>Check a demo of the Catalog and Categories here</li> </ul>"},{"location":"naas/service_inventory/","title":"Service Inventory","text":"<p>Service Inventory contains refences to running services that realize a Service Order</p>"},{"location":"naas/service_inventory/#intended-audience-service-designers-openslice-administrators-users","title":"Intended Audience: Service Designers, OpenSlice administrators, Users","text":"<p>The Service Inventory is a repository that maintains detailed records of all active services and the underlying resources that support them. It acts as a central repository, tracking the lifecycle of each service from provisioning to decommissioning, and includes references to the specific virtual and physical resources that realize the service, such as servers, network components, storage, and software instances. </p> <p>This inventory enables real-time visibility into the status, configuration, and dependencies of each service, facilitating effective management, troubleshooting, and optimization. </p> <p>By providing a view of the active services, the Service Inventory includes services/resource allocation, and ensures that services are delivered in alignment with the inital requst. </p>"},{"location":"naas/service_inventory/#ui-management","title":"UI management","text":"<p>Through the menu and dedicated forms the administrator can manage the Service Inventory and any active Services (reconfigure or terminate).Various examples in this document will guide you to the usage and the management of the Services in Service Inventory.</p>"},{"location":"naas/service_inventory/#api-exposed","title":"API exposed","text":"<p>When installing OpenSlice the API endpoints can be browsed at: </p> <pre><code>[YOURDOMAIN]/tmf-api/swagger-ui/index.html?urls.primaryName=tmf-api-638-ServiceInventoryManagement-v4.0.0\n</code></pre> <p>endpoint examples:</p> <p>/serviceInventory/v4/service List or find Service objects</p>"},{"location":"naas/service_inventory/#probe-further","title":"Probe further","text":"<ul> <li>See Ordering Services from catalogs</li> <li>See Service Design</li> </ul>"},{"location":"naas/service_ordering/","title":"Service Ordering","text":"<p>Customer Facing Service Specifications - or also CFSSpec (organized in Service Categories) are exposed to users for Service Orders.</p>"},{"location":"naas/service_ordering/#intended-audience-service-designers-openslice-administrators","title":"Intended Audience: Service Designers, OpenSlice administrators","text":"<p>The Service Order process is a structured sequence of steps initiated by a customer's Service Order request for a specific service, aimed at delivering and activating the desired service or services (if it is a service bunlde), as well as its related services. It begins with the customer submitting a service request through OpenSlice Services portal or the Service Order API, specifying the necessary details such as service specification, configurations, and any specific requirements.</p> <p>The request is then validated and verified for completeness and eligibility by an administrator which marks the Service Order as ACKNOWLEDGED otherwise it rejects it. </p> <p>Once ACKNOWLEDGED, the service order is processed by OpenSlice orchestration system (OSOM), which schedules/automates the provisioning of the required resources and configurations, coordinating across various components such as MANO controlers for virtual network functions (VNFs), or Containerized controllers  or any 3rd party controllers or services or even physical infrastructure. The OpenSlice orchestration system ensures that all dependencies are managed and that the service is correctly configured.</p> <p>After provisioning, the service is activated and handed over to the customer, . This end-to-end process ensures a seamless, efficient, and automated delivery of services, enhancing customer satisfaction and operational efficiency.</p> <p>Ongoing monitoring and other actions can be performed by the Life Cycle management rules</p> <p>Future developments:  In future releases it might be possible the ongoing monitoring and support provided to ensure continuous performance and reliability. The service could undergoe a series of tests to ensure it meets the specified performance metrics and SLAs before delivering</p>"},{"location":"naas/service_ordering/#ui-management","title":"UI management","text":"<p>Through the menu and dedicated forms the administrator can manage the Service Orders. Various examples in this document will guide you to the usage and the management of the Service Orders.</p>"},{"location":"naas/service_ordering/#api-exposed","title":"API exposed","text":"<p>When installing OpenSlice the API endpoints can be browsed at: </p> <pre><code>[YOURDOMAIN]/tmf-api/swagger-ui/index.html?urls.primaryName=tmf-api-641-ServiceOrdering-v4.0.0\n</code></pre> <p>endpoint examples:</p> <p>/serviceOrdering/v4/serviceOrder List or find ServiceOrder objects</p>"},{"location":"naas/service_ordering/#probe-further","title":"Probe further","text":"<ul> <li>See Ordering Services from catalogs</li> <li>See Service Design</li> </ul>"},{"location":"naas/service_spec/","title":"OpenSlice Service Specification","text":"<p>OpenSlice offers complete management of Service Specifications.</p>"},{"location":"naas/service_spec/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>Service Specification is an entity that describes a service offering. There are two types of Service Specifications:</p> <ul> <li>Resource Facing Service Specification</li> <li>Customer Facing Service Specification</li> </ul>"},{"location":"naas/service_spec/#resource-facing-service-specification","title":"Resource Facing Service Specification","text":"<p>Is a Service that It exposes a resource Specification as a Service. (For example expose a Network Service Descriptor as a Service)</p>"},{"location":"naas/service_spec/#customer-facing-service-specification","title":"Customer Facing Service Specification","text":"<p>Customer Facing Service Specifications - or also CFSSpec (organized in Service Categories) are exposed to users for Service Orders. Usually it exposes other CFSSpec(as a Service Bundle) or other RFSSpecs</p>"},{"location":"naas/service_spec/#definition","title":"Definition","text":"<p>Usually a Service Specification has the following aspects:</p> <ul> <li>Name, Description, Version</li> <li>Marked as a Service Bundle: Combines multiple services into a single offering to provide added value to customers.</li> <li>if is is a Bundle then you must add Related Service Specifications</li> <li>If it is a Resource Facing Service Specification has multiple related Resource Facing Service Specifications</li> <li>Characteristics: a list of service characteristics and their type (TEXT, INTEGER, etc)</li> <li>Also they can be exposed as \"Configurable\" so to allow to end-users during the Service Order to select or type values</li> <li>A logo, displayed if needed in the Service Marketplace</li> <li>Any attachments that further help the user</li> <li>Life Cycle Rules that determine the behavior of the Service and instrument the Service Orchestrator. More on Life Cycle Rules here</li> </ul> <p>Service Designers can create a Service Specification from scratch or use some templates:</p> <pre><code>* Create a Service based from a Network Service Descriptor (NSD)\n* Create a Service based on a Kubernetes Operator\n* Create a Service based on the GSMA GST - Generic Slice Template\n</code></pre>"},{"location":"naas/service_spec/#ui-management","title":"UI management","text":"<p>In the UI this looks like the following.</p> <p>Through the menu and dedicated forms the administrator can manage the Service Specifications. Various examples in this document will guide you to the usage and the design of the services.</p>"},{"location":"naas/service_spec/#api-exposed","title":"API exposed","text":"<p>When installing OpenSlice the API endpoints can be browsed at: </p> <pre><code>[YOURDOMAIN]/tmf-api/swagger-ui/index.html?urls.primaryName=tmf-api-633-ServiceCatalogManagement-v4.0.0\n</code></pre> <p>endpoint examples:</p> <p>/serviceCatalogManagement/v4/serviceSpecification List or find ServiceSpecification objects</p>"},{"location":"naas/service_spec/#example-use-case","title":"Example Use Case","text":"<p>Scenario: A service provider wants to offer a new managed XXXX service to enterprise customers.</p> <ul> <li>Service Definition:  Create a service specification template for the XXXX service, including specifications for bandwidth, network features, and performance metrics.</li> </ul>"},{"location":"naas/service_spec/#probe-further","title":"Probe further","text":"<ul> <li>Read the model of Service Catalogs in TMF TMF633 Service Catalog API User Guide v4.0.0</li> <li>Check a demo of the API here</li> <li>Check a demo of the Service Specifications in Catalog and Categories here (You need to login - see main guide page)</li> <li>Check the GSMA GST</li> </ul>"},{"location":"naas/so_intro/","title":"Service Orchestration","text":"<ul> <li>Service Orchestration: The orchestration engine evaluates the request, determines the necessary resources, and initiates the automated workflows.It interacts with underlying controller components (e.g. 5G Core, Radios, Containerized controllers, NFV, SDN controllers ) to provision and configure the required network functions and connectivity.</li> </ul>"},{"location":"naas/so_intro/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>OpenSlice end-to-end (E2E) service orchestration framework is designed to manage and automate the entire lifecycle of services across multiple domains and technologies. For delivering, Network as a Service (NaaS) OpenSlice automates and manages the entire lifecycle of network services, from provisioning to monitoring and decommissioning, while ensuring seamless integration, operation, and delivery of services from the initial request to the final delivery, spanning all involved components and layers.</p> <p>As next image depicts, service orchestrators follow some predefined workflows. OpenSlice end-to-end (E2E) service orchestrator follows some predefined workflows to manage a service lifecycle (They are described in BPMN language and included in our orchestration engine)</p> <p></p> <p>This section provides a high level overview of the Service Orchestration process.</p>"},{"location":"naas/so_servicespec_to_services_nfv/","title":"From Service Specification to NFV based services","text":"<p>After a Service Order completion, active services with their additional characteristics are found:</p> <ul> <li>From the Order Items of a selected Service order</li> <li>from the menu of Service inventory and then selecting details of each service</li> <li>through the Service Inventory API (TMF 638 - Service Inventory Management ) </li> </ul> <p>Openslice creates a Service for the requested CFS. Customers make Service Orders and Openslice instantiates the requested Service Specifications for each Service Order Item of a Service Order. Running Services instantiated by Openslice, reside in Openslice Service Inventory. The following picture displays how Service Specifications are related to Running Services and how Running Services relate with instantiated running Network Services. </p> <p></p> <p>There is a hierarchy of services. Usually an Instantiated CFS has Supporting Services some Instantiated RFSs. Then an Instantiated RFS is related to some running NS managed by NFVO</p>"},{"location":"naas/so_servicespec_to_services_nfv/#interacting-with-an-active-service-day-2-config","title":"Interacting with an Active Service (Day 2 config)","text":"<p>In some cases, if the underlying service is configured with actions (for example in OSM Day 2 primitive actions), there are characteristics that can be modified.  Usually they are named like : ::Primitive:: <p>The user can edit the characteristic with a new value. The value is propagated through the OSOM and NFVO down to the related VNF.</p>"},{"location":"naas/so_servicespec_to_services_nfv/#terminatinginactivating-a-service","title":"Terminating/Inactivating a service","text":"<p>You can terminate the service with one of the following processes:</p> <ul> <li>Select the related Service Order and terminate the Order Item. This will delete all the underlying related active services. The Order goes to ACKNOWLEDGED-&gt;INPROGRESS-&gt;COMPLETE</li> <li>To terminate or inactivate a service, select the specific service from the inventory, press Edit and set the State either to Inactive or Terminated</li> </ul> <p>Warning: if you terminate or inactivate a service the action cannot be undone. </p>"},{"location":"naas/so_servicespec_to_services_nfv/#uml-sequence-diagram","title":"uml: sequence diagram","text":"<p>Here I will embed PlantUML markup to generate a sequence diagram.</p> <p>I can include as many plantuml segments as I want in my Markdown, and the diagrams can be of any type supported by PlantUML.</p>"},{"location":"naas/nfv/nfvservices/","title":"NFV Services","text":"<p>NFV Services are managed through a dedicate UI the NFV portal (eg http://portal.openslice.io/nfvportal)</p> <p>Users are able through this portal to manage their NFV artifacts towards the NFVO, ( for example onboard VNFs and NSDs to a target OSM)</p> <p>Openslice NFV Services target to accommodate the following envisaged user roles. All users are assumed to be Authenticated:</p> <ul> <li>NFV developer: This role is responsible to upload VNF and NSD Descriptors in the Openslice services towards NFVO like OSM</li> <li>Services administrator: This role represents the user that are responsible for maintenance of the Openslice services</li> </ul> <p>(obsolete: )</p> <ul> <li>Testbed provider: This role represents users that are responsible for testbed administration, configuration, integration, adaptation, support, etc</li> <li>Experimenter: This role represents the user that will utilize our services and tools to deploy an experiment. That is the experiment description in terms of e.g.: NSD (Network Service Descriptor) or TOSCA Specification (in future versions)</li> </ul> <p>Finally an anonymous user role exists who has some really simple usage scenarios (e.g. signup through the portal)</p> <p>During the onboarding process the following occurs:</p> <p>\u2022 A NFV developer submits a NFV archive (VNF or NSD) (he can later manage if needed some metadata) \u2022 The administrator can manage the NFV artifact (e.g. edit it) \u2022 The administrator On-Boards the NFV artifact to the target MANO \u2022 The administrator can optionally mark the NFV: o As public in order to be publicly visible by all portal users o As Certified which means this is certified by a certain entity</p>"},{"location":"naas/nfv/nfvservices/#request-a-new-nsd-deployment-this-is-different-in-comparison-to-services","title":"Request a new NSD deployment (this is different in comparison to Services)","text":"<p>A developer requests a new network service deployment (which NSD, tentative dates, target infrastructure, etc.). The request is marked as UNDER_REVIEW</p> <ul> <li>The administrator is notified about the new request and he has the following options:</li> <li>Schedule the deployment for the requested dates or propose other dates. The request is marked as SCHEDULED</li> <li>Reject the request for some reason. The Request is marked as REJECTED</li> <li>Deploy the request to target VIM(s). The Request is marked as RUNNING</li> <li>Finalize the deployment and release resources. The Request is marked as COMPLETED</li> <li>every change of the request-lifecycle the experimenter is notified.</li> </ul>"},{"location":"service_design/catalogs/","title":"Catalogs and Templates","text":"<p>The Openslice Service Catalogue (accessible through the API or Services portal) contains the representation of Service Specifications, either created from the provider defining service attributes, or by supporting the GSMA Generic Slice Templates (GST) as well as the VINNI Service Blueprint. The following scenarios are supported by the Openslice Service Catalogue.</p>"},{"location":"service_design/catalogs/#createdesign-a-service-specification","title":"Create/Design a Service Specification","text":""},{"location":"service_design/catalogs/#first-import-some-resources-as-resource-facing-services-rfss","title":"First Import some Resources as Resource Facing Services (RFSs)","text":"<p>If you have any NSDs as NFV artifacts, import them through the UI menu (Import from NSD list). Then an NSD is imported as a resource and an RFS automatically is created. RFSs then later are used to design a Customer Facing Service Specification</p>"},{"location":"service_design/catalogs/#createdesign-a-customer-facing-service-specification","title":"Create/Design a Customer Facing Service Specification","text":"<p>Customer Facing Service Specification are the services offered to customers.  You can create a new Service Specification from the menu. The services created through the UI are Customer Facing Services (CFS). Usually you create a CFS as a bundle and then you include Service Specification Relationships with RFSs or/and CFSs.</p> <p>Any Service Specification Characteristics from the RFS are copied to the CFS specification. A CFS can include multiple RFS or/and CFSs. For example you can create a CFS spec called \"A 5G Service\" which is a bundle of two other services (include them in Service Specification Relationships) such as 5G eMBB Slice and a Customer VPN. So when the user orders  \"A 5G Service\"  services from 5G eMBB Slice and a Customer VPN will be created during the order.</p>"},{"location":"service_design/catalogs/#initial-configuration-for-osm-deployment","title":"Initial configuration for OSM deployment","text":"<p>if you have an initial configuration that needs to be applied in the NSD deployment, then you go to the RFS (or CFS) and in Service Specification Characteristics go and edit the OSM_CONFIG characteristic.  You can add in the Service Characteristic Value, in the Value field something like the following example which gives a floating IP to a VNF:</p> <pre><code>{ \"nsdId\": \"e855be91-567b-45cf-9f86-18653e7ea\", \"vimAccountId\": \"4efd8bf4-5292-4634-87b7-7b3d49108\" , \"vnf\": [ {\"member-vnf-index\": \"1\", \"vdu\": [ {\"id\": \"MyCharmedVNF-VM\", \"interface\": [{\"name\": \"eth0\", \"floating-ip-required\": true }]}]}]}\n\n</code></pre> <p>or a more complex example (beautify it first if you want to view it, but in the parameter OSM_CONFIG must be minified like the example):</p> <pre><code>{\"nsdId\":\"e855be91-567b-45cf-9f86-18653e7\",\"vimAccountId\":\"4efd8bf4-5292-4634-87b7-7b3d491\",\"vnf\":[{\"member-vnf-index\":\"1\",\"vdu\":[{\"id\":\"haproxy_vdu\",\"interface\":[{\"name\":\"haproxy_vdu_eth1\",\"floating-ip-required\":true}]}]}],\"vld\":[{\"name\":\"pub_net\",\"vim-network-name\":\"OSMFIVE_selfservice01\"},{\"name\":\"management\",\"vim-network-name\":\"OSMFIVE_selfservice01\"},{\"name\":\"lba_net\",\"vim-network-name\":\"lba_net\",\"vnfd-connection-point-ref\":[{\"member-vnf-index-ref\":\"1\",\"vnfd-connection-point-ref\":\"haproxy_private\",\"ip-address\":\"192.168.28.2\"}]},{\"name\":\"backend_net\",\"vim-network-name\":\"backend_net\",\"vnfd-connection-point-ref\":[{\"member-vnf-index-ref\":\"3\",\"vnfd-connection-point-ref\":\"haproxy_public\",\"ip-address\":\"192.168.20.2\"}]},{\"name\":\"lb_sb_net\",\"vim-network-name\":\"lb_sb_net\",\"vnfd-connection-point-ref\":[{\"member-vnf-index-ref\":\"3\",\"vnfd-connection-point-ref\":\"haproxy_private\",\"ip-address\":\"192.168.28.2\"}]},{\"name\":\"breaking_point_Spain\",\"vim-network-name\":\"sb_repo_net\"},{\"name\":\"breaking_point_Greece\",\"vim-network-name\":\"5TONICexternal\"}],\"additionalParamsForVnf\":[{\"member-vnf-index\":\"2\",\"additionalParams\":{\"target_IP\":\"192.168.20.2\"}},{\"member-vnf-index\":\"4\",\"additionalParams\":{\"target1_IP\":\"192.168.21.2\",\"target2_IP\":\"10.154.252.10\"}}]}\n</code></pre> <p>You can leave the Alias and Unit of Measure as is. Check also the is Default.</p>"},{"location":"service_design/catalogs/#day-2-primitive-actions","title":"Day 2 Primitive Actions","text":"<p>NFVOs like OSM allow to perform actions while a service is running, for example change attributes or make actions on a specific VNF. To design this do something similar to the following example:</p> <ul> <li>Go to the RFS related to the NSD that contains VNFs with primitives</li> <li>create a characteristic named Primitive:: , e.g. Primitive::touch <li>select Value Type: ARRAY</li> <li>add Service Characteristic Value: i) alias=primitive, value= (e.g. touch), ii)  alias=member_vnf_index, value= (e.g. 1), iii) add the params that the user will change in alias the name of param and in value an initial value (e.g. alias=filename, value=myfile.txt) <p>In the above example, when the service is running and the user goes to service inventory to MODIFY it, changes the value of the alias=filename, value=myfile.txt, to value =secondfile.txt. Then inside the VNF a file will be created called secondfile.txt</p>"},{"location":"service_design/catalogs/#generic-slice-templates-gst","title":"Generic Slice Templates (GST)","text":"<p>(Offered only as a design for now. THere is no direct implementation to NFV) On October 16th 2019 GSMA published NG.116  Version 2.0 which defines the Generic Network Slice Template (GST). GST is a set of attributes that can characterise a type of network slice/service. GST is generic and is not tied to any specific network deployment. Here is a list of the various attributes of the template:</p> <ul> <li>Availability</li> <li>Area of Service</li> <li>Delay tolerance</li> <li>Deterministic communication</li> <li>Downlink throughput per network slice</li> <li>Downlink throughput per UE</li> <li>Energy efficiency</li> <li>Group communication support</li> <li>Isolation level</li> <li>Location based message delivery</li> <li>Maximum supported packet size</li> <li>Mission critical support</li> <li>MMTel support</li> <li>NB-IoT support</li> <li>Network Slice Customer network functions</li> <li>Number of connections</li> <li>Number of terminals</li> <li>Performance monitoring</li> <li>Performance prediction</li> <li>Positioning support</li> <li>Radio spectrum</li> <li>Reliability</li> <li>Root cause investigation</li> <li>Session and Service Continuity support </li> <li>Simultaneous use of the network slice</li> <li>Slice quality of service parameters</li> <li>Support for non-IP traffic </li> <li>Supported access technologies </li> <li>Supported device velocity </li> <li>Synchronicity</li> <li>Terminal density </li> <li>Uplink throughput per network slice </li> <li>Uplink throughput per UE</li> <li>User management openness</li> <li>User data access </li> <li>V2X communication mode</li> </ul> <p>Openslice offers the GST in a format that is machine readable and aligned with the TMF SID model. Here is a tentative approach in JSON : https://github.com/openslice/org.etsi.osl.tmf.api/blob/master/src/main/resources/gst.json</p> <p>Providers can clone a GST as e NEST directly in Openslice Web portal and the adjust the default attributes to their Service Specification</p>"},{"location":"service_design/catalogs/#manage-a-service-specification","title":"Manage a Service Specification","text":"<p>You can manage them though the Web UI</p>"},{"location":"service_design/catalogs/#assign-a-service-specification-to-service-categories-and-publish","title":"Assign a Service Specification to Service Categories and Publish","text":"<p>Just create categories and from the menu select the category and add services</p>"},{"location":"service_design/catalogs/#retireremove-a-service-specification","title":"Retire/Remove a Service Specification","text":"<p>Delete it from the category</p>"},{"location":"service_design/catalogs/#consume-and-expose-service-specifications-from-other-service-catalogues","title":"Consume and expose Service Specifications from other Service Catalogues","text":"<p>See more on Consuming Services From External Partner Organizations</p>"},{"location":"service_design/intro/","title":"Service Design in OpenSlice","text":"<p>This section offers details on how to design Service Specifications and expose them in Service Catalogs</p>"},{"location":"service_design/intro/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>Service Designers create detailed service specifications, which are then managed and exposed in service catalogs. These services are integrated into OpenSlice E2E service orchestration framework to automate and optimize the delivery of network services.</p> <p>OpenSlice can be used to design service specifications for various services, even not networking related services. Here we cover how service designers can expose services related to the NFV world and the containerized world.</p>"},{"location":"service_design/intro/#probe-further","title":"Probe further","text":"<ul> <li>Design and expose services based on containerized resources via the Kubernetes Operator pattern</li> <li>Design and expose services based on NFV artifacts</li> </ul>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/","title":"Exposing Kubernetes Operators as a Service : Offering \"Calculator as a Service\" through OpenSlice","text":""},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>To illustrate the powerful concept of Kubernetes operators and how they can be utilized to offer a service through OpenSlice, let's provide an example of a \"Calculator as a Service.\" </p> <p>This example will demonstrate the flexibility and capabilities of Kubernetes operators in managing custom resources and automating operational tasks.</p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#offering-calculator-as-a-service-through-openslice","title":"Offering \"Calculator as a Service\" through OpenSlice","text":"<ul> <li>We have a service that can accept two integers and an action (SUM, SUB, etc) and returns a result</li> <li>We would like to offer it as a Service through OpenSlice</li> <li>So when a user orders it with some initial parameters, OpenSlice will create it and return the result</li> <li>Also while the service is active, we can do further calculations, until we destroy it.</li> </ul> <p>Assume the following simple CRD of a calculator model accepting two params (spec section) and an action and returning a result (status section)</p> <p>The controller (the calculator code) is implemented in any language and is installed in a Kubernetes cluster</p> <pre><code>\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  name: mycalculators.examples.osl.etsi.org\nspec:\n  group: examples.osl.etsi.org\n  names:\n    kind: MyCalculator\n    plural: mycalculators\n    singular: mycalculator\n  scope: Namespaced\n  versions:\n  - name: v1alpha1\n    schema:\n      openAPIV3Schema:\n        properties:\n          spec:\n            properties:\n              parama:\n                type: integer\n              paramb:\n                type: integer\n              action:\n                type: string\n            type: object\n          status:\n            properties:\n              result:\n                type: integer\n              status:\n                type: string\n            type: object\n        type: object\n    served: true\n    storage: true\n    subresources:\n      status: {}\n</code></pre> <p>Request to the cluster (through e.g. kubectl apply)</p> <pre><code>apiVersion: examples.osl.etsi.org/v1alpha1\nkind: MyCalculator\nmetadata:\n  name: mycalculator.examples.osl.etsi.org\nspec:\n  parama: 170\n  paramb: 180\n  action: 'SUM'\n\n</code></pre> <p>Response</p> <pre><code>apiVersion: examples.osl.etsi.org/v1alpha1\nkind: MyCalculator\nmetadata:\n\u00a0 creationTimestamp: '2023-12-05T12:26:07Z\u2019\n\n&lt;snip&gt;\n\nstatus:\n\u00a0 result: 350\n\u00a0 status: CALCULATED\nspec:\n\u00a0 action: SUM\n\u00a0 parama: 170\n\u00a0 paramb: 180\n\n</code></pre> <p>To perform this through OpenSlice as a Service Specification ready to be ordered we need to do the following:</p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#crd-is-saved-automatically-as-resource-specification","title":"CRD is saved automatically as Resource Specification","text":"<p>As soon as the CRD is deployed in the cluster (e.g. by your admin via kubctl or via any installation through the internet) it is automatically transformed and is available in OpenSlice catalogs as a Resource Specification.</p> <ul> <li>See also the fully qualified name of the resource specification. <ul> <li>MyCalculator@examples.osl.etsi.org/v1alpha1@docker-desktop@https://kubernetes.docker.internal:6443/</li> <li>The resource specification name is quite unique, so you can install the CRD in many clusters around the internet. Each CRD on each cluster will appear here, for example:<ul> <li>MyCalculator@examples.osl.etsi.org/v1alpha1@default_cluster@https://10.10.10.8:6443/</li> <li>MyCalculator@examples.osl.etsi.org/v1alpha1@edge1_cluster@https://172.16.10.10:6443/</li> </ul> </li> <li>Having this OpenSlice can manage resources in multiple clusters</li> </ul> </li> </ul> <p></p> <p>See also the detailed characteristics. See how OpenSlice makes all characteristics automatically flat and expanded with key-value style</p> <p></p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#expose-to-users","title":"Expose to Users","text":""},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#start-by-creating-a-resourcefacingservicespecification","title":"Start by Creating a ResourceFacingServiceSpecification","text":"<p>From the UI menu create a new Service Specification</p> <p></p> <p></p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#creation-of-crd-related-characteristics","title":"Creation of CRD-related characteristics","text":"<ul> <li>We need now to adjust some characteristics of this CRD as Resource Specification.</li> <li>OpenSlice transalted automatically the CRD spec in a flat list of characteristics.So the \"spec\" section from the original yaml for example, is now unfold into: spec, spec.parama, spec.paramb, etc. the same for \"status\" object</li> <li> <p>We need to make OpenSlice aware of when the service will be active. </p> <ul> <li>So we go to characteristic _CR_CHECK_FIELD and we define that the field that shows the status of the service is the characteristic \"status.status\" (is a text field) </li> <li>Then we go to _CR_CHECKVAL_AVAILABLE and we define the value CALCULATED, which signals the following: When the characteristic \"status.status\" has the value \"CALCULATED\" then OpenSlice will mark the underlying service as \"ACTIVE\"</li> <li>We need also to define the yaml file that OpenSLice will use to create the new resource in the kubernetes cluster</li> <li>We insert the YAML in the characteristic _CR_SPEC</li> </ul> <p>the _CR_SPEC is: </p> </li> </ul> <pre><code>apiVersion: examples.osl.etsi.org/v1alpha1\nkind: MyCalculator\nmetadata:\n  name: mycalculator.examples.osl.etsi.org\nspec:\n  parama: 170\n  paramb: 180\n  action: 'SUM'\n\n</code></pre> <p></p> <p>However the values are fixed. How do we allow a user to pass parameters through OpenSlice</p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#expose-in-catalog","title":"Expose in Catalog","text":"<p>Create a new CustomerFacingServiceSpecification</p> <pre><code>- Go to the menu Service Specification&gt;New Service Specification\n- Create a service My Calulator and mark it as a Bundle\n- Go to Service Specification Relationships and add MyCalculatorRFS\n- The service will be automatically transformed to a \"CustomerFacingServiceSpecification\"\n- Add the following characteristics as the image shows:\n</code></pre> <p></p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#allow-users-to-pass-new-values-through-openslice","title":"Allow users to pass new values through OpenSlice","text":"<p>We need to Create LCM rules in CustomerFacingServiceSpecification:</p> <pre><code>- The goal of the rules is to allow the user to pass parameters to the actual resource towards the cluster.\n- we will create one rule that will pass the parameters just before creating the service (PRE_PROVISION phase)\n- we will create one rule that will pass the parameters while the service is active (SUPERVISION phase)\n- The rules will be the same\n</code></pre> <p></p> <p>If we see one rule it will look like the following:</p> <p></p> <ul> <li>We need to change the _CR_SPEC characteristic of the referenced ResourceFacingServiceSpecification</li> <li>First bring a block from Service&gt;Relationships&gt;Service Refs and drop the \"Service MyCalculatorRFS\" block</li> <li>Then add a list block from Lists</li> <li>Then add the block that modifies a referenced characteristic from Service&gt;Relationships&gt;Service Refs the block \"Set value to characteristic of a Referenced Service\"</li> <li>Add a block for text _CR_SPEC </li> <li>We use a block that changes a String according to variables Text&gt;\"A formatted text replacing variables from List\"</li> <li>See that we have as Input string the YAML string lines<ul> <li>see that parama, paramb has a %d (they accept integers), action is %s (accepts a string)</li> <li>See that the variables tha will replace the %d, %d and %s are an list<ul> <li>the first %d will be replaced with the value from characteristic spec.parama</li> <li>the second %d will be replaced with the value from characteristic spec.paramb</li> <li>the %s will be replaced with the value from characteristic spec.action</li> </ul> </li> </ul> </li> </ul> <p>If we see the SUPERVISION rule it will look like the following:</p> <ul> <li>It contains also the Result field, which takes the value from the referenced service</li> <li>Add a block for the Result field from Service&gt;Number blocks</li> <li>Add a  str to int block from Number blocks</li> <li>Add Service&gt;Relationships&gt;Service Refs and drop the input block [Service MyCalculatorRFS] \"Get Service details from current context running service\" and select from the drop down the \"serviceCharacteristicValue\"</li> <li>Add as name the \"status.result\" </li> </ul> <p></p> <p></p> <p>Expose it then to a catalogue for orders through the Service Categories and Service Catalogs</p> <p></p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#order-the-service","title":"Order the Service","text":"<p>When a user orders the service, it will look like this:</p> <p></p> <ul> <li>After the Service Order we have 2 services in service inventory on CFS and on RFS. Both have references to values</li> <li>OpenSlice (via CRIDGE service) updates the Resource in Resource Inventory and OSOM updates the Services in Service Inventory</li> <li>The Actual resources are running in the Kubernetes cluster managed by OpenSlice</li> <li>The result is in the characteristic status.result of the running service</li> </ul> <p></p> <p></p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#modify-the-running-service","title":"Modify the running service","text":"<p>The user can modify the service</p> <p></p> <ul> <li>After a while the update is applied to the cluster, the controller will pick up the resource update and patch the resource</li> <li>OpenSlice (via CRIDGE service) updates the Resource in Resource Inventory and OSOM updates the Services in Service Inventory</li> <li>The result will be available to the respective characteristic \"Result\" after a few seconds, as need to go through various steps (OpenSlice orchestrator, down to kubernetes, to Calculator controller and back)</li> </ul> <p></p>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/","title":"Expose and manage Kubernetes Custom Resource Definitions (Operators) in a Kubernetes Cluster","text":"<p>OpenSlice is capable of exposing Kubernetes Resources and Definitions as Service Specifications</p>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>Kubernetes is an orchestration system for automating software deployment, scaling, and management. One can interact though the Kubernetes API and it has a set of objects ready for use out of the box. Custom Resource Definitions (CRDs) is a way that allows to manage things other than Kubernetes itself and allows to create our own objects The use of CRDs makes the possibilities of Kubernetes management almost limitless. You can extend the base Kubernetes API with any object you like using CRDs.</p> <p>By allowing the design and lifecycle management of services/resources that expose CRDs/CRs in a Kubernetes cluster via the TMF APIs, OSL can be used in many complex scenarios now involing resources from multiple domains.</p> <ol> <li> <p>OpenSlice is capable to:</p> <ul> <li>Create and manage Custom Resources (CRs) using installed CRDs on a target Kubernetes cluster.</li> <li>Facilitate complex orchestration scenarios by wrapping Kubernetes APIs as TMF APIs and models.</li> <li>Handles connectivity to a Kubernetes cluster and manages the lifecycle of CRDs</li> <li>Wraps the Kubernetes API, Receives and provides resources towards other OpenSlice services via the service bus</li> </ul> </li> <li> <p>Enabling Loose Coupling and Orchestration</p> <ul> <li>Language Flexibility: Developers can write CRDs in any language and expose them via the Kubernetes APIs. OSL will reuse these CRDs, enhancing flexibility and integration capabilities.</li> <li>Familiar Deployment: Developers can create and deploy applications using familiar tools such as Helm charts, simplifying the process and reducing the learning curve.</li> </ul> </li> <li> <p>Ecosystem Reusability</p> <ul> <li>OpenSlice capitalizes on the extensive Kubernetes ecosystem, particularly focusing on operators (CRDs).</li> <li>Key repositories and hubs such as artifacthub.io and Operatorhub.io can be utilized for finding and deploying operators.</li> </ul> </li> <li> <p>Service Catalog Exposure and Deployment</p> <ul> <li>OpenSlice can expose CRs in service catalogs, facilitating their deployment in complex scenarios.</li> <li>These scenarios may include service bundles that involve multiple systems, such as RAN controllers or other Kubernetes clusters, providing a robust and versatile deployment framework.</li> </ul> </li> </ol>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#approach","title":"Approach","text":"<p>OpenSlice in general is responible for exposing service specifications  which are ready to be ordered and orchestrated, through tmforum Open APIs as defined in the OSL Service Spec Catalog. Usually for a service specification a corresponding (one or more) resource specification (resourceSpecificationReference) is registered in the OSL Resource Spec Catalog.</p> <p>The following image illustrates the approach.</p> <p></p> <ol> <li>A CRD in a cluster will be mapped in TMF model as a Resource specification and therefore can be exposed as a service specification in a catalog</li> <li>Service Orders can be created for this service specification. </li> <li>OSOM creates a Resource in OSL Resource inventory and requests new Custom Resource (CR) in the target cluster<ul> <li>The resource is created in a specific namespace (for example the UUID of the Service Order)</li> <li>A CR in a cluster will be mapped in TMF model as a Resource in the resource Inventory</li> <li>Other related resources created by the CRD Controller within the namespace are automatically created in OSL Resource Inventory under the same Service Order</li> </ul> </li> </ol>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#awareness-for-crds-and-crs-in-cluster","title":"Awareness for CRDs and CRs in cluster","text":"<p>CRDs and CRs can appear (disappear) or change status at any time in a cluster. OpenSlice Resource Inventory need to be aware of these events.</p> <p>When installing OpenSlice you can configure at least one management cluster. OpenSlice connects via a provided kubeconf</p> <ul> <li>On Start up OSL  tries to register this cluster and context to OSL catalogs.</li> <li>After the registration of this cluster as a Resource in OSL OSL is always aware of all CRDs and their CRs in the cluster, even if a CRD or CR is added/updated/deleted in the K8S cluster outside of OSL</li> <li>Resources created by OpenSlice have labels, e.g. (org.etsi.osl.*)</li> </ul>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#expose-crds-as-service-specifications-in-openslice-catalogs","title":"Expose CRDs as Service Specifications in OpenSlice catalogs","text":"<p>A CRD by default is exposed as a Resource Specification</p> <p>To ensure unique names across the clusters that OpenSlice can manage, the name of a CRD is constructed as follows:</p> <p><code>Kind @ ApiGroup/version @ ContextCluster @ masterURL</code></p> <p>For example you might see resource Specifications like:</p> <pre><code>- ```Application@argoproj.io/v1alpha1@kubernetes@https://10.10.10.144:6443/```\n- ```IPAddressPool@metallb.io/v1beta1@kubernetes@https://10.10.10.144:6443/```\n- ```Provider@pkg.crossplane.io/v1@kubernetes@https://10.10.10.144:6443/```\n</code></pre> <p>All attributes of the CRD are translated into characteristics</p> <p>The following specific characteristics are added:</p> <pre><code>    - _CR_SPEC: Used for providing the json Custom Resource description to apply\n    - _CR_CHECK_FIELD: Used for providing the field that need to be checked for the resource status\n    - _CR_CHECKVAL_STANDBY: Used for providing the equivalent value from resource to signal the standby status\n    - _CR_CHECKVAL_ALARM: Used for providing the equivalent value from resource to signal the alarm status\n    - _CR_CHECKVAL_AVAILABLE: Used for providing the equivalent value from resource to signal the available status\n    - _CR_CHECKVAL_RESERVED: Used for providing the equivalent value from resource to signal the reserved status\n    - _CR_CHECKVAL_UNKNOWN: Used for providing the equivalent value from resource to signal the unknown status\n    - _CR_CHECKVAL_SUSPENDED: Used for providing the equivalent value from resource to signal the suspended status\n</code></pre> <ol> <li> <p>Create a new Service Specification and use this Resource Specification in Resource Specification Relationships</p> <ul> <li>Then the Service Specification is saved as ResourceFacingServiceSpecification</li> </ul> <p>1.1. You can give at this stage values to the characteristics:</p> <pre><code>- _CR_SPEC, \n- _CR_CHECK_FIELD\n- _CR_CHECKVAL_STANDBY\n- _CR_CHECKVAL_ALARM\n- _CR_CHECKVAL_AVAILABLE\n- _CR_CHECKVAL_RESERVED\n- _CR_CHECKVAL_UNKNOWN\n- _CR_CHECKVAL_SUSPENDED\n</code></pre> <p>1.2. You can now create LCM rules if you wish</p> </li> <li> <p>Create a new Service Specification and use the Resource Facing Service Specification in Service Specification Relationships</p> <ul> <li>Then the Service Specification is saved as CustomerFacingServiceSpecification</li> </ul> <p>2.1. You can give at this stage values to the characteristics: </p> <pre><code>- _CR_SPEC, \n- _CR_CHECK_FIELD\n- _CR_CHECKVAL_STANDBY\n- _CR_CHECKVAL_ALARM\n- _CR_CHECKVAL_AVAILABLE\n- _CR_CHECKVAL_RESERVED\n- _CR_CHECKVAL_UNKNOWN\n- _CR_CHECKVAL_SUSPENDED\n</code></pre> <p>2.2. You We can create LCM rules for this new Service Specification</p> <p>2.3. You Expose configurable values for users to configure during service order</p> </li> </ol> <p></p>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#service-orchestration-and-crdscrs","title":"Service Orchestration and CRDs/CRs","text":"<p>OSOM - OpenSlice Service Orchestrator, checks the presence of attribute _CR_SPEC at the RFS to make a request for a CR deployment</p> <ul> <li>_CR_SPEC is a JSON or YAML string that is used for the request<ul> <li>It is similar to what one will do with e.g. a kubectl apply</li> <li>There are tools to translate a yaml file to a json</li> </ul> </li> </ul> <p>LCM rules can be used to change attributes of this yaml/json file, before sending this for orchestration</p>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#mapping-the-cr-lifecycle-that-is-defined-in-the-crd-with-the-openslice-tmf-based-resource-lifecycle","title":"Mapping the CR lifecycle that is defined in the CRD with the OpenSLice (TMF-based) resource Lifecycle","text":"<p>OpenSlice adds automatically as we see the following characteristics: </p> <pre><code>    - _CR_CHECK_FIELD\n    - _CR_CHECKVAL_STANDBY\n    - _CR_CHECKVAL_ALARM\n    - _CR_CHECKVAL_AVAILABLE\n    - _CR_CHECKVAL_RESERVED\n    - _CR_CHECKVAL_UNKNOWN\n    - _CR_CHECKVAL_SUSPENDED\n</code></pre> <p>These characteristics instrument OpenSlice services to manage and reflect the lifecycle of a kubernetes resource to OpenSlice's (TMF based) lifecycle</p> <ul> <li>_CR_CHECK_FIELD: The name of the field that is needed to be monitored in order to monitor the status of the service and translate it to TMF resource statys (RESERVED AVAILABLE, etc) </li> <li>_CR_CHECKVAL_STANDBY: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state STANDBY (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>_CR_CHECKVAL_ALARM: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state ALARMS (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>_CR_CHECKVAL_AVAILABLE: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state AVAILABLE (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>_CR_CHECKVAL_RESERVED: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state RESERVED (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>_CR_CHECKVAL_UNKNOWN: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state UNKNOWN (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>_CR_CHECKVAL_SUSPENDED: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state SUSPENDED (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> </ul>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#probe-further","title":"Probe further","text":"<ul> <li>See examples of exposing operators via OpenSlice:<ul> <li>Exposing Kubernetes Operators as a Service : Offering \"Calculator as a Service\" through OpenSlice</li> </ul> </li> <li>Learn more about CRIDGE, the service in OSL that manages CRDs/CRs</li> </ul>"},{"location":"service_design/kubernetes/intro/","title":"OpenSlice and support for kubernetes","text":"<p>This section contains information on how Service Designers can expose Kubernetes resources as services</p>"},{"location":"service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/","title":"Example: Offer Jenkins as a Service via Openslice","text":""},{"location":"service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/#design-the-jenkins-resource-facing-service","title":"Design the Jenkins (Resource-Facing) Service","text":"<p>Before reading this example please make sure that you went through the Design Helm as a Service </p> <p>In this example, we will use the <code>Kind: Application</code> of ArgoCD and create a ResourceFacingServiceSpecification (RFSS) for Jenkins. Eventually, we will offer Jenkins as a Service.</p> <pre><code>1. Go to Service Specifications\n2. Create New Specification\n3. Provide a Name, eg. jenkinsrfs\n4. Go to Resource Specification Relationships\n5. Assign **Application@argoproj.io/v1alpha1@kubernetes@https://10.10.10.144:6443/** as a related Resource Specification\n</code></pre> <p>Please note that the https://10.10.10.144:6443/ part of the Resource Specification's name will vary in different Kubernetes environments. </p> <p></p> <p>Now, we shall focus on the Characteristics' configuration of the created Service Specification. This can be achieved from the the \"Service Specification Characteristics\" tab.</p> <p>Specifically, we need to map the lifecycle of ArgoCD Application (e.g. Progressing, Healthy, etc.) to TMF Resource State (e.g. reserved, active, etc.).</p> <p>In ArgoCD, the field status.health.status has the value that we need to check (Healty, Progressing, etc) for the lifecycle of the application. This is captured by the _CR_CHECK_FIELD characteristic.</p> <p>Also, the different ArgoCD lifycycle states must be captured by the respective _CR_CHECKVAL_xxx characteristics, as show in the figure below:</p> <p></p> <p>After the state mapping, we must provide the template that ArgoCD will use to deploy the Jenkins HELM Chart as an ArgoCD application. For this, we must populate the _CR_SPEC characteristic. The _CR_SPEC can be designed first in a YAML or json editor for better parsing. </p> <p>Let's see a YAML definition:</p> <pre><code>apiVersion: argoproj.io/v1alpha1\nkind: Application\nmetadata:\n  finalizers:\n  - resources-finalizer.argocd.argoproj.io\n  name: openslice-jenkins\n  namespace: argocd\nspec:\n  project: default\n  destination:\n    namespace: opencrdtest\n    name: in-cluster\n  source:\n    repoURL: https://charts.jenkins.io\n    targetRevision: 5.3.6\n    chart: jenkins\n    helm:\n      values: |\n        controller:\n         serviceType: ClusterIP\n        persistence:\n         enabled: false\n  syncPolicy:\n    automated:\n      prune: true\n      selfHeal: true\n      allowEmpty: false\n    syncOptions:\n    - Validate=false\n    - CreateNamespace=true\n    - PrunePropagationPolicy=foreground\n    - PruneLast=true\n    - RespectIgnoreDifferences=true\n</code></pre> <p>NOTE 1: The above template assumes that the Jenkins Server will acquire a ClusterIP. The user should handle the external exposure and access of the Jenkins Server, depending on its cluster configuration. Also, persistency of the data is disabled to facilitate the deployment without the need to define storage classes and volumes, as this serves as an example. </p> <pre><code>helm:\n  values: |\n    controller:\n      serviceType: ClusterIP\n    persistence:\n      enabled: false\n</code></pre> <p>NOTE 2: On each installation, OSOM will change the name of the resource in order to be unique (will have a UUID), instead of \"openslice-jenkins\".</p> <pre><code>name: openslice-jenkins\n</code></pre> <p>NOTE 3: The namespace that ArgoCD will use to deploy the Jenkins HELM Chart is the \"opencrdtest\".</p> <pre><code>destination:\n  namespace: opencrdtest\n</code></pre> <p>The latter implies that ArgoCD will always install Jenkins in the same namespace.</p> <p>To avoid this we will create a simple LCM rule (pre-provision) to change the namespace accordingly with a unique ID, generated with every new Service Order.</p> <p>The LCM rule can be created from the \"Life Cycle Rules\" tab, pressing the \"Create new rule\" button. The following image contains the LCM rule that needs to be created for this purpose:</p> <p></p> <p>Let's create it step-by-step:</p> <ol> <li>Drag-Drop the _CR_SPEC block (Set characteristic value) of jenkinsrfs from the Service &gt; Text blocks</li> <li>Drag-Drop the Text &gt; Formatted text block and attach it after the block from the previous step</li> <li>Drag-Drop the Text &gt; Multi-line text input block and attach it at the Input(String) connector of the block from the previous text </li> <li>Copy paste the previously provided YAML text</li> <li>Change the spec:destination:namespace property to the value %s</li> <li>Drag-Drop the Lists &gt; Create list block, delete the 2 extra items (click the gear icon). Attach it at the Variables(Array) connector of the formatted text block from the previous step.</li> <li>Drag-Drop the Service &gt; Context &gt; Current Service Order block and select the ID from the drop-down menu. Attach it to the List block of the previous step.</li> <li>Save the PRE_PROVISION Rule</li> </ol>"},{"location":"service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/#expose-the-jenkins-customer-facing-service-to-the-users","title":"Expose the Jenkins (Customer-Facing) Service to the users","text":"<p>To expose a service towards the users, the designer must create the respective CustomerFacingServiceSpecification, by using the previously designed RFSS as a related service.</p> <ol> <li>Go to Service Specifications</li> <li>Create New Specification</li> <li>Create a Jenkins service, mark as Bundle (to enable Service Specification Relationships) and save it </li> <li>Go to the \"Service Specification Relationships\" tab and assign Jenkinsrfs</li> <li>(Optionally) Add a logo, from the respective \"Logo\" tab, if you wish</li> </ol> <p></p> <p></p> <p>Next, the designer must expose it through an already created Service Catalog and Service Category so as to make it visible to the users, thus available for ordering.</p> <p></p>"},{"location":"service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/#order-the-jenkins-service","title":"Order the Jenkins Service","text":"<p>Order the service from the previously assigned Service Catalog &gt; Service Category. </p> <p>As soon as the Service Order is in ACKNOWLEDGED state (may require user intervention as the initial Service Order state is \"INITIAL\"), it will be processed and eventually completed rendering the services active, as seen in the figure below:</p> <p></p>"},{"location":"service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/#access-the-jenkins-installation","title":"Access the Jenkins installation","text":"<p>Starting from the Service Order overview and specifically the Order Item #1 tab &gt; Supporting Services, select the ResourceFacingService (jenkinsrfs).</p> <p>Accordingly, the ResourceFacingService has supporting resources from the resource inventory. The latter are available through the \"Supporting Resources\" tab.</p> <p></p> <p>The supporting resources of the Jenkins service are:</p> <ul> <li>A resource reference to the application (e.g. cr_tmpname...)</li> <li>A secret resource (e.g. cr87893...). </li> </ul> <p>Select the secret resource, which will navigate you to the Resource Inventory page of OpenSlice. There, you may find the login credentials encoded as Base64. </p> <p></p> <p>Use a Base64 decoder to parse the credentials and use them to login in your Jenkins installation, through the exposed Jenkis Server UI.</p> <p>Exposing Jenkins externally is a matter of cluster configuration and request (nodeport, load balancing, etc), thus is not a topic for this example</p>"},{"location":"service_design/kubernetes/helm/design_helmaas/","title":"Expose HELM charts as Service Specifications","text":"<p>Manage Helm charts installations via OpenSlice Service Specifications and Service Orders.</p>"},{"location":"service_design/kubernetes/helm/design_helmaas/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>Kubernetes is an orchestration system for automating software deployment, scaling, and management. One can interact though the Kubernetes API and it has a set of objects ready for use out of the box. </p> <p>Helm is a tool that automates the creation, packaging, configuration, and deployment of Kubernetes applications by combining your configuration files into a single reusable package</p> <p>At the heart of Helm is the packaging format called charts. Each chart comprises one or more Kubernetes manifests -- and a given chart can have child charts and dependent charts, as well. Using Helm charts:</p> <pre><code>  - Reduces the complexity of deploying Microservices\n  - Enhances deployment speed\n  - Developers already know the technology\n</code></pre> <p>There are many Helm charts and Helm repositories there that are ready to be used</p> <p>Enable loose coupling and more orchestration scenarios</p> <p>Developers create and deploy applications in things they already know (e.g. Helm charts)</p> <p>Use the TMF models as wrapper entities around Helm charts</p> <p>Use OpenSlice to expose them in service catalogs and deploy them in complex scenarios (service bundles) involving also other systems:</p> <pre><code>- Include e.g. RAN controllers, \n- Pass values through life cycle rules from one service to another, \n- Manage multiple Helms in multiple clusters\n</code></pre>"},{"location":"service_design/kubernetes/helm/design_helmaas/#the-installation-of-helm-charts-is-based-on-openslice-crd-support","title":"The installation of HELM charts is based on OpenSlice CRD support","text":"<p>Please read more here</p> <p>For installing HELM charts we will use ArgoCD a well known Kubernetes-native continuous deployment (CD) tool </p> <p>ArgoCD is a Kubernetes-native continuous deployment (CD) tool</p> <p>While just deploying Heml charts is just a scenario for ArgoCD , in future one can exploit it for many things</p> <p>Despite some other tools like FluxCD, it provides also a UI which is useful for management and troubleshooting</p> <p>We will mainly use the CRD of <code>Kind: Application</code> that ArgoCD can manage</p> <p>Before proceeding, install ArgoCD in your management cluster, by following ArgoCD instructions</p> <p>As soon as you install ArgoCD, OpenSlice is automatically aware for specific new Kinds. The one we will use is is the <code>Kind: Application</code> that ArgoCD can manage under the apiGroup argoproj.io</p> <p>Browse to Resource Specifications. You will see an entry like the following:</p> <p><code>Application@argoproj.io/v1alpha1@kubernetes@https://10.10.10.144:6443/</code></p> <p>see image: </p> <p></p>"},{"location":"service_design/kubernetes/helm/design_helmaas/#whats-next","title":"What's next","text":"<p>See the Example: Offer Jenkins as a Service via Openslice </p>"},{"location":"service_design/lcmrules/examples/","title":"Examples of Rules","text":"<p>The following images provide some examples of rules.</p>"},{"location":"service_design/lcmrules/examples/#define-variables-according-to-cases","title":"Define variables according to cases","text":"<p>In the following example we :</p> <ul> <li>define a String variable. </li> <li>Then according to the Area of Service selected from the Service Order of the Service Specification we need to define it properly.</li> <li>We output the value to the OSOM Log</li> <li>Define dynamically the value of another parameter (This is fictional) and then do some other condition check</li> </ul> <p>The strAreaCodes could be passed then e.g. to NFVO for instantiation of services to these cells.</p> <p></p>"},{"location":"service_design/lcmrules/examples/#define-rules-to-create-a-resource-for-a-kubernetes-operator","title":"Define Rules to create a resource for a Kubernetes Operator","text":"<ul> <li>Modify the _CR_SPEC characteristic</li> <li>Add an \"Input with variables block\"</li> <li>Add a multiline Text block</li> <li>Mark with %s, %d, etc the parameters to modify with some action</li> <li>Add a list with the variables and their values</li> </ul> <p>in the example we modify a YAML spec with parama, paramb, action values from the characteristics spec.parama, spec.paramb, spec.action</p> <p></p>"},{"location":"service_design/lcmrules/examples/#define-complex-osm-configs-for-day-0","title":"Define complex OSM configs for DAY 0","text":"<p>The following displays some complex examples for defining the parameters to pass to the NFV. In this case is OSM.</p> <ul> <li> <p>NOTE: The OSM_CONFIG characteristic of a service is the one that it is used in orchestration to instantiate NS from OSM</p> </li> <li> <p>check the variable strTargetsParam. It is passed to the variable strOsmConfig3 which is executed if the Number of Cameras is more than 100. </p> </li> <li>if the Video quality requested is 3, then the Maximum Namber of camers will be 8. Check the OSM detailed configuration block and its syntax.</li> <li>if the Video quality requested is 2, we use a simpler OSM Config block to configure the parameter OSM_CONFIG. We just injected a json text ( watch the Escape of the string for the Quotes!)</li> <li>if the Video quality requested is 1, again we use a simpler OSM Config block to configure the parameter OSM_CONFIG. We use as injected json text a variable constructed later</li> </ul> <p></p>"},{"location":"service_design/lcmrules/examples/#define-and-instantiate-different-services-according-to-service-order-request","title":"Define and instantiate different services according to Service Order request","text":"<p>In the following example we would like to offer a service either as Platinum, Gold or Silver. Depending on the selection we need to instantiate different services.</p> <p>There are different ways to accomplish this:</p> <ul> <li>create dynamically New Service Orders of RFSs with equivalent quality of Services</li> <li>change for example the VIMs that you deploy the NS</li> <li>change the NSD (that is use different VNFs)</li> </ul> <p>The following image displays for example the latter case.</p> <p></p>"},{"location":"service_design/lcmrules/examples/#call-an-external-restful-service","title":"Call an external RESTful service","text":"<p>This is useful in cases for example of alarms , external logging, calling other services e.g. email or even a complex algorithm written in other language e.g. call an external service and get a result. (service e.g. a Python service)</p> <p></p> <p></p>"},{"location":"service_design/lcmrules/examples/#create-new-service-orders","title":"Create New Service Orders","text":"<p>The following example calls to Order a New Service Specification with specific Parameter Values</p> <p></p>"},{"location":"service_design/lcmrules/intro/","title":"LCM Rules introduction","text":"<p>Lifecycle Management Rules: Defining complex conditions and actions during the lifecycle of a service and any necessary modifications throughout the service lifecycle.</p>"},{"location":"service_design/lcmrules/intro/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>In Naas LCM Introduction it was presented briefly the LCM Rules concept.</p> <p>This section goes deeply on how Service Designers can use them.</p> <p>LCM Rules are used for defining complex conditions and actions during the lifecycle of a service. In Openslice there are four types of rules defined:</p> <ul> <li>PRE_PROVISION</li> <li>CREATION</li> <li>AFTER_ACTIVATION </li> <li>SUPERVISION </li> <li>AFTER_DEACTIVATION </li> </ul> <p>The following figure displays the different phases that the rules are performed, during the lifecycle of a Network Slice Instance.</p> <p></p> <ul> <li>PRE_PROVISION rules: Run only once just before creating a service with a given priority. </li> <li>CREATION rules: Run while the referenced service dependencies of a service are created</li> <li>AFTER_ACTIVATION rules: Run only once just after a service get the ACTIVE state</li> <li>SUPERVISION rules: Run when a characteristic of a service is changed and the service is in the ACTIVE state </li> <li>AFTER_DEACTIVATION rules: Run only once just after a service get the INACTIVE/TERMINATED state </li> </ul> <p>In general the rules allow to perform many actions during service LCM. Thes are some examples:</p> <ul> <li>Modify service specification parameters before the instantiation of a service (or during operation) based on other dependencies. These parameters might be part of other services already included in Service order</li> <li>Translate GST/NEST parameter values to other values passed later to NFVO for instantiation or control</li> <li>Define complex OSM Configs based on other dependencies and passing variables</li> <li>Define any dependencies when creating the referenced services</li> <li>Dynamically include new service dependencies</li> <li>Create new service orders so include dynamically other services</li> <li>Call external (RESTful) services (via http(s), define payload, examine response)</li> </ul>"},{"location":"service_design/lcmrules/intro/#examine-if-the-rules-are-executed-successfully","title":"Examine if the rules are executed successfully","text":"<p>Rules are transformed automatically to executable code (currently is Java). If a rule is performed successfully  or has any issues (e.g. unexpected syntax errors or exceptions) appear in OSOM logfiles and also tey are attached as Notes to the running Service.</p>"},{"location":"service_design/lcmrules/intro/#lcm-rules-and-osom-service-orchestration","title":"LCM Rules and OSOM Service Orchestration","text":"<p>OSOM is the responsible service for executing the rules on a specific phase. The following image explains the design in the BPMN phases:</p> <p></p>"},{"location":"service_design/lcmrules/intro/#define-rules","title":"Define rules","text":"<p>Rules are defined when designing a Service Spec. Here is an example of a list of rules:</p> <p></p> <p>Execution order of rules on a specific phase is random</p> <ul> <li>NOTE: There is a priority field. The lower the number the highest the priority of rule execution. For example Rule with priority 0 will run before rule with priority 1.</li> </ul>"},{"location":"service_design/lcmrules/intro/#definition-language","title":"Definition language","text":"<ul> <li>The visual language that Openslice used is based on Google's Blockly (see https://developers.google.com/blockly)</li> <li>The blockly graph is automatically translated to Java internally and then dynamically executed during orchestration phases.</li> </ul> <p>The following figure is an example of such a rule design. The rule for example will run in PRE_PROVISION phase:</p> <p></p> <ul> <li>The goal of the above rule is to properly define a variable AreaCodes given the chosen AreaOfService from a Service Order.</li> <li>On the right side the user can define some rule properties or observe the underlying generated java code.</li> </ul>"},{"location":"service_design/lcmrules/intro/#the-blocks-library","title":"The blocks library","text":"<p>See our LCM Blocks specification</p>"},{"location":"service_design/lcmrules/intro/#probe-further","title":"Probe further","text":"<ul> <li>Check our examples for more usages</li> <li>See next the complete specification</li> </ul>"},{"location":"service_design/lcmrules/specification/","title":"LCM Blocks specification","text":""},{"location":"service_design/lcmrules/specification/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>The following images describe some blocks found in the library.</p> <p>Blockly has syntax rules. It helps with colours to define them. </p> <p>So for example a parameter that is a Number cannot be \"glued\" with a String. Will need some conversion first</p> <p> </p>"},{"location":"service_ordering/ordering_services/","title":"Service Ordering","text":""},{"location":"service_ordering/ordering_services/#intended-audience-users","title":"Intended Audience: Users","text":""}]}
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introduction","text":"<p>version: 2024Q2 - SNAPSHOT</p> <p>The ETSI Software Development Group for OpenSlice (SDG OSL) is developing an open-source service-based Operations Support System (OSS) to deliver Network as a Service (NaaS) following specifications from major SDOs including ETSI, TM Forum and GSMA.</p>"},{"location":"#usage","title":"Usage","text":"<p>OpenSlice can be used in managing 5G network services from the user device to the core network and cloud as well as for Orchestrating cloud resources across private and public clouds for enterprise applications.  OpenSlice is capable of supporting most of the features of an end-to-end (E2E) service orchestration framework while many of them will be more mature in future releases. The following figure displays the general usage of OpenSlice. </p> <p></p> <p>The image illustrates how OpenSlice supports the idea of an E2E network service orchestration framework by integrating multiple network components and layers, from user devices at the edge to radio, transport networks, core and public cloud services, ensuring seamless, secure, and efficient delivery of network services. Assuming that there are domain controllers for all the above domains OpenSlice can create the end-to-end service via the domain controllers by following the process of creating and deploying the end-to-end service by implementing transformations, and consuming APIs from various network entities. OpenSlice, in a nutchell, offers user interfaces where users can interact with the framework to order, expose, and manage service catalogs, services and resources that can be ordered, following business logic and policies and exposed through the APIs. </p>"},{"location":"#an-end-to-end-e2e-service-orchestration-framework","title":"An end-to-end (E2E) service orchestration framework","text":"<p>An end-to-end (E2E) service orchestration framework is designed to manage and automate the entire lifecycle of services across multiple domains and technologies. For delivering, especially, Network as a Service (NaaS) a comprehensive system is needed that automates and manages the entire lifecycle of network services, from provisioning to monitoring and decommissioning, while ensuring seamless integration, operation, and delivery of services from the initial request to the final delivery, spanning all involved components and layers. Such E2E frameworks enable users to consume network services on-demand, similar to how cloud computing services are consumed. Some key components and features of such frameworks are:</p> <ul> <li>Service Catalogs including predefined Network Services based on service templates for common network services like 5G core functions, 5G slices, VPNs, SD-WAN, firewalls, load balancers, etc. as well as custom Network services with Options for users to define their own network configurations.</li> <li>User Interface (UI) and APIs exposure, offering both a Self-Service Portal that allows users to request, configure, and manage network services as well as APIs for enabling programmatic access to network services for integration with other systems and automation scripts.</li> <li>Service Design and Creation tharough service templates based on predefined models for creating services.</li> <li>Automation and Workflow Management via Orchestration Engines, supporting  Process Automation for automating repetitive tasks and processes,  workflow management and orchestration for automating the provisioning, configuration, and management of network services while coordinating multiple workflows to ensure services are delivered efficiently, ensuring that services comply with predefined policies and standards.</li> <li>Standardized API exposure for seamless integration with different systems and services and APIs transformation support for converting data formats and protocols to ensure compatibility and information exhange between systems during workflows orchestration</li> <li>Service and Resource management and Orchestration while including the capability of multi-domain coordination in managing services/resources across different domains like cloud, 5G core, radios, transport network, and edge including dynamic allocation with adjusting resources based on demand and service requirements. To accomplish the above advanced technologies need to be exploited like, Containerized workloads,  Network Function Virtualization (NFV) which uses virtualized network functions to provide services like routing, switching, and security and Software-Defined Networking (SDN) which Controls the network programmatically to dynamically manage traffic and resources.</li> <li>Monitoring and Analytics including  Service Monitoring while continuously tracking the performance and health of services with capabilities to analyse data to optimize service delivery and predict issues. Real-Time Monitoring is also needed for tracking the performance and health of network services enabling analytics that provide insights for optimization and troubleshooting.</li> <li>Security and Access Control for ensuring only authorized users and systems can access network services. while implementing rules and policies to comply with regulatory requirements.</li> </ul>"},{"location":"#an-e2e-service-orchestration-workflow","title":"An E2E service orchestration workflow","text":"<p>In general an E2E service orchestration workflow includes the following phases:</p> <ul> <li>Service Request: Users or systems request a network service through the self-service portal or API. The request can specify details such as bandwidth, security features, geographic coverage, and duration.</li> <li>Service Orchestration: The orchestration engine evaluates the request, determines the necessary resources, and initiates the automated workflows.It interacts with the underlying components (e.g. 5G Core, Radios, Containerized controllers, NFV, SDN controllers ) to provision and configure the required network functions and connectivity.</li> <li>Provisioning and Configuration: Services, network resources and network functions (VNFs) are instantiated and configured according to the service request during Service Orchestration through the orchestration engine. Other controllers manage their own domains, for example SDN controllers, manage the flow of data through the network to ensure optimal performance and adherence to policies, RAN controllers manage the RAN resoruces, Containerized controllers manage their workload, etc</li> <li>Service Delivery: The E2E network service is activated and made available to the user. Continuous monitoring ensures the service operates as expected, with automatic adjustments made as necessary.</li> <li>Lifecycle Management: The orchestration framework handles updates, scaling, and any necessary modifications throughout the service lifecycle.</li> <li>At the end of the service period, resources are decommissioned and reclaimed.</li> </ul>"},{"location":"#openslice-for-service-providers","title":"OpenSlice for Service Providers","text":"<p>OpenSlice is used by Service Providers to design Network Services, expose them in Service Catalogues and make them available for Service Orders. OpenSlice then can perform the E2E service orchestration workflow.</p> <p>There are various portals offering UI friendly access to users acting as Service Providers:</p> <ul> <li>The Services portal allows Service Providers to design and expose services.</li> <li>The Resource portal allows users to access resource specifications and running resources in resource inventory.</li> <li>The NFV portal allows users to manage NFV artifacts and onboard them to a target MANO/NFV Orchestrator.</li> <li>The Testing portal allows Service Providers to manage test artifacts</li> <li>The Products portal allows Service Providers to expose services as products</li> </ul>"},{"location":"#openslice-for-service-consumers","title":"OpenSlice for Service Consumers","text":"<p>OpenSlice allows Service Consumers to browse the available offered service specifications in a self-service manner. It also supports TMFORUM Northbound APIs  regarding Service Catalog Management, Ordering, Resource, etc. There are various portals offering UI friendly access to users acting as Service Consumers:</p> <ul> <li>The Services portal allows Service Consumers to select and order predefined services.</li> <li>The Resource portal allows users to access running resources in resource inventory.</li> <li>The NFV portal allows users to self-manage NFV artifacts and onboard them to a target MANO/NFV Orchestrator.</li> <li>The Testing portal allows Service Consumers to manage test artifacts</li> <li>The Products portal allows Service Consumers to expose services as products</li> </ul> <p>3rd party applications can use OpenSlice through TMForum Open APIs.</p>"},{"location":"#live-demo","title":"Live Demo","text":"<p>Check a live demo of OpenSlice in the following pages:</p> <ul> <li>OpenSlice demo: http://portal.openslice.io/</li> <li>OpenSlice Service Catalogs and ordering: http://portal.openslice.io/services/</li> <li>OpenSlice NFV Services onboarding: http://portal.openslice.io/nfvportal</li> </ul> <p>Login credentials:</p> <ul> <li>username=admin, password=openslice </li> <li>username=admin, password=changeme</li> </ul>"},{"location":"#probe-further","title":"Probe further","text":"<ul> <li>Installing OpenSlice. See the Deployment of OpenSlice</li> <li>Learn more on how OpenSlice supports Network as a Service(NaaS)</li> <li>Who is implementing OpenSlice? See OSL ETSI SDG</li> <li>How OpenSlice works? See the Architecture of OpenSlice</li> </ul>"},{"location":"OpenSlice_deployment_examples/","title":"OpenSlice deployment examples","text":"<p>Here are some examples from past and current efforts that use OpenSlice in various cases.</p>"},{"location":"OpenSlice_deployment_examples/#5ginfire-eu-project-2018","title":"5GinFIRE EU project (2018)","text":"<ul> <li>MultiVIM approach</li> <li>9 Testbeds</li> <li>Automotive, Smart City, eHeath, PPDR, Media, SDR, Cloud</li> <li>22 Experiment proposals from Verticals</li> <li>100+ Users</li> <li>VxF catalog: </li> <li>150+ ONBOARDED VxFs</li> <li>OSM TWO, FOUR, FIVE</li> <li>50+ are public to be reused</li> <li>NSD catalog: </li> <li>90+ ONBOARDED NSDs</li> <li>30+ are public to be reused</li> <li>500+ Deployment requests \u000b(orchestrations) performed</li> </ul>"},{"location":"OpenSlice_deployment_examples/#5g-vinni-eu-project-2020","title":"5G-VINNI  EU project (2020)","text":"<ul> <li>Multi-vendor challenge \u2013 Commercial and opensource</li> <li>5G services on multiple sites</li> <li>Introduction of TMFORUM models and APIs </li> </ul>"},{"location":"OpenSlice_deployment_examples/#5gasp-eu-project-2021-2024","title":"5GASP  EU project (2021-2024)","text":"<ul> <li>Support a multi-site CI/CD testing automated DevOps cycle for network Applications</li> <li>Multiple NFVOs</li> <li>Introducing Service Test models</li> <li>Introducing the Product models for a network application marketplace</li> </ul>"},{"location":"OpenSlice_deployment_examples/#fidal-eu-project-2023-","title":"FIDAL EU project (2023-)","text":"<ul> <li>Support multi-site automated testing</li> <li>Multiple testbeds/ different APIs</li> </ul>"},{"location":"OpenSlice_deployment_examples/#across-eu-project-2023-","title":"ACROSS EU project (2023-)","text":"<ul> <li>Used as a cross-domain orchestrator</li> <li>Support the multi-domain orchestrator</li> <li>Support Zero-touch provisioning concepts</li> </ul>"},{"location":"OpenSlice_deployment_examples/#incode-eu-project-2023-","title":"INCODE EU project (2023-)","text":"<ul> <li>Support the provisioning of end-to-end domain services</li> </ul>"},{"location":"OpenSlice_deployment_examples/#imagineb5g-eu-project-2023-","title":"IMAGINEB5G EU project (2023-)","text":"<ul> <li>Support the provisioning of end-to-end domain services</li> </ul>"},{"location":"OpenSlice_deployment_examples/#etsi-zsm-poc-2","title":"ETSI ZSM PoC #2","text":"<ul> <li>Automated Network Slice Scaling in Multi-Site Environments</li> <li>See more</li> </ul>"},{"location":"alarms_actions/","title":"Alarms","text":"<p>In Openslice parts of TMF642 Alarm Management API are currently implemented. Alarms can be managed through the TMF API endpoint as well as the UI.</p>"},{"location":"alarms_actions/#alarms-and-actions","title":"Alarms and Actions","text":"<p>Note: Actions is an experimental feature. We expect to have a more mature solution in future. The component in the architecture is the Openslcie Assurance Services</p> <p>Alarms can be automatically resolved by specific actions. Today only the following actions are offered.</p> <ul> <li>execDay2</li> <li>scaleServiceEqually</li> </ul>"},{"location":"alarms_actions/#execday2","title":"execDay2","text":"<p>Usually used to perform a Day2 configuration (towards OSM). To use it, Create a New Action Specification Name=execDay2 as following</p> <p></p> <p>Now make a Service Order for your service. In this example \u03c2\u03b5 used a cirros NSD</p> <p>Create a  New Action Rule for the running services as the following example:</p> <p></p> <p>The scope is the running cirros service. </p> <p>Params should be paramname=value;paramname2=value2;paramname3=value3 (must exist in the VNF otherwise OSM will raise an error).</p> <p>In this case should be filename=test.txt</p> <p>Primitive=touch</p> <p>ServiceId = select the service which will accept the Day2. In this case is the same</p> <p>To test it:</p> <p>Go to the Service Inventory and select the active Service.</p> <p>Note the UUID of the service (e.g. c4e7990a-e174-4cd2-9133-b10e56721e08 copy from address bar),  DeploymentRequestID and NSDID from characteristics</p> <p>You can either use the UUID of the service or the DeploymentRequestID  and POST to the Alarms endpoint ( /tmf-api/alarmManagement/v4/alarm)</p> <p>If the DeploymentRequestID  is used then POST:</p> <pre><code>\n{\n  \"alarmRaisedTime\": \"2021-06-29T12:30:24.675Z\",\n  \"alarmReportingTime\": \"2021-06-29T12:30:54.675Z\",\n  \"state\": \"raised\",\n  \"alarmType\": \"qualityOfServiceAlarm\",\n  \"probableCause\": \"thresholdCrossed\",\n  \"ackState\": \"unacknowledged\",\n  \"perceivedSeverity\": \"major\",\n  \"sourceSystemId\": \"mano-client-service\",\n  \"alarmDetails\": \"NSID=3;DeploymentRequestID=1\",\n  \"specificProblem\": \"myalram raised\"\n}\n\n</code></pre> <p>If the UUID is used then POST:</p> <pre><code>\n{\n  \"alarmRaisedTime\": \"2021-06-29T12:30:24.675Z\",\n  \"alarmReportingTime\": \"2021-06-29T12:30:54.675Z\",\n  \"state\": \"raised\",\n  \"alarmType\": \"qualityOfServiceAlarm\",\n  \"probableCause\": \"thresholdCrossed\",\n  \"ackState\": \"unacknowledged\",\n  \"perceivedSeverity\": \"major\",\n  \"sourceSystemId\": \"mano-client-service\",\n  \"alarmDetails\": \"analarm\",\n  \"specificProblem\": \"myalram raised\",\n  \"affectedService\": [\n    {\n      \"id\": \"c4e7990a-e174-4cd2-9133-b10e56721e08\"\n    }\n  ]\n\n}\n\n</code></pre> <p>The Alarm to be created must have the affected Service ID equal to the running service from the scope (the cirros_ns)</p> <p>Go to service inventory you will see the notes and also the service characteristics for any  EXEC_ACTION updates</p> <p>You can also adjust the alarm conditions. They must match true so the alarm to be acknowledged So if another external service raises an Alarm (with POST) for the running service, a Day2 will be performed on another Service</p>"},{"location":"alarms_actions/#scaleserviceequally","title":"scaleServiceEqually","text":"<p>This action is used from getting a scaling event from OSM. Please see the next demo for details on how it works</p>"},{"location":"alarms_actions/#prototype-demo","title":"Prototype demo","text":"<p>You can watch how we used the prototype on the following ETSI ZMS PoC #2</p> <ul> <li>ETSI ZMS PoC #2: https://www.etsi.org/events/1905-webinar-zsm-poc-2-showcase-automated-network-slice-scaling-in-multi-site-environments/</li> </ul>"},{"location":"config_intro/","title":"Configuring and managing OpenSlice","text":""},{"location":"config_intro/#intended-audience-openslice-administrators","title":"Intended Audience: OpenSlice administrators","text":"<p>This section provides information on how to configure and manage different aspect of OpenSlice while in operation. For example:</p> <ul> <li>Manage user roles and access in Keycloak</li> <li>Configure/Manage NFVOs</li> <li>Advanced configuration scenarios</li> </ul>"},{"location":"deployment/","title":"OpenSlice Deployment","text":"<p>This section is meant to guide the user through the installation of OpenSlice. </p>"},{"location":"deployment/#intended-audience-openslice-administrators","title":"Intended Audience: OpenSlice administrators","text":"<p>Following, you may thorough guides depending on the installation type of your choice:</p> <ul> <li>Installing via Docker Compose guide</li> <li>Installing via Kubernetes guide</li> </ul>"},{"location":"deploymentCompose/","title":"OpenSlice Deployment Guide with Docker Compose","text":""},{"location":"deploymentCompose/#intended-audience-openslice-administrators","title":"Intended Audience: OpenSlice administrators","text":""},{"location":"deploymentCompose/#requirements","title":"Requirements","text":""},{"location":"deploymentCompose/#hardware-requirements","title":"Hardware requirements:","text":"Minimum Hardware Requirements Recomended Hardware Requirements 4 CPU cores 8 CPU cores 8 GB RAM 16 GB RAM 30 GB storage 50 GB storage"},{"location":"deploymentCompose/#software-requirements","title":"Software Requirements:","text":"<ul> <li>Docker: A running environment for Docker Compose services</li> </ul>"},{"location":"deploymentCompose/#preparing-the-environment","title":"Preparing the environment","text":""},{"location":"deploymentCompose/#1-backup-your-previous-database-if-necessary","title":"1. Backup your previous database if necessary:","text":"<pre><code>sudo docker exec amysql /usr/bin/mysqldump -u root --password=letmein ostmfdb &gt; backup_ostmfdb.sql\n</code></pre>"},{"location":"deploymentCompose/#2-install-docker","title":"2. Install docker","text":"<p>Since July 2023 Docker Compose V1 stopped receiving updates. OpenSlice fully reverted to Compose V2, which is integrated in the Docker installation.</p>"},{"location":"deploymentCompose/#3-configure-containers-to-properly-resolve-the-dns-of-your-domain-optional","title":"3. Configure containers to properly resolve the DNS of your domain (optional)","text":"<pre><code>sudo nano /etc/docker/daemon.json\n</code></pre> <p>and add:</p> <pre><code>{ \n  \"dns\": [\"8.8.8.8\", \"8.8.4.4\"]\n}\n</code></pre> <p>After editing daemon.json restart docker daemon for the changes to take place</p> <pre><code>sudo systemctl restart docker\n</code></pre>"},{"location":"deploymentCompose/#downloading-the-project","title":"Downloading the project","text":""},{"location":"deploymentCompose/#1-create-a-new-folder-to-download-the-project","title":"1. Create a new folder to download the project","text":"<pre><code>mkdir openslice\n</code></pre> <pre><code>cd openslice\n</code></pre>"},{"location":"deploymentCompose/#2-download-the-deployment-script","title":"2. Download the deployment script","text":"<p>Download the deployment / environment preparation script</p> <pre><code>wget https://labs.etsi.org/rep/osl/code/org.etsi.osl.main/-/raw/develop/compose/deploy.sh\n</code></pre> <p>Make it executable</p> <pre><code>sudo chmod +x deploy.sh\n</code></pre>"},{"location":"deploymentCompose/#3-run-the-deployment-script","title":"3. Run the deployment script","text":"<p>OpenSlice is a multi repo project. This script selects the same branch for all repositories of the project to pull from.</p> <p>After that it builds the respective jar files locally and installs all the npm packages needed for the UI.</p> <p>If you run the script without selecting a branch the the main branch is going to be selected.</p> <p>We recommend:</p> <ul> <li>main branch for the most stable experience and</li> <li>develop branch for an experience with the latest features (for develop branch installation, it is strongly advisable that you may as well follow the develop documentation)</li> </ul> <pre><code>sudo ./deploy.sh develop #[or replace main with other branch name]\n</code></pre> <p>We recommend running the deploy.sh script with root permissions! In other case, some directories may not be accessible by the project building tools and hinder the smooth installation.</p>"},{"location":"deploymentCompose/#configure-docker-compose-services","title":"Configure Docker Compose services","text":""},{"location":"deploymentCompose/#1-create-configuration-specific-docker-compose-file-from-the-template","title":"1. Create configuration specific Docker Compose file from the template","text":"<pre><code>cd org.etsi.osl.main/compose/\n</code></pre> <pre><code>sudo cp docker-compose.yaml.configure docker-compose.yaml\n</code></pre>"},{"location":"deploymentCompose/#2-configure-mysql-portal-container-optional","title":"2. Configure mysql-portal container (optional)","text":"<ol> <li>In folder <code>org.etsi.osl.main/compose/mysql-init</code> edit the file <code>01-databases.sql</code>.</li> <li>In the <code>org.etsi.osl.main/compose/docker-compose.yaml</code> edit the credentials of the users that services use to connect to the databases, if you wish.<ul> <li>portaluser (default is 12345) and</li> <li>keycloak (default is password)</li> </ul> </li> </ol>"},{"location":"deploymentCompose/#3-configure-keycloak-container-optional","title":"3. Configure keycloak container (optional)","text":"<ol> <li> <p>If you made changes to keycloak's mysql credentials:</p> <p>In folder <code>org.etsi.osl.main/compose/</code> edit the file <code>docker-compose.yaml</code>.</p> </li> </ol> <pre><code>DB_DATABASE: keycloak\nDB_USER: keycloak\nDB_PASSWORD: password\n</code></pre> <ol> <li> <p>If you want to change the keycloak admin password:</p> <p>In folder <code>org.etsi.osl.main/compose/</code> edit the file <code>docker-compose.yaml</code></p> </li> </ol> <pre><code>KEYCLOAK_PASSWORD: Pa55w0rd\n</code></pre>"},{"location":"deploymentCompose/#4-configure-bugzilla-container-optional","title":"4. Configure bugzilla container (optional)","text":"<p>If you want to utilise the Bugzilla connector:</p> <p>In folder <code>org.etsi.osl.main/compose/</code> edit the file <code>docker-compose.yaml</code></p> <pre><code>SPRING_APPLICATION_JSON: '{\n  \"spring.activemq.brokerUrl\": \"tcp://anartemis:61616?jms.watchTopicAdvisories=false\",\n  \"spring.activemq.user\": \"artemis\",\n  \"spring.activemq.password\": \"artemis\",\n  \"bugzillaurl\":\"\",\n  \"bugzillakey\":\"\",\n  \"main_operations_product\":\"\"\n}'\n</code></pre> <p>And add the provided Bugzilla installation information:</p> <pre><code>\"bugzillaurl\":\"bugzillaurl.xx:443/bugzilla/\",\n\"bugzillakey\":\"exampleKeyeqNNwxBlgxZgMEIne0Oeq0Bz\",\n\"main_operations_product\":\"Main Site Operations\" // this is the default product to issue tickets\n</code></pre> <p>Bugzilla should have the following components under the specified product:  </p> <ul> <li>NSD Deployment Request: Component used to schedule deployment req  </li> <li>Onboarding: Issues related to VNF/NSD Onboarding  </li> <li>Operations Support: Default component for operations support  </li> <li>Validation: Use to track validation processes of VNFs and NSDs  </li> <li>VPN Credentials/Access: Used for requesting VPN Credentials/Access   </li> </ul> <p>Also in the 'Main Site Operations' product, a version named 'unspecified' must be created.</p>"},{"location":"deploymentCompose/#5-configure-osportalapi-container-nfv-services-conditional","title":"5. Configure osportalapi container (NFV services) (conditional)","text":"<p>Change the respective fields: </p> <ul> <li>If you made changes to mysql and keycloak credentials.</li> <li>If you want to change logging level (TRACE / DEBUG / INFO / WARN / ERROR).</li> </ul> <p>If you are using a non-local domain, replace everywhere the http://keycloak:8080 with the respective {{protocol://domain.name}}, as well as \"spring.portal.main.domain\" property.</p> <p>In folder <code>org.etsi.osl.main/compose/</code> edit the file <code>docker-compose.yaml</code></p> <pre><code>SPRING_APPLICATION_JSON: '{\n  \"spring.datasource.username\":\"root\",\n  \"spring.datasource.password\":\"letmein\",\n  \"spring-addons.issuers[0].uri\": \"http://keycloak:8080/auth/realms/openslice\",\n  \"spring.security.oauth2.resourceserver.jwt.issuer-uri\": \"http://keycloak:8080/auth/realms/openslice\",\n  \"springdoc.oAuthFlow.authorizationUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth\",\n  \"springdoc.oAuthFlow.tokenUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token\",  \n  \"spring.portal.main.domain\": \"http://localhost\",\n  \"logging.level.org.springframework\" : \"INFO\"\n}'\n</code></pre>"},{"location":"deploymentCompose/#6-osscapi-container-tmf-api-service-conditional","title":"6. osscapi container (TMF API service) (conditional)","text":"<p>Change the respective fields: </p> <ul> <li>If you made changes to mysql and keycloak credentials.</li> <li>If you want to change logging level (TRACE / DEBUG / INFO / WARN / ERROR).</li> </ul> <p>If you are using a non-local domain, replace everywhere the http://keycloak:8080 with the respective {{protocol://domain.name}}.</p> <p>In folder <code>org.etsi.osl.main/compose/</code> edit the file <code>docker-compose.yaml</code></p> <pre><code>SPRING_APPLICATION_JSON: '{\n  \"spring.datasource.username\":\"root\",\n  \"spring.datasource.password\":\"letmein\",\n  \"spring-addons.issuers[0].uri\": \"http://keycloak:8080/auth/realms/openslice\",\n  \"spring.security.oauth2.resourceserver.jwt.issuer-uri\": \"http://keycloak:8080/auth/realms/openslice\",\n  \"springdoc.oAuthFlow.authorizationUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth\",\n  \"springdoc.oAuthFlow.tokenUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token\",  \n  \"logging.level.org.springframework\" : \"INFO\"\n}'\n</code></pre>"},{"location":"deploymentCompose/#configure-nginx","title":"Configure nginx","text":"<p>In folder <code>org.etsi.osl.main/compose/nginx</code> create a configuration specific <code>nginx.conf</code> file.</p> <pre><code>cd org.etsi.osl.main/compose/nginx/\n</code></pre> <pre><code>sudo cp nginx.conf.default nginx.conf\n</code></pre> <p>If needed, in the nginx.conf file, edit the server_name for an non-local deployment.</p>"},{"location":"deploymentCompose/#configure-web-ui","title":"Configure Web UI","text":"<p>In folder <code>org.etsi.osl.portal.web/src/js/</code> create a configuration specific <code>config.js</code> file.</p> <pre><code>cd org.etsi.osl.portal.web/src/js\n</code></pre> <pre><code>sudo cp config.js.default config.js\n</code></pre> <p>Edit the <code>config.js</code> file with the information of your domain. <code>ROOTURL</code> will automatically extract the the Origin (Protocol://Domain:Port) of the deployment, but you must change <code>APIURL</code> property, if you are not aiming for a localhost installation, e.g. \"https://portal.openslice.io\".</p> <p>Example file:</p> <pre><code>{     \n  BUGZILLA: \"ROOTURL/bugzilla/\",\n  STATUS: \"ROOTURL/status/\",\n  APIURL: \"http://localhost\",\n  WEBURL: \"ROOTURL/nfvportal\",\n  APIOAUTHURL: \"ROOTURL/auth/realms/openslice\",\n  APITMFURL: \"ROOTURL/tmf-api/serviceCatalogManagement/v4\"\n}\n</code></pre>"},{"location":"deploymentCompose/#configure-tmf-web-ui","title":"Configure TMF Web UI","text":"<p>In the folder <code>org.etsi.osl.tmf.web/src/assets/config</code> there are 3 files available for configuration:</p> <ul> <li>config.prod.json (Basic information + API configuration)</li> <li>theming.scss (CSS color palette theming)</li> <li>config.theming.json (HTML configuration - Logo, Favicon, Footer)</li> </ul> <p>The first 2 files above (i.e. config.prod.json, theming.scss) are essential for the successful deployment of OpenSlice, thus created automatically during the initial deployment at <code>org.etsi.osl.tmf.web/src/assets/config</code> directory as a copy of the default ones from the remote repository.</p> <p>Ensure that you check the <code>config.prod.json</code> and <code>theming.scss</code> files and readjust to your deployment if needed.</p> <pre><code># Starting from the root project directory\ncd org.etsi.osl.tmf.web/src/assets/config\n</code></pre> <p>E.g. You may edit \"TITLE\", \"WIKI\", etc properties with your domain title. Also configure TMF's API and Keycloak's location for the web application, if needed.</p> <p>Example file:</p> <pre><code>{         \n    \"TITLE\": \"OpenSlice by ETSI\",\n    \"PORTALVERSION\":\"2024Q2\",\n    \"WIKI\": \"https://osl.etsi.org/documentation\",\n    \"BUGZILLA\": \"{BASEURL}/bugzilla/\",\n    \"STATUS\": \"{BASEURL}/status/\",\n    \"WEBURL\": \"{BASEURL}\",\n    \"PORTAL_REPO_APIURL\": \"{BASEURL}/osapi\",\n    \"ASSURANCE_SERVICE_MGMT_APIURL\": \"{BASEURL}/oas-api\",\n    \"APITMFURL\": \"{BASEURL}/tmf-api\",\n    \"OAUTH_CONFIG\" : {\n        \"issuer\": \"{BASEURL}/auth/realms/openslice\",\n        \"loginUrl\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/auth\",\n        \"tokenEndpoint\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/token\",\n        \"userinfoEndpoint\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/userinfo\",\n        \"redirectUri\": \"{BASEURL}/redirect\",\n        \"logoutUrl\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/logout\", \n        \"postLogoutRedirectUri\": \"{BASEURL}\",\n\n        \"responseType\": \"code\",\n        \"oidc\": false,\n        \"clientId\": \"osapiWebClientId\",\n        \"dummyClientSecret\": \"secret\",\n\n        \"requireHttps\": false,\n        \"useHttpBasicAuth\": true,\n        \"clearHashAfterLogin\": false,\n\n        \"showDebugInformation\": true\n    }\n}\n</code></pre> <p>The {BASEURL} placeholder in the file automatically detects the Origin (Protocol://Domain:Port) of the deployment and applies it to every respective property. E.g. If you are attempting a local deployment of OpenSlice, then {BASEURL} is automatically translated to \"http://localhost\". Similarly, you may use {BASEURL} to translate to a public deployment configuration, e.g. \"https://portal.openslice.io\".</p> <p>If further customization, apart from the default provided, is needed for branding (Logo, Footer) then <code>config.theming.json</code> needs to be created in io.openslice.tmf.web/src/assets/config directory, as follows:</p> <pre><code># Starting from the root project directory\ncd org.etsi.osl.tmf.web/src/assets/config\n</code></pre> <pre><code>sudo cp config.theming.default.json config.theming.json\n</code></pre> <p>IMPORTANT NOTE: If you want to apply changes to the JSON configuration files without the need to rebuild the application, you have to apply the changes at the <code>org.etsi.osl.tmf.web/dist/io-openslice-portal-web/assets/config</code> directory. Although, it is mandatory to also apply these changes to the <code>org.etsi.osl.tmf.web/src/assets/config</code> for persistancy, as after any future rebuild of OpenSlice the <code>/dist</code> directory is being overwritten along with its contents. The OpenSlice team strongly recommends to always apply your changes to the TMF web UI configuration files at <code>org.etsi.osl.tmf.web/src/assets/config</code> and rebuild the application.</p>"},{"location":"deploymentCompose/#deploy-openslice-via-docker-compose","title":"Deploy OpenSlice via Docker Compose","text":"<p>After configuring the services, and editing the docker compose file accordingly, the docker compose instantiation command can be performed.</p> <pre><code># Starting from the root project directory\ncd org.etsi.osl.main/compose/\n</code></pre> <pre><code>sudo docker compose --profile prod down;sudo docker compose --profile prod up -d --build\n</code></pre> <p>Depending on your machine, this process might take time. if for any reason the deployment fails during first time, please rerun the above before any further measures.</p>"},{"location":"deploymentCompose/#validating-deployments-and-container-monitoring","title":"Validating deployments and container monitoring","text":"<p>You can monitor containers' status with portainer at port 9000 (http://your-ip:9000).</p> <p>Initially, you may monitor the local machine at portainer.</p> <p>Please check that all containers are in running state.</p>"},{"location":"deploymentCompose/#post-installation-steps","title":"Post installation steps","text":"<p>After the successful deployment of OpenSlice, to ensure the E2E user experience, this section is mandatory. It contains crucial configuration in regard of authentication and user creation.</p>"},{"location":"deploymentCompose/#configure-keycloak-server","title":"Configure Keycloak server","text":"<p>The Keycloack server is managing authentication and running on a container at port 8080. It is also proxied to your host via nginx under http://localhost/auth. </p> <ul> <li> <p>Navigate to http://domain.com/auth/ or https://domain.com/auth/, (http://ipaddress:8080/auth/ or https://ipaddress:8443/auth/ which are directly accessible without proxy) </p> </li> <li> <p>Navigate to Administration Console </p> </li> <li> <p>Login with the credentials from section Configure keycloak container. Default values are:</p> <ul> <li>user: admin and </li> <li>password: Pa55w0rd</li> </ul> </li> </ul> <p>if you are running in HTTP you will get a message: HTTPS required.</p> <p>To resolve this issue when running in HTTP: </p> <ul> <li>Select the master realm from top left corner</li> <li>Go to login Tab and select \"Require SSL\": None</li> <li>Repeat for realm Openslice</li> </ul> <p>If you are running in HTTPS, then \"Require SSL\" can be left unchanged to external requests.</p>"},{"location":"deploymentCompose/#1-configure-redirects","title":"1. Configure redirects","text":"<p>Navigate to realm Openslice &gt; Clients &gt; osapiWebClientId and change the Root URL to your domain. </p> <p>Also, insert your domain, e.g. http://example.org/*, at:</p> <ul> <li>Valid Redirect URIs</li> <li>Web Origins</li> </ul>"},{"location":"deploymentCompose/#2-configure-email","title":"2. Configure email","text":"<p>Keycloak allows new users to register. Subsequently, this will also allow new users to register to the OpenSlice portal.</p> <p>Navigate to realm Openslice &gt; Realm Settings &gt; Login Tab &gt; check User registration, Verify email, Forgot password etc.</p> <p>Finally, enter the details of the mail server at the Email Tab.</p> <p>Email configuration is optional for test runs, but if not provided the above functionalities (e.g. external user registration) will not be possible.</p>"},{"location":"deploymentCompose/#3-add-an-openslice-admin-user","title":"3. Add an OpenSlice admin user","text":"<p>This step is mandatory so as to access the OpenSlice Web UI. To add an OpenSlice admin user you must:</p> <ul> <li>Navigate to realm Openslice &gt; Users &gt; Add user</li> <li>Set a password</li> <li>Upon creation, navigate to Role Mappings and add ADMIN to Assigned Roles list</li> </ul> <p>That user is different from the Keycloak admin user. It is required to login and browse the OpenSlice Web UI. The Role ADMIN guarantee full access through the OpenSlice UI, thus such a user is always required.</p>"},{"location":"deploymentCompose/#keycloak-at-localhost","title":"Keycloak at localhost","text":"<p>This is an important step if you run Keycloak on localhost!</p> <p>1 - Edit your Hosts File, adding the line below</p> <p><code>127.0.0.1 keycloak</code></p> <p>Hosts File Location:</p> <ul> <li> <p>In Linux/Unix, the file's location is at /etc/hosts </p> </li> <li> <p>In Windows, its location is at c:\\Windows\\System32\\Drivers\\etc\\hosts</p> </li> </ul> <p>2 - Replace http://localhost/auth/ with http://keycloak:8080/auth/ in your Keycloak config for AngularJS and Angular (see examples below).</p> <p>Explanation</p> <p>Nginx uses the http://keycloak:8080 URL, which is accessible via the internal docker system's network. The Front-end (TS/Angular) shall also use the http://keycloak:8080. This way, you will not get the invalid token error, as the API is acquiring the token from http://keycloak:8080 (internally) and the Front-end is getting verified by an issuer at the same URL, as well.</p> <p>2.1 - For the Angular configuration (TMF portal UI), navigate to  org.etsi.osl.tmf.web/src/assets/config and edit config.prod.json</p> <pre><code># Starting from the root project directory\ncd org.etsi.osl.tmf.web/src/assets/config\n</code></pre> <pre><code>nano config.prod.json\n</code></pre> <p>After editing, the displayed properties should look like the example below:</p> <pre><code>{         \n  \"OAUTH_CONFIG\" : {\n      \"issuer\": \"http://keycloak:8080/auth/realms/openslice\",\n      \"loginUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/auth\",\n      \"tokenEndpoint\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/token\",\n      \"userinfoEndpoint\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/userinfo\",\n      \"redirectUri\": \"{BASEURL}/redirect\",\n      \"logoutUrl\": \"http://keycloak:8080/auth/realms/openslice/protocol/openid-connect/logout\", \n      \"postLogoutRedirectUri\": \"{BASEURL}\",\n  }\n}\n</code></pre> <p>Note the difference in changing {BASEURL} -&gt; http://keycloak:8080</p> <p>If you want the changes to take place immediately without rebuilding the project, then repeat the process for org.etsi.osl.tmf.web/dist/org.etsi.osl.tmf.web/assets/config/config.prod.json</p> <p>2.2 - For the AngularJS configuration (NVF portal UI), navigate to org.etsi.osl.portal.web/src/js and edit config.js</p> <pre><code># Starting from the root project directory\ncd org.etsi.osl.portal.web/src/js\n</code></pre> <pre><code>nano config.js\n</code></pre> <p>After editing, the displayed properties should look like the example below:</p> <pre><code>var appConfig = angular.module('portalwebapp.config',[]);\n\n\nappConfig.factory('APIEndPointService', function() {\n   return {       \n      APIOAUTHURL: \"http://keycloak:8080/auth/realms/openslice\",\n   };\n});\n</code></pre> <p>Note the difference in \"APIOAUTHURL\" property, changing ROOTURL -&gt; http://keycloak:8080</p>"},{"location":"deploymentCompose/#nfv-orchestrator-configuration","title":"NFV Orchestrator Configuration","text":"<p>After successfully deploying and configuring OpenSlice, you may configure its environment (e.g. the NFVO) that will facilitate the deployment of NFV artifacts.</p> <p>See NFV Orchestrator Configuration.</p>"},{"location":"deploymentK8s/","title":"OpenSlice Deployment Guide with Kubernetes","text":""},{"location":"deploymentK8s/#intended-audience-openslice-administrators","title":"Intended Audience: OpenSlice administrators","text":""},{"location":"deploymentK8s/#requirements","title":"Requirements","text":""},{"location":"deploymentK8s/#hardware-requirements","title":"Hardware requirements:","text":"Minimum Hardware Requirements Recommended Hardware Requirements 4 CPU cores 8 CPU cores 8 GB RAM 16 GB RAM 30 GB storage 50 GB storage"},{"location":"deploymentK8s/#software-requirements","title":"Software Requirements:","text":"<ul> <li>git: For cloning the project repository.</li> <li>Kubernetes: A running cluster where OpenSlice will be deployed. <ul> <li>Disclaimer: The current manual setup of Persistent Volumes using <code>hostPath</code> is designed to operate with only a single worker node. This setup will not support data persistence if a pod is rescheduled to another node.</li> </ul> </li> <li>Helm: For managing the deployment of OpenSlice.</li> <li>Ingress Controller: Ingress exposes HTTP and HTTPS routes from outside the cluster to services within the cluster. Traffic routing is controlled by rules defined on the Ingress resource. An Ingress may be configured to give Services externally-reachable URLs, load balance traffic, terminate SSL / TLS, and offer name-based virtual hosting. An Ingress controller is responsible for fulfilling the Ingress, usually with a load balancer, though it may also configure your edge router or additional frontends to help handle the traffic. You must have an Ingress controller to satisfy an Ingress.<ul> <li>An Nginx ingress controller is required, which can be installed using this guide. </li> <li>If you use another type of ingress controller, you'll need to modify <code>[repo-root]/kubernetes/helm/openslice/templates/openslice-ingress.yaml</code> to conform to your ingress controller's requirements.</li> </ul> </li> <li>Network Load Balancer: Required for exposing the service (e.g., GCP, AWS, Azure, MetalLB).</li> <li>Domain/IP Address: Necessary for accessing the application. This should be configured in <code>[repo-root]/kubernetes/helm/openslice/values.yaml</code> under <code>rooturl</code>.</li> </ul>"},{"location":"deploymentK8s/#additional-configuration","title":"Additional Configuration","text":"<ul> <li>Storage Class: In a production environment, specify your <code>storageClass</code> in <code>[repo-root]/kubernetes/helm/openslice/values.yaml</code> under <code>storageClass</code>. If not defined, PVs will be created and managed manually.<ul> <li>Disclaimer: Before deploying, confirm that your storage system supports claims of one 10G and two 1G volumes.</li> </ul> </li> </ul>"},{"location":"deploymentK8s/#preparing-the-environment","title":"Preparing the environment","text":""},{"location":"deploymentK8s/#1-setting-up-a-kubernetes-cluster","title":"1. Setting Up A Kubernetes Cluster","text":"<p>Refer to the official Kubernetes documentation for setting up a cluster. Ensure your cluster meets the hardware requirements specified above.</p>"},{"location":"deploymentK8s/#2-installing-helm","title":"2. Installing Helm","text":"<p>Helm must be installed on your machine to deploy OpenSlice via Helm charts. Follow the official Helm installation guide.</p>"},{"location":"deploymentK8s/#downloading-the-project","title":"Downloading the project","text":""},{"location":"deploymentK8s/#1-create-a-new-folder-to-download-the-project","title":"1. Create a new folder to download the project","text":"<pre><code>mkdir openslice\ncd openslice\n</code></pre>"},{"location":"deploymentK8s/#2-download-the-project-code","title":"2. Download the project code","text":"<p>Clone the project code from the GitLab repository.  Note: This process will be simplified once the charts are published in the GitLab registry, requiring only the chart to be pulled.</p> <pre><code>git clone https://labs.etsi.org/rep/osl/code/org.etsi.osl.main.git\ncd org.etsi.osl.main/kubernetes/helm/openslice/\n</code></pre>"},{"location":"deploymentK8s/#3-prerequisites-before-deployment","title":"3. Prerequisites before deployment","text":"<p>Before deploying the Helm chart, ensure you have configured the necessary components as detailed in the following section, i.e. Configure Helm Chart Services. By default, the <code>main</code> branch is selected for deployment.</p> <p>We recommend:</p> <ul> <li>main branch for the most stable experience and</li> <li>develop branch for an experience with the latest features (for develop branch installation, it is strongly advisable that you may as well follow the develop documentation)</li> </ul>"},{"location":"deploymentK8s/#configure-helm-chart-services","title":"Configure Helm Chart Services","text":"<p>When deploying OpenSlice with Helm, service configurations are handled through the <code>values.yaml</code> file. This file allows you to define all necessary configurations for your deployment, including database credentials, service URLs, and logging levels. Below are examples of how to configure your services in Helm based on your provided values.</p>"},{"location":"deploymentK8s/#configuring-services","title":"Configuring Services","text":""},{"location":"deploymentK8s/#1-database-configuration","title":"1. Database Configuration","text":"<p>To configure MySQL and other related services, you can directly set the values in your <code>values.yaml</code> file under the <code>oscreds</code> and <code>mysql</code> sections. For example:</p> <pre><code>oscreds:\n  mysql:\n    username: \"root\"\n    password: \"letmein\"\n    openslicedb: \"osdb\"\n    keycloak: \n      database: \"keycloak\"\n      username: \"keycloak\"\n      password: \"password\"\n      adminpassword: \"Pa55w0rd\"\n    portal:\n      database: \"osdb\"\n      username: \"portaluser\"\n      password: \"12345\"\n</code></pre>"},{"location":"deploymentK8s/#2-external-services-configuration","title":"2. External Services Configuration","text":"<p>For configuring external services like Bugzilla and CentralLog, specify their URLs and credentials in the <code>values.yaml</code> file:</p> <pre><code>bugzillaurl: \"example.com:443/bugzilla\"\nbugzillakey: \"VH2Vw0iI5aYgALFFzVDWqhACwt6Hu3bXla9kSC1Z\"\nmain_operations_product: \"Main Site Operations\" // this is the default product to issue tickets\ncentrallogurl: \"http://elk_ip:elk_port/index_name/_doc\"\n</code></pre> <p>Bugzilla should have the following components under the specified product:  </p> <ul> <li>NSD Deployment Request: Component used to schedule deployment req  </li> <li>Onboarding: Issues related to VNF/NSD Onboarding  </li> <li>Operations Support: Default component for operations support  </li> <li>Validation: Use to track validation processes of VNFs and NSDs  </li> <li>VPN Credentials/Access: Used for requesting VPN Credentials/Access   </li> </ul> <p>Also in the 'Main Site Operations' product, a version named 'unspecified' must be created.</p>"},{"location":"deploymentK8s/#3-keycloak-configuration","title":"3. Keycloak Configuration","text":"<p>Keycloak settings, including the database and admin password, are part of the <code>oscreds.mysql.keycloak</code> section. If you need to adjust Keycloak-specific settings like realms or client configurations, you'll likely need to customize your Helm chart further or manage these settings directly within Keycloak after deployment. The Keycloak realm configuration that is imported by default can be found under <code>kubernetes/helm/openslice/files/keycloak-init/realm-export.json</code>.</p> <pre><code>oscreds:\n  mysql:\n    keycloak: \n      database: \"keycloak\"\n      username: \"keycloak\"\n      password: \"password\"\n      adminpassword: \"Pa55w0rd\"\n</code></pre>"},{"location":"deploymentK8s/#4-application-and-logging-configuration","title":"4. Application and Logging Configuration","text":"<p>Application-specific configurations, such as OAuth client secrets, can be set in the <code>spring</code> section:</p> <pre><code>spring:\n  oauthClientSecret: \"secret\"\n</code></pre>"},{"location":"deploymentK8s/#5-ingress-and-root-url","title":"5. Ingress and Root URL","text":"<p>To configure the ingress controller and root URL for OpenSlice, update the rooturl field with your ingress load balancer IP or domain. This setting is crucial for external access to your application:</p> <pre><code>rooturl: \"http://openslice.com\" # Example domain\n# or\nrooturl: \"http://3.15.198.35:8080\" # Example IP with port\n</code></pre>"},{"location":"deploymentK8s/#6-persistent-volume-for-mysql","title":"6. Persistent Volume for MySQL","text":"<p>For persistent storage, especially for MySQL, define the storage size under the <code>mysql</code> section. This ensures that your database retains data across pod restarts and deployments.</p> <pre><code>mysql:\n  storage: \"10Gi\"\n</code></pre>"},{"location":"deploymentK8s/#configure-web-ui","title":"Configure Web UI","text":"<p>In folder <code>kubernetes/helm/openslice/files/org.etsi.osl.portal.web/src/js</code> you must make a copy of <code>config.js.default</code> file and rename it to <code>config.js</code>. </p> <p>This is mandatory for the configuration file to be discoverable.</p> <p>Edit the <code>config.js</code> configuration file with your static configuration, if needed.</p> <pre><code>{\n  TITLE: \"OpenSlice by ETSI\",\n  WIKI: \"https://osl.etsi.org/documentation/\",\n  BUGZILLA: \"{{ .Values.rooturl }}/bugzilla\",\n  STATUS: \"{{ .Values.rooturl }}/status\",\n  APIURL: \"{{ .Values.rooturl }}\",\n  WEBURL: \"{{ .Values.rooturl }}/nfvportal\",\n  APIOAUTHURL: \"{{ .Values.rooturl }}/auth/realms/openslice\",\n  APITMFURL: \"{{ .Values.rooturl }}/tmf-api/serviceCatalogManagement/v4\"\n}\n</code></pre>"},{"location":"deploymentK8s/#configure-tmf-web-ui","title":"Configure TMF Web UI","text":"<p>In the folder <code>kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config</code> there are 3 files available for configuration:</p> <ul> <li>config.prod.default.json (Basic information + API configuration)</li> <li>theming.default.scss (CSS color palette theming)</li> <li>config.theming.default.json (HTML configuration - Logo, Favicon, Footer)</li> </ul> <p>You must make a copy of files:</p> <ul> <li><code>config.prod.default.json</code> and rename it to <code>config.prod.json</code></li> <li><code>theming.default.scss</code> and rename it to <code>theming.scss</code></li> </ul> <p>The 2 files above (i.e. config.prod.json, theming.scss) are essential for the successful deployment of OpenSlice, and executing the above steps is mandatory for the configuration files to be discoverable.</p> <p>Ensure that you check the <code>config.prod.json</code> and <code>theming.scss</code> files and readjust to your deployment if needed.</p> <pre><code># Starting from the root project directory\ncd kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config\n</code></pre> <p>E.g. You may edit \"TITLE\", \"WIKI\", etc properties with your domain title. Also configure TMF's API and Keycloak's location for the web application, if needed.</p> <pre><code>{         \n    \"TITLE\": \"OpenSlice by ETSI\",\n    \"PORTALVERSION\":\"2024Q2\",\n    \"WIKI\": \"https://osl.etsi.org/documentation\",\n    \"BUGZILLA\": \"{BASEURL}/bugzilla/\",\n    \"STATUS\": \"{BASEURL}/status/\",\n    \"WEBURL\": \"{BASEURL}\",\n    \"PORTAL_REPO_APIURL\": \"{BASEURL}/osapi\",\n    \"ASSURANCE_SERVICE_MGMT_APIURL\": \"{BASEURL}/oas-api\",\n    \"APITMFURL\": \"{BASEURL}/tmf-api\",\n    \"OAUTH_CONFIG\" : {\n        \"issuer\": \"{BASEURL}/auth/realms/openslice\",\n        \"loginUrl\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/auth\",\n        \"tokenEndpoint\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/token\",\n        \"userinfoEndpoint\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/userinfo\",\n        \"redirectUri\": \"{BASEURL}/redirect\",\n        \"logoutUrl\": \"{BASEURL}/auth/realms/openslice/protocol/openid-connect/logout\", \n        \"postLogoutRedirectUri\": \"{BASEURL}\",\n\n        \"responseType\": \"code\",\n        \"oidc\": false,\n        \"clientId\": \"osapiWebClientId\",\n        \"dummyClientSecret\": \"secret\",\n\n        \"requireHttps\": false,\n        \"useHttpBasicAuth\": true,\n        \"clearHashAfterLogin\": false,\n\n        \"showDebugInformation\": true\n    }\n}\n</code></pre> <p>The {BASEURL} placeholder in the file automatically detects the Origin (Protocol://Domain:Port) of the deployment and applies it to every respective property. E.g. If you are attempting a local deployment of OpenSlice, then {BASEURL} is automatically translated to \"http://localhost\". Similarly, you may use {BASEURL} to translate to a public deployment configuration, e.g. \"https://portal.openslice.io\".</p> <p>If further customization, apart from the default provided, is needed for branding (Logo, Footer) then <code>config.theming.json</code> needs to be created in kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config directory, as follows:</p> <pre><code># Starting from the root project directory\ncd kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config\n</code></pre> <pre><code>sudo cp config.theming.default.json config.theming.json\n</code></pre>"},{"location":"deploymentK8s/#3-deploy-the-helm-chart","title":"3. Deploy the Helm Chart","text":"<p>After configuring the services, and editing the <code>values.yaml</code> file accordingly, the helm install command can be performed.</p> <pre><code>cd kubernetes/helm/openslice/\nhelm install myopenslice . --namespace openslice --create-namespace\n</code></pre>"},{"location":"deploymentK8s/#validating-deployments-and-container-monitoring","title":"Validating deployments and container monitoring","text":"<p>In a Kubernetes environment, you can monitor the status of your deployments and containers using <code>kubectl</code>, the Kubernetes command-line tool, which provides powerful capabilities for inspecting the state of resources in your cluster.</p>"},{"location":"deploymentK8s/#checking-the-status-of-your-applications-deployment","title":"Checking the Status of your application's deployment","text":"<p>To check the status of your deployment, use the following commands. The output should be similar:</p> <pre><code>\nkubectl get pods -n openslice\n\nNAME                      READY   UP-TO-DATE   AVAILABLE   AGE\nmyopenslice-artemis       1/1     1            1           6m28s\nmyopenslice-blockdiag     1/1     1            1           6m28s\nmyopenslice-bugzilla      1/1     1            1           6m28s\nmyopenslice-centrallog    1/1     1            1           6m28s\nmyopenslice-cridge        1/1     1            1           6m28s\nmyopenslice-keycloak      1/1     1            1           6m28s\nmyopenslice-kroki         1/1     1            1           6m28s\nmyopenslice-manoclient    1/1     1            1           6m28s\nmyopenslice-oasapi        1/1     1            1           6m28s\nmyopenslice-osom          1/1     1            1           6m28s\nmyopenslice-osportalapi   1/1     1            1           6m28s\nmyopenslice-osscapi       1/1     1            1           6m28s\nmyopenslice-portalweb     1/1     1            1           6m28s\nmyopenslice-tmfweb        1/1     1            1           6m28s\n</code></pre> <pre><code>kubectl get deployments -n openslice\n\nNAME                      READY   UP-TO-DATE   AVAILABLE   AGE\nmyopenslice-artemis       1/1     1            1           7m17s\nmyopenslice-blockdiag     1/1     1            1           7m17s\nmyopenslice-bugzilla      1/1     1            1           7m17s\nmyopenslice-centrallog    1/1     1            1           7m17s\nmyopenslice-cridge        1/1     1            1           7m17s\nmyopenslice-keycloak      1/1     1            1           7m17s\nmyopenslice-kroki         1/1     1            1           7m17s\nmyopenslice-manoclient    1/1     1            1           7m17s\nmyopenslice-oasapi        1/1     1            1           7m17s\nmyopenslice-osom          1/1     1            1           7m17s\nmyopenslice-osportalapi   1/1     1            1           7m17s\nmyopenslice-osscapi       1/1     1            1           7m17s\nmyopenslice-portalweb     1/1     1            1           7m17s\nmyopenslice-tmfweb        1/1     1            1           7m17s\n</code></pre> <pre><code>kubectl get services -n openslice\n\nNAME                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                        AGE\nmyopenslice-artemis       ClusterIP   10.101.128.223   &lt;none&gt;        8161/TCP,61616/TCP,61613/TCP   7m43s\nmyopenslice-blockdiag     ClusterIP   10.109.196.90    &lt;none&gt;        8001/TCP                       7m43s\nmyopenslice-bugzilla      ClusterIP   10.107.10.101    &lt;none&gt;        13010/TCP                      7m43s\nmyopenslice-centrallog    ClusterIP   10.109.84.33     &lt;none&gt;        13013/TCP                      7m43s\nmyopenslice-keycloak      ClusterIP   10.104.172.73    &lt;none&gt;        8080/TCP,8443/TCP              7m43s\nmyopenslice-kroki         ClusterIP   10.106.92.111    &lt;none&gt;        8000/TCP                       7m43s\nmyopenslice-manoclient    ClusterIP   10.100.143.154   &lt;none&gt;        13011/TCP                      7m43s\nmyopenslice-mysql         ClusterIP   10.108.206.75    &lt;none&gt;        3306/TCP                       7m43s\nmyopenslice-oasapi        ClusterIP   10.100.107.66    &lt;none&gt;        13101/TCP                      7m43s\nmyopenslice-osom          ClusterIP   10.97.88.133     &lt;none&gt;        13100/TCP                      7m43s\nmyopenslice-osportalapi   ClusterIP   10.111.212.76    &lt;none&gt;        13000/TCP                      7m43s\nmyopenslice-osscapi       ClusterIP   10.101.84.220    &lt;none&gt;        13082/TCP                      7m43s\nmyopenslice-portalweb     ClusterIP   10.101.16.112    &lt;none&gt;        80/TCP                         7m43s\nmyopenslice-tmfweb        ClusterIP   10.101.157.185   &lt;none&gt;        80/TCP                         7m43s\n</code></pre>"},{"location":"deploymentK8s/#accessing-logs-for-troubleshooting","title":"Accessing Logs for Troubleshooting","text":"<p>If a pod is not in the expected state, you can access its logs for troubleshooting:</p> <pre><code>kubectl logs &lt;pod-name&gt; -n openslice\n</code></pre>"},{"location":"deploymentK8s/#post-installation-steps","title":"Post installation steps","text":"<p>After the successful deployment of OpenSlice, to ensure the E2E user experience, this section is mandatory. It contains crucial configuration in regard of authentication and user creation.</p>"},{"location":"deploymentK8s/#configure-keycloak-server","title":"Configure Keycloak server","text":"<p>The Keycloack server is managing authentication and running on a container at port 8080. It is also proxied to your host via the ingress resource under http://your-domain/auth. </p> <ul> <li> <p>Navigate to http://your-domain/auth/ or https://your-domain/auth/, (http://ipaddress:8080/auth/ or https://ipaddress:8443/auth/ which are directly accessible without proxy) </p> </li> <li> <p>Navigate to Administration Console </p> </li> <li> <p>Login with the credentials from section Keycloak Configuration. Default values are:</p> <ul> <li>user: admin </li> <li>password: Pa55w0rd</li> </ul> </li> </ul> <p>This applies only if you are running in HTTP and get a message: HTTPS required.</p> <p>To resolve this issue when running in HTTP: </p> <ul> <li>Select the master realm from top left corner</li> <li>Go to login Tab and select \"Require SSL\": None</li> <li>Repeat for realm Openslice</li> </ul> <p>If you are running in HTTPS, then \"Require SSL\" can be left unchanged to external requests.</p>"},{"location":"deploymentK8s/#1-configure-email","title":"1. Configure email","text":"<p>Keycloak allows new users to register. Subsequently, this will also allow new users to register to the OpenSlice portal.</p> <p>Navigate to realm Openslice &gt; Realm Settings &gt; Login Tab &gt; check User registration, Verify email, Forgot password etc.</p> <p>Finally, enter the details of the mail server at the Email Tab.</p> <p>Email configuration is optional for test runs, but if not provided the above functionalities (e.g. external user registration) will not be possible.</p>"},{"location":"deploymentK8s/#2-add-an-openslice-admin-user","title":"2. Add an OpenSlice admin user","text":"<p>This step is mandatory so as to access the OpenSlice Web UI. To add an OpenSlice admin user you must: - Navigate to realm Openslice &gt; Users &gt; Add user  - Set a password - Upon creation, navigate to Role Mappings and add ADMIN to Assigned Roles list</p> <p>That user is different from the Keycloak admin user. It is required to login and browse the OpenSlice Web UI. The Role ADMIN guarantee full access through the OpenSlice UI, thus such a user is always required.</p>"},{"location":"deploymentK8s/#nfv-orchestrator-configuration","title":"NFV Orchestrator Configuration","text":"<p>After successfully deploying and configuring OpenSlice, you may configure its environment (e.g. the NFVO) that will facilitate the deployment of NFV artifacts.</p> <p>See NFV Orchestrator Configuration.</p>"},{"location":"etsi_osl/","title":"The ETSI SDG OSL","text":"<p>OpenSlice is developed by the OSL ETSI Software Development Group see more info.</p>"},{"location":"history/","title":"History","text":"<ul> <li>The NFV portal part of OpenSlice was initially developed in H2020 European Research project 5GinFIRE by University of Patras, Greece</li> <li>OpenSlice core services, APIs was further developed and maintained in H2020 European project 5G-VINNI by University of Patras, Greece</li> <li>OpenSlice has been a part of OSM's OSS/BSS ecosystem</li> <li>OpenSlice is now an ETSI SDG Group since 2023</li> </ul>"},{"location":"history/#citation","title":"Citation","text":"<p>Please cite our ![paper] if you use OpenSlice in your research</p> <pre><code>@misc{tranoris2021openslice,\n      title={Openslice: An opensource OSS for Delivering Network Slice as a Service}, \n      author={Christos Tranoris},\n      year={2021},\n      eprint={2102.03290},\n      archivePrefix={arXiv},\n      primaryClass={cs.NI}\n}\n</code></pre>"},{"location":"nfvoconfig/","title":"NFV Orchestrator configuration","text":"<p>Currently we support Open Source MANO version EIGHT/NINE/TEN/ELEVEN/THIRTEEN. Later versions of OSM may also be supported by the existing configuration, as from OSM 9+ the project converged to the SOL005 interface, regarding the NBI, and SOL006 (YANG model), regarding the NFV/NS packaging. Also an implementation of a generic SOL005 interface is supported, but not extensively tested.</p> <p>Configuration of your target(s) NFVOs/MANO services with Openslice is performed through the NFV portal.</p> <ol> <li> <p>Login to {{yourdomain}}/nfvportal/</p> </li> <li> <p>Navigate to Admin &gt; Manage MANO Platforms &gt; Add New MANO Platform, pick one of the supported MANO platform(s), e.g. Name=OSMvTHIRTEEN, Version=OSMvTHIRTEEN and save. You may edit the saved MANO platforms after this.</p> </li> <li> <p>Navigate to Admin &gt; Manage MANO providers &gt; Add New MANO Provider and enter its details:</p> <ul> <li>Name and description of your choice. The selected name will supplement the NFV artifacts of this provider.</li> <li>One of the already defined MANO platforms</li> <li>API URL Endpoint, eg: https://10.10.10.10:9999 (This is the SOL005 NBI endpoint - Note the port 9999)</li> <li>Username, Password and Project of your OSM tenant.</li> </ul> </li> </ol> <p>Check EnabledForONBOARDING, if you want VNF/NS packages uploaded through the UI by the user, to also be automatically ONBOARDED to this MANO (1 step process). If left unchecked, the onboarding process must be performed manually after the VNF/NS package is uploaded to the portal, by the designated UI (2 step process).</p> <p>Check EnabledForSYNC, if you want to support the automatic synchronization of this MANO with OpenSlice. When enabled, the existing VNF/NS packages and VIMs (and any updates on them) of the registered MANO are also reflected to the portal to the respective UIs (Registered VNFs/NSDs and Manage Infrastructures). </p> <p>The synchronization is a continuous process that will confirm that the artifacts are still present in the MANO, updating the status field of the respective artifacts to <code>OSM_PRESENT</code>. If during this process, an artifact is deleted from the MANO, the respective status field will be updated to <code>OSM_MISSING</code>.</p>"},{"location":"portals_intro/","title":"OpenSlice Portals","text":"<p>OpenSlice comprises of a web landing page (See Demo) that navigates to the respective Portals:</p> <ul> <li>Services Portal (See Demo)</li> <li>NFV Portal (See Demo)</li> <li>Products Portal (See Demo)</li> <li>Testing Portal (See Demo)</li> <li>Resources Portal (See Demo)</li> </ul> <p>Following you may find the scope each portal focuses on and the main TMF APIs it supports:</p> <p>Services Portal is a designated portal for the: - Service Designer - To design Customer Facing Services as bundles of Resource Facing Services that map to specific Resourses (e.g. NFV, Testing, General Resources). Then, it is charged with the designed Services' exposure to public Service Catalogs. - Service Customer - To browse the public Service Catalogs and order the offered Services. The fulfilment process of the Service Order is also captured and the final deployed Services are exposed to the Customer.</p> <p>NFV Portal is a designated portal for the: Indicatively, the portal can be used to: - Register new a new MANO provider (e.g. OSM) - Synchronize the onboarded VNF/NS packages, and the VIMs of the registered MANO provider - Onboard/Delete VNF/NS packages on specific MANO provider - Deploy a NS to a target MANO provider</p> <p>More information can be found at NFV Services.</p> <p>Resources Portal is a designated portal for the: - Resource Administrator - To view the available Resources that are being synchronized from the underlying infrastructure. -  Products Portal is a designated portal for the: - Product Designer - To design Products as bundles of available Services. Then, it is charged with the designed Products' exposure to public Product Catalogs. - Product Customer - To browse the public Product Catalogs and navigate to the respective offered Services.</p> <p>Testing Portal is a designated portal for the: - Testing Designer - To design Tests and provide the testing scripts as attachments to the latter. The Tests can be imported as Services at the Services Portal, and can be included in a Service Bundle.</p> TMF620 TMF632 TMF633 TMF634 TMF638 TMF639 TMF640 TMF641 TMF642 TMF653 TMF685 Services Portal x x x x x x Products Portal x x Testing Portal x x Resources Portal x x x x <p>The NFV Portal uses a proprietary API.</p>"},{"location":"role_keycloak_management/","title":"Role management in Keycloak","text":"<p>Some initial configuration of Keycloak happens at Installation/Deployment time. Here are some notes regarding user management</p>"},{"location":"role_keycloak_management/#intended-audience-openslice-administrators","title":"Intended Audience: OpenSlice administrators","text":"<p>There are cases that OpenSlice administrators need to configure Keycloak:</p> <ul> <li>Change user roles, e.g. make a Simple user a Service Designer</li> <li>Domain management</li> <li>User Password reset</li> </ul>"},{"location":"terminology/","title":"User Roles","text":"<ul> <li>User</li> <li>Service Designer</li> <li>OpenSlice administrator</li> </ul>"},{"location":"terminology/#terms","title":"Terms","text":"<ul> <li>Resource Facing Service Specification (RFSSpec): A Service that exposes a resource Specification as a Service.</li> <li>Customer Facing Service Specification (CFSSpec): Service exposed to users for Service Orders. Usually it exposes other CFSSpec(Service Bundle) or other RFSSpecs</li> <li>OpenSlice management cluster</li> <li>Service Specification: Detailed descriptions of services, including attributes, configurations, performance metrics, and SLAs.</li> <li>Service Catalog</li> <li>Service Categories</li> <li>Service Inventory</li> </ul>"},{"location":"under_construction/","title":"Under construction","text":"<p>under construction</p>"},{"location":"architecture/architecture/","title":"Architecture","text":"<p>Openslice offers the following main functionalities:</p> <ul> <li>Service Catalog Management: A CSP will have the ability to manage the Service Catalog Items, their attributes , organize in categories and decide what to make available to Customers</li> <li>Services Specifications: A CSP will be able to manage Service Specifications</li> <li>Service Catalog Exposure: A CSP will be able to expose catalog to customers and related parties</li> <li>Service Catalog to Service Catalog: Openslice able to consume and provide Service Catalog items to other catalogs</li> <li>Service Order: The Customer will be able to place a Service Order</li> <li>Service Inventory: The Customer and Provider will be able to view deployed Services status</li> </ul> <p>The following figure displays the overall architecture of Openslice.</p> <p></p> <p>Openslice allows Vertical Customers browsing the available offered service specifications. It consists of:</p> <ul> <li>Web frontend UIs that consist of mainly two portals: i) a NFV portal allowing users self-service management and onboarding VNFDs/NSDs to facility\u2019s NFVO ii) a Services Portal, which allows users to browse the Service Catalog, Service Blueprints specifications and the Service Inventory</li> <li>An API gateway that proxies the internal APIs and used by the web front end as well as any other 3rd party service</li> <li>A Message Bus where all microservices use it to exchange messages either via message queues or via publish/subscribe topics</li> <li>An authentication server implementing Oauth2 authentication scheme</li> <li>A microservice offering TMF compliant API services (eg Service Catalog API, Service Ordering APIetc)</li> <li>A microservice offering NFV API services (eg VNF/NSD onboarding etc) and allows to store VNFDs and NSDs in a catalog</li> <li>A microservice that is capable to interface to an issue management system. For example it raises an issue to all related stakeholders (CSP, NOP, CSC) that a new Service Order is requested</li> <li>Central logging microservice that is capable to log all distributed actions in to an Elasticsearch cluster</li> <li>A Service Orchestrator solution that will propagate Service Ordering requests to the equivalent SOs and NFVOs </li> </ul> <p>The following figure depicts how Openslice microservices are deployed</p> <p></p>"},{"location":"architecture/architecture/#deploying-openslice-in-multi-domain-scenarios","title":"Deploying Openslice in multi domain scenarios","text":"<p>A typical deployment across domains, involves today some typical components: i) an OSS/BSS to allow customers access the service catalog and perform service orders, ii) a Service Orchestrator (SO) component for executing the service order workflow, as well as iii) a Network Functions Virtualization Orchestrator (NFVO) for configuring the iv) network resources.</p> <p>TMF Open APIs are introduced not only for exposing catalogues and accepting service orders, but also implementing the East-West interfaces between the domains, fulfilling also the LSO requirements as introduced by MEF.</p> <p>The following figure shows how openslice could be used in such scenarios:</p> <p></p> <p>See more Consuming Services From External Partner Organizations</p>"},{"location":"architecture/centrallog/","title":"Central Logging","text":"<p>Openslice follows the centralized log management concept, i.e. a type of logging solution system that consolidates the log data from different services and pushes it to a central, accessible and easy-to-use interface. </p> <p>For that reason, Elasticsearch is elected as an open-source centralized logging solution for collecting, parsing and storing logs towards a real-time data analytics tool that provides insights from any type of structured and unstructured data source.</p>"},{"location":"architecture/consumingServicesFromExternalPartners/","title":"Consuming Services From External Partner Organizations","text":"<p>A typical deployment across domains, involves today some typical components: i) an OSS/BSS to allow customers access the service catalog and perform service orders, ii) a Service Orchestrator (SO) component for executing the service order workflow, as well as iii) a Network Functions Virtualization Orchestrator (NFVO) for configuring the iv) network resources.</p> <p>TMF Open APIs are introduced not only for exposing catalogues and accepting service orders, but also implementing the East-West interfaces between the domains, fulfilling also the LSO requirements as introduced by MEF.</p> <p>The following figure shows how openslice could be used in such scenarios:</p> <p></p> <p>In Openslice we can consume services from 3rd parties via Open APIs.</p> <p>We use the TMF 632 Party Management model to specify Organizations that we can exchange items and other information such as:</p> <ul> <li>Import Service Specifications</li> <li>Create a Service Order</li> <li>Use the Service Inventory to query the status of the service ordered to the external partner organization</li> </ul>"},{"location":"architecture/consumingServicesFromExternalPartners/#define-an-organization-as-3rd-party-to-consume-services-east-west","title":"Define an Organization as 3rd party to consume services East-West","text":"<p>An organization must have the following characteristics in openslice catalog, like for example:</p> <p>\"EXTERNAL_TMFAPI_BASEURL\", \"http://portal.openslice.io\"</p> <p>\"EXTERNAL_TMFAPI_CLIENTREGISTRATIONID\", \"authOpensliceProvider\"</p> <p>\"EXTERNAL_TMFAPI_OAUTH2CLIENTID\", \"osapiWebClientId\"</p> <p>\"EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET\", \"secret\"</p> <p>\"EXTERNAL_TMFAPI_OAUTH2SCOPES\", scopes</p> <p>\"EXTERNAL_TMFAPI_OAUTH2TOKENURI\", \"http://portal.openslice.io/osapi-oauth-server/oauth/token\"</p> <p>\"EXTERNAL_TMFAPI_USERNAME\", \"admin\"</p> <p>\"EXTERNAL_TMFAPI_PASSWORD\", \"openslice\"</p> <p>\"EXTERNAL_TMFAPI_SERVICE_CATALOG_URLS\" = \"/tmf-api/serviceCatalogManagement/v4/serviceSpecification?type=CustomerFacingServiceSpecification\" (this is optional, fetch a list of service specs it will be relative with the BASEURL. If the url is empty then no specs will be fetched, the EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS might be used)</p> <p>\"EXTERNAL_TMFAPI_SERVICE_CATEGORY_URLS\" = \"/tmf-api/serviceCatalogManagement/v4/serviceCategory/{categoryid}\" (this example will fetch all specs in a category. You may define comma separated URLs of categories API URL . This will  fetch  specifications of every defined category. If you want only one specific category put for example the uuid only of one category: \"/tmf-api/serviceCatalogManagement/v4/serviceCategory/bda02821-bc4d-4bd6-b64b-d9c2aa5f8e6d\". multiple urls should be \"/tmf-api/serviceCatalogManagement/v4/serviceCategory/bda02821-bc4d-4bd6-b64b-d9c2aa5f8e6d,/tmf-api/serviceCatalogManagement/v4/serviceCategory/9b6d8bf3-abd2-43c4-8154-c8c6fe5545b2\")</p> <p>\"EXTERNAL_TMFAPI_SERVICE_SPEC\" = \"/tmf-api/serviceCatalogManagement/v4/serviceSpecification\"</p> <p>\"EXTERNAL_TMFAPI_SERVICE_ORDER_URLS\"= \"/test/v1/serviceorder\" (this is optional)</p> <p>An example Organization defined example in json:</p> <pre><code>\n{\n  \"uuid\": \"1a09a8b5-6bd5-444b-b0b9-a73c69eb42ae\",\n  \"@baseType\": \"BaseEntity\",\n  \"@schemaLocation\": null,\n  \"@type\": null,\n  \"href\": null,\n  \"name\": \"Openslice.io\",\n  \"id\": \"1a09a8b5-6bd5-444b-b0b9-a73c69eb42ae\",\n  \"isHeadOffice\": null,\n  \"isLegalEntity\": null,\n  \"nameType\": null,\n  \"organizationType\": null,\n  \"tradingName\": null,\n  \"contactMedium\": [],\n  \"creditRating\": [],\n  \"existsDuring\": null,\n  \"externalReference\": [],\n  \"organizationChildRelationship\": [],\n  \"organizationIdentification\": [],\n  \"organizationParentRelationship\": null,\n  \"otherName\": [],\n  \"partyCharacteristic\": [\n    {\n      \"uuid\": \"3a2f7221-e0a2-4a6b-88d1-534c8e1963f6\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_CLIENTREGISTRATIONID\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"authOpensliceProvider\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"c24bb527-f178-4d38-9b93-2027c1732876\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_USERNAME\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"admin\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"27e45df8-414b-44c6-a5d5-3f064e2cfd3b\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_PASSWORD\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"openslice\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"e0e470b8-6024-4014-8a18-2333e5465ce1\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_OAUTH2CLIENTSECRET\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"secret\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"3e0de762-ac80-4c1e-a0a1-f265ff0899b4\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_OAUTH2SCOPES\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"admin;read\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"0bbb8314-f7f2-420d-9fed-ba054b15f886\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_OAUTH2TOKENURI\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"http://portal.openslice.io/osapi-oauth-server/oauth/token\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"3a567de4-79eb-4006-a500-3e5229b44175\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_OAUTH2CLIENTID\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"osapiWebClientId\",\n        \"alias\": null\n      }\n    },\n    {\n      \"uuid\": \"6dca729f-dbe1-46b7-89f1-5c4f9fe89d4e\",\n      \"@baseType\": \"BaseEntity\",\n      \"@schemaLocation\": null,\n      \"@type\": null,\n      \"href\": null,\n      \"name\": \"EXTERNAL_TMFAPI_BASEURL\",\n      \"valueType\": null,\n      \"value\": {\n        \"value\": \"http://portal.openslice.io\",\n        \"alias\": null\n      }\n    }\n  ],\n  \"relatedParty\": [],\n  \"status\": null,\n  \"taxExemptionCertificate\": []\n}\n\n</code></pre>"},{"location":"architecture/issuemgt/","title":"Issue Management","text":"<p>For issue management support, Openslice relies on Bugzilla. Bugzilla is a ticketing tool that allows issue reporting and tracking via tickets to all relevant stakeholders. </p> <p>The figure below displays the overall issue management service architecture integrating Bugzilla as its core and how this tool interacts with other Openslice services presenting some distinctive scenarios. It should be noted that Bugzilla tickets will not only be used for bugs/errors, but also for general requests, e.g. Service Order procedure.</p> <p></p>"},{"location":"architecture/messagebus/","title":"Message Bus and exchanged Messages","text":"<p>Openslice has a Message bus which allows Openslice services to exchange messages via queues and topics.</p> <p>It is based on ActiveMQ.</p> <p>3rd party services can be attached to bus and subscribe to message topics or request resources via queues.</p>"},{"location":"architecture/messagebus/#queue-messages","title":"QUEUE MESSAGES","text":"Message Alias CATALOG_GET_SERVICEORDERS Name jms:queue:CATALOG.GET.SERVICEORDERS Type queue Destination TMF API service Producers OSOM Body Description Return a List as String Json Message Alias CATALOG_GET_SERVICEORDER_BY_ID Name jms:queue:CATALOG.GET.SERVICEORDER_BY_ID Type queue Destination TMF API service Producers OSOM Body String orderid Description Return a ServiceOrder as String Json Message Alias CATALOG_UPD_SERVICEORDER_BY_ID Name jms:queue:CATALOG.UPD.SERVICEORDER_BY_ID Type queue Destination TMF API service Producers OSOM Body ServiceOrderUpdate serviceOrder Headers \"orderid\"= orderid Description Returns a ServiceOrder as String Message Alias CATALOG_GET_SERVICESPEC_BY_ID Name jms:queue:CATALOG.GET.SERVICESPEC_BY_ID Type queue Destination TMF API service Producers OSOM Body specid Description Return a ServiceSpecification Message Alias CATALOG_ADD_SERVICESPEC Name jms:queue:CATALOG.ADD.SERVICESPEC Type queue Destination TMF API service Producers CRIDGE Body ServiceSpecCreate Description Creates a ServiceSpecification and  returns a ServiceSpecification as String Message Alias CATALOG_UPD_SERVICESPEC Name jms:queue:CATALOG.UPD.SERVICESPEC Type queue Destination TMF API service Producers CRIDGE Body ServiceSpecUpdate Headers \"serviceSpecid\" = serviceSpecId Description Updates a ServiceSpecification and  returns a ServiceSpecification as String. --- Message Alias CATALOG_UPDADD_SERVICESPEC Name jms:queue:CATALOG.UPDADD.SERVICESPEC Type queue Destination TMF API service Producers CRIDGE Body ServiceSpecUpdate Headers \"serviceSpecid\" = serviceSpecId, \"forceId\"=forceId Description Updates a ServiceSpecification and  returns a ServiceSpecification as String. If forceId is true then tries to assign the requested ID to the spec Message Alias CATALOG_ADD_SERVICEORDER Name jms:queue:CATALOG.ADD.SERVICEORDER Type queue Destination TMF API service Producers OSOM Body ServiceOrderCreate serviceOrder Headers Description Creates a ServiceOrder and  returns a ServiceOrder as String Message Alias CATALOG_GET_INITIAL_SERVICEORDERS_IDS Name jms:queue:CATALOG.GET.INITIAL_SERVICEORDERS Type queue Destination TMF API service Producers Body Description Return a List as String Json Message Alias CATALOG_GET_SERVICEORDER_IDS_BY_STATE Name jms:queue:CATALOG.GET.ACKNOWLEDGED_SERVICEORDERS Type queue Destination TMF API service Producers OSOM Body Headers \"orderstate\"= orderState Description String Json ArrayList of ServiceOrders Message Alias CATALOG_ADD_SERVICE Name jms:queue:CATALOG.ADD.SERVICE Type queue Destination TMF API service Producers OSOM Body ServiceCreate String json Headers \"orderid\"=orderid, \"serviceSpecid\"= specid Description Creates Service based an a Service Spec, Returns a Service object Message Alias CATALOG_UPD_SERVICE Name jms:queue:CATALOG.UPD.SERVICE Type queue Destination TMF API service Producers Body ServiceUpdate Headers \"serviceid\" = serviceId, \"propagateToSO\" = true/false Description will update a service by id and return the service instance. If propagateToSO=true then any service change will be handled by OSOM. This is needed to be controlled in order to avoid update loops Message Alias CATALOG_GET_SERVICE_BY_ID Name jms:queue:CATALOG.GET.SERVICE Type queue Destination TMF API service Producers OSOM Body String serviceID Description returns a Service instance <p>---| Message |    | | ------------- |----------------| |Alias |  CATALOG_GET_SERVICE_BY_ORDERID  | |Name |  jms:queue:CATALOG.GET.SERVICE_BY_ORDERID  | |Type | queue  | |Destination |   TMF API service | |Producers |  | |Body |  String serviceID | |Description |   returns Service IDs of a specific order given then order id |</p> Message Alias CATALOG_SERVICE_QUEUE_ITEMS_GET Name jms:queue:CATALOG.SERVICEQUEUEITEMS.GET Type queue Destination TMF API service Producers OSOM Body Description returns a LIST OF Service Queue Items --- Message Alias CATALOG_SERVICE_QUEUE_ITEM_UPD Name jms:queue:CATALOG.SERVICEQUEUEITEM.UPDATE Type queue Destination TMF API service Producers OSOM Body String SERVICEQUEUEITEM Headers \"itemid\" = SERVICEQUEUEITEM id Description ill update a service queue item by id and return the instance --- Message Alias CATALOG_SERVICE_QUEUE_ITEM_DELETE Name jms:queue:CATALOG.SERVICEQUEUEITEM.DELETE Type queue Destination TMF API service Producers OSOM Body Headers \"itemid\" = SERVICEQUEUEITEM id Description ill delete a service queue item by id Message Alias CATALOG_SERVICES_TO_TERMINATE Name jms:queue:CATALOG.GET.SERVICETOTERMINATE Type queue Destination TMF API service Producers OSOM Body Headers Description Get a list of ACTIVE services with END DAte in the past --- Message Alias CATALOG_SERVICES_OF_PARTNERS Name jms:queue:CATALOG.GET.SERVICESOFPARTNERS Type queue Destination TMF API service Producers OSOM Body Headers Description Get a list of ACTIVE services from the inventory of partners Message Alias NFV_CATALOG_GET_NSD_BY_ID Name jms:queue:NFVCATALOG.GET.NSD_BY_ID Type queue Destination NFV Catalog service Producers TMF API, OSOM Body NSDid Description Returns a NetworkServiceDescriptor object Message Alias NFV_CATALOG_DEPLOY_NSD_REQ Name jms:queue:NFVCATALOG.DEPLOY.NSD_REQ Type queue Destination NFV Catalog service Producers OSOM Body DeploymentDescriptor as Json String Headers NSD id Description Returns a DeploymentDescriptor object as json string containing deployment info Message Alias NFV_CATALOG_UPD_DEPLOYMENT_BY_ID Name jms:queue:NFVCATALOG.UPD.DEPLOYMENT_BY_ID Type queue Destination NFV Catalog service Producers OSOM Body DeploymentDescriptor as Json String Headers DeploymentDescriptor id Description Updates and Returns a DeploymentDescriptor object as json string containing deployment info Message Alias GET_USER_BY_USERNAME Name jms:queue:GET.USER_BY_USERNAME Type queue Destination NFV Catalog service (this is temproary for now) Producers TMF API Body username Headers Description Returns a PortalUser object as json string containing user info Message Alias NFV_CATALOG_GET_DEPLOYMENT_BY_ID Name jms:queue:NFVCATALOG.GET.DEPLOYMENT_BY_ID Type queue Destination NFV Catalog service Producers OSOM Body Deployment ID Description Returns a DeploymentDescriptor object Message Alias CATALOG_GET_EXTERNAL_SERVICE_PARTNERS Name jms:queue:CATALOG.GET.EXTERNALSERVICEPARTNERS Type queue Destination TMF API service Producers OSOM Body Headers Description As a String Json ArrayList of Organizaton objects containing the characteristic name EXTERNAL_TMFAPI Message Alias CATALOG_UPD_EXTERNAL_SERVICESPEC Name jms:queue:CATALOG.UPD.EXTERNAL_SERVICESPEC Type queue Destination TMF API service Producers OSOM or maybe used by others that would like to update a Service Spec Body A serviceSpecification as json string Headers servicespecification id, orgid id Description Updates (or inserts if does not exist in catalog) an external service specification) Message Alias NFV_CATALOG_NSACTIONS_SCALE Name jms:queue:NSACTIONS.SCALE Type queue Destination TMF API service Producers OSOM or maybe used by others that would like scale a NS Body A ScaleDescriptor as json string Headers none Description performs a scale Message Alias NFV_CATALOG_NS_LCMCHANGED Name NFV_CATALOG_NS_LCMCHANGED Type topic Destination any Producers MANO client Body A json string Headers none Description A NFV_CATALOG_NS_LCMCHANGED message is published when LCM of a running NS is changed"},{"location":"architecture/messagebus/#alarms","title":"ALARMS","text":"Message Alias ALARMS_ADD_ALARM Name jms:queue:ALARMS.ADD.ALARM Type queue Publishers Consumers TMF API Body AlarmCreate Headers Description Add an alarm Message Alias ALARMS_UPDATE_ALARM Name jms:queue:ALARMS.UPDATE.ALARM Type queue Publishers Consumers TMF API Body AlarmUpdate Headers alarmid = alarm id, body (AlarmUpdate object) Description Update an alarm Message Alias ALARMS_GET_ALARM Name jms:queue:ALARMS.GET.ALARM Type queue Publishers Consumers TMF API Body Headers alarmid = alarm id Description get an alarm"},{"location":"architecture/messagebus/#event-topics-in-message-bus","title":"EVENT TOPICS IN Message Bus","text":"Message Alias EVENT_SERVICE_CREATE Name jms:topic:EVENT.SERVICE.CREATE Type topic Publishers TMF API Consumers - Body Notification object Headers \"eventid\"=eventid, \"objId\"= objId Description xx Message Alias EVENT_SERVICE_STATE_CHANGED Name jms:topic:EVENT.SERVICE.STATECHANGED Type topic Publishers TMF API Consumers - Body Notification object Headers \"eventid\"=eventid, \"objId\"= objId Description xx Message Alias EVENT_SERVICE_DELETE Name jms:topic:EVENT.SERVICE.DELETE Type topic Publishers TMF API Consumers - Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description xx Message Alias EVENT_SERVICE_ATTRIBUTE_VALUE_CHANGED Name jms:topic:EVENT.SERVICE.ATTRCHANGED Type topic Publishers TMF API Consumers - Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description xx Message Alias EVENT_SERVICE_ORDER_CREATE Name jms:topic:EVENT.SERVICEORDER.CREATE Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the ServiceOrder object. Bugzilla service for example uses this to create a new issue Message Alias EVENT_SERVICE_ORDER_STATE_CHANGED Name jms:topic:EVENT.SERVICEORDER.STATECHANGED Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the ServiceOrder object. Bugzilla service for example uses this to update an issue Message Alias EVENT_SERVICE_ORDER_DELETE Name jms:topic:EVENT.SERVICEORDER.DELETE Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the ServiceOrder object Message Alias EVENT_SERVICE_ORDER_ATTRIBUTE_VALUE_CHANGED Name jms:topic:EVENT.SERVICEORDER.ATTRCHANGED Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service Body Notification object. Can be one of ServiceOrderCreateNotification, ServiceOrderStateChangeNotification, ServiceOrderAttributeValueChangeNotification, ServiceOrderDeleteNotification, etc Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the ServiceOrder object Message Alias EVENT_ALARM_CREATE Name jms:topic:EVENT.ALARM.CREATE Type topic Publishers TMF API Consumers OAS, BUGZILLA Service, CentralLog Service Body AlarmCreateEvent Headers Description The Event  contains the Alarm object in payload Message Alias CATALOG_ADD_RESOURCE Name jms:queue:CATALOG.ADD.RESOURCE Type topic Publishers TMF API Consumers any Body ResourceCreate Headers Description The Body  contains the ResourceCreate object to add Message Alias CATALOG_UPD_RESOURCE Name jms:queue:CATALOG.UPD.RESOURCE Type topic Publishers TMF API Consumers any Body ResourceUpdate Headers resourceid , propagateToSO Description The Body  contains the ResourceCreate object to update Message Alias CATALOG_GET_RESOURCE_BY_ID Name jms:queue:CATALOG.GET.RESOURCE Type topic Publishers TMF API Consumers any Body resourceid Headers Description The Body  contains the ResourceCreate object to update Message Alias CATALOG_RESOURCES_OF_PARTNERS Name jms:queue:CATALOG.GET.SERVICESOFPARTNERS Type topic Publishers TMF API Consumers any Body none Headers none Description retrieve all active services of partners Message Alias CATALOG_ADD_RESOURCESPEC Name jms:queue:CATALOG.ADD.RESOURCESPEC Type topic Publishers TMF API Consumers any Body ResourceSpecificationCreate Headers Description The Body  contains the ResourceSpecificationCreate object to add Message Alias CATALOG_UPD_RESOURCESPEC Name jms:queue:CATALOG.UPD.RESOURCESPEC Type topic Publishers TMF API Consumers any Body ResourceSpecificationUpdate Headers resourceSpecId Description The Body  contains the ResourceSpecificationCreate object to update Message Alias CATALOG_GET_RESOURCESPEC_BY_ID Name jms:queue:CATALOG.GET.RESOURCESPEC_BY_ID Type topic Publishers TMF API Consumers any Body resourceSpecid Headers Description The Body  contains the object id to find Message Alias CATALOG_UPDADD_RESOURCESPEC Name jms:queue:CATALOG.UPDADD.RESOURCESPEC Type topic Publishers TMF API Consumers any Body resourceid Headers Description The Body  contains the ResourceSpecificationCreate object to update or create if not exist Message Alias EVENT_RESOURCE_CREATE Name jms:topic:EVENT.RESOURCE.CREATE Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service, other Body Notification object. Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the Resource object Message Alias EVENT_RESOURCE_STATE_CHANGED Name jms:topic:EVENT.RESOURCE.STATECHANGED Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service, other Body Notification object. Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the Resource object Message Alias EVENT_RESOURCE_DELETE Name jms:topic:EVENT.SERVICE.RESOURCE Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service, other Body Notification object. Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the Resource object Message Alias EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED Name jms:topic:EVENT.RESOURCE.ATTRCHANGED Type topic Publishers TMF API Consumers BUGZILLA Service, CentralLog Service, other Body Notification object. Headers \"eventid\"=eventid, \"objId\"= objId Description The Event of the Notification object contains the Resource object Message Alias CATALOG_GET_LCMRULE_BY_ID Name jms:queue:CATALOG.GET.LCMRULE Type topic Publishers TMF API Consumers any Body lcmid Headers Description The Body  contains the LCMRuleSpec object Message Alias CATALOG_GET_LCMRULES_BY_SPECID_PHASE Name jms:queue:CATALOG.GET.LCMRULES_BY_SPECID_PHASE Type topic Publishers TMF API Consumers any Body Headers header.servicespecid, header.phasename Description The Body  contains the LCMRuleSpec objects of the specific Service Spec and the specific phase Message Alias CATALOG_GET_SERVICETESTSPEC_BY_ID Name jms:queue:CATALOG.GET.SERVICETESTSPEC_BY_ID Type queue Destination TMF API service Producers OSOM Body specid Description Return a ServiceTestSpecification Message Alias CATALOG_ADD_SERVICETEST Name jms:queue:CATALOG.ADD.SERVICETEST Type queue Destination TMF API service Producers OSOM Body ServiceTestCreate String json Headers \"orderid\"=orderid, \"serviceTestSpecid\"= specid Description Creates Service Test based an a Service Test Spec, Returns a ServiceTest object Message Alias CATALOG_UPD_SERVICETEST Name jms:queue:CATALOG.UPD.SERVICETEST Type queue Destination TMF API service Producers Body ServiceTestUpdate Headers \"serviceid\" = serviceId, \"propagateToSO\" = true/false Description will update a service test by id and return the service instance. If propagateToSO=true then any service change will be handled by OSOM. This is needed to be controlled in order to avoid update loops Message Alias CATALOG_GET_SERVICETEST_BY_ID Name jms:queue:CATALOG.GET.SERVICETEST Type queue Destination TMF API service Producers OSOM Body String serviceID Description returns a Service TEST instance Message Alias CRD_DEPLOY_CR_REQ Name jms:queue:CRD.DEPLOY.CR_REQ Type queue Destination CRD  service Producers OSOM Body CR spec as String Headers related service id Description Returns a String object containing deployment info Message Alias CRD_PATCH_CR_REQ Name jms:queue:CRD.PATCH.CR_REQ Type queue Destination CRD  service Producers OSOM Body CR  as String Headers related service id Description Returns a String object containing PATCH info Message Alias CRD_DELETE_CR_REQ Name jms:queue:CRD.DELETE.CR_REQ Type queue Destination CRD  service Producers OSOM Body CR  as String Headers related service id Description Returns a String object containing deletion info"},{"location":"architecture/nfvapi/","title":"API interaction","text":""},{"location":"architecture/nfvapi/#oauth-token","title":"OAuth token","text":"<p>See oauth</p>"},{"location":"architecture/nfvapi/#request-a-protected-api-resource","title":"Request a protected API resource","text":"<p>Example: Get all vxfs (check the <code>Authorization:Bearer</code> to be correct)</p> <pre><code>curl -H \"Authorization:Bearer eybGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbIm9wZW5hcGkiLCJhZG1pbiIsInJlYWQiLCJ3cml0ZSJdLCJvcmdhbml6YXRpb24iOiJteW9yZ2FuaXp0aW9uIiwiZXhwIjoxNTcxOTI0MjU2LCJhdXRob3JpdGllcyI6WyJST0xFX01FTlRPUiIsIlJPTEVfQURNSU4iXSwianRpIjoiNzNkZmIxODEtNTMwOS00MmExLThkOWUtOGM3YmQ0YTE1YmU0IiwiY2xpZW50X2lkIjoib3NhcGlXZWJDbGllbnRJZE91dCJ9.Pj_hxnyMGhFhN8avU_DiAw1-LlcaIz5Hp9HNqalw-X4\" http://localhost:13000/osapi/admin/vxfs\n</code></pre> <p>Example response:</p> <pre><code>[\n  {\n    \"id\": 1,\n    \"owner\": {\n      \"id\": 1,\n      \"organization\": \"ee\",\n      \"name\": \"Portal Administrator\",\n      \"email\": \"\",\n      \"username\": \"admin\",\n      \"createdAt\": null\n    },\n    \"uuid\": \"a954daf2-16da-4b7e-ae42-4825936d453c\",\n    \"name\": \"cirros_vnfd\",\n    \"iconsrc\": \"/osapi/images/a954daf2-16da-4b7e-ae42-4825936d453c/cirros-64.png\",\n    \"shortDescription\": \"cirros_vnfd\",\n    \"longDescription\": \"Simple VNF example with a cirros\",\n    \"version\": \"1.0\",\n    \"packageLocation\": \"/osapi/packages/a954daf2-16da-4b7e-ae42-4825936d453c/cirros_vnf.tar.gz\",\n    \"dateCreated\": 1568971426000,\n    \"dateUpdated\": 1568981107000,\n    \"categories\": [\n      {\n        \"id\": 3,\n        \"name\": \"Service\",\n        \"productsCount\": 1,\n        \"appscount\": 0,\n        \"vxFscount\": 1\n      },\n      {\n        \"id\": 2,\n        \"name\": \"Networking\",\n        \"productsCount\": 1,\n        \"appscount\": 0,\n        \"vxFscount\": 1\n      }\n    ],\n    \"extensions\": [],\n    \"validationJobs\": [],\n    \"screenshots\": \"\",\n    \"vendor\": \"OSM\",\n    \"published\": false,\n    \"termsOfUse\": null,\n    \"descriptor\": \"vnfd-catalog:\\n    vnfd:\\n    -   connection-point:\\n        -   name: eth0\\n            type: VPORT\\n        description: Simple VNF example with a cirros\\n        id: cirros_vnfd\\n        logo: cirros-64.png\\n        mgmt-interface:\\n            cp: eth0\\n        name: cirros_vnfd\\n        short-name: cirros_vnfd\\n        vdu:\\n        -   count: 1\\n            description: cirros_vnfd-VM\\n            id: cirros_vnfd-VM\\n            image: cirros034\\n            interface:\\n            -   external-connection-point-ref: eth0\\n                name: eth0\\n                position: '1'\\n                type: EXTERNAL\\n                virtual-interface:\\n                    bandwidth: '0'\\n                    type: VIRTIO\\n                    vpci: 0000:00:0a.0\\n            name: cirros_vnfd-VM\\n            vm-flavor:\\n                memory-mb: 512\\n                storage-gb: 1\\n                vcpu-count: 1\\n        vendor: OSM\\n        version: '1.0'\\n\",\n    \"descriptorHTML\": \"&lt;h3&gt;cirros_vnfd&lt;/h3&gt;&lt;br&gt;&lt;b&gt;Vendor: &lt;/b&gt;OSM&lt;br&gt;&lt;b&gt;Version: &lt;/b&gt;1.0&lt;br&gt;&lt;b&gt;Description: &lt;/b&gt;Simple VNF example with a cirros&lt;br&gt;&lt;b&gt;VM Count: &lt;/b&gt;1&lt;br&gt;&lt;b&gt;vCPU Count: &lt;/b&gt;1&lt;br&gt;&lt;b&gt;Memory: &lt;/b&gt;512 MB&lt;br&gt;&lt;b&gt;Storage: &lt;/b&gt;1 GB&lt;br&gt;\",\n    \"certified\": false,\n    \"certifiedBy\": null,\n    \"validationStatus\": \"UNDER_REVIEW\",\n    \"packagingFormat\": \"OSMvFIVE\",\n    \"supportedMANOPlatforms\": [\n      {\n        \"id\": 1,\n        \"name\": \"osm fivee\",\n        \"version\": \"osm fivee\",\n        \"description\": \"osm five\"\n      }\n    ],\n    \"vxfOnBoardedDescriptors\": [],\n    \"vfimagesVDU\": [\n      {\n        \"id\": 1,\n        \"name\": \"cirros034\",\n        \"uuid\": \"d4549610-8abd-42ad-97f4-0a64e1c93977\",\n        \"shortDescription\": \"Automatically created during vxf cirros_vnfd submission. Owner must update.\",\n        \"packageLocation\": null,\n        \"publicURL\": null,\n        \"dateCreated\": 1568971426000,\n        \"dateUpdated\": null,\n        \"refVxFs\": [\n          {\n            \"id\": 1,\n            \"name\": \"cirros_vnfd\"\n          }\n        ],\n        \"owner\": {\n          \"id\": 1,\n          \"organization\": \"ee\",\n          \"name\": \"Portal Administrator\",\n          \"email\": \"\",\n          \"username\": \"admin\",\n          \"active\": true,\n          \"currentSessionID\": null,\n          \"apikey\": \"e41c1cc4-aa56-4b7e-9f4d-64589549d768\",\n          \"createdAt\": 1568711859000,\n          \"roles\": [\n            \"ADMIN\",\n            \"MENTOR\"\n          ]\n        },\n        \"published\": false,\n        \"termsOfUse\": null,\n        \"deployedInfrastructures\": []\n      }\n    ]\n  },\n  {\n    \"id\": 2,\n    \"owner\": {\n      \"id\": 1,\n      \"organization\": \"ee\",\n      \"name\": \"Portal Administrator\",\n      \"email\": \"\",\n      \"username\": \"admin\",\n      \"createdAt\": null\n    },\n    \"uuid\": \"4ab80095-a63e-4fe7-8598-e1c7e880706e\",\n    \"name\": \"cirros_sriov_vnfd\",\n    \"iconsrc\": null,\n    \"shortDescription\": \"cirros_sriov_vnf\",\n    \"longDescription\": \"Simple VNF example with a cirros SRIOV interface\",\n    \"version\": \"1.0\",\n    \"packageLocation\": \"/osapi/packages/4ab80095-a63e-4fe7-8598-e1c7e880706e/cirros_sriov.tar.gz\",\n    \"dateCreated\": 1568971740000,\n    \"dateUpdated\": 1568981100000,\n    \"categories\": [\n      {\n        \"id\": 4,\n        \"name\": \"tyu\",\n        \"productsCount\": 1,\n        \"appscount\": 0,\n        \"vxFscount\": 1\n      },\n      {\n        \"id\": 5,\n        \"name\": \"tyi\",\n        \"productsCount\": 1,\n        \"appscount\": 0,\n        \"vxFscount\": 1\n      }\n    ],\n    \"extensions\": [],\n    \"validationJobs\": [],\n    \"screenshots\": \"\",\n    \"vendor\": \"OSM\",\n    \"published\": false,\n    \"termsOfUse\": null,\n    \"descriptor\": \"vnfd:vnfd-catalog:\\n  vnfd:\\n  - connection-point:\\n    - name: eth0\\n      type: VPORT\\n    - name: eth1\\n      type: VPORT\\n    description: Simple VNF example with a cirros SRIOV interface\\n    id: cirros_sriov_vnfd\\n    logo: cirros-64.png\\n    mgmt-interface:\\n      cp: eth0\\n    name: cirros_sriov_vnf\\n    short-name: cirros_sriov_vnf\\n    vdu:\\n    - count: 1\\n      description: cirros_sriov_vnfd-VM\\n      guest-epa:\\n        cpu-pinning-policy: DEDICATED\\n        cpu-thread-pinning-policy: PREFER\\n        mempage-size: SMALL\\n        numa-node-policy:\\n          mem-policy: STRICT\\n          node:\\n          - id: '1'\\n          node-cnt: '1'\\n      id: cirros_sriov_vnfd-VM\\n      image: cirros-0.3.6-x86_64\\n      interface:\\n      - external-connection-point-ref: eth0\\n        name: eth0\\n        position: '1'\\n        type: EXTERNAL\\n        virtual-interface:\\n          bandwidth: '0'\\n          type: VIRTIO\\n          vpci: 0000:00:0a.0\\n      - external-connection-point-ref: eth1\\n        name: eth1\\n        position: '2'\\n        type: EXTERNAL\\n        virtual-interface:\\n          type: SR-IOV\\n      name: cirros_sriov_vnfd-VM\\n      vm-flavor:\\n        memory-mb: 4096\\n        storage-gb: 10\\n        vcpu-count: 4\\n    vendor: OSM\\n    version: '1.0'\\n\",\n    \"descriptorHTML\": \"&lt;h3&gt;cirros_sriov_vnf&lt;/h3&gt;&lt;br&gt;&lt;b&gt;Vendor: &lt;/b&gt;OSM&lt;br&gt;&lt;b&gt;Version: &lt;/b&gt;1.0&lt;br&gt;&lt;b&gt;Description: &lt;/b&gt;Simple VNF example with a cirros SRIOV interface&lt;br&gt;&lt;b&gt;VM Count: &lt;/b&gt;1&lt;br&gt;&lt;b&gt;vCPU Count: &lt;/b&gt;1&lt;br&gt;&lt;b&gt;Memory: &lt;/b&gt;4096 MB&lt;br&gt;&lt;b&gt;Storage: &lt;/b&gt;10 GB&lt;br&gt;\",\n    \"certified\": false,\n    \"certifiedBy\": null,\n    \"validationStatus\": \"UNDER_REVIEW\",\n    \"packagingFormat\": \"OSMvFIVE\",\n    \"supportedMANOPlatforms\": [\n      {\n        \"id\": 1,\n        \"name\": \"osm fivee\",\n        \"version\": \"osm fivee\",\n        \"description\": \"osm five\"\n      }\n    ],\n    \"vxfOnBoardedDescriptors\": [],\n    \"vfimagesVDU\": [\n      {\n        \"id\": 2,\n        \"name\": \"cirros-0.3.6-x86_64\",\n        \"uuid\": \"be121176-1d62-4a1b-a3c1-7dce2e069d22\",\n        \"shortDescription\": \"Automatically created during vxf cirros_sriov_vnfd submission. Owner must update.\",\n        \"packageLocation\": null,\n        \"publicURL\": null,\n        \"dateCreated\": 1568971740000,\n        \"dateUpdated\": null,\n        \"refVxFs\": [\n          {\n            \"id\": 2,\n            \"name\": \"cirros_sriov_vnfd\"\n          }\n        ],\n        \"owner\": {\n          \"id\": 1,\n          \"organization\": \"ee\",\n          \"name\": \"Portal Administrator\",\n          \"email\": \"\",\n          \"username\": \"admin\",\n          \"active\": true,\n          \"currentSessionID\": null,\n          \"apikey\": \"e41c1cc4-aa56-4b7e-9f4d-64589549d768\",\n          \"createdAt\": 1568711859000,\n          \"roles\": [\n            \"ROLE_ADMIN\",\n            \"ROLE_MENTOR\"\n          ]\n        },\n        \"published\": false,\n        \"termsOfUse\": null,\n        \"deployedInfrastructures\": []\n      }\n    ]\n  }\n]\n</code></pre>"},{"location":"architecture/oauth/","title":"Authentication Server","text":"<p>Authentication is based on oAuth2. Our authentication service is a Keycloak server which is deployed with Openslice deployment </p> <p>API users needs to authenticate.  All APIs (except grant token request) must include Bearer token in request Authorization header.</p>"},{"location":"architecture/oauth/#oauth-token","title":"OAuth token","text":"<p>Get first an oauth token, using your username and password. </p> <pre><code>curl -X POST http://portal.openslice.io/auth/realms/openslice/protocol/openid-connect/token -H 'Content-Type: application/x-www-form-urlencoded' -d 'username=demouser' -d 'password=demouser' -d 'grant_type=password' -d 'client_id=osapiWebClientId' \n</code></pre> <p>response:</p> <pre><code>                                                       {\"access_token\":\"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJHZFRjQnpxczg2VW10NTRVZV8ybTJyWHJkV3dzaWdSZE9EUldMYm1memNvIn0.eyJleHAiOjE1ODgyNDA1NzAsImlhdCI6MTU4ODI0MDI3MCwianRpIjoiOGI2ZTU0NWUtNDIyYy00NzFiLWEwN2UtYTUzYzY1NDQ0MzZmIiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6ImExYTI3NjVhLWVjODMtNDQ1Ni1iN2IyLTIwNzMxOTg2ZTAzNSIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9zYXBpV2ViQ2xpZW50SWQiLCJzZXNzaW9uX3N0YXRlIjoiMzM1MGY0OTMtNjYyNy00MzczLTg1NDQtZGVmZDI3YWQzYzc0IiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwOi8vbG9jYWxob3N0OjEzMDgyIiwiaHR0cDovL2xvY2FsaG9zdCIsImh0dHA6Ly9vcGVuc2xpY2UuaW8iLCJodHRwOi8vbG9jYWxob3N0OjEzMDAwIiwiaHR0cDovL2xvY2FsaG9zdDo0MjAwIiwiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8iXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIk5GVl9ERVZFTE9QRVIiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiRVhQRVJJTUVOVEVSIiwiVVNFUiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJkZW1vdXNlciJ9.TnzzpRLMD94UTKpT5_wkr1h4_3KUQmr4TGvFLpJ7cZx-Klrv8tB_eRkWnPqqzCAM9G21a1qXboL8MLMW8ECzG7HYKpobKOGr7LSczMOTdA2ZDyBCRUSOdW77pchu54tJ0ITEkFaDwSKMKKt04V_Sy4U-eIndj0XzzRlkDolWDnK4Z2lRaXAI6fMwOKx1Toa6RfOcemxtzl3pdtjPx92zo6MaKlbIqHK82lxdK0k8aQQaT6TmIrXbZKV2dU_1d3O0q0dVUEZJ_1kzwqOFkmxr9w0EnndC6ccYJlDAr_-GgUhhhNOn5v6tjYLUQdj5e4KEAsxIPzaCreK4un7mEAPmDw\",\"expires_in\":300,\"refresh_expires_in\":1800,\"refresh_token\":\"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIwZjUxMDk5Yy0wNTIzLTRjNGQtODM0Zi1iNDc0YzBjOTA1MzkifQ.eyJleHAiOjE1ODgyNDIwNzAsImlhdCI6MTU4ODI0MDI3MCwianRpIjoiZmViOTg5NWEtOTY5ZS00MzIzLWJjY2QtZTY2YzQ0NGE1MzJlIiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwiYXVkIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwic3ViIjoiYTFhMjc2NWEtZWM4My00NDU2LWI3YjItMjA3MzE5ODZlMDM1IiwidHlwIjoiUmVmcmVzaCIsImF6cCI6Im9zYXBpV2ViQ2xpZW50SWQiLCJzZXNzaW9uX3N0YXRlIjoiMzM1MGY0OTMtNjYyNy00MzczLTg1NDQtZGVmZDI3YWQzYzc0Iiwic2NvcGUiOiJwcm9maWxlIGVtYWlsIn0.cDTx9BE1Df8EfGYm3VLr_MNFeymxZtJhMtlK7PVbIuk\",\"token_type\":\"bearer\",\"not-before-policy\":1586797346,\"session_state\":\"3350f493-6627-4373-8544-defd27ad3c74\",\"scope\":\"profile email\"}\n\n</code></pre> <p>The <code>access_token</code> will be used next as a Bearer.</p> <pre><code>curl http://portal.openslice.io/tmf-api/serviceCatalogManagement/v4/serviceCatalog -H 'Authorization: Bearer yJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJHZFRjQnpxczg2VW10NTRVZV8ybTJyWHJkV3dzaWdSZE9EUldMYm1memNvIn0.eyJleHAiOjE1ODgyNDA1MjQsImlhdCI6MTU4ODI0MDIyNCwianRpIjoiYjg0NGYxZDAtMzk3Mi00YTMyLThiMWEtZDAxMDY3OGZjMTQ4IiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwic3ViIjoiYTFhMjc2NWEtZWM4My00NDU2LWI3YjItMjA3MzE5ODZlMDM1IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiYWRtaW4tY2xpIiwic2Vzc2lvbl9zdGF0ZSI6ImFmMmMzZmY1LTE4YWQtNDFkNC1hYTAyLTFlMGJkNzNmOTM5MSIsImFjciI6IjEiLCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoiZGVtb3VzZXIifQ.SMtgV1E44_K_MQumGXZtWsLGVhYNaoM8Pk-DiFIZtUP4Zu-ervOsxHVQMX1frgVERR4jJidBcSshy9TnJ3UjF4l33WujHltbs-1UPy-gaIufVuEpl8RmbjOti3Up70vLfLXbzb6kN6WaahgobWXlbJsSXXwaBPQP6vSX5KigCa8TmzXcuqom14lOrlU-RB2zQTlJ30p7d9ag-a7o3I5m9GZWLJCZW2UYMl1JkskTHKgilA8HFQY4C9DYwWu8YDMyzqQSNumrTlURalBFidFbZvb1kp4dAyct8TysSWSbxxiwaL2RX1PWUqk-5Fpc1Q6BnBC8muMheiukFuoSkuADAg'^C\nubuntu@portal:~$ curl http://portal.openslice.io/tmf-api/serviceCatalogManagement/v4/serviceCatalog -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJHZFRjQnpxczg2VW10NTRVZV8ybTJyWHJkV3dzaWdSZE9EUldMYm1memNvIn0.eyJleHAiOjE1ODgyNDA1NzAsImlhdCI6MTU4ODI0MDI3MCwianRpIjoiOGI2ZTU0NWUtNDIyYy00NzFiLWEwN2UtYTUzYzY1NDQ0MzZmIiwiaXNzIjoiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8vYXV0aC9yZWFsbXMvb3BlbnNsaWNlIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6ImExYTI3NjVhLWVjODMtNDQ1Ni1iN2IyLTIwNzMxOTg2ZTAzNSIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9zYXBpV2ViQ2xpZW50SWQiLCJzZXNzaW9uX3N0YXRlIjoiMzM1MGY0OTMtNjYyNy00MzczLTg1NDQtZGVmZDI3YWQzYzc0IiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyJodHRwOi8vbG9jYWxob3N0OjEzMDgyIiwiaHR0cDovL2xvY2FsaG9zdCIsImh0dHA6Ly9vcGVuc2xpY2UuaW8iLCJodHRwOi8vbG9jYWxob3N0OjEzMDAwIiwiaHR0cDovL2xvY2FsaG9zdDo0MjAwIiwiaHR0cDovL3BvcnRhbC5vcGVuc2xpY2UuaW8iXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIk5GVl9ERVZFTE9QRVIiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiRVhQRVJJTUVOVEVSIiwiVVNFUiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJkZW1vdXNlciJ9.TnzzpRLMD94UTKpT5_wkr1h4_3KUQmr4TGvFLpJ7cZx-Klrv8tB_eRkWnPqqzCAM9G21a1qXboL8MLMW8ECzG7HYKpobKOGr7LSczMOTdA2ZDyBCRUSOdW77pchu54tJ0ITEkFaDwSKMKKt04V_Sy4U-eIndj0XzzRlkDolWDnK4Z2lRaXAI6fMwOKx1Toa6RfOcemxtzl3pdtjPx92zo6MaKlbIqHK82lxdK0k8aQQaT6TmIrXbZKV2dU_1d3O0q0dVUEZJ_1kzwqOFkmxr9w0EnndC6ccYJlDAr_-GgUhhhNOn5v6tjYLUQdj5e4KEAsxIPzaCreK4un7mEAPmDw'\n\nResponse:\n\n\n[{\"uuid\":\"9e186cd5-b2b2-4a06-b1d6-895720193bc9\",\"lastUpdate\":\"2020-03-11T23:19:05Z\",\"@baseType\":\"BaseEntity\",\"@schemaLocation\":null,\"@type\":\"ServiceCatalog\",\"href\":null,\"name\":\"Example Facility Services\",\"description\":\"Example Facility Services\",\"lifecycleStatus\":\"Active\",\"version\":\"1.0\",\"validFor\":{\"endDateTime\":\"2039-11-20T23:07:21Z\",\"startDateTime\":\"2019-11-20T23:07:21Z\"},\"relatedParty\":null,\"id\":\"9e186cd5-b2b2-4a06-b1d6-895720193bc9\",\"category\":[{\"@baseType\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"@schemaLocation\":null,\"@type\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"href\":null,\"name\":\"Generic Services\",\"@referredType\":null,\"id\":\"98b9adf1-a1d6-4165-855f-153ddc2131b1\"},{\"@baseType\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"@schemaLocation\":null,\"@type\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"href\":null,\"name\":\"External\",\"@referredType\":null,\"id\":\"08ffdb3c-6237-45d0-9f3a-d43b5fc5f0b6\"},{\"@baseType\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"@schemaLocation\":null,\"@type\":\"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\"href\":null,\"name\":\"eMBB\",\"@referredType\":null,\"id\":\"ef2c90dd-b65e-4a9f-a9c3-427c9fb0219b\"}]}]\n\n\n</code></pre>"},{"location":"architecture/osom/","title":"Openslice Service Orchestration and Order Management - OSOM","text":"<p>OSOM is a service responsible for:</p> <ul> <li>Service Order Management (SOM)</li> <li>Service Orchestration (SO)</li> </ul> <p>It uses open source Flowable Business process engine (https://www.flowable.org) .</p> <p>A Service Order follows the states as defined in TMF641 specification: </p> <p></p>"},{"location":"architecture/osom/#initial-state","title":"Initial state","text":"<p>When a new order is created, it goes into the Initial state. It is stored in the repository and triggers an Event.</p> <p></p> <p>Administrators are notified usually from the Ticketing System of a new order. They login to Openslice and change the State of the order either to ACKNOWLEDGED or REJECTED. If ACKNOWLEDGED they can Propose a startDate, add Notes, and add any additional service items</p>"},{"location":"architecture/osom/#order-scheduler","title":"Order scheduler","text":"<p>A process checks every 1 minute for ACKNOWLEDGED orders.</p> <p></p> <p></p> <p>It retrieves all orders that are in ACKNOWLEDGED state and if the start date is in time it will initialize the process by settingn the order in IN_PROGRESS state. Finally the Start Order Process will start.</p>"},{"location":"architecture/osom/#start-order-process","title":"Start order process","text":"<p>This process for now is a draft simple prototype to make a simple orchestration via NFVO. Here the actual Services (TMF638/640 model) are created and attached to Service Order and Service Inventory.</p> <p></p> <p></p> <p>We expect here to check which tasks can be orchestrated by NFVO and which by human. We create the equivalent Services(TMF638/640 model) for this order.</p> <ol> <li>During check it should decide to create Service(s) for this service order O1 and send it to ServiceInventory</li> <li>The Services(TMF638 model) are assigned to the Order O1 In supportService List</li> <li>Each OrderItem OI1 is related to one serviceSpecification</li> <li>Each ServiceSpecification has also related serviceSpecRelationships</li> <li>So if we receive an order O1 for a ServiceSpec A which relates to (a bundle of) 3 specs(2 CFS, 1 RFS) we do the following:<ol> <li>Create a Service S_A(TMF638 model) for ServiceSpec A for Order O1</li> <li>We create also 3 Services S_C1, S_C2 and S_R1 equivalent to the serviceSpecRelationships (2 CFS, 1 RFS) </li> <li>At this point the order will have 1 Local Service Orchestration Process(S_A),  2 supportingServices  refs(S_C1, S_C2) and 1 supportingResource(S_R1)</li> <li>The 3 supportingServices and 1 supportingResource correspond to total 4 Services in ServiceInventory</li> <li>Service S_A will have: <ol> <li>startMode 1: Automatically by the managed environment</li> <li>State: RESERVED and the Lifecycle will be handled by OSOM</li> </ol> </li> <li>Services S_C1 and S_C2 we decide that cannot be orchestrated then they have <ol> <li>startMode: 3: Manually by the Provider of the Service</li> <li>State: RESERVED and the Lifecycle will be handled by OSOM</li> <li>If the CFS is a bundle spec it is further recursively orchestrated </li> </ol> </li> <li>Service S_R1 will have <ol> <li>startMode 1: Automatically by the managed environment.</li> <li>State: RESERVED</li> <li>IF The Service has the characteristic CharacteristicByName( \"NSDID\") it will be further processed by the NFVO </li> </ol> </li> </ol> </li> </ol> <p>There will be two instances of task \"User Task Manual Complete Service\" each for Services S_C1 and S_C2. The task is Transient for now. It displays only the services that are not automated!  Here is a flow for future:</p> <ol> <li>We wait here for human decision.</li> <li>From API we get a result:     a. If set to ACTIVE/TERMINATED then we complete the task     b. In any other state we stay in this task until it is resolved as in step a     c. The Status of ORDER O1 is also updated to PARTIAL</li> </ol> <p>There will be an instance of  NFVODeploymentRequest process  each for Service S_R1. (see later)</p> <ol> <li>This process is related with the NFVO orchestration</li> <li>It will send a msg to NFVO(s?) for a specific deployment request</li> </ol> <p>All services in \"Order Complete\" are in a status:</p> <ol> <li>Depending on the result the service S_A is either ACTIVE or INACTIVE or TERMINATED</li> <li>The Status of ORDER O1 is also updated to COMPLETED  or PARTIAL (in case we have some services running) or FAILED (in cases we have errors)</li> </ol> <p>A Service follows the states as defined in TMF638 Service Inventory specification: </p> <p></p>"},{"location":"architecture/osom/#nfvodeploymentrequest-process","title":"NFVODeploymentRequest process","text":"<p>This process is related with the NFVO orchestration It will send a msg to NFVO(s?) for a specific deployment request Then it checks the deployment status. It will wait 30 secs each time until the deployment is running (or failed)</p>"},{"location":"architecture/osom/#check-in-progress-orders-process","title":"Check In Progress orders process","text":"<p>Every 1 minute the \"Check In Progress Orders\" process is executed checking if a supported Service changed state (i.e. to ACTIVE) then the whole Order will change state (e.g. go to COMPLETED)</p> <p></p>"},{"location":"architecture/osom/#external-service-provider-deployment-request-process","title":"External Service Provider Deployment Request process","text":"<p>This process contains tasks for submitting order requests to external partners. - Submit Order To External Service Provider Task: This task creates automatically a Service Order request to a 3rd party provider SO that hosts the Service Specification - Check external service order fulfillment task: This task Check external partner for Service creations and updates our local inventory of services the service characteristics of remote Service Inventory</p>"},{"location":"architecture/osom/#fetch-partner-services-process","title":"Fetch Partner Services Process","text":"<p>Every 2 minutes the \"fetchPartnerServicesProcess\" process is executed checking remote Partner Organizations for changes in the published catalogues. The Fetch and Update External Partner Services Task is executed in paralle l for each Partner Organization </p>"},{"location":"architecture/osom/#local-service-orchestration-process","title":"Local Service Orchestration Process","text":"<p>This process handles automatically services that need to be further orchestrated or processed by OSOM. For example, for a CFS Bundled service we create such automated service instances that just aggregate the underlying services. </p>"},{"location":"architecture/tmfapi/","title":"TMF OpenAPI specification","text":"<p>PLease check the complete specification here.</p>"},{"location":"architecture/tmfapi/#api-interaction","title":"API interaction","text":""},{"location":"architecture/tmfapi/#oauth-token","title":"OAuth token","text":"<p>See oauth</p>"},{"location":"architecture/tmfapi/#request-a-protected-api-resource","title":"Request a protected API resource","text":"<p>Example: Get all Service Catalogs (check the <code>Authorization:Bearer</code> to be correct)</p> <pre><code>curl -H \"Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbIm9wZW5hcGkiLCJhZG1pbiIsInJlYWQiLCJ3cml0ZSJdLCJvcmdhbml6YXRpb24iOiJteW9yZ2FuaXp0aW9uIiwiZXhwIjoxNTc4NTA1MDcyLCJhdXRob3JpdGllcyI6WyJST0xFX01FTlRPUiIsIlJPTEVfQURNSU4iXSwianRpIjoiMTFlNGYxYTUtZDY0Ny00YzA1LWE0ZGMtYWFhYzUyMjk4YzMwIiwiY2xpZW50X2lkIjoib3NhcGlXZWJDbGllbnRJZE91dCJ9.gm7cKdusDrdMRkxEiFU5sENKGRC1xwVj2SgPRmE9xxx\"  -H  \"accept: application/json;charset=utf-8\" -X GET \"http://portal.openslice.io/tmf-api/serviceCatalogManagement/v4/serviceCatalog\"\n\n</code></pre> <p>response:</p> <pre><code>[\n  {\n    \"uuid\": \"9e186cd5-b2b2-4a06-b1d6-895720193bc9\",\n    \"lastUpdate\": \"2019-12-19T10:45:55Z\",\n    \"@baseType\": \"BaseEntity\",\n    \"@schemaLocation\": null,\n    \"@type\": \"ServiceCatalog\",\n    \"href\": null,\n    \"name\": \"Example Facility Services\",\n    \"description\": \"Example Facility Services\",\n    \"lifecycleStatus\": \"Active\",\n    \"version\": \"1.0\",\n    \"validFor\": {\n      \"endDateTime\": \"2039-11-20T23:07:21Z\",\n      \"startDateTime\": \"2019-11-20T23:07:21Z\"\n    },\n    \"relatedParty\": null,\n    \"id\": \"9e186cd5-b2b2-4a06-b1d6-895720193bc9\",\n    \"category\": [\n      {\n        \"@baseType\": \"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\n        \"@schemaLocation\": null,\n        \"@type\": \"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\n        \"href\": null,\n        \"name\": \"eMBB\",\n        \"@referredType\": null,\n        \"id\": \"ef2c90dd-b65e-4a9f-a9c3-427c9fb0219b\"\n      },\n      {\n        \"@baseType\": \"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\n        \"@schemaLocation\": null,\n        \"@type\": \"org.etsi.osl.tmf.scm633.model.ServiceCategoryRef\",\n        \"href\": null,\n        \"name\": \"Generic Services\",\n        \"@referredType\": null,\n        \"id\": \"98b9adf1-a1d6-4165-855f-153ddc2131b1\"\n      }\n    ]\n  }\n]\n</code></pre>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/","title":"CRIDGE: A Service to manage Custom Resources in a Kubernetes Cluster","text":""},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#intended-audience-osl-developers","title":"Intended Audience: OSL developers","text":"<p>Kubernetes is an orchestration system for automating software deployment, scaling, and management. One can interact though the Kubernetes API and it has a set of objects ready for use out of the box. Custom Resource Definitions (CRDs) is a way that allows to manage things other than Kubernetes itself and allows to create our own objects The use of CRDs makes the possibilities of Kubernetes management almost limitless. You can extend the base Kubernetes API with any object you like using CRDs.</p> <p>CRIDGE is a service designed to create and manage Custom Resources (CRs) based on Custom Resource Definitions (CRDs) installed on a Kubernetes cluster. By leveraging the OpenSlice (OSL), CRIDGE enables seamless integration and  orchestration within Kubernetes environments, utilizing Kubernetes APIs via the TMF APIs and models. Thus, more or less, OSL exposes Kubernetes APIs as TMF APIs and models.</p> <p>By allowing the design and lifecycle management of services/resources that expose CRDs/CRs in a Kubernetes cluster via the TMF APIs, OSL can be used in many complex scenarios now involing resources from multiple domains.</p> <ol> <li> <p>CRIDGE service allows OSL to:</p> <ul> <li>Create and manage Custom Resources (CRs) using installed CRDs on a target Kubernetes cluster.</li> <li>Facilitate complex orchestration scenarios by wrapping Kubernetes APIs as TMF APIs and models.</li> <li>Handles connectivity to a Kubernetes cluster and manages the lifecycle of CRDs</li> <li>Wraps the Kubernetes API, Receives and provides resources towards other OSL services via the service bus</li> </ul> </li> <li> <p>Enabling Loose Coupling and Orchestration</p> <ul> <li>Language Flexibility: Developers can write CRDs in any language and expose them via the Kubernetes APIs. OSL will reuse these CRDs, enhancing flexibility and integration capabilities.</li> <li>Familiar Deployment: Developers can create and deploy applications using familiar tools such as Helm charts, simplifying the process and reducing the learning curve.</li> </ul> </li> <li> <p>Ecosystem Reusability</p> <ul> <li>CRIDGE capitalizes on the extensive Kubernetes ecosystem, particularly focusing on operators (CRDs).</li> <li>Key repositories and hubs such as artifacthub.io and Operatorhub.io can be utilized for finding and deploying operators.</li> </ul> </li> <li> <p>Service Catalog Exposure and Deployment</p> <p>OSL can expose CRs in service catalogs, facilitating their deployment in complex scenarios. These scenarios may include service bundles that involve multiple systems, such as RAN controllers or other Kubernetes clusters, providing a robust and versatile deployment framework.</p> </li> </ol> <p>Why the CRIDGE name? we wanted to build a service that maps TMF models to CRDs; a kind of a CRD to TMF bridge. Therefore CRIDGE was born</p>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#approach","title":"Approach","text":"<p>OSL in general is responible for exposing service specifications  which are ready to be ordered and orchestrated, through tmforum Open APIs as defined in the OSL Service Spec Catalog. Usually for a service specification a corresponding (one or more) resource specification (resourceSpecificationReference) is registered in the OSL Resource Spec Catalog.</p> <p>The following image illustrates the approach.</p> <p></p> <ol> <li>A CRD in a cluster will be mapped in TMF model as a Resource specification and therefore can be exposed as a service specification in a catalog</li> <li>Service Orders can be created for this service specification. The OSL Orchestrator (OSOM) will manage the lifecycle of the Service Order.</li> <li>OSOM creates a Resource in OSL Resource inventory and requests (via CRIDGE) a new Custom Resource (CR) in the target cluster<ul> <li>The resource is created in a specific namespace (for example the UUID of the Service Order)</li> <li>A CR in a cluster will be mapped in TMF model as a Resource in the resource Inventory</li> <li>Other related resources created by the CRD Controller within the namespace are automatically created in OSL Resource Inventory under the same Service Order</li> </ul> </li> </ol> <p></p> <p>The provided image illustrates the architecture and workflow of the CRIDGE service, showing how it interacts with other components within a Kubernetes (K8s) cluster. Here is an explanation of the key components and flow in the diagram:</p> <ul> <li>Other OSL Services: This box represents various OSL services such as Service Spec Catalogue, Resource Spec Catalogue, Service Inventory, Resource Inventory, and OSOM (OpenSlice Service Orchestration and Management).</li> <li>Service Bus: This is the communication layer that facilitates interaction between the CRIDGE service and other OSL services.</li> <li>CRIDGE: CRIDGE acts as a bridge that converts CRDs (Custom Resource Definitions) to TMF (TM Forum) APIs and models. It enables the creation and management of Custom Resources (CRs) in the Kubernetes cluster.</li> <li> <p>K8s API: The Kubernetes API server, which is the central control point for managing the Kubernetes cluster. CRIDGE interacts with the K8s API to manage CRDs and CRs.</p> <p>CRD (Custom Resource Definition): A CRD is a way to define custom resources in Kubernetes cluster-wise. It allows the extension of Kubernetes API to create and manage user-defined resources. Example :</p> </li> </ul> <pre><code>        apiVersion: apiextensions.k8s.io/v1\n        kind: CustomResourceDefinition\n        metadata:\n            name: myresource.example.com\n</code></pre> <ul> <li>Namespaces: Kubernetes namespaces provide a way to partition resources within a cluster. The diagram shows that multiple namespaces (nsxx, nsyy, nsz) can be managed by CRIDGE.</li> </ul> <p>CR (Custom Resource):  A CR is an instance of a CRD. It represents the actual custom resource that is managed within the Kubernetes cluster. Example shown in different namespaces:</p> <pre><code>        apiVersion: example.com/v1\n        kind: Myresource\n        metadata:\n          name: example_resource_1\n</code></pre> <p>In a nutchell:</p> <ul> <li>Various OSL services use the Service Bus to communicate with CRIDGE.</li> <li>CRIDGE converts requests towards Kubernetes API and vice-versa, facilitating the integration of custom resources with other OSL services.</li> <li>CRDs are defined and managed through the K8s API. The example CRD is named myresource.example.com.</li> <li>Deploying CRs in Namespaces: Custom resources defined by the CRD are created and managed within different namespaces in the Kubernetes cluster. Each namespace can have its own instances of the custom resources.<pre><code>&gt; The example CRD myresource.example.com allows the creation of custom resources of type Myresource.\n&gt; Instances of Myresource are created in various namespaces, each with unique names like example_resource_1.\n</code></pre> </li> </ul>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#handling-more-than-one-clusters","title":"Handling more than one clusters","text":"<p>A CRIDGE service is usually responsible for managing one cluster. In the following diagram we show how it can be used for managing multiple clusters:</p> <p></p> <p>We assume that there is an OSL Management cluster that OSL is installed. CRIDGE is also installed there if we would like to manage resources in the same management cluster.   - Each CRIDGE service has for example its own configuration to connect to target cluster  - Each CRIDGE can be installed either in the managed cluster or at the remote clusters. Connectivity is handled via the service bus  - Important: Each CRIDGE has a different context and API endpoints. This is used to request CRDs on a different cluster</p> <p>A CRD has a globally unique name for example mycrd.example.com. So we need to somehow identify also the different cluster</p>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#awareness-for-crds-and-crs-in-cluster","title":"Awareness for CRDs and CRs in cluster","text":"<p>CRDs and CRs can appear (disappear) or change status at any time in a cluster. OSL Resource Inventory need to be aware of these events.</p> <p>The sync process is found in the code and explained by the following picture:</p> <p></p> <p>WatcherService is executed when the cridge service application starts (see onApplicationEvent). First things:</p> <ul> <li>KubernetesClientResource is a class that wraps fabric8\u2019s KubernetesClient<ul> <li>This fabric8 KubernetesClient is initialized from the kubeconf and default context of the machine that runs CRIDGE</li> </ul> </li> <li>On CRIDGE Start up we try to register this cluster and context to OSL catalogs.<ul> <li>See registerKubernetesClientInOSLResource method which registers the KubernetesContextDefinition in Resource Inventory as a LogicalResource via  createOrUpdateResourceByNameCategoryVersion method</li> </ul> </li> <li>After the creation(or update) of this cluster as a Resource in OSL we proceed to create  SharedIndexInformers for CustomResourceDefinition objects</li> <li>In this way CRIDGE is always aware of all CRDs and their CRs in the cluster, even if a CRD or CR is added/updated/deleted in the K8S cluster outside of OSL(CRIDGE)</li> <li>The SharedIndexInformer events notify CRIDGE, which is always aware of all CRDs and their CRs in the cluster, even if a CRD or CR is added/updated/deleted in the K8S cluster outside of OSL(CRIDGE)<ul> <li>NOTE: The ADD event is raised every time also we run CRIDGE. Therefore, on ADD we do the method to createORupdate resource specifications and resources</li> </ul> </li> <li>On ADD event:<ul> <li>The CRD is transformed to OSL Kubernetes domain model: method kubernetesClientResource.KubernetesCRD2OpensliceCRD</li> <li>Then the OSL Kubernetes domain model is:<ul> <li>transformed to Resource Specification and is stored to catalog (see createOrUpdateResourceSpecByNameCategoryVersion)</li> <li>Transformed to Resource and is stored to catalog (see createOrUpdateResourceByNameCategoryVersion)</li> </ul> </li> <li>Conceptually while a CRD is a new resource located in the Kubernetes cluster resource, it is transformed also as a Resource Specification (a high-level entity) which is ready to be reused as an entity to other scenarios. The same concept as in Kubernetes where a CRD is a definition ready to be used for instantiating resources of this CRD</li> <li>Then for this CRD a Watcher is added for all Resources of this Kind (fabric8\u2019s GenericKubernetesResource entity)  </li> <li>When we have a newly added/updated/deleted resource of a certain CRD the method updateGenericKubernetesResourceInOSLCatalog is called for this object  (fabric8\u2019s GenericKubernetesResource entity)</li> <li>We examine if the resource has label org.etsi.osl.resourceId<ul> <li>This label is added by OSOM during service orders to correlate K8S requested resources with resources in inventory</li> </ul> </li> <li>If the label exists, we update the resource by ID updateResourceById</li> <li>Else a resource is created in catalog</li> </ul> </li> </ul>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#deployment-of-a-new-cr-based-on-a-crd","title":"Deployment of a new CR based on a CRD","text":"<ul> <li>A message arrives to deploy a CR<ul> <li>The call examines if this CRIDGE service can handle the request (based on context and masterURL)</li> </ul> </li> <li>There are headers received and a crspec in json</li> <li>The crspec is unmarshaled as GenericKubernetesResource</li> <li>Headers are in format org.etsi.osl.*</li> <li>These headers are injected as labels <ul> <li>(see later in orchestration)</li> </ul> </li> <li>A  namespace is created for this resource</li> <li>Watchers are created for this namespace for e.g. new secrets, config maps etc , so that they can be available back as resources to the Inventory of OSL (Note only Secrets for now are watched)</li> </ul>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#expose-crds-as-service-specifications-in-openslice-catalogs","title":"Expose CRDs as Service Specifications in OpenSlice catalogs","text":"<p>See ExposingKubernetesResources</p>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#service-orchestration-and-crdscrs","title":"Service Orchestration and CRDs/CRs","text":"<p>OSOM checks the presence of attribute _CR_SPEC at the RFS to make a request for a CR deployment</p> <ul> <li>_CR_SPEC is a JSON or YAML string that is used for the request<ul> <li>It is similar to what one will do with e.g. a kubectl apply</li> <li>There are tools to translate a yaml file to a json</li> </ul> </li> </ul> <p>LCM rules can be used to change attributes of this yaml/json file, before sending this for orchestration</p> <p>However, the following issue needs to be solved: ** How to map the CR lifecycle that is defined in the CRD with the TMF resource Lifecycle? **     - For this We introduced the following characteristics:  _CR_CHECK_FIELD, _CR_CHECKVAL_STANDBY, _CR_CHECKVAL_ALARM, _CR_CHECKVAL_AVAILABLE, _CR_CHECKVAL_RESERVED, _CR_CHECKVAL_UNKNOWN, _CR_CHECKVAL_SUSPENDED</p> <p>OSOM sends to CRIDGE a message with the following information:</p> <ul> <li>currentContextCluster: current context of cluster </li> <li>clusterMasterURL: current master url of the cluster </li> <li>org.etsi.osl.serviceId: This is the related service id that the created resource has a reference </li> <li>org.etsi.osl.resourceId: This is the related resource id that the created CR will wrap and reference.  </li> <li>org.etsi.osl.prefixName: we need to add a short prefix (default is cr) to various places. For example in K8s cannot start with a number </li> <li>org.etsi.osl.serviceOrderId: the related service order id of this deployment request </li> <li>org.etsi.osl.namespace: requested namespace name </li> <li>org.etsi.osl.statusCheckFieldName: The name of the field that is needed to be monitored in order to monitor the status of the service and translate it to TMF resource statys (RESERVED AVAILABLE, etc) </li> <li>org.etsi.osl.statusCheckValueStandby: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state STANDBY (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>org.etsi.osl.statusCheckValueAlarm: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state ALARMS (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>org.etsi.osl.statusCheckValueAvailable: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state AVAILABLE (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>org.etsi.osl.statusCheckValueReserved: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state RESERVED (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>org.etsi.osl.statusCheckValueUnknown: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state UNKNOWN (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li> <p>org.etsi.osl.statusCheckValueSuspended: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state SUSPENDED (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </p> </li> <li> <p>Parameters:</p> <ul> <li>aService reference to the service that the resource and the CR belongs to</li> <li>resourceCR reference the equivalent resource in TMF repo of the target CR. One to one mapping</li> <li>orderId related service order ID</li> <li>startDate start date of the deployment (not used currently)</li> <li>endDate end date of the deployment (not used currently)</li> <li>_CR_SPEC the spec that is sent to cridge (in json)</li> </ul> </li> <li> <p>Returns:</p> <ul> <li>a string response from cridge. It might return \"OK\" if everything is ok. \"SEE OTHER\" if there are multiple CRIDGEs then some other cridge will handle the request for the equivalent cluster. Any other response is handled as error</li> </ul> </li> <li> <p>CRIDGE receives the message and creates according to the labels the necessary CR</p> </li> <li>It monitors the created resource(s) in namespace (see the Sequence Diagram in previous images)</li> <li>It monitors and tries to figure out and map the Status of the CR to the TMF Status according to the provided org.etsi.osl.statusCheck* labels</li> <li>It sends to the message bus the current resource for creation or update to the TMF service inventory</li> </ul>"},{"location":"architecture/CRIDGE/CRIDGEforDevelopers/#probe-further","title":"Probe further","text":"<ul> <li>See examples of exposing operators via OpenSlice:<ul> <li>Exposing Kubernetes Operators as a Service : Offering \"Calculator as a Service\" through OpenSlice</li> </ul> </li> </ul>"},{"location":"contributing/developing/","title":"Developing","text":"<p>OpenSlice backend services are mainly implemented with Java 17 or above and Spring boot.</p> <p>OpenSlice uses various subsystems and depending on the module would you like to work, other subsystems must be present (you can disable them though in the code, e.g. at docker-compose.yaml file).</p> <p>To get the latest development branch:</p> <pre><code>wget https://labs.etsi.org/rep/osl/code/org.etsi.osl.main/-/raw/develop/compose/deploy.sh \nsudo ./deploy.sh develop  #[or replace develop with other branch name]\n</code></pre> <p>You may follow the installation process, as described at \"develop\" tagged documentation.</p> <p>To work on a specific subsystem e.g. org.etsi.osl.tmf.api, you must:</p> <p>1a - Deploy only the core necessary subsystems through:</p> <pre><code>sudo docker compose --profile dev down;sudo docker compose --profile dev up -d --build\n</code></pre> <p>Note --profile dev that will only deploy the core dependency subsystems, instead   of the whole OpenSlice.</p> <p>1b - Or alternatively, commend out the respective container from the docker-compose.yaml file, so as to deploy the whole OpenSlice, except the subsystem you want to work on, following the provided installation steps.</p> <p>2 - Clone the respective repository, e.g. https://labs.etsi.org/rep/osl/code/org.etsi.osl.tmf.api/-/tree/develop</p> <p>3 - Code :)</p>"},{"location":"contributing/developing/#general-requirements","title":"General requirements","text":"<ul> <li>Docker should be installed in your development environment</li> <li>Run the core subsystems (see above section)</li> </ul>"},{"location":"contributing/developing/#slack","title":"Slack","text":"<p>Feel free to join OpenSlice Slack for any development oriented questions.</p>"},{"location":"contributing/developing/#examples-of-developing-on-specific-subsystems","title":"Examples of developing on specific subsystems","text":""},{"location":"contributing/developing/#vnfnsd-catalog-management-and-nsd-deployment-api-service","title":"VNF/NSD Catalog Management and NSD Deployment API service","text":"<p>Clone the repository: https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.api/-/tree/develop</p> <p>Check the docker-compose.yml file. Default port is 13080. Check specifically the datasource username/password, server port.</p> <p>Make sure that the core subsystems are up and running.</p> <p>Execute it with </p> <pre><code>mvn spring-boot:run\n</code></pre> <p>For verification, Swagger API of the service is at <code>http://localhost:13000/osapi/swagger-ui/index.html</code>. </p> <p>There, you may try there various REST actions and authenticate via the OAuth server without the use of the UI.</p>"},{"location":"contributing/developing/#vnfnsd-catalog-management-and-nsd-deployment-web-ui-service","title":"VNF/NSD Catalog Management and NSD Deployment WEB UI service","text":"<p>The Web UI is written in AngularJS.</p> <p>Clone the repository: https://labs.etsi.org/rep/osl/code/org.etsi.osl.portal.web/-/tree/develop</p> <p>By default the project org.etsi.osl.portal.api exposes the folder ../org.etsi.osl.portal.web/src/ in a folder testweb (Check class MvcConfig.java in org.etsi.osl.portal.api) for development. (In production nginx is used). Point your browser to <code>http://localhost:13000/osapi/testweb/index.html/</code></p>"},{"location":"contributing/developing/#versionrelease-management","title":"Version/release management","text":"<p>Check this nice article on how we develop and release versions.</p> <p>https://nvie.com/posts/a-successful-git-branching-model/</p> <p>We develop in the develop branch and follow a issue driven development model.</p>"},{"location":"contributing/developing/#wishlist","title":"Wishlist","text":"<p>Check also our wishlist of new features. You can add your own.</p> <p>See Wishlist.</p>"},{"location":"contributing/wishlist/","title":"TMF API","text":"<ul> <li>RBAC of API endpoints</li> <li>TMF Ticketing API support</li> <li>TMF Product</li> <li>HATEOAS integration</li> <li>Select Specs that can be exposed to partners (maybe with a characteristic?)</li> </ul>"},{"location":"contributing/wishlist/#resource-management","title":"resource management","text":"<ul> <li>Resource Activation and Configuration API TMF702 (NEW) (https://projects.tmforum.org/wiki/pages/viewpage.action?pageId=128855518)</li> </ul>"},{"location":"contributing/wishlist/#tmf-web","title":"TMF WEB","text":""},{"location":"contributing/wishlist/#osom","title":"OSOM","text":"<ul> <li>Actions on service order item and acknowledge order status will define the lifecycle</li> <li>action shutdown on specific date for service order</li> <li>action edit on service order item</li> </ul>"},{"location":"contributing/wishlist/#dynamic-attribute-transformation","title":"Dynamic attribute transformation","text":"<ul> <li>DTM decision tables support per Service Specification</li> <li>Schedule Termination of completed order on running services</li> </ul>"},{"location":"contributing/wishlist/#nfvo-connectivity","title":"NFVO connectivity","text":""},{"location":"contributing/wishlist/#osm-client","title":"OSM Client","text":"<ul> <li>VNF/NSD config params Day 2</li> <li>NSD Lifcecylce</li> <li>NST support</li> </ul>"},{"location":"contributing/wishlist/#nfv-api","title":"NFV API","text":""},{"location":"contributing/wishlist/#nfv-web","title":"NFV WEB","text":""},{"location":"contributing/wishlist/#3rd-party-connectivity","title":"3rd party connectivity","text":""},{"location":"contributing/wishlist/#flowone-connector","title":"FlowOne connector","text":""},{"location":"contributing/wishlist/#openstack-connector","title":"Openstack connector","text":""},{"location":"contributing/wishlist/#kubernetes-connector","title":"Kubernetes connector","text":""},{"location":"contributing/wishlist/#centrallog","title":"CentralLog","text":"<ul> <li>Events from TMF to be written to Central Log</li> </ul>"},{"location":"contributing/wishlist/#authentication","title":"Authentication","text":""},{"location":"naas/exposed_apis/","title":"Supported TMFORUM exposed APIs","text":"Endpoint Title Description Version /tmf-api/serviceCatalogManagement/v4 633 Service Catalog Management Provides a catalog of services. 4.0.0 /tmf-api/productCatalogManagement/v4/ 620 Product Catalog Management Provides a catalog of products. 4.0.0 /tmf-api/productOrderingManagement/v4/ v622 Product Ordering Provides a standardized mechanism for placing a product order. 4.0.0 /tmf-api/resourceCatalogManagement/v4 634 Resource Catalog Management This is Swagger UI environment generated for the TMF Resource Catalog Management specification. 4.0.0 /tmf-api/serviceInventory/v4 638 Service Inventory Management Provides a consistent/standardized mechanism to query and manipulate the Service inventory. 4.0.0 /tmf-api/serviceOrdering/v4 641 API ServiceOrdering Provides a standardized mechanism for managing Service Order. 4.0.0 /tmf-api/serviceQualityManagement/v2 657 Service Quality Management This is Swagger UI environment generated for the TMF Service Quality Management specification. 2.0.0 /tmf-api/partyRoleManagement/v4/ 669 Party Role Management This is Swagger UI environment generated for the TMF Party Role Management specification. 4.0.0 /tmf-api/party/v4/organization 632 API Party Provides standardized mechanism for party management such as creation, update, retrieval, deletion and notification of events. 4.0.0 /tmf-api/agreementManagement/v2/ 651 Agreement Management T his is Swagger UI environment generated for the TMF Agreement Management specification. 2.0.0 /tmf-api/resourceOrderingManagement/v4 652 Resource Order Management-v4.0.0 This is Swagger UI environment generated for the TMF 652-Resource Order Management-v4.0.0 specification. 4.0.0 /tmf-api/accountManagement/v4 666 Account Management This is Swagger UI environment generated for the TMF Account Management specification. 4.0.0 /tmf-api/customerManagement/v4 629 Customer Management TMF Customer Management 4.0.0 /tmf-api/userinfo 691 Federated ID TMF Federated ID 1.0.0 /tmf-api/ServiceActivationAndConfiguration/v3/ 640 API Service Activation and Configuration Provides the ability to activate and configure Services. 3.0.0 /tmf-api/alarmManagement/v4/ 642 API Alarm 4.0.0 /tmf-api/serviceTestManagement/v4 653 Service Test Management Provides the ability to manage tests of provisioned Services. 4.0.0 /tmf-api/resourceInventoryManagement/v4 639 API Resource Inventory Management Provides the ability to manage Resources. 4.0.0 /tmf-api/lcmrulesmanagement/v1/ LCM Rules Custom API environment for LCM Rules 1.0.0 /tmf-api/resourcePoolManagement/v1 685 Resource Pool Management Resources that can be reserved are only in one pool. 1.0.0 /tmf-api/geographicSiteManagement/v5 674 Geographic Site Management Covers the operations to manage sites that can be associated with entities 5.0.0"},{"location":"naas/gst_to_tmf/","title":"Generic Slice Template as a Service Specification","text":""},{"location":"naas/gst_to_tmf/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>GSMA Generic Slice Template (GST) Defines customer-oriented service requirements, E.g. Availability, Area of service, delay tolerance, etc. and attempts to narrow down the gap between (network) service customers and vendors</p> <p>Moreove it Proposes standardized Network Slice Templates (NESTs) to target specific use cases</p> <p>In OpenSlice we made an effort and translated the GST to a Service Specification model. So Service Designers can use it as a template to design a new Service.</p> <p>The image illustrates the relationship between the GSMA Generic Slice Template (GST), TM Forum Service Specification, and how they are utilized within OpenSlice to offer network services.</p> <p></p> <p>The GST to TM Forum via OpenSlice:</p> <pre><code>    * GST Attributes List: A comprehensive list of service attributes, such as availability, delay tolerance, downlink throughput, energy efficiency, isolation level, mission-critical support, and many others.\n    * TMF Service Specification: Demonstrates the transformation of GST attributes into a TM Forum service specification, showing JSON code snippets that define service parameters.\n    * Offered Service based on GST: Represents the final offered service, an example of a GST-based service shown as an entry in a catalog, ready to be consumed by customers.\n</code></pre> <p>What was our flow:</p> <pre><code>* Started with defining service requirements and attributes using GST.\n* Translated these GST attributes into a formal TM Forum service specification.\n* Service Offering in OpenSlice: The service specification is then used to create and offer a specific network service within OpenSlice, available for customer selection and deployment.\n</code></pre>"},{"location":"naas/gst_to_tmf/#probe-further","title":"Probe further","text":"<p>See v9 of the  GST model in GSMA here</p>"},{"location":"naas/introduction/","title":"Network as a Service (NaaS)","text":"<p>This section describes some core concepts for Delivering Network as a Service in OpenSlice. There are many articles and reports on the subject like:</p> <ul> <li>TMF909 API Suite Specification for NaaS</li> <li>TMF926A Connectivity as a Service </li> <li>TMF931-Open Gateway Onboarding and Ordering Component Suite</li> <li>GSMA Open Gatewy initiative</li> </ul> <p>In general Network as a Service (NaaS) is a  service model that allows users to consume network infrastructure and services , similar to how they would consume other cloud services like Software as a Service (SaaS) or Infrastructure as a Service (IaaS). NaaS abstracts the complexity of managing physical network infrastructure, providing users with virtualized network resources that can be dynamically allocated and managed through software.</p>"},{"location":"naas/introduction/#openslice-and-naas","title":"OpenSlice and NaaS","text":"<p>OpenSlice makes extensive use of TMFORUM's models and APIs. Therefore if one is familiar with TMF APIs the terminology and ideas are the same.</p> <p>To deliver NaaS we need to incorporate various APIs (see TMF909 API Suite Specification for NaaS). OpenSlice implements various TMF APIs to deliver NaaS and support the  lifecycle functions required to manage the network capabilities exposed as Network as a Service and managed by operational domains.</p>"},{"location":"naas/introduction/#probe-further","title":"Probe further","text":"<ul> <li>Check the TMFORUM - API assets - Onboarding and Ordering Component Suite (TMF931)</li> <li>For a complete list of supported APIs, see Supported APIs</li> <li>Check the defined user roles of OpenSlice in our Terminology</li> </ul>"},{"location":"naas/lcm_intro/","title":"Lifecycle Management - LCM","text":"<p>Lifecycle Management: The orchestration framework handles the activation, termination and any necessary modifications throughout the service lifecycle.</p>"},{"location":"naas/lcm_intro/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>In OpenSlice the Lifecycle of a service follows in general the concept of Network Slice lifecycle as defined by 3GPP.</p> <p></p>"},{"location":"naas/lcm_intro/#introduction-in-openslice-lcm","title":"Introduction in OpenSlice LCM","text":"<p>OpenSlice adopted the LCM model by 3GPP and mapped to the TMF model service state. Next we discuss briefly the process and the relationships.</p> <p>The lifecycle of a service, particularly in the context of Network Service lifecycle encompasses several stages that ensure the service is effectively planned, deployed, managed, and eventually decommissioned. </p> <p>Here is an overview of these stages and relationships with OpenSlice:</p>"},{"location":"naas/lcm_intro/#0-preparation-phase","title":"0. Preparation Phase","text":"<p>This phase is performed by Service Designers</p>"},{"location":"naas/lcm_intro/#service-design","title":"Service Design:","text":"<ul> <li>Requirements Gathering: Collect service requirements from stakeholders, including performance metrics, quality of service (QoS), security needs, and geographical coverage.</li> <li>Service Specification: Define the service in terms of functionalities, attributes, and dependencies. This can be formalized using standardized templates such as the GSMA Generic Slice Template (GST).</li> <li>Resource Planning: Identify and plan the required resources, including network functions, computing power, storage, and connectivity, inclluding network function configurations.</li> <li>Expose to Service Catalog:  Expose to service catalog for user ordering.</li> </ul> <p>Next phases are handled by the Service Orchestrator after a service is scheduled for instantiation</p> <p>If it is a bundle of services, each services follows its own Lifecycle!</p>"},{"location":"naas/lcm_intro/#1-instantiation-phase","title":"1. Instantiation Phase","text":""},{"location":"naas/lcm_intro/#service-instantiation","title":"Service Instantiation:","text":"<ul> <li>Configuration: Configure the network service according to the specifications including the user requirements from the service order, ensuring that all components are correctly set up to provide the desired service.</li> <li>Resource Allocation - Feasibility check: Allocate the necessary physical and virtual resources based on the service specification. This includes any containerized resources, virtual network functions (VNFs) and software-defined networking (SDN) components. (This step is not performed in OpenSlice)</li> <li>OpenSlice Service Orchestrator creates the services at \"RESERVED\" state</li> <li>User Notification:  There could be an email notification from the system (if Bugzilla is configured)</li> </ul>"},{"location":"naas/lcm_intro/#service-deployment","title":"Service Deployment:","text":"<ul> <li>Activation: OpenSlice Service Orchestrator activates the network service and makes the service available to the end-users. This may involve:</li> <li>Create any related services that the service depends on</li> <li>Contacting all related controllers during provisioning, e.g. Kubernetes controllers, Kubernetes operators, MANO Orchestrators, RAN controllers, SDN Controlles, or other external services (e.g. via REST calls)</li> <li>Scheduling instantiation, Resolving dependencies and passing paramemters between controllers,</li> <li>setting up user accounts, provisioning access credentials -this is performed either offline or via other services.</li> <li>OpenSlice Service Orchestrator if everything is succesful puts the service at \"ACTIVE\" state</li> <li>User Notification:  There could be an email notification from the system (if Bugzilla is configured)</li> </ul>"},{"location":"naas/lcm_intro/#2-operation-phase","title":"2. Operation Phase","text":""},{"location":"naas/lcm_intro/#service-operation","title":"Service Operation:","text":"<ul> <li>Lifecycle Management: Manage the network slice throughout its lifecycle, including scaling, reconfiguration, and adaptation to changing requirements. </li> <li>In OpenSlice this is performed with Lifecycle management Rules (see next)</li> </ul> <p>In this phase the Service Designer can define several aspects.  Be aware that these are NOT performed automatically by OpenSlice - further examples and future enhancements will address these. This could include:</p> <ul> <li>Monitoring: Continuously monitor the service for performance, availability, and compliance with SLAs. Utilize tools for real-time tracking and alerts for any anomalies or performance degradation.</li> <li>Maintenance: Conduct regular maintenance activities, including software updates, patching, and optimization to ensure the service runs smoothly.</li> <li>Scaling: Dynamically scale the resources up or down based on the demand and performance requirements.</li> <li>Fault Management: Detect and resolve faults in the network slice to minimize downtime and maintain service quality.</li> </ul>"},{"location":"naas/lcm_intro/#3-decommissioning-phase","title":"3. Decommissioning Phase","text":"<ul> <li>Service Termination: Service Orchestrator terminates the network service. This may involve:</li> <li>Terminate any related services that the service depends on</li> <li>Contacting all related controllers during termination to release resources, e.g. Kubernetes controllers, Kubernetes operators, MANO Orchestrators, RAN controllers, SDN Controlles, or other external services (e.g. via REST calls)</li> <li>Scheduling termination, Resolving dependencies and passing paramemters between controllers</li> <li>OpenSlice Service Orchestrator, if everything is succesful, puts the service at \"TERMINATED\" state</li> <li>User Notification:  There could be an email notification from the system (if Bugzilla is configured)</li> </ul>"},{"location":"naas/lcm_intro/#high-level-example-enhanced-mobile-broadband-embb-service-lifecycle","title":"High level example: Enhanced Mobile Broadband (eMBB) Service Lifecycle","text":"<ol> <li> <p>Preparation:</p> </li> <li> <p>Define eMBB service requirements for high bandwidth and low latency.</p> </li> <li>Create an eMBB service specification template specifying related services and resources to Kubernetes Operators, VNFs for content delivery and traffic management.</li> <li> <p>Expose to catalog</p> </li> <li> <p>Instantiation:</p> </li> <li> <p>Instantiate other services and allocate resources such as edge computing nodes and high-capacity links.</p> </li> <li> <p>Configure the service to prioritize video streaming traffic.</p> </li> <li> <p>Operation:</p> </li> <li> <p>Monitor the service to ensure it meets high-bandwidth requirements.</p> </li> <li> <p>Scale up resources during peak usage periods, such as live sports events.</p> </li> <li> <p>Decommissioning:</p> </li> <li> <p>Notify users about service termination.</p> </li> <li>Decommission the network service, reclaiming resources for other services.</li> </ol>"},{"location":"naas/lcm_intro/#probe-further","title":"Probe further","text":"<ul> <li>See 3GPP Lifecycle</li> </ul>"},{"location":"naas/lcm_rules_intro/","title":"Lifecycle Management Rules - LCM Rules","text":"<p>Lifecycle Management Rules: Defining complex conditions and actions during the lifecycle of a service and any necessary modifications throughout the service lifecycle.</p>"},{"location":"naas/lcm_rules_intro/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>OpenSlice end-to-end (E2E) service orchestrator follows some predefined workflows to manage a service lifecycle (They are described in BPMN language and included in our orchestration engine)</p> <p>So in the system there are already predefined recipes, which in each process-step of the workflow some piece of code is executed. </p> <p>How is it possible to intervene in the workflow process and inject some user defined actions? The next image illustrates the idea</p> <p></p>"},{"location":"naas/lcm_rules_intro/#how-is-it-possible-to-intervene-in-the-workflow-process-and-affect-it","title":"How is it possible to intervene in the workflow process and affect it?","text":"<p>LCM Rules are used for defining complex conditions and actions during the lifecycle of a service. In Openslice there are the following types of rules defined:</p> <ul> <li>PRE_PROVISION</li> <li>CREATION</li> <li>AFTER_ACTIVATION </li> <li>SUPERVISION </li> <li>AFTER_DEACTIVATION </li> </ul> <p>The following figure displays the different phases that the rules are performed, during the lifecycle of a Network Service Instance. </p> <p></p> <ul> <li>PRE_PROVISION rules: Run only once just before creating a service with a given priority. </li> <li>CREATION rules: Run while the referenced service dependencies of a service are created</li> <li>AFTER_ACTIVATION rules: Run only once just after a service get the ACTIVE state</li> <li>SUPERVISION rules: Run when a characteristic of a service is changed and the service is in the ACTIVE state </li> <li>AFTER_DEACTIVATION rules: Run only once just after a service get the INACTIVE/TERMINATED state </li> </ul> <p>In general the rules allow to perform many actions during service LCM. These are some examples:</p> <ul> <li>Modify service specification parameters before the instantiation of a service (or during operation) based on other dependencies. These parameters might be part of other services already included in Service order</li> <li>Translate GST/NEST parameter values to other values passed later to NFVO for instantiation or control</li> <li>Define complex OSM Configs based on other dependencies and passing variables</li> <li>Define any dependencies when creating the referenced services</li> <li>Dynamically include new service dependencies</li> <li>Create new service orders so include dynamically other services</li> <li>Call external (RESTful) services (via http(s), define payload, examine response)</li> </ul>"},{"location":"naas/lcm_rules_intro/#examine-if-the-rules-are-executed-successfully","title":"Examine if the rules are executed successfully","text":"<p>Rules are transformed automatically to executable code (currently is Java). If a rule is performed successfully  or has any issues (e.g. unexpected syntax errors or exceptions) appear in OSOM logfiles and also tey are attached as Notes to the running Service.</p>"},{"location":"naas/lcm_rules_intro/#probe-further","title":"Probe further","text":"<ul> <li>In the Service Design section we present in details the Lifecycle rules and how one can design them</li> <li>Many of them are used in our provided Service Design examples</li> </ul>"},{"location":"naas/resource_catalog/","title":"OpenSlice Resource Catalog:","text":"<pre><code>* Resource Specifications: Defines the underlying resources required to deliver services, such as network components, servers, and software.\n* Resource Availability: Tracks the availability and status of resources to ensure efficient service delivery.\n</code></pre> <p>This section is WIP.</p>"},{"location":"naas/resource_inventory/","title":"Resources Inventory","text":"<p>This section is WIP.</p>"},{"location":"naas/resource_spec/","title":"Resources Specification","text":"<p>This section is WIP.</p>"},{"location":"naas/service_catalog/","title":"OpenSlice Service Catalogs","text":"<p>OpenSlice offers complete management of  Service Catalogs.</p>"},{"location":"naas/service_catalog/#intended-audience-service-designers-openslice-administrators-users","title":"Intended Audience: Service Designers, OpenSlice administrators, Users","text":"<p>OpenSlice offers complete management of  Service Catalogs which offer to end users:</p> <ul> <li>Service categories: Lists the available services, including their specifications and performance metrics.</li> <li>Service Bundles: Combines multiple services into a single offering to provide added value to customers.</li> </ul> <p>Service Catalogs contain Service Specifications (organized in Service Categories) exposed to users for Service Orders.</p>"},{"location":"naas/service_catalog/#ui-management","title":"UI management","text":"<p>In the UI this looks like the following. Service catalogs and categories exposed in Service marketplace. </p> <p>In the menu the administrator can manage the Service Catalogs and Categories.</p> <p></p>"},{"location":"naas/service_catalog/#api-exposed","title":"API exposed","text":"<p>When installing OpenSlice the API endpoints can be browsed at: </p> <pre><code>[YOURDOMAIN]/tmf-api/swagger-ui/index.html?urls.primaryName=tmf-api-633-ServiceCatalogManagement-v4.0.0\n\nendpoint examples:\n\n/serviceCatalogManagement/v4/serviceCatalog List or find ServiceCatalog objects\n/serviceCatalogManagement/v4/serviceCategory List or find ServiceCategory objects\n\n</code></pre>"},{"location":"naas/service_catalog/#example-use-case","title":"Example Use Case","text":"<p>Scenario: A service provider wants to offer a new managed XXXX service to enterprise customers.</p> <ul> <li>Service Definition:  Service Template thus create a template for the XXXX service, including specifications for bandwidth, network features, and performance metrics.</li> <li>Service Catalog Integration: Add to Service Catalog the XXXX service  with all relevant details.</li> <li>Service Delivery/Order: Provision Service by Using the orchestration system to provision and configure the XXXX service based on customer orders.</li> </ul>"},{"location":"naas/service_catalog/#probe-further","title":"Probe further","text":"<ul> <li>Read the model of Service Catalogs in TMF TMF633 Service Catalog API User Guide v4.0.0</li> <li>Check a demo of the API here</li> <li>Check a demo of the Catalog and Categories here</li> </ul>"},{"location":"naas/service_inventory/","title":"Service Inventory","text":"<p>Service Inventory contains references to running services that realize a Service Order.</p>"},{"location":"naas/service_inventory/#intended-audience-service-designers-openslice-administrators-users","title":"Intended Audience: Service Designers, OpenSlice administrators, Users","text":"<p>The Service Inventory is a repository that maintains detailed records of all active services and the underlying resources that support them. It acts as a central repository, tracking the lifecycle of each service from provisioning to decommissioning, and includes references to the specific virtual and physical resources that realize the service, such as servers, network components, storage, and software instances. </p> <p>This inventory enables real-time visibility into the status, configuration, and dependencies of each service, facilitating effective management, troubleshooting, and optimization. </p> <p>By providing a view of the active services, the Service Inventory includes services/resource allocation, and ensures that services are delivered in alignment with the initial request. </p>"},{"location":"naas/service_inventory/#ui-management","title":"UI management","text":"<p>Through the menu and dedicated forms the administrator can manage the Service Inventory and any active Services (reconfigure or terminate).Various examples in this document will guide you to the usage and the management of the Services in Service Inventory.</p>"},{"location":"naas/service_inventory/#api-exposed","title":"API exposed","text":"<p>When installing OpenSlice the API endpoints can be browsed at: </p> <pre><code>[YOURDOMAIN]/tmf-api/swagger-ui/index.html?urls.primaryName=tmf-api-638-ServiceInventoryManagement-v4.0.0\n</code></pre> <p>endpoint examples:</p> <p>/serviceInventory/v4/service List or find Service objects</p>"},{"location":"naas/service_inventory/#probe-further","title":"Probe further","text":"<ul> <li>See Ordering Services from catalogs</li> <li>See Service Design</li> </ul>"},{"location":"naas/service_ordering/","title":"Service Ordering","text":"<p>Customer Facing Service Specifications - or also CFSSpec (organized in Service Categories) are exposed to users for Service Orders.</p>"},{"location":"naas/service_ordering/#intended-audience-service-designers-openslice-administrators","title":"Intended Audience: Service Designers, OpenSlice administrators","text":"<p>The Service Order process is a structured sequence of steps initiated by a customer's Service Order request for a specific service, aimed at delivering and activating the desired service or services (if it is a service bunlde), as well as its related services. It begins with the customer submitting a service request through OpenSlice Services portal or the Service Order API, specifying the necessary details such as service specification, configurations, and any specific requirements.</p> <p>The request is then validated and verified for completeness and eligibility by an administrator which marks the Service Order as ACKNOWLEDGED otherwise it rejects it. </p> <p>Once ACKNOWLEDGED, the service order is processed by OpenSlice orchestration system (OSOM), which schedules/automates the provisioning of the required resources and configurations, coordinating across various components such as MANO controlers for virtual network functions (VNFs), or Containerized controllers  or any 3rd party controllers or services or even physical infrastructure. The OpenSlice orchestration system ensures that all dependencies are managed and that the service is correctly configured.</p> <p>After provisioning, the service is activated and handed over to the customer, . This end-to-end process ensures a seamless, efficient, and automated delivery of services, enhancing customer satisfaction and operational efficiency.</p> <p>Ongoing monitoring and other actions can be performed by the Life Cycle management rules</p> <p>Future developments:  In future releases it might be possible the ongoing monitoring and support provided to ensure continuous performance and reliability. The service could undergoe a series of tests to ensure it meets the specified performance metrics and SLAs before delivering</p>"},{"location":"naas/service_ordering/#ui-management","title":"UI management","text":"<p>Through the menu and dedicated forms the administrator can manage the Service Orders. Various examples in this document will guide you to the usage and the management of the Service Orders.</p>"},{"location":"naas/service_ordering/#api-exposed","title":"API exposed","text":"<p>When installing OpenSlice the API endpoints can be browsed at: </p> <pre><code>[YOURDOMAIN]/tmf-api/swagger-ui/index.html?urls.primaryName=tmf-api-641-ServiceOrdering-v4.0.0\n</code></pre> <p>endpoint examples:</p> <p>/serviceOrdering/v4/serviceOrder List or find ServiceOrder objects</p>"},{"location":"naas/service_ordering/#probe-further","title":"Probe further","text":"<ul> <li>See Ordering Services from catalogs</li> <li>See Service Design</li> </ul>"},{"location":"naas/service_spec/","title":"OpenSlice Service Specification","text":"<p>OpenSlice offers complete management of Service Specifications.</p>"},{"location":"naas/service_spec/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>Service Specification is an entity that describes a service offering. There are two types of Service Specifications:</p> <ul> <li>Resource Facing Service Specification</li> <li>Customer Facing Service Specification</li> </ul>"},{"location":"naas/service_spec/#resource-facing-service-specification","title":"Resource Facing Service Specification","text":"<p>Is a Service that It exposes a resource Specification as a Service. (For example expose a Network Service Descriptor as a Service)</p>"},{"location":"naas/service_spec/#customer-facing-service-specification","title":"Customer Facing Service Specification","text":"<p>Customer Facing Service Specifications - or also CFSSpec (organized in Service Categories) are exposed to users for Service Orders. Usually it exposes other CFSSpec(as a Service Bundle) or other RFSSpecs</p>"},{"location":"naas/service_spec/#definition","title":"Definition","text":"<p>Usually a Service Specification has the following aspects:</p> <ul> <li>Name, Description, Version</li> <li>Marked as a Service Bundle: Combines multiple services into a single offering to provide added value to customers.</li> <li>if is is a Bundle then you must add Related Service Specifications</li> <li>If it is a Resource Facing Service Specification has multiple related Resource Facing Service Specifications</li> <li>Characteristics: a list of service characteristics and their type (TEXT, INTEGER, etc)</li> <li>Also they can be exposed as \"Configurable\" so to allow to end-users during the Service Order to select or type values</li> <li>A logo, displayed if needed in the Service Marketplace</li> <li>Any attachments that further help the user</li> <li>Life Cycle Rules that determine the behavior of the Service and instrument the Service Orchestrator. More on Life Cycle Rules here</li> </ul> <p>Service Designers can create a Service Specification from scratch or use some templates:</p> <pre><code>* Create a Service based from a Network Service Descriptor (NSD)\n* Create a Service based on a Kubernetes Operator\n* Create a Service based on the GSMA GST - Generic Slice Template\n</code></pre>"},{"location":"naas/service_spec/#ui-management","title":"UI management","text":"<p>In the UI this looks like the following.</p> <p>Through the menu and dedicated forms the administrator can manage the Service Specifications. Various examples in this document will guide you to the usage and the design of the services.</p>"},{"location":"naas/service_spec/#api-exposed","title":"API exposed","text":"<p>When installing OpenSlice the API endpoints can be browsed at: </p> <pre><code>[YOURDOMAIN]/tmf-api/swagger-ui/index.html?urls.primaryName=tmf-api-633-ServiceCatalogManagement-v4.0.0\n</code></pre> <p>endpoint examples:</p> <p>/serviceCatalogManagement/v4/serviceSpecification List or find ServiceSpecification objects</p>"},{"location":"naas/service_spec/#example-use-case","title":"Example Use Case","text":"<p>Scenario: A service provider wants to offer a new managed XXXX service to enterprise customers.</p> <ul> <li>Service Definition:  Create a service specification template for the XXXX service, including specifications for bandwidth, network features, and performance metrics.</li> </ul>"},{"location":"naas/service_spec/#probe-further","title":"Probe further","text":"<ul> <li>Read the model of Service Catalogs in TMF TMF633 Service Catalog API User Guide v4.0.0</li> <li>Check a demo of the API here</li> <li>Check a demo of the Service Specifications in Catalog and Categories here (You need to login - see main guide page)</li> <li>Check the GSMA GST</li> </ul>"},{"location":"naas/so_intro/","title":"Service Orchestration","text":"<p>Definition: The orchestration engine evaluates the request, determines the necessary resources, and initiates the automated workflows.It interacts with underlying controller components (e.g. 5G Core, Radios, Containerized controllers, NFV, SDN controllers) to provision and configure the required network functions and connectivity.</p>"},{"location":"naas/so_intro/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>OpenSlice end-to-end (E2E) service orchestration framework is designed to manage and automate the entire lifecycle of services across multiple domains and technologies. For delivering, Network as a Service (NaaS) OpenSlice automates and manages the entire lifecycle of network services, from provisioning to monitoring and decommissioning, while ensuring seamless integration, operation, and delivery of services from the initial request to the final delivery, spanning all involved components and layers.</p> <p>As next image depicts, service orchestrators follow some predefined workflows. OpenSlice end-to-end (E2E) service orchestrator follows some predefined workflows to manage a service lifecycle (They are described in BPMN language and included in our orchestration engine).</p> <p></p> <p>This section provides a high level overview of the Service Orchestration process.</p>"},{"location":"naas/so_servicespec_to_services_kubernetes/","title":"Exposing Kubernetes services","text":"<p>This section is WIP.</p>"},{"location":"naas/so_servicespec_to_services_nfv/","title":"From Service Specification to NFV based services","text":"<p>After a Service Order completion, active services with their additional characteristics are found:</p> <ul> <li>From the Order Items of a selected Service order</li> <li>from the menu of Service inventory and then selecting details of each service</li> <li>through the Service Inventory API (TMF 638 - Service Inventory Management ) </li> </ul> <p>Openslice creates a Service for the requested CFS. Customers make Service Orders and Openslice instantiates the requested Service Specifications for each Service Order Item of a Service Order. Running Services instantiated by Openslice, reside in Openslice Service Inventory. The following picture displays how Service Specifications are related to Running Services and how Running Services relate with instantiated running Network Services. </p> <p></p> <p>There is a hierarchy of services. Usually an Instantiated CFS has Supporting Services some Instantiated RFSs. Then an Instantiated RFS is related to some running NS managed by NFVO</p>"},{"location":"naas/so_servicespec_to_services_nfv/#interacting-with-an-active-service-day-2-config","title":"Interacting with an Active Service (Day 2 config)","text":"<p>In some cases, if the underlying service is configured with actions (for example in OSM Day 2 primitive actions), there are characteristics that can be modified.  Usually they are named like : ::Primitive:: <p>The user can edit the characteristic with a new value. The value is propagated through the OSOM and NFVO down to the related VNF.</p>"},{"location":"naas/so_servicespec_to_services_nfv/#terminatinginactivating-a-service","title":"Terminating/Inactivating a service","text":"<p>You can terminate the service with one of the following processes:</p> <ul> <li>Select the related Service Order and terminate the Order Item. This will delete all the underlying related active services. The Order goes to ACKNOWLEDGED-&gt;INPROGRESS-&gt;COMPLETE</li> <li>To terminate or inactivate a service, select the specific service from the inventory, press Edit and set the State either to Inactive or Terminated</li> </ul> <p>Warning: if you terminate or inactivate a service the action cannot be undone. </p>"},{"location":"naas/so_servicespec_to_services_nfv/#uml-sequence-diagram","title":"uml: sequence diagram","text":"<p>Here I will embed PlantUML markup to generate a sequence diagram.</p> <p>I can include as many plantuml segments as I want in my Markdown, and the diagrams can be of any type supported by PlantUML.</p>"},{"location":"naas/nfv/intro/","title":"Introduction","text":"<p>This section is WIP.</p>"},{"location":"naas/nfv/nfvcatalogs/","title":"Nfvcatalogs","text":"<p>This section is WIP.</p>"},{"location":"naas/nfv/nfvservices/","title":"NFV Services","text":"<p>NFV Services are managed through a dedicated UI, i.e. the NFV portal (eg., http://portal.openslice.io/nfvportal).</p> <p>Users are able through this portal to manage their NFV artifacts towards the NFVO (for example onboard VNFs and NSDs to a target OSM).</p> <p>OpenSlice NFV Services target to accommodate the following envisaged user roles. All users are assumed to be Authenticated:</p> <ul> <li>NFV developer: This role is responsible to upload VNF and NSD Descriptors in the OpenSlice services towards NFVO, like OSM</li> <li>Services administrator: This role represents the user that are responsible for maintenance of the OpenSlice services</li> </ul> <p>(obsolete:)</p> <ul> <li>Testbed provider: This role represents users that are responsible for testbed administration, configuration, integration, adaptation, support, etc</li> <li>Experimenter: This role represents the user that will utilize our services and tools to deploy an experiment. That is the experiment description in terms of e.g.: NSD (Network Service Descriptor) or TOSCA Specification (in future versions)</li> </ul> <p>Finally an anonymous user role exists who has some really simple usage scenarios (e.g. signup through the portal)</p> <p>During the onboarding process the following occurs:</p> <ul> <li>A NFV developer submits a NFV archive (VNF or NSD) (he can later manage if needed some metadata)</li> <li>The administrator can manage the NFV artifact (e.g. edit it)</li> <li>The administrator On-Boards the NFV artifact to the target MANO</li> <li>The administrator can optionally mark the NFV:</li> <li>As public in order to be publicly visible by all portal users</li> <li>As Certified which means this is certified by a certain entity</li> </ul>"},{"location":"naas/nfv/nfvservices/#request-a-new-nsd-deployment-this-is-different-in-comparison-to-services","title":"Request a new NSD deployment (this is different in comparison to Services)","text":"<p>A developer requests a new network service deployment (which NSD, tentative dates, target infrastructure, etc.). The request is marked as UNDER_REVIEW</p> <ul> <li>The administrator is notified about the new request and he has the following options:</li> <li>Schedule the deployment for the requested dates or propose other dates. The request is marked as SCHEDULED</li> <li>Reject the request for some reason. The Request is marked as REJECTED</li> <li>Deploy the request to target VIM(s). The Request is marked as RUNNING</li> <li>Finalize the deployment and release resources. The Request is marked as COMPLETED</li> <li>every change of the request-lifecycle the experimenter is notified.</li> </ul>"},{"location":"service_design/catalogs/","title":"Catalogs and Templates","text":"<p>The Openslice Service Catalogue (accessible through the API or Services portal) contains the representation of Service Specifications, either created from the provider defining service attributes, or by supporting the GSMA Generic Slice Templates (GST) as well as the VINNI Service Blueprint. The following scenarios are supported by the Openslice Service Catalogue.</p>"},{"location":"service_design/catalogs/#createdesign-a-service-specification","title":"Create/Design a Service Specification","text":""},{"location":"service_design/catalogs/#first-import-some-resources-as-resource-facing-services-rfss","title":"First Import some Resources as Resource Facing Services (RFSs)","text":"<p>If you have any NSDs as NFV artifacts, import them through the UI menu (Import from NSD list). Then an NSD is imported as a resource and an RFS automatically is created. RFSs then later are used to design a Customer Facing Service Specification</p>"},{"location":"service_design/catalogs/#createdesign-a-customer-facing-service-specification","title":"Create/Design a Customer Facing Service Specification","text":"<p>Customer Facing Service Specification are the services offered to customers.  You can create a new Service Specification from the menu. The services created through the UI are Customer Facing Services (CFS). Usually you create a CFS as a bundle and then you include Service Specification Relationships with RFSs or/and CFSs.</p> <p>Any Service Specification Characteristics from the RFS are copied to the CFS specification. A CFS can include multiple RFS or/and CFSs. For example you can create a CFS spec called \"A 5G Service\" which is a bundle of two other services (include them in Service Specification Relationships) such as 5G eMBB Slice and a Customer VPN. So when the user orders  \"A 5G Service\"  services from 5G eMBB Slice and a Customer VPN will be created during the order.</p>"},{"location":"service_design/catalogs/#initial-configuration-for-osm-deployment","title":"Initial configuration for OSM deployment","text":"<p>if you have an initial configuration that needs to be applied in the NSD deployment, then you go to the RFS (or CFS) and in Service Specification Characteristics go and edit the OSM_CONFIG characteristic.  You can add in the Service Characteristic Value, in the Value field something like the following example which gives a floating IP to a VNF:</p> <pre><code>{ \"nsdId\": \"e855be91-567b-45cf-9f86-18653e7ea\", \"vimAccountId\": \"4efd8bf4-5292-4634-87b7-7b3d49108\" , \"vnf\": [ {\"member-vnf-index\": \"1\", \"vdu\": [ {\"id\": \"MyCharmedVNF-VM\", \"interface\": [{\"name\": \"eth0\", \"floating-ip-required\": true }]}]}]}\n\n</code></pre> <p>or a more complex example (beautify it first if you want to view it, but in the parameter OSM_CONFIG must be minified like the example):</p> <pre><code>{\"nsdId\":\"e855be91-567b-45cf-9f86-18653e7\",\"vimAccountId\":\"4efd8bf4-5292-4634-87b7-7b3d491\",\"vnf\":[{\"member-vnf-index\":\"1\",\"vdu\":[{\"id\":\"haproxy_vdu\",\"interface\":[{\"name\":\"haproxy_vdu_eth1\",\"floating-ip-required\":true}]}]}],\"vld\":[{\"name\":\"pub_net\",\"vim-network-name\":\"OSMFIVE_selfservice01\"},{\"name\":\"management\",\"vim-network-name\":\"OSMFIVE_selfservice01\"},{\"name\":\"lba_net\",\"vim-network-name\":\"lba_net\",\"vnfd-connection-point-ref\":[{\"member-vnf-index-ref\":\"1\",\"vnfd-connection-point-ref\":\"haproxy_private\",\"ip-address\":\"192.168.28.2\"}]},{\"name\":\"backend_net\",\"vim-network-name\":\"backend_net\",\"vnfd-connection-point-ref\":[{\"member-vnf-index-ref\":\"3\",\"vnfd-connection-point-ref\":\"haproxy_public\",\"ip-address\":\"192.168.20.2\"}]},{\"name\":\"lb_sb_net\",\"vim-network-name\":\"lb_sb_net\",\"vnfd-connection-point-ref\":[{\"member-vnf-index-ref\":\"3\",\"vnfd-connection-point-ref\":\"haproxy_private\",\"ip-address\":\"192.168.28.2\"}]},{\"name\":\"breaking_point_Spain\",\"vim-network-name\":\"sb_repo_net\"},{\"name\":\"breaking_point_Greece\",\"vim-network-name\":\"5TONICexternal\"}],\"additionalParamsForVnf\":[{\"member-vnf-index\":\"2\",\"additionalParams\":{\"target_IP\":\"192.168.20.2\"}},{\"member-vnf-index\":\"4\",\"additionalParams\":{\"target1_IP\":\"192.168.21.2\",\"target2_IP\":\"10.154.252.10\"}}]}\n</code></pre> <p>You can leave the Alias and Unit of Measure as is. Check also the is Default.</p>"},{"location":"service_design/catalogs/#day-2-primitive-actions","title":"Day 2 Primitive Actions","text":"<p>NFVOs like OSM allow to perform actions while a service is running, for example change attributes or make actions on a specific VNF. To design this do something similar to the following example:</p> <ul> <li>Go to the RFS related to the NSD that contains VNFs with primitives</li> <li>create a characteristic named Primitive:: , e.g. Primitive::touch <li>select Value Type: ARRAY</li> <li>add Service Characteristic Value: i) alias=primitive, value= (e.g. touch), ii)  alias=member_vnf_index, value= (e.g. 1), iii) add the params that the user will change in alias the name of param and in value an initial value (e.g. alias=filename, value=myfile.txt) <p>In the above example, when the service is running and the user goes to service inventory to MODIFY it, changes the value of the alias=filename, value=myfile.txt, to value =secondfile.txt. Then inside the VNF a file will be created called secondfile.txt</p>"},{"location":"service_design/catalogs/#generic-slice-templates-gst","title":"Generic Slice Templates (GST)","text":"<p>(Offered only as a design for now. THere is no direct implementation to NFV) On October 16th 2019 GSMA published NG.116  Version 2.0 which defines the Generic Network Slice Template (GST). GST is a set of attributes that can characterise a type of network slice/service. GST is generic and is not tied to any specific network deployment. Here is a list of the various attributes of the template:</p> <ul> <li>Availability</li> <li>Area of Service</li> <li>Delay tolerance</li> <li>Deterministic communication</li> <li>Downlink throughput per network slice</li> <li>Downlink throughput per UE</li> <li>Energy efficiency</li> <li>Group communication support</li> <li>Isolation level</li> <li>Location based message delivery</li> <li>Maximum supported packet size</li> <li>Mission critical support</li> <li>MMTel support</li> <li>NB-IoT support</li> <li>Network Slice Customer network functions</li> <li>Number of connections</li> <li>Number of terminals</li> <li>Performance monitoring</li> <li>Performance prediction</li> <li>Positioning support</li> <li>Radio spectrum</li> <li>Reliability</li> <li>Root cause investigation</li> <li>Session and Service Continuity support </li> <li>Simultaneous use of the network slice</li> <li>Slice quality of service parameters</li> <li>Support for non-IP traffic </li> <li>Supported access technologies </li> <li>Supported device velocity </li> <li>Synchronicity</li> <li>Terminal density </li> <li>Uplink throughput per network slice </li> <li>Uplink throughput per UE</li> <li>User management openness</li> <li>User data access </li> <li>V2X communication mode</li> </ul> <p>Openslice offers the GST in a format that is machine readable and aligned with the TMF SID model. Here is a tentative approach in JSON : https://github.com/openslice/org.etsi.osl.tmf.api/blob/master/src/main/resources/gst.json</p> <p>Providers can clone a GST as e NEST directly in Openslice Web portal and the adjust the default attributes to their Service Specification</p>"},{"location":"service_design/catalogs/#manage-a-service-specification","title":"Manage a Service Specification","text":"<p>You can manage them though the Web UI</p>"},{"location":"service_design/catalogs/#assign-a-service-specification-to-service-categories-and-publish","title":"Assign a Service Specification to Service Categories and Publish","text":"<p>Just create categories and from the menu select the category and add services</p>"},{"location":"service_design/catalogs/#retireremove-a-service-specification","title":"Retire/Remove a Service Specification","text":"<p>Delete it from the category</p>"},{"location":"service_design/catalogs/#consume-and-expose-service-specifications-from-other-service-catalogues","title":"Consume and expose Service Specifications from other Service Catalogues","text":"<p>See more on Consuming Services From External Partner Organizations</p>"},{"location":"service_design/intro/","title":"Service Design in OpenSlice","text":"<p>This section offers details on how to design Service Specifications and expose them in Service Catalogs</p>"},{"location":"service_design/intro/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>Service Designers create detailed service specifications, which are then managed and exposed in service catalogs. These services are integrated into OpenSlice E2E service orchestration framework to automate and optimize the delivery of network services.</p> <p>OpenSlice can be used to design service specifications for various services, even not networking related services. Here we cover how service designers can expose services related to the NFV world and the containerized world.</p>"},{"location":"service_design/intro/#probe-further","title":"Probe further","text":"<ul> <li>Design and expose services based on containerized resources via the Kubernetes Operator pattern</li> <li>Design and expose services based on NFV artifacts</li> </ul>"},{"location":"service_design/examples/intro/","title":"Introduction","text":"<p>This section contains examples on service design, which contain a step-by-step guide to reproduce them in your local environment.</p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/","title":"Exposing Kubernetes Operators as a Service : Offering \"Calculator as a Service\" through OpenSlice","text":""},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>To illustrate the powerful concept of Kubernetes operators and how they can be utilized to offer a service through OpenSlice, let's provide an example of a \"Calculator as a Service.\" </p> <p>This example will demonstrate the flexibility and capabilities of Kubernetes operators in managing custom resources and automating operational tasks.</p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#offering-calculator-as-a-service-through-openslice","title":"Offering \"Calculator as a Service\" through OpenSlice","text":"<ul> <li>We have a service that can accept two integers and an action (SUM, SUB, etc) and returns a result</li> <li>We would like to offer it as a Service through OpenSlice</li> <li>So when a user orders it with some initial parameters, OpenSlice will create it and return the result</li> <li>Also while the service is active, we can do further calculations, until we destroy it.</li> </ul> <p>Assume the following simple CRD of a calculator model accepting two params (spec section) and an action and returning a result (status section)</p> <p>The controller (the calculator code) is implemented in any language and is installed in a Kubernetes cluster</p> <pre><code>\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  name: mycalculators.examples.osl.etsi.org\nspec:\n  group: examples.osl.etsi.org\n  names:\n    kind: MyCalculator\n    plural: mycalculators\n    singular: mycalculator\n  scope: Namespaced\n  versions:\n  - name: v1alpha1\n    schema:\n      openAPIV3Schema:\n        properties:\n          spec:\n            properties:\n              parama:\n                type: integer\n              paramb:\n                type: integer\n              action:\n                type: string\n            type: object\n          status:\n            properties:\n              result:\n                type: integer\n              status:\n                type: string\n            type: object\n        type: object\n    served: true\n    storage: true\n    subresources:\n      status: {}\n</code></pre> <p>Request to the cluster (through e.g. kubectl apply)</p> <pre><code>apiVersion: examples.osl.etsi.org/v1alpha1\nkind: MyCalculator\nmetadata:\n  name: mycalculator.examples.osl.etsi.org\nspec:\n  parama: 170\n  paramb: 180\n  action: 'SUM'\n\n</code></pre> <p>Response</p> <pre><code>apiVersion: examples.osl.etsi.org/v1alpha1\nkind: MyCalculator\nmetadata:\n\u00a0 creationTimestamp: '2023-12-05T12:26:07Z\u2019\n\n&lt;snip&gt;\n\nstatus:\n\u00a0 result: 350\n\u00a0 status: CALCULATED\nspec:\n\u00a0 action: SUM\n\u00a0 parama: 170\n\u00a0 paramb: 180\n\n</code></pre> <p>To perform this through OpenSlice as a Service Specification ready to be ordered we need to do the following:</p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#crd-is-saved-automatically-as-resource-specification","title":"CRD is saved automatically as Resource Specification","text":"<p>As soon as the CRD is deployed in the cluster (e.g. by your admin via kubctl or via any installation through the internet) it is automatically transformed and is available in OpenSlice catalogs as a Resource Specification.</p> <ul> <li>See also the fully qualified name of the resource specification. <ul> <li>MyCalculator@examples.osl.etsi.org/v1alpha1@docker-desktop@https://kubernetes.docker.internal:6443/</li> <li>The resource specification name is quite unique, so you can install the CRD in many clusters around the internet. Each CRD on each cluster will appear here, for example:<ul> <li>MyCalculator@examples.osl.etsi.org/v1alpha1@default_cluster@https://10.10.10.8:6443/</li> <li>MyCalculator@examples.osl.etsi.org/v1alpha1@edge1_cluster@https://172.16.10.10:6443/</li> </ul> </li> <li>Having this OpenSlice can manage resources in multiple clusters</li> </ul> </li> </ul> <p></p> <p>See also the detailed characteristics. See how OpenSlice makes all characteristics automatically flat and expanded with key-value style</p> <p></p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#expose-to-users","title":"Expose to Users","text":""},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#start-by-creating-a-resourcefacingservicespecification","title":"Start by Creating a ResourceFacingServiceSpecification","text":"<p>From the UI menu create a new Service Specification</p> <p></p> <p></p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#creation-of-crd-related-characteristics","title":"Creation of CRD-related characteristics","text":"<ul> <li>We need now to adjust some characteristics of this CRD as Resource Specification.</li> <li>OpenSlice transalted automatically the CRD spec in a flat list of characteristics.So the \"spec\" section from the original yaml for example, is now unfold into: spec, spec.parama, spec.paramb, etc. the same for \"status\" object</li> <li> <p>We need to make OpenSlice aware of when the service will be active. </p> <ul> <li>So we go to characteristic _CR_CHECK_FIELD and we define that the field that shows the status of the service is the characteristic \"status.status\" (is a text field) </li> <li>Then we go to _CR_CHECKVAL_AVAILABLE and we define the value CALCULATED, which signals the following: When the characteristic \"status.status\" has the value \"CALCULATED\" then OpenSlice will mark the underlying service as \"ACTIVE\"</li> <li>We need also to define the yaml file that OpenSLice will use to create the new resource in the kubernetes cluster</li> <li>We insert the YAML in the characteristic _CR_SPEC</li> </ul> <p>the _CR_SPEC is: </p> </li> </ul> <pre><code>apiVersion: examples.osl.etsi.org/v1alpha1\nkind: MyCalculator\nmetadata:\n  name: mycalculator.examples.osl.etsi.org\nspec:\n  parama: 170\n  paramb: 180\n  action: 'SUM'\n\n</code></pre> <p></p> <p>However the values are fixed. How do we allow a user to pass parameters through OpenSlice</p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#expose-in-catalog","title":"Expose in Catalog","text":"<p>Create a new CustomerFacingServiceSpecification</p> <pre><code>- Go to the menu Service Specification&gt;New Service Specification\n- Create a service My Calulator and mark it as a Bundle\n- Go to Service Specification Relationships and add MyCalculatorRFS\n- The service will be automatically transformed to a \"CustomerFacingServiceSpecification\"\n- Add the following characteristics as the image shows:\n</code></pre> <p></p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#allow-users-to-pass-new-values-through-openslice","title":"Allow users to pass new values through OpenSlice","text":"<p>We need to Create LCM rules in CustomerFacingServiceSpecification:</p> <pre><code>- The goal of the rules is to allow the user to pass parameters to the actual resource towards the cluster.\n- we will create one rule that will pass the parameters just before creating the service (PRE_PROVISION phase)\n- we will create one rule that will pass the parameters while the service is active (SUPERVISION phase)\n- The rules will be the same\n</code></pre> <p></p> <p>If we see one rule it will look like the following:</p> <p></p> <ul> <li>We need to change the _CR_SPEC characteristic of the referenced ResourceFacingServiceSpecification</li> <li>First bring a block from Service&gt;Relationships&gt;Service Refs and drop the \"Service MyCalculatorRFS\" block</li> <li>Then add a list block from Lists</li> <li>Then add the block that modifies a referenced characteristic from Service&gt;Relationships&gt;Service Refs the block \"Set value to characteristic of a Referenced Service\"</li> <li>Add a block for text _CR_SPEC </li> <li>We use a block that changes a String according to variables Text&gt;\"A formatted text replacing variables from List\"</li> <li>See that we have as Input string the YAML string lines<ul> <li>see that parama, paramb has a %d (they accept integers), action is %s (accepts a string)</li> <li>See that the variables tha will replace the %d, %d and %s are an list<ul> <li>the first %d will be replaced with the value from characteristic spec.parama</li> <li>the second %d will be replaced with the value from characteristic spec.paramb</li> <li>the %s will be replaced with the value from characteristic spec.action</li> </ul> </li> </ul> </li> </ul> <p>If we see the SUPERVISION rule it will look like the following:</p> <ul> <li>It contains also the Result field, which takes the value from the referenced service</li> <li>Add a block for the Result field from Service&gt;Number blocks</li> <li>Add a  str to int block from Number blocks</li> <li>Add Service&gt;Relationships&gt;Service Refs and drop the input block [Service MyCalculatorRFS] \"Get Service details from current context running service\" and select from the drop down the \"serviceCharacteristicValue\"</li> <li>Add as name the \"status.result\" </li> </ul> <p></p> <p></p> <p>Expose it then to a catalogue for orders through the Service Categories and Service Catalogs</p> <p></p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#order-the-service","title":"Order the Service","text":"<p>When a user orders the service, it will look like this:</p> <p></p> <ul> <li>After the Service Order we have 2 services in service inventory on CFS and on RFS. Both have references to values</li> <li>OpenSlice (via CRIDGE service) updates the Resource in Resource Inventory and OSOM updates the Services in Service Inventory</li> <li>The Actual resources are running in the Kubernetes cluster managed by OpenSlice</li> <li>The result is in the characteristic status.result of the running service</li> </ul> <p></p> <p></p>"},{"location":"service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/#modify-the-running-service","title":"Modify the running service","text":"<p>The user can modify the service</p> <p></p> <ul> <li>After a while the update is applied to the cluster, the controller will pick up the resource update and patch the resource</li> <li>OpenSlice (via CRIDGE service) updates the Resource in Resource Inventory and OSOM updates the Services in Service Inventory</li> <li>The result will be available to the respective characteristic \"Result\" after a few seconds, as need to go through various steps (OpenSlice orchestrator, down to kubernetes, to Calculator controller and back)</li> </ul> <p></p>"},{"location":"service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example/","title":"Example: Offer Jenkins as a Service via Openslice","text":""},{"location":"service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example/#design-the-jenkins-resource-facing-service","title":"Design the Jenkins (Resource-Facing) Service","text":"<p>Before reading this example please make sure that you went through the Design Helm as a Service </p> <p>In this example, we will use the <code>Kind: Application</code> of ArgoCD and create a ResourceFacingServiceSpecification (RFSS) for Jenkins. Eventually, we will offer Jenkins as a Service.</p> <pre><code>1. Go to Service Specifications\n2. Create New Specification\n3. Provide a Name, eg. jenkinsrfs\n4. Go to Resource Specification Relationships\n5. Assign **Application@argoproj.io/v1alpha1@kubernetes@https://10.10.10.144:6443/** as a related Resource Specification\n</code></pre> <p>Please note that the https://10.10.10.144:6443/ part of the Resource Specification's name will vary in different Kubernetes environments. </p> <p></p> <p>Now, we shall focus on the Characteristics' configuration of the created Service Specification. This can be achieved from the the \"Service Specification Characteristics\" tab.</p> <p>Specifically, we need to map the lifecycle of ArgoCD Application (e.g. Progressing, Healthy, etc.) to TMF Resource State (e.g. reserved, active, etc.).</p> <p>In ArgoCD, the field status.health.status has the value that we need to check (Healty, Progressing, etc) for the lifecycle of the application. This is captured by the _CR_CHECK_FIELD characteristic.</p> <p>Also, the different ArgoCD lifycycle states must be captured by the respective _CR_CHECKVAL_xxx characteristics, as show in the figure below:</p> <p></p> <p>After the state mapping, we must provide the template that ArgoCD will use to deploy the Jenkins HELM Chart as an ArgoCD application. For this, we must populate the _CR_SPEC characteristic. The _CR_SPEC can be designed first in a YAML or json editor for better parsing. </p> <p>Let's see a YAML definition:</p> <pre><code>apiVersion: argoproj.io/v1alpha1\nkind: Application\nmetadata:\n  finalizers:\n  - resources-finalizer.argocd.argoproj.io\n  name: openslice-jenkins\n  namespace: argocd\nspec:\n  project: default\n  destination:\n    namespace: opencrdtest\n    name: in-cluster\n  source:\n    repoURL: https://charts.jenkins.io\n    targetRevision: 5.3.6\n    chart: jenkins\n    helm:\n      values: |\n        controller:\n         serviceType: ClusterIP\n        persistence:\n         enabled: false\n  syncPolicy:\n    automated:\n      prune: true\n      selfHeal: true\n      allowEmpty: false\n    syncOptions:\n    - Validate=false\n    - CreateNamespace=true\n    - PrunePropagationPolicy=foreground\n    - PruneLast=true\n    - RespectIgnoreDifferences=true\n</code></pre> <p>NOTE 1: The above template assumes that the Jenkins Server will acquire a ClusterIP. The user should handle the external exposure and access of the Jenkins Server, depending on its cluster configuration. Also, persistency of the data is disabled to facilitate the deployment without the need to define storage classes and volumes, as this serves as an example. </p> <pre><code>helm:\n  values: |\n    controller:\n      serviceType: ClusterIP\n    persistence:\n      enabled: false\n</code></pre> <p>NOTE 2: On each installation, OSOM will change the name of the resource in order to be unique (will have a UUID), instead of \"openslice-jenkins\".</p> <pre><code>name: openslice-jenkins\n</code></pre> <p>NOTE 3: The namespace that ArgoCD will use to deploy the Jenkins HELM Chart is the \"opencrdtest\".</p> <pre><code>destination:\n  namespace: opencrdtest\n</code></pre> <p>The latter implies that ArgoCD will always install Jenkins in the same namespace.</p> <p>To avoid this we will create a simple LCM rule (pre-provision) to change the namespace accordingly with a unique ID, generated with every new Service Order.</p> <p>The LCM rule can be created from the \"Life Cycle Rules\" tab, pressing the \"Create new rule\" button. The following image contains the LCM rule that needs to be created for this purpose:</p> <p></p> <p>Let's create it step-by-step:</p> <ol> <li>Drag-Drop the _CR_SPEC block (Set characteristic value) of jenkinsrfs from the Service &gt; Text blocks</li> <li>Drag-Drop the Text &gt; Formatted text block and attach it after the block from the previous step</li> <li>Drag-Drop the Text &gt; Multi-line text input block and attach it at the Input(String) connector of the block from the previous text </li> <li>Copy paste the previously provided YAML text</li> <li>Change the spec:destination:namespace property to the value %s</li> <li>Drag-Drop the Lists &gt; Create list block, delete the 2 extra items (click the gear icon). Attach it at the Variables(Array) connector of the formatted text block from the previous step.</li> <li>Drag-Drop the Service &gt; Context &gt; Current Service Order block and select the ID from the drop-down menu. Attach it to the List block of the previous step.</li> <li>Save the PRE_PROVISION Rule</li> </ol>"},{"location":"service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example/#expose-the-jenkins-customer-facing-service-to-the-users","title":"Expose the Jenkins (Customer-Facing) Service to the users","text":"<p>To expose a service towards the users, the designer must create the respective CustomerFacingServiceSpecification, by using the previously designed RFSS as a related service.</p> <ol> <li>Go to Service Specifications</li> <li>Create New Specification</li> <li>Create a Jenkins service, mark as Bundle (to enable Service Specification Relationships) and save it </li> <li>Go to the \"Service Specification Relationships\" tab and assign Jenkinsrfs</li> <li>(Optionally) Add a logo, from the respective \"Logo\" tab, if you wish</li> </ol> <p></p> <p></p> <p>Next, the designer must expose it through an already created Service Catalog and Service Category so as to make it visible to the users, thus available for ordering.</p> <p></p>"},{"location":"service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example/#order-the-jenkins-service","title":"Order the Jenkins Service","text":"<p>Order the service from the previously assigned Service Catalog &gt; Service Category. </p> <p>As soon as the Service Order is in ACKNOWLEDGED state (may require user intervention as the initial Service Order state is \"INITIAL\"), it will be processed and eventually completed rendering the services active, as seen in the figure below:</p> <p></p>"},{"location":"service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example/#access-the-jenkins-installation","title":"Access the Jenkins installation","text":"<p>Starting from the Service Order overview and specifically the Order Item #1 tab &gt; Supporting Services, select the ResourceFacingService (jenkinsrfs).</p> <p>Accordingly, the ResourceFacingService has supporting resources from the resource inventory. The latter are available through the \"Supporting Resources\" tab.</p> <p></p> <p>The supporting resources of the Jenkins service are:</p> <ul> <li>A resource reference to the application (e.g. cr_tmpname...)</li> <li>A secret resource (e.g. cr87893...). </li> </ul> <p>Select the secret resource, which will navigate you to the Resource Inventory page of OpenSlice. There, you may find the login credentials encoded as Base64. </p> <p></p> <p>Use a Base64 decoder to parse the credentials and use them to login in your Jenkins installation, through the exposed Jenkis Server UI.</p> <p>Exposing Jenkins externally is a matter of cluster configuration and request (nodeport, load balancing, etc), thus is not a topic for this example</p>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/","title":"Expose and manage Kubernetes Custom Resource Definitions (Operators) in a Kubernetes Cluster","text":"<p>OpenSlice is capable of exposing Kubernetes Resources and Definitions as Service Specifications</p>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>Kubernetes is an orchestration system for automating software deployment, scaling, and management. One can interact though the Kubernetes API and it has a set of objects ready for use out of the box. Custom Resource Definitions (CRDs) is a way that allows to manage things other than Kubernetes itself and allows to create our own objects The use of CRDs makes the possibilities of Kubernetes management almost limitless. You can extend the base Kubernetes API with any object you like using CRDs.</p> <p>By allowing the design and lifecycle management of services/resources that expose CRDs/CRs in a Kubernetes cluster via the TMF APIs, OSL can be used in many complex scenarios now involing resources from multiple domains.</p> <ol> <li> <p>OpenSlice is capable to:</p> <ul> <li>Create and manage Custom Resources (CRs) using installed CRDs on a target Kubernetes cluster.</li> <li>Facilitate complex orchestration scenarios by wrapping Kubernetes APIs as TMF APIs and models.</li> <li>Handles connectivity to a Kubernetes cluster and manages the lifecycle of CRDs</li> <li>Wraps the Kubernetes API, Receives and provides resources towards other OpenSlice services via the service bus</li> </ul> </li> <li> <p>Enabling Loose Coupling and Orchestration</p> <ul> <li>Language Flexibility: Developers can write CRDs in any language and expose them via the Kubernetes APIs. OSL will reuse these CRDs, enhancing flexibility and integration capabilities.</li> <li>Familiar Deployment: Developers can create and deploy applications using familiar tools such as Helm charts, simplifying the process and reducing the learning curve.</li> </ul> </li> <li> <p>Ecosystem Reusability</p> <ul> <li>OpenSlice capitalizes on the extensive Kubernetes ecosystem, particularly focusing on operators (CRDs).</li> <li>Key repositories and hubs such as artifacthub.io and Operatorhub.io can be utilized for finding and deploying operators.</li> </ul> </li> <li> <p>Service Catalog Exposure and Deployment</p> <ul> <li>OpenSlice can expose CRs in service catalogs, facilitating their deployment in complex scenarios.</li> <li>These scenarios may include service bundles that involve multiple systems, such as RAN controllers or other Kubernetes clusters, providing a robust and versatile deployment framework.</li> </ul> </li> </ol>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#approach","title":"Approach","text":"<p>OpenSlice in general is responible for exposing service specifications  which are ready to be ordered and orchestrated, through tmforum Open APIs as defined in the OSL Service Spec Catalog. Usually for a service specification a corresponding (one or more) resource specification (resourceSpecificationReference) is registered in the OSL Resource Spec Catalog.</p> <p>The following image illustrates the approach.</p> <p></p> <ol> <li>A CRD in a cluster will be mapped in TMF model as a Resource specification and therefore can be exposed as a service specification in a catalog</li> <li>Service Orders can be created for this service specification. </li> <li>OSOM creates a Resource in OSL Resource inventory and requests new Custom Resource (CR) in the target cluster<ul> <li>The resource is created in a specific namespace (for example the UUID of the Service Order)</li> <li>A CR in a cluster will be mapped in TMF model as a Resource in the resource Inventory</li> <li>Other related resources created by the CRD Controller within the namespace are automatically created in OSL Resource Inventory under the same Service Order</li> </ul> </li> </ol>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#awareness-for-crds-and-crs-in-cluster","title":"Awareness for CRDs and CRs in cluster","text":"<p>CRDs and CRs can appear (disappear) or change status at any time in a cluster. OpenSlice Resource Inventory need to be aware of these events.</p> <p>When installing OpenSlice you can configure at least one management cluster. OpenSlice connects via a provided kubeconf</p> <ul> <li>On Start up OSL  tries to register this cluster and context to OSL catalogs.</li> <li>After the registration of this cluster as a Resource in OSL OSL is always aware of all CRDs and their CRs in the cluster, even if a CRD or CR is added/updated/deleted in the K8S cluster outside of OSL</li> <li>Resources created by OpenSlice have labels, e.g. (org.etsi.osl.*)</li> </ul>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#expose-crds-as-service-specifications-in-openslice-catalogs","title":"Expose CRDs as Service Specifications in OpenSlice catalogs","text":"<p>A CRD by default is exposed as a Resource Specification</p> <p>To ensure unique names across the clusters that OpenSlice can manage, the name of a CRD is constructed as follows:</p> <p><code>Kind @ ApiGroup/version @ ContextCluster @ masterURL</code></p> <p>For example you might see resource Specifications like:</p> <pre><code>- ```Application@argoproj.io/v1alpha1@kubernetes@https://10.10.10.144:6443/```\n- ```IPAddressPool@metallb.io/v1beta1@kubernetes@https://10.10.10.144:6443/```\n- ```Provider@pkg.crossplane.io/v1@kubernetes@https://10.10.10.144:6443/```\n</code></pre> <p>All attributes of the CRD are translated into characteristics</p> <p>The following specific characteristics are added:</p> <pre><code>    - _CR_SPEC: Used for providing the json Custom Resource description to apply\n    - _CR_CHECK_FIELD: Used for providing the field that need to be checked for the resource status\n    - _CR_CHECKVAL_STANDBY: Used for providing the equivalent value from resource to signal the standby status\n    - _CR_CHECKVAL_ALARM: Used for providing the equivalent value from resource to signal the alarm status\n    - _CR_CHECKVAL_AVAILABLE: Used for providing the equivalent value from resource to signal the available status\n    - _CR_CHECKVAL_RESERVED: Used for providing the equivalent value from resource to signal the reserved status\n    - _CR_CHECKVAL_UNKNOWN: Used for providing the equivalent value from resource to signal the unknown status\n    - _CR_CHECKVAL_SUSPENDED: Used for providing the equivalent value from resource to signal the suspended status\n</code></pre> <ol> <li> <p>Create a new Service Specification and use this Resource Specification in Resource Specification Relationships</p> <ul> <li>Then the Service Specification is saved as ResourceFacingServiceSpecification</li> </ul> <p>1.1. You can give at this stage values to the characteristics:</p> <pre><code>- _CR_SPEC, \n- _CR_CHECK_FIELD\n- _CR_CHECKVAL_STANDBY\n- _CR_CHECKVAL_ALARM\n- _CR_CHECKVAL_AVAILABLE\n- _CR_CHECKVAL_RESERVED\n- _CR_CHECKVAL_UNKNOWN\n- _CR_CHECKVAL_SUSPENDED\n</code></pre> <p>1.2. You can now create LCM rules if you wish</p> </li> <li> <p>Create a new Service Specification and use the Resource Facing Service Specification in Service Specification Relationships</p> <ul> <li>Then the Service Specification is saved as CustomerFacingServiceSpecification</li> </ul> <p>2.1. You can give at this stage values to the characteristics: </p> <pre><code>- _CR_SPEC, \n- _CR_CHECK_FIELD\n- _CR_CHECKVAL_STANDBY\n- _CR_CHECKVAL_ALARM\n- _CR_CHECKVAL_AVAILABLE\n- _CR_CHECKVAL_RESERVED\n- _CR_CHECKVAL_UNKNOWN\n- _CR_CHECKVAL_SUSPENDED\n</code></pre> <p>2.2. You We can create LCM rules for this new Service Specification</p> <p>2.3. You Expose configurable values for users to configure during service order</p> </li> </ol> <p></p>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#service-orchestration-and-crdscrs","title":"Service Orchestration and CRDs/CRs","text":"<p>OSOM - OpenSlice Service Orchestrator, checks the presence of attribute _CR_SPEC at the RFS to make a request for a CR deployment</p> <ul> <li>_CR_SPEC is a JSON or YAML string that is used for the request<ul> <li>It is similar to what one will do with e.g. a kubectl apply</li> <li>There are tools to translate a yaml file to a json</li> </ul> </li> </ul> <p>LCM rules can be used to change attributes of this yaml/json file, before sending this for orchestration</p>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#mapping-the-cr-lifecycle-that-is-defined-in-the-crd-with-the-openslice-tmf-based-resource-lifecycle","title":"Mapping the CR lifecycle that is defined in the CRD with the OpenSLice (TMF-based) resource Lifecycle","text":"<p>OpenSlice adds automatically as we see the following characteristics: </p> <pre><code>    - _CR_CHECK_FIELD\n    - _CR_CHECKVAL_STANDBY\n    - _CR_CHECKVAL_ALARM\n    - _CR_CHECKVAL_AVAILABLE\n    - _CR_CHECKVAL_RESERVED\n    - _CR_CHECKVAL_UNKNOWN\n    - _CR_CHECKVAL_SUSPENDED\n</code></pre> <p>These characteristics instrument OpenSlice services to manage and reflect the lifecycle of a kubernetes resource to OpenSlice's (TMF based) lifecycle</p> <ul> <li>_CR_CHECK_FIELD: The name of the field that is needed to be monitored in order to monitor the status of the service and translate it to TMF resource statys (RESERVED AVAILABLE, etc) </li> <li>_CR_CHECKVAL_STANDBY: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state STANDBY (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>_CR_CHECKVAL_ALARM: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state ALARMS (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>_CR_CHECKVAL_AVAILABLE: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state AVAILABLE (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>_CR_CHECKVAL_RESERVED: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state RESERVED (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>_CR_CHECKVAL_UNKNOWN: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state UNKNOWN (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> <li>_CR_CHECKVAL_SUSPENDED: The CR specific value (of the CheckFieldName) that needs to me mapped to the TMF resource state SUSPENDED (see org.etsi.osl.tmf.ri639.model.ResourceStatusType) </li> </ul>"},{"location":"service_design/kubernetes/ExposingKubernetesResources/#probe-further","title":"Probe further","text":"<ul> <li>See examples of exposing operators via OpenSlice:<ul> <li>Exposing Kubernetes Operators as a Service : Offering \"Calculator as a Service\" through OpenSlice</li> </ul> </li> <li>Learn more about CRIDGE, the service in OSL that manages CRDs/CRs</li> </ul>"},{"location":"service_design/kubernetes/intro/","title":"OpenSlice and support for kubernetes","text":"<p>This section contains information on how Service Designers can expose Kubernetes resources as services</p>"},{"location":"service_design/kubernetes/helm/design_helmaas/","title":"Expose HELM charts as Service Specifications","text":"<p>Manage Helm charts installations via OpenSlice Service Specifications and Service Orders.</p>"},{"location":"service_design/kubernetes/helm/design_helmaas/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>Kubernetes is an orchestration system for automating software deployment, scaling, and management. One can interact though the Kubernetes API and it has a set of objects ready for use out of the box. </p> <p>Helm is a tool that automates the creation, packaging, configuration, and deployment of Kubernetes applications by combining your configuration files into a single reusable package</p> <p>At the heart of Helm is the packaging format called charts. Each chart comprises one or more Kubernetes manifests -- and a given chart can have child charts and dependent charts, as well. Using Helm charts:</p> <pre><code>  - Reduces the complexity of deploying Microservices\n  - Enhances deployment speed\n  - Developers already know the technology\n</code></pre> <p>There are many Helm charts and Helm repositories there that are ready to be used</p> <p>Enable loose coupling and more orchestration scenarios</p> <p>Developers create and deploy applications in things they already know (e.g. Helm charts)</p> <p>Use the TMF models as wrapper entities around Helm charts</p> <p>Use OpenSlice to expose them in service catalogs and deploy them in complex scenarios (service bundles) involving also other systems:</p> <pre><code>- Include e.g. RAN controllers, \n- Pass values through life cycle rules from one service to another, \n- Manage multiple Helms in multiple clusters\n</code></pre>"},{"location":"service_design/kubernetes/helm/design_helmaas/#the-installation-of-helm-charts-is-based-on-openslice-crd-support","title":"The installation of HELM charts is based on OpenSlice CRD support","text":"<p>Please read more here</p> <p>For installing HELM charts we will use ArgoCD a well known Kubernetes-native continuous deployment (CD) tool </p> <p>ArgoCD is a Kubernetes-native continuous deployment (CD) tool</p> <p>While just deploying Heml charts is just a scenario for ArgoCD , in future one can exploit it for many things</p> <p>Despite some other tools like FluxCD, it provides also a UI which is useful for management and troubleshooting</p> <p>We will mainly use the CRD of <code>Kind: Application</code> that ArgoCD can manage</p> <p>Before proceeding, install ArgoCD in your management cluster, by following ArgoCD instructions</p> <p>As soon as you install ArgoCD, OpenSlice is automatically aware for specific new Kinds. The one we will use is is the <code>Kind: Application</code> that ArgoCD can manage under the apiGroup argoproj.io</p> <p>Browse to Resource Specifications. You will see an entry like the following:</p> <p><code>Application@argoproj.io/v1alpha1@kubernetes@https://10.10.10.144:6443/</code></p> <p>see image: </p> <p></p>"},{"location":"service_design/kubernetes/helm/design_helmaas/#whats-next","title":"What's next","text":"<p>See the Example: Offer Jenkins as a Service via Openslice </p>"},{"location":"service_design/lcmrules/examples/","title":"Examples of Rules","text":"<p>The following images provide some examples of rules.</p>"},{"location":"service_design/lcmrules/examples/#define-variables-according-to-cases","title":"Define variables according to cases","text":"<p>In the following example we :</p> <ul> <li>define a String variable. </li> <li>Then according to the Area of Service selected from the Service Order of the Service Specification we need to define it properly.</li> <li>We output the value to the OSOM Log</li> <li>Define dynamically the value of another parameter (This is fictional) and then do some other condition check</li> </ul> <p>The strAreaCodes could be passed then e.g. to NFVO for instantiation of services to these cells.</p> <p></p>"},{"location":"service_design/lcmrules/examples/#define-rules-to-create-a-resource-for-a-kubernetes-operator","title":"Define Rules to create a resource for a Kubernetes Operator","text":"<ul> <li>Modify the _CR_SPEC characteristic</li> <li>Add an \"Input with variables block\"</li> <li>Add a multiline Text block</li> <li>Mark with %s, %d, etc the parameters to modify with some action</li> <li>Add a list with the variables and their values</li> </ul> <p>in the example we modify a YAML spec with parama, paramb, action values from the characteristics spec.parama, spec.paramb, spec.action</p> <p></p>"},{"location":"service_design/lcmrules/examples/#define-complex-osm-configs-for-day-0","title":"Define complex OSM configs for DAY 0","text":"<p>The following displays some complex examples for defining the parameters to pass to the NFV. In this case is OSM.</p> <ul> <li> <p>NOTE: The OSM_CONFIG characteristic of a service is the one that it is used in orchestration to instantiate NS from OSM</p> </li> <li> <p>check the variable strTargetsParam. It is passed to the variable strOsmConfig3 which is executed if the Number of Cameras is more than 100. </p> </li> <li>if the Video quality requested is 3, then the Maximum Namber of camers will be 8. Check the OSM detailed configuration block and its syntax.</li> <li>if the Video quality requested is 2, we use a simpler OSM Config block to configure the parameter OSM_CONFIG. We just injected a json text ( watch the Escape of the string for the Quotes!)</li> <li>if the Video quality requested is 1, again we use a simpler OSM Config block to configure the parameter OSM_CONFIG. We use as injected json text a variable constructed later</li> </ul> <p></p>"},{"location":"service_design/lcmrules/examples/#define-and-instantiate-different-services-according-to-service-order-request","title":"Define and instantiate different services according to Service Order request","text":"<p>In the following example we would like to offer a service either as Platinum, Gold or Silver. Depending on the selection we need to instantiate different services.</p> <p>There are different ways to accomplish this:</p> <ul> <li>create dynamically New Service Orders of RFSs with equivalent quality of Services</li> <li>change for example the VIMs that you deploy the NS</li> <li>change the NSD (that is use different VNFs)</li> </ul> <p>The following image displays for example the latter case.</p> <p></p>"},{"location":"service_design/lcmrules/examples/#call-an-external-restful-service","title":"Call an external RESTful service","text":"<p>This is useful in cases for example of alarms , external logging, calling other services e.g. email or even a complex algorithm written in other language e.g. call an external service and get a result. (service e.g. a Python service)</p> <p></p> <p></p>"},{"location":"service_design/lcmrules/examples/#create-new-service-orders","title":"Create New Service Orders","text":"<p>The following example calls to Order a New Service Specification with specific Parameter Values</p> <p></p>"},{"location":"service_design/lcmrules/intro/","title":"LCM Rules introduction","text":"<p>Lifecycle Management Rules: Defining complex conditions and actions during the lifecycle of a service and any necessary modifications throughout the service lifecycle.</p>"},{"location":"service_design/lcmrules/intro/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>In Naas LCM Introduction it was presented briefly the LCM Rules concept.</p> <p>This section goes deeply on how Service Designers can use them.</p> <p>LCM Rules are used for defining complex conditions and actions during the lifecycle of a service. In Openslice there are four types of rules defined:</p> <ul> <li>PRE_PROVISION</li> <li>CREATION</li> <li>AFTER_ACTIVATION </li> <li>SUPERVISION </li> <li>AFTER_DEACTIVATION </li> </ul> <p>The following figure displays the different phases that the rules are performed, during the lifecycle of a Network Slice Instance.</p> <p></p> <ul> <li>PRE_PROVISION rules: Run only once just before creating a service with a given priority. </li> <li>CREATION rules: Run while the referenced service dependencies of a service are created</li> <li>AFTER_ACTIVATION rules: Run only once just after a service get the ACTIVE state</li> <li>SUPERVISION rules: Run when a characteristic of a service is changed and the service is in the ACTIVE state </li> <li>AFTER_DEACTIVATION rules: Run only once just after a service get the INACTIVE/TERMINATED state </li> </ul> <p>In general the rules allow to perform many actions during service LCM. Thes are some examples:</p> <ul> <li>Modify service specification parameters before the instantiation of a service (or during operation) based on other dependencies. These parameters might be part of other services already included in Service order</li> <li>Translate GST/NEST parameter values to other values passed later to NFVO for instantiation or control</li> <li>Define complex OSM Configs based on other dependencies and passing variables</li> <li>Define any dependencies when creating the referenced services</li> <li>Dynamically include new service dependencies</li> <li>Create new service orders so include dynamically other services</li> <li>Call external (RESTful) services (via http(s), define payload, examine response)</li> </ul>"},{"location":"service_design/lcmrules/intro/#examine-if-the-rules-are-executed-successfully","title":"Examine if the rules are executed successfully","text":"<p>Rules are transformed automatically to executable code (currently is Java). If a rule is performed successfully  or has any issues (e.g. unexpected syntax errors or exceptions) appear in OSOM logfiles and also tey are attached as Notes to the running Service.</p>"},{"location":"service_design/lcmrules/intro/#lcm-rules-and-osom-service-orchestration","title":"LCM Rules and OSOM Service Orchestration","text":"<p>OSOM is the responsible service for executing the rules on a specific phase. The following image explains the design in the BPMN phases:</p> <p></p>"},{"location":"service_design/lcmrules/intro/#define-rules","title":"Define rules","text":"<p>Rules are defined when designing a Service Spec. Here is an example of a list of rules:</p> <p></p> <p>Execution order of rules on a specific phase is random</p> <ul> <li>NOTE: There is a priority field. The lower the number the highest the priority of rule execution. For example Rule with priority 0 will run before rule with priority 1.</li> </ul>"},{"location":"service_design/lcmrules/intro/#definition-language","title":"Definition language","text":"<ul> <li>The visual language that Openslice used is based on Google's Blockly (see https://developers.google.com/blockly)</li> <li>The blockly graph is automatically translated to Java internally and then dynamically executed during orchestration phases.</li> </ul> <p>The following figure is an example of such a rule design. The rule for example will run in PRE_PROVISION phase:</p> <p></p> <ul> <li>The goal of the above rule is to properly define a variable AreaCodes given the chosen AreaOfService from a Service Order.</li> <li>On the right side the user can define some rule properties or observe the underlying generated java code.</li> </ul>"},{"location":"service_design/lcmrules/intro/#the-blocks-library","title":"The blocks library","text":"<p>See our LCM Blocks specification</p>"},{"location":"service_design/lcmrules/intro/#probe-further","title":"Probe further","text":"<ul> <li>Check our examples for more usages</li> <li>See next the complete specification</li> </ul>"},{"location":"service_design/lcmrules/specification/","title":"LCM Blocks specification","text":""},{"location":"service_design/lcmrules/specification/#intended-audience-service-designers","title":"Intended Audience: Service Designers","text":"<p>The following images describe some blocks found in the library.</p> <p>Blockly has syntax rules. It helps with colours to define them. </p> <p>So for example a parameter that is a Number cannot be \"glued\" with a String. Will need some conversion first</p> <p> </p>"},{"location":"service_design/nfv/design_nfv_services/","title":"Design NFV Services","text":"<p>This section is WIP.</p>"},{"location":"service_ordering/ordering_services/","title":"Service Ordering","text":""},{"location":"service_ordering/ordering_services/#intended-audience-users","title":"Intended Audience: Users","text":""}]}
\ No newline at end of file
diff --git a/public/develop/service_design/catalogs/index.html b/public/develop/service_design/catalogs/index.html
index c30fbb1c..58d61268 100644
--- a/public/develop/service_design/catalogs/index.html
+++ b/public/develop/service_design/catalogs/index.html
@@ -1963,7 +1963,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/index.html b/public/develop/service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/index.html
index ba388304..10b8305f 100644
--- a/public/develop/service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/index.html
+++ b/public/develop/service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/index.html
@@ -18,7 +18,7 @@
         <link rel="prev" href="../../intro/">
       
       
-        <link rel="next" href="../../../kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/">
+        <link rel="next" href="../../../../service_ordering/ordering_services/">
       
       
       <link rel="icon" href="../../../../images/favicon.png">
@@ -1902,7 +1902,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../../kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -3043,13 +3043,13 @@ spec:
         
         
           
-          <a href="../../../kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-footer__link md-footer__link--next" aria-label="Next: HELM Installation aaS Jenkins Example">
+          <a href="../../../../service_ordering/ordering_services/" class="md-footer__link md-footer__link--next" aria-label="Next: Ordering Services from catalogs">
             <div class="md-footer__title">
               <span class="md-footer__direction">
                 Next
               </span>
               <div class="md-ellipsis">
-                HELM Installation aaS Jenkins Example
+                Ordering Services from catalogs
               </div>
             </div>
             <div class="md-footer__button md-icon">
diff --git a/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example/index.html b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example/index.html
new file mode 100644
index 00000000..a0c6340d
--- /dev/null
+++ b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example/index.html
@@ -0,0 +1,2946 @@
+
+<!doctype html>
+<html lang="en" class="no-js">
+  <head>
+    
+      <meta charset="utf-8">
+      <meta name="viewport" content="width=device-width,initial-scale=1">
+      
+        <meta name="description" content="ETSI SDG OSL Documentation page">
+      
+      
+        <meta name="author" content="OpenSlice by ETSI">
+      
+      
+        <link rel="canonical" href="https://osl.etsi.org/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example/">
+      
+      
+      
+      
+      <link rel="icon" href="../../../../images/favicon.png">
+      <meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.29">
+    
+    
+      
+        <title>Example: Offer Jenkins as a Service via Openslice - ETSI SDG OSL Documentation</title>
+      
+    
+    
+      <link rel="stylesheet" href="../../../../assets/stylesheets/main.76a95c52.min.css">
+      
+        
+        <link rel="stylesheet" href="../../../../assets/stylesheets/palette.06af60db.min.css">
+      
+      
+
+
+    
+    
+      
+    
+    
+      
+        
+        
+        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
+        <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
+      
+    
+    
+    <script>__md_scope=new URL("../../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
+    
+      
+
+    
+    
+    
+  </head>
+  
+  
+    
+    
+    
+    
+    
+    <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="cyan" data-md-color-accent="blue">
+  
+    
+    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
+    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
+    <label class="md-overlay" for="__drawer"></label>
+    <div data-md-component="skip">
+      
+        
+        <a href="#example-offer-jenkins-as-a-service-via-openslice" class="md-skip">
+          Skip to content
+        </a>
+      
+    </div>
+    <div data-md-component="announce">
+      
+    </div>
+    
+      <div data-md-color-scheme="default" data-md-component="outdated" hidden>
+        
+      </div>
+    
+    
+      
+
+  
+
+<header class="md-header md-header--shadow" data-md-component="header">
+  <nav class="md-header__inner md-grid" aria-label="Header">
+    <a href="../../../.." title="ETSI SDG OSL Documentation" class="md-header__button md-logo" aria-label="ETSI SDG OSL Documentation" data-md-component="logo">
+      
+  <img src="../../../../images/logo_osl.png" alt="logo">
+
+    </a>
+    <label class="md-header__button md-icon" for="__drawer">
+      
+      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
+    </label>
+    <div class="md-header__title" data-md-component="header-title">
+      <div class="md-header__ellipsis">
+        <div class="md-header__topic">
+          <span class="md-ellipsis">
+            ETSI SDG OSL Documentation
+          </span>
+        </div>
+        <div class="md-header__topic" data-md-component="header-topic">
+          <span class="md-ellipsis">
+            
+              Example: Offer Jenkins as a Service via Openslice
+            
+          </span>
+        </div>
+      </div>
+    </div>
+    
+      
+    
+    
+    
+    
+      <label class="md-header__button md-icon" for="__search">
+        
+        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
+      </label>
+      <div class="md-search" data-md-component="search" role="dialog">
+  <label class="md-search__overlay" for="__search"></label>
+  <div class="md-search__inner" role="search">
+    <form class="md-search__form" name="search">
+      <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
+      <label class="md-search__icon md-icon" for="__search">
+        
+        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
+        
+        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
+      </label>
+      <nav class="md-search__options" aria-label="Search">
+        
+        <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
+          
+          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
+        </button>
+      </nav>
+      
+    </form>
+    <div class="md-search__output">
+      <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
+        <div class="md-search-result" data-md-component="search-result">
+          <div class="md-search-result__meta">
+            Initializing search
+          </div>
+          <ol class="md-search-result__list" role="presentation"></ol>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+    
+    
+      <div class="md-header__source">
+        <a href="https://labs.etsi.org/rep/osl" title="Go to repository" class="md-source" data-md-component="source">
+  <div class="md-source__icon md-icon">
+    
+    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="m503.5 204.6-.7-1.8-69.7-181.78c-1.4-3.57-3.9-6.59-7.2-8.64-2.4-1.55-5.1-2.515-8-2.81-2.9-.295-5.7.083-8.4 1.11-2.7 1.02-5.1 2.66-7.1 4.78-1.9 2.12-3.3 4.67-4.1 7.44l-47 144H160.8l-47.1-144c-.8-2.77-2.2-5.31-4.1-7.43-2-2.12-4.4-3.75-7.1-4.77a18.1 18.1 0 0 0-8.38-1.113 18.4 18.4 0 0 0-8.04 2.793 18.09 18.09 0 0 0-7.16 8.64L9.267 202.8l-.724 1.8a129.57 129.57 0 0 0-3.52 82c7.747 26.9 24.047 50.7 46.447 67.6l.27.2.59.4 105.97 79.5 52.6 39.7 32 24.2c3.7 1.9 8.3 4.3 13 4.3 4.7 0 9.3-2.4 13-4.3l32-24.2 52.6-39.7 106.7-79.9.3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z"/></svg>
+  </div>
+  <div class="md-source__repository">
+    OSL GitLab
+  </div>
+</a>
+      </div>
+    
+  </nav>
+  
+</header>
+    
+    <div class="md-container" data-md-component="container">
+      
+      
+        
+          
+        
+      
+      <main class="md-main" data-md-component="main">
+        <div class="md-main__inner md-grid">
+          
+            
+              
+              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+
+
+<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
+  <label class="md-nav__title" for="__drawer">
+    <a href="../../../.." title="ETSI SDG OSL Documentation" class="md-nav__button md-logo" aria-label="ETSI SDG OSL Documentation" data-md-component="logo">
+      
+  <img src="../../../../images/logo_osl.png" alt="logo">
+
+    </a>
+    ETSI SDG OSL Documentation
+  </label>
+  
+    <div class="md-nav__source">
+      <a href="https://labs.etsi.org/rep/osl" title="Go to repository" class="md-source" data-md-component="source">
+  <div class="md-source__icon md-icon">
+    
+    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="m503.5 204.6-.7-1.8-69.7-181.78c-1.4-3.57-3.9-6.59-7.2-8.64-2.4-1.55-5.1-2.515-8-2.81-2.9-.295-5.7.083-8.4 1.11-2.7 1.02-5.1 2.66-7.1 4.78-1.9 2.12-3.3 4.67-4.1 7.44l-47 144H160.8l-47.1-144c-.8-2.77-2.2-5.31-4.1-7.43-2-2.12-4.4-3.75-7.1-4.77a18.1 18.1 0 0 0-8.38-1.113 18.4 18.4 0 0 0-8.04 2.793 18.09 18.09 0 0 0-7.16 8.64L9.267 202.8l-.724 1.8a129.57 129.57 0 0 0-3.52 82c7.747 26.9 24.047 50.7 46.447 67.6l.27.2.59.4 105.97 79.5 52.6 39.7 32 24.2c3.7 1.9 8.3 4.3 13 4.3 4.7 0 9.3-2.4 13-4.3l32-24.2 52.6-39.7 106.7-79.9.3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z"/></svg>
+  </div>
+  <div class="md-source__repository">
+    OSL GitLab
+  </div>
+</a>
+    </div>
+  
+  <ul class="md-nav__list" data-md-scrollfix>
+    
+      
+      
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_1" >
+        
+          
+          <label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Overview
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_1">
+            <span class="md-nav__icon md-icon"></span>
+            Overview
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../.." class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../OpenSlice_deployment_examples/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    OpenSlice deployment examples
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../history/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    History
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../etsi_osl/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    ETSI OSL
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
+        
+          
+          <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Getting Started
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_2">
+            <span class="md-nav__icon md-icon"></span>
+            Getting Started
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1" >
+        
+          
+          <label class="md-nav__link" for="__nav_2_1" id="__nav_2_1_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Deployment
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_1_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_2_1">
+            <span class="md-nav__icon md-icon"></span>
+            Deployment
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../deployment/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../deploymentCompose/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Docker Compose
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../deploymentK8s/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Kubernetes
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" >
+        
+          
+          <label class="md-nav__link" for="__nav_2_2" id="__nav_2_2_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Portals
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_2_2">
+            <span class="md-nav__icon md-icon"></span>
+            Portals
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../portals_intro/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" >
+        
+          
+          <label class="md-nav__link" for="__nav_2_3" id="__nav_2_3_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Configuration/Management
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_2_3">
+            <span class="md-nav__icon md-icon"></span>
+            Configuration/Management
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../config_intro/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../role_keycloak_management/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Role/Keycloak management
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../nfvoconfig/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    NFV Orchestrator Configuration
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4" >
+        
+          
+          <label class="md-nav__link" for="__nav_2_3_4" id="__nav_2_3_4_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Advanced topics
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_4_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_2_3_4">
+            <span class="md-nav__icon md-icon"></span>
+            Advanced topics
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../architecture/consumingServicesFromExternalPartners/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Consuming Services From External OSS
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
+        
+          
+          <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    NaaS
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_3">
+            <span class="md-nav__icon md-icon"></span>
+            NaaS
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/introduction/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2" >
+        
+          
+          <label class="md-nav__link" for="__nav_3_2" id="__nav_3_2_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Services
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_2_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_3_2">
+            <span class="md-nav__icon md-icon"></span>
+            Services
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/service_catalog/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Service Catalogs
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/service_spec/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Service Specification
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/service_ordering/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Service Ordering
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/service_inventory/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Service Inventory
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/gst_to_tmf/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    GSMA GST to TMF Service
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
+        
+          
+          <label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Resources
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_3_3">
+            <span class="md-nav__icon md-icon"></span>
+            Resources
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/resource_catalog/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Resources Catalogs
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/resource_spec/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Resources Specification
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/resource_inventory/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Resources Inventory
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" >
+        
+          
+          <label class="md-nav__link" for="__nav_3_4" id="__nav_3_4_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Service orchestration
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_3_4">
+            <span class="md-nav__icon md-icon"></span>
+            Service orchestration
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/so_intro/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/lcm_intro/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Service Lifecycle management
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/lcm_rules_intro/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    LCM Rules Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_4" >
+        
+          
+          <label class="md-nav__link" for="__nav_3_4_4" id="__nav_3_4_4_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    From Service order to services/resources
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_4_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_3_4_4">
+            <span class="md-nav__icon md-icon"></span>
+            From Service order to services/resources
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/so_servicespec_to_services_kubernetes/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Exposing Kubernetes services
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/so_servicespec_to_services_nfv/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Exposing NFV Services
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/exposed_apis/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Supported TMFORUM exposed APIs
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
+        
+          
+          <label class="md-nav__link" for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    NFV support
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_3_6">
+            <span class="md-nav__icon md-icon"></span>
+            NFV support
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/nfv/intro/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../naas/nfv/nfvservices/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    NFV Services
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
+        
+          
+          <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Service design
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_4">
+            <span class="md-nav__icon md-icon"></span>
+            Service design
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../intro/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../catalogs/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Catalogs
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3" >
+        
+          
+          <label class="md-nav__link" for="__nav_4_3" id="__nav_4_3_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Support for Kubernetes
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_3_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_4_3">
+            <span class="md-nav__icon md-icon"></span>
+            Support for Kubernetes
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../kubernetes/intro/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../kubernetes/ExposingKubernetesResources/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Exposing Kubernetes Resources
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../kubernetes/helm/design_helmaas/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Design Helm as a Service
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_4" >
+        
+          
+          <label class="md-nav__link" for="__nav_4_4" id="__nav_4_4_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Support for NFV
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_4_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_4_4">
+            <span class="md-nav__icon md-icon"></span>
+            Support for NFV
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../nfv/design_nfv_services/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Design NFV Services
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_5" >
+        
+          
+          <label class="md-nav__link" for="__nav_4_5" id="__nav_4_5_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    LCM Rules
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_5_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_4_5">
+            <span class="md-nav__icon md-icon"></span>
+            LCM Rules
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../lcmrules/intro/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../lcmrules/specification/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Specification
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../lcmrules/examples/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Typical Examples
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_6" >
+        
+          
+          <label class="md-nav__link" for="__nav_4_6" id="__nav_4_6_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Service Specification Examples
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_6_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_4_6">
+            <span class="md-nav__icon md-icon"></span>
+            Service Specification Examples
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../intro/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../open5gs_nfv.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Open5GS (NFV approach)
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../open5gs_kubernetes.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Open5GS (Kubernetes approach)
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Exposing CRDs_aaS_Example_Calculator
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    HELM Installation aaS Jenkins Example
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
+        
+          
+          <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Service Ordering
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_5">
+            <span class="md-nav__icon md-icon"></span>
+            Service Ordering
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../service_ordering/ordering_services/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Ordering Services from catalogs
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
+        
+          
+          <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Testing services
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_6">
+            <span class="md-nav__icon md-icon"></span>
+            Testing services
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../testing_services/test_spec.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Testing Specification
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../testing_services/test_catalogs.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Testing Catalogs
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../testing_services/test_inventory.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Testing Inventory
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
+        
+          
+          <label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Service as a Product
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_7">
+            <span class="md-nav__icon md-icon"></span>
+            Service as a Product
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../product_model/product_spec.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Product Specification
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../product_model/product_catalogs.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Product Catalogs
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../product_model/product_inventory.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Product Inventory
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
+        
+          
+          <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Assurance services
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_8">
+            <span class="md-nav__icon md-icon"></span>
+            Assurance services
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../assurance_services/intro.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../assurance_services/alarms_actions.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Alarms and Actions
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
+        
+          
+          <label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Design & Architecture
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_9">
+            <span class="md-nav__icon md-icon"></span>
+            Design & Architecture
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../architecture/architecture/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Architecture
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9_2" >
+        
+          
+          <label class="md-nav__link" for="__nav_9_2" id="__nav_9_2_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Cloud native support
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_9_2_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_9_2">
+            <span class="md-nav__icon md-icon"></span>
+            Cloud native support
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../architecture/CRIDGE_cloud_native_intro.md" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Introduction
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../architecture/CRIDGE/CRIDGEforDevelopers/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    CRIDGE for Developers
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../architecture/messagebus/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Message bus
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../architecture/osom/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    OSOM
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../architecture/oauth/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Authentication
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9_6" >
+        
+          
+          <label class="md-nav__link" for="__nav_9_6" id="__nav_9_6_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    APIs
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_9_6_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_9_6">
+            <span class="md-nav__icon md-icon"></span>
+            APIs
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../architecture/tmfapi/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    TMF API
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../architecture/nfvapi/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    NFV API
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../architecture/issuemgt/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Issue management
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../architecture/centrallog/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Central logging
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    
+    
+    
+    
+    <li class="md-nav__item md-nav__item--nested">
+      
+        
+        
+        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
+        
+          
+          <label class="md-nav__link" for="__nav_10" id="__nav_10_label" tabindex="0">
+            
+  
+  <span class="md-ellipsis">
+    Contributing to OSL
+  </span>
+  
+
+            <span class="md-nav__icon md-icon"></span>
+          </label>
+        
+        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
+          <label class="md-nav__title" for="__nav_10">
+            <span class="md-nav__icon md-icon"></span>
+            Contributing to OSL
+          </label>
+          <ul class="md-nav__list" data-md-scrollfix>
+            
+              
+                
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../contributing/developing/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Developing
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+              
+            
+          </ul>
+        </nav>
+      
+    </li>
+  
+
+    
+      
+      
+  
+  
+  
+  
+    <li class="md-nav__item">
+      <a href="../../../../terminology/" class="md-nav__link">
+        
+  
+  <span class="md-ellipsis">
+    Terminology
+  </span>
+  
+
+      </a>
+    </li>
+  
+
+    
+  </ul>
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+            
+              
+              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
+                <div class="md-sidebar__scrollwrap">
+                  <div class="md-sidebar__inner">
+                    
+
+<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
+  
+  
+  
+    
+  
+  
+    <label class="md-nav__title" for="__toc">
+      <span class="md-nav__icon md-icon"></span>
+      Table of contents
+    </label>
+    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+      
+        <li class="md-nav__item">
+  <a href="#design-the-jenkins-resource-facing-service" class="md-nav__link">
+    <span class="md-ellipsis">
+      Design the Jenkins (Resource-Facing) Service
+    </span>
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#expose-the-jenkins-customer-facing-service-to-the-users" class="md-nav__link">
+    <span class="md-ellipsis">
+      Expose the Jenkins (Customer-Facing) Service to the users
+    </span>
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#order-the-jenkins-service" class="md-nav__link">
+    <span class="md-ellipsis">
+      Order the Jenkins Service
+    </span>
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
+  <a href="#access-the-jenkins-installation" class="md-nav__link">
+    <span class="md-ellipsis">
+      Access the Jenkins installation
+    </span>
+  </a>
+  
+</li>
+      
+    </ul>
+  
+</nav>
+                  </div>
+                </div>
+              </div>
+            
+          
+          
+            <div class="md-content" data-md-component="content">
+              <article class="md-content__inner md-typeset">
+                
+                  
+
+
+<h1 id="example-offer-jenkins-as-a-service-via-openslice">Example: Offer Jenkins as a Service via Openslice</h1>
+<h2 id="design-the-jenkins-resource-facing-service">Design the Jenkins (Resource-Facing) Service</h2>
+<p>Before reading this example please make sure that you went through the <a href="../design_helmaas.md">Design Helm as a Service</a> </p>
+<p>In this example, we will use the <code>Kind: Application</code> of ArgoCD and create a ResourceFacingServiceSpecification (RFSS) for Jenkins. Eventually, we will offer Jenkins as a Service.</p>
+<pre><code>1. Go to Service Specifications
+2. Create New Specification
+3. Provide a Name, eg. jenkinsrfs
+4. Go to Resource Specification Relationships
+5. Assign **Application@argoproj.io/v1alpha1@kubernetes@https://10.10.10.144:6443/** as a related Resource Specification
+</code></pre>
+<blockquote>
+<p>Please note that the <em>https://10.10.10.144:6443/</em> part of the Resource Specification's name will vary in different Kubernetes environments. </p>
+</blockquote>
+<p><img alt="img02.png" src="../img02.png" /></p>
+<p>Now, we shall focus on the Characteristics' configuration of the created Service Specification. This can be achieved from the the "Service Specification Characteristics" tab.</p>
+<p>Specifically, we need to map the lifecycle of ArgoCD Application (e.g. Progressing, Healthy, etc.) to TMF Resource State (e.g. reserved, active, etc.).</p>
+<p>In ArgoCD, the field <strong>status.health.status</strong> has the value that we need to check (Healty, Progressing, etc) for the lifecycle of the application. This is captured by the <strong>_CR_CHECK_FIELD</strong> characteristic.</p>
+<p>Also, the different ArgoCD lifycycle states must be captured by the respective <strong>_CR_CHECKVAL_xxx</strong> characteristics, as show in the figure below:</p>
+<p><img alt="img05.png" src="../img05.png" /></p>
+<p>After the state mapping, we must provide the template that ArgoCD will use to deploy the Jenkins HELM Chart as an ArgoCD application. For this, we must populate the <strong>_CR_SPEC</strong> characteristic. The _CR_SPEC can be designed first in a YAML or json editor for better parsing. </p>
+<p>Let's see a YAML definition:</p>
+<pre><code class="language-yaml">apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+  finalizers:
+  - resources-finalizer.argocd.argoproj.io
+  name: openslice-jenkins
+  namespace: argocd
+spec:
+  project: default
+  destination:
+    namespace: opencrdtest
+    name: in-cluster
+  source:
+    repoURL: https://charts.jenkins.io
+    targetRevision: 5.3.6
+    chart: jenkins
+    helm:
+      values: |
+        controller:
+         serviceType: ClusterIP
+        persistence:
+         enabled: false
+  syncPolicy:
+    automated:
+      prune: true
+      selfHeal: true
+      allowEmpty: false
+    syncOptions:
+    - Validate=false
+    - CreateNamespace=true
+    - PrunePropagationPolicy=foreground
+    - PruneLast=true
+    - RespectIgnoreDifferences=true
+</code></pre>
+<blockquote>
+<p><strong>NOTE 1</strong>: The above template assumes that the Jenkins Server will acquire a <strong>ClusterIP</strong>. The user should handle the external exposure and access of the Jenkins Server, depending on its cluster configuration. Also, <strong>persistency of the data is disabled</strong> to facilitate the deployment without the need to define storage classes and volumes, as this serves as an example. </p>
+</blockquote>
+<pre><code class="language-yaml">helm:
+  values: |
+    controller:
+      serviceType: ClusterIP
+    persistence:
+      enabled: false
+</code></pre>
+<blockquote>
+<p><strong>NOTE 2</strong>: On each installation, OSOM will change the name of the resource in order to be unique (will have a UUID), instead of "openslice-jenkins".</p>
+</blockquote>
+<pre><code class="language-yaml">name: openslice-jenkins
+</code></pre>
+<blockquote>
+<p><strong>NOTE 3</strong>: The namespace that ArgoCD will use to deploy the Jenkins HELM Chart is the "opencrdtest".</p>
+</blockquote>
+<pre><code class="language-yaml">destination:
+  namespace: opencrdtest
+</code></pre>
+<p><strong>The latter implies that ArgoCD will always install Jenkins in the same namespace.</strong></p>
+<p><strong>To avoid this we will create a simple LCM rule (pre-provision) to change the namespace accordingly with a unique ID, generated with every new Service Order.</strong></p>
+<p>The LCM rule can be created from the "Life Cycle Rules" tab, pressing the "Create new rule" button. The following image contains the LCM rule that needs to be created for this purpose:</p>
+<p><img alt="img06.png" src="../img06.png" /></p>
+<p>Let's create it step-by-step:</p>
+<ol>
+<li>Drag-Drop the _CR_SPEC block (Set characteristic value) of jenkinsrfs from the Service &gt; Text blocks</li>
+<li>Drag-Drop the Text &gt; Formatted text block and attach it after the block from the previous step</li>
+<li>Drag-Drop the Text &gt; Multi-line text input block and attach it at the Input(String) connector of the block from the previous text </li>
+<li>Copy paste the previously provided YAML text</li>
+<li>Change the spec:destination:namespace property to the value %s</li>
+<li>Drag-Drop the Lists &gt; Create list block, delete the 2 extra items (click the gear icon). Attach it at the Variables(Array) connector of the formatted text block from the previous step.</li>
+<li>Drag-Drop the Service &gt; Context &gt; Current Service Order block and select the ID from the drop-down menu. Attach it to the List block of the previous step.</li>
+<li>Save the PRE_PROVISION Rule</li>
+</ol>
+<h2 id="expose-the-jenkins-customer-facing-service-to-the-users">Expose the Jenkins (Customer-Facing) Service to the users</h2>
+<p>To expose a service towards the users, the designer must create the respective CustomerFacingServiceSpecification, by using the previously designed RFSS as a related service.</p>
+<ol>
+<li>Go to Service Specifications</li>
+<li>Create New Specification</li>
+<li>Create a Jenkins service, mark as Bundle (to enable Service Specification Relationships) and save it </li>
+<li>Go to the "Service Specification Relationships" tab and assign Jenkinsrfs</li>
+<li>(Optionally) Add a logo, from the respective "Logo" tab, if you wish</li>
+</ol>
+<p><img alt="img03.png" src="../img03.png" /></p>
+<p><img alt="img04.png" src="../img04.png" /></p>
+<p>Next, the designer must expose it through an already created Service Catalog and Service Category so as to make it visible to the users, thus available for ordering.</p>
+<p><img alt="img061.png" src="../img061.png" /></p>
+<h2 id="order-the-jenkins-service">Order the Jenkins Service</h2>
+<p>Order the service from the previously assigned Service Catalog &gt; Service Category. </p>
+<p>As soon as the Service Order is in <strong>ACKNOWLEDGED</strong> state (may require user intervention as the initial Service Order state is "INITIAL"), it will be processed and eventually completed rendering the services active, as seen in the figure below:</p>
+<p><img alt="img07.png" src="../img07.png" /></p>
+<h2 id="access-the-jenkins-installation">Access the Jenkins installation</h2>
+<p>Starting from the Service Order overview and specifically the Order Item #1 tab &gt; Supporting Services, select the ResourceFacingService (jenkinsrfs).</p>
+<p>Accordingly, the ResourceFacingService has supporting resources from the resource inventory. The latter are available through the "Supporting Resources" tab.</p>
+<p><img alt="img08.png" src="../img08.png" /></p>
+<p>The supporting resources of the Jenkins service are:</p>
+<ul>
+<li>A resource reference to the application (e.g. <em>cr_tmpname</em>...)</li>
+<li>A secret resource (e.g. cr87893...). </li>
+</ul>
+<p>Select the secret resource, which will navigate you to the Resource Inventory page of OpenSlice. There, you may find the login credentials encoded as Base64. </p>
+<p><img alt="img09.png" src="../img09.png" /></p>
+<p>Use a Base64 decoder to parse the credentials and use them to login in your Jenkins installation, through the exposed Jenkis Server UI.</p>
+<blockquote>
+<p>Exposing Jenkins externally is a matter of cluster configuration and request (nodeport, load balancing, etc), thus is not a topic for this example</p>
+</blockquote>
+
+
+
+
+
+
+
+
+
+
+
+
+                
+              </article>
+            </div>
+          
+          
+<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
+        </div>
+        
+          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
+  
+  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
+  Back to top
+</button>
+        
+      </main>
+      
+        <footer class="md-footer">
+  
+    
+  
+  <div class="md-footer-meta md-typeset">
+    <div class="md-footer-meta__inner md-grid">
+      <div class="md-copyright">
+  
+    <div class="md-copyright__highlight">
+      Copyright &copy; 2024 ETSI OSL
+    </div>
+  
+  
+    Made with
+    <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
+      Material for MkDocs
+    </a>
+  
+</div>
+      
+        <div class="md-social">
+  
+    
+    
+    
+    
+      
+      
+    
+    <a href="https://osl.etsi.org/" target="_blank" rel="noopener" title="osl.etsi.org" class="md-social__link">
+      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64h185.4c2.2 20.4 3.3 41.8 3.3 64zm28.8-64h123.1c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6 78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7 10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5 11.6 26 20.9 58.2 27 94.7zm-209 0H18.6c30-74.1 93.6-130.9 172-151.6-25.5 34.2-45.3 87.7-55.3 151.6zM8.1 192h123.1c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zm186.6 254.6c-11.6-26-20.9-58.2-27-94.6h176.6c-6.1 36.4-15.5 68.6-27 94.6-10.5 23.6-22.2 40.7-33.5 51.5-11.2 10.7-20.5 13.9-27.8 13.9s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6-78.4-20.7-142-77.5-172-151.6h116.7zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6 25.5-34.2 45.2-87.7 55.3-151.6h116.6z"/></svg>
+    </a>
+  
+    
+    
+    
+    
+      
+      
+    
+    <a href="https://labs.etsi.org/rep/osl" target="_blank" rel="noopener" title="labs.etsi.org" class="md-social__link">
+      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="m503.5 204.6-.7-1.8-69.7-181.78c-1.4-3.57-3.9-6.59-7.2-8.64-2.4-1.55-5.1-2.515-8-2.81-2.9-.295-5.7.083-8.4 1.11-2.7 1.02-5.1 2.66-7.1 4.78-1.9 2.12-3.3 4.67-4.1 7.44l-47 144H160.8l-47.1-144c-.8-2.77-2.2-5.31-4.1-7.43-2-2.12-4.4-3.75-7.1-4.77a18.1 18.1 0 0 0-8.38-1.113 18.4 18.4 0 0 0-8.04 2.793 18.09 18.09 0 0 0-7.16 8.64L9.267 202.8l-.724 1.8a129.57 129.57 0 0 0-3.52 82c7.747 26.9 24.047 50.7 46.447 67.6l.27.2.59.4 105.97 79.5 52.6 39.7 32 24.2c3.7 1.9 8.3 4.3 13 4.3 4.7 0 9.3-2.4 13-4.3l32-24.2 52.6-39.7 106.7-79.9.3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z"/></svg>
+    </a>
+  
+    
+    
+    
+    
+      
+      
+    
+    <a href="https://www.linkedin.com/company/openslice/" target="_blank" rel="noopener" title="www.linkedin.com" class="md-social__link">
+      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/></svg>
+    </a>
+  
+    
+    
+    
+    
+      
+      
+    
+    <a href="https://twitter.com/OpensliceOSS" target="_blank" rel="noopener" title="twitter.com" class="md-social__link">
+      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9L389.2 48zm-24.8 373.8h39.1L151.1 88h-42l255.3 333.8z"/></svg>
+    </a>
+  
+</div>
+      
+    </div>
+  </div>
+</footer>
+      
+    </div>
+    <div class="md-dialog" data-md-component="dialog">
+      <div class="md-dialog__inner md-typeset"></div>
+    </div>
+    
+      <div class="md-progress" data-md-component="progress" role="progressbar"></div>
+    
+    
+    <script id="__config" type="application/json">{"base": "../../../..", "features": ["navigation.instant", "navigation.instant.progress", "navigation.top", "navigation.footer", "navigation.path", "search", "search.highlight"], "search": "../../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
+    
+    
+      <script src="../../../../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
+      
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img01.png b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img01.png
new file mode 100644
index 0000000000000000000000000000000000000000..bbe29df97934dd4438f39f2f3e0e0e443ba0e4d3
GIT binary patch
literal 17523
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
TlGzA6D1^b&)z4*}Q$iB}6b0&+

literal 0
HcmV?d00001

diff --git a/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img02.png b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img02.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3719c6c04d5e04fc126d5d8388e8862a524ba2b
GIT binary patch
literal 96942
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%0DiIoL#kp
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%0A(OjGV@-|)hCVDSP12<21rg=?
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

literal 0
HcmV?d00001

diff --git a/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img03.png b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img03.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa3d7327fa68743d247aef9842ace2262cdeb84e
GIT binary patch
literal 102756
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
G4Eb+Q*dMw8

literal 0
HcmV?d00001

diff --git a/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img04.png b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img04.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a6c0bf1deb000fc1fd494317bbe0a318eb1d3e5
GIT binary patch
literal 81200
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
L%88T+>HGZ`sRsk@

literal 0
HcmV?d00001

diff --git a/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img05.png b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img05.png
new file mode 100644
index 0000000000000000000000000000000000000000..a505d800a71024148fe04533d15d7c26d0f1a75f
GIT binary patch
literal 27558
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
YK79=YVFsarOP8}UxBadB!i{_X02l)*9RL6T

literal 0
HcmV?d00001

diff --git a/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img06.png b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img06.png
new file mode 100644
index 0000000000000000000000000000000000000000..2089e793a2c668e24dab0597c7c2965700b57f5f
GIT binary patch
literal 76472
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%0DgJX;pv)Xgc~$&AtA$j|1pADrSEje}fi^al2i~
zb)%lxBC)qye~H@;oO_}^p!5Ex&41ljH}n19N*TBQ-@7Qw6P30A3i|5fvYK2@dBCY|
zNHO#-6(g}(G2-&jQ3XIL)BUH{F@1Y{(5w%sv@O$>7(W#!Z<$e`K@Z)QDT9nl6@IQD
z{N~6wVk%m((_lim3sw61P(r?)X(E2e;gO;`*Utrz-=IvWYyRpkO}dq;E%sr=V@hxm
zFj!1sRaYI;@RB*+cKRtT%Xp`kvwl5{psYUk1|R&E^}VZaTNd1j@&}MXo1B8acO0vv
z?G=!+S+x6iZmHa%`ZMZ4);}qw`4BW>1gIW3Q>07eNRxq#(b9WshzaXU=?4NG%16G&
z5%}5z)MmT)36}1LK&IVO-w()t1Ej{3T+d_j;LLY$+qU-g=^6Uxs>kFczgHJr^-E@s
z%Cnxm^n_lpU1Q0{ZPb6#ra89+Em2}KN*BIsN8Zl-(Dn>x{5^{{<{hk?@YDI1|EGNc
zWMI-yws#5L?8-X)J_gWWUqn@Rb6#>;eI1e-S{*M11fNeq0I`G`<k)I7RVax^4jt&*
zl0Iy1cIkF45!w(OCPQz9wzj11%yM*{<p9fmnj)m^gH-}#fZB!COhP!I!%%W<YT)Ah
zJHzQERlH!D45M!QiNB}+LBTfN|I!Aqv>vS|;MG{MYcsA{CnH{iPh4?#Z!#&Tv0q%b
z{~HlhT=D%!k9OJ}d8>mzCYQUNb71+q5}uN`iRJPiAKl)Z(Q7(&INRaHwy>sw_#HJs
z-usE*qX(N!Nc;ONpcTOD<EZ<Vm-m``c-jLZBhPrjDU`otkz1-hD0@Yt99*`gejq6f
zHAa1MI$isp#SfSR(Zv5Eo2Ym<qFdSgp-~60e8PBTNpi-^Ku6~s!Y=whPpYJ02d;w8
zfbjjM=yy~P*5gXLOS42Ltiug8u+6&8zm~S;RG;nB_V+$pkTv=gG7=@4Bt7)Vu6#?p
z)t;&nn>Hy_)YrP}%fd0VT=1)_|AVzR4~P2w|HZYcgm(#*(5@_LB_>NHqEOj)kt}2E
zV=%^OkxD3q>`}5C>x^xXEM*z{He)L?3^NnMh%qzg9(_LNbH2ZGzQ5}_*YEfGL)RrU
z^IGn?@8|v4p09-GojJ!l+7K*Heu7i5d8`WGhg#S;wnNgyze!N}scbrI;qiTeM=%r-
zKG;;V=YhUOdAW%VvZYKDXtcoKd3ML#JiDjoo=iPf>^RVYQAR3#+m|ykKzX@5RS50i
zG{1eZ(-b9Fj@0T$parEA6ws5XaY0$++;g`FolSDKgFa4fURtYg;>7LKm~4kSP^ior
zhgm^mejk?P>pE+2^A?ytzmV1~g`pUqs!m;**%!zsbtzFz#HahwHxT-An2*KvB-wB5
zy`yzD@#S(0L%^|d&Cr8)b}qF+%=sMe$>wK4?q=m<S)IjeRL_>MfjQp2tIo+P|C9Y}
zNosWDu1zUchLbw-sA+ao@{GBt)Y&!i!K)2|e1e2ID6HUWKA2aNX?>Xyycswf_FTdC
zJvFUV=`gmSINFp=ReN}(T&<<qs3p?(ny;t27(^O+#DO#lpDVZ@JJLT~M{R-TIYgvn
zAqsdW#n<SdaC1G^5~HY~r>DoPoP3R9JvQP*BUfnfI5i~mvTv%ZVa;4rMm6<i@5tTB
z$)$!f@3UJz>tJ3M2CVNZXs@y!&MA$ZgPJ)c!=?x%K^d7_7ucxcg7}s9Dtam9T8^-u
z;fEhjUQz$LGncwO#_ZvW5Zb`F$<m!Xfi*wyi`w}^UF_F-;@khPrUAYkK>@S(5XM|R
zC0LJug$3<k=;wNlR&{=U{=)hpu$Eo82NHIGR4&J<E$&NGif3GM>r9PGkh*1^JI>7i
zck{c`stug#O#29o0$}W%u=)zJHAYn{LhD>@nBaJ^NQm=;Krkt?3+<C)TE2Qd+_`c4
z`1m?37&H*^vjIar{{HonqWn4A%s|HmPuk43pJoKBU-?Pvfp5z+6I$~-1P`Yq-JU*;
ze5F_hv?$0D#zooQyt8(h<SlcvA|C#^b$AI|gM}1ct;IVo>hOeO&q?==2gntF;C-)y
zGJgjFXGW1d>C&l;e%+%~y>*z5wpp3DH!*c9U3WU$Mdv3h?Le&^*<3}GJX^?bAltVq
zvohUA*C)e9mvN(dFCSocK~bb_QzlnQuVszw0awtuJZMLc%2h0}*?B}carZUal-9S=
z;5|NDhQ@(Isc$=P`5Hpc{AbxZ&oeIlJ#=|A_TS@mnVY1KRVOt7oWIK$5b(JGv3ZsE
zl8ZBHa&0;N+{Ry(-{7sK*=Eo<#X&ItW&^VlvD`77R<&%(4&(%{+}-%Aze?R8hetGC
zWgB5~o}?2Eek3bIkD+iEoJBj8uqv3fK(NZIL=U%oqeh~~NN9NU+`=?$0Z0Oi+1i8~
zy^3mTWt}*?5DPPFH2#88H$j^B-l3Fi_%}7`3&bR-IxadZsxw{@@DrP}Vk*5D4`o7?
zOuxJTce=U)>)9(zN<&yW6(#{)y`Ne^ukBjrS?H!;aVwfh>Oe=gj-3pOP6%izh!Qw|
zA%$$G=Je92Ukxa<M|2$0HdZ*k7a2hE5gO#jGizP5fezl~$+nrYSeOOQA?$*4K4tiU
zwSNMmd&3M?fTzN07>v%8mY&Wly$Os4w`gt!*3gsX(z2X7C!D5VGkH)T6H_&N5>enL
zybX){KvEo7-B`z8pW+oL2j81qw-PNk`{Mq{&x9u}=wf069+ic)W7Vlua}Hze-YhJP
z&{B2918!lpSAfJ_7_3uG#|};(fAiN6a9E1>Hq2uJsRh?mQ`KcsKFQGVgEkR_>Nk#M
zFJ1l$yG9IbsxC_(vwC9;AJIbkNI-8nz;4yN9<@yS1C(+bkMt+6D*Eu~U-~N14xYX$
zR<vL2nqdu_d58258Y#?8F2B668H!HYGgl5{EJPvyrLf+m*3t;^fSd0RVW8RZ7no6C
zClFpr8^>|iH-_O&<Nu=*T#b;Nm78>H%)iO?uVEpF=AuFRzcefeV`d5z>kgc6l)Quz
z)3V}1J*IXvuKaiYql2BDN5H5$_8-sD0qc>~<7Ijb?cHY2&<VI!RDQ{N;2zTUxWHA~
zlPCaul&t1hTF)EY*fY{;9i}F_aj*FJitLU%e@oFYJ8<k|j(x-1R-2keo7BFik9F^E
zp0N*5<9WCQU=rq1Y1v@TiH((b<02emD=l)YQRomtugK{XA75l#`TB>K8{f??>*IFc
zcrxs_zChc(SHJV7w~RiZKI}3QKKfof0ey3=8@|8_QuBO$@|E;~p$3`%X(|fiC+6T|
za}O!xz4H-=dJ{l?jM_Jw4cro(=)9+{xX<6+x_)1nD^2TZnZQPIn7VR}^7E(yBK*z0
z^AArU7A}X;-HNtH$BD^DxS$;FS3Yy|`mJv9uS*TpKK%U}%>kzHx~Eh9M2##7gk1<q
z9v5}@hF11&hrU~Ur*={g8neG=yR#l6KFlOQ91~#k5@G$Xmuo(`Rq`5{w2LuvUo=h}
zSPR*g{1@CKcfE>pwxf-Bov&!D4E!YWie(kI5Bf`@r|Xf{zr|Bs?~jusW%4>6d#pTr
zTY7%9@{oRU5z<!6YOjv+@}ViHMGQB&<dX50Zx#QV>^|JpEqM*uuP$>GucM6EcLZjA
zc3w#Sf)4)xnX4Zm2S2CV9a@@_Dnk&IXT<+%^n3%BoxPQgt^1sFgq5SD3V@e)h9_=z
zc6$hP<%HUeE6CQ12^%@Bdep>{)66pXb0~K7@OeW$sxACDb>!1M;7ckgefQ{kZ0bst
zsTiiGWc7)Q$!0#6^PIE3pG*6~ftm&bj3-r4Aia|1E!sLiYPlRF(BgI;K(CA<)_@3n
zso%^lr>15kAy3%<3{b$sW-7`}#>qgOCNoQnz5K;*?2wxD$8>)V!?!HBOUvf{bRp3C
zy~@8)eBE2{UZ=|{Tn~{cYls<VC@bvO0y|F4Ws6HCW|v_79UO`)=I5~8a?M$pmII{Z
zNa|$IpslY|Y4jTs(!K75sew*jSrj65A%N_7>&h5MO=%2l1uih{;&G8FB!EHK09<T`
znivepy)*<L20Cs@5x&r7TDWvb7tos<o0?7&wpyIEwzi(%Ix2QWeBZvyM{orsUrIzu
z3!qsYx6}K}{i&8HMu##_rN1n*8swAps&C06!SZZiMTrl)8@|D~zFSR5R6#w+E`Kim
z((XX!3RdKKG^bKqOR$Iq{q5o!Xe(6!G@_T7|Elb}cngykWBSe?H?Yz;w=Lqvc6Er0
zi>kzSf$eo>IA_(cz^bw*aK1lG;5vz<WIJPJQ!HEHnBpuiCQAyb@y*TQ39ie8F;(li
zNgh4p<AFLdLWlMT<pZy%w;jJgqv4^m^$BUfb`r$;6`v9ars)fL?>TF87`d=kAo(}e
z(|c)&^Pp}WgAvQ_uFyu|L-)gH>$eE|;ea14b*g6JQ?D5kd#_Z{?Ahp*9*Z+({*?Lp
z^~;qvMy`szR1CQ%vg_n3R`5*QcE!82Ar9?XY^ESK$+#zXE8iX8|48eG^Wyceo`_~n
zuA_j98oQ@ACHg?T&2;cZiGf1+H5X6hh7Eb8+n%*Y;2HGTK%n;Iwuv!j`5Pe9+i7NN
zwyYXJ_T~AO0jQC`9y^j2y!fJ2-U{39$_2G101JD0tn4M|z-3>lyhhG^X=hpRst+(K
zsF)06X`UJ--jmug<~S5-5?i1Eq^*9q9VO&>V)-qetAX){S&x>`%KMF71%Z<Vws@k7
z4#W&yz6#7}OTc>IHrtcA_GdEsy2+e>Bru2(0*M@|x&Li$4MNa=M5~jZuj|SQ=Wo;*
zOfgOH`1M=u^{O|Heb#Z8FmHaA_2Ua{o#oZAbl`sM*y#foHv8_ms>;XLZx7Vfc&f>9
zt9t8ytE=IA&dM}MH_H&4KdH(m<K`0lN8vk1U3}1ZAu!P&M~C4|yrkiMcMk%jN7ZlU
zgP{hyZ)X(9xy*2kQqf*rT{Xyd|52nY1z@t$GSBg`;b?Jrt0GuB0%+mO0vQjfV|dbV
zA)3ok{WI|-1$M<QWHnPnX$4pm0!OYP&>v{0Wo3N`vrk0~x=v>$|6E$K#d)N#vXdv5
z=ZB4+@C*CP_E0NQqa-1+YHBt>)eDbuBF`>M;ZVaqGwI>E0CeA(Cd~ICQ12(t`!wbJ
z2xoG<rI-Ba?NTFtr3xBr@n@cHXcJ%a4^a%0a&tq6*YBF(pm67Q{#?0|Y_nZA72~CB
zvT?OH21=$vw+MNuTZY1}dPPgAB~J`qa~F7t*ves-dHwnDM9Akc-L$|`rL%Z~*z7;4
z=lI17m?@G`<`XbSPb+~BY<H5!Xq5_s8IWa=lB`E@k$;L~l%gbocA4Odr+7omAcl}}
zVAFsM+W)}Apk!ypz~iO?>N%DRss_|tq#i8H$~lRW46bPPZ#`jwc7^VA=<nVrCt^p$
zWUbO%F&V@-Eh18@ggoS%6(vD_+N4xyaEFTccR7&~{h}NVL4!iy24mugtRVve!m@^M
zRGsKQ<_LW7KjD0Qhe7-;lnSv$QZM0`dTtRMVtd5aEWKbRogrdE2rBVXUrA%b<e5ik
zLzo8hkd;Gm*9b8>przRVIJWMlm@#XM52^XFtD-rM;v2mZ42cK3QWPM)HzeA?bD}!v
zG=DHkea+?9^t5WURe2>WZDtiXW3zbfOVN%>>oHGjHV|T8wVLnDSpTfHPzZTR!^!~z
zrY2iYUmvc+8jj=7EI@ldGo;UCWg$}MU+o#q3@;eSv>CWO2|<i!h~AJ$IhR-)qaSwA
zf1v46XW$!%QC-M|2hSm!LqGiQp0FC`!SYp=#@w6&!*UZlD^YBVh9^+J?`@RLpgJ$=
zKcdU{w|{Ge&fSHf$_rr6)7V$I16H1=6%_OVKiXZ~A~lzcTPDzYvkc9<U<KOp?%3A(
zX!W(5U@EWhEo}?Pzwr`A-!|`GbK+K<%TUpM18Le@;Oq}S<nx^IK5X89WHMUAR?e)@
zkNAE_P^qB5b!~YrWv)EeGkO~dR8y)8jUp*?22;UcyYht1vZvzaF(JuKDVTEt#XS2V
zI6g4thp>Dj;}JwTgHqGO%q?|5M{G)U|4|$^U^^!Q6?TXn5L0b&5S<V!WJQc;6o(Q$
zp3WBg7EKTvRs-bktmM{Et>>p>o6(1mBMoSXb_RJ1pG&HX*@gwUKE&Y%jnS!r0jy=K
zg>A^Hlk?bP7mQ?hSa0({!97xLDsY0q@eBgQvL>JyTv97J6<OH3HVL$Y{!%zMUq_P(
zf8Uz|X^}7}zO<lc4Zkwho8(zLd&Pr=J3Ojx>EhAC9<1YJBF0gJu5u0q*N<8ldI==M
zAkdEvgN`PX&9d|B_i@z0>N5gkusZ)>OfG4<p!_9%JM+CwTG%2s?eCP=UuCni%e<@b
zxJq~7r_~IbouTYV{}X&}AI}hD`<|I7C%K6B`ft&pcj6+$zCZ`^yIr$PI8Z2Qpy8K!
z>|orMp<?jps7C{1Ndw`ek|!XuqPgwBQREX+$b3zPWN9vA6W>K)_*mfsVs&RDz)!)U
zIa+d7#q@*wrXtXp#J&bh@mb3L7qPG!dm__Ow9jN)E7k@MAjQrXyDK6k<p$1)s7do_
zGOmHmDDOx-CGeyZ&;*jfzrWCKkCy29b32ZL4X5;fv&sB#ejOt_MMzV&K5*=(qD5sB
zZJ@kZk5M9)bB4K<&&4vXmYMi$d3I8sXL=^+3HbV4V{B|Cffzoj2<BeHb4dk*WEFz{
zn6JB4w6b$V3mW)erAVGr8>l#6$BlboBd(6|rx3-sD>*x#Y<~OEnKd2f5~Qu?HEH=R
zO&Re1V22w5T)k<4h5BN_E6^@De}U7C48x}50e*j~J<19Aa#g*7(TW9BzJ*|GI-G#}
zjcgvNOh+9MsNVn~&8&@$e{nVnPM0&hv8Q?IQ(E9>BYi5ShI3fMj<-N>;QJ;#c|2p`
zar<rO1?FrAl85h!rv;ug{tlZ2f_a*{tc-gd<#Q4sYc}q3{K*48;$#Cs=>7AZ@fQN3
zSIO@*24V0L?TFH6(AM>O>#;*NDh|0~y`@|ECLHgVm>6wXiYQg-*4|$Q)Ac;8jz01F
z`&M};#eJ-vqnxl8e|Y1<zE6snoUP0-LjXtHhG}gf$OF?;^IgS&^mg_D`=Z0zUb44f
zVs?vIXV-HgLIVt-tLRkEx;=u}y(&i(I$X_u0z*|oLq}3d^nh)nY|-Q_0Jj+DN<?-4
z<NnqDi=k=y4m4h)nFOgr0BPt^xFgF*+im^nRm)U%a?MX_S@DK2m-b!3pXKT7HVrDD
zj{xDCF5g|;M2s;%J6i2Ien&#Yb8LG4oF@k`Q1IO1JfDBB3e>itkbF-Zc=UBPyZHES
zI-HPLB0%WI@^sHGtY<Akdg-0Z6LeC2$#k#hzDg6<AGt-aYi-Z=A|e8gMlaMVx!;=D
z|A;Yq*OI1waF$j73y&G8Q~SU#wL>1=*3U|+eTSY?R4VMrsveDX*^KGTZRn~0U>ugG
zw3TpvWQ8;^W7nx}S<DrL7<;Qef?AsF4|w>=Csu4Vb!Db>Z7>lQTi8Fe98v`0RGNqy
zAg%3E0kFm<h`GFeCbV0z&fvgh<5^;MLHfWkHauM<*p60q^1vl%^5bQHa0keq2OLmk
zYPJ$@%^9YvFh_y9$c`J1kFYptt`gReTVu8i<Dom6d*#eO$tb~lcFH7w5Q&=2*iuKz
z9+_2kY516D@`f$u(k+tI_Z_=aUQH;@zedB%sIby5ur@TnZ0u_gqk2N={;idIk=!Yb
z=5rLE2?X&y#76mcfN`Fq<X5$EGB+T_Ban6>?8cX0X|t799$joYkR5BZ8b6$<b2^Xi
zv$CsIvQg#^My$1u{+Y1BxHdOT*wvbt7WSjjn$qiCN@vG1Yr@615qgXYJ5#G~7^RLC
zN@cMxmZ4$6wu-2U6y1qLDT2V2UQgU2t<HeUu}-f_{;5vS%9?o{&CPwGOc1CxbsS_(
z=Ae6<vsDmffbC$0pB#D%0dghTHE&4Udlm5LD7xSORB8{~gMH9VfVqNW$j}l8(MnN;
z-^=nq`L)g-sG=AmDC84})6NCek6cF$!iSU|{mKr>n$r;<|1?}j2hW@!AP_G+|If%t
zch_+us%%%fqn}Zlk%3vW3A!gmL$TZDzRXX^GkS1%L2>~ZTOr|s8>>cEDcJ;Pd3?WO
zgQ_xdN7GC$T$+3=e39`*)L@%m-XpTxM9<2;OVelUvJmQrGK`Rwb0L{@3O6n_$Epyb
z?9R=4V4azk+}ApK>RzQfl48oXTd}&xBJN&>w4!XYKKivb)eYJh3H8232OFffc`Xf~
zQ&}$_a$$}E&xQG1j1%p@sbyzKBZl^l*+GUrAFqd5Z7h76lU-M{gs7Nx!5`kxPo^y?
z*=3PoH1=nTPPkEcE}HY~`GoR4eo1u6QVy<rIxJ`@TyBYURdVEom*jS~o(AWl4wrbq
z+!bCzxUz5qe<<}ML~q>YQzrpp*nQrEN-WGMw1K~`PW(rp+3sM5grfSrZinBdIvlO|
zl@QZTj8Jr`unM9kWZ}CzTOmjVxS962SRO(A71zGuHjq0_nx9vur;cEy+>J`KqE%qG
zXgv--0I>q=(y_Z$&Nv}gXPD~GA(IU1>6HHOHU;9D$THSz|J<Lq%b;0)?~zBF^5Szl
zRkE4_3HMd0<Cf4SqP_Cm+h-{lxMx9B_PaCvEKgLyg=dY=i>p`q>*1I=d;q)V7^+C`
z203Mq+C@ZJ&v)n4^zzj=@L!S_{nizizR#P(Zh?~9s^r0o&$koyB8p)YBN2hhC&~%d
zX9IH;%K$$7mM4Fa@ffE91nB!4?aqOrdM&-?jtw4XMLu_MJmfEi_j<9jEa1nADn!j7
z*oKoihWx1lns#`Zzpq)|GOmAQ^h7$#K-;9SQ%tdM#W|}*u&0hYby|(n9jJ;!c(F_M
zGgYgQ`Ef_Crl=xJykC$yss?iomi#m+_|5;Vdh8BO`0Mh=_nE|&xtIANmW!;NRjlC^
zlYNZocu{QdVtN#9c+@5$-Dn~d^3iXYcGh?jeU-GA@A*TZ;3Vw5WfDCYc5<-r_zA~n
zQb~t_+Cf+L{cjMgvlSUT)md#l9Qfqoj|L7QXyU-Zb0HZ$jOm%yz`W#yGJ(<MdImYH
zwQggT%SPI{Th4Cp;r5h96T03NqX)#}xwd51mN7%yL9Y7mP%wdB_-vh-_gOtR<_B&r
z@sUZtx!G6oq_Q5tX72L*$48T|`qSzvtm}j!dtCc{zc2z0BNII;DBIZ!{j@|cmZ9+;
zX`E@^p96@ewyN|DYS6DydnerRDosN5Px5a*jeB{=ItLY2xVjn;rmsSRcS^{mADi%{
zROCwcj8OL2i?G?V@31HM{<)QZxcbOukGG9S5F6OpNU^QC&6md>Xblg=2_;uYxfL>Y
z*Y8<u0Z!3Vt;oFmFJ-)(iPFn8xcuX3eUBa4I;iyF6;&g%ltbN}YcuI<zsd(G#QO8g
z({1m1YBA52sOCAir9Cpqg}sKtc58nA()oI<eVM9c@5gItzBwML3)v5C;Uz~QP;j=t
zuN0=7HE|3t>*{_Io}EM=i-VEqQI@-@X11K`<`cm~uP+!c63>$#zUvXgFZ6s-WxU(E
zc^$;jeYAU4SVg_6#z`Y*+Yfm9abLbH8o|J-ua}MHNkwPYjKp{$PV5CE_;Bhs&Fb{c
z9=%&VuWYa#nu{)@w141~zS9+ldXy;od%pT{iwo762h{!q!4KY(`2dGV{!G!yy55Iv
z6>-gb<fxtVXY6;Ea=9U0)-$nkb<)t!As4eYUnD)-5_BZsLTiWTOyr~vrOZt%2S*tK
z;(4~y+V4nEV(p&kV{L`84~JC0>Cu;_ymoX%P(Q<Vf|YC=N$`M|1P_wFqW}o;F2D~|
zK!3~^OXx)V56U(sVubw<L2N&nGk_S)#0HMSV==^Js~TU>%dsD>V>Hg<51r154dSkE
z&y)|aKKC+C!XP}oYC0x*xl2Ga-JkS@oZa%%%+U-IKkfR1<?J$~ORM@=usyBU!c%cH
zC(;vNFlne!OexYx#8Um9L-IeZBpj^e+`x-65L>Lu{z&tm0^J^Qi=TKWJJ_`e$J?bI
z)>UZ#?kyG_84t=(ks_hFUYW8#xZ<L7wp~f{ypTVjtS|;!?~#NL=8W$@fwg}QQ1Vq!
zcpKBoj-|AWNAtO0EmJ<Vx7GDO;a2<CneCHSnpZx!h~aien1;cKsX24av_2a|Z6WoI
z%nDn^(vNJ{KfM^S&q8sOS%x+m#7XyR4D9YMdYkvWqOI+t^~%cHgYOQK$x?Bttfih#
z4qHoMebR3E?t?Bc$(Rz7GHV!T1`|w7Un60+I7dAuxA8?@2YH1ggX-fnP?GvS6fFbg
zGvbsNbMr%ik9Za2NI+~OcBrOqt^YCQ8+B3z#Jb>X?msDQulyDF^f3%#dz8i0O3hLO
zlT=zET+Z|<p&x8G7z>4i+_gXC$buHt&N_|7=OJr(c9l@kj1D9V*Q7{X9U^y=2GH{^
zY2)UD(4RJD$4T+H0tJqpsqxBO%Otgz6pygsKyzowClXy)%Khvh5F9u7qfZV#I~~3}
z?=0#~XCT1TQTWnas(^e7+yAEOk1~E~$&voOEef)`$`;4{q{Z;4y4qVZDq%u+pPQGZ
zCKt*1SQzR5wcT_Joc0C-9SyzEPfB??JGokQ+6!j%u!0q0|Ln7^ntrFhBxa}gJ&LK0
zZ9Yln6D5`u+}V-(ISGx9Hf6F9?7?p@NzTo`$`o|_!)da7_T0a`&x5Pv7hASpzRzeR
zc@B~k>*k+6=OqR0N{@(mdF{x|zXJyol$AVh@%9c_JI;VrI#tAEP_&)HkOz{3%Fn?0
zs*6UGQ;I_I08u<gKDOdmGZ*x;mUWGE(sG+S+5RZz60s%>b77hwDEU={TJ_509+E_y
zqj%`A)|;!xDAw^Q7+gV0UQ1NUx4~%cx*Bkx8VIu)X;r+K1Kivqog@O)=x5h}s6(4z
zwJn-&&%4ynYAbT>;jf#=QN^;J@b?7nWJ=ZiH~W6yl?eJkgn(54$7pSNvrLuf7V)|L
zKj!yO@>j~K7Z@DO<3E{7sn&IpgU=(2Ipg>h$^aCd(_UYvW_CL<J^bOwr#CG(##(!N
z^<?bW`O^=z=U$B3h>xqOd&Lz_qSKLE29<n!L<zMQFz-Jd5bo&GCrcH)MA~cDeI6J!
z7%aaam&$5`diL8O*x`k$<<LyA)1!(~81uALq3c|bs`NW?6CXvI=citF|E5B|EUjQ(
z=Jb_VZt#4@q=d)|M1qi#(ce#`Q(2i=5Qg*=S#GkVEm?&ZN6=z-!~GHTsC-#jsL~z|
zWB%WWX}>5nD6(9v*f)B&tA0MCEOhws@Xa@jF?IapT2s}TJSC>BAri)}q2fC|uPhYG
z-F*?l{?j?m3aa?IHh29I@=7t&NSti<7UK*e1&5Yv#V(6>#>Q`>(|we4r3;ALJ@bca
zkD>}81tfmYcNT9`syo#_Q6TP{`3_bBbyn}gS_xikXspe~&dk&*V_V@ys$xIcWDm((
zexLq!&RqFFB*M6CbOA+m&p_M>;@p0y`dw2e_x|QFa_i=a#N6-j8*jn0PeZ8<`MNPK
zIZ-HpOk-WmGP+11LgBD?PJO2rJj-_QX*%lg7+b;oziJ0Me9)m3=1vmn=}Be^NlB2b
zLC{dy!&M)I(q;6}kML^f)q!xL<?Z7QLGpt)&{N;^oDK5>qY?O!0b0W!x$uuES<5f6
z{zu+`?>Ow1ThGz2sgAL|FP<at#f5Tj)Ca+h(kclh)@sjR$|)cwqw~Qn0!Q}gzhq`u
zzF18V_2fELdL4EuKfV|SrJkr!+JiMm@+UEJ5y!~v`BkPh`jor!jipqhLHuiKfa$qI
zm0WX1H%RdS0od?BMzMJ`<-#*TpoD2m{GTq{s6Em6&jTf2vDI?}R$vno1;>w7DS#-+
zi_BzmI}MX!uOLc=H(~IJT1zT)PArjBk&EHyp376^nzN#pmx1*i5D5MMMHyXzpxZhR
zmpVsZAm`+s_zpAr{{_8stC8Oq>@wZ{)U)jUJcSaZaGA|I7Hv#4%wK&_256X^5sW@b
z)R_5yMNt9<BJ|S(lltz*^I!#PAifOfCk(_r3*Dd(Gmi0?+c!l6!usiy%Xd4dL3wT0
zVD#pg8Ux-{|6|n?HnPfiCg<2_tZ>F(X8k3Qtu=Z98PDL{t?QEiCJX;Di!t>fpJt`r
zcp2xrQQU&pCPsg%1`&uph6&P#vJ82l=l34VHOuC=Yy>_XOqwS2hd)yl$_<k+JSpRG
zWjNS-QWq!~lvB6fk$`(oeh22<PDv0HwQh}OFVnKuj(T26NIru2qNRT`<>NeHeSnz!
znu_m(KgobfeJhGc;ssbPMy4kQGUpOwQpg?`Z;D8zrEikk93AKjv}VP#$9`#1#?(*V
zHonRP@;If}+BbIM+37X7@jbR@JjwCBU-5DERowmAO8-xlgtiSY_3FdJqt|Jl@C#F+
z0E^I5Nj&cv3o#N1^u3rlLk1-7@uHy+#yho#6@^Qk+pv}Af0_%F@O10ch5GYyMgk|p
zS7wE_kBBuQNlX4riGemq(YSkukh%d-rT#toW6F-;`s~CF_Jg1$V}9k(L!WkvGZ8K9
zO95r5_P+MwJ-*wl8rDLyc<GR`5LoiV?O2P~lgwR;yl^4YQEJ}N=#l0h8cHC<XBg-%
zJPuLUzxI4M__Jao4)8@Tjk)nb$B(|a?s59W<U<Pr-hR=#{|uQ{a4h&l-)XhY5Xrue
zFLNnZ52~IGjwt(*aL@LQh&_*!ZHvwMvWI$WowPMf8gLD34qsM)B>7rfL-L`OH;JoX
z+Y<;e*%S{uvzj@cM0xZ8?~^o*V)~BY-ev5Wl##_3665+R>jNYA7w+bsuk?SkneT9*
zdG=aqui+rb0lxNSu^E8EE%~j)Bt|$!$#ZVZQLO8rz$d&4*B2msmYJ0SEo%R3<<Z6Y
zNNtIl6>eb9jjbX{LF=pqGgu383~e*!=x<=#kC+O1RiHzYN##lT0VGEQp=01kOgt`J
zx#ga=TTL%^%F}Y5exgKrpXZC3`>7bPKmG~54+z+jLZG=|vr`ZakALx$&Cx);vfeeq
zqYA@1#BQfuwhz7F`DLEBz+Z`D^%<p8BdMf+=?txnr=AWkL`mcr#h*F1;@ezwpWv+q
z6fKTqjlT-RM$}3ea}q<0!r~>rqHUO}0r%JcXJMc?Qlql8W*i^(gQsh$@}HX~@J<?>
z^%OYk$FN&~Fb|B1tM(ODa?8_LKXc|~iN5|+&e@~Jif38{%2jk{#~{DCds>7}@kFBX
zXn?F~`abxP2P7h2u;Z_N3Et|qAZ<{-cte2l1kWD&8ycuh#?Y{bM;eLI+a}bI%RZYQ
zTDiOXF7VLF(rB$~v%-svSnpvcT4FLl^B9Vi$Cp%xyl?UN#pVWIfyF!rlV8oGznOTh
zZhMa)ZjfSjfZ^mD7=#KFKMfE=Rd?|c`^CPOl!f)mL<i->_Cp8ee^EysoCg3+FuNf_
zd^UBy<|Pa;05K+VR{bSBO^e4B+oJifF3!uDjWi@_tK40Fc!~!yHH?&M&MJ0uBN4<T
z%$gdUk+tPJa_ACvrcJrMX%#EB<V!pO@`bT+GA}}!FB_?Ud`jr%ft>blX;xc&d!3!!
zK*W@X;e1^Vd9w6UE2_eOyK6&!dJyW>AQTDoY_(dBDAdiK<}=;x-5`0>arzY8^p6tg
z#GqJmkJP!@GcP%+MK-3ORpopr&9_I_z)Rv*%_L{Ztj@<W;(Y+CxJ6#x7U$zsE}K!H
z_Tq(EH|m<DWv2frC9_zdpRsDftt1XBZkPYILTC#>)g9~azrs7q5BHDTe1m=QrY+6H
zb`cySj$NB7^RBfW0*O4Cb<Jy7-S6-3=ICHAh<m>(nzRh?VCj`cb5M|^XA6YyR<dal
z?8;3aPM6BM3z*@-kMaTyZ23gdGH4M|-m2#z5Kle%W=y??JycuZi9?SG#D0_<?3BU{
z92FBYE0=aeRjD!G!zN91SS$4L@NEp{x;cq7H&Lz(;>7wP8z_0Gx#hce@8*45j<A^9
zveu;mb3G@IWX^j}Uja1>Pell8{lC%ToLbyo=#u*%JC5iNSJYa^>m#&NtMctTvBbqS
zU!B4&*$MwUo%R17aTuyid3FD5gKT9%0smitINw#??0wN^VDamm0xY5qbCGwy`8sS0
zu6sar_IiS##B)Q7AdY?q->1&nKMi2f0T8jjF)u17EHf=67f-{V<h$s}#M=knPv<#L
z_zn*P1s(X`7{FKm<VEF4hj=*yO&?S3@X8b6WctRII`J8g@QZCFGAm;}{w=#)*9_Ip
z?H=h5ZhO)*P<Q!j7GkNl7h>q&{G8VF)pV}s3^aKmrP{OmWkw`nzrNk~&({PYb3g0J
zHQ!QPFQ*W({g3z$O@N@sGx8H-CYF@KOZhSSNlVvE<EpoRIDJZ9-Wc>IoLp7e$`|?&
zg#BrP<UgafIE9q3*An{Mk05-Gf}A3zGl+8(1U>_oARgZ`gg$!RgBZ)ZCA{Om#1nNF
zZq?sT)r%3K>Ln_I1YX~H>37S6byXMmy8KXFDy~d!Q{sN!Ym2yjfrhjvLaN^+H?hpX
z*cj~&(f($m@N}djK5XP8(K_FU3U>~zDn`)NQ<#jg*3tFaf{N05&S1$60fey{({Ac5
z+RxQ%o94&6W=B?dK~L-XFw1hcU-HEP8u8M1o=CXxG%u<=C(b3lawqzz3%zM^aj}9v
zsbwMN+~P7?RSwxwA1z^+@jW93qO!+F+0Nh_s;h}uQ9G2fiSmq1zQsE8NO}q#Tr?n#
zo+fPm4z-&AL9oyqNMXg7lucdx`)+)LZ5qf*3!yyiRIn`T8ni=GUm=$%zdZKP+7#=I
zLD(cneVis7_vlExL?PiYBDJya-evoe3AAH;ZVtc>N8wSVJ7BBBl>R*U;&&MceU@0X
zvIZD@kRRD;Nf&T=xudfC!5$wOnQOG^Hi62)f>S==t{7RD=(4$9d&iBs9t^FtgWPLy
zjgePD)iI9d;+5QoCY}<-Jgmx>S@b##$oo0xwgV=b!DIyL%U0I0nWQc|2i`xbldmo$
zp9@VaUZH*Amp;V2B_ohY6*tRD_IU|0@{Rj4j7-(@I9&DZbrR2C0gj?H^RUlsFAvcH
z=GUriV@*v>2BEb;xBwfiG6AE;ce-|sB1avm><vuaW}k-URK_XV71q>T5fv3xdGvl5
z3roU!ju(o`na(^BR`-%^2F)$$Pbp%%hDJbk<lL2(Tmv@NefZ}ge$8MWSInqg+NIS&
zEQhAp-8&$+xBPH0Pv<f9)-ZXctk~|g#eNUEF0wt<lMZEVi^mUA)!gV7tfqH(u71r*
zHLMgmcm_67(LFp4-fL#PVYiD1Z}{qd?BAr&f8v+@@|DlNBTZP>{+H;Vp!QfS?rP7i
zQ0OZOZGT)0+Ci#5N({3d4`xJ`ri48ZdzG1)=~^GU$>1#P2Nr0n_1*51yjvv6#vxV#
zFzM(ki#Op^qRH&+tm@C_$CBfA44iB-FJkht*K{@Rf5?H7umz0N#m&D!P9(&aDK4Vq
ztnj$XZ#Lu06MhIf=YE~vd1gqdo&7MfTeg;}2BRB7z0bRJ9VVk(>;9D3=~+Y^6``{|
zqEWo~$QzZCc_2R0veGA$vA-+%HSbG!trhglnXr(V&8|iDVHw@t;-rTY!)(8R&aWfR
zTQnVrhq^3fG7n|GLGfRjacC)X+~N`<{{Y)c&`(mDjWx5qo1_Fw{)cFO)*pNV<f`QZ
zLtDk;rKa1N6|j|I=P$^+L)ZcBrc}@S2`$qwWD-MN3OQeFP~<TWlJxr?tMV-b(vKj=
z_Y36WL)Mt_`@~ccl)mqQ<HJLbJr(~k)YZKkE+m<}0)qcS5}aa(u?2YUI^BwQN%@`#
z;H$abvdH<l#l--Kh7FNFM=JyXWKMKm@gB0ykn%iK_*GoG@QKFdA(R$T;*W5Jsm5`s
zX+J9HJZ=;<kVbRK<JL~{jUv!<6%jB-7DVVCnWmH1wr9jR=QI)LiSd6Y>NZ#;Nemh@
zMZvE%rJ2x2tqM{6-o8@CX<_Xe>PKv{q);_cmn)2(obkU6QM#(!wQimb>rXYstN6{_
z$x7@MsQ5X0sAuyzs3)K&%jM4w$P6))b_n$4JM@X=X{k-UzAn4Xolmw@bC}c65TfgZ
z-gf_L`L>ScW`D=lc-x@UWgsT?kYoRV6p~J~vo;qv0wnUv&&unjen+f?D2u&kty*RC
zb!_AMY;v)B)^5hfC!4IRb=8>pIl897BG<<~{+NRYVm!01_if!e{v>zi9^$kAnOQ_o
z3N=ruIW?%Zv`=f+th#@NGzkxAA-I{0=}GQV&1S?Hs7@qpS^A1_qLe5W|E{zN-xBNN
zXE=(qTlOsS>r4~Av*H+KOk%!ZzaG33rH+mGJZi@3#84dv-q!UEeb?}Dmc9L6y~kqj
zT{E&{hNLo)13S~rh?q|5!St<;T<`z&yIy$5BSX4!&bUk4@Qt-}w(uG!oZiR$HW67K
z6N{=Vrpra@W{k^8B;pO2LH%Km)b90H+B7Ln9ZZxY5jJTu9Ds!Z|46|!J>e8-Aczx`
zANxY%@~w9!NUPruML(PBd!$Q-HV!Ff<hzletCOQ6{j!BraZ`|0Y3s6zL$h%2>w-({
zZnI}}G<;GS3oX*&#JzzO3R~!+6IjAyqP87$mK3Q;2+x7-e^)-U(>W({E{!9t7R$v}
zn?n3yPol1vmU5QMAR-Tb+`Arb%NRr6%}Ft8u%&CoqOCq36Vkgon@S%|s29FFF8!$x
z12@U4F`(QVGJ-@Ps-qhRGOhSg%kU-ce(?35{lfnwBJv}^KA><amU}I4&5yKf2wgB*
zrCC<Y=ieaobRDErjK`z%t|Q@nsq{Ly^CvNWTp!aHn|B<qHJ;XUuc=xt*DBXxTxVX~
zWXz$?Meii@);aF#V0hIZ+XE5o^Bs^C_NqYbM<GEh|4`b&uPS^ug$7dVJ=Dp?QX>O|
z4^{bYtgh?Aa1Tr8t4U#Fe0v@14y#VTcTDDxn4E>RVUnHmkl<mq=<q^r9==8XIIgbn
zdHz&k-U_7a9WR(VXXy-M%$gI;++NzmO*&>|aw~>Zc)3Gz({fu7;nFTEsdrdT(*bq-
z$F$V3z>*8ve(_RR%Xoi_$yf9dRD|h1m|yckKx~s({XuS3SiPk1F3y3$T!o}-SBpD5
z&zv^p(poOhaaVtGDU*^`*GVkgrEaF<ks%C!8o6C^bk+-1GRG*YZ@G4k)LbW>R4q^4
z?L4pX46W{?;Xgk=m<A_wI<l6p;SlPpnw}n(<X4k6VDorsY;|aEuo4#DRe7V3R4lU_
zKeTf(Z!)42JKHjzhG}@b7iA|_!$9aCO7nlJzCLvmzkl5i5(P0>n>jWsqw(fU&DqN<
zBfdS1PX4bRc1YC}=|78?IWwJ0_d}ZI5_aUhX5Ow{N2f%aMp~CuYRN3oY5C)<G)2nW
zXv9p-tu@z1Cs)D<e;(FlEFZ1nNa9RHeQ^`=9Lp`llaU-|J;ahT{rNrXMN6uqNjC?E
zpVX#(t>Y@B&HFUW1dv4{P3$z--_Db(A|+X^JFlnIs}a2&spu9g20n}7hs=#e)Ap&R
zX;J_DypTE8cPmK`o0GrJkHAjLTLY5&M*2$J!Wd(W)f>`XHuK~cL8%`_zrnKoXAb!?
ztY(a%_J%y|T=(=~;I*JWKGlJh4=&_D1Nuar*+MODZRN*8I3=D-Pa(9Jw?sA*xZ+zn
zccP+;2UX~$(aY_Lh`m8-`Za^YjYPvwpz#?kiirW0wYQEasK6;<`R)ioO-Fl$UHK=j
z!a(At*pUG<97w>6ZE(uV#~#izOjD=bF6zW|SWP%l1qKRj=8Rukc0Hu-GEkj8F7u$&
zw{({g8u?_<7O77L(v=Ig_@MIMy<e`KhoDJ=AlN#my}kX;3E9v_^M_39iSRd!EgAuT
z#x?v!265vdq}3BK<+8>9jCdTix^rh@X^Lr?WS;Z^ByhI`3X^K(r?4+Q=9cjw>@zD?
z7gPeHemz9VVU8LH40PjR<abU=soj8T1Vormck*ke09-G63~W>vpb};fM*&^=2gR9Y
zpwY9|c`<_dhx-i7cI<LPvbpF`G1KwtyD&v1&z~ljNxu0<Nu<tn7%3d9L9f`99*92c
z6pg-HRekS|j}Ok4ki2cAMS83^B@$%=cnwG)!iGs49&*HFX}m6B52-X&54bS5bFS0s
zw^-$^hyRv+N^u*`b+Xr>>474nhmMxcACo$F?Ge|0_n89+?lEn86mU1Q%pTa4)a`H=
z9nygVOSNc^m<JO0+xZ3?Y?6@l{>X#D2A(ogYJpvE(qY0XWd%K*ySBTEtp_pGg5W}7
z-C|K__Agv|i~OA^TpH!2$q!U>U`rU2zOA*GAQOkFJ!KN_!4G+~+S!~+X-7%Ezt9~e
z;mH;Azz|sN36RTPc;><5xxsW{)oi!~y9hU3r@3H$*6oo?{y!>-l$w>FD8=7sLzOZZ
zzq1vRYq5j%3x~YcnL`<I*BDzlZCEp@4KV~`la7Rz(PPD=NHvJvBJ_&x<dCJEL9-uY
z!4nw#S{-MO$>Jij@dlr(29vUFApUOVX`K5J9SZG%vhE(UP|vDPzR*UCTU+Sc-@I`r
zNP9_CAIaP{(%eu`R(3JPpXjQ(+-H<hY<9zq^k<95q;QSACWO&`A!V1bW0Sj*PQ4&l
z@d=<2`rXWx=rGbTov6OoN3Qz~SU9VI8@W;=?j<3RA1*9i$Scd}P9y^Ht+@+q6Yj-I
z2oAOm2)qexU#)L~hi3!sM{hf5`;Wtqum$e-+OUHmrlKzSvfX*cuTBhvfPiq4;Z<F4
z^NB;>AG->qf?ae4lx07DG4E8F3VmIT`A0nS2Yc|<Hsw4V%)f9{`dWhdpeRh82p@)$
z!-o9T{XO2yTjG5Ujc=9jSm#e0-FlXp_N%|~fJZ0{Mj1mY?hhc9xF?i#cJy{ih^?E8
z*mkY;T=-IV_W4u?7d3_?^pK}K49uai<Jh4JqrnMunWbo{GTp?lWv{0OyeYQ}Hr~JU
z?J<<aJxcOmdI~Aek&HE%U|U>$!E#wPU&gKkS>6F~f%!z8{XA9;Ia;Th7fGNBo9a%e
z-LZL5`>!WmymBA+1fnuYDWVIAjd94Ub$(zhRRjO-(av6$?F7m*k}069L1)F|qzz44
zA|JAp?W#Ub3~hEZEE{C7PobBMM(6Ya)fqnfOEB-^0@Ib?0Qxuqpxvm&1`|DqnrPQ4
zq0iAn7Vo>fV4|e>+*%)>QJl{e66lssE^WP=cT!_*=HsXiU!N#4dKjtjCaIF>Z-S49
zu7&U?KKUe2$sh}wX%8GViL$2<WjiF!Su-+ls@savEb8ya24Dm3hi`+JzL_^!um~^~
z=^r-yuKY#fRii^c$hUJ}xF(j@R|bb}afp4rVE+2S{YY_pi_6q7^Zq^bs(hcG%}Au$
zu`PLtZUst2c0Yn<IT|?irhd-W0kJ<mHK4(xYOl2vvVHUNgi@(9zlPF2Xy*@;(<Fy4
z1t#}F9=fvgBM%@!$vR_UQcfKtMwpie=?C9k)IT+$Bo;ujz7B=okwY!p1PGK9i^SBH
zPY<j-u9~8fEYShu$8wR@EL;2g#R^J=ITWcuX>HPF+a2z8@1AEKu_c?!|K@ltTOt&a
z!<b3_qEMTKEZH?59dn@RVI_rm$)pBk2tnlk2mt&jW>4(Mx#f*$C#9jPeVWH6*%tWG
zecdeIAPs>4`Td0j0GFDyg2UyR<`3*fZw_p(4-kFxM)Xy4!$}q+NU^NgyJpv-mX>Y&
zwyU;b0cEZF$P{*L+>1ZyH!4*RS+6LckyVJT-JPu0sBrYqSTfAW$QCoJWfkUbjxV^^
zIeQbUnAgsX$e%ZO07fM7CC@Nx5<4vg={#lxfrySWEiEEqZAf`Sl_I0)3}#538Nc*?
z&fvjIPUF|-@ow~pn*-Mx`=*h4N5=&+UaUjkX<2N;Zfm-vQmEF#@oB7;F%kU-IWBk9
z4hL=$)3IgATy8J4V_!shehFQ-dF>ezW2A3KuIeebnqW;~hn)61GbwYyhk}iNcSiBh
zoIXiFG3kDnZVYl{y+sKi@`=N;2l8^Ku>Z7R%ah(&oON&%fc~VmTsxD5YYO^CEOw-}
zNR?_5Nn>J)?aWS#6II-UHMKQT0%-ZZ1ubTWzOf0$uuSPhGogv_J=IR~*CVb)-Cn50
zy?E{DxO~(D5*Fy}D&B5luj$%CtK~4eL-KQ402|PWQB&(vJuW2>RG@*w6$}bBt{GSf
z2wBxlh;R8STS-+hEvLdfj|Aki8y%vDmHdzC3bf$ajfu)i%s4n*JZv-D1+<2PK_9U{
z3u_=YdrFY>k55YCR9S{YD}?y?-jYw)dA75%e+_f#P5Mga@+>wGQ~nz7oUd1L5=`jN
zn^GNH7})6DG3<G3HVZ53B9ILYvYzBRB?0P7VpWYWr0>JVB<0Y&sn*nFJdBETsG%#5
zIbsV;CXnN8Za#SU_st#xRgNl@u0qvwzfO^lfx8=8#UsZ)-MesW?z`x!H+>9Ga8UmA
zJBiuI>w&USbM_1Vr#o3O`qk@~yx5=lD+qnPG@h*JPuku5CX0BvvhOo567QVV;rWgs
zShRfuG4^)M!`0kMUR**uAZ^SpWm6cMUvoNaI_CQRi%R}vh;QEX%wG)cOWbY*t@ei8
z$iT6VgfN|BhBt+)k2qZ~!k)HusvKW>W9HJ$-<BuoLtpcYIP*vSdRj=0(XU^Z>Q*0&
zKT<Qk(|5g7P28IM-SCru;_fH}UFc9tN0hLd@gfbkxY*XSzWSvYhIH>dT3~f|U$W-g
zBGh0O1?8)Vs`1Th#j9V^RA4{+=7lg$7<K8fejNzxo^>9|8SBHd+|PA&483eS1nf$U
z-wR0Y9nd-nw4AMm@*RBgx8>}m)U@lsV5<#UttKbQTXiBqG*8k#fd<U(_1$NGEPysC
zhk!5el#^XyzBNX#Td+c*3)>>DabS0a-1&vpMY618`=LyN&&mPwho1@Ev4TC)hcta1
z?w5?tbaQss9SKnWxLzlUsk|UMe`wx1SHdePj{ndH;I_(vv6O&5J7D(2>?%1ELVu^^
z@h<Ah`3m>ZgUO{{B!R|mzjC(&f7W)%Q%QX=iG7D-whet<TN+HZ@&MgkNXZKW3KJo}
zrB&d2HyVv)*M1iF5m&rN2zKquKXC9ztT}LQ{n`1X><UXoW#vsf+5q(0N}M%zPujQ9
z_LydQakb6oQ+MgtAiu0gn+$8&$~`$IzaP4PhPBa0_c-J&wH)8^eq}6z(DP4ClD)P-
z3Dj4L|Im<j0m($DvhIvRH&ao)JGBQhlJKW?lz|s=F}a%qWn&c@IWr&aC#Vb4`7cT1
zZ>!;Rcv->uE&8|Swg~lIRj@SMRe9@HZI5`G``uZy1<zdqT1KXvCy-qGFUxHbreO+7
z&Y~lnN=L(`Wy9Ps7cv;?e1~gK?)L#b#J1-+Yb_>&ZfHHRADvb`>_M}$fXgX9FP{nd
zw8Z8EFW)_0-!s*Jbdp|5v`E4y#A!Q<`@O$Dym$~s#Px4d3+Y-J-?k-5I^>USb?sQL
zTBaQ(JVe2dD4L^Mg_uw6O~up>ee^ipeO(%0`9UNx2_0XpiAuXTt;$;`Vu+7m#5{&F
zb=hWOu66x4*ro@~k!9J7a`3UBiV))R?q!eqkam}YSd>XO1dVpxy>aTtlTHRrejiiK
zkZR2{sx~T(+<IuJSMp}dA>*G>q0?E*SNYv^XZ28lBL>v<lADk^***lUu6K+<a<Qv3
z4T84mm1|6CBIbtt#pnY^s4Fv%1x8-%5c6o+RZ)OOu&_wbqY4Lk@;O6)?nxPwPV)Or
z#IBWOo7;(c7)2;r<ql5Qss=j?7ogy8g;a`CsxQ5M-|S_#gQm}$ppETB1S^%@pnclI
zv2rzeAMFK3ac@HXTXbQMO}M}Xh`Ar`;nl3^Yb^E0>~lq%nQZlkFsAL0HtUS)9o3pl
z%QE*I>iD~vYR|S&g-NT00UcG^`;>#rr9J>!n5bU;@CP7CjCOi#(3C+z5JY=()F+(s
z?`@`>yHLqe&Q?jQE<@BV15;LykXv^~raz3WHy+pfd3%4UZ|C4zOCqA21+nY=xc%Nw
zDFAbT)74zQh<^>q4DX4}YIuI7Dxhi3l4cr^B}jO;__D!szr}j3ZFJz|cMponO-tLd
z4jcZTJ8KG}{uDssLQ-O~CP^^F;GF|%l}S~Lcx2{v%bVfPxNnUtnJGe7KmfXFd3l>s
z?)5x<3c7)O(4Sxiz`xH0N>H|s>{0NFMZ9X!{9(yIHcjk*+Hsjqs@Wz`gy7BOuy%$S
zK1XJp8*lsPFy^WlWT12_;63;>BQJe<jr??8=a#@p!+r<FroZt7JdLUkO(KCQqQ4*X
zsbQF^2=gm-{X|Z?1lsSz)BRs+KX|Ceka11*CAWS6)OzdwbIJi1Zq;Mj3^SSR5z$$V
zs9;?UmHb70HlML!_cXBaVJ+mw)(_JhNc&))F$$rHa;zW7EDitb^8TPH1CUS*Zmbdq
ze*Ks3b3c^niT~?D5ecH!L5xlH-Xo}nw~48H=5-u4EyWItW)6RRsL*XL^Mkn$>OJsl
zQAs!Ltkw1L_n!tknM~jZ(Y_tC-YEyVfSmhs_R1-vjW&DaA^JTdqtUy^?qc;VA(lj|
zh1B77m`uUAZ-qLiFrs$th`-{`=sIc!edVO>4>wDk{9rLZ)oU=OrR%!V?0i(x1{aeq
z?t0-Kn5sVtRe`LxeU%q9M^B#_{=`9FenCI&a(*5;EnqPWGAWur6cycZa&m$*d~Xh$
z7KC`eu;m1V6Pf!zF$fw)c!((-G_+&sMvmA0TJxD?$<i*Hw}3#EkXl2&J^$&g-D44R
zW~xx*?lsu)SZ#5iBv0k-V{qKf%>KDH8|#6qE1r<+61RkXoqx`a`ezl+F|qfE$5%R*
zcT^^U=F@#L*E}v>dOD&xY2<tav6^Lhmb&RQLpyTbH@h_=-gV5T&2L&7jWH7T$8GAm
z+`q)O;)D%w=+r85Q#5>Du+wcZhZZa!oW>`6WJ+j<Y2YoMf&#QvIrYRBpVMyO5P5!z
z>ArK_u?${V9aC}RL<^Kd;GD~=DhNU@-OsyN!U(6`_ObHqGI#nF^0P2Khs7b${RR!W
z9}+CkJo?9o$;Krv{{GdvHpi{Fpy^XePvD*GJwW*|$t6oOKP(c1-5`jQA6#lfxPH<d
zHQpbxd$%6MB-WtY>a6p))ofep>gsN%eYfur?nWCQ@L`}fXTN$)GO48QEYOLu`6yJ`
zG3NQnbKn+obDJ{MWUXUhLU8qH8T-EPgmm^jguX1N_6f&%Zg#EW;yOKkt&CI%t;XlQ
z8xZX$jdQ$0YoTv*O%>iU(kg`1bmY(oJA`1zRbqFG8%n)yNRvI2<X^U^u{vb4B_<8k
zxwR{xPyZWUzjNgG`>Js^f675-+V3=qr?Prh2)fo*6tT9ctD^5Wo3(5zN>j5|gJAD<
zKen4g=k2asRo|p_{afV8yzcOk7i%0}R|Z<w4o^1NsvxgoD_1xB<CUSSopDYOtGC4Q
zU5|zpKXz_*LkW<r2p93G%d)6j)v5~)D0|G!wEKZi5GiBehS$7h5SulR8L?J89gZlE
z%Y?cBxk?-@IMU*|r01qP`US%AYa=p}sEEE2Jmj=Z*XngA$<>#oAoHqcaX@z7D>6zI
zwP}MfeeE7aO$VvNBjRf(Ynpd!I`-b7+ksJPk_!i&PE-9V%_%rd)#FUX2z7<If;cv(
zFtvp{kiwf7UmFWu4h^Z&EOE<TQ3U583wYAV1fzZwrVpCf_hTOlX|F+5{{R};UY<WG
z2@i@Aau;9azr~v#Vw$m%#9u<2jwd_|;x2;cdJm{lUFil9)qL4o!flRAa$gHkR<c!>
z&<z$<OH~c1f53}0eJJ^7H1<Kmt4;4mGlNn2L0WV}z7Ka@{(ijHoxi~*^&xL^MUaI9
z{G?G6!&SFmv4VH()<i&~?(29ocoxSW{|!0`WoN{0xA7^l4W3d%Q3*GBF{&-)GLG4*
zl^6I9e%uPaxtVJ|h=l5x_lrG>#tZwvO?lz+f9lRF5<(itwTv0@|93;p9KbGvgJSl#
znJs04{MrY#)&RPvH=qu7WxdrCFw6a2v2%@{$4{|G2=GOkY^IN|(7L>Zr9PTTOZ|`b
z&O8vx{Ey>prNgmh-AB}p2)QyQ{l>jAlyMBR3K^SRBWKBd#!8#Suxc9QtjJNh#vrUa
zStQpO<zBgSh3NNv=IHqSc7Ol;{_Xphc|7wx&phAz`+a|2@4O}?o=@(5@z&}C6nxFx
zr*?U;b<qE>+dXi1b7P-h=XkU-!^5{1yYv`=5cA9YpcN2;HoZac`6*iDfPC)Chj+;0
zN#6(kox$7m<vm|NvzL)`%_@22XP1<iQ-r0qYz%Mg-2Ve)UQ5?Zgl^_x0U+McgH0l<
zZ0<GU6-OER?vd|Ghrn58OidWfCGI*6gwxWK)*>DLLjU`qGqgL-Nbx@txX1wVDPvbR
z-yWZ6MXrf{xn5WLq9SnhJ2S{VFdOe#6?Ee<T5D7z{ga@~M3Z;{h#?je`#K{UL0q1v
ztzTezLJ(OYRK9!o(Gc;NrkV1Lr<H>}zGk#(KZx=n;Cf8lHMyz1p4q&HU3P;S10%Y-
zhM3O~y56y*Gt0zMsr&@P43HDzgf)M;^}C~{lvGF?G#mx-3=5v8E+O{lGc9_Dju#uI
zdR(dxt}T)7?hdcE#`}QPNY88qoAk$N$@J}0aCs2?!AbtD$oguRa)R3KEKbp!%VSPw
zgKY_NB0H2Ty>;slOkdq&310gEpkhdbtyCKG7z2MZt=;*-0P0i)Q&{gx*qmpk`P_->
z{0k<r*V(6qPc`2jDpHK|g4a(yPv*1P`#tmbJkUhLM+X5lm*9YlEH#Tcfc_Awc7|=1
zfROKvrOx!_Rh%gI8kAYpW}dGVg#WuT3OPs{2KW%6=;N1emr&lY%TF68VHp<Z!O*=M
zLOk&eicnO2a`Ibe^B|{aIbhc)>E0F57!*X=QM)oTi{eS?TDoyPhU5yjBHL|Hl!r(o
z6-w}xwY0&^?Cf%AZn*6Mj^Xf{`|8g_U;{rDx!uGJ?5tNJ@n<SR!uoSxY?OYXQ^=Z(
z9Qdvcu{hHZ?{@8+bRm@8&l8iAgg7gcrOwVLXPDZk&T2HS2Sly#@ZY3t=r8XcgaCUI
ze7ZYFoCH~Ao~hR(>NTmqJ{Ns!mLutEBGs?0H=@=hbv|gV_TmUO!ua-s@QWN2bR8nC
zaNwLuhMk39M(~1o67<l*?2x8-!?-hQfJ;)3$^*Cg(0CXe5B*gKXeX+-fXnmo4(290
zI859DDOl-AtMkXvn}_W)vlX(jEQ}P~p?J2L3(mh(3*~gX2^5c4z4a3#>=7K%B0wgb
zjHGW_>}K&!^W~s7s$&!6%K*2@v-isMoaBlG!M@w3HG$}Yc`~b#gOC5ir1SHoA*2ff
z{~>dwM^+Z9N-Zrhl_xX7_>Pz~m(RTHws<|BN25j^*CtQH)nWDL3Un5Jq!E%QKL39&
z;7l=-LGIpP2NJ1?s&Ynp=10>S8Iw@CeVhV@->V_qu^v^xi9C?%c;mKg`5oqWfD8R7
zFlT*}f>AV$m9t5=wxUmJ#inbL5p8FU_i>_Lu&W_TLKNSKDWe{i%xXA7*74EQ-J;A3
z6l%g3Zc)wvr)qHwMYbyq3B7PoF`Z}qGXb2Y=iu^E@e<&#>XKigex7F4ul6J0TP!Eb
z1mEXzMK!`%YWA^v-Theg*(s11NQqClA=HwbC?q)MbiKz8={6O&B}{p5fEJVhzRPM|
zNmOU|Pv@Hx1Dj?F2dOs3ZX6XL4C>UJB*8Qbxcn7J`6$lYfS53TvtCvX#GG2(L*DFc
zm{dBQ$5A5T3zl~(9FcN{?0Z?vt$U`<?~bQflT@sQe!)_6mjbV(K;)eD7>PwNx!3i5
zb;Wb`H2{tYi%vPPBs-wjI%#0gtl=a2#2x3+@{zs(16g1?wk>{9kW6VHlG)m9oFdEJ
zDWwK@i=CiqEwA?>N(8Clv!Id*3^XV)jot${MB%2fXz_=<9OY6IJH;;p%wMCUlWv!}
zXv|5-%oh6nq3c+H<a_eu800l;t9j&;*X(IWgYsJ<*CIcbL48TP2}5NBDPLIC>$-p!
zu+^Xs8Mv~*QvcCWw_qUrW#;Zz#Tp<$4r|$IGXl#0|0=*}A)u%K%GLHC33*>ingCA?
zEF~5&mTDdX_t9A(4R<;Mq$HnA=z&dJSi_GhDzE4wGObO>6yEk@G$+}aff@i8_zw$R
zR@wOKFm_7BxC%aV&WD%gSDHM2GjzQ^MhdF+a9%eMuT{PE2je63KtR_8+A4bbs^k6A
zW=_SasnTogln?6-Yt4Wo!0OhC<~tH211KbpcsszJqib{BfgjWehJ?f}zN7K+fw`84
z{TM%Gig}ArBEJ1r!0W0Y|Di|$`1!g$w4hbm`U=&ZhRTr!{ezw%rY1rvk>VRo0ipD4
zgzbx$_*w`eSBDvnzDm-<N<q=tj+tejFW9f34whj~d;h7v3eh9{$L~0j=8?YuR}_^K
zs0@dbyXtG^eW3=R*;3+dCbR9kH%Tox4njj+?@FSHnYhij767V~j1<9rCLI~+>Qg-E
zv59`AB&ucP1wcuy3gRqAL}O-Lhx|z0Qf<NGa$c4(5$a-V71clB(dYRl?6yyc2+H4{
zR+qA*#5Z-za!*W{=kFdT#qv?HMOsQVn+?INMu?cQDeM&hJQ>wDm+otNZ=XAWyi)eG
zgV)6+EFpMB`g-3qj7hs%h-?Bf@v)dR|5jJmVe^2Es~0$O8e8LZW{d~ArQ-O87AO8%
zeoAv~SlOqp;Qf2gG5ct-yNdes`Fg<le$_Dz4b#c6G;9j;&*;&JQ9_aJ(sa9qOmZqr
z5vbOExcEr{)HBsV<R@mbD{)BKr^9N@+`1Qy=lvURj&Y6QQgr0jO1I}xh5qrItq0M9
zn#Xu=+>c4lGi@=wX@#D_M#b(c)->q2wlKsuq<yDlsaRjyX2Cxz=N$yB%2(r)6qFBW
z3~m(&MWx_O>Qv6u``g~NZ(C!-B>~PQsZo@_P$4CaTPcJE5Zu;W&=E1PjBhvL+QSh5
zp_vr+;Iix&Gt8q<xqHOBU>EPwTU{~El;kUt-I8^##__jp?aMKgC~+$C+3~?uZ2W3B
z_mIe18PySILtg)s3x#?-UZofNFiF;4(Z3%(o9>cN)&poIPw|DR?3Am399Ek{<ax8R
zt}3`&2nJ|MSnNnu@PNfG#1+f<GGOMAQ9dDz?(enD<#l=CmF2_59aPUMV-KBq4*}cv
z6c7r%m`YR+C;<|$;Wj-&It&AoCBb-~74$4VQvH`h-=$D1?HPjD+r|S`hO5O=(Y$z-
zVK*eA;e}%E4}+HV_c4(^fkyV^0C}S~>LHjqE_v1+ocjt6`INfRNVXdVA)C4DD>GAV
z4HHZ0`CYP<Z~?WAjSI4K-g%tQ{jaJ&LUEO7^wzwcZ_!?4?0=mXZRBWyQAw&n<uuP%
z;c1oZCAtwSZXAi0=Dt>MT!Hh3&^>0~r^Qo<)0qYK*!U0c7a&j#iT^OrIC_X1Xtn60
zQxhMu5u#A$(trck?Sa0N`tXih>NLAwOV#~!3-7H81IzvFwY0m2dgkg;?mRJ8Sioe^
zIpGUN1tTk}d#A<@L<#icCSBx)MUlgjNegT{)(U%I9`Yv^D-Y7SjG#0Uvv+Zk<yyBE
zVnZI)|0Xb%4cJ*>yT$&}z@P#6oZ?%8`D5J)mp|Rr7q;e^Lptq<uk9;{^2ZuW10?AO
z?J~BBSmT7ijoczMud`ihSA_Nn;;@F4UF($a`g=fxQ{&IM_x&{TQW42S<1PBoOmCQr
zkV**V{o@Q9)X_~9#JgodWfXD#LJSaQF_PA?zn!>2gW`%WTHee=SqnVa!=JVM1JcyX
zJ`HejDAuu)$mlYk+N6&HmJ1lmK5aOe9bkZnwY1Fn0!6x?>i~U89J(p7WYZtSxG)nw
zqd95-0IJR}F&x*yVF`-m>gX<E4#*uB>RBMiMB9&j1)mwy4^IC>2lnkS^jg2})W5xx
nZ|~%*QQo%#@m~c3)A@0C(%ZS-7u9C;uG-+Fk#4?@ZTP<dfv8ol

literal 0
HcmV?d00001

diff --git a/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img061.png b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img061.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2dcdf951f264b1164804fba435449ad176e8da7
GIT binary patch
literal 37433
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

literal 0
HcmV?d00001

diff --git a/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img07.png b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img07.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3bced145f17fc2804b6f36ab1a4919ff3ec656a
GIT binary patch
literal 117362
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

literal 0
HcmV?d00001

diff --git a/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img08.png b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img08.png
new file mode 100644
index 0000000000000000000000000000000000000000..979adc4d20afd24eb0aabf78f72171b26e8ef25e
GIT binary patch
literal 88296
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

literal 0
HcmV?d00001

diff --git a/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img09.png b/public/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/img09.png
new file mode 100644
index 0000000000000000000000000000000000000000..06b8306a2416fc3a15110672b2971ddada0b4d69
GIT binary patch
literal 158338
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

literal 0
HcmV?d00001

diff --git a/public/develop/service_design/examples/intro/index.html b/public/develop/service_design/examples/intro/index.html
index f853b16d..d8134d88 100644
--- a/public/develop/service_design/examples/intro/index.html
+++ b/public/develop/service_design/examples/intro/index.html
@@ -1832,7 +1832,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2672,7 +2672,7 @@
 
   <h1>Introduction</h1>
 
-
+<p>This section contains examples on service design, which contain a step-by-step guide to reproduce them in your local environment.</p>
 
 
 
diff --git a/public/develop/service_design/intro/index.html b/public/develop/service_design/intro/index.html
index b1cb8e8a..5157f6e1 100644
--- a/public/develop/service_design/intro/index.html
+++ b/public/develop/service_design/intro/index.html
@@ -1885,7 +1885,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2758,7 +2758,7 @@
 <p>OpenSlice can be used to design service specifications for various services, even not networking related services. Here we cover how service designers can expose services related to the NFV world and the containerized world.</p>
 <h2 id="probe-further">Probe further</h2>
 <ul>
-<li><a href="ExposingKubernetesResources.md">Design and expose services based on containerized resources via the Kubernetes Operator pattern</a></li>
+<li><a href="../kubernetes/ExposingKubernetesResources/">Design and expose services based on containerized resources via the Kubernetes Operator pattern</a></li>
 <li><a href="../nfv/design_nfv_services/">Design and expose services based on NFV artifacts</a></li>
 </ul>
 
diff --git a/public/develop/service_design/kubernetes/ExposingKubernetesResources/index.html b/public/develop/service_design/kubernetes/ExposingKubernetesResources/index.html
index 19f71930..e48f51fd 100644
--- a/public/develop/service_design/kubernetes/ExposingKubernetesResources/index.html
+++ b/public/develop/service_design/kubernetes/ExposingKubernetesResources/index.html
@@ -1878,7 +1878,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/service_design/kubernetes/helm/design_helmaas/index.html b/public/develop/service_design/kubernetes/helm/design_helmaas/index.html
index 03efc359..4e9c938c 100644
--- a/public/develop/service_design/kubernetes/helm/design_helmaas/index.html
+++ b/public/develop/service_design/kubernetes/helm/design_helmaas/index.html
@@ -1896,7 +1896,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../../examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2806,9 +2806,9 @@
 <p>Browse to Resource Specifications. You will see an entry like the following:</p>
 <p><code>Application@argoproj.io/v1alpha1@kubernetes@https://10.10.10.144:6443/</code></p>
 <p>see image: </p>
-<p><img alt="img01.png" src="../img01.png" /></p>
+<p><img alt="img01.png" src="./img01.png" /></p>
 <h2 id="whats-next">What's next</h2>
-<p>See the <a href="../HELM_Installation_aaS_Jenkins_Example/">Example: Offer Jenkins as a Service via Openslice</a> </p>
+<p>See the <a href="HELM_Installation_aaS_Jenkins_Example.md">Example: Offer Jenkins as a Service via Openslice</a> </p>
 
 
 
diff --git a/public/develop/service_design/kubernetes/intro/index.html b/public/develop/service_design/kubernetes/intro/index.html
index c6266411..4eaa9a97 100644
--- a/public/develop/service_design/kubernetes/intro/index.html
+++ b/public/develop/service_design/kubernetes/intro/index.html
@@ -1839,7 +1839,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/service_design/lcmrules/examples/index.html b/public/develop/service_design/lcmrules/examples/index.html
index 06026233..b6d52cdc 100644
--- a/public/develop/service_design/lcmrules/examples/index.html
+++ b/public/develop/service_design/lcmrules/examples/index.html
@@ -1923,7 +1923,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/service_design/lcmrules/intro/index.html b/public/develop/service_design/lcmrules/intro/index.html
index 7d233ec9..5abe45ae 100644
--- a/public/develop/service_design/lcmrules/intro/index.html
+++ b/public/develop/service_design/lcmrules/intro/index.html
@@ -1938,7 +1938,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/service_design/lcmrules/specification/index.html b/public/develop/service_design/lcmrules/specification/index.html
index 5e908106..878095d5 100644
--- a/public/develop/service_design/lcmrules/specification/index.html
+++ b/public/develop/service_design/lcmrules/specification/index.html
@@ -1878,7 +1878,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/service_design/nfv/design_nfv_services/index.html b/public/develop/service_design/nfv/design_nfv_services/index.html
index 01f218fd..783edb14 100644
--- a/public/develop/service_design/nfv/design_nfv_services/index.html
+++ b/public/develop/service_design/nfv/design_nfv_services/index.html
@@ -1832,7 +1832,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2672,7 +2672,7 @@
 
   <h1>Design NFV Services</h1>
 
-
+<p><em>This section is WIP.</em></p>
 
 
 
diff --git a/public/develop/service_ordering/ordering_services/index.html b/public/develop/service_ordering/ordering_services/index.html
index 9f856ad6..0ea09859 100644
--- a/public/develop/service_ordering/ordering_services/index.html
+++ b/public/develop/service_ordering/ordering_services/index.html
@@ -15,7 +15,7 @@
         <link rel="canonical" href="https://osl.etsi.org/develop/service_ordering/ordering_services/">
       
       
-        <link rel="prev" href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/">
+        <link rel="prev" href="../../service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/">
       
       
         <link rel="next" href="../../architecture/architecture/">
@@ -1825,7 +1825,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
@@ -2770,7 +2770,7 @@
       <nav class="md-footer__inner md-grid" aria-label="Footer" >
         
           
-          <a href="../../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-footer__link md-footer__link--prev" aria-label="Previous: HELM Installation aaS Jenkins Example">
+          <a href="../../service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Exposing CRDs_aaS_Example_Calculator">
             <div class="md-footer__button md-icon">
               
               <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
@@ -2780,7 +2780,7 @@
                 Previous
               </span>
               <div class="md-ellipsis">
-                HELM Installation aaS Jenkins Example
+                Exposing CRDs_aaS_Example_Calculator
               </div>
             </div>
           </a>
diff --git a/public/develop/sitemap.xml b/public/develop/sitemap.xml
index d2c16efa..7371b32c 100644
--- a/public/develop/sitemap.xml
+++ b/public/develop/sitemap.xml
@@ -2,292 +2,292 @@
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
     <url>
          <loc>https://osl.etsi.org/develop/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/OpenSlice_deployment_examples/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/alarms_actions/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/config_intro/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/deployment/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/deploymentCompose/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/deploymentK8s/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/etsi_osl/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/history/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/nfvoconfig/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/ole_keycloak_management/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/portals_intro/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/role_keycloak_management/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/terminology/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/under_construction/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/architecture/architecture/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/architecture/centrallog/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/architecture/consumingServicesFromExternalPartners/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/architecture/issuemgt/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/architecture/messagebus/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/architecture/nfvapi/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/architecture/oauth/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/architecture/osom/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/architecture/tmfapi/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/architecture/CRIDGE/CRIDGEforDevelopers/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/contributing/developing/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/contributing/wishlist/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/exposed_apis/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/gst_to_tmf/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/introduction/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/lcm_intro/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/lcm_rules_intro/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/resource_catalog/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/resource_inventory/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/resource_spec/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/service_catalog/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/service_inventory/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/service_ordering/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/service_spec/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/so_intro/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/so_servicespec_to_services_kubernetes/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/so_servicespec_to_services_nfv/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/nfv/intro/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/nfv/nfvcatalogs/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/naas/nfv/nfvservices/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/service_design/catalogs/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/service_design/intro/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/service_design/examples/intro/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
-         <loc>https://osl.etsi.org/develop/service_design/kubernetes/ExposingKubernetesResources/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <loc>https://osl.etsi.org/develop/service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example/</loc>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
-         <loc>https://osl.etsi.org/develop/service_design/kubernetes/intro/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <loc>https://osl.etsi.org/develop/service_design/kubernetes/ExposingKubernetesResources/</loc>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
-         <loc>https://osl.etsi.org/develop/service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <loc>https://osl.etsi.org/develop/service_design/kubernetes/intro/</loc>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/service_design/kubernetes/helm/design_helmaas/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/service_design/lcmrules/examples/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/service_design/lcmrules/intro/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/service_design/lcmrules/specification/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/service_design/nfv/design_nfv_services/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
     <url>
          <loc>https://osl.etsi.org/develop/service_ordering/ordering_services/</loc>
-         <lastmod>2024-07-17</lastmod>
+         <lastmod>2024-07-18</lastmod>
          <changefreq>daily</changefreq>
     </url>
 </urlset>
\ No newline at end of file
diff --git a/public/develop/sitemap.xml.gz b/public/develop/sitemap.xml.gz
index 4c308be670a8bc6bd3c4e0dfdfd1f222e1177b41..323dc4bb02f5cb753c6fd037da3841372994083a 100644
GIT binary patch
literal 784
zcmV+r1MmDFiwFn+TbO17|8r?{Wo=<_E_iKh0M(k`Z__Xk$KUr?RDEC5O-KyXbq`$!
zV<6B5&z9$06RZ9ad`^G-_nh0LYlo2F1)U>Rv7M{+vHkV=F74!IW6fX%0kwD6!;8^)
zH~^=7sa<tF{PF$n{AzeJJ)5+_AjAO~JG>s&F*fguV!d9EP)D$`!I2MDfvTno7F}a8
z9=#h*&jxg*4)&$pH8EaIQ!hx}cr+u3sCQkIuma<oVp1fN<8Mfe)|b=E@#UNI@!Ru@
zD>CWYj?7doT?LB(Kc}VCW;-d4TJ|W#f#sj6zBb^Vj8-5@XpG-la8bZU+QtAfWtK(;
zi$bbMOUxBgdAHD&&@Kkg6!B%n*#pkJZ9D>d&W9_mdQ1(1o-oC$HAWw{OzGTW<@Xz!
zDWEqXmatXE%cZc=$qE?n>&AyD4YGEQA+ITo5Uh6I_=@WuYF!CI&@RFl+TGF3HM|I_
zrf^TiHo$2m171ZE4bqSfvY;h3w4~eW3BrnkP`nG?&Nn1xC(Sn*qN6xIhk<Cs7Hk!B
zV6}iq&g{9(VrJ>+m5t7U)XO&3S%9LqIdDe1$YkkfkN3A9=G|@K!|mRPuk#|u8-sps
zBl+IGF%>hQU2CijWeZ$W1u3zBP0ChFLGne;oE1h9y`YW8nR1sVl&oXM9j8&2bxL!9
z46Om=j~W1d8x#m7DP3e6(Vntux1tc7@vDpzT5LdZ2E~0|kb?qx)GP$h!}>r;Ip2f-
zgq6KkJ%5)<jNNpm*-U4DUlq&tnbK~EfSC?}GDXhh36H%#5+r>(cZ(UI_RG%{wRc`6
zpsrlOd}3eGa+d2W)Wc8KIWo^vx=5$+?C}<bluu&5e<EhmsMbh|CjQDMuTj@v?7c(U
z5JXR@-N~pvfm>>a#mD*QFXA_=?rCqG$H0#c*nTk|4o#0;M2^{wC8G^@M4iM}?3+a@
zrxPWMF;M=#OWzCTf71CAc1ChJFsD#cFSL@3-$1=$Ptj2)Zz_sRqNGDQ+86#K`0j=f
Or@sK4M1kN!C;$L_Z-FoX

literal 777
zcmV+k1NQtMiwFpS372L9|8r?{Wo=<_E_iKh0M(jZZ`v>vhVT0;5cegtn$&Kh^n%i@
z>!wZZc5S)NA+hjB=Hu}3?{^#sg-VmQo9Q?bisKmTvGe-)yn)H>#+tzj0&4GWh8Lsp
zZ~#vEQoHJA`18m8`StL2dNyf;L5Krt?C@q-$Jl%*iuHOuLLI@%21h<r1*)1Zu-I1?
z<I(%!^lU&!>R?yuj*0PVntDO%#-kZQMBQ~!!U~LUib;{09DhS%w7#5PjxXPxkFU-z
zuBger?x>lnrK?~O;McU2+H5DqQOypeII#RP)wc%Rv(XAf361ev3oZ)SNZS}drp(gF
zU{OdF=@D~<RNgIgCA5pdGevxT;_Lxu-ZmbAJ?G;!S3RZ*L3fzq)f%G@Tc&hwvGThG
z%@oiZ5KGu9<K<FV>0||r*LCAVlm=M`$B@^QMhI3rZ+yjd4YjU>AZQg~3~je{b4@RT
zswv%5u?=u~kpZtFi3Vv%2U*aP8d}nA^$cM}Nhsb2Z|55lvy<k#4AD^@pTj^jVhgs4
zIj~wlq+s^aW-+t0^~y%)K<Z^1>nuRg+Z;HfU1aj;XHO4zALski!iT$EBfi0l0&fiZ
zrHvGO`^r?zfOf61Hslt#S_LVwfK76%r6BntXU+<vh+fb_<4oDvgpzg6*l`+VSzDR|
zWM~Z_f7Afz+n_)wNp_KKMtjPt-HK9h#;-C?Xt4ps85DQEAO{8Xs96Z0hxLI>Ip2-{
zgq6KkJ^zqOjQi<Kvzhk({!%R47qZ<D0W%!{IYrLo36H%#5+r^0;TAJM?H@l=)INBX
zfVy%8^ND>!%UP~(P!B&@=g2%yc9C}B+0z{gDWAoBcSp>mQLT}bP5f1xEJl5_&-7z@
zJXAgH6I0A?EE(zUh`I)2i%;_}U&Vt%3QeRVGTEKJK7(6ohrQ179NMm0q;lFbvKRw7
z^v<9c%>Rb-C+v(?!hty@lX{_*Wc-fl4SULe_VT8p$RrOs7|y=%AHlm5LY)2vyf)c*
HBq#s?*Byhx

diff --git a/public/develop/terminology/index.html b/public/develop/terminology/index.html
index 5d6dd711..f4d8bbf9 100644
--- a/public/develop/terminology/index.html
+++ b/public/develop/terminology/index.html
@@ -1823,7 +1823,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
diff --git a/public/develop/under_construction/index.html b/public/develop/under_construction/index.html
index 070869b8..ec332e1f 100644
--- a/public/develop/under_construction/index.html
+++ b/public/develop/under_construction/index.html
@@ -1816,7 +1816,7 @@
   
   
     <li class="md-nav__item">
-      <a href="../service_design/kubernetes/helm/HELM_Installation_aaS_Jenkins_Example/" class="md-nav__link">
+      <a href="../service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md" class="md-nav__link">
         
   
   <span class="md-ellipsis">
-- 
GitLab