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 > 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 > Clients > 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 > Realm Settings > Login Tab > 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 > Users > 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} -> 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 -> 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 <none> 8161/TCP,61616/TCP,61613/TCP 7m43s\nmyopenslice-blockdiag ClusterIP 10.109.196.90 <none> 8001/TCP 7m43s\nmyopenslice-bugzilla ClusterIP 10.107.10.101 <none> 13010/TCP 7m43s\nmyopenslice-centrallog ClusterIP 10.109.84.33 <none> 13013/TCP 7m43s\nmyopenslice-keycloak ClusterIP 10.104.172.73 <none> 8080/TCP,8443/TCP 7m43s\nmyopenslice-kroki ClusterIP 10.106.92.111 <none> 8000/TCP 7m43s\nmyopenslice-manoclient ClusterIP 10.100.143.154 <none> 13011/TCP 7m43s\nmyopenslice-mysql ClusterIP 10.108.206.75 <none> 3306/TCP 7m43s\nmyopenslice-oasapi ClusterIP 10.100.107.66 <none> 13101/TCP 7m43s\nmyopenslice-osom ClusterIP 10.97.88.133 <none> 13100/TCP 7m43s\nmyopenslice-osportalapi ClusterIP 10.111.212.76 <none> 13000/TCP 7m43s\nmyopenslice-osscapi ClusterIP 10.101.84.220 <none> 13082/TCP 7m43s\nmyopenslice-portalweb ClusterIP 10.101.16.112 <none> 80/TCP 7m43s\nmyopenslice-tmfweb ClusterIP 10.101.157.185 <none> 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 <pod-name> -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 > Realm Settings > Login Tab > 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 > Users > 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 > Manage MANO Platforms > 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 > Manage MANO providers > 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\": \"<h3>cirros_vnfd</h3><br><b>Vendor: </b>OSM<br><b>Version: </b>1.0<br><b>Description: </b>Simple VNF example with a cirros<br><b>VM Count: </b>1<br><b>vCPU Count: </b>1<br><b>Memory: </b>512 MB<br><b>Storage: </b>1 GB<br>\",\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\": \"<h3>cirros_sriov_vnf</h3><br><b>Vendor: </b>OSM<br><b>Version: </b>1.0<br><b>Description: </b>Simple VNF example with a cirros SRIOV interface<br><b>VM Count: </b>1<br><b>vCPU Count: </b>1<br><b>Memory: </b>4096 MB<br><b>Storage: </b>10 GB<br>\",\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>> The example CRD myresource.example.com allows the creation of custom resources of type Myresource.\n> 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->INPROGRESS->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<snip>\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>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>Relationships>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>Relationships>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>\"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>Number blocks</li> <li>Add a str to int block from Number blocks</li> <li>Add Service>Relationships>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 > Text blocks</li> <li>Drag-Drop the Text > Formatted text block and attach it after the block from the previous step</li> <li>Drag-Drop the Text > 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 > 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 > Context > 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 > 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 > 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 > 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 > Clients > 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 > Realm Settings > Login Tab > 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 > Users > 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} -> 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 -> 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 <none> 8161/TCP,61616/TCP,61613/TCP 7m43s\nmyopenslice-blockdiag ClusterIP 10.109.196.90 <none> 8001/TCP 7m43s\nmyopenslice-bugzilla ClusterIP 10.107.10.101 <none> 13010/TCP 7m43s\nmyopenslice-centrallog ClusterIP 10.109.84.33 <none> 13013/TCP 7m43s\nmyopenslice-keycloak ClusterIP 10.104.172.73 <none> 8080/TCP,8443/TCP 7m43s\nmyopenslice-kroki ClusterIP 10.106.92.111 <none> 8000/TCP 7m43s\nmyopenslice-manoclient ClusterIP 10.100.143.154 <none> 13011/TCP 7m43s\nmyopenslice-mysql ClusterIP 10.108.206.75 <none> 3306/TCP 7m43s\nmyopenslice-oasapi ClusterIP 10.100.107.66 <none> 13101/TCP 7m43s\nmyopenslice-osom ClusterIP 10.97.88.133 <none> 13100/TCP 7m43s\nmyopenslice-osportalapi ClusterIP 10.111.212.76 <none> 13000/TCP 7m43s\nmyopenslice-osscapi ClusterIP 10.101.84.220 <none> 13082/TCP 7m43s\nmyopenslice-portalweb ClusterIP 10.101.16.112 <none> 80/TCP 7m43s\nmyopenslice-tmfweb ClusterIP 10.101.157.185 <none> 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 <pod-name> -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 > Realm Settings > Login Tab > 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 > Users > 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 > Manage MANO Platforms > 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 > Manage MANO providers > 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\": \"<h3>cirros_vnfd</h3><br><b>Vendor: </b>OSM<br><b>Version: </b>1.0<br><b>Description: </b>Simple VNF example with a cirros<br><b>VM Count: </b>1<br><b>vCPU Count: </b>1<br><b>Memory: </b>512 MB<br><b>Storage: </b>1 GB<br>\",\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\": \"<h3>cirros_sriov_vnf</h3><br><b>Vendor: </b>OSM<br><b>Version: </b>1.0<br><b>Description: </b>Simple VNF example with a cirros SRIOV interface<br><b>VM Count: </b>1<br><b>vCPU Count: </b>1<br><b>Memory: </b>4096 MB<br><b>Storage: </b>10 GB<br>\",\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>> The example CRD myresource.example.com allows the creation of custom resources of type Myresource.\n> 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->INPROGRESS->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<snip>\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>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>Relationships>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>Relationships>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>\"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>Number blocks</li> <li>Add a str to int block from Number blocks</li> <li>Add Service>Relationships>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 > Text blocks</li> <li>Drag-Drop the Text > Formatted text block and attach it after the block from the previous step</li> <li>Drag-Drop the Text > 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 > 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 > Context > 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 > 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 > 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 > Text blocks</li> +<li>Drag-Drop the Text > Formatted text block and attach it after the block from the previous step</li> +<li>Drag-Drop the Text > 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 > 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 > Context > 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 > 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 > 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 © 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 zcmZs?1yoy0)Hd7}TA&mtPSN7DxVw9?Qd(S!v_Ns!kc+!(i#u&`cZvr065Js`fDl5k z5c2o^?tQ;|zqS6gPIA`FnJs6}UUT;B{Y>;*ZB>G&)K4EgctD`8ru6Q?18mX<4<4=K zKKavg{n3cv&+VbdJ5_}T)swV`e;U}f@>=o_9@Hh`-&sEX)5ddEGxB)wfUy66eh)z| z6*hl5t?l0%dg?jbyJ~&%w6wAGwEWZe;6VVBwWGc3TNit0PY)&ulK>`PCJ8<+Cci)b z0IvVj;^z|*{QvI|6%_hs%-<CM(>4Q~r5JZTcz_X6SCW74Ykr)I^YQ)Q0tj=M6c(n9 zOLzDtl`tfx;{BjP6Mj+D)cT-#UKcY5#rxX79)&P<T_s$Yr@mEuNichv?E#bSu;uM| zh`j*`$jgWE3EEDIdwf1!0|<&{YpH$t@&hNPh~xiWwrUl6um5i=rYMK_mQP-nO!=QH ztwDi-?cdQc?)nG)*#G<R|#fUJUlpN|?95|RF2VlriM&dF;XMSrPVN*3~esb1}- z;$57{{YNUtQ@2reQthivIR>u(aFeBh^@n{V!h0IvTR=qdFW<fVNF*QQwBp0>l4d>s zc^M3?LISP$_SO5B(~8(vp;&;V|LBG>?Ia?78W6R~gZE>s`M*@pDkJeuBOlkNF?q#R za{jB<d5_NUR)1tw`NLD3CyyUL*3W&jpg~vs-#6UL4@dF^)8i)X?(Z}4@=l@nf*DxC zA|sjE*q-R>>gr1i3C+71{8w|8;X=j8KLW+Y#fPV+TIgTC9U&r)q2x_qQjQVZ|5td? z-5g$N<dd+#B)NB$hWsonEC-?gwftRekVP;s_m8;ga^mfs9d4|D4XjJ1UV)N-1Ylz1 z;h8+t|5v;+9CRy;;~ynw(Wz!pX;`F$SFZ8zWRvZ^uhd~nn(hyKSNcZ$%YXQ#{W2sX zJxIkPCMM=EZmcN&FH5{Qqyyo_cWiXtf7P4BhOv`g=*a!Yx7^vn&Mn*uEIi)+M<H># z^`3n>;K+Y`j%?4<SN7|FW-i8^%`jiH0H*c-5R(2eBFlg5#bFyFqxqi^dzI5JX7B$M zwO3gy^Z#-!`@?k_=V^@l{gwseEI9LjeFEcfP$SMU>eq+fe96Kxz!@fE`oDblfZ>?o z{xCslDKsx#{k;KUy#E;z1Tg!Q%|QLUGP4hTzSRd5#GKsZb7Gtjm~so=zpc1;ch2CK zB^SxwmR#!pGP!jHLol3UKY7}}2gL8Kew_ZU<TO77)$VRmttc-a+;Xx&y1Fm6dheoG z-47IWNADrG+sVFXwyppvZOl)hNS_I#zo+d6_R<D@i_9Az*PO4h*wD?DY*gRF%3zt^ zPe1W3=3IG)*?2USjPP#3Otyk^Js<+lXY*DtoUP#CE%Do1gzNS+VdaMZb9Op_X*j;F zG(VwoAJ?4TLZn7t!j?&Y4|DJWlOYNwmH2VkZ@9gr_NML>CII{zDaoG4aCpyi^Uv&J z06E}DyiWeTiPu~393_=6Puwerjmg~L$_F}XhJdiuVRy3(40rZgPTYGNCW=98Cfaye z;FUObySLwxy;z<TMo5~eUCfFJi$TfP**&5Dej`e_B_vf%()*FF8+<+Tk^6lZy9-fS z_c^XPZO4o$CZ)pP(mrRk>G7+t<gQm>Qdfg2$C6LsFPm++#?Ot;z9kO}@7`i4PvPk0 z8}>)l;gT*sC>Y`1sH@r0)6jhm$SWu&-{E6ou0t1$sSLY_S-VSn9Al91w>ymjWg#b) zk6hkY#rtZ%UeKlqhk-N)j?+i>lUSqWZ;UAm;iYsl=x^F~?+bAc92L4d>(W_4HftNi zQ#1Cy&2ynyf5}h@AYL@S+6Kzu5g^ebBOCto7o?XZgH)(JySO}lEJ?jw!ZI6S)5Y3X z5<Vx<KY720r%d)g?$!?LxZl8?vfrUxn}(w4>@Ied;tuqF&uS<rXn)*O?Q(-a<feQg zx3|VfpP$~vC~6;B+JM3>5Ah8)4@YKNcMvyJ^VjoUR+e;$==?ru`l*?!mAl`<2RG~A z9T-nqwfBJj^uQ;Hwz6eXm<QeK+Z<eXHT+gTi`)=pD&Go>CPo*qgvDjWZN)9@5&2;t zDTxz%&!B6{f~&Whz#|eeuUo3g*ilT4>EEk)8pe5Y#fR-ILI?;Wdv>}+C@L%bBw*BM zuzx>Ecy|RaOT=DC2IY$@<G*Ka8YEAsAMa0$<=+*413KrHy@Gued=FU!ii(v#-({Zi zv+BE<3*3bbcOZ!7GtTovK<B=*aL`$h-NvDFpp-17)-8rcQRe2Utme1qx{WO8<%}fN zYB}EMaZYdx{b8_b&}vAkpWnlp>~V`D)?iPJg=+%WdVqLhkbQ5x*x*n~u?OEig0A9f z6Y6_W@4gTkc6S%3p%633yqp?d`HWp5xGEDm=oN9)OXzvr?=G_m7t4zq+o|Q5YNF7e z_{6Mn<&be=I7#l)*${o$Frl~~>}8m*|CGSEMdhb{)pY#_hepSxr`*PkO0gO7x=RhD z2-WT=Rp+)RC(Ay4==^b2_htYcR`fVT7T(PYLeL0qj8D|LL6mE&DmAh{x;N(}QvKt7 z8>xuf5p0|B-Z2BhKAleiJGnaaL#3aXxujh_cX_|x|HQoa@yRG_hJ5SN@a$(1F0S#{ zYYMJLRJ0v@CiUW}hUK9<i`M(hsA+RrTy?oplFOVm>*;dRl2b=_S5N~;3M~~qx3q}9 zS-hNZYQ3-Gw!0dp^sUn|Bg2Q&CE@an$gq16C8+4Dv>67NONo*g*`fqlr`y}aEkt@h zTD(q94K^E5)n(%+)-AmBzpcBqZtOz%tlpp0w00!`631|!kg@Yh;&r4J>z1mhD}58G z$uwne$$53^*S=C7dTan#e3buzHdd!v<Kk$Qzv4vvYl1W?(a3?={**uivgoevVHIGM zM>Of_Y-^3fVtFiWu%q1hS2Tl<YDk;2C%PgL=93+mqjrxq2MP+e+~6LZ`C)dpO`}t2 z-Nf_|=0ma|c<C$h4i<6pv;i-IHgw&Bh@DPOt!<QpcuR6X&-91ht8mmLc>+LUa^N&@ zF~?r!AFD5UO#b=COnlRlSqMZ?2aP($m&^K&`zOiKxZkUDt2;Ya*TmzdaT<^?4n+`I znBH0~Pk&BAu2NQL<%|sJ-nPA})aer^rq|&pdh_8@M(yRUsoJVXD&Vx)WYuF^1nD-? z=hWu}iGXa1Ur0uDH$5eH4kF^+cn|VV`UQ?YpBx)QEPQ_!uc35UbT6BmZruTWr;0s0 z7Sy)}@^YDcc#HdE4C#KwKbr`B7Zq}5_x?xP!4=&@7O9P5oYbW7*BrzU6ZST?1!LuO zRpiki@&5I2kf;<-A~W=zAp`DrqFv^dU%IrKlO=>2s^V@VUNuSsh7R&XB)Cfq$1;dp ziQA7((JLxU$XV?p?Z`&B{;P<uL>q`ex;Cf#$l<VvgFqOH3Wbh62-`TjqtmgvJ59~t zUKtBqbuwnYk{AhcCOyCRVg{^kgBhs9Q^+~}7+BOSC5=elQEF28WN&)El%!Zt4?)gI z3^zA2SC}sv^B+^HQ5pRc7){1`1Z8cmoSh6Xc%=SCgDUVC<m;Ib`|an!4drsC1Ery{ ze@B0G3h_FIQbZg{v88i4_Ft~D*_a%$Ix6<TcLS-G*d#-|W)qSmTH-HQTeWKGTw0eR zl8}|iF@6HdBA+XYD1QG9#!-rdenhf@L`&Z0JCfmyFwd}g-N_u$Ol+jvVFEc9p`zEU z`lFj#HD50A&!1Jk9o9hu^F2mHSe}86ctM|S%q|<ASF*1HOno4~oQ4({hJww?obNqW zQj;dRvD2Mt4j~aIB?K*P78xYXwyh@=F_2S8Gfhtr)WR3$6{E;1E0?MOC?v1`wNoP- zE|Qf9?2)22(OLF(<OQW$dt`eFScI%#Lsw;j-?U(dAcdabHQhA*V#U82Yo2$@PHrag zq0Nx<53wje7anCz9Qk7aLkPtZJG9qRO6Ka--(Fk}=>*t5LZ>07{q+V^m`5Eid=Xkq z(9?<RFqC2EwCG5Anbp*7`eI5-Ors+v|3QbfUhXE93>vS5K|F+6<(-yP0yEm?kYd!x z*&A<Z3j530#B25YXlpTlPtgT#(_roqw(?@5Vd0(GMJ~rNtHbm9sW05SSveh*q~9Y` z$9v#W2@=SMNs{!a^T5{0y4FdB?lvRU<ZtzlIrSaoN0W<(CmWEbtzjK3twBs{rlO>_ zH_K-Gx1~EJJF0zktNcc|)p|0j3CDfQkH@NnrE<O<ngtv|R&BTrVNGuDF2o|$uG;Gu zdZDb=t|nF(Wa|48N2B0ysJF@0ms>mw%>+(pMvi97>0z;|y|Zd1s&56d=y8agkPJi9 zRLWP$bYBMYWx!uldsKb|EC}nA3g2UO3_46mHrFNdSERYh>b^~itt{Rbu7?uYY9%mn zf+=IePfBY7*4nfdC4TOo5K-und|Q01BOAb7gt>lTF)8M_1Yd3gPe6eQFw4j63E4=^ z-u*p9owLuEX_Ug#EhHtpB<bEJqRr*fWpGp(+6j(9mE@X~5M<s_mxBH4NBDPkzjxb! z+SDqXH1fQ<^n7Xt&nHIIw8m8OW;B2#FJeDR_X5PfUP6P-X=oz>c+IvJH|Ax3Z;{9* z#R0Y<tDb&RoM*bwl{4ilOT&wgf*x<-vPsW7lQVmCG+FTvjVkYR(1v$=KYjgnO-ruP z>QPi_E&+mhe(em#={vHmkXV;NjTeytl3Km#J-`?!3Bt`4&ewU@*OJAKB}^0NhLH$C zIisIA$$U#-=Z(H}=D_Rm)y@sdwY~|cnsK=hzV;oOvvVTcloJ?QTfyT6Qzw*OnH{(A z?1B)5vS9CzTWW!Khb`A9L|6H5_|hEznk4Fp%9J!{I7YjVNdFaX(HUYe>B@~uovD#9 z2*;fi+{=_dxONoDqZK6sXIufZe%02*$(MGT7oylVE!N7mMmHjg0+`IY!>`YqGWp!i zpVo5`MP{A1?na>aD}e0tF<zd8ISnpxk4l`V5*cd%f6bf<3qrki06La$TiT=W8vwgf zMz|6s42D7^3_<5!XHCH2N<ik9gudE4fY6KD$D!<jaSo#^k@04N>-`2h`j%6@=*3!2 zIa;Cqe&!81$ob_m?YBEI|1Mop25zdbp)zoX{$#sb$L2MgCfXfW=5_=Cz-u3B+1jJT zDR6T$`4hCTr__Ev=cN+mpSIBA*ZZ+S8k*O}ur|SzDs2H<OU>)0*{B>?=B|b^+1s1b zFqp<Fv4fM+8H&C)P=LQVj9opM8my*#2|y@4^MeX%KD{t7U0#nuJy{D+*e*(y&D00n z1lY|JQFY(S3n>#`@?KNG02ktA&h8UDWrWp7SI_CYOCOJlf%CQ`Aj(MzFoM1yi#L6X z!F2F?h|%4hxj`B^5jJkU7rtIn2L-cpI}Y<3*(jID)u`9nKwsb1t9E1PXY-cW@qopz z-Ohf`=y|QLGy_o!H2cDyN602Cq3&m9?MRgxD0M;F%o(k;y0x1Hm{J$f@ZlOf*sUni zTi4L6H3Wfmg}YGTv?uE9>61c(%O)jQ68j5y^m4)eG6_yOAvH43$bPaIuijG8AApIQ zVs93vVl2;kRNB;x&R&=UMvyX2Q9K(Iq69%te45{!-A8{2fhfRwcVH(`_6FKRNl=nx zpdG(Vz@cB908F}DZ2~?%u+`e#_Z=2~8t~6nR$RK9ZeDyF{$8=lyG+1=SpU;4hAbw0 zQ;WuF(YODEf(bKi+PRMUvMR|&x%LDY32(^!csTmou>PaSP|zhV&jf8W%DMG11F!VH z&vmKWar+BWhgx1%$_`-AgEfY{_##olA<>=BR!5C5vIM+nyMt=ENxn46We#ZGN%*`F zcr@S!fsGhPeJ>W&-OAvxBWAs=(%y*3-HNwYJ9Ul&UVQPSz7TKD?0H-hpA&T`_}OyV zQ!+olCkQ9BMn}%7PGB9205mBnhJ!ivB7YJ;A`iAzF><K08GOx^Cp%^o>w;bg@kmD` zxtdmIR+%%9*OE0Du;AoKGS*Q3J{%KJZ*_|O^yQ|67lqrhas6yzzKcN-H2G`%@mQVX zh=L{tsT%0(f=_#U`0An!DLlTEZyo<9P*s-@0eHwtTm_K=P5B-us_68t4*skQ93&aP zcM@7ZGNB%`I0}X4Uq23TKglO--~~1A4iLr#?7lGtOxZ3h_uQUf!<KcvN~{^9Y^yco zZmdeX99(X`ihUNza9y?fU|h7Lg~h+wOL=CR-(FV3<1dY(U-w0Dci!J-Utd963M@OF zG+fnvVUNojQRDKCaMji}4_+y0eo8v}8*JJ8(+=LUEadHRdce#N8!4;U8~Vu^9T(9+ z0Oc*P5jT&`XDfatmA~IFo-0RkZk1A}z--dR_hvHa`ioh@1`G*WI1VwP_oZ+l^rJG! zdUkZ_M-1!2JX{CB0G)`*facW&+`$1=^dWM<VQZ{6kETgcL7?t3_Tj-QgnK;kFv9lW zKCfwUwS0`<W&aseri;mzDen+~pO;;~0@D*CQ(ZW56R15d&UV{r(9o@hL{d2{SY7s| zFG$ONI<}=+<$i*Y?W6(A-U)g`uIV4Sav71lzpd%0VX2s8Vq|Cs-Hch@1QEqoB#t>( zU{#t$$-WD;hIc7?`LE3eEWSk0tJJKxE%;*t*HZGw(TgcQu4BSPA2pptJ8i0A7k(NO zT|J{gbXvJ#Fqr^qFguI&?Lu)B8Ig;6r<jMk#!w8At4U2cU(NV~XPDpJE*abw(Vy@k zTM#0c0)k|Bm8u0GM3Ks_)3n>%etD(1m~UDKDnPkTg@IfZF*S8POCJL<E6>KWdY)-e zjyIjIiNYMhur{Q^yIXn^OYO_|hr#2iKF=F0x`^p;5>!rwr?#@;9<?98`c?6og}tzj z+}Rqd=le2^Y(*EBia7`FnQ~C14}1fll3RSZ=uhvT?~|Pbm-pNZ`qL%Hq4(t*d3FNm zTt~e60Ez#k2z&8pgzTpAF9xIbM$<js+a_R!e&Uk6*|%C4uBm-lOt>su6UIazFgNUd z{&JMY^L6QS#>X^gzpK#vY(Hcp;{5T}j?(4paOYIBdy;SmGJb|<&`A~?-x6Qj1+pFa zI0v6^b+&mC5*%jp9d_7r=oeE3-SNE;1tR!QoeW4zW0aW$1W0ss-8hVjqTn2%?<~j8 z(2xLK<nm>O`Fx9dsaTF=s)z$FJ&KzIE3cE1Kx28wPYP6ba|PpTu`#%C$k;^MDm+a& z8?y$$&+C;|Z?=eh_ZBEBblbB=7)M9LS(@K}n*ZYdnA)ILR{7U`UMKSUDB&R$=@OA* zcfgCaqi;=7LL!aTmby{gCW!f_=N9d3g>6X*3r3S;dJ+%oXh7DxQ<B7UKUj~_YkQ<p z9Y+#s2*6loq9g$ms!Vr%M_G60R*lq`FX*9fL6v@Fm17V*WgAaCmW3|tHHozTh2(y| zK)qL{0A(jK{5p^H>|18NeAWC+{h~dMjjhy&PH*d!g!&ZicNjv>4z?>+3$P^210U(h z-aq)MVHVH%1vL8@ertl5+K7cGB6~G7_Lf0@;N0rqrc25e)zmjz8ALVN?0$GM7;f^+ ziz8ggMjYiB1G(_0<Vkicx0_sXUm3zDuht_pc+})>&iCTe<Q-f0ocEHt01`pQZ=dF( zgjN0K*yyg3ZL05Zeby1I?^e40(zTF@`3e1?1TXS7&&cx2_!-2w+*lR6t?k?#R$!W2 zec)ls;OVH3L#{DYr1m~b7?V`1M#gDClxb>2^r8nC%6s);sOjWqaa2RI@|*W^gE8dE zSy`d+{Xk`v793a9r>3N&k5i1jYF1wjr-j5UbVf-6w<?wC;G~~N!)20dVVUgHu#+ac zFN72MvVp8$W~fal*E&y`$EmZyjt!h0h4Pcwf!FIcyCR2iY<qp^>K5{`IK<(=L<M~V zA*|Xd!m>Y434}jZm}P|DewjCot3<9LH$g!+Q@BbIM}rh3)ISN)_(@TB_u@*zBM`64 zSrjeu)MJKFx~BRQzyi0&Vg{{w)z%6AJ_%4-jb5YT_j~%fv72CG6tytG1Y}lO^=t7X zf<`8)cG-1B4k|~G-?w|M_v7lUGf=s~@E1KN%Bj$!O%<Q2U2F`a(k&h;5EGNflkD-x zg^smv4P}s5IqZqbB8>0QC~=M@uLs79z>0ozi&R;G{jD{VjbEqqitq_NgJSo}HWy9P zBVJrQ)w-vYJELQxR?wQ_I*~$Vf1#R>r`-MoD8e;*Qs6mJu^e#r(*==VD+b!)YVz|3 z2ffq!97j$xsZpcY51~#H15ue^zvAxR5T+_Or~X-7{vFrqORtgs2ws=ozh;sTu11J_ z3r)<@qGJ^}&={PF-)-v#X=aHvvec1rx4AQ1y+O(FoJt4rLrG0ueXPNt>j&yBaRWG4 z&5Bx(CheM1tI{_`6^M^XwF`Z(j95<psS0c-c5%w+D2aAs)kw_~;sE`z0VoVjkCRl4 zRGlTW9kaHV&j|YcDK&yE;@B}BXPq`G)><2F=KS+iT`m)cK`C|@#uqrNU9-+PS?04k z&8v&vqjYr|<b&%8=hHbQkeYa_;E(@0F2&I~EKaEvS$>RD_i>b^Kv%T!`zh)b3p#D` zzPAda12Rfs?~3=?e+2G1fAK_wQ$;qR;n;>piXxqBejPctLe<_tehNf83%x#qfq-=V zT@+F}3G(7+w5=C4nX2XG7X9&`Alt<&{@Yu;6wG^JF6+-M*xNsIojRy$qHH*%5@q7^ ze#iQHY~`qP@UnRJZc?^0`@<uzopsx#iP&v51R$2zv8m62a}K`E8jl?&Y-o96g<9zn zSJR?c8RGl4|3nOhV(OnyHu9_&?tgDBEYDdG70SGlVguVxW+XtItCDpVhi)HA&}oMy z#`Tim{^WHa@4mmnJ$Agtjp+6!cpY&A*`wfOSFMB>#WF6??)uS+%cT1$^QdIfKpzQ0 zEI<9AQ>?Zy&#P;4ufvc$##_@fWrxQ*e9{`yHW`PXJ$oi7>I?67*%^esW*(>6kkyv4 znzs41;@ddL6DV!-$eT(U@<yTV7<@wgjNw}ZPX1Bo7v;MhS1$j8wCO$ii=V0C-#rYN zen-or1!Rq$fVy2qwAaVD?%vAFm=*{Wz4H<hZSJ^as1K}ca<u_Z!9FflXS8BAu%^Y9 z+vv4V*9CqBWcegW>RX$WOm{o!k&(*;i74<w9HWu>>1p|SM<aqN){gp$7hTmainOwK zMi&|PB)7`e_v##WJuAIsZWux1V}krz*YNxV<+*YOr7;rv8s3!|!}ltp?O0ddqEI1A zVv%Sut~|41_(Bq$9dgs8^{1O|k4*l9y$-1`lnKjD<W$h0c5#whrTA<hh+xowvNHx! zQ)RandCrU5cCy!gw)|H84De4W1sl>Sqxrx}caD~02yn?^Y$>tc4x#phA+aOS&18}Z z`w}9TWhM&Q9(~Kd_AtS(m<@{iq_Nzb!r#Io=DQv?9_<-#AC3LhgfL(<T3pIjv9`AQ zOb!dLuDTPgn4hB2hzUKfazpO@s;m>N8+#ENhElI2u$?u%lb~xYQpI`iek-0J%nC`R zn*R*ntr{HI@<{d?)H~Q<Tb@;?;jDfh^2R}PM-tf~tac2fY|ki1H1hI5luB8vn+jw` zCstqwC439P-!&zrZclW4t6a1k8Q{3L-ktPUU6*v9o!``T^CgRd-BY!^mOiH>Huno> zW}GFcmj+CzGpuzA`lnCzE&6dL9Ud&5{u+0q%Jq8uWPNr#Agd@y94M(xY&zdeI%<nf zNQZi$hsLIiLZkC1`5iDqw=K=Ehm*l!;Nb9D>t%k&V;TBHWOL#N<gM$o5b&UWE_LYc zSq=>Tds1l?DaZSspw6p&a_Ta*w1da%GRr%=!nh&&#z&_4_-swGGb4lU#aER6?OVT5 z!{*YBP}1flVKj~=Klq3qVmu=5`Ya<P>Adx5h~_yO<dfAb0<O0V(5NhT|N4tSbn|?> zTg(w+Q4_N~Q8aPU{IQ&qaB0}>tK1c5|5XFo&1M_})ASY7nd0LZ74cMV%L#rT?lJ%d zXY>l1$g}UI0p*5CPEL`)+qD=iiW?kX0ZDm9ML|=EfGW3~l$Txe;$K1=PF1E-8UvDN zMCF>^bT_5BIia4j=ywly20IU~qrH1_aAfVqer({-LBoBmTL<X{pHj{{V3kz%Ct%%M z??WITCtw>^TH9-_KTV3REG;&LIU^}9RJyz$F0i1i7Ms&ZS;-RV%}ffT&h`xN5r`@} z#+tUjOK$F;b29(bkMN2ojMUV`wrMW=@cV&-L<};~&cD5_woMYZCr{005Z!;a`)(u$ zk?W0Lt$p=uoi0SUdu!DBTer8{gJhNW2{_V^P2RqJ^qaR5i)-z#6Qk~+nEswQnzh1* zUnKZfv-Rp5cGBgtwZY8(CoEj6&LH+JU(?fXD13@SQi(>6!{5n<Zgza58^mlI<F@Yv zrn}}?IZoroy1nzdB^13Jq+7TIyJze+S_u`xxuYc$T)0L2!F>y;Bll<PLSq6fKVB~r z+&+-ix_-h-WcP#%MOO3dI6gsiHLhGXF9i8rd_4;r)DZZ}A_3^dJnu#b3Klu%!u=U~ z>lBY}^jhRPAD@y9Nk`Z|;5Ob?@F=hWirZ4u6MfgmpGXQP&-S@l+I2FG+o)`E*)a<^ z1UYe1;<VA5H+@%=tPYTE+YGt2(Hz>qR7iu`rQM9AP1q5IDbQySm0>B?Sx}5#yA+Rz zgCY^QV#4~ZdJS>?MV1~_;z+mWTej8-*Jl<02K^}u>*^2qP~#;xz*Tk*4xVm_F21MS zQ?{DLqZ4)p6w-dh^mjo5^0r*2J90SU<f}k5a^m6awS>PUJ4TA?tD@!fxB6imyw%IY zlO~I=?$fXFIAsy-XlYjJOwk`Fxr#6AP5>}V6Tt!6u@5R;b|3pL#MMZFZ3@*7r&!+} zR;OOyX{zR?MEPvH^~7nB7<9(b_1lk8>1X!|^-QA%(*xth2tll`%&LFXl|c^}m}P;? z8CjI}7v%A}_}$Q<djZ1V8t;2>o9eJ>T0Z%Cah2JxpVcV!8#ni$y0^rhwH*4pn_d1> z+7I{8CL;CS8Dw=D&6<v~V-Y!x2zH6<4I7cQI@mOME9>(rLM9Naef|1*1g~^h&I6h$ ztQ9a5o|bM^2&~+!)5sH_*etHQKTtNIWLcuVoPdSyg5ziGXlC6-#^j-`MTk4wtL0XL z>V);Mx(09nCXg!H<<2Wh#$C85z*9j35_@JiJd`zCy`rO<Qtu_4GV{pmhl-JZ!kD)J z4#n+v_Vh@fYSC`3w@p@AU~pz4F9n`ujq=lXiOX>DNV&^n=B>KoH@}ruvhxO$;DUUY zu`OqdzoQrL#_*}8k;WH552<EaBHESvS&ahws@G8hCm(l6J*lwz-WD3;dr++=lqg;T zY*t`>3pbx-nmCK%+MH#&=pw^wtyBgJvc!FzWZdT^+0@S$gcp{<)g&+G^Y_Pblzdin zZ{&l7*ifX+PA`EL&+<f3eo`xS_CLN0eGmVk0=jWKm61f%_FFMn0pP6fAjsnUB0ZD1 z-ahfK>v}_st=c<ni~*7$vSaf{X)cCXdpTJwQWPLoF&DD$F~*cMQ@QGD9>?N&=)c&g z2d#?k7DB9(u@x^Hx+*>BgRQV<+maEr1NJQyIR_`qgr}<?^-KAGuspesmX23e@FTvX z_ZFI%OlRS}v%0u8pxMl1cbn_ax13z)7qbj(%eQ_mB!a(FCF$*`5f<^4a;ywXEX@Jr z1{rJ~2@v@T+<8vt1WG~Q8S}oNaoSV7uV+cVo`nzA4oTHwK~sZ=K8)s{Z?eAS($VCH z*65d%lo|W?;83MaD@Sv12k!Z@#9dKSGd`*+{Cg#PCkDCT3wCw+waXTN@jil5OKFYM zWk^sFICQO(uY|Jt3Ex9YpAGN^bP|#IB3fL)0;GE!8TUfi{SgF%w)udVt$x{t-Pox} zlk+{wd=mv^H0K0ij;ly)=gr0a{O_5O6vW<LrD?1P=yw-svVh+!5eQ183;Sm8o}Z|P zg}ulHw9mn0wPbb7t&vZZiIcMM4e0Qazc-U%A{~Wiu1GOyk69-#6D1e}5j22*RSrVR z?pBQ=d2_s6YaS<(s`;8yM{4-w4%}1ukiA*3i{`=F81UIq**RHpc<FcS(2A^1ti8(u zbX~U_dARE{a?NAd0a9#RW-hil?@C8$xan{M9ZtntiB{_Wx^@z*@&jHT@}Xq-w!3h; z@A?cdRwCX5D{%2Adpl+*_g-*tVUFG89o%bDw=d{;3~gG^fU19PS`X|ECOZ~5p-2z3 zSX76<xJ<usUCS+IXQxAn@C?n*TuOAI=X0rC4S=h^H_~(f;Ye*w`bf|=R^f|@7)5wx zhM-8I<zWtt{ADG-xORP;zKX$jo6g_+s9?}Xu`=$u+Q}(UL-O8)vU%pM8pkJ)B^^HK ztSXp%{im&@!UCQV@3REuZD)l4b4GeZ_a|^?v(V6e*H5j9PG`^x%!FkfT!k>+1M~du zsxh&xzC<Z<kVtfeFdWpl+r)!5B@YaSPWv4;Ci)Zlmlm*e=u<aW)hZ@EN>h}o-Qr^< zn5aql9O}?!tg{hs&WT<vhKJATKgw)Y!GbTRu<EiFj=%CB+aR8dmL2RpGkiP}P&?W< zml5Azejy>MP~+h+kppfqu$y43<l}VMiMLGu9H;@!#>tEuSKp^nE6M-c2T8I#{Ile; zd5q54;x(=c*;!af2BDt4*7<;N_T>lo_h=FomzJKhc#$TSHouEZ*o4aTGTm~vsYB|C z<1_nM_7=Z9cP&@MM3rtG$5+YAgvBS-&7nZ^GzXR=iy17hcio`*J@zgcmdB638VdN4 zrI2<MC_ABOemiw7R>quF7T-(R%G~K%w)wH!Ifl3wBDZ_=bdVu|=U%RXT!n7j>AZxN zRfF7r(g#sJd7C1M>?l71UsDq2)aMs+6-&7=%Xu8p!qMtv-@suhT94|lI^(TF8Qs%~ zV3h>LIx(JfA?=w1D}9EhuOX{ah8wk(fv*zc_TtsIS*a;KTggSiuk4!^hs*;u7~c#P z!3}-$(uly^b?)bT<Yep-l4VT^&A~`s>%EVse&3k)m=HxNZXhd5v(sMX>)R!hneP*y zTJL*X&d}$@85RoJl6;$|9WxjnW&?1z7mkF3Lf=(E7|1<w#0w$IE0DpOF^gGeW3=eI z%=F+0e|G`0))YM)NdO${uq}eYbg@otjRVFeh?-*SlA18<o1Gf`UDaBG%p3KNy45t{ z*V9=1H0KR4$)8*CgD~4a9}mQKr!!|1xax#5X7O7te3RXp-+msa^=j7F@r582I>1vY zQNG4%KE(!VFtqwMh{XyUpOeS~sN8fAiZhOag;7qRVEfh!`G>nw-0nnH>ycAd!<Vt} zUvwwB64UK8ub$c4uBk3~otwFka55kyYW2rnY|QGa*I>Qo=Ea#4i4A9KS&h*rKj~TD zLe}leiFAXB)0?x=l#Y+0X)X)z{>D<J^@*29;$b^=tN9|7S)FFDH(!c6cSb82KK2Yc z<~NOzJ)1k$%8+%sKj2dcP%B_;zv#jDSzRJ(*$BdMCRI3*JZ+sj>S(Y4uG)`Eo*pOM z!n;lH;9$2Pt{^{iS3C*f;l9=zPPf@bH}kyX--djz@R0#Na&(J0Z0nWve4T{rGC%k7 zX)=2kVva72lRsE{(z%M>enqyfjjwc2w5&PTgbM>Vj8_jU9}{z^`s5b6o$xyqMpB!W z%Y+<TQxpA4^+{7*;MJ?!tpMO=^kg1W-Nq{pFS6WC?_TrY0z77ytX(IS!bL={t9!oI zc%gHJ3sMHYiEiMWyuOJa>qmsrp6<~4R_)z-n6nJ+l8K4jtYjHxRJl0QuKd993wNWH zxl?1bq5aAX70dv}t+;ejS{zqI%WsVTx_c$N^HVgx&&-G5*M!+hk^S6fyY)`-ZwuR@ z)xf|$6CbN{Un#cCRom=a-lvfTDcds=0Wd7A!OdC9E3pJ)3&G9Uv9{~&+;27GQ=Azc zyo8JZs)aU$tjTb`wUd$T*xd@T7mw>i?`?}rby0x+(~Xw0v>KD2L7*nPx2u%dZ!DzA zlsSb|Ai*^s2XyrKZV?8qTC3D?ftBp-8%Rb9`b%IGGXT$rM(x+{sb{@d6C#_b56xzF zntOd=u~YEhnHHO=1~A1M2j^d#OP^e?Bx|<Xzg%btbhpji`4OyfjsRE!F|}dg$->B` z8vKZz1(;3ESd~>(CDMIiyvrPXo}JT+TJ~NRFi_ZM4ENZRkT1m;|5LZ_6@&bV{~0~N z_Ms{?Zz$Glb=7^}%qx@Lb{!H()^5-$-N+d?Tj9?IJWx%D+6X7dktcE1sNe==)+V6V zwpR@Gl~FXySUsA3A;rx^gIXqHFRUAk3p_YcwQt0A4>LnQ1s$n0nkqvRL6#VKOsAh? z$Pff+C9Q6iu3vUlfb5t*X4fFOG9H$wX`+qYY@a7~1c5bz9HcWZq;Z-mU9?R9s_F>r z+5Z^ZRX9~_!S8mynYBAsT4`HaPW{t&VBmWH<W*+WkxB<l?VC@KR7AkZr`$R#DzmmX z6Pga9gp0tosaaiyURFrIIPvN1`#`VY`C+P4U+2m|($|}h^ei$1hb3`*g2+O_xnZ?O z?37l+iuu+ap}p7lD-c($E|Ms|ZuctO4yO<HZ-2V3@CniXS%AL#7%%jMiQ0Np+0jE& z2^Z;}oLY+k6X>YFg=<3VK?M~~R)?iT{X3{YG}tgGFwaSy%7+K?bg+Ji!!Y({C-pDR z<s!>YOcSR;@M(vln&fBUDj8##9PAUxi%>`}VppUura&{^yLAW2aMphYEYzJ%^u4=x zshzp8QcTdOQKsog+cEm2Nnq-M`FK%59{-wBUzzqWUMaofnNJr2iw$$fb2}efcO1P5 zb%s`c<Ft5vbB{D521@O{?la~_uz|!=TEWpQRO|36;E7c0uBo9Idvyb^yaaXRn}0Bq z7uVkJAb$m5sd%*+6;G^u$C-0279483S%6{AKX<&p!G9j_wU~X3!m}-yuqlB1YA)IO zR{@Q9PfFfuvwSi(kN(MrpGtY+vt43!IBx&z6Wz@0&02tujJ{@v)nH0mUH4$1u=hzr zkJ{U(mWf*y?p>y(%b&ULf8~*_ESzYl1%#}mMRJuA+>A9hT5cg<Cd*c_;}OO3nHv?j zd@eU^WXllqt6EL9G1J5Q1K<dc$QwB29{X$Hh=YM0Vn|5-?Geg{J#^Aq%9bP~uuaQr zLA}sz^n989Mh1V9KT1v}NWzjG<lQgvdX1lIsd=oP16XG?IMGohi^s7=^`2xlktJY> zD{eBb*U85;@@Zi=I3aMl@9LFw39}){iz1p<b=w)G_wa*Bwx8n?G#3Z*LQ_HKv@c^% zF1P)+?rJ06<Y2a5k|A~t(OUL-D&8uuWmm@(@bsQYAY?E_oK5Q*JD+WEbIAGR?Yo2M z+5I4%7-Rv2vm~|dyLMfhjjtxfx8j^~vK2O3w<iDXueLSH7pKWt9h3B`>p0KA-!G1? zFbTFUH_t7xf(A?ym+~Jp$UdH@%LHr7l_0=|Hncsfn)Zh|0cjqe7;RP-+EyY2$lpp+ z8}{%Hx^VTau|3*TRM?R;Mp^Ky)ULA3mn}MX{S&<8AkO*ZoqtvEh`PLQ5kYH@Am2_s zJT_6?ShRStH_nzI;=b^?T3^xhMQ(_CECBeSH=Z^TbRO#zZN0N=X@C|@3!6_4%W#bS z=@K_ItBzj>x(IkjVKtg#XSz~HzC8fC>AFctd@)A0UZ<8-i%(OWE$*w6)v$W|8}BsL zJB@b-Vp8);LX~|791iV_^jLyLKql+foW4U=@yvJRyt&)~L}k+kr%m#|W4aZ)00qKO zh2VX3u-0VglRrV|W{T&qd9-rsgtV(N*1Y>rqxvspZr(?qCwpVwuYkZ1hlT_wOBzEa zF*4iGLDp^kX-+K{01Dw@b*6(HM@+0<23x&*h7lv5E+9v%|57*X1Y`I(onBFZcFqry zSr9IY?|B%Gx)^T$1T|z*c~Xw%qEqLL!xlpXPZCE&!k50yy*v`BBH}U$@ly3Q#k38J zd79N5@C?`pV!R0s5$xU9%{3obOZDJ;irs;LB~Yw}&l`-<FAvwL(6P=gYxw>OKJnVA z+lAAMPlv2qUewuFwdkx)n^45#_-^r}x6i)jciO67dkwK(snh&O9e7_8ia#OUZSPYL zHRo&lwzv-aMr{4A&3hYVxOgXWVMm?lsygL;9<-gZ$!|o}lBcw9*FqOie!^NwNNq+Q zk4~kq4E39ODMlpPZP?uekDk#pWInA^$6XLK^~wAPmiN`ooSuy=Vs&_g;N!yVAyqzk z{7;(sX2;I##o<`D!T7y843s!4XB(sI7~-fdmLSRVTfHxSdf0KyuT~b!>TMxp+}QJQ z2B_JWV#c`GVMmgoY!Od^Ebh!UZR`Df#~i(=Y`l52GREw1*K+M;aF$Q?rt_qTd*-lA zsU#3C9;9)JDHG1a!J9Ix4!&c-g;u0Zi{-GV&$H3^IKE(?Z@~9p=YDw9BG)y0>959E zlo$`X_WNFb!0I`@CUfZ#H}WIGWLZ?e4d5;0JlG5_;NG_yI7lBBa9U`1p7S#xPwJ{R zYvDk11IBl1a@P!*ZzDNPDQI_W$fpruG^w|gd@*OIH6iO#_9Zf}mCS)ZaQu;tgha>= z9I&5JG&30g+nHA8OUoJ&S?87Qk!c)Ft`&|KZW^fjJp^(6@TEx%D`53LowtM7Kxt~o zKz12C>g2FzRqH;s7UO1d7gZS{S_m-HI0<+BWY+;WYOQQp>Fa%Yf=7=s-MrEJ+I=G_ z<+p;LWztNO7f^yv5|?n{o|9Ch<@SjPL4P?Rnq{@#e=XB=o71U&oyQ7aZ`i)yLy5o5 z9f<K@!Uz2cEy(XMuW^BI)b>?Mb3u4Ev@Ja>Da)%mwZP5DvddQN@Ip0xLVZn4n>yfS zpop>?oLoA&7UK{oDL&|bt>B-R-^iMqBU^(5Jq`<mSsX)ojC|MK@Bh~?JpTBFVRl^( zY0w7OWVWa%BjaN=%nqj%d{wMqg85)>^uEe|gN>Kg%f<Iu*K6K>oKV@J+4)B^w)ieW zetPOV9&5I?;ibQ{Emu6uo<dvW>{jUkB%)Tg^<NETthq`2O`~IrbF?HF=4nkx9867i z{$vNK1@rwyWun(VENrJz%Jf+YGT;qvw}!>(Saf<@!XU1Czgd0%RHW(#Xz9_``Rx?D zQ(m)(&nCCEi@Q4m(X<Ylv+%{RO435V0Dfds`PmG^2e+|bJQZBqYAcgnHK2u-jiH(V z_ev2Yywh={zmAn*C)&q=xejLCT9}aglcmu!-~w1eo`AlSTBq&k4^aCgnMWFn<Wm@5 z$#9*ANmBvrPx3__fCE?jKpr$W8{x6M(9@h}E#SRk;PVGCImnOZSfcll)wcMFAu*?E zI7!2KYI=U1;{Z1%n0~H)y?3R&U@`wv8js-txBJz{?G+dn;IuY~eJwLFM^PDSK=v-9 zvbQ=!5Aw?zwRJrv#<4``^XyB!we^#ors#mAo%1cRyiOr5x^t>^Gd+SUsX(mPk^pQ_ z>Zbz#k9Vl2ElqAKt}EF;nJ<_3nV_2t*XXW}nJzHY@O>HYI^8)JkH%R~4W6Wd|Aee% zPoy*oFN1cZ<-*g2<QzHT71QsPQW^KGeFW_pX!jZKl^UpiBdBlx06J5fksFy?bDfrS zlj&i7@L;2&U#mg@<s=2)<`_4wqvgz?DV$ACH%Up(u<r?a5#Zc?MH_*1HiVsewDj{H z2ZI6(de5)&d#49g-@d%N+aHrKb}77yA)kO~SlOF8v1OV6eb7Q&u<r>0^@W17GtX#x zanJ8dNWnyw?I4cb?2aGTT3!fO1I`3IjQKSS&eGD-eyxAsFypbI6#hmRh9i$b0RKg% zR7@g{kLsQp>VcN8XcsY_-F)Y3!pS?bd|(f5fTH!=Y9)0gWt9Ru8(jBs6-h~J*=DY9 zVOy}yzcv(kK)=1V??f^fznbvvf!c8GS7;2t^_aVt@@>XwZFL&YkfS*E60SGlT)nk5 z?AD099|vxjlL|`MN)qBp+JMab=a0}d2L7J+2CGX#z4gg7*V7eBLe9GM9Ycg516gh% zM0C?WspTEBg7!;kL7GS(p8n%}S<tnjm#ccbmA+%l7Qe$xtMZ2uO}daNmE@W(iezHq zsD!7&4#}r26nY9ZzdoEc@zvSn4zj%<g*n6qM7j)hS8|c%@ZsbixRQy1<EuC705p8S z?dP4h^PE&&RkZ$Sl;Y}|5Fuk)ewMA;{-0IAkMYggxyWg?G%0WQ1*vyfhEliyJnEG( z_SPS;P%{v#42Y7*^97J3v;dwe=660S9msdFIWXCX{p}b%wDpt!%QfWMs~>M5og;j^ zjyNjrbxc%<Bkk0%%F!u#mgr|H^FTkEFYBw1_Hx_K`=1#1#G0^KL8kJzH5x7he9>`Q zV)eOA7BS+oz+kt=OJTrO47)vX1jZlRDZopq$`Dnca(4U4IX8qK5v<{F9{-Jh+dsBx za#7%MF(gv~5;P(2^Q0z|j+qSJWU|xO`IrhhXpmLA{?$4TPC%sU+}_rFII`II@pbpD z9dV4;7c0!0w|9>#(j-YY0Fs0nL>Y4N)X`CbV6K5w+tWxJ$83z?y6>^q-ORagr?2Xx z%Y<vX17ArV9tce~uJDzmmFDXq;1zcUeNFIZBq=e&i-^^6AzJa2=(AQThg{tMfhF8$ z8^z|)Rke*a@g-OK2|YClcagoJMqGszDeYkoD616Ny~ouqW9ZBK-D7<)N3^}B%sPWY z63z6u#cimbb=6(+g21VIGi8xRbB14k=Hi$c$h_CvfXDZ2q1sBP_jnq*&&`GY?D!be zET!^x7B5yf#-;V~yhgE9FHaQTy(39UNlkLJncLpr_n6hW-Yxcl4}mr;_ZO&4-LGPO zp<n4Mtlf)Y#RaQqm<a^U`lA!sF3o366#?v73|h-*v}jQt4=}fcS&~`zQ=Uv?a-H^n zAIcwI3q(cXioyVw0UylusZ*LK2D8BQgV}Rd(~uL0o712gOv2b^+QIGN8_!Oxi;Uft zp@>?N53cg#gqn1MgsJ6PgBOQ$eAc&~<5^q7C2mxRel<-)Z!)(gUWNEsW#awHeAX8i z_Yy>`l2<L;f>OX&6eF?lr2%F;a7U^a=FF=F5v`=KLs1d<Q6ho}L#S~X!NgXG{U!@6 zr{qbd;4YAqm!5z&q1?IJf^C+L{Ms`BE9VGi<m$1B=-fX<%uxIRY7lt%afvbT>~;13 z9q<<2i7PDBSinZc$Cdt^<f8k%)Jvl<wI%!qZtwHiy8XF^_pCt^4ihz=lSH9Q;)<J7 zY(1_QKq_0bGpuQ3OggI6TBaXtU1n+hZH|$jX4^a0Ss{PjY`QiMUH%O3r{>LLB2VCB z-!EM2rzx9sp_^EEcz}|u<0^46v`uykT5|O_g1fQ`^Rn9?WBmU4z0Fwn<rCz~AV7tr z`A=~&1kB!MX$0%Z&WQM5r5iziC9;nX<`pNrd%ImU*$Rc1&lH<CTJS9B<mi-roVilu zx4L-mC^lg%^jgCr=>S+!n&P!^>pL>EE^ZA+w$^3!*a*JcO$4#BLW}3Tx~3a!1Lj|U z#;_pM5)~M-!q`#W;iE2EAnAB%u}&)?83z6*f~%A@1L3Vfo1|3JZ6Yz^7BAKA$r2$a zWBd%DmhpiKUfKSdSfWK>>N=5!j<91S^ma8G%KI~hYPA14#g&WGc`}IW<`ximJ(g48 zAiD{-b+wkhM?Ly{lG&9=fz^^_a)9MYY|*VgEpduDVZ68&JsZfnnqImXTRprlaL3dT zZAXB=Z104JP7hyrJey3emHA%hM<Ro9#V$kFVdlkEGF7vo`F%S?jSta<s^`4JTKz*7 zvI9M`S$|dWL>{<Tx$YDvZf5N7Jr9=U>zsSJ+a*AQK0?Vz3|z?@F5)>dT#4k}J4z4^ zi%sPBWnERv7uD4{8UW%l8YyIZV7Z(V;hTQbO+|iz@O9hkPoV+H8k<E4qJ@}W>vqnk zI_K<L4%!M~)i-3BGPMMWi9tB~pP=DG1yZ}v1T|_O-fF)#wg@f}sKa@(INTwp=JC|m zT9D@d0sfvdX?VTf7yckx$n{$EOQeWFvr6{2bYeP7$S62jgCvG~a5fu!x6Kf_1#R$M zOL5s>7r#cMHqPcMjTXtzP8zX)nEKP50yjm31Yv;lCcAhS^H`k=KT=_ttjLE1Crzve zsg|!AHhMi=#vd53N37@46n{q6a~R8kd(A1C5Whr@m)b~3duZdy?LWBAsrI}16jQ-g z6)trK`b9e<s2O<sehqcw^o4b5JHm|aWxf$E#+8Ere@%WuZ;1MiCnZT8TbvjBO;N=k zmaocUPqYc%UY^8G61*|lK>mUs79Q|kS%iY6raq2KnpNWX<d8!86`Z;$9WDOJEKIph z5|QGrKl2xj^ji}1=E84#%<k$7@up3ziuu9HOiZsw%m2AYQ>622$vbB*zfe%Nlu3T* zc=3zjk;Ozhd*!!HU+k5_$&~})cCgIInf)Y7jGVPAgNyff8@gV<X&t(osSobz{vnPd znMA^!{GTl9SxcmUe{V!QM~uWMRt<=Sk;f~-4{&?@p6`O%R&XLx%{NX|iyu`#j%OAf z6H-+;Vj;`kvr&01p#6<M5!S!YQV=+SJrF@5U)RdC4ii4xvw{pxKir3}yF5rlM*)4f z9FTLW13G1T-8gm9f(zqKLfaZ3=6Acj4jO$DU)itrK9_I#>Wd_tu7$3?Yf7S`jH$3< ztqO<%$7_hIPR>n2SOnh9C1=|&@Xi5G{4}pxXY(y-c$Ol<+&7!{16%Vq-z6v}X*uhE zGs2{*t)+%c4}9S;V|iM~YK2~ieaYakHtxWEVn|JRx*VKCBCN~Pjk~>b5+J`nq!3iX zz7?AOdvZ+SDB0#%h9r6v&y9nc(uHucTl}qhHy2rK61-I_CDo1W>(}p#0T0wFji1!j zu~tG^wsNQv`mNQ)aBjXa`$`$(ce9H>nbMim>)T14E^iQf0@`)EMk*%dZ6^_}@Vh_z z;gK&L0oWkFZ2ttL_;W-|EQr>~kKJv+)Ee5=_`amgb^?iaWrqLymCyD(m5hJ^(O?%5 zms0js#5T{ZXENMtD*J3`*f?|w2BebB06dcITqBR3{8md4uf>Wwr>!XQV%`d(2bmLX z-0I5qI;G@{7w>x|C4{adGX41SAuZ;qqGzBR8NpRP4Oo3qblQ}ID5$4=b(i*^q`53e zT>8)PGHRD0Uk^3bmbGjZg^X2@(>mFCM4IP27DrMw7O5xc*jI@D2VXq6LY&lh`>{zT zgGEc+Jw|JJqvO=Qc)lkdt$t>-;W4e}#=Ci^y{g&@Rye9i^Rn+BUJQOi!Irch(}ppS zS{Os~^)~Op_de%&9`o+hRt-qAt+Y9{X_YGNE3o$S<6c@P@6_?l@)}wch!5BKNxjJT zU|Dsmm{be6WVEEY{3MO9$bVy8n<z;bee46W&ZRj@MX>DBE*dN+<*`05AxaaJciUx5 z-%0v|!92YzHr)-yPEhneWJXiv;mD(B^Nz3~`{tz0)|Par5t%mg_qL2;)$<w_LkSHu zJ5P{<sNWj{^QtQ^N8#z>DYepLr};QVnCV#f`f;$G<8m4^L|u&`1m$<~qQ3Y_mtOBy zH&=tiM;32z*SFGIx<5#W!Jc!Y0qf?U%(3m1-;x%*EYZyc*AFr5M1kjYyemJ)y{dY~ zraP2Uhu4<88_x`WMFCc4soZgEn<OH%84(FqnhZbU!iM@eeia3mYVQxj#dLh)K00t& z^OdAF*V7$;)6HfK$cy#S){k^?cDCVqC6FQMTp)vYgTs_03sqM=yEe^4uni}$zLoOH zP4@r)sCw^sw)-~h|GHYGwxaf)Rh!nHwP}sgmfB)e2|{C!+B^2DT@<Z7B6d+?Q;LwF z1SzpMF`nGNyZ7&TJ^$q2tnX)>$9cSu)0uzo-u#4A6~;7=9Wwxq3aUu&4dU4a{aMO5 zt36JWBW@|nuhQepAC0~LB--Z26Ie<PCo$2rp8wK@EcpGj^yR>YT!yQfb^tN50XCO; zxN-rTizxDy;9K^I*!G%p7&@>Q2^}CG)9D>=Ryk^;FN#@TVbAj7X0J(8r;CMN&S!e2 zQ?er<cs!HWwNJL591pDFN`-sS_r6Nnj~vKAXrX0Fo8|wtP3I|M)@{R>m##oMgL0}s z>V@Aw2a=>A4dcvSZfS}$^H~~hkIM=IOFdZVqIMR+r?wz=T9`F-C~K!Ikrs*$b~}Q3 z_Koy{?DMZnh38t=+7dSTl6OCNxaR0R+EgzzzhisR8c{1-E8S9QklC|3taj(5Q4zmZ zO;I2e7=pJ147MeR;>rjP(Q@$tLex=5B$;XQUyzwV?b7aJfMOO)xE_?-Rv9wnRi5fv zrr5IB8zfOs<>fk?<{=`X$x*BnwY7Uj)KZru#JfGQFT<nYKJS=vMv$ezN7|oxU?vJ` zA?})6hgt9kjK>~thbUkpUQt(-Om!-GCzK#MJRcgi^Q^v5R@A<KYN&TP#8Qzi_3KNZ zDGJLs7aw^=5)SYRY|-viAO9OjAS-|6^V*5neczV`4jx!!*ItV<aN}wHK#FWo<^+iK ztd20a!aXc6Qx(^HpY7mpr|y=QR4lm*3T#Lt0d#VmFtNL9t1#A8^t!Z8ai;YHoMUYx zXRC_eJ~v3)-pccNPIP`&;|;{J$drZKbhDsD$Zru*5V<0C(he*w0BAGIYKfR3G9#}X z$lUabEetRtymRY8JwXzb0#iwPE$($vGwVUxz}X?GByK%fsn`TzoQx8#Zm>B+T!sR} z0e)F33SUhHJ|fImGtf3~8xO1|hG5vH7ac7*0$SZH8uE`bf~KNu@bn}~w7=R(*$fl7 zCTHsK{Gr9<KZqx`B2w|n_l809)*JqII|dB0{7lttEgG)?eb_e$rc`z~naQEd%fX4D z9S5OPbero)Y7h!c9p&m!`QJzFN_HGcFLt<*s(X<pcxF%!<5~Lxkq$I*>O4*Xm0Ath z;H^1G8dq-YROXffUc%&6<(-FlIVgt#VZxl9@-;{ZTGzHSfEAIY>kRMp8-BW?v?&Pq z$*{{p{J2cCp9gl#lLWt>>vFxmmnbct(X2!=#vZ+KuufPAsMl6h<xSGzCB|qPn)iZC zAHC*S(`quH4`1=;$d}jWFyAVd%Bu3}!wPFW>)JgJb*<cGo7fSYdpp2k%i04a!%;Qp z8=8-+S_v{H=?V1IWc}Fb1DTm(pc%k0V8vQsrG2p!F;a5ZlqX#pBZ8A9<V3fhOlgr| z?;mm_&YoYHO+ab6gZiWYDDN|~v~Sy9;fmcV9y)~_7ow9VEe;z}>$c!N`wKA+G3~oA zI=rm)(#cK|^`ws9@&yFH@InfcCH0Ai^+<VEYugLeOv8ExK1*dBF4QF=|EEU;j4u~P zJ>hM+3(Pk2y$c5mL{v$#M5C!KBqS(eSp=y(!v*ww0%iH|R4xE^P3+?uwlyV{+?im& zi}c9%<SrHEmY&Bmv<hKCmG&#pfL)6$P%Dpu4tl@V#VQO_3G!{%likaD{gQ=g`I;ki z0k7l84#UX$JxQ_i(bp*Ovjw8BG@*8b!BIdGwE<6fk<^*dW>+R2O67-tm>Y`Pf!VLg z{NkU>SwM+iJCJQTaU!%XJ$1B0d@OtY40VD~j;K=!BD~*MD4_`e;=V?_SvoSIT;oR% zO;uxLdRD!Lw5_dZ+`Py(^?H>EX3S8@<H0eR(Iwxydg3R7Vk2>lhMzqxO=>OK!6O=G z-f$mLc;+Im-g&}Eoxe$Q0?yVaJT}5Lx+d(ERqJrZuli1?E7Js{AnOF-TnX;AJah?N zu-6)#ss^A=U*4au{l8md8gWFxU2R^{7T%87lGIDzH2Qa5{D3-Ok#7|`QD_C4anL&M zP=qkSNS#TVWC5RD>aH=k_T{eG)FrWKT^j57yGgq0X<M5$P|i6#r*nq$Vto_M416Iq z-~a5<6&INqe5kb^mFw7N87hdR<f7FhS*f9U5;dv@(J{;g#@f{D)5BjBWhb~EowG~; z1!eQeG5y}<YLEcFK~Uv5kdYg4K2-pM1C${T9zi0mFM_%3S)vvq=V4e0(M>H6W!zvx z-CSwF^Y=$GyKM<WK!K@&#DxC3!U*J4CRQRUkEWaNNZ;}IBqY(a-c#JW>=Qy?*)P3f z_CEd0w<M;A0F{ujv~6c0#%Qa)E4htmVudd(=9!)pCZ5(Dh|Hbv2k%(;CK&=n^V|ae z*QCp9vGyuT%t4)l7A*<Gq`|u{x|tyl-t~z}M}=-}kN7n#EqeC_TS)Y5FA~HHqm3+~ zi>FN@y9YVFv%QwoCRwtee6+CuwkKJfv7v?H@p$2{QaKDfn*65oUDs?Wz!s+OP-GD{ z6W;HEK2^3PlP=9tia=&w8c2I{u=AN(UJm+;1#lU%Re7D=YcG`Hn^^>Y9g*qrOaVi) zf*bS+nAB!-Q~-lFHcC}aF#WP$lDjgysVP7o7B_nQO%VlT)Z5_163pnJPM`2)?an=d zdyvBK+pE>u`U{Ul6CZ+w^}+xTSmN<?IY(y`zdaIY0BnJ*)W_IJ{r|xMR?0cwnV+_9 zlD^K$l{+IefG*zr;s?8-K;iQZtnd%U2-BDBqi?u?_SQuRYPM)ySw4`Qbr>9+B>ErT zTRc1w1JMf-`taws8c9YeK>o&=kGO}3Dok%+aYM$$Q=Y*U1K|`HExb<~jx9fOK%v{O z@0=XLP!v(}^myhRheAKxK+m=VJchg_pvbK2QYAx$c|H^<>?B`*55jzZ6T_BO%z(l` z=-&xBkAQbE-W;$(G*$T#=~|!MX>lq$$zU|GiKlW;t)3fAgZ?$o;mLFSq7a#%Tg;@L zrPqchv!56bou~|+Tl^2$Pdqvm<D}{U$xn}Qpij|C^Axm_$p&J+3DXaRmgfJMX%S4f zbGF+6sD8mORX_;kWOt4`{b&ZKJM#ysk-8URp~*y4aeBScbg`qVr$bV3GJ<)JZsZcH zD1!tc=k++@8H1BVmpn!Vc9cf2<%P9pbGtL2KQ2A#o6s&w6**rBq;SKjK-~tVCS^i7 z+ErQy8Qkvl`@n6(HgkF}Ta(~+hytrLiz%11$V(mVi7tuE1pG<R30cSHSdUEUUy7Fk zU<O<FH@N`>4S@UrmZ2QPe>Z?fP7~Ir`1a$S2_mOPPK9N_?ZdpyK>T};y}g?85HV@k z?;~)d2}Bh2MZ2aYCkoxZmnol4?Dzf=!c}`qP>z@WE+;-LW=|(-<i(CHXEcsoyUr#7 zd7aR3sD#$Vr!^uHlk!w{9uMWY^=uRV;yID{Kt&qYqr!pwZ~s+;4(E=tf+bX+<#wv% zjSx<<9(4yv3ShjTUb6Jdz4yHr8JOaM6+Fe^v92`s^v?&QhL!Ka`EOjwo(*u0^Uhvu zxO#dasY9|_^J-mAx_=b5?v0-^=>>dk-0!>h*o<LnB-<p5@}CRaJ1shh@tuIKBG{<) z1M9yEw>-)1K;O}QcbP>`k-Q1h5TbDh5zMMNgM=H$N_aS}lD**&dvvD10LFhmxqkc} zBgO)d?>^2a-LkW}eVca0>UDXmSu>PV6OY7v2zFzxX)LfVzgn*lD#a-IAX&q)Av56w zVerdutABmCPVkUz+pxoKVs;LOr9UHyAsn{$mPYB_gcp-ZzlrW1{`)VnvSHCnlCw17 zej8<o*1Git$KPAo1rDDxmhLqW^zpYEA$Gkd9BeWiO%?a~3cQa^v<??KY#yQ{MfG}5 z6-1y@JuLrbC1Linl%E%oSEb+b+*+e=j6v)|cbZ%E=OU1|E`zvn;pat4sWy4BiJmvf z*sJb_)7`mzp$pr8b&8@%rlM9ZLvU?>pOO$r_nK`O%HohPqf9Ieh%jTXQf6?%Ye*zc zjZz^G^X}HRb`YZYN4n*l*wBFq>kwWIF3dI^pCLPO&w)M4M(VbjHdFcJx*P)s9Kt%r zBP?*YNvLst1yNc4U~LZU6_sinGBX13x5l|u7{~Szv_7D0+EmJiNLN&m{=)1!q41ys z$<c)*L7Y#G_$`?NUv1)=tC!r|)dkambU%&Bp>)4jH|>T6Jkz5}1&}``Gd0Vq)$46i z@J$=lrXq#O?e=^QQFAdx$b`<G2Xe!`li;m`c@=Bei8kf<1lH#_H2WQXRt@98-o?Lh zU+G6T<(z&r&&vXi7`2J;J*|4zhygg))K7x&z;!-(!@wxGC$ilO?@*cIGY#QT1j#L{ zXcta%0v7z%a-J$cT)nK4VniT_N4EzK|EauMmw_XL2iYp#{L{uM52@o<#UGTP6Erx< zP}b;$Z7vctaOWoo%Pz`nkAP!ci5fXk;uEwDn1fADvg;=@hC<F5HtPj(H)iQ6e$x&W z@vw{5lgR$$>r@-1P*-9o=`Z$2QNPv;Wunj<8f&pJnnQ?3-KHi!@DI2`ip>x?WvF8A zIkitsIrrohPdUE3_5Yn`H+~W1Oi%tqqEHt2te0`4YaNJdPwz}_z0V#ScR;=Sveh?~ z7sI1hH4Iz{v8d$BErIOw-_kNan;#BO56Jqlby>4QNCo@fdXvpJOjI%>U3sd_qE6&T zVNakbop4gaDpR4j2qb$K2YYOHH~FS1kDKLThmk4G&wn!FWl8Amv1~~zrf#+f{O%;{ zG*3_MdFPvw9~C<=QPX+5|5K-U1#lL!T}C;hre<Kb_q7a>VotKY+S>_e)sv=Gi({Vh zQ>e_ou`mxz_7iTKiEp%P1xntWQyW0E)#9aI8U1K#RZgyEoz6;XU*1szx93BiS}R07 za2EE^Y5x409S(vQLATScO_Vzv{(a3Jt6BE)XK?FU84$kp$~=Yc6=B)u&7u(MO7l6J z@$^D*@c2ttdDj|^GKm=C#+{)owsZSE<i`t1KD()ed!}vP>=ImY#TG+$_el>5oyKp# z+4A5!!IIu1-Ylx`>=kr>XmO)-3^sINN8V?6o%ea_2IR-q{$=FST*7f0?U!=!BbhFm zZ;txC6UG~+F3F6}vyVk69ynI7F|}Xg?@7FoC%DUo`kSm}k2+7*^fGBawb|jMgTZKX zqoyVz-0Zf->_Mw(-s`)~BZyiWh+iARO(1=(_1x{1%+{OO#!m{jD#5$3a+=R|zHa(X zUVP$zg_;mL%#{np(%tV6>x1>v)e7Tsk@s^o0G;Z$%|`9I0_qIR(2}WcH(g^)Qa{GQ zF}u18sMZ$7YAgnfwsgv$$U@`IMw9b0Mso?4@Pu53_^`Vp;)i7c9%t>-DW1KU5fI7_ zelXX%1I$&hcl<<l_eVW02+U<FpG~#f_m8SvOa3cmIU;4Y-B|kFKM|S2^2Ipb_3Lfz zcNE9dJ7J^!=UcP%_1mUDjb}p_ma;V&oYA`gq2((eLahAGr@892X3kC)C)^c#iiHrH z(U+wEwA&MDb&8aHa`%0qfSW(|wDBz=4cp5Y_Xz+^)zSQRU!D))@7!koi1F|=`H%sc zImLt_{%@;cFE@&ET8NAbc0$=i6MG<BCx+z;b(h$7k3IlR-9(PH>h8azLEl8>P?v43 zS)03rQ?tQ|Z`^|Kb@O4&Ks(KY{RP%+aPE?`l4swrKidtgkGqcV*dPg>&u3$sNASUi zy6;Ew94vLk6ybHelx7=Uj^-kFb!>wobp{$JJ#O3M4Gn8)F0)%tHkSy>C`RF;@s$3+ zE3d<$oCH5P=3OF*lnmRad0i%>*9Z6A0&l!67C-aWw0(I>O%fRFIpz>d4NVK0;sfFn z4WA!Ph)RbqVFTqfp$-BkZuZ?xq{mi&n=g+r;YWuq6tkM(`E~|a3w_jwGgik|gBz3h zEfjRbK7sZ8?&F|Cs!uY(rB1ioezi8f$BnS=*xL;RD<Ch{=;x1j@85RSA9(~0X~8hK zEnnQVOY*x9Eb<;K)<fb9rvRBKq<(KbgRDrOc<B=B+~Vms{_BJm`X~L|(w7tm7O8~^ z@vqp6ck=lU#^d0VLZ#nDMUX?Om!;%1+R@~FKbzf|3d~OLzm39OR+bVm;ui*J4QBC@ zy@j!*J0ghTt5+`I-eHO_a^7p-Gk(r+w|)6%tw_K4+0<6;{$Pm<Xg>MPWXtO+hjwf< z5;U^va<GV8G~)cl=nj8`nss^Ve|y6xmwCrKX*arnRL*V`sc6)HVaX=QE>}7wjmd30 z>G$TRTOE5d{c|q^BIZVyC&_BkI_{NnO?F1qyTe?ek0uBQPSD;W+7GU~`HGhU?iwwd z@u#ZP6|xv?Aq-B5;&^efDpKBTIt*v0cb)_^5j{2q-lEnJ7Q+Fb7F;K!cI%-bIO>~s zw?b{xxyhlIi@{ZZJDVhZtOlOY`u{FSd>Ullbgk?;P(O`+r3FC$*^3o7M^lj`4Yi<_ zC3<bs`=>s;^&R8vF1hN(Ry{)Ak9Ae9Mdi-Lc3zaYyl#<xYv8uIBxPC%WB9#X<CG4N zK;{mKTB1Mktk&8!pd5g9$G%9&JgwDb*e;}w;^3+$W@7cDM;mynHxd+D-_+-4OS;kW zjaf#W=oD*L6vQCJZk)kNkR6MNW%x~44(S+dR%<GryZ*V*pERs|`Sr(qUQzW{Z5)4! zpR@e7saL{IgM;St)(^zq5i=@_o<@kLK}?X>-@=mf8^vzgm&KemU%KjvM(SqhaSUI? zv|Dhq^Chu1ih2L4&74>W;+uHCUag>5Ahd1XNrs&jlJY`)Tx0!KFIj~*CEYF{Ccz8h zM|TtAx=AQ4jaW7E`|bs)-+qsaJ>QIWKbSX&_YmuT^7WNyxHiJ8FU8?J_!-IL*@Rwb z<uYI`#+IScLmCqCN_{L&d{#AkJ9Q%jVh|7QQ)3lTDQ!OWLnvYe16w#)*Wa5wt8Xeh zxBc;0{a0=5%chtMq?iMOB;u*Q`fO^U*kP{d!FoDa#`m+#*H?nT0Su0x2$yvm_7ff4 z+p?F`e|W7UlggZQ7~9pH#$qK!VqKk}a{Z~S3I!3uQFOCaL@=e8i_eT6U=83l2fN(& zznPFe1OzT?aBy1Qd;<A84%~z77<m~)=KZKyw(jlR!~CuhwNk<88qEg1G_0d+jP8uC z8e!{6YzE{7jE4ih!B;!O>21H0gAJ=}n1e%bG(VR2h1y<8H%eUdWGa(8F1nuv(R=#x z1|#x6Vso?3*lrM+zrD4!|Ap**N(60KeQN(8d>Walb)t@2Dh>9Ew!3U9ffY^Z2(c*M zq1h1X$y_wAn>Oyl)d$H#7`fdAza%V%H-JYt{kA9(Mq6Aw>hmtor1;Nj`<krbHe0B& z*;?MU%&G|8gHxK6<YbFdA@(G3fRoKi!_MF%;ANavXwo-tk<r)B3zL(+SYkP%HkfRJ zf7IMNN_i#wubCj9&FFa!-|kzU*ozBSuc~^jq<l!EUdyL?L0saCNyThvUk3z!9mYtS zX)_Pye)PJANmq-#Z<rmks@}O3gKA+KnXB$e)$yw5be4a;N2YNihmTNr|AfwdPHo0l zUW<$8>>sJ;w-1$H<i?jZ?aJ~R*1rT{)85Edn%6s?+9%{oAdfE&Los4dk-S9fkSj(( z<Ec78^AOsU@k#Y-RL9(l{_K2SBhk>MpW7#gU0K;@yl?j=Bet|l=@kG=?B(p$kjI?z zVgXgx1&trf<#gYCO;{cGDf3-UBj1%v<OKh>hK@UQk}bFP`aLF~dix33GLy+p?8s?3 z`?VN$7A{;dU(HTP*1_B<8rxeX8a!~S;03iWRKton`9xJlm#D8_zO#_VJKy(W*%Skc zwW1edq`d9*(8-D!dEu4kn>!M;uX0=ZKlQt8pKE%aCG@9>PH0t9TzgC?-ktomDISO$ zq&F>ef)82961Y!5G_XrP=z`F*)p0gqqb++m&wN<)+}J?PbEnaS_4D(5*+*V8mQdhC z)Sy{v+^4zaSS(Y&IbZZ_V*mNXQm?eUs7hAwnceS?@;~X6S7QxcbLg#MMg0)+r$!x5 zy2<2@nPUR>I!Wg&>X-`^4>>bg`EmEtt6nlUZ@to3+*q7!eB=J1;^B^^mKAp)OF#4k z`*VA>?U9@3=bI}4^FbeA@nApOBpvvZSQ;!6K2v+z6RzxbR`Y7>u<&3uqV`}*al-bk z_p7GuKtZ`5)!&m<ulL8~x}aKh-kZ;!04<2>{rm>ybK)NM?P=Z~tiY=DTzDcd+~9th zj!uq;#b4akVa{|)H-SP?3IU=@3k=awSxX<8MHS*=CyslVr;YOuk^u8KMbPxVJ<pRi z7HL!fHxs>qM09t_eQBci<0%mvriL~H*B4+R8Kx+0r*Xl7&RA>Bj)VZ~ytwUQ;mOSn zK||MdEm-aH{i?Ie3pl5@t7+J%_lZX+KlwK$_L!SAm)~V8NuM=9Ubkx-TuB=_^s!u^ z@4Gwl$^NMeelk!$S}T8UVxQ$X;)m}NkCImYu-Qy3+2=huaNf0t&&5VyFC1KoV_RD? z9b@Lgsm!zD7Xj?>kt4ko-L|aV-S{u?uAUO>8npr+k?1<NlP7@(3$#D1`~}^*(R>!u zUkT_Et)rg5=@^Yvw)6g}j{O+&Zc%7^_;<ihREV+l4?v-tYQNxalU1#cg^&1f<U*lU zkxS$8qU!mUsn>B=0M%~mk#2gyEt6GF@Fepx1fZwda}QSW>$woh#cG=nYFlifO(ATZ z5J{s1->!iE0cW-D;e50b6WxouC6(nfTSb@JDXq(%Ho|v(W&{9fW9)r<@ZZa%lQ69i zvM05L=A!NY9K(u>IPSJP*7n)b2!6JI`0J}B<*O|zHK!xC>FEym<XijgPvIxg+b$Xh zo~O@yMv{W#gkyI=?L#i#S?5YX&niwfQ^UfZyIQsr^)p$92cJ>&ew0V{9QC2k-z$za zGYro;#}b}AE;4Ibn#DFb9T5mR-l!f~wFvgfpLKMi_tylEj0QSH$;I|~uWKqp6$=#; zlCsLoPcvEG#@C~j`;pdr>diIRV*%rfutwqiJ{q;U$0J=gwDG#FHv}1nist_<#f`=z zy>7+{mhw_rkX_XAbiz&cE6*O&+n%ubi>WXpEwjar#oYWp^KWG)s8`6YX=PSLGuJ+j zJsEl4-AFuMzWfThrK0|v<#T*?xb06FTEW+3An^wuhDq9N`S5o02AztCE#&FS#~G!F z%D&l>Bgsyq7GId6{xf-$*R@ih{7&6NpT+HycONtq(-WE~^;a}TKD&j#kMSHRGkT=8 zrI&L+E>Qz}0AB5@>e^ow{<%j%ndvGO`T{vT-ALtP=l0{f_d`RT(LYq7p1?izIm_vK zIry24dK_lbp3KZgxS;!jOOO(~(xWlAQhBq&aDfz=mcqUfVmqkU7`yzzp`^rCuiur~ z9jgP7EU0>Fdf6^J`Kx;ExE!z>eZ6nI>UI97EElAK$Ae~1y%qLrznDt8^PaxN2aULz zDH9ET4P##RqYQ7e3UeI$gpO<9>m}EIruoH7Y<xb9+=~VT8Y5UMM1&62qT+p~FIT_K z`4{^eHOR(RGjDL!Ti!JR&Dt-2$<T&SXpP*kqx*B^igc#G;N$b!C(G}7JW*VX%WVm| z6BW2fBHE?=4=cWO^^RsUSiO*E@~yoWd*+V;KJ_#C?vN;2w{WlZ7h%J<r5NeuHcCqo zXUBofkL{O>|L~M^FUtN(+y69=ZJ~6buhwexH!?k6-TBkqaW_iNt2p>{XhJj!dTpiI zr$M<o5FCDR>gBVtQfu)0ldXHPQ=$i^SPf_ac6af5)IsT^eD>7QT{gni$-)Jq8Hk=$ zUv}C8ET~cb?mHN%7aciMBwo6rc+p>uZC}k<Ix*zxZBpYhx|s?9U3a;QE6zA!7_-8* zD3>Dq9ZDWNbg<GQ&iYLA#ipRHSd_~`2`3{0G#fsxccaC14Jpfz_hFvGrwx46@~Ize zOtRSRw!~F@GX2poh6C_uX8O}6S!KoyCf~`Xm)ttpiQZC9>hq6Vj}bldwYV`=F72LY zH%QEmtk%-^2WsDMkc<U5{7Qt?yAi8LezNFYeSyM&ur;FM7e$>nPflCP*m}6f5%*U5 ztLwl0M2!3TVY}h{1p)ixi`9k#pKjW;3F0z4|H;t1OrocDUV5`?XZWPyk=^Pl6+N?a zH{8^39-CemLe<!1`q9xqInnJz*9?$q-TyfDkzN1exHh1uR$>GL)|kXrV^q<1`XSzY zSaLwF_JBrOPJ&Eh49D21j~)&9bkbIA;Vfi4#bB&t7GD#N`waE7{>;+5ie3H0kK^7( z5+fYe0Y4I;@4!O-WNl;*<D;0Dsg7>I0=wI7q|<LOruDurDn*b48TiEFzYT%F{c?7` z!LiC8?Vx7e#vI<_7dtn~b+Fd~O$i4;PvOd61X(l9;Mrox70EWaRIIZZ=n)@QNPf%f zg9H&<A+Xxt<iU@PPvOin#&7IYV@G~+Ezm~~$9x5YT>D;svuX!vTuC{0o%AREa+EJb z$fhVsi_(j0oCEftB0>toEKQQtZ9(s})#LpicGhc?kmweftWxllov)7gZCjtq>w3RS zWS9$lCgKVqrK?d%orZdf_llQNnY?vr0Fct5JuOT|AQ_F0JWDxKjAx5K@BjSr;>NpX zU<iOo&u#zr+ZU&mL!|%bV3V2>Ne4|rNQp=se4*{?#W(T0J4WTlTx2`9|2WS1lk6=b z@ANC4+O`(iNWPvJeAY<1O~iOi90netF9|F(2Z1lB+;{!_7zbqtd1yr)FV-C#b3g;= z=m#Uoc|drB=LgSbK<tH^RiblFwPEAeMyuS{wwkX4P_umn+?#{af|9Hi#?+wkKpDOh zbC-<fhgiBh*ls3>Lji%!ri81E?!^Vh&@dUYgO&PShk4di$sAQJILCdFO{5VY;g8O_ zvtASYFL$(3#DE$4U{AhQV?wLzdqenXPf}!2y_%p!D1UTE6!UwwfrL4t)s5(A+k@a` z&VxT+FCP8uDg#@e55%Z9`#U4*B9Q}7ouFUG?Qrg&bzq}Ws}F-yW}Y5=!IV1@ulrq@ z+p<XV=9W?(Hd2B7T+-_TgU%k!Nej<M%>ut&D56FtYU4gVeQkH7#NRco<!Amw>U;Gb zWj}W{cl~az7U<|>2s$g#dC9<p>fXDLd|*9OrBd#p5y3D*;l6s?Z$aHai-w0lk$U)s z_~GH#BD%zUdrSjpMYpM~33A;@+dD3JT(Am6);i6*f9kp^`6ecP=-DK+8?RP2YP2Q9 zd^GzhCuMVH8pot4vmf*|(#qvnX>%>B;UD8M+{>fSU9i`To}8adtYb2ko(ikjVM&d8 zT8Yf!vUGnyN@=?TQHBb^$tvLgKJ*&0^y8apc!IGk_3Ob5Q?W*TCLZm)_vvX%NNS*w zAC5nVt?@$G5}MxJS`PI|v!sgrBeP)KxU^*B6%yQaa58JK_&osL!X}64-5-#(521#> z)>C2Jniy8!I5hG-XzlSGA8edZ0*nw%CqHz#{UO%SAMRUi3_YPa4N;W7)7Zk+L+lhN z=)^R_*liImg%Ef87qWo}^5gdbtWG$?N>%fuwUWxIb+hm0&g`+=sc2%$^LP$`^Xgbx z@tWuyU+Z_fFO?Z7`ADDoUB4TLQpPrAZJR2R4zXfOqE4{?wwgY5p?%p9+*|Udsh1b{ zws?oPT6pth)-%1kf@#>WKqt3eu8jQcucQ_`uicB>o9|7394jpQ$NiQ!UTIeb{F8Qb z!lCJC0dc9ViFyRkJIyqhqN~!`{HO`$+VLKja?N8;6l9t^V7o7jOg}NLuO#1kom4k4 z(p|*A<kvz^66{AX2i}5cDVxWn({w$xU-9DyTG?(O$mliaT~z&eTbvUKc>~WVhX$0t zaJ4xLo6vPNDElnxK8Nf^z%|MGXbevKSl6BG&Jj;#hK}mDDF8nMe9&dh^s7H7lzY-B zl@cktZkbv%5`NIIkM=$oUXImLR)kdlWV^P$p)1kqitvu^8UUzaIK~pNUHa<UzD7KF zP)Az%R-ns&_vN;KIlGc&8gSmx$-(ww5Oc6?)8<YD*q1agKRGLR;N(k~Lv`qXO;^(~ z&YBbcYNloKNrJpR50$zxrd9?St2XdUW?i29m6h`#QI|MnNw#j^-@&m8zQ?YV*b|<Z z%~BvPfmjoN4{%mrF=0Qw%VpG{DTs$Iap$Kc@>J3ws)8%w`K`t>zQ;UymmWejzKq-2 zP|6X;O~>t|ZIIbJa!t2Kk&luT@v16;$s@0=AiH=*xc#aNj$&y^p{gxkveSvS+CJn> zd;%|^0M*UXO&0KQLg6~yEFQBz5MzcwE2KC6NYJ6AdBir4<V|$I1&luZW?0#Awi2CS zEhkRjp5`haXI!bCCtAbJGBO9ndMd~&Uw;VuufXP6lXp}r3zPn``{J9y$I)%qJ-#ey zn8~M4E&ATaY2Ldn3muhb3kWb9=0hH${y~Km@k*W(7I|=WB)Zy)vDzOR*|QsbLBDV@ zxl-$Ce$05Kv=r1JsatbPb*A)mXm9$Tr6m40FuI8*tI+6O-+x3EZdt4XefWm2upkRQ zin;+5m5dMFE?(yBzftQ_%DlRIZm*uD4ytAEKeWD!wBEuOvweiWs?Es{GADw!k(rT> zNl87UW?o`J147CdQ1=(ufBfwiJ%zq4Qa#nXyd?-hUh)pMeHQte>u<I6pvt<Q_NQOQ z&y$mu$>}4-uI#1}X`i&CloP?{EMC4z;91urrqS`Ok8LwS(VVGO!q~bxZ|+}@`_HuR z>ptmXtxaS~GO7h@{Wy;XVRIXk-(Skm2fV0w-oH>5Z`h*$^amqrkacg=!+0ais@x-o z1$!r)D}2Dg4EEWIyjB!$JKyZg*suUq8)<m(=zeANH+N@9`U7Q~S=+*~pRIlShfon; zw@KbdG;Xym{2g3!%ai2u_!&Uqr6ou06t*!!bA-|s%M3CF_~<~w9;t?=o3`*)Yqj{9 zXA?y3KQ=Cyg%lM(z6T>oeQ)lyg%q~vre-ZO#^r8Z9140+G%P_=0)O>8(AV})EvC<j zjOH3Y7;_oA+Ysxn%LGTuMl=Dsa5GHiKMsosYyAE=bnN%)`L1Yir^Am#f1gkmXyT>< zU$B@zP}5cQWo!!AS2f9RCKFh?aN>}hKIOEAq~)YQV4sa%Bhi(iHD|dOxd)|_h^&l; z9f8{t=NlJ8U;Wp2mXxA!l;x}~m!@!U6E^Fcf7#eTWMggt)S{hNBvyEMPr-Aftit}% z@44~Q)$!1<3(t9<-^tb%)D08E_;!#le2!%8=wLzK{}iBj;W7TdSu&no|AEm%f4}%9 zq}Z>=;qR1sGHn_r-9ES+ov#;B?Ii{c)ZQKt$hD`#+xnDBZTJU5_IeVt<U<-7o^yRI z-G)Cf#`rd^IIci_^7dCNrZ04^zFl$&8F&wX?aaXwO3(B2KVqW0!+R!_qI)RMG}2yn zCAFGA0}MgAZ$LkKzNb4p#t(k7)KM~r6KX;2fEF6*UU(xX@DG*l>dwUF-4VVw-^&ue z%6ps5*3#^+gkN9t(#y99J$r_YHyjc@yNiImmwY>0?RGsA6^7bDbUgZ3k?2@s@nz!A zG6UnPTRWjl$NAIaPSW-~nT&h}0pu*ldfY$-&ARgL?8)?l#Zu@Tr2i5Ud)X;g6e4NQ zI-&v{jK)|bx0B~?@P3kgebkKM|NP?mad15eh3k*6_>_<q|I)$&w66kDo$Uo-)4P`w z{*P4CT|#L5c}IJEy4_EMiGSB58XG}hshJ$$B%?17ok5CmR%S%6SXh<cHR3j>CCm`5 z&JQ0;*F+NN0n}vcgm33nyC9rD#bX+usF-<KZ!0Hnv8G*J?LOt6H9YlL0ug_G0|Y<F z97TN$+aay1F(djVd4W{oD*&h+=<>hrIaM60fpv+~Jl5d8__&8-vuAH9D}eLA(|@9c z4b|~|VrM7R3~2v>I#aSXFN_A}zBDZVdL8-Y6w$SpRupIkvxI(b)zrDNSu-IftZglP zkwa3^5G4K5;>H`|hmdg>ltX<G7}mI4nj>kL0zF6E3#2SE9S@%ln~JU2PUyKlmC>pL z0$CpOA?mdq`st-kJ9dJ@KDhP)HD~`0!CJRC*JI-&;3|Db(-hB~v<#h({wFt(B~Ow4 z+i>pJ#($v)K;L*xIHx2oq9sWhSI*BquM;n}UHryldmJ}8a1)=QVyb3g1*Q(R@E*mr zFVN;v+-q$;UHQH}#>%Qk2icZxrL{HR!i)t<H8e=1ct3immBgm;{{3T!1Lkc|7vkn1 zj1$+(1XfME2dLvxyZi!Jr|kZ$*^)V{Rm0mM5=iwq{H<yBHUIiEZ(zS&lX~J~g<wCE zugr-KC2)ZA<B$hd6cQA!@F>Mo0~=BjsNG_o(3485{<xJf&HzCvk*|pZ%_9ptK&+Vb zH-WEj8gL_4{;X|wce)BYkn~P&bRsna)>qk4iGo?hug8XC(Ak<FEfGx$q&wJ|x&b|8 zE1mrGc0eT0-Z|Z<b=^Z@q?C&DiW80rTGf*vBnkgIz5+aYKRW#0@vx!xE^$gHP?2ut zeZ;3SpmkT4420iBa(3K6z2wt)AAf3v=AVTY#?vbq;t`4M0KO+eOzp3$;RP)G(N}4R z?%&282Wmou$Ih{K1prfJcTR8C;b%3mdgwI=e%t=6@Pm!0CEp_R7v1&MME5raN(#9f z3yPGxVNL^kG3~H|8H(y<wpaYu9~~TlzE+uQ8~(QoF}%lx#%Cpm>woG(h=U7Si0NDE zYlT(C2h(?5xYj<882TJC2q`)$i*eXjMZDfgR@kE7mOA3MXFG07HT9b;f0hSL3M>`P zi94Zx+H@;awf=^Qc~(d*suC%i)8{$G6WHFWxbUhGkOA}~e%V#{(URXH+RMqcL16Ci zG0RnORR%kpvtq5S@_b8V+vT@KbR8kAYKiu$=|}Jc2YcM+2QDrNX86<&xPfPnfo`H8 z-qjdG#A2kOxDmAd%Ywn+U694%y9Wc+&(8)pkqH^fHZK!hCKZNbUnqTE&Wbi7irG0K zRuTJ)>VM87=ETm`p4mG(eh$9Aglvs^xW7Hh>IjEUh^o&}ANy=qv*A)yPLzC4h6D`< zOw=S=&~paLy<8I-6?A(&LjZx8?rqLrW>VC}XJqQ!=s#vB#B9hpR`(AgT1)%(RlQjg zS24#?PalLdNQiXSa=*_>RASH6dG_q({z$i5{~%!f0Wg4*>$A+T^k#%rXN}5^49@UH z>)YJDt3K1y8RWTZfX<U|Oion>zrSZH!s>2wVP7<v=*U?UVx7T8BNw<m_^F#}#E_RE zj^zGR@z<0A1Uie$s#ydady^7ZGTT0-JUrhoTPrt}p(89@X!ijCr9~9U3a9DOJX(A6 zMoNx3K(4f|itSV^wKjm=as-Ffc^7;EpR-vT>8n$$R~pXk`|*=i-f*=|%Ojw1>NT4^ zMyKFovEU~=j(ZRAGvWf!+vmG<$4kD<eBFqpOJ{jjk3&dxkB?~g$CP+V4&;G=Rpnj6 zjzbv{X+3sN4++BMHl{a8eoR?(XRL0dHw+MLA$gw*4G#S*tuJ)B@cY;|IlJSuthbaz z?}E<seHna`D#9?`t?a@Q<-g~Vb44XI{G~SJO5MA{>fMSYLGKsNDAr@I)AoOjk^a1i zeggu}TU1?M(J7oQ{%dbW7qxmaxid}#aw;dK5}b|M3%%Q|7{UD7B7E6;+h$DMZ}sk< z`YO@^MK6Ik*=Qku!=}@tU0<nf@bm5E?<9I48M;`f6T=UIEWY?F=ey@2FFwx3QS{~r zign!fnfi=*bb!@fMU-EMx-SPZa=$4p_HFf)@#A3ae~bD^bTdOlpY>(#J7EIb{vFNj z7mWk;F(T1)mV3{-&E<aI!IU3F1W`tFxZ);!|BMO5R3b@c;&M^RQI>qc&kEbci!2=? z%)RzG&VIiPyk06t;I*%>Kk)vOdUo?Oi<n?{i|9{$R@#H_15ceF?J^<|^2%W&O^g%8 zBcoF1>+6C>Q%x67JKq24Tf!~KRj`?bx-YSXc4jaYb9K@}$~nHRb0{F7RSyLLNCGn4 zJEjH^*!}g<>)576(}&=PR*WBrb+em!n62jOj{SVkdPM6>hWjfD--Y=#q;xp*_r6_% zs4iklvX6+9Ua2XoTD2^go^RSkyb=kopb4n=HxNcC!YH?L=fp9e>cLz}ID0~gZ*v;Y zXxE|iE}v_DjD#<|tyN=^cfq-zuU)s^cd;0`^s3;e+*8Tftt~l=B-+QS0gP5URo^}D zNe&}c%ly3AIp@p%e*5;sHbF0t=nO$P8!&MA!2LJ2Gvj9r9rqf;sS~tUk+NAWCq2g( zo1x>Fw-6(JB=^aJ7D)KC_ba=an2m~>pq16sp6_)c@1vPIuFrPNMdq~|kJ>kk6$%1b zmp<QX8IXa1mAgV~y))sF$4g$W{N5QI|57e4k(KSVi21&z=qb@rVvl=)WwzTzYNge} z<;QXVY{E)$BMqP$q70rjy|Vwokc{JacbY2rMu3sE>%1JqL*{N1dqo2WDag~}VWS7O z3oP+Ftvk%z^k(qUdWkQv6AY!F+9;6@<i%+o=^U>_mqS`sA{rm?M*kp@T0G@7JBEQe z)hRKD`7J^JYMkkE%lCs0kik{x%HFODT&tb)r|W4DU;}_lqO=>2WG}W3TJBiav?Afu zYe37T<Yq*n`MIfRn2F_#_hnEM7aqCSJI(Xq;@7qC4mX+ut2xglm%cdxX&i%u{u+13 zJB7F?dCEu66?`ZNW?IL*BP`sht(>ClhJ2^8l0n2Z(<eFx%AtW?L8~R3`t_LMQ<ki~ zf7!y1R%AV`?A3UYLwOY<dcB>m6+|H#v}^VpN9r-M9G?PmZtROB36T-BYaEK)%=eR2 zEdq_Om-XbTV79a$ZRJM>9KwS1F$t=HM*d>96Oq3W>3RjN-tfkwF$8bN97JP0+(xkv z&ubvbT1fT3^jQ$nCdO-hh;Sc+DN9R|Gs<%EEt=ATC^{vGKGDqRjK(kfkF7^P)TnAL zydWj=3-r(aUC$=8vGU{KL*9K!7b>7K0~&^Jw{Y<vJ(BQxX4GWL@;R@59aT9xA{SNF zp?!4v0MNOd48i$PSWuf#{&JsrakI(D|KR15@k^Q{d#ACHjtv7AWyrRnymc2*>+$6m z499R4AjLzzYsW=RY8KX{>FTt><5k=yT@aqo18zX0wAXMv@jeQF#g+@2yy-rIrR3E8 zFJ^4teftdZ+>VApFt+=L4k3Ojwu<l~kSx1&DZlyn3y1)kra^dz!C+WjK~Cg>`{Fc0 zp6!hP_ELuLO_1d8K7z*%xygVbIe6NE89yg0E;7=Ad&j0gHsK3kB&l|F$c+5pCME!6 zR2uZIMAW!6m9nCPjymV=Tp45~P)4~D5O&dy6_TLHl3-Ky4!ky#VVghvcP7YkO~zFe zDM4{@7&O`os^Bqqqw!?X99V;yG~{oWr|!8xZC4buC;U9fMCK<f%U{kCpJw&?hi${g z3F5RotRyIq1OfTfo-bN0#Mb~H@i`ZC-b!nIb;|Jj1c@4T>^Q?sNdM$H8B!0mqat3p zCZoVkJ*y)h<pt&j!bH4&%bg6t8pd6AMa*PE{`Zqf5-bhf5U=6w(T@26l7hw1ZJ)VC zAn_)uE`K|%3&l?<UzG+v#k|~78=h6~tJbSq_3fI0UMtA7hA0J_{bI=a)ojrbWI-(f z*`bHM;Oz+tjc{F4NN!}~_P30Myg7qA3G5v7V9ttEAK>;mDLL2rcyTWmg^vYkEGX@{ z!IAwdO1oKL*{CYLl$)0*mmc0&`KSceK?rhJ$w&X!MzDYc;oPF%5CTQPM}{1h!+Gkv zb-K2n;AgV#pn$ScXN}~XJ9p>nwF9VQXXyOrCr){GFB*~yE-OWL7J)4u3Y!yPH)DYn zrP-0b)@?MxB#U?MZnGJ~Sx@2CwpuSh8_%26{@r8pC~uDWX?U*Eq%Wpz=wbuZMu^Ns zh|RK2ciT{6jgTU7St3U3OT7vM$Pf(OwgW5haiwvD-25xqLdP-8f@m~|SPh%CoGepQ zOOLI)HbdnGn(^BYfx|Fdk;QWTE2%+c<f`K5<w%x3U?1%0w-h&0Lca(mktxJD?|lXm zni_#kLFUpajLGJQaNo%<8pTX7Cjf+X4PzhJY*-Gy0y2e70Q&$VF4{1RDwxi#QMjk; z<s&{dU>Lw7a2BN8<KMfeCBAswFoquXt1sX%mz5To3qE?PAiW$G&%!LrH{(ZE>7y2e zVjry$>tqSXyW1V~EqsuTVhx2wQgf|j>b5~-^L2w#+&Dbu_m?O6Pe(2|n?rh{!#R`k zAw#QQnH-XO>J7DPpPoORQmGh=-ax5@q0p30yGkATiU{$k(~7Jf^LPejN8n&;Zorws zeOYM2$TJUD%>i5H$3umY-~<+}fmMW1Ra!DTZWu8&zUYmIM6jsf&_jp8*EPH}g9aNM zaDXYC>)K3PE9fO0hING>+!x`kLKlY7G?a?V(ucuQ&^m)!mq%^dtg1IcC~q29vM9UO z>q?$ZS|5t3OpGRPvjaPR)2Abz_YhbKjz#L9dRcR@a$chV;-we{3(AOq1e?JF#>$d5 zT4JmWJM{$<2>I82JUs9DpBUg0-7?xRO5!R(*P~%2GWc3s`xq}4zZG;UL_Fx(4(mA} zZpr_ZHfefjqn=!FRGQe)z9vUgAp&2=M^R=Gw6yAb<g)K38(LmA2pgFqtDQo^0A8J9 zs4n%QwgmWUlq)_NPkimEN8jl$c<`=N4=|1w?UAnwU1`HpmG$#cTNbGzlYIoI#82qW zvg$;uNqg{X5>Ys8Q_o}14Y>EdeT5}P#gEDpSZSXE47;xU0C!;4TzFa7{^1N{&IM$g zr})JmgaYzS%22ztU-L{wV@(K|^_EDh(0|h!Y1bz_t?=;_Zgv+Q-*abdm@T-n$$KuR z`-|F;v%ra<hH<ITt@3F+3wZHTak3|gBV+;Jx!aR&EKuiyuga13DTU(4VYX74loJtC zHvm?oXr60<!ZQ-8Xm*1)wVvT!`<Wgsyu0DNYDx-(+-Pk@wKf&>2>1gxa1qSLJ!zVN z902M88ubU(>hXDfyeRSeZ_8C~+^l<9%`<!Mul0H4>p?Rd@c$Xcpp2Hdd0uOFQCr!$ z&%edJ$n=+EKn+m?s85Odl>C?0;Q4N9a&V{}o;Cc7Uf^vbGNSnD!OSL0s5ZT43j_<J zy5`Ro2#-?aS`^`Fa?cj-h3(woL{mxdvHEIj!@*&2yOlzvqkm1641eQMHILEh9`XB+ zTgNXzx!a}qC_!TU*j@U;%o7PIPQblB)~pn{VatUfrA>aUr)$kfFkiC%DqEUvjaT=! z7kaj_FajKUDRVQ=frbG*k*w4C+$|3IDM8deWKmd_c-;%86kavptWF3cH&r>7Qd2B| zF&>*ozp|@Lb7#IC++){ZwK}U~U1KbO{Of|ji={0FeEW_WD{a5-Eesa8g$tq^@?G1n z7lTlIrIxlZKwFBqADKW88{cH#-5Q$RXkxPFp*ORwtYi%(pbP#<0`^`9C7x113Q*dO z6-ob^GNQ?=Pp+j~{);?evqOhU{i4(^LjqEtT1b<F1Pegb<9G7r^%L$pGvVt@_gjQp z98kS7#_cNmd9Yo+N!0zX?eKL|lZHIvsR`EU!~_9g_$IMWF3<oY3Z|Y)BhSKfN%TT| zpfBG4`vPD7lj9zNDkWSXFt+9h5<^OInvUA|Yn~D{WCTTQQ<j$W$u-Mn(oWS=HH^s( zEIK}-P`$RuBA7l>BM3XP^}SL75Kf7QUfxLzg2K?l*(S=C`nxQMB}FGb({ZQwG*zO> zRs$c@PJdaOj^a(~j6%_pj7Jupr0I8?@AjwTqpm?@A`|qXhs5e)@|C3N%qN8td9tsI zEN*Df|6BHc0omUNUkJ`D<{~5)e--QuWUW%WDbLcB#|r=ri2CgU9-G0&uBY^asY4@y z3{Z#s_8>VFpiOUpH3_*3%8_Kft^J-K&tus2(nrdVhzaxIW(xBh&Yi1rL0v^zng)Xt z(<R+sn}7igv~259v{FR7q;#U$K^zsLrg^=d93=4pd<4vA6I4R<vICokin(Cpzs6&) z6;Z$J?~|I)x-sFCdkfn)8O*CTfEz{`x{SQWsw0_(v1f8Mg#z1s2Mj)BE&0d-51fbj zf+v|-fq`$84ai{50Cr@@z8Z*OzJK$Inz-44jR1>~GQD>FZBPIUx_w?X{lL{SeDhYQ zgN`Ljj}cePa{GKmVS+AaZ}UFg?F6LyFWi8kS$?xpNVLY6rF%Azv+y$8#-A^_MhtaO ziXSODC6fH2D3~s6WBbO6V4zdPLf0N2=a(tYVCJOFAJQMnsYo31>{)O3S5A0o>UL|o zHd6AT^lo;KjHOVEk|F+(M7k-0_<~YZyzVz;1}cX2C!f9yQw>`4X?ywsp0>)Dj7O_b z=zG(Jf-D9DlutBmgF<*iycO`Dk%uAj<S!2~91?eQGeppfmW>@P$r%)WNd_`HU0Fyp z_h}<P+@z2Ty(EqIYx8v??dJwzR@t-$ypw2LEd(|738y?u3>El#f70m}*RxawlInBq zn9}tEbUEaD&nCZbk*2!TA<Fyk6$F4$#WnCjglt={M-tjfuh&b0RZH^7=!poMQL$5| z@{!YqEhagM=2YGAM@|fX5WVAzD?%D4r{dlWMUWQe>wWTr?%TT=3gs%TFpS`imjr~1 z|1*BRwE=td{V$XR{c_B>?mIpdA<=n%O|BXTAUs8uoCT#`R-B>7w@4T)-Mb&oHNT6{ zlOz95nHv-$mqMx7pg$<rbIo&QyofJ}l0j4D{G2lQQ=BwSg`h#6rrt}t7ZD)x4BxWr zoPrtMeZqDwnaYxTb#-MNIAM=kvu5upo6zqm{wIisB|HTy99cJf6>fSp^pC~T`OD+3 z66u=vui4*x2%+fa#T2G;<2)2iT{DZW1(j9XUAn)wsRTi&8a|wf7aYG}z&)dEa-O~C zg94GiwL($n?_IHcYq;KfdP-_?D`|(T{XPj@-0y!IP=)szjo#MLE1~8|&bqy&YpSgO zMMgENVOG8gvm*zxvV?YgL*aJCL^^Q&wSenCO1P7sP~YGM+gjy5aLexV^}R4$PpFdi z-|_3|-Sn8NAp*INlbXwEU9@|Pf$ZK^$}AHn9rt;;{&;v&=LEb2eSRsM{semEw0CZ! z;!vj+_HY^uGgI#1{_^yamGTLgmO_HB2i#JSEawv#hCfZ`DeU(QBnButnA+W~6GNUJ zD33m%4M$Tq2%m%&6>d3gXmTuE=(LRX@0gnkoys5Lxc`XN3k-B2Nne#bD!6U_%%A|d zTGf8<6_|6^2mzCl6>DL#!~fF<y!L^+K1mK|>$W>}HNKD0W(k3H4_BYPu)ZN?(UpZ{ zlQ<aus!uzRp}^yZEqB*x6Vezr_toJXQ}3&L;aP!U5qrvgClB+&FNVnMxdtxR{!s<& z*M2uto+BRrNsdj@_q#J;zm&u|$LoJ`!7q_Q!?ts6Pk<YFIRH*l1;%cdv>p54{?2EQ z`~3e>E%~xtYMN4+l#CxmALE5~A89D1PgGbKmHLnVqL}(4Ux?lMAJICcHi54XTiVE- zO)t<GQ~E`+8CJ`ide&@3Z`$D8MgqMSR?T-mrydzA5D;Z0^*X7Q+vvSzOO+Px8?R%k z$f9z%$iuf2X*84iM>Vj?>C8zHhy4#8+F^dr%RW@gj4T3ei(DO|4YFH3n5Xn!J>#W0 z`hI9F=7=H_vdD^v`N8yveka66E~kNvMnL2uy(S{=AZ1odwyO0?hD{(AOa%og1Yh|P zLL+9MT&&qlmm0~;{$Xnp!ze8qqymfkK5RkDvgK?)4}lrI?K3sYba|iGoW6bQDREDb z?<xi)NoO;^5Hu)k^fQ4uwCR;H8aY<~?mgWEdOnm<EsOhjbxJ#5k#5=GQ@8_C!tkpd zFKxNaYY5waSeR{4iJ0^FOCj?%TD?U4>s{NYTb$qxG{X9p81=y@??@-YFyf(PwDEXf zOe+K8sS``rZIH<94yo$1W`h4i+*^gk*);8<3GVJL2@rz2OYq<%!QF#Pa0@!P1b3GN zcXt_F1B1H{?l!O|dEf8**SfB~4%R-|efVg1b+uI0-FNk+^_E`aUhB=A4P9Vyz4t<^ z9f<BLX#P4lmJ;&SYb4*OpU58L>eH2nL3Gc}4@H%?E(jqLLeZ#)Z>hpJ<D*hfojBLd z%{$~lCoa3z*<H?~E``_GMsuRQWqyU5sz}wwbS4|gy;y6<Qo7nx6vbV-sd;oSY~W(Z zS50nnm>(k`vHgdzyRU7{153(!lsFv&oCG%9CZBKgO&ZQuVCAb_4Ol*=5jkQDvR&3{ z4VHLN4+F^ilV&g3z<W~jMkf*Er86pro4@!3z|N!m`s6OdQd*8kEz0!K#DIm}#Y*{M ziSs^`oSz}v6#a8=JGYXN=_U%fGz4Ry8QyJyOp$kICS@PrbxmcKRx_33rKuyTM?nzM zP13_aY9i668BvaF%00`4I*uil?>@7TMqusDV19k?*T*`9uL5g*3>xmKmqlTYu|j5_ ztIU|>PQ*lGu&@IM{);@4QeFOYQecw0S0ur<D{o5dR*4zQq+WRLbs`3X?zBv|+r&K? z81qr&=J?#y7<4pI^&FcopBX|};YAGIB+b`rm7n5!W-zZ*<nRGH9GN;Mgd+~m*#w24 zljfNpAiZ~8{NXmWx2npQCicL{$A0{7`Rq*dXs8~@z*mQn?f1w*;psu0XT|$r%L>4L zxVv<=8KJz{FQr;CTY`PKJ=W&~YWKfSjgE;kk$-pMZmMA$M!>vPeUfN>J{aVq<QFpJ zB|z|eCPb0x0P}@(mixYM-kE!EAOPl3177yx;)1FA@L+`f1{@VyHcQ5w26}BS63Jpe zE>*-?MDIf^vcH0uU7R43KR}po7iLN}%wSw@v3s&`=e<H*s;}aJ1P<{F)IbmpSyTEf zEx`%+1(4aC6YT7J5VBzA)G*v9$25_9N^I)5y|yH6BwkbG3q>JkkvL9)`P`BNn*_Oe zuU?dOwL8SG^P`s3gtD2UvOGfKa+g`<y3ZZ$@Df`+jk~6TzZ@JsMC5vEJ&y-MiXu_} zaQy@R&SU?ZO{3GdqlU4rs%&9~FWqD+Ll)z9rax9?pR3>A<tQ6?$NezeT_SRcpx<&Z zS1o1rS@2rDw*NZk2Ps`?2cMoNNYy{!v)T2$d1LW-!in>1Z>P`%lwp51Rywg&Tkcpg zJ6WcD7(?XHi<&}xBFaDT6V&ty`17S`LsrQ$Qab7|*ZqRJKxXO=Q2l(lFrR2NAnb|+ zs2TId0)*F-=7<M=WU!jMSbtz;cXJDI)0;{1{hn@rPxfwyB<-;dV>2FuDnGOxBXtC5 z*jL2x+in4c89Ze>g>64J!NH%=bzaAS$BNqbr2-Iw9%)~wi90cBf8$UlI0$-=*a{R0 zBGuOm8C)DFQWbLbT_*HdH3<KPo4xy^+M1^WvTY=EHl*H{4ie87kgB?v1)p#J?o}7v z>Au|MLGJ#KOOye{d3-I^P*_EFF$_JGTcsiBB{vAuZ50-U-`yJ#e_D(2GJCeu8P;5X z5__e>%3r|cFlQlA_`Gtw{`=Er$zt8>UwyBU>(g?feDftbJj-Oi=Qe@KMY+A4m77KH z({i<H8=9VfYB=mwH?lbyg*Z=gm^`V%gW8=41-PuEi^xy9A&r@Rl|a_sT37+1?A@mA z2EbXRXQ%P3v`9vIKPD@a6i6exKgyOg4R-TO)86@#<NnNA)f_(=fqT;Cqr~y~^C#X- z9L^J|9mO<rCeM`EI^Wj>EN`?zr6LH7##R-U=zqPlBlgCvU~~RDSw&vana_I&X+a^) zbkTl<IH$Pow7Q>GydQhr!N2I*ikNBrN%ye07|(m3cWWK<&FYx|g65@N^m_!Mkk;_g zzVPGm-iZ3zbF-f!`#xqa3DNHZ7uz2;Lty3juvN)6vV{5!p0QTjEMI3eH3(8X8<MHh znNb7NS~KMjM~&Q>pXJ&dZxhX*(I<C9fDQ&*tZe2d*duf?bJqZ=P~TnHtIp{%>)JyG ztwv!_PiP{H*{AQDZ{`#pDYEpBRWa#!#=3Q1U`kmr!M^UVX9U}#+#U_S>dnZvtQ?Pm z{2*XZCzQ%)SLdZo2=nm98yEIcRQ%MgajO}dv+8<K&cgQS2~}ulUcViYqBXaCsGPWB z{}utEG26eA&erj0ZqtioE3x}^rKA2T<=r{Fvwb^+`h?@sdajMR1${qYkqeX4t;Isv zoaO#}cCz3r^BXFPL{_Wti1g3mZA1P^z^zeER(tY+HUaYEHFrX{H1O>2Wmdh@8WUAN z(^|pv&2o)=4~cl0rL3k}H{quir$AzQX!1v!kj35A@KUw4$QeAvUjx*<pl$mVjOH8N zXa!)EM$dWI2xgwOPP}#P`>B_xy(!aC;GGM=S#b=^{H_%J`I>8`a-hf-Q|O_xl-=V% z+w?4L%6ihnp{r6AN;XjOugx(mnl1`ut@4>)H$kA3T`pv9prq8jJ5vO(l<HNIQiPF* z3!eHAZY7^e4ahwjjv8kdAH(LqedICu;^f6uV&aF>(@^?dI$6ED;0x&yPiBkuZ}CJV zK?KN08HMwY3<miy;a)yMNXR1}?4oVs8{Oi=td$%P2~9R&9&@{TeCSnpJeV8a#-o#u zf458Kk-;8Wqc1SvHewKge1kGl-u!%v3o2ef6yOB59huD6`eG9>Ylrsx9Z5^8SGa^u zjI9KYy^o*jFw%2ZARCU~^w=|FPH1<%F=~Kk`K8~tq>MO`=Sb>!7uwF_u{$koQA7&~ z!lkE2<PZIz8CvVh;GcBs9iHv$j;pt+zKQGH)D8~x;7hR<g<EWJWIXIMH!dHFchak~ z#8>NO>1rEWDqnUws9P?e)z-LicODxn58BQAxYZa8c9<q{CMS5(Cdt(KT)k(QU3Kia zs&Av87&(%8e<4(+X%5l2c$k4D{_#fpMKt4@_eQF8t7Q*p*mLGJwZG5m-Uj3*dYU01 zD{dyv^(wdZ0S^TU8`O%_lj;XVwcgOg4{Ta{TZZ{W$(30jMH=l)QlNu9GrTihXbqep zV=Feoc)2`!xK=utgk`?Yl#`!P$+8QWHRGL#Nq*m~6eq2oGcycI?M~@wS_^;I{?6UX z5u2F4Mb10Xm**1SF=st=!F~IC4n1Wt@9klKgb*!h&ixnbQQ;(GU=Bz;UZ7;x(HKgR z8u|JM#zxi5ZiXz<8hDNX;)3|EgIhHPszBltOhP-QdHSP9;ECrU0Q~31hs^07{*<aH z7im{tW~zz!@1+LBG4>~=F~74ZWI%Q=J&o2eIzFyKHH9(Nf{2vU-J$OmLf$Y6U}$+X zt7qB_s!}{%jCKDqJ~v*Kz$eEz&b|@=aL408fX{Q9C1G}_SN*|L<J}|k020!}%Uy}{ zsE#dY>Z$!n<@2FQBch8T6(LWpcQeU>!ZQW~w!&Hccjfd7Hn?lrgt)!u^al4;L0j6F zHT3qND9tRT^kZAx)+~cYP6{SooC$Pa%4`hMa9#>e{P*?;!90cg-N8P0^x`&Vbte!m zk%wJwF0BWe4!s{=fyJ719e|4hfQa<RhBi!AJ^fYU38J7>d^UDIM8@}euEJJ+qNJtH zsIje{1Ra$=!Yt*MdwrLME_6Cx9j=)W+v?*x2Rl93+GkLkGv^`jVb}T@5L$yi>9L*; z<*|LW?R$ekciI4XCz;YLwUD$qFp&8AM~o)G;*@(=(-;j*qJwD@siX@VZB{?Dw14Ea zKsX{u$O)@0x#oR@XiFCHR@4HssC}LkBz(!)FkLCHSv{x`X%=wa{xxE1W---T5j6c6 zh8g|!UMf!(EjB)VYo8ghH0JdE<3=>A{j@V0&VRZ%!SD~5a2^xoFvloa@6KqEWIL7T z04A(&ZmK)vumd&{h#TGX%XV__o|S#K{vqXMvQg9I%KQ5TMUq@Nz6?KE*9PtQ#-PBP z9jdRl+FYe7<933G%#T>+5ry%Nkt&{e=}v<Yp&!_5xeBeh#N+7{9nSj+^V#LLS{O*} zD0h#l8d&e=3;9#DJVi{0J<5RvjjnlHOZJ;t<F=CtA~pJrG<lg4mcG7tdEu`SqYEA` zzB$#J=tS(20?#iOQpqf}Gd{^8zxn*rf8ba!&vrz9YA-mB$W_KilD~RkBHiGd1ebMc za6zw3`Eq{V$d<d!TU~`q-Vc|>r`(ph{Np!`7<sN}sn+_sw7S#YOy<n|LH(QqdDmu& z$1xBcW9H~BiR^+`7)3>%K5`7nPbD<wklxV;-g?kbdSLtWbkf^58^(1V4$K%7t|z>; zx~*y$?zRV$?LL=IlAyBh97W8P)!Z_BB)nF-z>Wd+m)B(Ht&K;T-zu@5sse%e7{mQN z>hrTSQi^4PvWhOddwtd3AjQ5;w{QKe_UIq>pqTuzv|RmuOM9l8>eF{17h1iJODbR+ zhSjNX&}Zz%94cb3M#+574{}QYve9;Nmy2qbZ|FYvlR`EI9Tu>icK<@7q*TZ6QHgBB z^LEB!HUr{V*Xxnf9U^^gyADQ1hCgI|VGZARUym7EYR4p-)`;xg$N!e)h`|NK+;VWu znw0^h4$??PX8Tw+JTHpz#U^E)2p{1|^7NUt^Q?m@)v0^WhZZj1`#!aE3-GXR%};Fr z8*a(d_Eon1*6H7ikP+Zn`(vySZkC=V(J%urE%^tPgw1^<S1%lmt3*+|9e*akkO9MN zES8tKn4lEnJgRnd=KA_*EH*yy1U}p-BhyY9?8;PvBhNv>$E+p`TX)C@8HhCZ_vuyc zqmF%jcv4|C{n);neA6{YP4Mtqva9Wwbaf!!y>*+>v`_Hp)=9OC^^4b%KTl;0drsn& zgtpu`@P8gCt;`ciluj6g=PMSMvRgkRF{P|vlWXJEUTvF*es_364d3WdH}9bB0A84k z7t4-%*D6HA_iN|%x}cU_i|%^I73sb_J@wAFLfC2)DR)q|X??&<qgrd&F25EpsR_nX z04wy+Q`sgXY&)Q>{l%s<ZeL#;XI;ngQ<5dX6`3iyoCLvGzNSxIhcUIZcjxF~<E|?Q z>cTjouC}%9fDyGR`M7+q6_8h~^d{mgs(B%X)Nfj=dSBzC0u$NDfE<u#Zy!g2taHli zj9y%pE1FVXh9&C#K-Fe!#qisG?Q<{h%Ow%8hWS2-ZaOKtKL+tJXC;{0^<;Z%x$@>= zW*!e1{dIw8qsfWvzeFT>JK1CWejNVDrS9bVFE=81*$_TE%OwilRoC~Py0avDcH~iG zNm7owo}gL=-WJh{V`s#ZmU3Q-R5jA}2kCT)aG%(B^StB}S4{+s7)_|R%RZc*LUnNE zt4D#JbK=E#+AHq34eh?1CuCe$_6o}EzN(fEOP!9N9_X9ul||87Zh4j;=3#X2E&`j% z3Y_QjV6n)96wpMl;==iM9JXx<#cRDnHg?Nc9lT<66qmgm_M$*}Yar`3fXIh|gvmg> zq{&H@Vqa<j5hr#6jFX7xTQsqk*OkW3BVLp5{hcpzBwG>BPD@=kGCO!TF*tXRK?V_^ zT?*F+MML1YV3wtq3qon;CxS0a<OBAULV)6IUmPf8o9e;kI9kSU-V|eGVV?bj{p#d5 z1!z_1mD}2H{7l5>5S*B{KniZMm++Od=}y+Z9-vo_{Y$Ik+INwrA}CX?!e+0<8F#4F zBucU(CE$RZRVtoguS=fi8yvkLu%oXKbMyMW+vc$d@A{4Z?K%eMn%{)5@k8FE_j<88 zL=;#K&2;L2yBsBG*M#5}tr>`$bZW%pQA{ad;6Yr`d2F{l2XVUcu%={ztQ%O8+V3eJ z=&iLNbu@$3(V7}X?T#NA8}zTa9=PgW1Q4R8u1=IEdBO6_Q<pr;7ANmo1|XgHy~O!& zi_c(m-Fh(d758mdmzQ0)3#cR9L&iPJRSuN2Hx61x1j%nsKfaq=Y8r}kIqlMcW;4}b zPd1(f2LRJYdq1@+WWn0?>Q&l(C~bYD@!wr9)5$D7l~`cM+`REZFj{v5w{5XgDD!`F zKU`~an4`LCflw@aX&5X+z7W{?H1k>oFIwAr%|o-9L|ZH%8<mV-US$89buW+M<@5he z<ef^3N#QM4?R)68$ro+DO(i5iQ61OO3-CD`mbj_j8hnovv+v;N2c@c2P?l*ZMlz0& z((;4NrXr1ais#EZ5U-or6W-o7+nOI@>l?^A+`8t56T};8$TqMeh&J1yWuzleCDZJ} zL~R-$WdEtelce{ITwsBhBkRr86O{#uIzHBH9u!Clo1Fg<$`0PUc6k_5M*+`|Z^`wx z@!A0|cnnNbN{Ot6EhCqOx7hD0B=#@8M7e4%ctD%(1Q#?WszP+r7iJ7udVi1~TYT6A zfp_~zm07@T{zr<mySab|SmY&@%p9SbX%1{09T;;Y`%Z4Ci#@t%kD75#-|wceVEqjT zr}KB3ewDINAIFkxkxkKqFp+tX7s3PYDDS;R&oY}YC<a*NP~jLiZyd@6us_MyoNL=( z<)AkH*he*eH3YWVu{=6*RQ9QILNPDf(xUdQW<Y2+kKV&)w<bG@+M;9y>6QvfraTTX z#qr8?dJtVG7tzvohPnvzV>aZv2VLa~?1{aV)6`7SFs1xY;5R%k<B}ft&O!VwrND=M z2ko||H7G9?1~h@l1_O@8?NDG?B}GVyala}}2SX2k7Vgpy2j_JTA8hGU5Fv5kW`DS* zi0_T`V6;@jeHR`Dg>QH?I9IjWyv>*a$Ja`?!2}uaF`;FMvqQ4XB{rcNiNz>7qWbL< z<(t?uBL8on9}W?#_F`&EKC_Q&V?ybk;u5i<XjWmZ;KB#`y(r&QVd-96ulN3}%jb6- z+Pc)0n-Ca}aDhh7ki)nD;7^oqG$m8O+BD;>&txMPQK8Zq=lKA#GWrrzH$lHg>erMN zZ<Cl;1p9qVsvHzb*T|mp`-tZ5mQUv|mJ6#gHAW$y^GwSOm}tsm$v*Zyh)z=TxmsE# zG}9kF?k1#s=usr=$ST`PsZqpXkU24-?AZM`u9wH~LliOu=fRdQfDGA=_oG~TDgMQC z@%=*;IrTA7P4a_SHBy5!(882b96%TFO-)(WAPW}s_Jl}n9vYCw;ozB-b4M?TX?+7F z9<B^Jw!NsfpRR3k(<E4Q{TXO%>Sgo3h;>XVxfmf|CX=W$kao8DI0T5ylLZC;Am5)a zI?C}BxGiy%C7Y<}J*dd_fO{G~Pt)W2dX>@N+@uEkUPDe<Z=69ZO~=b`LB!)RxdID= zKfpmpCge-8XTstiWIM$QB?nLu7OJq?qCdA#vQ=dva~1uE0p^8i{J;o?obj%!_XB{+ zGpEai5w_d&X6xo&sARDEetkPy8Sv&SJ=9766Af=dFB!lR;IrLS5RYh6ArI3}FRDd= zu#lm!7Ne)*x_%ahlu+^+9=YG-$@j~5r=1@dv2gVsXuM@x)eA{WLT+<$!eJSdF;IvB z(NBvegPUggfa85sy7;*YarOJ65|YywHve@GdB?4}AutJpjMWHx6U*_uauVE<gU%`` z+7cWiKSi(O8z{M2Yb7zVr~(y~z4nCfKfUzC$zOb`K(+5c9UKd#H=nzthO#~a<fRuc zsHL6g5J_*0NWaRvxamZTyV%JKi`yQYRyYs2+VSy}V<y`PF1P{{s+1O6w{+G_HoT1` z7uDYRp(xrC%g{hdSTIw{k_DgurEUJ2==BC2R!8tc7I6K?v3oQeG#8T5JV@ApaYwVv zLJ7ozHl7N$Ys!99YE-Y$C*r7B%8oT-+i)=!{LeNXZ!-gmaK#|{T!ZDE6W<~RSL;Zr z?T*IVjlpX=;!~sKu%gFdGl8hW&vHAI@_D$0DG&<&xX6)rI5K1(mz=1+rw(XUiWMfu zD};vZQ6+AiGkuWf99e`|Bp`N~t%|Wqi%yvzDFUh6@j5V(^(`(oggjPpZZ*4+eiM#n zZ4Nc*ek@>75v2vLr<85|_*Rx&z3ghCR>StcI3tpspG{%95ec-WH=-~o)aWs3pxlvT zA}10Nzu^y|;rshDC=nqua)BFANKc<E5NH(VU{Iy$e^s`nS@+EJgyp|PmX0}dB7oZc zw)ea+>lk)t^d_h-&as5$c)3cMN^{~__d@9BHV^fltjioe!rp$!bq4H~9pXizKm{Tx zAlAfj2yYkI<l{bW2koZ0X8HdSU7L^s)wWRx_;byqk>p|qYB0GCOcXVyWCkiOLsFz8 z9X}y~D3K|!8aB$2jvXe7-sHz5wYG@Dy6;V{#9PWLGdb6jyQ7h+EC*0wr{sXiGLIe1 zb*l;1bo8Me^<Yf!p1hC$CVYTx;Y8{{YzK~8dR#;IKr95O0sS{6Q_}D3u>WAc8D4b9 zmwMp>Fv*@i83wp~#<>vd5eTbeM!W4UVxx>660s1FrkbA+7NNcF9xx<5!89dg5|I$; zw&9}?6{3oBIidG^-jwn!>4I|NEnM&&0pUopeVUXU&<-dW=$6=PSh4JMC;}nNZ+m_H zhYcJ2@STJx-m75Pk<(t9q>Bmk2on+~Kb9!EoW%c+pY$?WNFnwuayJ0m4mbE<oIWGw z&E&iSlv7IF*8+^oz#FhNC_*e48xv#$4e?{*6|m0UQ^SB)c2Ymw2xYxV5y3inQj($a znjSiDVu1o~jG&3~GRB`3Hkyh_WB68x_I@Bf4mp~YIfwlxR6hK|68utgr}Y7VacdO% z?Sicb$_*;&^sLe4=%LFW{TqLd5Unw)l{pTI#Ttx`<v|0Z;5N{@D{7UHQ&89?`ag%m zE;)D<RaKVBBNw@$E@h%m>kl|gL>+QjK-m+I&E6Ra63FG;q=weH&>jaYH1Xq-%H_=0 zC{`NzlFO6+S1ESed^t8w6{@n^vfc$lf*PtidiX#o#g`UMEb<re9lD|`DRz9j3lH!C zmjW74T4-swkxN~m;8I55jw8>Y2fnnCNrvs}e`XPeAD0h9L7kl69E|Td@pf-t@Htb^ zDe;=K!A!vr(=6|atE!KKe0#(9;k|?ICqgfsPOf|B7VAXC@jZNco&T9tKN>xmP|!Wa zuLtHm=E6W}kAojImv3Im9iE*;>^4OHTlbx#DFE_I@0n3^RUjv2S@UzJq|xQQLHfUZ zn0XAtemFiUXPE2X5G{l?{{?YCt7;J_qVR82_)iFZr)&~{{NENpmw5aKwtu-I|1eG@ z)PA6(``6d_=P4)k{oemZjiC3(QG8Nz{^$PiOSK#QnQFrAOPA=7xwD1y8nPS}98!>= zQ#ct4lI44SW_9cK_YLZ{r7t%iE8F_HhQ+x@==K#xsxR<Uf*@7}lN{BpPj>6Vm>tjk z1gBuS4Np2MPUx9Or#`J9=Y-G%XDz^^<5Fk>4J8m+@}I)RfJTRf{kKfzu%(FodpWSj z5ayq&*y#U<htcHOx(iAre2fq{PzwEA=*-@$q~EY)`LLqb4?hIwQyiSyOLx?`x@Ht| zC<^=rfhVt7veD`G4@r&c7)oJ{{i~}nTq%KB5B!7?)zwRT%>d38g1HB7jFW=#t^?g( z=L0m62?E+ki(A-_e=7BD^;5ZC>kW48Lgd+*gW1eM?dRkEh|YHSTgbVn`+a*%^+`ML z*{=1eVPFG(*iX*MrmyG}zH~&WCs~1(J4D69a~l;J*P7hL6Q2X=N$_p$9H8vK7K-FI zBCW88UmzKcJ;q#lV`JzR>SNuB2ZL{BU#pRO#_(vVv~AqFZ@-6q(sMdr=v<S&?vo<g zvlq<615<h<Wt;774En?JQL#oLwOgXWB;xUK8$6*?HcWK?#sXIt1t{Ku7xz>-E%@o~ zhSJNJqWGSk4bFP@v`V<avCYr$-nuw3zZ0;U-pkoA0keRj^;_($-SF^B&r!vz^HDT` z$YyI#gq6o%jI^zUyakjiPMz8DZTdN1yve=7(b*Dx0viohP(fdRh9+}X<*;AMx83zc z%xl{Pcv-V__(HxMvC*3-<-K&}xwLQzy)0S89Z*Duw6m_?3qPm$seZe4=GfVa=&a~R z<*u!^36Nfxr*zc6-BPAkYa!1UyfJv%SrDG|s^9n>VsYl{e`!5Gl-CcA@dd<2#BUg| zE3A$AUSD`rhz4Qm>j3PxCqS-kknEQY_tay~WW>hmccG)67`*nFJ%{hQhs7lZ)grH7 z=HYG^-XW1prYrvKQeTHDt9o+Jc8YiJ-VGPcn7q>m80bC99Q{T#8h3Hq0LbI4#~}Qq zzD3r5cECLJCfHmY`FK86jC!_s{uuX*Y%c+c&YKN|brodst9zy+NJIOi?^q(k_N5@? zT91<Irr&p5C)elxZQZit-uLMnI|nmYjhIS<)#wDl3h9KJ{y3?YB+P70e^EVBYjjW9 zs9!M@&oD!NEx5Ql=m&QbeoS{etdH;85e$UdiHB~>#f20Y?l!aC+s*lXkLqDlFHeAn zcKDXkdYOm;0XAd$KdYanpiABKR+CvkjhuORb#k`UOw_G$NAmCa%9(E7!A?%T{H0sG ztQiOzroI)r^_3e7!Bl=XFVb@+@lpTG#KCzjBCFJQ&GOPfFO^t5lQv>OO33@jPIs~q zGFp1!-|JxDYQRhTtw}?rOGL?9C#ikUX>#x&n5OCC%9>lVWdL=}biCK66mc%L(bAw- zv<6ae>p)>wNB*f3-_L6X(fTwUwvcb%RU{bH?iX!P<oQmg<^A27L9Fl4i`H7i#)I9B zHC497yRn%^w#SZD(Z=5HAD0Brt~SWNyj{1!q0qAL&Bk>*jdtLEk|k;kCF#Q?ZQLjn zUH(3@H{QS8{Jv@zv(oT#0N{w+(JhmmrG~*LQ6!M@@df5o_z_KCr<2qp>c*#Dv1G97 z#OtQsWj;=o#%-tJvzhTkw~cA`e4wyb!A?SLH$gq$tV!$Zx5Xa|UKp+4(yJQBl9YI~ zRzGw9jJ$2&Phd?^akEO-gDfT<^AHfpb5@x^O5JZ3+|JFUgQvMy0}e-p`BE~YaPy+4 zr@v%!GS7%tf~tsv4_Y0Bpxo6?<k7NwrAIaK^{pg?2EVvE;J+}jv^J4=)g-w5?3k7Y zk96SK48%3bW3lS%FdE4=kz%fKm6vX;MrG?!iK|fah`<qha1XciR3RD=?-@rg^Qd>P zvBXl{MTbk6x#rf)y)>6R9m608oHF!%G4D<av~Ls(SO-+cf5>rjTJbCq4Gqj45rBo> zKQcoSbjL!!NP|xdfm^;FRAwJLkYX2W-S}ilJ~CanalJC6DX0@{r$N65CDL|-$AMeB zm(N*s$+_fQjoM-8C~G20#>{iE`!(2=d@7gy>7ce9@;UQjp#cODY$>j4cJ^BNDKTf# zf72#?|LNO+mGY+S9$@}~ype0ys8wye8%4FZLZH1t1pR`}D@l6$SRVi?fSlS+1VTW{ ziA^w{V(h!Bsedy4SqP?Xdt>2ntz6rpG%mdzj@Pof>d#%revN`0R%&LO?qA9!;s7<a zNc$I@Q$%gAK+Bh?%S|eQ_Ak$jb;Fbw@RTAU6H&E0KDWzlIPpRXYL}XMVLd^r)JVkK z6u5M<@&!IG9_d2f&mLJ9i$xfSB5N_8X64Uad-E;#&PTtY$0El%yCyV%wBQ4o>W=xj zA5}T-5EJ)$cQW;tC&DHVDICT*TbVE)lTo#hQ5ZJ`?Q_oM%ga*s=A$o95NqrB305m1 z>EIy4gp&L^&C+)l-gvC|eJ)8qA&&;RWHiKLsTiJ}ArweTvXYXra5y^xZ>S2q<h9ho zmeW*azcqm=uyDhF;p}`&#P7zLd6`UIwvS+U@pqEZu<BDznQY&HrbK8VPzY^Y?QUcz zlMP(!IcVSeWDvOC$7g2tYHwNs)+!L!Xe1X=p54_V*l<`(8e_+z*KFC+te*}gUnNxS zz8<9-_lFm91(Gxu4_D4?N!f5(^=bPz1-%(zORBnt28PO`k`Gv`x}h9q_333kCGuHl zdp-o7(}fUHXjrLhbk=Po``EF+a{V02ohj~bUI3BtmZ9Gq7A%;!Ku<QVJ1#95kx@56 zV(E~6I9Y8%O3U=?1vjwXqz*oku~L-OmaktzD_>-PmBN^Kc}ZGC^D-oJHVkGpkpbMT zG?DTu3<2X~?7sx?<FF@eOt9ur`M$M-vR6h6Mt6#yC+fx0!8u!ijQlL9qW(@2PrPrs zgQhPy6w=xWO7{f0CflE|aSM_R9wZfe3go6a1kuLR&I30D?I_F#?uXq1R|3_lzInn= zC#Ej^l83OH6*(1a?u1QN=VLQ+_kGTKM!LEV0@!20z!vs5%Ak6Duc^v6<ET(T4ld3( zB`Ry$qanNFTUj*xwHA<E!_v=60AzTSV81OMs`93$w0X;&Ry-#Ep@jQ&UNTGItuHg0 zTJO}1C{jmO))~G_0zq?Hi11y3X`)`1i9`PiuETl+nYAzMyBYCQ(4-!t4y?U0rRBE3 z-H3-PD1?VKI}3fZ3k!N;ZQz#%6;tb47w6_lZJp5hWZ)eL<59Y>&j~L*qS(;xR<o;1 z%c<&o60R(xq-?~hYKxSTDP=i-I^6td*`{wAzG1)n)p)<Z-5!XIsa=v{bMoiSo13GB z=<7=1aKKAkw4AklSIX)y!wF;m<VKSNf251KUXO!ln8Mo!bA?9Kkl)@AGNsX0^q<jj zaA7i|mcPw*zj;wI^|w~v=abB*E!{9W|6;dN=rrNRyPt1*i{Q4LFnztC|72ZO@x<D| z=t$gKu~%(2T<N$p%6DJO+>wkeKFk_$$~XF@L7wuXf;JB<J|M&hW$KfE%3UB{s1nO& z>$l?=iK-P_e%}llU*3Y#^^{V_%v<*P2UX&m3Yno{17pX!;yR6^m)9p*Rg?yd2BP9{ z*(lD8iQF{Ml6ScVoj{6~A6~C|?Gz7ddI+9_)_=apJsu@%_y(L0pK#Ke=T}Pj_)t4J z)t9J}yvI#~Gufil2N!x>Po|`$<g}>;DGZ=FV{aEp`tr2xjUBD>eUYNJ`*pDx{q*hC z0U4vxPEK7}QSGe+X6iu+F*$s`cgHXd_uOp#Fm@nAt>7NWK^Bf>pz`J3?=E<snuZxu z_?)kz!sGQsp_@xlqvdV4cbG)JcUM~6&GOP&^EqGz2m~F;xK68mi(vhRBh2^gpMPmD z&N>5oB|nOO5tC22MF2#5%40L?`OKv4gXqh#7Fubr7BD`}Xc1Sk=Jh~&HbY?`E%kKW z)ceBy^w7+@ZNw!wCmKkI0cUc<?5IS4$d&s0>|9;_;gbj2J^LpzC{3Z!CKtC71Nv#% zH_lzX-)?-Wz9f-X%}m2X{m4re-VE?pXcUUdH7`n~IW+@fW?BccMC7*n4<~XF8aXYG zw{O|tx|4X!{#mJ?c;UK(6xzHVuQe}C9(OdLdAE)lsx8lxWN#O-&3X^4q;DQNH)E9T zCAG~{>vjQEp%pq+9r1qQGA|CoIHYdt9*(@;I?q+`_$^JY+#(sPUok#Z>7mLCU2pD) zK2bim>P0+};0k@{nc5rkcsG%>_yKw%dx1Giv+Cmkh3I#VR`4Uq%>=p~g3ko|%{8~> zLH*9p4@Ygp41$)V(#Bn@l_XHMlY_d$bjPFX<k;FHkS6(3`;=~#879pxADovd0iGX( ziwB{yfARC<z){ykzuFW2Geiq%u0rvc-TT!^#~cN#KQ@uzsppgNGjf}0EBP8>B1#AW za2l)%+6?q>*bodmxjX&6^#fkSvWDB6^xATkcc`*lxjtbPK>38Pyw)K`AsydxNZ7P@ zh?G*OoKyRZsCXUd9$Wf5<>un}-uKs$_O2~~{ncFw<F^IyS)-^>@Wf1w$|BrduymKq z0`Ky2!EG+DZ4$w6f_cB&f_@Wf8w1h5x{f-91&8~sWHH%467B1|86Do#!jK4wN7+WO zNgGumDgF#t_R@c<17M-!7bJ7qN)oZF)Wh)eb@935Cs)RTkd=~DjV+B$JNFgTyGr#1 zUu_Z<o!qw1b#hU+c1&grWnW1ARz)m-I@?Ij<@}QMc*l*`_-sM?!|#@GxyG2KC?+bF zB*%B(`D0iY*4<;jQH9XY!W9m6kKcNoW&%Wm+()1I27>UYfw_YrI6j?vn?6E`oZMuR zo?T96Kl-{YrEgyJd%9EIHi27Yrw)52_WioLbQ8Ol69I>rtn0M8F@mhf@o6(R2(Bzi zzcSqqB-R&OS>ga=S2Fn6urK-{a^K?FFvu68FTW+^4tfb8tf+H08y>wKn#``VzS>pK zDWZ|_)w4^7GKB?D8q50c%qxAq=3xC`C|ec!1wHbLpBpd9g>sk%`%?RkF)l7=-5gIa zGebP$MR+M3{NgRD&YBh>=O~VJb=z$ylGyu}VV=_W9Ai!RYqbx=bXv-|6YftJw8Wwf zu>q9I9h(j-?YG)v)_N3OV-7j-y+dDa*8!6;9k3v`=r5v*<<fU|OWZWf{qv3ajjI@p zK|x;)Ex)M06^41e0%gj$z&jHB5?XPm(^8KNTjh1ivY)^$-Uzn-tuHjQsOR@&17~}> z+P|XajRyFbfS)pn^7EW!Ao%^a$Btg5R=e5n&0er9=f-b}>?Q2%znnHIAi_3>n9IjV z=eCE*%WO@mxAJ2Z2sMy}clC!2Tg8BFKHPxTsEtGFL1JUk<!5QU{kcYKlwh{tO5D>v z=6EmH#74459FHMqud9p6Lg9!#E5Gkv$qT~O-AaCYG+B{n%a`0un;Ih<lh_|<^ol76 zhXa<$Ww1F{cpP#N5P6QOF#;X&+>u$>eWQF_DH&EeDve~@2fuEu5=RV~mbYr46$x;; z?<r9R?z7K$@%Y**+-r8O!is*Th(BNuQjhxNA^c#=x95UQkkUE8^2iEkN?HpxuHb0+ zIvP+tU%ycjzxtt^&HZud`Yv`A?6c(fSxYckG85DOSY#rIR$^7oz3*}=_OI!;q4Gc0 zyuX6*sRHp$``NpX$rX}T=LBunYcUQ5bFg++<i8?fwpw|!`zoJL$xWMC`)KV&BKx~x zLk+krHZL0+a&wq)5i!X2bx9;Fj7FO*>)M_zycdt)K~KW&eiE-)w10f}j^R(i)e9q6 ze#WOX<?ga6>)IH5=>;xuI`ke&-bEM(3gtj<!F&fs-S2+p3R90)zs3(@e_lG@@0>RL z432BQmpD>k?V`CA_=%mtq)fJuasTeyYdO9SN6wE5ii68nBy+@-J%JiA4N4FDB>u?x z(VGkOJbBA`ALJIj=2iH}31xPBO~%P2<;MywJB9C-I_n+IZM)7{Mf%)2F4=+0k*dyR zW^f*+>!S9uQMe;=2~@<6{{FIAzrVXtdf>0klK5}J&YzvP@)5fe(*e*66cCMk^d#cM zU|&Mq&L)`YEUlbW$$x~(0+VdTI5y?=yFO9kch9?`q_58Vr|6vYDcpa6RTO*)MqGQw zFsm=O99<5<e12sA#o~+AsB{}x`n&0Q_fmSagQF01kCVoEoA<^XgKi#(Hl5uaBf@5q z!C$(xw<(rI`hzZ*)}mKLQok81{|J^dk@T$V#f*xvgzVr3NM<RyFJ)4u_xLE3{L%ZS z>ohkC?Sn@P<a~IKy$btL-xtpQWbnh+e0XkP=RnJ?h}1%cm*dtOO6$7u*pL^y^FFnM z&6}qyXgcjY-iDWBts|>fR<|7?n1>o0S?`U@vgy61Z;cJ)&~_Cj8AyZFyjyO>O_e+I z9_wok92JD8dA<G1S`bWqZh7?mIw=TWcIgyu4z)PDxl7Q!I!k(wv_7spKG-3A+~asl z=9TSDmOjkPmc1B;xw;0p6ZG@vfBo@!x?ZWm3peJ)jnyi$obUQr=8lgQDfx}E<mZu6 zcN+=LHeJ-JTfgkQv%I&V6SrMt_Yw<{qZ9RK20PoA%W@xUE8*COZ%aNc=zFhnA(w7j zQ$h6QvfJfKkEUfGZ@X_68X1=w3DvsiY6=93W!C^Q`j6_rY9p>74|w3!G3l<tPgEVg z)1;9QN(#yC;rkU)uRo(ia*v&`Tzx4Q1djXhBhQAUj7uofiF37S2O2TUMQ4Q^#6ZUy z2Lmj{8<9|L2V4q|yS)^0o~Fl1AME%#;^n7}wM$i4WBS8u0{5>O!eL?x0+s<@IoEOs z<6&F~P5k`O40hyqR5xbJ$yQKz9Ja0gFfO6zzC~w$=s*#V`?WfzBL>|qg>oiVJP%L3 zr`Q&&d6L_2gUlB2CCNugErGk676ZC*3B<b_Rm#BOTePe!M}lh)7RbStZawS9L0Y=Q z+FPGnZmd(lkdNVMrtlQ!>yu4>IM_FSH`+ND#IjlhWM21`3<eNCO`gzVyTR-ko=TC` zTYZtzO=o)t@Xn=Ag%)`EaN{iV=RHbHc}$;#8(Kp#`ak9<2)e>r#oerW@o~GN&lPAt zs*a$C4I3xWpiFhI#fNOaa)HN9K$nCtES|A^OkQ;$xs-^+YRSBt07K=MtVEa9w$4p^ zELxerljP-y%!={nt9oJ~R4EQdMr{5pl5~2si|rZLSIu2v`V<HnciA$pKmA?X{SDcS zVkIk41500WTJv!KyoZgQ$(k|IBHga$!4dnf3zd)u0r!tF1TB^-L<&@Y-i7Xh#i1Yn z=V~ZIaQEM(3VN9Y@Bhb#`=v@}UH7j&ExAa{{%sDn>Zw2=^3R_?hw1)S8(Q&I#}wFq z+WLR=2>)NXkN@8v4v$bTJ)Q(#%PJ~<;mPcXj>g!*$DW#WaCB7F|NHkTS;v8HIN&Q7 zSQJUF&t$O3XiR_I*HLH|cnVeU7)P*3?d^0lBuJ0n{cAycG&x;s9DfCWq9mANNGZF2 z%#A&DP=!f$b@O23@Fcu-O7iEsakF3HagScA8VnYfmRgT#X#~h`#9=iwK;vQoP@p2I z(oLrsK}6vt?|8#MChiBGeZv3<<$QzGlfO@mS_~$}+`5VpuJ%%yp93y-CJQF7#%Sow z`a>$UEXwTx_Ghe+_c?}-nYf*{(8AWx@By@p<`W^ls`Pg?%oQv*45$_Bu?Ow2hl)u` zD8b=pwRzUfeD85U!0j{UNzb+aDz2!=91sw&zPDFg@K>8!s+t*JvIx$B4Nca!zS`Wd z$dX)4efAM|QP`c_o4k8ASUaJ)=y?hf@~F^Te+mWyzCzWD#Oe*OL327HEwNluQbPG@ zVBXiB%nuNf#;kl^Ib`|+z{B>B68~Pw@uCYAtvV*0LQiSO3AN-4TO&Hx*}8k=)RkOq zxX1ac$R)*`6uVR>csSVTyg+?q3s}Fkzt=Maj|~Hk$8(NVze-B>%011^`?`&X)M^p@ zk@wW?7*ybQh&<St@=xf0bxfdf-15IFrsw|ub;uC&cLya93At<G?Y=8j3J%(g9@%p6 zX{!;z;*{Akcu$*<II|N2PJXlAJ<^)gY5{NL8CvuB$mENc)ntxm&RF_aP?D06Ki?^N z#gv8@V!g`%RvOK~_s0)=PGJv~_HHXivD&#lxa^5M?>J+y`Os2_N9rG|s(J^Bq2HQ{ zXiMN)gLTF^58b-Hb`CDS`0>wpx1^H(%?6luqBRCa2V6!Y<~A|@BIkD*K756LBoJJm z&X`coIrSP6rfn0KbnCjkH5J2g*7dBekVX(CpNL1hGHPhwXO)1Tz6F0b3zXt3DZ}|A zNNntD;J@Ryps0v3-4ir5Ma_DAe0=doYi16rc8_V^_7iLJAXnz%;OF<K+=LNK%rY$5 z?nVNECOQsX+(gvGfO8!kFfRvOqXJ6bHiMhHd?~Zb^_`79al=w{c6?~DH`wtdN!#Ok zfbtCt=|@!oUKEY!>u<ganAq-4wn&WGBVD42%<3zR2A*0pbcsounwDr4(Qbg2l~DWD z@qRCwucmw_>6DSkt1Q#u@NbKMoy}zl;D!3sFg)3r2~sGZ?tcW$g^Z4>31wD%nr1k< zwBj}f#c{MHnyI)hj#tAx;InH|{DMKF+n#Np<zUA`CP(;O_c1I|!23>|x`7V3@w3`| zxifdvvuaZL`Ftzi!RO<vfx*3L{}AXXCTHq-a02`0ZJez}<*$RmsP)?D8X6iNj*gCT z$+@PFQJkp?mX?-cwMsEfO?+mj2Vd<QWv}bzKm#{kjN^fS`fmTxJP3lX6Q##(m%=?_ zpmpkGl7Semj4wBKc48iVD-)TEOldc_8LikqA87bw+^lzs5JkTU+kzkv1pi>P5f!G1 zyF3j^Npvh`xBrepVJQ<)Lx8m&hCGAom@f^8>3BDg{&iMu^+%t3TY~_auawyx$gkf0 zDIFnYAi4)vLuT>1#{rn);3wp$MWwLt)?N4GZDl?}-^9nB+K8hNwfPH1m1)xy_N^b) z?tD@UtjMTWJsG6ZTR0}ds|knatGNO;EVkbph5{ZgP`nf9m}S6mv^ZY!Ao@u?5v4hU z=X1w92#nu;g1~BZGn&^m%cMKQV^~RgLj#XxJ^keG-vu_+97Jdg%*<cr{%UfEf%GzS zH7h1BEW1&Yu2ynzWRG_zfz4`Z*%E&fEn&>buRaP#jkY4FP|CzBD(!E#S{)@ynh6?h znHmL)VCdVpG=&C{@%NZf`%0wAJ3i07hT2~)ckv0gyupg|@v}iN?ncMUulA$2*QX%p zeAI=E3}s!oFU(SQvPg6DF$YLjK?e>5S%P%Yuu7(Q8>`GwNMwZh88LeLUtPZzAiN~J z%iqRR&pNYa8fafC1k=oJr7vq2Sj^^CC|b>@lu2+m47xaTeSZSpQ#W;V)J8MdchN7Q zo|{jMhRV`-Qfe+PI&2RbnMEY-FU-!*mz4b-Wj>veZO`@aJM;Eu-D<62Fc#w%057dX zz5I4oa!ZZo;a<WFu$Ww-Ub3$i_hF<R(!u3BY`f4#;jxWh=k8nMU+-MXuuuKIn1UEi z#mp3cO3(_UeS)CP*S1=xeE-6Y@w<f0Jfnt@D2mTj*TXh`=KC^+a>1Z~w2H!&>yP9* z{nOK6>x3^qQv;@_J$J4R(WqXI2=;p<&L+PZco1S=vr@5PQFl`hj*lk=qDC_jL@diw z3q!ClD3xR+eA+X{86b2C2?>Lb7)6B}+e0>?Mqj0*q-5m<smikx04DRH>wU=O>Wj%C z!^0o>4gM~d8*DI$V3M=tceFHH`H9ymy7)8xk&yP~ZrrWM%FNKl(~N-I!ku=VUbcY> zkgqbqep+I3ps{%U1sCAz$g1sP!ASSo3PWU{XW|2C0nc|>!X^@h`O30|r5tOCoPm?- z#0PcnvbH0&hyit-oL+nieUT<@eo)2RSKURfDLYpmNPo4i!I9^@-ZqE@h}xA0J_fPh znI7W_c}a04Nev_7s!|Tnz0H-gIs(mU@7X&ROj)woE`Ez7<)wIASm+ch1_z6Bak;Uv z;eWts-nFtq4#1=gX>24kA5D2TLGAd|#0~Q<0F6cyJ3ID!DyPLTxWB*uLga7Db9rC_ zk$<$KGfcx7mN$`#(i3f=DQfQ7I7u$uJuiP)zMEEklGUDTQx9IQAa#)_0e{6XjswV| zB@~l<N=Uvj|D~79JAV!1@QFXQv71ug?wD<n&fIc#LvKg7HHr3a<9%_JxSW$TLad*- zIxz*5n!Li3g^={R<L;pT)A{^5eFjxaPUsLJP&wuM#f6hcXrOT7M|e?DQGTeJhq|zX z0&>o8WyHk33#pojiBWmCwPWMpFjmS)OXsz;d{jzKPLG(%m+946WW7K}MU{}3j}S_I z^GAiJR7g|1;XWJ6B)ZT@FZD%?hin7sAE>K-k;J%qE&8KSFz)Px8cH%R$IY9FAh3?2 zsO46yRse&u5j}-I(e_bRQ_yXP4G~D{6L1?N@Hh5$q4W5WcdTYbt(m2;({)z>;IaAN z!XQ}HlQJ?wvCngsZ0n}3JRSGuh^{A3MN7WtS16CgVkOJV2^w>+f^Fv|BXZ#n02oF~ z4Yn6G&<uy){@r!-ng$`@+TgMe7-_NMvZBBzxi&SoE(l|Hqef`l(b`F7eu3w~Yc`yt zd8Frkbxs)7^EPYj&Z@CS+|n6%x8pw?z8(xFgr{!$MPWY-#-CR`2$3g{q1Mtr#i2C5 z?E~m@r7Ue!oZJ^gvOxAu%Q7q}6H^qGv}p4>B8lTeYiiWEcz76ezK@nE+#$jlZuCes zZT|>H!bJUagO&jR(5tbwAju~&#U;zLwxi+FD{kh~he2mWOU=mTPL7>0qFKvR>&^aN z7rssM5WiI(Y}S`=G^<U_$e>nr6J^laK5fs*#O1k`4nx-Sy=ik6>x&J_vk38gn{e@C zGdHhsj0KuVo6nDH?~}Ce;AQanQ*=dZf`PAg&=@(jyUj6P8}-GHq{h><Xu#f;$WFo7 zT%<G+F3wqlE}*(eV!^Jm^9gq^vOA=;^`_l>>GLw>T!6AGKP94)<Vsi;LOi{4w?70? z005oNr9GZubL;EzU4-ck4m1L;R>t{!+m_&B#_7D?{22x$C@k9L4H62!6Vn#+1AQ<z zF+Wv@vNsuHZ~3|ikk7U06%_FCZf*sz%@vau(wD{PlQny@^De-axbf_L5YlfYZu%l* z!Y&yYY-E*^QB+&KyE9`q@UA$<<4DoKr3&QsJY*7peLUsA_)DNbFnuDxGPK=oi=nxj znPh9zu2oZ#7m6!=CDDCDN>3+d^S><5>tWx;zkEp)0{Ew|U<E%t34K;qH-g4ZE`(50 zQ&TVQ>vforVnW4&>X3{LyuI7JJI2PwE<DxLezYmyowT0*Ia)JP*&h^9tdtcLlMtiz ztCNp~jz@h}=Fh&5D`7msu;;#;1&V_a_BIGahBbTCtH<Qaz=#95qXZ3FlvMt;KI704 zXK=8iUeWM575T%7Z*TE^rTu4!nXno4?SG#dJs<mLAIWvWp2B8~XMEfmJZ$|(u24%V zF5>^j?%SygK=$4y`d|0SO05<FcP6V1?oHK!u-NF7=cFbt=@Nf`xHm^E^SY1n=97tc z0yj-wF1@b_k>p=%frKA{T%oE{kbxlaWAKj2>`|teWbcQkhR}bv^#8s;kVEt8#;+{` zv>D@79eJU#kzBjX&N-JZ4o^dZv)L&5R1~^K0R7=(yW<miOHS%HOD^pM{J-t0{ogjC z4|7vfQ_XdajlDKJ5@ZG%8uYBtu3$@5$ov`_iXZ`p)VFzZf?;4_0EdW3%fNsnA|j$v zI_uy<zIu;q(`mcuR+gLldQ3ogb8|DHy||R1IJ%C?+={6!fmwp)n6jyKALxF5XlW+l zX13N5xXdov-9PSz`5Lw^+ZUdx6$N)<yAK-f4y7jeWJ1PK{h9jG5Ivxnj&@X{j8rwP z8C}qAJ7@eo$qWJ02P-wU<?^5Sbe~PV0m6?QD(0^O21etbUwDx7C4_U;)c%;4Q>lLp zv}1#6O(uf-7`r%tQgL9nVJs{f+8eB?0~~P}Y`(LLiyyEkG_h0xs5cViHU}Y#XK=U} z>j#424v-NL)yD;nHxFoZnz5HV)(qL+KsE$iD~I*W({<--Vg%fbOh6&_W0nsV;_fqf zr^0poTtwAIE>QKZ_XR*&9Mn6a7V}9b8yK-8+9!IFYJ@&LKh4xh2~tG$4;8JO+op!J z8uzU*&BjgraVX?bb3$#?b*3CcRK~jc`XRqiPN+T?%flf{V#4wAHjY#EEFir>+EZrR z@G1a$aM2$B^r{AL`fZ6|%VJGu59sl0Z1sbswLoSFM^7`jUG^_Q@@)n6r_YfxX}-~& z<!Gumf7}F94*XD=tP`nJF>l5=EV<I;%^0EL@nL+evTcM2lG${c^in9WC2p+`M9tIR z_GgFUml7D&`GLwWpT-Pe<yoavRxxZA3#2mZm>E3q)mg{_$4!+2kdro#-S^zleCueC z&C=H-d=5zzF!8(&<2v{Wk>%<0xsN$*7Bv{T``fX&A5qFaM%9rrQiUMfbi1-Ah?OC{ zH9pC>PvKZx8)AF?ZsLVpY&|BKT3lZ^l-a|?K`Xo(yxf+@?lqg3LOkWe_JMb0yjPA& z+<}A-yE{m<>u$u)F!fus8Q88DF<(D1`jhM5c2=qWbyc%7Q44rFxHXWyln}mzi$2*# zG(}i;jt8R>vcPJQ`3XWTZ`*3f92zgS3RZi0q%^Gp9VZM7OoDK6Dc&OwkMT7AP;5GI z4Dsx$os#-2q}6fE?2=tr8o)~FM=?7?Xj0ec{mO|)$bU?xp6{>)NmRcb?b1R~N~K%= z4zkzL^vxCTH;w87h4*Soz?UJCdm{N+-n%{d`lgGy2<&afi#y)%0lhHfixYt($kIzy zsgtPHR^>qbdjgY_EB88|OTwpoLyn}V#$DA0D4?yk35QpYHj$qfKYmL{Rcj?A#R2?$ zQXrJQfN+iPO#MPxV2Anq{M=X~q!Q6oS^*4~nr`lI+(-vziHQ&IsD$tTycE)ny*XVo zJU#MTC#>aKu|UGO5L@LWopKyv`hS>vtEjx1b!jw6kl?}H-QC@TyL)hVhv05OgKKbi zcL?shxD(vn&r9;Hz1AN4-)Eewf1G*26$9p+J-fS}daA1X+%)g@Yu0<TNRu}Qg65Al z_Y}jDJ1zPPu8eShE4(j9xj8OkF}hW6+iQ!4>jWD;K`_aFG~+%}eTGlv53jWw3(K|y zJKgIB_L0tt0(aR%O&8;g_ij4DtYKE@@Rsu%Yozw)sI*3j<hjYuIQ%pV{(0kg8<Soi zCU_k%B7D5z3_UZjHyrl|R%4D7g*GYCaUv72ZTc5%U2@ccSqR=~LUxOa1=7VXnXmRK zobHI-zh$^0pXOp>bEVxV#;wODzMr3*5*@wjvJyX)uWuoZls8#M$Lk{MGM|qWs^%Q? zclNw_o)|r!4XtkkMY_A~>l$}}8}!h+ISnVPd)~#XXQ_hn?fbt2gZuOgN1Tk8>WTLc zMYx*d^=CRhQ}x-b5RJ5x867#9(Mk?Y0%fTH>~Fa^NQ4DwK{G4(VX6cbY$ZOv$3dIX zhh^_7e9XxiqS2Hc2Blmo@Xbd<_1egR>!9ZQ`(9)-p4H&{o*%qqM#@1V0(x8O2dAIb zyguv2yzst$LqFHntgWf%*3p2Fofp@45F&XF(2@5b0_$I;DiJ!q<lnw2oF^!LlzKie z<?mZEb<OF?KYnNYatR%QESu-8@3rG*Ptb@w&0ZGTJ~LnMOsD$?1Q)HfZ)_{er_o+K zLJ&+XJ&K_>F}&aC+e{6Fvi!gaK?N_Lq1z+$u54G5?LaHnd})1dVq)y8`a%W!QHlJg z<d9_hSMH&FILRSuZ98Gy9!NO`kZCy2wkGsMH}`zsczxR3@KjeGNnRgDD7<ct3O(~x z+z0fh!<R1rjq{rq{hV%AV>1%$6x@G+mjtZ&JEICgaG=R^f9JbpyPAZ4ewd|3pe@NH zFV6S;nXj=uMjUy45FdaFSFw4Pz)hrB*$wvg3iZ}z%BBfejY`Yp4cxSeXe~})2wxYy z-whyiyO_|+9cU4CahjnUZ85O{?8JXgeA8aJi8t|TYt>!clKA+xlXmguQ`Rs0ghcYb z^EwT@6INWMxk!6T{=<Y=6Z|)Wt_B)q+=i7tu>8NCA=yw66b3%qhxo3w%WVa(;Bur{ z+pBCvxqY2ac3Yw2Fsu$F<dD#)-rhY4Nt#zR9^<6XV$KkVf3LW47=i1zld7mu_txjO zW;*<6;fH=?64@+#y5>7_3a>iT#y7uO31@lTC3Oq=;=7>B*sxlWpoLQWKGJpPkK&)d zYgKQ;gk+*8iCMk1KqZeyR#kAd`uz0rs-MCyj!$rY-@UOuzw3ZAj0s14W4Kjp4Nj~( z``5D`*fSH8_}6{GGM5&CfKO%^(eJIjW{-tjestjJ4w#vZS3iHSX!;t=zj8&yHNW;P z>`QnpITrtYEmU;dHzTs$)J?b*=QH9A=O^Dg{@`$Gyk3Na5SjGn^^^OHo6fGRM9atH zyv`mu{6{E*P9MZ8T(Y2d_?gSRojYg2eeJ=ksHBuABO-!c0i=T8!Ngalod3iH#jjF4 z_ci=@zIGM8#0WBza|imW?!w!)-U(Zw`i!~N)gMnzJD}?Lh#kNcDm3t&nGX)L*+DGU z33ic^--nH5c7fUNLoMD7oJ^4|6Kwa6^&Vve2$xY>%_T4KT)RSD**;Enw%b#(yqu)N zXBxW@TX{rKaYdjE(7i`*)>5RQFVS*de09aU;6)J&;twGj9Aj~^R3DQvW+Ea^{US0! zC}o5ijYHG_D4ZxUVjWn~>o4z%--K|bw^$G&yA^85u;rBq*V{cE*@jGd@8J5eW2{6} zG9G%(4-X3CG~RJ?TbtV9Vsdbfp_FS<egWLul9!L(YVf+q0EbXVA@r_>RswUJ$?A}* zio6uQA2n(?SG@H%ONFNjVWyO8cX}XmaV-euI!Z1T50rt0@ysH@+zWs^Qa$dt(#r0% z%nPA|T;vR#@pa9NrROUXF~P<)`FZPGbk?@rsI}WUq|wIEIqf^N%^(*W&1z`bCbxUr zgENbX=}Hx4RA*ktH-NjjKUNR;ZrD`Ut#75Ki-7FSnCV{o;faf-NjrTxmtqu(!Qk%H zVU|jAJUVkPHEupKOp46lrc6P-&5ec3gNi%&ivk}TI%Op)TAuL&J~N=W4$W4jn30fB zK(j5|4?3iS$8VXRGFVoUiKnE>-8K;@5JaW*mgDk;&j>o}{&-lNtk<Jwo3eHi7yLe= zBI~ZiBq{Pi6YxzN^Z29&CXo<+AcoNW`5Kby%tlT42fM+2?%UN}T$uM&zt(kNZrY&L z<3E?Ar$N|nZ&jO^<M=1Cn2Jw0vZl;pV3(FjC|~5+A4TSrCgvzYTIbc|VjMC(ZvS*S zdz6-m7(BEj+XUdTy6xUGz-uwo>HGdL+9CLWPAk=ykHm?za_)=pK7T{^pBaUMIcE)y za^UmFVSz&HX>3Lm!@<U&`%87!=;THsDlxG2ac-Y2n<_jbBF$<~Ek3p{=HZcC>A%<r z2-gr+J(C&<O<n22K?4jV_`|$p7>G{JhSQE>s~a)!!wAt0)%~l%s^j>o;JaCKw%qvm z7L@$jHEzsq?ZwkO#Vg}}q!Xi7k%$@y;ja#2GkuEN-h;Wj6e?TSjkc{ViJSRKTk8qf zXJbKGoR+w;a1=FcO73;DjQa_$=cN{YvSg8u%HBPp7a(t|wsWR3UN7qOR@oh=%?pnP zAZC^dnS}O(q8T21>Zg+abR`dDy9u$xBdUF}IP{8j>#ajWZv$eK=^edEqw%O};bjh7 zXkjUaX!_B`ofq^LzkTN^#v?74z{>M0tYykS^0qT2<l|J_jg1kywljkjX}iW-UVE!E z#1#^HMqE%^zbLWrn%as$T@5C0BI;8QaRqj+mY<p{TDXo&Zx6A4>)Z5E9z1s>g_Jw_ zR>B$=+@A`7u_a+CC@E5B#b_nmd$AIFOJPPD<sVs%i5k9XINWAR4IY;VtCf*sam{dg zt`~UKz??6-&Oe6UtpK$lDNVtOtDO`sz2VhK6_)ACP=F75A`ecxlMjpX9gq(ppQb+V zMkUSAs!3jWvn2H5{2A?Wao`8I0qSi+3T!{<=jxrwAWCV#<1NklH%AQW&($H4c+PL{ z#!zqalY$#u8aM-qc4DR&YzB`t3T-aQfGH$AidCJkrF@3IMR8=<em8qHNHjf^z-h34 zitxyNt7EO<%kw?wdb>2lprgG$!+A4=dl&V5h-UWLNn&dqwt4rU&2drt6z+MrN3f4> z#RFh4M(Hs~=jJ6nzEUbpR&}nGaAix8ipNyu0v?thDq2bKt_GioipszdPG`5bhWv(^ z*OukmbRv9}&Fro&r<%UDA+QAXyWN{%Cy_l+x*yqF8KGrTUG>dLZP_jE5Rg38=gAZZ zenXEn;s$&`zkhV=(asg_DX3OY-3URHb1e!VJ~ym)RU_8Y3r}9B>>di0U$LuJt|YMy z>;Y{gz%Q1C_-ZoS>nTl=G#V*pAq4rU0mU%Q6Uqd<bmMdr;_MM(R%CG7l$li`>?UYH z7!H7EjIw>uXo<+c4PR=iaaDZZfJm?0Y@pEQFqUtW$)^ir?E{HM6P`Ry4IbZ~c0Np= zcrFPq`qkDEkpqtG16(ueq=)FncQgBq4;7`t4BZ5{S(}&y8FxkFcZYGr*6MuY2vqej z{wuHx%Nqetba3L~PS$zPJR84Dde=^F<R_p4ZkA1+Xo9v>mpy?gTZ0X3hKgShpUXcQ zovF<&sOW|)RY7S}d*kgztK^-SA!Smj7!^Bt2To^bwwZtGmVqhoB7-n=FoUEzT0%l5 zIzjIa#6enNB+`A<)#l^<G$R~!|NBY^MMOk^N_GBWv8w!xw*TS~V&^erWF1VaxpTy3 z5Ovu3pmybq@t>aYqlvX|rX!ZNhYCe%Cr>ma`|h@Kd+m=s?DIKQFjXCHcuK!q-*4DF z#K`9nLndvF>!*vyq}CW$!jv*82t2$m8>R4FTVY*Ey{lR4HowgL=@@5+7y=-yRx5gs zOBJg;v_J5ueETv?Zleq(a^@tZinMkU))!DKwBs%RL~QKNA%;&c9_-~M2U0t@fo24K z>cI@Ne2HzK+TdzBpyt89!bz=MQd?JYDRf<S;YLw}gl|l_dU2Ew;S$7;r;8V~G0u`# z-BJyq_@rdQsS${d6kO<o5yF9QpRuxujTYTRaP%r`f!}=8nUx0fyhHeb51yAjknO8g zB?Mh&U~3`u&G+aCi7Fj-dg(7RUFrv#BXbw9-9XJBM<VU-PqAzGQ4m<g1}B^4usTy5 zx7mnGc2<_OLUh<Mq>MTbqpehU=;*5YF{?YDe#}v6H*yJb(jPtf?twEm7$ev;`4?0} z*_y3ZO|z}(e*nzIsVVX#k$^9@t0Ac?FNaE3Q+exxdaKwuDrrn`cTGHM*iYVQ)Ob!5 zl5fWtX`bIAJ!z0?PT_Du04TG>ADCS=paymT?-fYI3psEmMt_g-IuT}cY+EgC&BaCb zNeN8QKl03mkL*cZJY6U#uRe7h{?>aaQC3aw>Q3Y{Egw~R*!K#OAoXXT+bcl&EFF6< zvYn(wzSTHHg|qGg%HEdZcf&cR6GLTH)@vi@J9?)ukE&a(Yev;*dGX+B&}NkSwU{wk z$(nu90Ib2ZW#iIZ7D7d0_t<Gp-_K}UE6#m5&^^8v7ps301AjI=9(C9PfiI=afhzM& zkbvh(>ilRAe!Kc)*UZihe!J}6EW~S-fo=+{xnN$B0=woKN;+EbZtAnHM5NguwDI@e z(PPz7$uNg$Gk#o^1*OfPeo33*#}7>{UHVv~U}V%)wZo7w+qff8U87BGIHL-xq##or z67sss;7_eNRTar-ow+=nI1}CuLYlx<=+(jf2^w>fPIBPE7a9WsK)o-W{EuZw*6N+9 zQC0FR(u4E?_q>v>j<~aE%rJOl+9Dn#6E;aTIjDg;4rac^`77o*%06t$Xbtcp1GD|o z0h<)grHkk`1QU`b34kcL9fUmHJJ3PONEVZ25d0mz5vZW<J*M2|X^HZTkl6#qorw4? z2bXrv`ToT>W|Qz~ml`(`&!rG)gOK$E*G<$Y(U-ZSffbh8qH38R(GeF*jj0%?l7PM$ z-Jcmk3A<zMSRT^cy;1e!nUCiAVVB*g77x;!E;mx+<Lp)@yQ6%`ar`Y2owB>R+|1m@ z4EC};$%#lz&0FF!NYpeMdx|o~+%{-B9n3W!-j`&ry-^iX^|u52XW8PBZEhzDwOcr8 z$fajq#DcO#7z9P)#ujRD6w0|>ClN9c!xNREX(s49IpuD0DvY65o$d%fZ2(>$4#KkB z#)PfL%<ILA!?BgZEnIAYPL#UonMx7l)}iJJA2t>E&5N=)360DEeebo~Nx2ixxjj65 z5_Suyy?+c=z*!Of+{92|B#2MR_y^g}-9P>4DR=Wgppv2}plWAHzHfKdm9->S=)6yk z+*QveGh9vWhJ8H%n@sM)pKau^sN>m)D-sKE6<sA$-u)l|PK{cjegJ$;4**<B^-~&* z4Pdcm5;fQk!gYLhJT^(kYLS?H8>u)m+FtszcJG$v>8w$%w;VYETv4gQfFjG?%uM(W zgh<C}u)fK)71L4e=Z1X&U8mMggoN?iH`cU`vf6exWrL>m$>{c&Onkp;%>IR9H8zUJ z&I%Xc>#$AAu~#H|wTovx$>R_2BMqo1!A!ig1A&BqapJStFL0Em&!15KLWFm}=)}`Z z^`ZQ!#(uew)bt)|+@+3VNT7`#OU_+8;48;4>3c<$8#n%+jd`)}Ol{AqFsf?_p=J@Y z-#h_<X*O6hgWD(tEJxp-DjGcJ4GO8+?lfu1*0BP6ZCMRpWh66ne$UL~3SP7otJ9wL zggdNR^*c9yG1hc-Rcd*`U=t(VuDA%;e_W4<j2g6Ka<0*~Ik+Wu8+T;E%Ubr{7d@%S zb6X>Z_LaEt7qw`6%VETdnK*mFtNpdtJ1N;j-|zm?l2O`L@v$N^blg>sYCH1~il<dw zdsnl}w;Z&ZUFykGM0cs`tQR(cc7Iq(H8v^@-hG>Pm$z!(v_u)-ea=F_xNdVH7#1gk z36*_7s&qBFdS=-LoBWBEocRK#9RJl_CDIuWmQuzSfQriL_9#Md8h=@hGqttGHONGL zaeKvz;oImyTX21MeA`vK$`>)++(DFabTZG<-maEZCcUDC7-*UtVFR-ob1=Q^k_KVr zQHx@*)xuRC(P!W}F)=`hBm2XT`+M1uD*Txgg3B(IR)=lhP6SZ>0OXnfv#Gz)e!m4X zO#NqAt_FWWk*P1~D>QRnqnHT`d$8dZL-%(k1rHrzVl!8fy1@Ey&P~vjJC%uYsjf|` zF$h}toNz@u)7ntj!Srssz;&NSQ7DYtdtqjTJ{2w}=M|0g;`7&TBw-H_t+_a=+IhhH zd%v`(W5Ha^4wg6lR<)GRb9%CWt{#So(M}6h*V43ye9j;n?Ub}g87f}`eia_PWP0rI zwI?kHuGCs3>t}rCy}0b8&Xrk)cHQ6ysVAJl{6|C=cLh1TWM<NDI}Fh>vfX1w2`%cW z)lU&PJVu|opN2gr32@&cJ<4!k4|e2(>1e@xEuy=SBZRpsvz~XNPb%E@$@9v)^Va+! z+N~SyTl8YQ@iY6XizyX_HA<cYDoS-2K$ei3>KUNuD?{ZEsrgC^&zDzEnqJU{>#cx# zd6|m)-c+|%LS}f758fbnZ$)tIYi4(uS{7BWCrtO+oR}j!70_VNWE>BX8dT>$on)D9 zv%X0d;!1Nwx_bLxB=6>N?ZqRWjezNacE$x*za*4eJ$7Io{xum-J(zt3N5+CVZ*)D9 z-#_vT^P!s#hEJGF-DINzzoQKk6fhMo#d~5y+YItRrTc_P%u;rsh$hn?GY|^y4T-!1 zu|_?X;yQv-R(B+Px)55Eq!bFknoT*RKb(nXil_H+_ip3C51?a*d|Rs!mioq>E3!Oe zHekT+`@Fs6M!r3rR<#{~)3&%1oPfyQY+!E2mLstnm8KRo;8bv-*`gEiVh>{WS^?4j zY61SmIJ4}yYdUeeib<8Hy=z!eDKMFBo&Yd|oYx;uvAh(!x*yhRE7jv>`MKHWZ6!B= zYDH&QoT{=v^8AOA-F8zqB(g{^x2GrGYuuTCvEaO=uF6@kr7dO%w6XjBh^fpMPTV3( zmu`R54vF=H=^MQLh>OwXdNUOBB_7~{%80R^2aEj4C8ICC@LSlHcj7o@<rucB_K#5e zh9Q;^mK1`x06Mhi=ik*1!X4{J7WmS!SkHQ$dXe<nys;z&tQbohtZZn^;ltU7ZAl*a z-VUG7Fho<~`(!dhRg63!AV&L}-7cwdxrF*W>AW+sxfqNDK~-a_Gwucap?BTx=04%v zTnMB;J1HLUmRJj~Jd3OlnGo{=WnO4WoVp9m8VHG<pLDHFaLg~eCMqSB`5Ipmo_PEJ z4zj|V*gOMd1W44FNnLA6j{PHsU=VG_60+Z=5ok!5B0Nv~=9#(cpr*k*yP&CyUvk!! z_?t5T!bk}Q_GEl!q&sjY%t2Uo958*yT7{7|_4WAMl6W3ZQYE?Ni}Jbi<HBG!lORAp zuz8SGZCq*&;Ay~%<~=)Sk$n(60sOq9Sj#Q50BSx6lW%)Y*$0m-ed`ew0!sX67mJU4 znWX=C;BRaLCw|y%Rw0lfMuGEslxq|Gqe44e|K*+fFZpAX1T0x3q75FE+a0&E|NgOk zGGF}qn;^^|RK|jXA&o)UvllgZDQ_HP2A)!5!Sj=%@|~&-4LyD*^8Q}`9}M>YXNBbd z;>Q2~`!75F9`%@IXUXXp`Vdj`_icoZ>;365R|1GxSydLDqGwg~<#Hr7kX8^gQ2aUY zU5#HrP0hu0O;B$$EJS&=kuVFoBPC7W9ux4m!dCW4XhP-Lly|mrWFWLzBm+KpV+-Ye zV`=BN$v`S2!GH*6vRXi((ZTpgZ;U)8f3UwV;OWUNO@@qxg*90=Lrg~}yZ9GJ_xw8e zA+H(HSTdUui%3ALJJ}T|te4q!l7%8%NYbo-0Gxqo9~S^Q-MbNnRVE53Cg3Smp01o0 zi6o}t*sudGyY(t!n#^Q$KLY1!#SAXCrc(Bck1?o39~QLp+Zq_v?|=O1zY=kU0QG;6 z?DgEBU@X(0!zE|7svlD&@9V|kbUD|4<~K3yo>c^StbvzFLaS87{ELkWzIg3Kwvk9@ z?<iIC@6%T_vMQ?~Qs|Gto7RO6{(@T<H5@J@Ph+EB`BzGu>nK+5a<U{oYQmhGmzOBB zC!xaHVRq3U4sL54un~@Egu4b5lv~>h3o8)L+tLp<YSdGhzcW7Q%EP){f#JuXUbi|y zb)8t|{W5k+rAWWerZ73HSyT=FkX0#l{EbKzARVEX2g8KEXOcUX{z!`_be_o5jS1Zx zWQcy39;j?*b4Jo4)GoFogJP7GM8)oDI3=*$3;;qSTSh)E<uDcnIU`6zVsHJ`<#kS{ zWXF8aq<jkLa}_p@saS<j9Dco~<mJn9G1>Tf=?NRcJii3m>4c4lvoF;;mhHhluULT| ztu8ugNuQ2~O8y%OHC<2nKS?OPkGJ6-a}9(<O9*_5?V~q|93DlmN4rPLF(&w~eM4u7 zAf!JE?zf8IpQy3rzmw19<)ca(v7B4cbU%eerJx+;p%BDX+;wLJ-S0>w3iEwBNEzeo zN)agTXmFBU^CS|4b*@sUVZe%F_%R9v1tov`M~WQBkn2IlF*9i;*rcaMkmJ^h7L#$_ zRiiSb?rDr;QlGF5NE_xNf2Cgi5d=75X;M7yq=If7pU-aZpIuaMNZ8%Tkvl|UBL;ER zNsQ$F?Ve{g0?p&7U77#EVpvmNUtX2#hl2d1KbA3^Sx`e0TBWZ#+}JF~iibN*61k?< zQ&J7j^Fg^{IxJjoxf<Da#Yi3_@q%cv@Y~*onN=Ni$K3oiXLC-+myiHY$8+80%A1u+ z=`PZu9`Co2M(j_Fu{Adw4UAw2g|7MoxgrNxWLt$w-kT?fWM?OBY(74~DH2E$g%z=z zgKiLt1dXLtRXR+gt8pN8ahcY9U($;Yh+tCdH?Xh6*4~XU5O9%&dH$YjA9Ag`;_QxC zMUGyXfx@dW3l#?6Gis+sLK^m5V64jUywe-GpfXPd{5ugB*J;LP(%~nggIDr&KAkhC zsgi?UE@j}A<&{B$2~Fd7d{+_DRz>pDe?v>AzC{9i-TzeS4&SG9+ADx$(Eax2t^$;* z)DacE$OKl@Tomg9m1|IC|7$#zHXAughavyU1`zX&UNqR;!QESwf|OR^h5&2tRX1mS z6xBBhltZwBUyWo~P2brfA951Z{?H@|OxRV<t?;##U%C(NLCzCCDM&tTi3O>*?%sLA z^L`w~3($%rZ8{pGu^O=r)KOZE#?(7_vD>5BUD@>-+|J1s^GYayMaC3ZOo|tELo#qX z46z^Hi9S7tgAq@k9X}I0Ax3CCcXag2;<@e-w|M2Y5FWU-*w~V6@@!G0KWGXKls9$@ zMkgyE(=T&+**SCz)*k}JPam%MKHukA=qGjpieP&*87&Z1yM}Ge(NK>@m>f0uJ*C3y zw+?Dd1Ppc6ARmSDRCGS|po`}jVAN%h&RXryrUd-)$es(_;2(C~PUDfMzxzRE$_?5! zrc@udkVvZ;Lc?izfRhbod)oTalZe%A2l7bjG5qZRaWT~3z{1fQrKb}>oB5hz3*grM z89pE?NXx;qz&-n_i*c5sW`yg~Vo}vqeNn#uhLe8Ly_2YP@r(ev`9sfNkKYv|#`?@X zx^^oM7i-xDBYEF%Wg5cWn!wo9q|s3JOG3QZ(?L;B<|ld@*_vAm3`8|_3~BG1ZaZba z3>7|gj5Bqy4<-ZkoBGi;RDo{9{RX)oRlZ>b2ji{E|9!3^1Y)Wb#2<)Z^=e_8(D8O} zBB)-u{&C0aa}u+E>T7Vk$FpjikxmEhY=!Tn|Fg_(X_2DO4QS6`OXz*^>#;C4&IaW{ ztY|y_Y8Ijvn_Q3Xj||2cvQ`Av%V>Kc^6YscvT~>t;kh;{SX?8w6wxHVTfi%$X5>y_ zj4e$Sd1$X#I0D)p1NoR5)vK-If0Knbc$Uz@(;*z<V7%Vtls&c%rZAk^eonyZP<oQ- zx|s(d-tpItk<pCAJxb`|13qAaVq^+XhNxL|B;O9pa?yMBd16`N5|sSlDw0pK<(DNh z7+(rH*+P%q=&cF5+`czWmUmgg9WeBf@bcR;vznzHA7b~<H^==Lr|8;&?X?fMx30H8 z%|g}|i!o^xFDuR^-;A{;84@ORSn6^l-47&OwIe(m(->WiKjEnzUbc#Mgeu=6sMikJ z&_&Q~F(&C;S^qN)<uRKb$%=ZaO>(gL7FJN9LZMXh+SZngeF?0L_A1TIM1mI(5B-|B z@>W;9(jdO7HQhRjcc8M;4v%zPYX;BhPvp4ToI5o7KGFQ5Ia;);q-7-H>3Mt(^Gm=b zB^@ipC=s{!AeL>h5tS9Ets^9!iIhSoBk1v|`IuJ#*a&b09x5BGWQ^7qayu^`_;>VW z0l(nLB$Ord?BbiTY)5LJq>hICLMLeYJH$c;DhgyUhY4Pe7K-XH6s%q9;ko5Sx5CYM z`RY6!0<yVv!)3a=Q!4AY#Y0+!w5+mz!ofYI*&7nDHy1F`!B`G>9*lhfx}e^0a5y>1 z!wRYq^;F#rH3MrvsFcxEau)c?J1}g`SF5ytbU6?hi_6VrKMLS|dOX!;6zFdH>i_Y~ zrqqSWJRf^y4%cjYd9Hsta&=HkUs3fVzMR^Ar1zLPVq`%)_j%4sJT^&E4QShHS$DXb z@jvhr4)b4@u+-END=zV9OM5wI@Jt;m&rAPYI)u)rKL4zB9<*wz;yCqx7bm<0FV@z- zY_9uO8%Yg#hA&P_Q8^B`{Wz)-aEtzd@`h=Y3KmsAeG@~}ELRz(CO$Hx#_geohE!k# z$uFCIkb>**>BP`$@*t2L9@MY;g^VscN*i!^7*?fQY{=6N-*k4U?p}^9#d~W_(`N~1 zA$^lPEWkZ1-EqHrb8(3S<DC_dM|ONq0BOtCOi0=%10Rl&Dnp^@zWrMzk5T7`Qm#`g z+S4}Z<g*T3_{$tr!Z44<qF({^pn-9j8&$xZ!0`O;?~N=iC;6aOsRxPO`V=HS$4@pm zkoo1@{#))!)tb<T`Q<a9832*#ZSPs)|0=PFTu9r=Z)}=wlk8LElR`SZ=JOL~{8~)V zY1B6(t~2O#04jQsrfU_Vc@i_f{YU}P-S^=*E49mD6E3=*|5a;&C}K`??$*0+M^hs+ zj<X4x#2BHpTNlEpii<-69YY38KPD$9znNs<0c{1ty6-##(PtoyXb?*?V8VjQoqan+ z5%aaqh%vi*G18@;9CUXOn~Si}JRl@1>-k>Hw9L4v2XJ7704Y!m`CbSuI=b}pP2_~I zVWes5o4NWW$8-IyfQZ-2Z2iY`g9i@sP|6_`8`5JmoFDhrqo7+Lh(~$XkaydZz1!4= ztM~7?;8<`K&Vcm`7qeI%Qf8)uh;LV)>$nwLZ*Q;gq7bkOAzlr|`#p)CScne_=3&lK z(zZc=a@1~56*qH@CxKXIoGvJ=SsYR;;6J&?dA$K47v&`TGOK|I;@`yw3f&_xoOFfx zUBG_>Ua#;h%t6<?9r$lw^a}lc5_7eRbg|LXS1wP_vNSCU2B$%#@9d;2&X11*mC3uo zn~RDH3V!oIkwX+t*o2lZKwP``@zKNhWYp{NfPA>r4|zRgwbg~va!=O4AO~jw2%mFb zy=~tk%hu87=H`lui^W7l0^6FJn+dtOVQkwjxQ0g{?-*t`i98I`qen-jcU6*W7pp2O zD}_~6f4h5%FE8HUmQ{8<e;$m+Rhsws?3ZP|+>l$9EwJdY>ELYN9Y-t<R7(;O9l``a z??JO8pte07R11jgMYk^DuC1+IGFi-0<p0zKGIo!YF5Y*z;Su2p%6qcv>KLDq2dON< zlC!cZ+YTM3M9~Gy`M7lgZ_oIFs`5^~-fM_2ESJCp@r3#rcAsZA6p1q>Th|p)eaoJ} zuf``mXw=^9r6ncVGjO}i-+@KZxLirSC4i6URX;2`T9s|;F7B)dkz|Psn<ST+=(h|I zYhEtc#t%h)`}V<j;s8k)N<<eaE^Zi&8fa)K2FVHqK9#{%U)ZoJ_0;O){uJ?a=g0G# zo5TP_wp<%>*>nMu-_Y)zX7~3G56+fd>}+gX_ZLQ&lR-?yf`{ANaP;)Hb#-;W+6h-y zSL2eBg4^1(%~*WQrW&(<{)7OE!7eX=rU8c^xksLwOCZhZss}jlcC@W6B7{{A_e+v! zJWhW!;fS_%x#GR<07xWMRMI^o;>(8J8G>C*EHtvL&Zs6Zd@L-glQS+`1zA0SZn|rb z6Ww<HKuuJ){x>#autoCPa%UTBQGNYvZPjvR$S21-q`f7w7vD*jsD4(MPoGX}>9)AS z@qnVQp*Z4@U89oH(w(Di3<)IXngXP=AhEmyw!&`|dN{;~Ntr%S{r#d2sjvq;eNQtB z3j_c`a4(UTj`1l>r1LPjP;o7-wDiinjP>Kb6h@<+JHRa_s$a<ECDQ@(*K%RovmYGm z!Xfa(d%u4w3KHvRDV#~hD<&wb0&N6I{CQiB<Q%$M_Pl+2Oa|9x?wtgDdxOz<Cp>ab zXMPxHgcb2_Syn*XJ1*DkcC9N1FK*nl`y!vwZI<ZML|s&Ja-rAQy(_TOps)@UpM>t? zd|tis&KLXsg7ay)(K<lEf<f2o0(3OXm(jt|F)lH&;P_()kiIPLMhTOm)1W9ssyqon z3l-?C&}rRi9U~gMKA0&O_<pme3u{V2K@saI5_(c=IuVC8<Y$(I_1n3=-T_On4Gm6p z>I1qn;x1GgoAviM)TquW#oh@$3;hUPG(+fEtU7-)^(Ag1R+4_s(F|_63ORK*jCt>8 z`$n#a;N47MF4sVf)}DKW{WEY1sVH8PU~S$;$su8^w>VP+XI0_|k~{FLa#@RW<q^lO zmN~Aaq@wvg;#?L{loiz!oh#_I(FG!%$s<Z<d%Qs6b>9uSdTJ42fU)&b(~hq6Q#x)P z`vPwv^m3*E!dA&B&nv309tF;n@xoL@<m=uIDxj^?@mR*o%O3~Bj%029J}}TG%3RP3 zZ|pZ)@yhJ@opgFg`}gmLUN>`U80<D}+Gi3WVr^ruFHgJrAspled*d0GtG@P;O&wcY z5&99l7mN4jy$B3cHVN7t5@~VvZC6(Wmt5&<FBli@68ugQ9b#-m8%B!rqVx#%C%F7G z>prbYuK+S8rZ1;Mg208-+X$#Q+sA={hZi#v4tQ><s}q5z3vE5wqO1B+&{L*S%Z06# zn;a0+=(>li5hvExu*!-Kr!i%x*X&?yx-G*ZBx*D+#*&bv?NQvO1J3NxnpZw^wCfSd z70R;ZEFlr9EnY3NLaJJ<z3W?E=^0)B`G%63K6#?sWsr}G3hV0k#1Uh(-ikZ=lhqzA zRt+a7=kQvlNF})aiPaY=DI{#<8TU0Jgt#mtIX^#OYtpqeqR3ZAN2gH$c#^;?x}KN) zo)_E}ue#5}u7iHp@8yhj!?_Zb4Cl*>i|$>;)H*Q89cOF>aeMFn&MohQXTVtb)nj-| z`YGqq^fEwiGLyp(8kvm3Qm3yuR6m$jPa(LlFl2?eSL~XtN%;{cYz>|$qxMb@{Ci)< z>;1i(yAI2awOs7y!BEG~?oapXN2bJ}h{?Jh8hd-%`8rK@NS9ZayZU|{vR-n>NAcv| zr|7hrv$Tlvnu`7l3l-vT;djFq%(QE2Px_GybRP28=-Gt8aF5A9inwTZ2{`nKX}h5b zdI3eniDsA{q23(<f3uyr`T1Ke`@AM@Zl4tnpp?$OQH>?#5t*1(6E_UP#Mn5oW}bga zbWOvEm5b}=;Huu>=|OI^w+yU?iq2g5a>ssBX3kh_h+8`4U<*_(d2rK=HF0nehwdOS zcrtW|?W4Wx`to4w;7;sT%4C)N!%JP50|w|!8Z+l$LW1NfnG;Hs!_?S1n%RELu*%%Y zi$tj0zP-(@)s=Z@CN^7vae*v9LW6#Q%#Q?FSV_AC1};JPA}FJRBYOXj{$}?_TADk$ zXobh1@<g$uWW4qEY)*t-{MlL)1cI<bb}PW0Ph|D)(}!{Ay}r(iRTtNzE;pXV;#Zn> zCa5Vpv1zO6d9zX#IA5?p+3x{5v>G|q*jBRHb1zsBZymuGLb-PgpPvQlwU!FJS|$|q zjm#S<D$7LHOodk3J01@$v*#=>I`7tmT~w2JPG6m_T}~VDNc=G@&mzl#?u@4HZo*4T z@hx5;NqW!uW2EZ`Gp9IG7gCfHHsi(CLOzLcIk$pq+}$2F`*2n#J)5<Vy<~L_V7Nmq zl$bHnXyo@;Xhe)sgL>FRK<!2l2fb(eZu!)`tIun$k)gb{Re3yAZkRj1RXc8<t5AAC z6Wc9F7V}Hw`(layE_WEO{{H<lFtFvEzV(>t`8-6;S<9wrGkCo9JU8NY)_mr?Hfxn= zJ?!OvJEnyfNocf@0p&OVg$<}D!FSEem}2G5!dzeV-pAkD-`x#rcHG+<w49fKbK-Bi zx?Nty0wyM3ugLtg*;`u@uY^wfNw&ue)mLr!tM`B--Z2szl^j6{iAnD3upF8_Z~@Hn zx(ws_u~kA{5zFsOty&>sB@M9idkqaE^YyqIyG;Ld>u3ZuUQwPG?6J2;yau-HjO^$4 z`?twMJ;oN0YhW<BHfz4~PuUZKg$91pxtrZUqI`<e>2OEVeWl^#w76+`b%p2rbZ!g& z5mik)OsTLe9xq%M+7P2pzUpk+R!Kv{@4Sk^xZJmWPCRlI-4Qe$+WxMkvSQzm=CvSM zXUT{oh?tQ*kl1vO&Ld>OwH@7&jpOqk>1iem(Y=z+95cQk%YMd<4@Q|^W?ocElY(@g zS(@9_YejpMn}<lYGW!KMxTjc1wt${Ul`yOy;uYTUTD{bwMFw+^#)dEtYhN6c1;^(z zKko_bi|a6;b1-G}=eRCp?w~&uU8pY1*3ALpo<~bJ9`Mm%`XA7xt1z;e8z`yQ*{vDa z4yN9Cv56i#kXI}F5rd2dV@Beq7DETtI=r7eopc&m%hFk^`T|`VxPNcS)?z5p<Kesg z6am;jUH0MrCKiwW6*cMi`DSQr<jCIjvFr6Eh0D35#>GQOSZJ4!h;6(gY9H00mCf){ zf-!h4vq{!4$ydDL^onh(7}gMYk`#mBs1`xPGV)$xdOA%f8r+S7z5QzD3PI>iRn<A3 z&J%8!<Of{r^Op=GUn^nQKJbw7-*kw|RP1#eUOplMMSYv8uz^jwL;_@dNB;N6IKX7A zlPlVBN^$7m#n6dhH=2B2`|^I)Mqh-!op7Q~g}jzvrO@p6mvTM+TL%LwZ))=F3Fx+Q z%J~~;JGFbB&M((o0qR+ED6c(LMB`Cs$%DAD=IFA|r-HiG?1Vll$q{cK2l3TQDYWFA zATVRDll1UnQHzve6iQg{Oza>ho?{CuvdM4khp0%vEYSbW?()ZeaD}-ph~{e8XuS+k zKKlz@&iEIH4-RK@GjIkDwz*$z7~ZM#O?^XgUFlbMo^nIoo@Hj1%Py)y%o~i1I|CNi zKJ5vn?a%36Q&7lqJnBt$gexm6J8hpoiy6)AWsStMEJdTku}!6*?U5W3pYAUqFZb~+ zyG)5{M;5Nv7{ip5Q0>+Lommm6)T&O{S9F)CG14gJeU=xqp^=fW(y0kVXN~jZAX!qt z-HkT!$nktbkVGzhp**7fh4I#7nJ#o7lf#vfGM~W1-D<T##o~Vc*A434>g-Bj1YIgA zKv-Mr;;j{TxiL@d3voq;8A%K_yX=~+XI6ioAMgyNzGOWg%B*CG!m-J%aO%oqEB$aw z($ltxA&MA$ezFNs0#N7+=nIK2hp8Wwq<1LDczMz@qr-<kHOp>6gJ11UoO!MH*Q2>E z<9b?z)`%cL*th-CJ4W}5c?Xd8e77-^C~|5=6%_}t9#FSuog9^^saOZzU*aeDxw*A6 zA%$Qut11hPI@qGme*C)nHI<hU6M_=296sTyqf_n$zhxg2fkvMcfZFif=PJ-9zV7ps zp$wpU;H99VO3K0`<lAG*z59moz1r!Z#wN=5qMfx4qh(HRR*k1)`httw2EARe?{0k& zJRi6j%>Ie*SiqZclEnpVRn!nXJ16a{E`(2e@yh;Y+mKRW$n2m(1G8aQ+u1lk_G_}W zKSLIF1_WNW%V6+|KN3qW61`{yf$0IdJOzo!+$qz>!-4((0?_J4Igzt7F>GMWcDB{1 z8_j-dc4}yFC=^MkShX2X7=&uA?E0cQ?{eR&*HjTw6wcu3ey#!y+SIw@tps0p(!k=y z3zF;iex0vVU1&Fmfc|PE6XM~jxmtQK8Fmb8z87U5oV*vMkB==j{%*e3-5*Q=Hct)K z>TO@co;CB4qnw_eKVB>%3d8iRpytvjnCJl(RZaBFJ&ca#7*iZ^K7nyoGEXhnJCpd+ z1H}Tpf^BazrlT0&4Jd%GWUqGf0cMA#xp)-`BReih9vGnzGY63FspPddAHLYcX#iFm z>!GK_CSZ0`HMO`B7!>Rz<3<F2`$7a*^0^}owZZ94Fx0m<b6qtBoHN1MMImPLw_*u1 z0G~9!pV*PjSHB5qX=OBO506@)4LyAU<6^UoodXrW3OkRisIQ#XU=%uxa38q`a~NW; zxRAk`8+ruROLGW3NJ9yUfrc?)WP|MvtYcBh06J}l`joYsKebS#vs<I4bz?gmoM@1G zXFJZi$y{#!7;4z2?*22guv&=soUTqU4h=*?CRP8uxA8(n`M|}csz|@t1~ojQFg5&~ zp?5Tr@vbvRs!9|@mVD%et<Yl<6UHETu4O7YGF9~6b^tHx0(HTN`JsSSJ^~N-+rVdD zoRUq{qp;v{C)q>t%OSch({&Yzn@TZFd*qdT{;J+*-uzlt0%je^H%t)un>g{;wfJ8E zaAL)WG@dtkLe1Q^DTk%q&vETJc)!oRXSD!Nabix6jW<k)y%@nlwySq1VN4lt=s9PN z@r#QNa${@3k-$e+NJd(ZwlZrVSgE9reOH+d%DU+<mV7O1XM(TQ9KJY`G2XwST%Kd) zu(<60E)`#OTO#tzpc&)q6AS5XW6#eoow5@^LQk*VOaWn;Z(Q;0nuGcABW)29y|D+7 z3i1PJJ=?cy+knz305&#V9pqOus+^?7c-LN^NjjVny5ZEm9H@#KTA4HYG}c;@T}@|b zxV6g$P>b@Zk#5c}V%0UK9AmwlEZi+hTAdNcq}HIJER02|C}sC%W;F9gH}{^lT<g&R z!N`>N+tX(e$uD0H*<yNs)WF&AM>Mf*VNE?4FI^w>E-eFtBlf+Ra^GUi&1rhDHQCGR zqS%Y5`(RLC-Q3(!{QG&N{@t56d{$T!5TQ}c5A0c2l3v(}-mo{at8aye6!oY_00mP% zw^I-#MyQ<Z0t^L4B$W}h9U+H7ng(g!ML7IhX^2^=^+#zK1@o=Ytf2HI&f$;Ru$v3g zh4wZ}d9#M|3!hy;AsGtu;PS*7(Eq>-Vd*i}iwOo_O5BQH%Y(#kUNoR~DY6Ylnf#YQ zHPaVUX2|*96nHs=QZZdS7$HL#?XehB(a5617M&~EiuJ<$p@lzj$E^C>hBkRmw;*G# z#8d>;-aaCgrNr$sO!*HZ8<-$d?Ih|;M=)>4Tko3f*Her7x^rv?|H#8VBY4yo^N(=S z=>wip`rqz@kcsfKW##A9bMnpCFsgfzkHm|eM@aG>M%>Z)8C}9}yz|x%YBrE8IzuhB zEX1~Nk~|mV3YL$q^$YR^$Jhi?tytBY!{P1n2z_()xyl-enlDh7YPz>X2IfpYm_G+C zZ40*jVjS(NRyG(!^4@qnz8~&=6&m=!kNWATOo#1}{@?H9m?32U0SO~bAu?kXzxLar zqg4vq;fD`#5|Sc<%Kx2~*Pl=fxUt<caJ3`xxr(Qpzh;;2L+D9(0W%RR;L+~#>juq; z!S+v>^RpKh`5(G63=wf?@};RQ60m@3Tr9cerl?Jdf9`@#gxGZ)T!mwv#;F%Ftre>c zDaRrKz)oQaCa)1Q<|Ej|I5lAt>JLIYFYbb%u1pZCHg$E8kR${~70_naA{VRd9<0Bn za?$iN2MKeyVa7<vB?cOG$*yG7A6fy+xP4?Y@o#Hf1U(mt7bK6$9L0u7ZTlpCKDdpF z6Y=6l!2)1^vZ}F;^Q@-Q#jmg$j>}ku0X<n?tNg{hbb}ao6@dG=uK~h<LsbRj)B6+y z;GRaCwunr(@jZy=W~y`1h)c#Q3UOnr9QwoBa&7j^DXF`TSUc2l=;wn=wg0fEL@kKL z^A$Qzp^H{xPEK_-2ROxl*ULD4PuTp8=oAUCd2gMNe9G=~wFd)>bfhfXUxQB?H@}98 z#Wck@*A@Yhj57g9MDSB{272}AzeByeco0>zgT?P=b2&O8%m;_7>q(*bKP6*L=NP0A zOzi9jG3b26d;1COJew;USdhg2s0etAWca1l&-<Y^0O-UQ@4s&-f*-6csWRw<SAY@Q z4mVqN9D@UD)4q1Le}41ig*^KT*v>C%O_=z}J9gg50Wu;a!Ur}4Mln(*FjE9o@M_o& zk8E0UKGpL180bOYjAUvnaqhPUL=JGsA#og3Y7^A}rlvq5`a$!ipyG#~+ucQofQ1jz z)Z*5EnxWPa(2ST<BXQ-QIDFHM*iCp3Z%)oHuWI?Yrl2|b<FQ$=D)Hp3t4x798b~?t z$8<sB6+;1|TFjF}=27vu23Z(wUZi5Pfa>Cp5GwQ!@b=9jd&Ec*X12B=Ltll2g~3vt zJ^K3lDLwy)G$b&ldT}0eFRz95yFLIT&6mW#EPE0N#$Fwf#}b5Y^kcI3spy_3AM#zp zd9b@#JpOWB_^W;dg8rd9w*Qj5>_GsTRS;JM)CIt|zpKkQ8U*q<n38JLAj&T5`(wU4 zir<Nqzt{i$a5U{YP3sWdN^uK|5}-h3zh`c0%J25pB}JNyg@q+sqflI1JH5vB9LUXm z1ZI-G-|j=eyOEz;824|w8yEinm58+Af7eob-;{mw*7D2#HsO#me1R>89AF^<kG@E2 zOu>^O=I%_XyEs!+mJX))(D_!PsA2yTiM%z#6k1m0z(DmD9!40G%}WU)pytmJ8^D@` z?ENqN?*^>Y*p5bUxZ$O9%buSsV4%BK*P=x&xP{XWc6XK<96!~*r^iuQt!WjssbbLd zdcpnG`RofZ<py&${lB9zLi0g{gosaA4?F=3F4Gic>YN|tCaN~{mPZo6O}i%jUyRF# z!-*)+*l8kxA>aRXyULb;3hzEEHexO=O`w8ES!Fu{O|MMiT$K%~0*Y~dbJe1L^%m%C zLN$E3b?{14iTKW@MiT5PSa2Lv0smCe&M=s?W+-q_tZ22W77VmH;n3TPDn~+eY<*y? z+mff9-@{N))eXthm@_+v?#J-mogAP#2Kr6(@EkcR;-OIouP(YXKONW4^$&ilj99HA z(iqAQAv>08)ZdCEFiW8I_Y|SN>|ixas9Dw43(E@`u6mUxovt~YI^K@v@QoSYmlGD_ zlXbiAE+xS~J53noFA)C*JRul?Mc=3xiIuee(%wd)JJgEyUvd;2+66$n>FYmgn(rf( zVzSoMUeE1F`<%I3aw5Gz%?}t_#7AJmhb$fw1O#LlSbYPp&thI9RXL0PcAXUhLKiNy zc-)(Q#--n@Z-+TXEhq;o*%P~S^Y?RFAjD<()E&$}&+8_J;)@+!Odwp!Q{O&381#_f zleoKY4g)=Z#I%mYyLtMQBi+JTv&1y43S4y1?9vR|<&8D5QyQ@#2U!*ul@7Mr?#&5} z%E=L{mgmE3s>Ml#g0Q0Jc0u*cw*L}^45|z@9bFRW%hBm_FDBM@lzfEj80#6S$I^Cm z2lZ)Tz_}2_l9sv_D7voXNM?;7iaVwzWy7d0)w2D_J3XJ#bwmr&wE5+LtKyURLYUXH zah7$JI4zr(d~l7M<%1<q)H3XLKoO8ull6B&q5DeAm7@O-7)#H0nymac8k?JL8HSmv z6*F=+f@`>C+cW$Z7-I=sMdGo6t#AQsW=mAw3hD#nyE1y=S<X=(azXU0S@q}Yw_`u= z)0MY&Gc$p7rdSPlKBb9(W*1@5*Mo1pC5aI#@6gVXI%$8VyJOr;VC^TU%W<<M9t{($ zT6??h$)5#}guC+dO3frxujzs;tU1{eVjz~m4Tm%dbG-7e8~`3(;{$cA(mf_q0E>PR zVA`08qWW(DsD1~8c{MyZc`?bv!X!mSgJ|@=G*Q(_^y6dvWDt}{hJS*<LqqADfI<lQ zOugtmK2AbfOt*~(r)QT4%#jMI9w*YI$=Cv*H5|5Y?3V72aU+b#xL(gjzIZ9;>}U!i z%6Z}BAm-sV50vDuk3@`?>PjniA&*W#=sWu(E`y;>zrn6K{Bon|CcQ0AZzn9_{mBYn zi()I#<#D+7W@usM1~`uv{KaG3(>4@67;NMvPc5q|K~D_K;gOGtaY*$%yLcznffqW> z|GBk|LsOY_$`hVEYwtE&;iuE`0_Br-6s|s{(G@Lf@iiukAFfe0R+Y-({5nivrEmvK ziun>gX}ebmf<;~X13T(U>S&73oN`&xSsnWJftsfM>PeW6;0MYWz4Dpv835t@^i*^z zuoh{d(kvOVx5Cfx$KFo#W}B}5BTH8sq{7CL+-+a+-vx;Fc;u~r)b-)@L`*6DQe`j4 z3(w|~t)mHOYTS<XWSFOXNU{MK`d*6c;v92OuN!DBwFtWvYeXR)I4m$XwCF#mP^#lm zm8TrpowqtX)0e_2YzJKAH6w*4dAcHItoM0A{}1Up{rgUX1WoLcB7FS}6*)#RAR97B zGn&bbDfe9Wba}U&DBw>l1vlTB5whAHcRwcgQ+;Ng0f`?<>GqD4DqoyaZiPn$o<!Zb zOJ7kJK54b;lc_M$e=|rNuhU)zF=g~3%5R1z!tasMzO@KLlRzC3jA{cNDs7%b^RiVE zfD4RF!0lYdpFBL^7lrbl08|Rt&lC$RQP8zbBeDBHbyU4b55-RQxafSqp54DW6vi9q zK~T{=$0cb*@BgeVFP}G>r9Y@R6)p`7Q8X78`-z!MCoK@jW8l|gCO9!IE2o@IJ!}cd zC6k{*PXyoDw1oel!8*+L4=jw0+K0wa`A614EypNN3Q5FQi}Hkpi`A3FwrBJ-M|aNB zAXr%T>G#%WtI~RYYgDiNyw+7mHPNk_E|WIrKKt<x#W=<R01`Ma=HWQ&hKdoIn+1;= zl^-G(PR-pqtA1qdtDKrZZM_=|#4J+J2x_Wo$dx@J?;N`E)1`vGo@=)YZicp;ls7i) zX(6*P7*d!4^7wnuN-tF)u&aGk6>f6iI(RG03@f73M@(<M3!hMADJ2C13(;FOAM?H% zb>RPd-)dPm2MbaAmr8Tlh~T4Zp9ogf=@A!+40LekFoM!{<h_?L-`YfpxU4MebUwrj z_fsmPi3fvFAK@S0YY$FbObldh_{jNwrY6cBfZ#-(v!MZeQ+!iQ8F++)KaXcFdXEz- zFi;SSQ|6~aP;nd|l+^XN5kJsp16#P^Px(ggnAY{91t>8Cr39BW?l*G~IJfP1LoY4m zknQQ$N`wXi_X2+HD{ThyMZK@5BFMJ|S`7ALh%Ccs;s&n}R?jsUt>M-WY=kcMAC!Z1 z9@zHO^6IW|j@?>><CVe-qi2cf3qPrx8b~-)_M-ROs2h~Vs}U%^99|5Qi{5ip!fTKh z9J%Gg(wnAL*%^M|xpF)&MUb+SpwrXd{?wMX9loqaO0Z(k@hSHz&de+VqSnkQP1*z; zJl!W$o~4JHifUu`06MXRnt=SWGNHlK!@aw||6_A=bCrbo>Z}bgRA_Y?o)oDL@n*`5 z1(+|S&eQz!Czi^zZCypP2E0pXw)lI$`3$H)aFg7d#77E63_famAEo_cEKXzw`0xD- zkz_`YvwRJMoVVR&;_V%)2O=SC4nAb;2MAV`r*fQC7?TTDVy!?eJKwnGG?3n|@5(;3 zemmf*^%{F5+n;=^cHpYLk|cn1jtUz`76w*SQ1jseg20M|hnF|8eBMDMyL)U*=C!e@ z34@W5(asfrEi?lvHdJ58%If$V)@{S1xTt710H9XU*u+Nkji5s5F-JIs^V^&6&h9QD z2M5OMYx_sdcd)hp^mXT28iPcQ9l_1rLtlXROy$%;vysoHXXwGb$TRxMPDKjtgSlSi z$L5}~yvmotqtQ#1W`tvPP91uHi98@>pNA=d7g;1gYo#6CJ+#X&>Q`q;iQ=R8#dk31 zeo@h)l8W!x%eirSIyzB6odxi)nqPuY2nTlph;R>=HB8NZdb+xFcXWt?2*AL)=E83T zSf{x()p9$ImphW2<-dflJthyF95{*EIoP<VrPk=9kpw}t`23-qLLWndf}DR-UYaEz z>M3gnA}iuLx0uxZSl;0|I<$z3j}OT05#lV5i9xWiu&}${S1{MZO-)Tj#KQW2XnX6h zDBpH%6p<8Z0RahVX{1{v1?g@C>F$!2W<ZpX?i?D19uTCF8eqs_2<h&IJ>c(s*SEgC zzBtyg_x%UV0na>fKX+Vlp63+_fv5^Pnlv+*7}?pC&6&Q7XB?_f?w2_Jf(NEXn~Ay? zVF@3?xpkA4bj1k|kaDR}#Nm^amZou6XD#@U%nZLF2}I>$HD3Ll9Ihn$^B{WJIoA+{ z`gM$aMZQ0yQgYC%?~DTg|Ir2Fw`gxs!sO*57k7359YM%~j+|0*!a8y+hjol(r}_Ex zvKa#SuOPRGxVIpO4~-*r5Z?5(4(znCL>&VgTSC%Ppg<ut=Esz_AjaZm$vbD~*XFWr z6=h{_?G&(skRPvPU=!v$cZzK_dSsHnL$Q}se)qf2@$eI0H-MZmvu*wDN2<98<(#-c zgx8Vd@>@tI$gLa&p9k;JqtSC>fF=I35zFh9=F^;{ps>P1kx%cA4V4=k`$P#kZS*+b z9=nG}MI}uRsv4SvhfZ;LBMIPS7nPJEcHK`FxPd=^A~k9Sh>p@4j~A(gM?^>&+OxZF zPd(z|QN+85%nAbCLfJp$kOY>YOUTM%xT@-^DCtqyisF0Io<<3U+fWY~9oznepy$Me z`Df$f1E_NfgPuF@!|LHC_X2-3-elp@b?>c>g>f43u<b`JNhIhyDf~xANL&cRKabz= z%y;311zTCAuYCGsnIH;_5Rv?9+&^CYgV%<*&JM<WM(6k`_3Gnfxq-8vj*d=$Mj&Be zL|0VO8{mWqyw%s)0n>^7-h|+(z9&NP1cfgIJU^{m_$FWZsgJ-*r}f%d@C`NDiOEzD z?dV7nW0bAEv<&(mL1IZU6M-)`%E&S%enC;@2ID$IkbL<SLtI~cQTlErL|njWLH73` zb<oqJ)xqya@?@!b+Z&nd5yrIMa^dd-3l&mBJ35dB8}8v$lC%i)5aMUJrEC->hKbl? z^3mltcyEKRudjz*V)M~B;!%-=sTC^rd7Mg(y#4J$P5Ic0{M*6@SxcsVxdEZ0`kSp@ zzh+MZMCLmyi@HePU=#`^Lcw#P49^NHij~z;*Du|!I<>Dn;l%qz+-WoV{VkrA-J{1> z)t!Q0LP7?PnC`v6(cVL_FAp8UmBs_;jE)dtpJsdV<XLi32{<AV5v{1w&XTneDT!)V z8b6ARiozozVjE_pZaSLH_(8o3*@L$ksiWCjgI;LkfzeP#E9XyO9{XdKe_99$2!t}b zk2VT37peym`;VStm=N@UeNKC=q%ur)AFG6VHU+KUP>0W>BqR_Ws?ke&AKW2dMUd$M zq_@9s=4dv*T`74NrG9&Uuq+%)Lii3UKlzG==G~Cba0Uzm2Pf``;Ja9)e-|x>lv3z@ zeveRkD4AOZ$9WspOhN|8{5)uCD$@rhll;2m=q>a)PbmC|@M?7^oduoges){_F-F7< zdWV$J35UMeg$LO=OZenum#H?oqcL^vc}h!%iWCOY#z8f#qoeu=((%_=h*cCF0PZRz zPIhSs-L+0W#GA^)-x`8M^t_iNZ&oN`3VJ~ku=GQ7T*ubMefR$5y6)aP_oEo}WDqcK zK^eB=mQsV|&%#2gj?Rd_!zS9eIz*8-YO=E-vg1=pQEz$L(`jTB6Mu&dNs4Vmski5e zi>zh6!GZTIjlTkbIeUVm&)d$I?h#sQbq^jqHpl<JD)6n7tccX>N6o)7zC&pDR|_?u zaE?jnC@RG+le6{vgZ)AcI`rcJh0oW|<j3ZNo4tnh_c*auza#3+1Q5Og92xvq)VhfO zo;anFw2<6jukl(WLF2(jv-rP?q@1}@bhw-)8K0<$zsb{Pn+x614w6U4s@wt&_S%1~ zL#6w;aTtYPp%U>7{8}q-d0-G-<s(W9jrmgb0IlOf`$@RpCgpEsh-|U4(>a#yd*GKx zkDk}NlCJh#<#JoNpeowl5jQ`PYF8a~DsHeG`eZYW9ahCIil@a9lXQl8YBnRU?~YD< zMb&*8gu<F(*}2HUPpd$8_*7;SLiB?;TT}I(%{+P$DtZq(s7v`^dwGq0y#_<3E4?P& zZCKWv<Dt?%>(O$ojqQ69Eo0bSVc3g65R*FrU4MgIME7B-nJ?QE-cye)j<~e7Hv@_r zPNBk%J;Ur$>#hDvd&1TUH)d1E^&ZMxAL;$v!)ouK<W-;Fp&tv;kB_K+5lybE4aooW z`1Vv$)ZEYm2+BwbrQ!cYa^!GMN*wh(D&B8wa&LLZ;_RpCE=U!;`*T>6p5`h!tg85T z3i`djknVp^ToXd)qd4o@%;e}~qH;PjL>(>)X}CBv`RwxBL}5hY5nrojEY;nrE?t=C zdl}iDFCRKV^1*Qzpl^~UeV$ZQXm<o{y3bLS@Trv1UtY-Y)A}u2^ghGvhg6C>;uFUn z2F^LWSwS5v+W7IDUemk({2Gg{+%Skqkh}QzsMg|8Bco#}q<pe{QYiZ3!aCnDN4D5d zoDu-Ok}th_FjZQ9J>VU_zP6!xfe2KFN#+#gsOq>V=XbStO8r<ys7ZGY{_MEux9RJv z{ro#wT-ScwgA`C@8nYO`{tAy5wFXQ4SD_AIoz3=R#o!XQLm1|>IZ+|w%DuN$#?0R+ zAVop%J~C~s=-;mp>prpVD9Ha}pmAn(qvEGGs<c1q2R^d4kx=#wm-zZ-|4V(_p(+IO zEn<-48Xs4D&i8^-_?e+Sjg&~a@Ag`_@CEVhUR~J!w#5b$_v!6mrT`mR^VzeG(ozWz z403k{lT!gR0}Sj=>fzA)OSY~dvM22j?T}*w#)COV#{Ic9!Kn-bY=bqU%3p=YBkw=! zWtToBLHMe#oeweu>XoW1{rpLvoG_TJO^^N6eA2s^ih~9GLLbN;?EhsG*3>PJ8x{Gk zg@4WrFFoujtm*MF13t^1?=$~PwX+q6y9)|-EVXY%w46KrMhg`cVxhC<DU}D=nac^Z zXl52387_NWV0(@Q8IL<0T=8pRkyB0HL=kU7hT~}KhphwkQzxQmRgcob?J)TWB~>8r zJ>RWWyn_q@HsIQ_UH(;wjb_?>=>6lKl==@PZfTBK>Z5c3X0u1q@-|<wPlnC^#Dx<W z9}Z^e?^&f;0d<(v{`9H|3HK&?hEmb-`uJR`HlEu5`=KrY(N;)gN#H3LfeY{N?sR`` zKnIL5-VP_)YD&9_?9TVr>3TyccKOVMqvzZ&L*OA=u-1l9zbNXkK-YKNiv7mPEgk$5 zsp^Xfq?E2SnQJcH0`^tFL4;V63HXcJ--B)Zh{0GvuE^P*tP>E`lalX*p$SQ&5FMWQ z4?<mc8Fy&8=0B7=lcE9YCTh>2&aT!>ld)G<ySl{cJ5zw%SN$b)&huSNcW?_P=j{oz zD(x_?>06L#F)*-wR$j-&*fyknB)TaS?LsBlWHd8`()51s;Hm!4sSN$1Ur-4O*>qAA zKy^O92~%f`1J=Px)xU#}>HK{NrK^hnN(yRN$i=IW@6Yy-l!`Iu(+$SB3QXy|8v`#F zir1&a%enUwV<l1%4`NV`NggT6P9juP+r>ZUOTBrn8fb^$xs$yghT@)Rf6L))cUs~R z#wHEvJva*S@%o1iIMHiWowza0w){V;LAjxwu+u1Dww{+in*~kCve*Y@wxMOum-oVf zX*Tkxr=KPkWXmbhqqgFb^Ci~5yg?yeS-vqLVhHhK@_OHi2gvQxZc|FDP_LNbla#z_ zmnlhVY$cGvP521@oW5NV@?UfCTs1>o!MMAuos2RiFAi10DRBUS;YstRvsam#r4q8? zRLIRn)H&P;mD!h|Mz()(@C3%P%mpE>_8ni$mKPZ-D1WZ5Vrug#8g3!<1Cq(Az7wkK z51D$pcyJxohE@7(F~rBTkta1%1rH#g+kVu+XO<tR+z1?QS5R$*b)vUT!yGMV89mux z6ePnj!4^X@=Q~vMJ#mm1mbmY)+<ob960P=YggK;soCn$rb+58wCmMY6Z3!+HAn$>k z(bN=SOzX1M&IC^#u40|HxU;S*Vg@%$Tq=U?81K!1qoDs(>;y|;>Qa$%lSHWlq;mN5 zqoPi~^ZtlAmi^^hWL0E?kE|Ts{;if>k*PhV-{w--yT_<D7aZKBHqE%61Fd9I`-9T& zSOQmP-ZxC$cBf|J#rltj3OkSmx46kDi#RZAvUqH>-BZkyyz_p?c13m~6%7tD6<bS9 z72$cljjeSntfXf^I~#r)XyHQ}<M5sA>{0IizU>-zOsH?qez@3^JN+fwLmnVx2T`8l zwC)^bxnLuE-;Fox*qHrxFCO>y;5$k_x&(P-zUv)V$Wk`F3P$4CpT)kEHzJ_da(#NS zrsPVCyz<n$ZL9=NVydQDC6plh#c-@3b&nPO;FF?BJ;(Dc8sllE58q=>vG)Tn8;H-; zWfrEp<c1&lzB2S{BeNUJaZ-y^=XiA&`Hi@U@Lj$T>DM^TN3ji@onaS0C$xhd#Ms{M z9=~s(#Y8yZ)cy|ad??ZF=_b{DTD&}D97W#oFToCbye5Y$nA&)zgBI{4`l;v7f_vCi z%990F^H@v_L=JMzMj>80@Vi1We&Y+JZ(QJ{)Dp>HdgOn?a)$=z4-Ai(VFQ7B)@}wK za*cg_xQ<yWw>fxSYT=2JIN*dU&b`#DR$_+`>0%>(DBiBaNDQ;90%}O-d$zMtd2}F? z-MsU@w07{<0}-4g9^YABD_FkbiPTY2&%r{$=d=<JKCX|CTW73)me};Xq*tC3a|yQi zgzU#P9esAnuk#(_uXGb&yy4{dIJiOxDT)zU4`((%?)mGKEcs{HCNkJlO$K4pTKUE& z4M-QbjtTKfX)k2I-XaY%cQlK|c{*x_A3pW)&tt{ySzli1{TjRX%J}s8oC#~YfrI%+ zJwMaQ(skI6gM@ipkD+g5+e^4U2_!idfF6mrfO96`U`pP9Ff4aJaFYSaZ7MZL<&6I= z-NeY-(B<YF=J12}>j+>*hSGj<Z53JEYdxe!`aSvUI<3cu5e}pI`I11kN2)gvr5)?L zDj}z46V%yFM56LjAg-dB)_WVsRqp7UT=&4R`q!>fC<K3&w?T_jP~9*3e3bGgO^3-I z8Y1lMr9UZ~`-olxH5%;Qf}9PZXLm!G=C%Wx<+!7$?^cT6z7a==bE7;#&fCi{rG8tv zIx0i`mT6eV*EU*$`t5#Dee7Q=mR**%(7!>6$G*{x#xJ$B<G_y5@mCb7cIMa|Z(V&A zPP6C@7km*{yF#0TCt()5|Lm;8vxle8Z~u33UFvq_qgieP#|s|DVCFpMf3Y3^M!Oer z085V1xYk{LhM5?P!F?=+OBYlq9o%gwZGO9)l(U90Xkmc^_x#60w_gpCxPKCL3-xV! zA+(&+2e>|e$(FDCKAO9;tmaL5ze+1+-Y(wnSjwCCi8@}`L=Lvf`rd{~G^Mi=9C8q2 zhGJ~4PmZ(71pF3YX++0VVHb1*Q`TPNe1(t*2b>>Z%(cNk-lB4E)>17UB@S?<A`1E- z8oM^FZDpfy5TW$P6JE80-7=MZanC2X+v@L-LfvcCCl}A|L_@>2lPX*}y{FQp1H#5@ zJr;-n8n=UZqL*ewyi+?=;f+HG(`3aH)vFJTm&WyDX8*)IOh|U18H7+s7z@%u4>g@% zia0-;iD;N8BtC0N4pueGtR->E?w9u=<9&(^ojv*s<5*WYec)owETMgWlIyJ>FlH7w z-}Bgau;61kbNeO21n`hEpoC{jG*&wp3yrMqeWcjhp%#$^%x#wADd(w^&<I5Zadh2@ zx)VveZGp3-M>?sNmF^rybu!*0-aoALw>V*!bRi7+a%?GmMPIF8VP+JiYggy9mDOTT zHx2*qGEE;3pK(~$NS^sn-~GVJ?G`*`UsttRw<&S{-%AtWfNNxW$?rLoDMJ~vHQQ}) zF+@^Anc!y-TKb_g)AN}T-vC(>m=oJB%)War;gzR;@xUJO1&!*oxbYyvI1|TCM2~jp zl^2W6y}^Jm8C0X^jDxaN-2iLYCvWs!fH38dw~@G=olCl(vIv@)TdHh7a~PaS3A#x) zQ$B`Cp*H2TxHEOHH@6SKZV&ao>OgCz4fRYUJtecQg=o|PhnJK}$$JcPaw%F|>Mj_b zv^Zr<&O+AN*rdtk`c0gV@J~J10EvddxI-tJ(&UN>I(St5$wYtix6&zb_#Y~3-39?8 z#n{*zCj$7{Rqi$a4yW5wq9(hRj&+yka<Y<7hKeF&DM<<EOt*a*RTQ<k=jA<EdzigT zIQmala(`AG1&z7jrA-b)w8J@oB3ueyL0{Gnly%fYOs;A#O<MBZejUDtqJjR6GQnf5 zWD)i*L7PB7^oH)$qAY*IByMRgo9WAovv<_;$a?Rfg)pJrsT=}tj+4bQ%120d%vH8u zK9^_oSooFB3oFmeFGX_Tx2dEtoc>38gSNZZljoD^quWz^iYLCJ2&SXd%t&ChF87>t z$U-YU7e?jDVg0x%yql&)xuQer5e<%sLQ=IQvmcK%9aHz%y;xHW5sN7A>Y_&lkLf&{ zS|!9jsB5T)eunJSSun)2>@A@9Hb-oSiTh$HX|iYFh-=;1Wq)r+s1~I`!tY!DX!I}p z+w&gK!TN<`@Bhe%%!q0qv3(cUPtIRK2H3cTQW7kUe*IrjBE16>@(VCH><|@p3K^w+ z<j80KkJ>W`_0_-VkMzCPWmEEOnbT8|Yg#y}T5#!POUXR;<os(K!cJNqaU0eCjW-50 zSj46KQkRNJ<!5jHXNDxD*$?H)ExHU5)DO@0fUb&OcJmF({gTl&3I)^4&!rq@BNWHZ z7XOy|lw6xZ2rf-&Kee>w%Y|uR1IBtVm~A)4Gce+*2n9aGJ1=Zt`wwUQqWO)8mH%c( zKv`Ta*Fn28#<tdh*)T6}!5?2mRP6r@T<Bi5qWuf{Vp$q%>)N3!PV^alAEWU$Im?E# zV{SQxWi5Ym3tUMVCAMkJJK`$&E9`Hng`8VJsc{GDZ!tu0a1G}^OowPUh+++25RoIx zPtP}vJEAyRvsxbF7efA=KRDm1?+$e=<{bokw$R~Yqo4kTcp!9OJX0RO{7m^zK{d(a zo1cH>Z4gd3_J3QN1>S5NqyvANE2V=V0^GNp8haEp!Vg7*9PK2jN(+rjd1fx`kRx)T z#~3oL{aqvz&`A=Me_=Pgh2(J4JL`%1pWM6th^PfAnNB+j!fNtYh_X-unQo6iFV&%A zBe7aA)D21RvXje+D}R!DrunKOEC7K(JFNCskcI07p_vVqJUDnM_e&+hXZ{UHLr5zS zIJD^j0tVFf_aQ3J$qNuEaP4<oR(=GDUCpmBWdtO!PLn{)EE3fJf@aL{Kd!xyUQgg< zL4az>V^Q(@ng4ZL&ZE{K3U4sweO<u<mt6Nr6_G%JYhS;B>aNDx2RoI3I5qO1>*eFk ze7iuEm)cz1PaiSckhLSQ6U#Hw+hxR}WOJN;(saZzhrw*`Z|6T7EAq5Juqw-y<#G>t z6y$RjEx59H3JI>1Kv{E7Juhu450{=x79~6;S}l2PD+merJnF2~Y`Qrv`@zHR=e#M% zQ?cLM=?jKm!^fc|x({b0GPT*+y_yzUk_@4Xk@3{7=Cj&CgI#2-5fjV6y-gKk_x3O2 znA+P~L1#)0%Q7w<@m~;SBS=iIA~Y}N7MBABmw$0~X~o_!S|4n_<n9JIhgH<tY)5}$ zrJx@=q1*g!cT(xBdFRC?29e{qm^Bd2Inw#x@Q42+M|h8IVITiEKup2F5hc+gkqcAN zF-MI_nporvs$Bi%`I~AlDyy16#ChaP7a@<_@?600Xm8Khh|X`xqp}L?Z`u>z*}CAi zM;qH%M5jGAn@Tqd&I!l3wlrr_&GF54N=g~fAex%k2FR<LIy%WwFMZHBzglJZ{o@6O z!$mLOv%S%!IEkM*sJV_8uEp6D2#0G(6z@fz^w-o!KIESr;rWZQ@AoC*GtuYt^G)k) z4q~5R+Z&3JB}JbF7F0gRrLy}4p%b?``x?sp*}dfv-0X2wQs>fARcknQe2iUbM-*cK zQ6E(H&4wb|JWt3%K?tN#>1pSm5gc_Wh?b!Py*1GMS(<A*E<ylZF$nG8EhS!Iyi3+| zsW|)})HF|h$HhmKU_Q4mp*4(6c;Nv-T_%B}mS6flNxyjmf2;T~o3I8kNLRCDGP($J z(Z`eE(NFg{=fqi_wbD3e-K&y5FSWJp933hY@%*T2jocl2(c6xiV1bdyy5C-Gd)4^# zY0*=10C^8;`{Wqbt=KMf5Wh-0j^K&E(rC?3iuUF11#1rq96nu-+;WVHKNkzJ{B$(* zQ&`Lm?P`RPqbd*^C2^EXIlVdcemrb(&&b&ew-C?l4k}!Z*msT==`s(XlbOSWKZ(st zn?ORm!h@i~SZ7;)(3HPw$iOPoT6w&v%V*B4)3|=M_Fqz{0R1}Y_sdzamuJc1e`i*l z$)DfJ3rnwm_BWVlwv-LDDIj%R|7P0SdWBog&iP|I^VLRZ-$9O^zyAY3w?ae_0p3MF zX^?$d;01d?e?*HMXGM_^(9SsJ$m%3Cgj`Wq4OgMG{~)&LW}NLGbxeuv*>1kI$oS`i z>37nyoNrMx`D)yv{o2$qMwvLSjQ?e#-P?<KD+d%p@hn%R<Ka&<3}^lWk$ce)Ha}q! zY!HS99z{LKew>OkD(zs~6IV+Jz1~jrUvYn9%3tv*&HwI#;s2$_!TH18-~U8>?D`*A z*){*WAk4t$Yw&xW(oIqbg8neSWB%J9IjF~9h*U}T9|H@{@}J-ly*;8%za+1-^kguw z$eP62KfW;^20?%MU0m&qIc}lQw+A%R($M4MUfT*~=o1A%eWx3C#t4`w7}2uYE;Fre zAGQuj*H-eE?I;}j@j2aER%Q~8BrX3~QrTC8&!dTXUUB$n{0oYE+lPu)J0-fog|Nfs z`gP6hj61njP7o-%5qy`o_X@O=JUlcK)6mTJ@jKVU`_RCBZ~z{j%-zmHPg$Q@vR{AW z#>q0P82eW-B1+~RGwa}#Zwo4e8A!{T#FK0`OHC8i#R;=+!rg#D!<qV<l7_KIuEFhT zi+;8h$hG-9M@$4l`9iG6l+`ZyX@=|u1#acN?nQ{(LeLX2)fnFsn)T+}n-!(M4~NoV z37WwH8^(^0tDB7p((zs@ZL@YFDtAgsmEbegfj}>tHA8@YBKT3)fq&O+W=)x18P{sK z{i}grMq)NW_o{cfkKG2@wJSSFHiQiv;S*JI-fWI1lCI)5qA_+tAr>VQKQ{M}f6ORT zy$H22u*p`)n9?bDFlmaUvb!JWcBY|s^YO&Sv`f?k<q?TO!~`QeqA6t$x8KbDiO}Yi z7Bn}-b`}-ono*Nu7y^zGdcYIE9MFtKz7X-H!8>Df|3RiQ<2P)NE5b6_{9><FH!xR> zGMvy$c1=@bHnia)qQR`?$A@a{E@7pG(a#C`{_t~*Ygb+6SR1I%jowvX=K3`wCD!!( zJkIyNFQK7mJX^<z1ghHUgUD$dXLS&!`-8o*6cGj%S*kSpoAp1G%-X4neQXBJHH71E zh+D*3Y@2ZL<@R9|Zv45-wU~yQ3Joo^&=Ef-OC7Y-5*Fuge0mSqJy`FVKheGOJ7g5f z#CGG%E-S;fw|D0*V`e4BQZJcr%T`cOfOu%rPWB+=8(^>tk19m9W<Q9>)C9;!hTADx z04lxhp^5u2aK^YyLIni~06RYexGf!jVP`<7mI^1HYhKBkol(f*sb~0s3%+md<=Jj= zSvVUKB#>O^i+Bt3H%9v*W4^06*<<vlA#1o#Q)2u0<iz<S<OJ*izB0+ljDP$A(zFPI z@t?^dOOUSM{^B}9VZfQQvo1W#$!O(aCBp6w$3`TC(s9SFd97`lmArMew9w`C$o2L0 z<JrJR`}=QPU8Ae{949m;FfcJU^d&jM0^|Qy-om@jBw^={j3}#XXt-|?A=om}nZ~~C zw!Xd;uV24*TpxM+jEJaDf_0np*5Bvsk&%YiozpeeOJTZ~w#Z-Do-j%13+Ou4*I5Ja z>fHA<oAvB&JP;DfJ8kZhQ1)553Fv4OIumnFbqMD(jMU24y^0Ns{(fs2j0id$X%hW= zF$crKvr?a37sU*<%r%dUH9=n9nMRjFafhC%W{-+Q4x<9IfkdlGc47O0o7Ce-cRR=L zSahX&^-%d?dp3h6b#gx2{a7mldd+hEVyP%%tFZ!wl8V^Yj_x4J*?NbwGreuQ*=nyE z_>Bo5>DJPl{|d&7goHG5g!cg{AeTv0)S%Dzn}!xiS(cWjCNmq`U}kjJbHy|P6~vo3 z(&I$rL3@n$v`H|5+o_^Hr{_dh5rj(PuL{$aJRF$jb+#S0N|%;QCZOZ%f4(b0i&S#2 z+3}!6rq|~OLMP*DH;K<!G+S2DNlT-;W_WFQ9DgDyWO7MN%%3H)>g2?sqNecKH6@kb z_&Gj8+><D7I|`COWU2E!(1W8bB(O>oO*6vd@bEBxyf9Y$`SQZsV0B$pGFz*`AOsQo z!~SD@=#26C{^DjTjDKoIRl_U+k(r(4AtJInp49V3^KLT@=9+QP_3n<L*rFQK<@mF< zc6Ft$u6}-{cUkS?d<`dm{VDu%WtEwmd(5a#iG&Vu6K{s!aXvzdp#f&$z7Xi$V>fni zuY{tIl9Jx?>D84#;b=V%GFmj!&@Kv|Z>!78qpSC%4W<xgVe#X9$<3mMP(QFwk&dNY zuBb-}0wp?bv*8nqVARx0G%Uz?OCPnK`uM)PYAPp0JnXs`1_RPh6?3Jtv)$=s@tyk3 zdf;z|`4%0GgoG5{E!(yZe-qA_cY0)GIOj0j4us%DaHE7N8<t6rXeGaRgZ*>FIo^n% z5F#xw)i9ptO2<MsJKmX{3?4RPJSYGDvk7m?9gAQJDSBsP%Xd=uwE$oDyZ7%0_@(Ij z=Z`B*uTG8M-~PZc%g^`QLP4A<i|zhQ&k-sP%Eemmsdy|ME2VFzFb9%2CV>^LIY~x_ zMF<5I7JB*#cwz?S&XbQY0)3Xi#a}Y#Y?v87yMk=`4I{X$A2P*g?LC6)n#3EHg@Vy> zHKol9R)>7M<$n$Mc@K$fv5GHzG+@^Ej?V8g)Y#BI3wNx?LR|d#1^5XT7Ow7hD54-H z8W1UKt(qA5)LWW-_UF8-vWm_MI&utyk7=+*zpyY`VE!<~D&dN@EB!1^gaPsGCJtRh zN2dPvUzR`)Ce;N7(i&{k!x_IK{uMAp^8@h<(FpF}>V2d8VvPLoK^6ls*zVg`ydcbn z57aLaeQ@92yhFU2`xfv8F-aa8=F9)}iDV&elLj6x5)#3OM@PXLNFy~ABA&`|vXUSW zsHDO{+1}p1a%Duyy58#KNNHnHCIeb+haSIm<8R+qdwwt{dx6FVcUG3TvOuv}3g3pN zblmh)&T0ADj$RFQ$lR6P4H@Lvp*!=kiYwW@Fic2Iv;u}Qa}4Sg!3+5l#es}_{`yCg zdurWTDrE5q&tO&WC0EFeAf{*HMU7Zc8;8|5L{B$?i9Qp+KPP71rxE@eeHV7ygvAr5 z6Gtb%{i#l4j#83_TFFH6+90O><q6(I72faez?1UJ{dU&9gIa!VwTYwqvW<M~pCxgx z3zxUH#*<pgiH60>uQEL~D`pzk0P1(!Votf+>6fX9zB;DfNvcIc3M;d}*gL*(5G#lM zve+oG5zhjeo7uE`wC17LNe79(sDQLy+WT&i!^iAmZ84x-T1SvQx3g28eD9+;{@d(| zJKN-H3$Wg#;gx-Q!cDdP#bw*X=6)-U==FCkb(@1YgV>D%j$1<(a>gxH4ueTUA)V&C zb1PVD5lxd#mh&jbNpM&`sg}PS)m^VGK>JJ&=6pxY0aC2WIPYF_Tk8)_aV_>pv*8%a zGw>fj5%<wZXs4Xv)e^rvtUvivjxV&uJi7)<i92lZyFM_ovQns2(#N+0-(5AC!Z6bB z@b}ItGG2*Z8{9CYb@!5|xGXDyM4B%yTMvWDm-LMa6>V-01Y!GYlj8y#uQ}KZz0G4M z6Pv}$Qz@q@x0hXS9S}os<ohu*E31gMhDLreHyD`=>DUp<oLyC=a&mIQ%)+83WtQ;d z$&;Y6FeU;Ox>v<3YM0>Hb(Xe12yW{UasI4xp1#d4SgNh!g39+S2hen2MC;a*q;%wA zSEjBse{5ssx1}c}43@oX*;P@vTsaXEJboP4A$$xXBH6OoBc~|E^xP6(E4xc*o0r$> zl-CmY7)Nvovq;?N5dW;bJa@=HKO*elQy+RE{DX|`a=L8hsC{pv`q3ya^c!vQO5pK~ zgLpm>$&CtCIAzg^gV(9pCF%{`hWX9;H^26j=ksotyKuA(v_0MP$-a66+`0X%ZWx*9 znu3d1ZV%&)Zl)mp=SP|wxJEkJQGR}9(x|`=-NH%JwafMpp|f2jn{RDty>P_z%(BQf zLq>XGR~3lDZTvOV0S<&1tGowK?9HVf`%|Tsr^Vc6dhH<(k~>xn)y}wW=(14>8hkhL zqqc&erqp@1LeU3Q3{m}Wy}>6UB*vBojam>SY)vKumQ|~h4U14@Oa_Co;ol?IT?#&+ z@*h4ul$=xY)<>9iw`{`!Z)w#HH7Hm?bvEs4{bCl<Oka%;d5^~Vj}LWIIVPG`5PO&4 zDe?#C#Tdy3s>dU1%?)w?v<ixLldWU#?Ky6iiTD)B+xvAy^l29@k|+1LI*`UcASJWs zY~t&pU|BGZ)Ao<MH0i+%d{}*x+)AJC(r1Uf?x#$UQ%91ZUV=f`F>(6rE}kH7Nx!w? zWK7OG0O|B4)_dBX_o=4MD7ESa3Hgugcm%>rMh1@f)>}607%c}vt%;u6_`1_d$Bu-S z5f>L}Y9xEyI<e37Ry|h#!~SN6z0Auisy|oWNvf{3$U-Kgps(GT#vifj1!SzAV=}}) zv$=?I7al@>!;e1-4Wm+l4=BcZEzOfkrHDJE4Y?^?9x+;9&P;Hz;fWAMoj|U4X0!-c zeXI?=Rj-CJ^Rq18=_g>_m1)$lN4q=i1IG4Ww%bOZ>OL!4q8Dx0v>mh;`&!XjEtyZB z3fjz<IjP^fRc9HxDKC%Mh!}+kVB4IX9l3QxgLG#vku5i(hOK($7m$xr%PQ^;9t&|b zJtHdC@OmE+X=GGtv3D2ZcRoyKa2Mi&yZA7jj$Vkjf7!V@?g8yQ`|v0$HQd%$*?-0h zAjWlsS5g+Dw3)9%B6D?o#jv&GpjR^M*Cy*@ZTGW1+`1lI1i$vHmrl<F{w_$ujo-ZJ z$(J9pDJ*`|1-v{WTz0)7T1-UtEd}`pG1smS$J%VKl}B$-F4|33N!vi}$8M`tcjQYZ z%K@|M(@=qk*7Gu)4hHbej_&EQaIL3Ona3$H?NkA3+iki#p!JR5AW0VJQj}S@S(^MT z5m;L*eX^1YvUBjQ#77L3o$S=dNG~Mf%5XOdjO3`AZ+Xm6w}ghfMYOYPhHNjG{HKH+ zCY9J(C&xT)b=z(yDo%bjWqaQx4Jr2zea3dJdQ5Kda#>{1lEqKupv2E>89Du8!ox-~ zs^6#TG!eBXT{T;(?L37z!!5Yn+Kbxg4ztD;sx$98eRY!WFkiwE>m>(osb`uZQ>v0n z2{RApxO;N*r;x<@POWWn&+i25X7?6Eb{SZ)9z9OcPc^Q%Pv`rkKv#Dtr3@%`>vpr? zqXqm^C=QL{`SuuL;3$(|F^mH}SG;dF+9xgn{DWR*_5CIpmQwv5HoI!0JBu3`8dt%h zBG~l0A`W(yJ8pw8)kX0^<bd2))mMTyaH@ghQHLJQDd9e<qXoOBN{#vex|Qh0H+xre zB(7k7u*0eLie(g^`G@$~2`Y=lL!E=veXY_7xWABA;oP;?;5K<F)-n0l;w7+?^(1cs z*;L7$L<sa|hfh@a#HWe<^o?Dw(9vgrm;L*(pW#)P*aBIwtDumtDVt9K*eCw7{iML7 z3P8r)$)sTxmmuH#yHG{TdMv5vytov%TXQyDB38shW+@mj{ZP)AI;((Y0$q;99mL;H zf=z3O<mZ8V*QUNl&Evqj%_Q6;>yh71O}qWykNfIBm9#dfEL#Ae6W?o6PaAJ4gw@49 zei7T)Iogmvim&?=eCu&*i2MX822r%)By|?L`K`iFo6)sA114wDE#k;*^jQ@<sg?e@ zESGs&NM$dv=>AwU@A@+Tddu6g`oh@MoRW@7y_>t`7$P8#38dG!PqOypcJ_GqZRUv9 z5c&AUTP!>3{<+_LJ+GeoE;*Lz*7IvS)98Zo6d9Fl*R+@oN5-&|Hs;*X18mEh<g&|O zB8H`<d=e&uB-DNsmMr16yzw|8VY^ILPV4sg`|(cI#O2lDx>}7v)LHT2m$(!NN0*V} zu2z;(rnhp1ZQYvtYJj1Sc_x~^fJ#l6MZfrm8Kl7`=lG#%{n8}MnI{XDjs_U5M^@>d z!vnu40=)2wIGVKJe*2Q(v(l`{dF!;0091n3TP%9tYjcA+O|^*YC^wzH%;U_0qOu<0 zOdq2krALft1Af$tXg5v6jK^j2(%sl}lGZj8-aJ9xcHZlT8tLNP$C^=z-wKSf`;_i9 zqL_n-D9K%xGAEKOHT8^2I3R7UCjktt9CHMS(yJ?@Ttv35P%5LGeA$aAZ^!xKlnGbE zhd!w2=;#R6(9lQ`bTO~oRH&|2p4=nNG0KFCYmY)8=t(xeHq_kQwk-{Ppj%PHg_~=8 zWZ64MiCe9KYA5-x+WC||d1be1h`y^&Gh-vH+tBiWu16|GPlm6rGBmGpOs2IY!cj+# zULb5o002-@QK6-ylg!KvR99BUvlV@o@4Z@pb$m0~ZK-Wu$^0kC;aZ+5m5fzj_O46` zF0AVD`J&c1#A1)O=^(}yc0CAnAfGyc7#&y8kCyB6HfsU}&R~~wYaHWD;^kzcHf><T zkfdA1J%H6=+p3bon9S~b=(-42Ssl;quQtdTJ9ZPkdg(}J+XWUl&Oh>SOdjMX#bI!n z?!bpm4V^3Y@LSK6qlCe6A$6RKw3ioW9BTdF;G5{;Mp?b*V?0B+$m7;mk#7Ahhk8wm zcDY2@k9tU^FB|M{c1?vm`vp#b)8$07JzFl~=aMeQ=99=UH@L~gL1>DBu0a~m!*@3- zMO4UDy}5wI4$||att5G-NT&7H^ady*^IfSw)^HedqFcH53APW8wboTkbChjqLzwVy zaG_>Fm{GeN>VG2N3*~B%Ison4Y7{3wo1`7qx0G|Vrj?|^HL~<)IjXgAuYJQ_!=0+x zhp<k;ds$-s3TccM6xU(_8H>H>gfSuE)&m0?gzr_o6=NVv;~}vqK4qo})#DsMaEU+q zCX0ry4o5znciOrjG=G(eaR^h|dH~cWlrv9yP=5ul05Gw!U8nY}HX(ctR~ZA#-(S#n zo`5;P?-e8yl70X5JdutW9V7%EUkE2|ZFztTQg>m%_9TU;$e4kV-d(4yyu2U)*<4ag zHBwU!UH;0SVx#%dGQ7f1UTsbSfheYLzqCjQDjvUBMt@Q|pc~^qS66ohcfgnB{Pz_Z zesGp%)>fUrsT^mmZj^35gan(n(R<svRr{T96km>pDMH!yQj2tgJ3@M%5)~=x>AEF| zX7RgA@>m<&E`LM}cO)b{-~bBYq0+F%;5UUq2Yb#q@a6CTcGGojyM2f?E>DRq+%F+f zs_<~e5h<sQUFaffH_FRJ;!_X94VXqR3GhVo;Vc1s6k4VX`mZY#gH2`j`uisACS&44 zu*mA{N9>f;Hx~jvos7NRVG=GPU5kNgnC9lDNS)e`8pI}8$-u=FXoHgyC#+rM%3E(T zxY~VSTcC}uNw-;YNZ#B$B=GT!C$$8kqP0Leo`oY1lBoRT3+{U_PoOR))A$`SS;;9- z)oL?|bhAUbMxm{#O<JqP<1-$QBaS7^l;uRdoyWJl%V%^`Lr0Uv%v{EZ7ZZu{!4-Vd z(=>t<J@}2gMh}hPgI5_ezpx91-~*Le-szLoU#js5^3?a2K?;y`>ob0*|Crm=xz7)* zPf1C;7+~!|ypfp-Ifh2GGe2~Iqju9L{;)d9evi!vi?j7)UsY?WVm=xGRYIXhI=8-r zWgt=(;ri<Rv96_hs0c6I5&yyI6oUFT2|k=6z%(ck6A8~bPmf{Fsb??f{;yeA)CiCC zrK`*R5kk`Z=nqH!cYRs9ji#;g=Em&ow-*-|h#Oy@#-S7`lBLU;nbDm<$UE@!^G`W5 z_19i!>}@7_3{T88x_}Dric>^**rwcF<JnSypbb-=KY0EH7gwn~4))2?v4XWn;&ZO9 zP=>vxL;z`SVzEekt&cyj(I%eHyeP)}n_l6h{1(4osWA8?Q6{BObkl$H*#vvIho6k% z7`)gsInl-v*rqjIZN^L~q;BTYmOZ;0tzc@Kfs;Nkf1AS9m}@ir+5ec#BT%|tsPFWa zVbN~qg~gaY?08vtR#9pC^`PGO@=<r3o$cnnbpOI3mVRHxTVMF+vYE@fkZQBL@iRZc zp5`Gi&uNf=*H8JqmTIoSHS*@Ch>*-U5TV9ptf7%$K9ojUiX4zJfQ<QHt;m{-uOLO! zW7m-Z8aVdNd%PP#N*jsOxjD_XR^Jmj1}4U>BA`$ETWZ%fl})KN8|Qeu>k2M0Ph(an z)|GK4mIP$tG=_M6>U0eTzl_ZvI=I!=CL5X(&E|{>AqwDL@84$ZJh_`MFw@NtE}MW4 z1Yw$uAre&NcS1T{7r4XvSxWO{X?k-mm<M(6qh(Nv=d#ZYymqfG%_Dby`4qQqD=4A~ zp;*~D+uHJ5evb)@PK4b6@;MD)>M(I(NOOHv_UHFHc$KO`(xTxQb?%}MQnAo#TUDWP z>CfTI?ES%imT-O;TzK=DAT@^3)#|8GXQV^;(-_FQYiOfK*C(i%GBFgJjBp0tHt(Yd z<+bo!qY&yXXuMOOj$Q{LAuU+uJXo@gWAi{gd$2}*G%U+2H7EhIrr(T{T+6nrCif<n z)e|CTYc|Kc-fk<Oeg*hKF|^l(N!KabgHn5S!#C#Lpo>mmGB#@7BqTdlKu=FLrfDXQ zZ@4nWJXHUMrKfRh28Zss!<CP{UHNfL%FQcmW~bs4=3&i`XLXrzB&Crbt%gBVEG*wj z-@#nd$P?;6Ca>VxF(((1>yHfi?RASJfExDrtgPOPix1|S`)uIu`1JAKt{g=}F6KqI z&<UdLgtH}6XPPVLodyo=Z7*YBXBP3S2T-!TIlgE+uQJ`fiSe_!nHQfcc|Oa{JkNs# z5#FA(ell^D>MfeKkdxYBz(ES24YJ2U!dvcjcPY}S(yAN=*cGJD>Pg85nV*+ifq1d& zizfvJDb-fRv3(mH-xj^{vKxtSen*tx!czz+SR905ZEu)+-dWaMOqp+=ei=(K(Nfp+ zy!x#omB~fM$zG5eET3Di6jDF@LLAU|>mbT=r?}@cXyvR>XA>2r4&|5`%x-LSFS7c4 zNd`Mot_lrHiPqCiJUtyMW?el?NlC01D-3N-p68m`SXHk3a75{?=rPlXy7nC0%|%jP z)|S9{N*2-vceQ`3>v82z==1HxZqvxz2XJXG@VaioF1v0Dh<+Ny*NAI-*h;mtx<GN1 z(Q^`cM!ps7db~Ly?=kOXq1Kdg7%VD!x68rHC_9$cF!%=?>8g@Z(72_nS-MmUg}tzj ziqa5vwOns5t3bSEsZD+`z~yjk$8N94=8aBV<Yp+^S_W{m{nl)Luh6Rve%L%{#i3WD zYbNmvX4TT7RjUg!4fV?8@*l1h;@E-UdHC|Psi@2!H^7i1wMbs=<aw^C7l43UJezs$ zLp{Q~o5$aEDeGHgyWEYS#Kj`ZlGqVPsfkI3C8-4bqKh_Zd^}S<0~}qTd3b5pZR7kV zuPV?64e4i`6k>_R5S)R%Nb%ZAO0e3jg$^_Dv*{JgS=IS};78xWEt?)xk}X51JP3&w zG)uai1)b08RYtmhP&-~VhYZ3UfCE7qeu<|(4onJzYe2qcL7q&Xf#oLnfSuc5$|*|} z7>!t8J7?~!Q)~r0y;-9)>3GcN-DLI!Ss3V`KGFq{0?EZmITX%jM<IS8o0lqabUQBy zQ!Cj}7~C?wYaJXY^UKwkKj^%LespyS_ZKA`gStidY>!-Y4y5jCH*(Fgw(+_7?AKn@ zTb_7Sem*sY)px8aL3!U!M)P$w&JTJ`37>|7yjPPagV^TrD=^*mFb<kuix8%_{dB9r zIEo?K*~Di>*S#A=?5~IS`;|lF>x6ie8nFtRbAZD-gTv*oCS#50Y6#4G^=#BPXKasX zoO^~-ZY>tJus3U-6#1G1|3+8S#Q6vf)n(ARaPVu!zTXk0jTj}LtQT9Wy#bb-$tk8M zQKrwet4~7p!kkMXz|Q^~xLDnbyYzC|Ak|`b%uZqL0vqNIxA#w~Rt4RH1KVwd(LmR# zCQAmne&66U;zM<uz^9jM`&Xd$lwUlRMvTncX3Vok(YJU_e*8DBH)+nEEpWZbZg|W0 z(r;}}w&afz1^5zHt-KlC?fdK7-8|nBx+$m`R+eLMFI^XSaEQHBa8PNCbr;@mW`cPa zd;D&kHw-H%buDvWGa!4xBE;(vXxX>tjla!p{!1LxGDb3e<?~{Q3I!=Z@qT-D2vsf< z&|R!;pU6oFRmxbXh%x<I-dNS>yr`62xZ?y!p-`9H<|inQ?tH?mmZS~)EexHLEKxmG zpS+5Jqt8QpbG5Ru_`Eb4=dx%(ea&>a`Zt4UMNcy=iX42CjA8Fuww_VQ{7e;_XmYqx z;oT>LjVxVud6mHA-t)X6$SpM+XNl1V93F1J)G`Fym<1EMr?tMBer-3tUXUfHX3WUS z!7)XNgFIJqc6>C%g>f6tHk$>#!DOxQJ~L?!X7TP3$@RJpYH$WWHJo8qxt$_uyg{>4 z1|k`fKbH6sox-I;&%O`MUUzte<j8}tSprOlfR!SPXsxq<G@?tFwln&@2kdG;^irfJ zy)nz7zr$Pu7>4kjZsm3}S4ia-en^E%={@Q+3!d^ys8(7{Knt5G1F=Cqt#KoSyXUKE z64D%V?VX5t9K7s`{5I*|k|%|*gy-@|lP`%CgKS0)U$nr5Q*dDbdPj+YaofYqY}0MJ zWn1pLoA23At_!ebip<^>dL~@8#GqjucS1XsH3OEfMVBjy8R+F_fClyLLG0w+-F8dx z#OfS^m5^Yhvcr7@#)Su+JjLq_hBlegj%M-O2FLJ%^{cT%$a+JF<QDO3E@v5^i3`V+ z7Py*gRu9yx8)D)Q!f_pW!ce-5golWF$8r%OQU585P97PboUxi-o7wBJtB5)_$igZ= zU>5PCI#}In5}RN<1HdPR<}&XxsNjXGV2O$yEGw_y-`(0#gX8&sT_%TJE%2Yg_y#wU zf%){!H|Dc@qz2<l6F!Tr+ib1=ksdLO(GwR6%Tf(;`VA+6ZdVu{%a)2h1GSz#O+SHC z^_yq&Y3>{^%X(gh&-RE9!8hY=T!T^HmO{uknMZQ&yj$!V*(z>ON%WTu#%MXsgM<s$ z6WtR{hw1&q@20l!QrkKv!O0%mo~H7h`sjpUMZ+fD=o7r~8vho!O>*~nPb4@jC1!Mq z|J~$IJ%6Q*=n*jCn#10~QDbJsuQL^wTYkIN$f`0ppPg;ZQFzSTrF08h{sPa6?*L)* zcebqv<6!;4c9jwPF#>K3XfL9vcwKLAQoBT9yCqUVGudq%FVNp2X9o-<jSE<=TpEHu zLvoBB8AJ@Tscq3q1=w=}kX3}-rOJ_)T69YK!cRZT>{4|v)7XkPL2l$P5s4oG;`;>7 z{EOWk9Cg2W^<48FtDM-ODlIEYC9g>|{d}Lth+J28s)Qa5FLQ;0s-n4ECGs1kHxEX1 zmT8aKz?Xiz+2hMpQM`kUol7{QJL-L!3JK|_AOgYHd;+&{-zem;)uPiLvu#UcpDRF= zI<9}VQOwr<IkrYmiOqJ6*Z$%77aw~JIA2z~XKDgo<alWAYJCJ+z5_goveqDC736JZ z*3hP8J?7z^@HUe%sQi0{(Ii)x+azpmWF!kg-!+~{-3Unh4bQ)|h?y+yRfK{0_12!s z$JjH!g38OEZUmlyW~yo=S)jWJSXQE{hwY>(3-d{T`D?q`2AQb339F7N+kCH{5|~cu z8j06z(jGJidu1~{HUDGs`_W}VMC1+R2)qS-N+K?U721K&c}*+}RGH<Er=Vg@wx1=V z)*PV0PO%@^=ueq^wK;aQYjs?Ry?Ul}iyu9{EHRpSL{z~F0do-9EF!Y6p9+eo89`>p z-B&vWru@FcJNPerBvblRVwUsw-Z%ir)7a(T0z7s(T67D->L;!D>U<3^<tHq({jpE{ znr#R8L{B^12U(8GBa(LegCYBmM)w|BW&%?2A|%!I^njO_Xe+C)g(wicgy;SlmC(9w zvwWi18~$7WghCleVpuX>{M}_GjPUYURkIDv&KsOGe{uRbT~J6b_Ye}FFfT)zZ#I)E zE=MKEtEVRY>6I|=G_W?wdO8vf@Pki%O^Kpl<FU=j9Ic+Zh;wCk{#9E+Zw%lPA>=;3 z*7@-=lUru}n5(#7=(!3!?J2z;=SN>aU0Lx&kq)ifhO0;P;0({Fa0c^fd}h#ogs8W@ zR=#Ra?1)AoE_6KlrfK;WRx;P7#8LQkBy5OfKgLIyJYz1;LJi$o`i@##8KhBv=Ud^7 zhzK@Yc=sR>CChiyIiiM_-RB!olviEp^fUaH;pL|g59s+P3hgQ>@!5>hC~31I4`+^* zlj6~i>JPpfLG3B8n<_$26f}ONfG+#UNt?V+Wx;0s#tKKbwY>R;A(qCP$GXUtBo9f? zEZ-gt{xDzp{``aBmC5`u^o<uglOp_hrp^VID-5qdTHmT&YQPt^X7pz&y6$z=U^zEy zX;*_b+p}YEn|X$)K5DzObK6I6_&D95Q8OIQoUoDXl_0d-|Eg*8i+;YBFn#`sMtkq0 zQ8<4WK<FS6GX)~<8qKYGY_d4N?rsEz^u$bVFD4sG!Q_WWMlbgpbYXh4MwuyM)B?Lm z1_=I@q25|IpFq}R#&qE$62<ZD?7^PfpI)!LE!$((*;|D)o>Bm9f{tGa%BZow$f}Z} zpV?&7^}aHrFILLTTW?%DJvq|@)fuW4;*R~S6}wgW#(l)IlDE+Gkok4|5tD1&VK3Uq zuH%roS<<p0WMf^OVfgtE8p(%4=9w!S@*J!c`V_dZ-rA}Z$uim3>{nd8`+0MpCgLYh z<Qb$Gi6vQf6!#3lJa(O56Ahk}CK~Ob1x}SE$#b71s<5>cs*sZD>6h)a=TP{B+DI?b z<y$FBfFpyuJQ;j?d`;TTiO>t5+)wtOajw@Wgmv*&ySLUi@V%r>i8g>DRk~goh<rf( z+4i^R<osE(F1rTB6|j?(R=-KPn@?W8m4j+yMaM12r<qU-2H<k{AUGjzpY|@iq@U$P zUff{ODidmUtmzW|^1YW}yDc)r;={NdH~Gnwc+yslzaFqrYK5l!VWkmJjrnfe@d#X3 zs#^o+mGJO&_darkJ-y*+lT#`e#oM0LL9cZ)%=T*#Qb+>(MEV_Oe?Q5^RT!NtC_tIb zJ)LNY(AX|*y)4Nr-{;Zr&=-~t4mQ9spjwG}Q5NgxSmJjzpG~G-tCM-X6{;NdH#&g> zJHY=?G+i#!f3>+3*Y4c=N9{Gp9mWpwmjBe;e|&f;*0lO9yC3_6x2V|e>8i+MH4SCe zD+Y~9ZuPHoSq2g5<JnbC#6#lmjW)INwPv=+AEGdC7%32y>{B$Zhy<N}T%r%KMZd_y z8jwHvCjQ~=x7S1}o}I|wlc9PEphXZk;oEr8jYfNp)l{wwbb>`#TOFcoAW-zqB~g>^ zd659Y<yMOm_T`m}kFJ||xFmsXNZh>MwA-SM^G{)E&e=RgA7=1Yyraj{haS`w#xca! zDJWdkT>nzP3Z&lk!5ZT!D$(|ziz|teJ{`;IH-R0_8QQVU0C_?0Q-pX7th`RVcOuHX zy=@{i%V#RK-(RGpsFc8OJer??-3Fk$5Pw7Atf(Q`v6w?w#M1Rk*xmt~EU6$*O6u}< z;Ocsr?eGi;{nOXjU#%r!zmq$l7)e^2)pbc$rlVV&MjHIA)tgAFi~0A99PVE?L?$sw zTr~2isdXEx7Lg$H0Wl7M&+$0RZ0-3Qqx6K#%^m!^sWNC`K9kRl`;DzvF<&{n4EBn2 zM$iFdZ={+7Am2&bZt$tK(Qlm>7hCq+m_&Xt>B&onc=VB0!;p{=bVU6a9+%bM#uEn| zs(RTsC%*BpV=`H_ivDWdS7U~xq@_=wQjpj2ge?qQ<+6Z&7P6K|FZ3%4qEQ~cW5pQ3 z%uXKl9j$!GIL8<O%jr`L)-eyUtfj53y00&|zrSByMJFFo<;9rgzOTpVgE5gDYyYA# zgrtEU4=>=q8}0i40s_($?X95+ML#l7kOZwH%#$K+C`<U>tdW6<fe#?a;AbhCc4G07 zC(f{ou$A`f?Ae2B@#BtD<HaAZpr%I65-dUae0G@?g2Pm~ofAI(N%XPSLlu76Mm}R{ zJ;XMqUUXCEt3EEbiii`ZOWZ?}ny|h9#BNPEEJX;7rXJShi$?haIehos*-9|n1)1eQ z$HiUqccD`11{xH<sr+gFpZ4A}s>$yA7PTP)QWOzIiux)Dp{Vp4P!t<QAb@m4dI>#1 z2%(CCqS6KFy(FQR5Qw0Nfb?FHfJiT)2M8qR!T0w+=iYn9xF62A=X|>PmI2Sse%5Yl z%{ABDgODPo*$;U?ha$YDTaoCNs%dXpl|WAw(Ti4lSDBKkJ)ffOypHZmS=ps20t@Mg z4rZOHo#(N!G0>gDEZE&=Lh=p`+{2IV52j-HTOyZKxWp$e=*esM)jkCmdTxZaOh4<} z?bs^w{NV9h#JsP&vC5oG>!fTGUvNs@*sVYN*)3RQf74<<wHP`CP2i9E_z)gV#skS_ z)&C1&M!4))ki73&#`RBc9G#pX7NiV7>fN#<a}1p*AU^!3LtB?*`F=rpGDzmoChB4M zkVd=gd>xgJ)|kU*#gE5GIh!_?$ArB1`4Zmu+3qwQ$@kxhEkhFwcc^5znS?S$fUrq! z8GBK!)?tBoFcaF<GZLuVtLLd7C;Q-je|AJ!{^ZP+xrJb)Qpp}M5QQ9W+{|hJ5p6*3 z30wj(I=)g%>q~C#+ZHk34x_=z)3hB!fNzst(!?_$q1gb*lxD~1cFp9AIP`{MDZ%;M zeZ?3D6S5Ug3Te1lfiW^|K=}&QX`|HscVt>RCOO2a$dRlVxc`@;Gj9=LXy~d3c><nc zXD0VM_aBl5B5MM)$(Pf4OPHQQXuCHEl%?yPz};;-zo=0LdC&CJd`d@0sgbLG@>y-! zV$d**#h0yk@uB|Werb`4N7@J0(P^fo>hPzs4&H=In!FccU;n(~|C=VpqvTNFQ%Qw6 z?kRdZ(XusQ+?7gci9hNsN`~8ZG+?;O1GrVF)<!?;v14xY_Md^^HK7k7(j{=!a4^dG zu%>Y*m0N19uX}#K+YIBREip`L^v!1;cf{%(BpVF8>tCi=kXPuJ&Ezw6Y6u6lJ7d+2 z-@JZb?w1m#KWmV*|3QAq0XOXI&&#{Gbws3jy1yC~>NO=a;V!cjEm6H3QU)8uZ}sqj z`z)e<Eb*o9hoI@p`Ce(W^G<m4zJU#^R%9azOitn@tme|Eq3I<*+S_%)8}G4@Ya!iv zsrgRerIpP>n8QJ`$@Vrq?DXl8dfjemAuTw!#6SrBpm7kUvXKulZ_jp2py`7B#7*XQ zho@Nf|G;e>RPRIjcM>A2UN*f|pqJ$F_&c4nUC8?LKx9kH*_SRtkj38`>2dDYLqZ(r zQ$*9v?fUO{ae;vaD!oV|yf1%I(|EhRVSj;7QEFjPdtq9@58suZkeSGDI#Bdfqw^_c ze)QeBK(|5^UJpll-09jQsf~7a?^2uv7f@-NIDny&H(M1^rQo1b3J_l0=8sr`Dc5w- ziS!ML8H+${*5Fu!|ArxGyNir8(%aC*&D_Xk#jB=M(_Qw*`^7Yr?PHM1;wdjOzDO0L z^KU`h8ND>SOvTCwdO*4ggXz0R0F^J7mhGsZEil+8B<f@v&xqF-*pf;5lOYm6n_-s4 zK>0Fdfu({a3y`4Eqb+yOM`~(2g<FIYfF;P6!6Lz2ZL;sl?6uf7WdQw9;L*qGPmT+Y zr0F9y>vpVp=o3+6JcMh}NC)>txJlq#D0rYXa&;g!a6sL7+cY!JV!02RucEJ)_nrmq zR3bKJBx$_YYc}4a?RUT0$>J^SVm?mOPRv&~yeXkz+kdJ~&udkfsCI8yV&AS}Y2$%e z#R|q>aLdkwqMJ<I9%Rw~7@JpF!kf#QhU(Z(N`tQFqk4-s+r4QoPKL~Uj1Ck+7HOH( z>pLB$zNb)(q@P=;;2*K1WHFsX8SCcvYr6`4JmOwGK4Lo>jU2qAUBpRGQY~tY$%h+c zh)3HB*41C93}lwGcPKG5Iu*!~w&kv;-?;zYvhW{3a$Q{S`t;6<@mj%YQ?Kaq5F4R| zI7#Wirt>Rj5^|>$sByhbI7!u$8YRQgFH^dQw`!bw@MIHIwZ)q?gU%#gy-%7v8BGwA z8G-9)2L;3v=NT*}FEzEKSvCtS<!2kr-$;4D1>4!agaCk@Up~&2U0<s1b!+@1*!VM2 zXlv0#eCP(W(QDn)9c_XAp)KCOs1qCX=d+#^y5&Qj(+|JT$rN3Vb9dl#i)A^m`3W7& zsr+fu<$TF*^Wxl9*&2xf(0#2zKO)I_@2RWJr=f&r{g2(F*#QFNEg<XVCVIg%gFUb- znT}K=VW*5)JHKT0YqdL|2Mi1g_v67!c^Je4+1L5$N}0*azM9NRpFCW?P}vFl`1B8} z)Kr0mrkhRGT9LfBdJ3l2i-zt?;jChl6|cVQ3u42Le()zrY~}VAZ?{TVpd@HpBx4+^ z`auO;(bl|~YxFJ8IlD*cfrk<H_oX5;w>(|@x-kWV)+Abi%KEmVG<h4bg7cBQ{}}?e zCc2#iWj(rI9<#5W_|R-i#>L-Pt>@;otXxmog}$h);P~Vsk%o=LE5@`=+(N$g&@Dx& zfTpCW`yq9<3w90nv-#n=DIqg_o9X=p9d<1)&wD?UF3VbH8KB<KT6}N^<v-GtM@{^y z^DZ`?KYYK^QRVpk#``r2a0JW!W!f5b;7!w0eLn;$f@d2(&LJLxX>IhXFM%`-!uEP$ z6Wg^<V*ZmLQeQ}B;?ipY+FdLehDU?!PK_(NRQRki*_sqQhZt=7vZcmmU6UlCFbBUa z_VG*II)uaYLB{*mBD~4WkXCtBP494zyOJTff7vbqhrQ|Ea};#n*LZNRM&qtq0p!7m zQR;20vZ3(T4)&-=P-nRZ)2A7uPTDTr?HoQ2>^Uct%?>W6UUU?7U(L6s*%G%Zz!Rts zEqfJJAH5>Ql@N6o_ZuEZN+F52I+G`SQr@y5?S6Z)zSu~9f{OYEnwIKF)-s9;e~fV| zgf-@ZxSf7(aUPlhE&|(8^e8tQBegn)arg<Q739fsuw5>^GY)&msJ;A-k7ax0CuQm6 z)DWwA6`|N#=+)ZKGXLybTAlu6W3lebxpMDMDBKiwskKE+$(Yqoy+AP!@g*}D*W5{R zIp2FFd|cYk^ovf!`@%J}z~T?4&25i~AT_L(B3|`FmzhAnW7dn#tcYan9d$pFyte<# zz(Pm!R0%T`6Y&JgVJNjri#}+48P=uWuoVXjAL<^Cd;#rmbNPN=VO#OBo|N*oO+&T! zXM<?vdf~%q+p~ip3Cyq)CdbiVu?dLAg4Dg%E$=mmbnFyYmfWjy+37`8_&Jm;I%^QK z0q@qE*8-Hm_&B+Qf~eHO@0;9SME0FEliE3ch_Lc|c2hR%5e_bM6S8oV3b`zryq`s1 zTxgkUJaf5yYsVgXCOl`saK4h8Hu}4hb%@8Zm&D)0L{<@Ujiv7X&XFuPtS>6Z>GMXb z8Q1;Ey*LN3{4!QWaq1PVdr#fb+EqKNACq~+zdr)cMeT19O}3`@>aEdLX5Tcnrtvw8 z{}@*D3N&MH{E-OMXIJ@*X1Nayd6XRZ_J_)rVFRzCPFP}rFS6R;p+(747_LCx({Q13 z^JQy}{ZJk0@o-zd&_YXnf@6WVyPIGts?2G2z9mQU`$!ak(LH*MUBxcBy4u_81ky59 zkP7#nL{{OX9^c>p0Vmhw`&P`BMA^6BHdL6%*H|6P&?sgXu||fQV;&FJ(p&;+IIma1 ztNh#8lyL<{EW@k))rZ^d^NB?hao-S;75DLewNLEQ;y6VGPLRiNmDTDdQ5~U$Pu`D4 zBvhw%<1^>(GA?`{=^Z*Ib>tfwYD5)OR~u{tl}nw<6R-{Fa0h#$)5eU@9_GMP_u(`B zeFS)D<87j&u2#%xO+~#18oa_4M}=@<EHVu(QZbD5efE_rusT8ZN~mw^i(9D<WZz%y z!)sX<^C_OpRS3fQ1_er>vYuxlQ5F%ga~Awm$ab7|C|$7bN;qhpp{Y1s&zAC5Pw){v z!0c!TYIvm+{gMN0lhgKx=!=c<DV078Ab*c8yuQZ*WxH(wk#fCDtdX-17l@+y5xBjF z`&|5|s|*h+!2!db?T5?UUh5zAq20_VKi_x{aWE*a>i(~NK8b}-8^Zq7$Grk$Wu=c| zNeL)wBb8e$01=<iiPy%%Z#+$}+eRdRv@HY;AEXDGg8h6OB8Pm3ryvrC6e8+(O`xVg zQcVBD?@Exp{Duc76KKYCYDH_M>!zdFCY}OP#=1nR9Bi}OKd~(>?uWm*I~4E&yg<E- z*xtI<*}9_qNU!@NKaFT8ZP%-Xs_{&x2hkMl(tk7{A`ieOEshO1moN$`I4NqbqbCRp z-zqaCW|2*mGapRm&X5W@@zamBN!jxF#atM2PhT2;%;RI<P=JLtcYv{Bt0q8{Q~mAF zb@3v9Nl{VXug{X95NJ$%I5x1G<8c3g))bj=Jw;{_L-p7yyWF%hJUqYu-fw^VCR%SP zQy~K-f$F6UZS}_6vG;rqMfHFN;}aarpG!1MADlxyl-K@cKnTQd<-+)Wd^99h?QKOX z5&W_7u1l2-1y3;0Tm93I551}JZ*!qk+`R^mz8hwP{-U>!@w42Jl94HDY&5sAu_-Dj z(N$AZE8V{IcAyA{Gk(A0-
JX?s-cd$`kkeBZ@6#8+lP;8in)wh|;siIyC?OGj1 ztM?I^q5^mH7CI~jpFPkwF-IroR7aa&+GCzb->|unM4PPrbiroUX2DH&*#f`#CZ=M{ zmv!!(M@b-nhh!+5<)z&3E4b4cd`fS)AmrNmN%pq|rj-v#BcF@M!9H2yidGr>Gq%+J zkG=nFH-2Ng!7Go5(F>_$9r)vr?KN00v{YOO2dL~PoA{4m-{(lp{F(7a-*t`O!BwAR z5)>BGI8=Dvw7ML)^5n(}(_>v@EqJTu^Mpg!<^}d>cvA4GX$!Cft44hY^1r$xn3N&* z0BbiG2+cFaNQ`IsJzzDi*zi7_Z5s4<eCoyRWTP{?BHL<0Nnspb4359)c&7S0*C-k( zx|)3jZLesrQxh0U+w}jE`Td{zt?v^nj*GSvI$02jhyBy^opNQd{oU%xm3m*|*nFcl zmxJ|Q=BZQr^I_+N$4c{+uttrV6wwL3RCXt<tINWC@?fzq;k9LbE-W;`wQ%0l!V)-y zkEzxScmvnP5Bj^;Ks@`UoxRX`tgG2foUfM<P(F0U>oK<f!mJ?N_`@4!l;{(w<_&rl z2rrFsE>hKuv6KR)v$sOiF>R~8kAO0FF{lXmkfz<aMFng4I1j++)n*uW-kc8&(>D<N zeF2^GBoM8?tO$iYB54M`3|2wRJl_BFOJB^_{(YJ-Q?*b=$@Q!zL@0l?bd|rmhMAX2 z$pW^ee_eW91&N}W#-Ly$J0PKXYr9v)Wmwu;n&}Buq1;z?0zOek$Q7@jnNU*CjR!A= zCcxQ=x{_ID=gXZZT4Fl)&D^6KJ=<>YP2U#G1<|+eV2c7UX-xdY*0IK7b56xYkx#PE z5{pbXjrDh&widAuQ)OFD+kpBdH$}XE#OrwtGSvm@P3KfLid>Sv+I4H5acfMHDmB^s zHd$GUfcYpyxsu2JB{3`F;&<df{wCLFOtuo6Rs6^Qe7lrf|IMjd8-q*BVd>@tSOAOJ zmCL~j-oK|{632tO<YuPR2ZWoHfWAiynB7j|uoxW^*;aJ$eFj{o`~FH_!JsDLs_|0n zfKZatQ*2jqa>-2~>20G8oC2eY8gpYTJnc`V@UZHx&L~$$l52x$a$(K8$i2>g0n=KH zI{UKd*k!Lwqg>2^Pob+XR*l<2Qmvo;pM;)u=_QN<1FOH=s#bh2<}dEYF)z~;Ry6id z%%alR0>4ysvA<iESKsH#ddROz;+S49(f7pj$DE#0uL!PO3>{PhL#ICj2lgGI$q#eq za$6n3IkeRwGx7U2&v@{G!z!qbdDKob&wUN{L2pB2!_c<<4d6yewk1rghXQk0B}Q`C zdFz4D!e(gERz6;A(2&+(9t9h^ZT=Th-f|-dCRujLExkINzb}@b9`G_*#ph+|{dW^q zg=19}IL`QKE3BJ(Razin7Pi#pjqn=UosB$bO!kTJa~1{)taxI72q5f>R%?CUDNtiN z4k{w-4~kI97F;EAXZb8DF0g*St7WnG(~GdPV>;M?(-J`1n-t$U!s3AP0*x9b!Lyf> zN>Xz((PvWcI0g|748{tZ*fr9}3|pM4LFKv6oHVwe{FUyOMa)ke$5*m?MDH`Sv5tAy ze%OgU4XmAoY<T)&tu8cFs`_THQ$n1KY6Y4%7nT_B1Sw@Z`i-7VuN2FBeUA^N+KZR* zywv2DpTR!H{9D6{5}iGgbhG?HzJ|0r&<riit^O|%?_~dt49i?0hXQe4{Y?3%iksN) zGzF+>D2+CeW`HSq=ezJsy)W$3zU4Rm!^7=K_{o0hx)S51Z*T2y4fUJwj61Ib1HP$Z ztu3NktjyY=IEn&J5TF-)+yA3v1}GFG-T<+9x8W36cSt-OF|oztB`iTThx^L+x0W_T zWtn_CYMf#krEX&FufuERDeUCI*OgN5A8#7)%4K-ZIP5RC3faH(O04Dafexj9SnV&$ z(brrY@31g5HpnM@i<nR3-Y2JS4T`?V1sUcot+IcBL{ToQKiS^+ma?5+{z|j6j4bP@ zfk;rHgR^mw2md*S-oIHb7D1&L=2$q}4<sE&96a%J@JsE};wi?YCGZh$8Z6f--n`-s z+z^DA{WdLq{c(|Ly#bwSn)=X}`wrph{kC8!Gf6XlXHPIfcz1QjFWi47=P}mt4Su9a zdc3fnZdAhcxlp9kMWKK|Wh<CmcHf`>{><dKmm(uOzrM9~_TthK#K0ggvR#Dh!i7^N zM@uDXS}4iw)B{IQC4MI(Mly8xp^rh%!x=7C$K}+L<>mR}E8j$u+~Ctj1gVPma~n;R z_=L<amC>g)N(^mYpm@f1QTMr(U32st?1xsRJ%?|~YaZV9n^wfi{uf(v@Yp*oU1N*w z4$a#iEo1uPrx6&7iFU;2S*|B@&s_6^k!y!tkl%W7gR@Y+=y`WerW;8<n9ud%r_LV@ z>#;P~%g^L^L=0VrJws0~ik|*A*}CO+ic_J~$tttaXV`;)&BVCYx~-jaeem}Y)!}}z zRsgZQ-;#7xyr<fFgjgMY{&yDo{eM<5_`ldt-~W@CxHQ=m>i9n+=4^>(7F$XU{@cv6 z{xTcLZgm>;3Pqiwrb7M<pi8P}n!^6+;JPr)bxBy=2fEIj;A*BV>=i?Yi*FzURtTK0 zsaZ}AAc@#vI2$m)94{FzhcHESqpfRoE<xoFE?)%3&|;lAYMnVohD7v$otMD3ibsII z{YHIT2buHxERA)L%Q^@za0jlNWgS!9rM^pU%Pk!kS2MVuB2i^t<){yDxQx#T@?u9$ zWFo4i<y}>9Y-ZZH6WN_L(se6S-Dq(ciE%rV*y-7COFi4)J33@YLw~9x!1XC3IG6M? zJ>LdS^AFS7xB#cksqF^1M#M~%nE*|lq6*;T_e$38-Ja?RV+oQ`rXK_}tR1juc1*dr zj)u+kZill(+NFC|cd1Z$@s<nB@l$@Xmnox=mRWbeOc%OZm4)f8%yXWyP(25Sw`p+K z#%kx$lJ>~<i&VKOKVJOZio1~8<*IXE;AjsIkK_$c_#WY?*(34`2k1M;GdU@rmF9kS z<l4!@1JVZ(MDu_p`_>I<Xi1Nq1YXsme(E${^)i&1`)<AeRLsGL(zFEnw+Us-WqiI2 z-h0UaK_8c0SQkng0Mw~79(mW@rE*Bkw->Q(>5{jcJN?$Z%{+R;vFj<aATSvJfEL|J z-f_U1q><bHHL3p@!5dv%{Dcc{)xDO)YUbHNumbwH%7x|dv{$5T*uu%_{RNQ4VPuTI zP$5h=CMKkfOWcLXB~tHk)EOh-<s({%EIXwB78Z*hZ8{~&fB0=7cI|s`Q`)>%+N}u` z5{2$f#8Z*UcUK1NiEJCba^2$tgpB}gZdP`HopGt8XI=%hHZQp4%*e*8V`kQ{xVSXf zqk}og%1X2gwHWpByYU5v71;p)UJ%|Rm3f}g_DPGH1*6Ewg=y?`(bTE)*s`aBtbOTd z@g5i1z=uySb{V>unH4LM^F{(f(C;lz9GfhyZ4Lrm()k?H@0Ou9I5=2@LT!T}+vZbu ze?v-3Vz|)H!Z&pcIkoCF{~+a*uhA9D=B(l$E{(1AlM(k}4ah7!P`6+vAom=PolzVE z3gZ*WOZtWu`KQ52L%iyq#~C=gWapCsgC2`M1LCMX;Za)(Fo2mqN=r+t*|ewW^R0o5 z-ka0h7@ittE-wD0zZs0(z)yFz<p~5(1skZ}D=k_4Bb@|um+Wc|d%7tXbqXk}C!I1a z)hgW@YnaRg00`x)RauCeZ~2K3(CrMniZTtyqGA(B0h@X<OMKa0e(_sP@ScE{_D{Ot z4(~D!&^_4Rjn!UketQ_&(4%L1*CAuJ3$6vHEIYJQh6Y<1E{Gz%5^?OnQVsg&s_E4= z7H0jt$+Bi^Z_O&lhW0qFTPP13Z6|i#wGE9g?fQmXDvTT8FKID!zC^m1&c;MV_hN(H zdzR{q{JQ;jz5Y`z+#y3uRe?nI8l5#d^6pRi{MeB(*k06Lon(#)v?~A9e!)}{in;w_ zj!W=<yl}B|t<rgujO8ccPdC70{e(@twS!NrVt%KIOmP`nWaOl>rfyD`faEvh*<CTt zkOL^nqnQxU?8j)vd1Q)nz52J-n9qEARH^zlP0aXnxgfFgr2D8|p*`sZ=IUjUXFlG4 zklz=X_DHz|6|<{NB9UBFP~2z)^GoeP*#{yLAU#b~B0V%g-Us~MXR}QBOGMB1QJRof z26QTnC3fn>34d{r+z<o8HYLTkM)VOD*B8IZvL~><6?Xugkl)pFGoK&LYO2hziB6;+ zCNKrw7VEqI(Uub{eq_*Z=S?_DZ44hh?6!^1n~l`pdaGZ1mrH`|CH)6knVbKIzV>R) zW{#U|s{1-M=bQ!d;b?^lM~QsEYSQOe3FkXVxn-&kuV+s5<qkesCDy&4d`&~EO&i!N zLA}^LbrZo;gn)Y#Ro{EVM+rW+5z}j5B{)X#lbp&aT$ffLzB{gmZpX_DIWGU<npUaL zT9dE!EJx0d`s>na+EPuXn|7NjOZ3E_e?xCS=>*>~@_aQ&HbSAmSXD@I8ru+WW48M* z+*5o>lfXgl6aKw2q_gaUq9+F#_h43H99d$X&TB2R3Gy;^N_}1uUQ-98{-e4B-g9Wx zN#^(qY?kptlp8<^f?&_oy;rcGpefI5^lx621A!D*x+!jRqc!x6r`E!BmwsC;UVkj9 zKScWZs&E6OoS^4F?4Q}-Qa0xJV6xFJ*1Gi!M!>gItmz`AoW67Au=}9<uvo9vYkZ>7 zN3^E1kI$BBo96Li;#f->)m3*evemd!$6g}UN7TfQI&SBis=1o{0^1D0lrQ^<L*CI8 zlOHQiv5E=SenfBb`bj3W+f5sRzP~<}qWvYdUL6(ie|<g$5j$Xx(?oBmKe(d&K)app zqvcxeSt<NWr1(=if)+~~dyo0SdM4-W=SjozmA8m4c>%}gOs-H9xad_KTC-Vid%fXv zSiHO9Yp2VW<6>W@q8*kxcPz|SkUz?;$I2#PV!IqE{572?7_AU?jU5)ym!WJ1&n5g0 z?4Ix|p%;8ta{CJd5y5zZk+Cz_L~Bv;s|EMa^D#wi*A!`S-Y9{ba)OC5xqdf{%qW|= zbR<zAcil8NsQEZ=2P69B)a>*OCuKCgMNwkQIf32(9t}44Qg1ilTS?S?#QG8~fUqO& zUaz1piY3u2g?5Jcnj5DpYfxf4IXIXtc*SB3h8z`HoROe?!>k!Ij8vU15HtRb^m&aK zj($=1n+Z7@O)!EKRrX3A*jVGOCfv;!##O|0EJ<aPYPz;*>Ct9LDo()5ZMd~dLS6#j zzu>iG)^QBhD9)#4*GKI2W=q%8Xe|$z#Md>k-%vNku}Oc?o(My~J=&WKGTe@JoSZt5 z-EX$><9AC`Xx$L7e>m)sz}i%9&&D5Vz9!+LY0cxD<PkJmUgj(K?O|j1_<1X_f1H_R z=W5nj6gouqend|hMMbHMo(#>c9)+PoT$hcF64|X=%eTEv4EH-8zc@VXR`35DC;1)I zqc|m%+?CT%F<d9vTCT(~&Xaj(Lgd;{(0}$UlUmhD?(?^<ex2S3?%-S(6jCB_9ZWKk zhL<-<MU;bXX+ZCUX()!?`)lT8qR?+mE#F3v+a4W>u2XQO)gYtc*P+^zE060n4Hn+7 zEKZ6P{16#n+#xe1jFA#<!9$?&eu@0lWl_V?YEKV^6#nAnD^zqUvi7>`aI5jj+93v4 zl}}y|+oKMLPH4%!&y#c@FMF^4DidWln*7Reez||+p~>;;wY%6OH!DbdE|Tf~*1jE) zN0g5rR#F&R5h~s3oa$16h_3vm?1LkZVG~u9I?`dSFg@HR3$%vmZCO(bf8eeakP8TD zq&JWmoIXhGz?5V5D4ke~mxptUpJ`CSUUh7!wA_#>E&X;Nu8~3@%Ro+BgThzE*rwV& z57Dy5-rhgug!k!cX!yO_7fAT{*l#RjEi+bmrY4XU{ZyOSlFBYP0u$w!Os1Qt=2R?{ zwKqa)S1#@F8J?>tJ8v4ra0Qm}ashehmtV2qHMbNZC2xl((Y+L6ce>2yx_CRFZ#hn} zy##;rYw65(I-2XMR}#o$7$!X2fW5(-w?y6}daF$AjT<SMPhkneaxg<OS7@=QCY5TN zuz6C)eQLUU&))KyJCWV+^e|d6F#k@r#zJNUKl2d3K(qnv{hU2fqD+hT;|zUBh#w(l z<QcHEx<`lMsi<_iK)_^^rHdpyD)b8b*D`m`-`?J(vj+y5)yI#S-5hg(nwTs*G$L9X zowWB{bRNj^2Q8^shB6zsjBHb2@gCzBKk)rCVUrEK@-+5p2&<7j;o|ZoAD0rFkj`;` z*;zG>g?Fv2U+k%^{huqxtGi5(-gcvbfny?IS7pA7qOScv`Rg5r5#4FEaq;nmS>;a{ z7#NxizIzOJydQARmKh!zD!^hN){tnD1bl<mA!#SmlKf9=S^!aos*b;V?jriE#pc)Z zcn@psr{sFa*R#;k{LP0CsaeJ?dnw(h%{fBZ1a0R#P)!+WAq*omSgrE7h+tePa<hz3 zd9~p$a-v2tfn^1c@Go$}MvlV0z<TnmA{)1Ko;Vo}7ctf^X&$%6BvM^qUD1gA1}UMJ zfWs*4G*iI?4h+%N(`yiZ;Nal!WPMIAKITi-pFgj*7y30GKYqMOsILJR8oC8dPq1|3 zGxj#qSrU?MUcD-?zz1TNU7(7Nd*E|Z0h8bBwV!EFA{UkqU*d;9PkVcH*OE*sYRZL! zIJAJVQeSPb&di^q*8p|%?WXj&Mz5wM%ctWd9xhx?#k;Kr568!cxLz!sxdP7Gl}KkB zs<cH3ISxr|F}_pc9Wu@!Z^0_}3?fVaL8L;{>z_w0zFz8kDgn{*i3VhT;$mY_%Z;P$ zi{n5+?F)1B$CTA@DY{B&8-cOG-}_U_F%>{R<`_17E!L;_k<m@Tgz<}Ludo-f3xq*$ zO>N5fd9s{=d%4ZHZ7ig^@wTT|Y1O8}6Km1pUoEH4zk@Vt@g+=mkIxa4{gFhYn?2Rz z(%993=S^etP=Pk)B>4IGpMPLgt0!U;jiGr<3%?LA6=K;H;rJxq)~A2c{EF;9;6J#h zPi3@xs-;9%`tH?d3x8>io@;xGk_}a_I~J_m2_x|GnpAH`@H}!O!D6c}j(E~xA*j~0 z^z_i~yo2|y5l6LwFX?63HuvW0mbPtcp1m=XF>t`b2YtjwjDH&@O~mR`DhI^s$z%O` zoanfE1gh`1F?*%=mywz18y?HP&DwTiE9=Q{lZ>XcS>wscRJ!qn5*ORxFt^+e5x9m( zlBKq-wkRp1L%jYMl4np>(WI_U9+mbiH#b*SIkT#;Sm|^5@%g~DLo(yjjdTT*F=*Yk zftgoti-t5^==#LnOu#Fqt){m1r#4tLi*b%AnB%5fJ@DN1+PgRf&o9=f{8_pQ^zf57 zZvOh=!CVatYjaQgmGyZe!w@5xo|iC7F-~(-C$ycuZY=o9)>f+O*}UVPK<81!KQB`f zGL?6HL6|2wp2vBCclZKT$LQt{5m|#mcZW0JZ7`4MBTKGtk55wfJ8^u)rlVxKO^X4t z9x+yqVy|G%aj9wRa}8!F#$CH(@M(V_Uj_C4L5f!km*FX=4;JFcF|S*cx1Ms8D0yAV zuM~H3<_kGGelrqw+NqcS3VTz-=yj#-8<qO={6`)#_LP$@ANqD{x$Ob^<#OK658gL6 zTux3jgk1KwaXnqi_)gq_$XprM?mulIr)H}YWp+DpW>+nT-YC)ijr`vobxGEsx7>im z$~FC9xzdtVAtoj!t3v{Bx@3+tBhk82fK_}h0-i3X@jLL2#$uZM5QQIWOJj6<b>z5t zG1V6>O4(RedT=P74l0(a&;MjlSe+mHR>h{~NxZU)a$NrA&iK$PrJ*u=AD1~Om!cD! zYl%~Yvb)cmReCiJfkfe*xzv_u9D)8$o7Eo>+<eqoS$uBYX4;@Kg_u7vF$=2~=#Cyh z{O0XCd>K8UylG2>D?_sONc(H`hEhMK_o+2C+DbA;R?8zNSIX3wzF{JkOVs=4cC>G} ztSsCjtWug|8$8M@oayQq#C7}d9>l->HgGR{K8@P2)}8`WciSzW#<8BT)BeY$9#Vv& z<BOGUHaE_R%)BjS#<GUl<Ds$Ab=7&pt&wH|OFNeMm1M-YU!}M5G84MqTxRrOeP9j; zk^_{-LhI1ej|f6tnM8@%M+8aePQ$R?%@{fgICo}VD(##Oj^24YBeIx^pawyHy67~c z^Rm6huUuc&JiFug!!7acBgk8U8^@vrPg|Y};y7*j>{p8Pv45hG1jI1~Puv{RX%@=m z6r$d0uH8*9J9*nUcSxk(g@Hx%_N2)7DMWMp)QF2gn^q_IIefLg&7xX}!u6D1e8@s0 z>L0IpQdO3}b>zmZteYoZGO@xCb{+fOHJ$e-JOKAM&ad5urZOWjF+;C@TSJ(&CiV67 zl6~S_Wj|&sb{n}gME2!&k3jR@%cBT*?W~uKmdnw50?#XfDR6Aw);ZuD%Z(8e?lU(s zK;@G`kgupLXD;tzDU+KcWvcfGJF^#WZPycZ(wBp2IG2hi<<{{FBayyIka^VImB0>> z;VF`16l7pUamP#%5cZ4NXR}wxV-X4S-m2%zttbD2?U5u;V(MDh8%JKLonlcpTD$JI zR%@`pvx_Fnn2oPVpF02GNN6h~rOZ`gDE=l9bU%1H6%q)y+tHhe6gseh|0eyH^BH^B z7v~t2aO&v>sKvlfwi@N{y$RA8x5nGVJ5uyj0)9pR>*A7SmW?q$oU@*oy1`AKLSn67 zgSI0!>wh#tgHP1UTvU40{%i9?%@Q=7a*}(y1w*C2z{YHD9QtvR$M{_;W#$`?Rwv+N zyVkZteU-u<%{1mEFrsz&iLUYPEZ1vYQeDcSt)=a?@FH?D9ro~k+m5BU`_T`eKQS=B zV_<)h_AZbV?X<L1{jim*-1WTGIvT~`7<6Cl=uLrOUQt&&!|W!3;q*I5B>OUHy4!?> zVQGlNHr^Wk+ZA>4WldG<4?duM<zATfjw0ybJNQdum)sYU^keznnt~DOa!XY?IZLsN zqDjArJsfN$-|MS=2+`8UATRcR1<810MxIQ4D!2i7CL%x4<3X(Y_FU$}TvvT?r&`l~ znlLm}nDI87+9;8KcNs29YWWw_9pZP~_RqWD!aH4`X$d^`jp4be+t(jY+{7+Ae_^_U zyYtIz{7VIiEHPfCY#<7)6<&Vy=Q2+IKX!U~w@*@kltc7;=@X3f68R0Ql6~;;@nKf| zc@bjS^i4U}FF{>C?zgKkkVZ3D=;APUB~N;$@(y2dWkmn*<p^s14uV^~RP7QfC5*2X z9bEOS)Xzi!`s`GFwaiHNO6(mg1HH9tX}(Czh<91XOx61*Pc=8^#+k2Xz$XVk9^+^( zzQ*~j_*(BpbJoW+avKoseo((2NUNc{4gqLSUY-H{kc`~=!HFEI5x+ERD22*$>fGfl zbO!dOL{G=1!4FnD2Je!$Sxg!dHtewrpRNzGrer$w=YxdCJ1FwRI6}>WdFerVT3X(~ zfK+Zy&aNL=Sop2seIK>IYe<8SL4E6$@=bdErjpC71J=&!lf`J&lbVLSviei!qlLs( zEm0>#zn+^lX5n2@4cVg<r${>v*n`2fO6SsKr~JIk{xfLhBTurG5h|4B7s;Ek7-}fX zY8_b+X#%qfKBtJ8zNY#Tb-pAjd}(%4(4<<5e@V6Z8wj?P!zp-6TCA!tS8dr&4pZyr zrFqm^gqZ0iAhc@z?@>zeTjdYv0C71FQx!MA>%>1{bM-O4b5^ks9`MfRC22c|W+{V4 z?E7@f;LwqUPPgH#28F{fHT!;F1(zBp^URyD)f=qXBe8>^?2wS-qU@Crx8>FU5vqNm zOg7#3>J(DRr;s3*mV;MUlfmd7CdqCHaO2_Oq?)g2*xH4z|3q2QXAEzxu`pfWm@Et6 z5Ld!#*N7>R2LEr-YpkM$?0c|P40?B-d#kCQ)H7Y|!$?wvZT@ts_v%bHbojO9If(2j z%{%^pdSm-}3^+X}huAyBG<9&UOL0Eg7bqnUTa$_S{{2d4ePd&nKqt)(Oa&hvjvB_P z(Bdqi|3a(|_dUJ$6vd%DO~m)Jsh{I>fqO!cQq;J(0dd7-**yW51pq}dqQNLZ4V^hn z^^A^7i~4$c+3oF5Abx<{T6neVXc2X_@o7|o=wQ60hA?Ei{qgi?TR;|*^SS1Y$L!*x zS?kshoyHdIgk^;c0e86l=dU%=NRMnW1|0a1)Y$9SLG6{5&jE=^L)y%VH8r2ZLeI_v zIQL)3{d*WlPo}Otu7PKHZ*Q||GMAy(+kC3LD`j!%N>&F@12qHst+`6|5l#8BrW6gH zV*UUx|HB;CEA$-U)yyPh-ySC{#vJ#8h~pAO-L=7-_KX*%x*D<xex$=MZXn}kED|Hc zv`ti-7zO~TNE`2W?d{AEef^^Htb1_E%3vfHs1iQx3Ne7}lbkAr<+PR&96yxTXYE1Y zyu3USMMaHo8fPgd&j_~()38z!7Iv>*-2zE=kXJ2_hq)1f3kF$o>V~thI4CFfA~0<@ zUWRjldW?brnT^(o?efCHs}9<^j!uUmIrLZUpxef3<;|c+V|qnJiz4`-7lv0*mZPwP zNQm_kGgmZHldF)}ODi*wt2~kW{*Mb+-mkOJ4VGB*@OF@ntv|yvkdCpHB!M|&$4lgv z4z~G~Vd1k+^xoJ_d>IbvH^eXi0OlypW&X93%;t?XU)6FcBt01Wh`&>VB_+6?(b-Yy zl5!d!cdJCAHk`7!GDpb6k!Ps(rB}0s$#yn2`@sw;A5QmXq0XBUVZl;#U!r?&)e-rf z!|=_uq#k+n24|oMm+Pz}9l^wXqu6CMrO2rWvIME+S!_6LAlHW63jc|2<q|Oq?qQB- z6K?CxLob*I_kombef3Njo(%sQWX?vbjzUEA{vfyh96*~Xs{II#iIWMfDJPhT$~q7( zmqJU5nx>1URMI4HkzO#Oo9`Rp<m!lAVAy8<j9~|TXMvFu7XS^G>KI>eSO{#a!KHn6 zpr}a&*~SvCh?DD8!|Fd^b%`1m0Q~ffd$?Z+Q|dG`+^4hT_NAJu4qUhB4$hT2FQ(HT z4VqMt_w(8Zntse$XD-=`oZ5*tC@6XPs<T>8FXWz$PS6%h+~wX#2uxT9z(4>4Gm%be zHl1QAlJ=#jxojdV_lP0(XzG0wU|t!RzzD_kYUUjvx#G*!mEI7WCFWpyyJ-dvhQj?w z8+G1xr5VXHaC+cc-he(!M%CFY?-tyLBWfwfZ{`O;DlZ=ulC%98Rb2ex;`N4m*`P<p z79RNPHsO!p*S$0L-o{zH*%I_pHsCnREfPzu%_BOf9lyIDHzZ<E?Hmrwi62Xn<MGUK ze~?LO$#lMsnpKt3gJo?Z!ZP>-w@zsrd(NKN`K%6C(R1~7Z0dmOLK9+gRg4#D%J1z* z?4~^KGz%!9h5%qW2{@e-$u1_w$uJAwy+-YiWEYP;qDt=(Y7ESQtJjly{LpK5v5?4v zd|l#p@n&A$y&UE6^1`l!Y=%emKV*)j0@ZVQw^V(Ufz%oBjUFd*ODQk+VY>c{;69|| zjAkLxXZZU#BxhnE9$1{!X=(KLKzI4ikQlcw>aT6o6BucBZUQ4XhKYkioN$0dt#zIC z^zPI~eaEKe9<gIHAu;=S_*F9Fo{GPKuOE?G3Cx94iDWY(tX2IlQhd+!+G|T7*n9F3 z^az_@F$7Gxs3~CS-6$&bgH-}|aX%crGx2IdC|VmmIma9<^CGiH*+x^#)pf^FyU6&$ zt#OB0$8<BMJ-pp@x-83_88Ec3C~B4AAq_J({3WCiV}A($&{T-ZZj-8>I-PlI?%!S} zx_i|Htk&XOMKM_1c)oUzNNY#`jsauhoJ%?Ns=q{~z@s;ZVqUDkX?68G*XuKaUTL7U zaF$PjQ$3&?4_TrZlbJsS-fR~HsXp{QKgbuxk|0B7ev2M0Rz|ppJo9IGijSG$k};DU z_6=`GhaHeAwzm$*VdT(VN{Bc8?JR<_Kw^~fqmGO}o1jdTO}M)sxb5}NKoVhu@n@!` zU)e<fLm~2v0&9c?yJ6b_N7;~`5YX8dRuO=qYD3cNeb5{Z3=f>Jj)%>tdxQGEmCZJ{ zM`?@=ZS=Fu?^ij^?$^34aGwo5k!4YOR?x7vGBR#k2&VaR8j^!G&W!m_hic(pYpGum z`+J0q!0)S}_C$6Pi!13Nxu2jhMGb=g-sR{@Dcd8=Sa%Fh1wh3vnx@rwyMieT(Swjp zWgPw}_hUcHeD@URdF$a{fSE<~1H;=?4x6fyhwD~ck%mT<+RV{rPiwEvGbf=-?PEcz z`<<4t`voxjRFDq#UM_Xn@h4rGdk_D)1MkW_w_d%<0K?ZFI(tx5mxYL?Qvt4`_#d-= zRA*3k1f_x;F7($Kx%!=1%pmDn(#K2nu2aIMa+Q9_QI#t$jW(IRDug@D>GM3MYCQ;J ztKQiZmT2O@IOvr>!_N_BeVDL5Hh?S$WJaepN~p_k_rSjhCtW@K2!b#PBPU*Znw)*Q z7yx0{S%-tyXFc{L4;J#=0?7o>&v7+=_Bp?lW>N){*_ESRs_b4Am*d~;<O#wb<~L<} zwJ&Pu-Bd3UJ2K13Exc(hANaP#5}kSP)$$+mm1OK)FgOCp`5pZ_<@bimZa;kvvG1oO z*c~B+B=roK?fNPHY!%1U)H2@d@B!D(_)<bS>)%;}WRO@JFxj6D<Yu4Id^V?M^2mOi zSe1WwA!)$y+~TKR3mN*J?FMoS7G45V_g>Z>TNsL%BfOfhGo0Bd>*#mAPN#@YDG_2f zkR@(JpG}#TdV%KHae-F68<ACeWrngw`y22BIqa7uLHB`N^Y@FVS1M3#?weEI^Zv~Y z4_di+rZrvRyA{PzogF))Lw{=b))c&y*Eh=lliywyl!1=tr@(?wahgM$m)sBDCPH0Q zaKw-^Kqg$};O%NKfTo8TO@&)FPemEZy)$D&zHTvzm^Q?PSmEvgS@N2R)bB@G_J6bM z2a$;p1nkZReAxqbQ35|6u<WrbDN0n}g|BZE0}{H#=o)tH(UJg;ZQ%6QU}N~61~P9d z%jXhlJDN`5#+_BBZ;0Ni%J{^#C1u9HBNlSDDJ(l8<Yl*d@ZHD*lH@1)cq^h;`C~U+ z@TjGK^_1t0yu8jH1y_LJ#s3MZ<^M(E#Q#R|=l{P)e~16r|C>Pe|8W}y$@y<Da{W3A z&)*#35o0~|FlcUWUQt%ob)zFH+1I1P{?d?0(+Q@wwzi^TjNaqNOvf33zg*2Rw6dCN zDk>7`{30)D#Bfa61Rz!YTb+2QdT)<*xR^3%$jZoe3V!tB%17JV8~3$IHRO?Eqqlbz zkgq??xMyRN%frKS;Nl7f{wYJ~Xl>jv{rJ`RmeE=U8m$G82?C#npR7Ep?mRZ&w7odU zxZ-fsl>J3lgyr#5!`n@NDR2IF!ASu8sinL<V99mtYuHKVDea>M^PQLl0kL(0Km+fw zp7Uxz;n=Z^Tyv+PlJ!ugSV2u)V`Jk|o};#pT~)yghg3b9<XimvHAB*0=;qD6rm$2+ z7@)NN_cJy$aJPw=tMyk19$?vh%1dC9X;}YprOEN{--C7!EJHMp>{M9Tn;>QqqWSN0 zsO{Ck;>7)}g=t1kU0vNut8b@QM#}yf`FBI;(TxJ0+VTG>?KD(SP;hJH$htr`U-Tz2 zUDPQ}U;^%93RG<}z9ni}t1~k*)AVmy`Y~M$&^7*d>em(ACW8Pn+hHMKFF;A1_G)u< zbW{Wos5duH6R<Cx{7VTuHvie5i<?`(8DK#<t7c|q0!hh{SDV$HngAVcOK4gpb;RcH z@AfoojWxhwdbgWY#Ed3G7{v=LV_9Ts5#RofI`GzdkLc|33Z<kl5&EB_Cmui0Qb*sj 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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�FANfaWVP+!i>Pt(oA!A|c$c<paV!NVQ%sXQNR$Xta zHtb5W>)4S}ogl9Z?mRrrn)0Gri=*s9b5ZC!@cB#rvd{WGuJ?^pL+^KDL&wp@eo4V< z^0G-swc@MjwCx<O`HU!1WK>x9piqnI)n~RanxUadhv0#M$Hn&pa{bg!FCz{^7xW{; z5t@uz3%%Uaui#5vpV)u;2weQ|;ZI!Q4$kHZ$3(hkEA{0xT9tEk2d<itwIyc-fK=(j zOF%Rpd;F&ctp9|M^1!~jTV+`KT|v?o;GjE-e}bN*jeA)R$m3@I95SZ`?|3w?URFlT zT9Po<ciNdHNlPm|=)jl_G`l!}9z$A~K+uJ^on*R=Pr<&y?ytm0Y&a`9HQv?Sg{(4| z|0qB;p+6V(h{h~e1<6Ee1KjZ|5Bk}1;g#|qRmgrzHHUcZTg{60Z}P!fw`W+LDtYWO zGfDiZ`D5CeJ^?G^HbJ3Bre0qA{{GNV+f`a?LXLm6!tA$wD|899+oC{(c_?WdNTKSM z!COKElND<U_Qtmb6F|rJ-VI!kvMki<s4@u8h?g$Ah6Gq$REUG8L(SiEa%!&elA%A+ zYg(`i=fato8|2Up;`x<TqM0GJ1UO8mqG80DCSD(ZccTr%3;B&Q2eONFiu%S}7Blb# zWi*tkr?HadnqOKe1X$JYWg85Yf`d#za91pOom}~FvOP)S?|YB&&!3Cc40Irk@$V*p zpDD$o<fOZIp})$krG<e+oLo6?7#&fuwIk(Hx#nEdpj>{zOr?YO0Su)Iv^vFKS8)xE zkNO7aLi={5rgm-0q-m>K4Kv4@^*OH?X!y#UEAi#P;Frv--aL~e>%q6&DrY;qh$u5` zG<f04R+_0RgElwUXjwwIZp~eA5)3^sxN8$!1l}tl!Mp+LZ$(0FpX{!^EW8`ph@S$2 zG#w8YYJx-rpRxWcyC#5L;jDH%NB|BhzLVf?yG7~`$p9(DcNX0g6@9R-A)j(o(tC6# z)WP5z(YDnkMcco%RYSbvIR?u9tx9}W3aCN2xQ`^`-4yF;3+=ZWCxaaMA&3X4cxIn{ zVuqGawx}0*NT{x2ADKJ~IRr@H-h}NI@gWt6s*v<K2Kii9Q6GWg(CcFffHZ~IqEN+1 zqdxAr?Cf3QRRtDZsLa!$IV)XBZf4uKIdG%4V=53k_Kl?a1Hxy2$=hWjKzGYs055Om zM^dN>I$dwBKUw+xDB1BG7X3}*cx&0axPcTMo0eM4uIu@7I8<NSWCyAmW52K>&Il8^ zPxD9`lV*&;fK`wqa%|gmzOav`4EpPi0%;-3-`->Q_3LE07F;{x%$6D%=B;#TgI6az z+;nCX8R{15&}egdkh~7aVD@!}&T8Ahn4P4F-La$E!%KkiF8de<H|QBcB39^=p00#% zysgKRj$2a4s-&mucx8wdl81Ep4Ry*}7rr>|%)t~xF-;4ny6^gof1mgoE0>ObNLa|{ z?|v2dNudZ(e-0jpT?aiIZ%qJsJe4%x39<+`H(0YxN=~NZnx$x6{WlZpx1{*rJpfU9 zltN;~tv&xJSh7oM9^;FPuQhK>s!&oJEE#V?M?~jZ!9ZeAp*-p;*vi+T7^nhJtz7nb z8?w2*ZhXvrE?H^IU13s(8;pQ7%0DgJX;pv)Xgc~$&AtA$j|1pADrSEje}fi^al2i~ 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 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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�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	?7#6L@7FaV55cbnt9%z&@SnRwC` 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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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	trpyDn}LVhKxyI(c<U?qlLH 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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