@@ -217,7 +217,7 @@ OSOM sends to CRIDGE a message with the following information:
## What's next?
- See examples of exposing operators via OpenSlice:
-[Exposing Kubernetes Operators as a Service : Offering "Calculator as a Service" through OpenSlice](ExposingCRDs_aaS_Example_Calculator.md)
-[Exposing Kubernetes Operators as a Service : Offering "Calculator as a Service" through OpenSlice](../../service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator.md)
@@ -113,11 +113,13 @@ As soon as the CRD is deployed in the cluster (e.g. by your admin via kubctl or
- Having this OpenSlice can manage resources in multiple clusters
<imgsrc="img07.png">

> See also the detailed characteristics. See how OpenSlice makes all characteristics automatically flat and expanded with key-value style
<imgsrc="img08.png"width=1024px>

---
# Expose to Users
@@ -127,10 +129,9 @@ As soon as the CRD is deployed in the cluster (e.g. by your admin via kubctl or
From the UI menu create a new Service Specification

<imgsrc="img09.png"width=1024px>
<imgsrc="img10.png"width=1024px>

@@ -158,7 +159,8 @@ spec:
```
<imgsrc="img11.png"width=1024px>

> However the values are fixed. How do we allow a user to pass parameters through OpenSlice
@@ -174,10 +176,7 @@ Create a new CustomerFacingServiceSpecification
- Add the following characteristics as the image shows:
<imgsrc="cfs_img12.png"width=1024px>

### Allow users to pass new values through OpenSlice
@@ -191,10 +190,14 @@ We need to Create LCM rules in CustomerFacingServiceSpecification:
- we will create one rule that will pass the parameters while the service is active (SUPERVISION phase)
- The rules will be the same
<imgsrc="img12.png"width=1024px>

If we see one rule it will look like the following:
<imgsrc="img13.png"width=1024px>

- We need to change the _CR_SPEC characteristic of the referenced ResourceFacingServiceSpecification
- First bring a block from Service>Relationships>Service Refs and drop the "Service MyCalculatorRFS" block
@@ -220,22 +223,25 @@ If we see the SUPERVISION rule it will look like the following:
- Add as name the "status.result"
<imgsrc="img13_1.png"width=1024px>


<imgsrc="img14.png"width=1024px>
Expose it then to a catalogue for orders through the Service Categories and Service Catalogs
<imgsrc="img15.png">

### Order the Service
When a user orders the service, it will look like this:
<imgsrc="img16.png"width=1024px>

@@ -244,20 +250,22 @@ When a user orders the service, it will look like this:
- The Actual resources are running in the Kubernetes cluster managed by OpenSlice
- The result is in the characteristic status.result of the running service
<imgsrc="img17.png"width=800px>
<imgsrc="img18.png"width=1024px>


### Modify the running service
The user can modify the service
<imgsrc="img19.png"width=1024px>

- After a while the update is applied to the cluster, the controller will pick up the resource update and patch the resource
- OpenSlice (via CRIDGE service) updates the Resource in Resource Inventory and OSOM updates the Services in Service Inventory
- 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)
Manage Helm charts installations via OpenSlice Service Specifications and Service Orders.
## Intended Audience: Service Designers
> 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.
> 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
> 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:
> - Reduces the complexity of deploying Microservices
> - Enhances deployment speed
> - Developers already know the technology
> There are many Helm charts and Helm repositories there that are ready to be used
> Enable loose coupling and more orchestration scenarios
> Developers create and deploy applications in things they already know (e.g. Helm charts)
> Use the TMF models as wrapper entities around Helm charts
Use OpenSlice to expose them in service catalogs and deploy them in complex scenarios (service bundles) involving also other systems:
- Include e.g. RAN controllers,
- Pass values through life cycle rules from one service to another,
- Manage multiple Helms in multiple clusters
## The installation of HELM charts is based on OpenSlice CRD support
Please read more [here](../ExposingKubernetesResources.md)
For installing HELM charts we will use ArgoCD a well known Kubernetes-native continuous deployment (CD) tool
> ArgoCD is a Kubernetes-native continuous deployment (CD) tool
> While just deploying Heml charts is just a scenario for ArgoCD , in future one can exploit it for many things
> Despite some other tools like FluxCD, it provides also a UI which is useful for management and troubleshooting
We will mainly use the CRD of ```Kind: Application``` that ArgoCD can manage
Before proceeding, install ArgoCD in your management cluster, by following ArgoCD instructions
As soon as you install ArgoCD, OpenSlice is automatically aware for specific new Kinds. The one we will use is is the ```Kind: Application``` that ArgoCD can manage under the apiGroup argoproj.io
Browse to Resource Specifications. You will see an entry like the following:
Manage Helm charts installations via OpenSlice Service Specifications and Service Orders.
## Intended Audience: Service Designers
> 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.
> 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
> 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:
> - Reduces the complexity of deploying Microservices
> - Enhances deployment speed
> - Developers already know the technology
> There are many Helm charts and Helm repositories there that are ready to be used
> Enable loose coupling and more orchestration scenarios
> Developers create and deploy applications in things they already know (e.g. Helm charts)
> Use the TMF models as wrapper entities around Helm charts
Use OpenSlice to expose them in service catalogs and deploy them in complex scenarios (service bundles) involving also other systems:
- Include e.g. RAN controllers,
- Pass values through life cycle rules from one service to another,
- Manage multiple Helms in multiple clusters
## The installation of HELM charts is based on OpenSlice CRD support
Please read more [here](../ExposingKubernetesResources.md)
For installing HELM charts we will use ArgoCD a well known Kubernetes-native continuous deployment (CD) tool
> ArgoCD is a Kubernetes-native continuous deployment (CD) tool
> While just deploying Heml charts is just a scenario for ArgoCD , in future one can exploit it for many things
> Despite some other tools like FluxCD, it provides also a UI which is useful for management and troubleshooting
We will mainly use the CRD of ```Kind: Application``` that ArgoCD can manage
Before proceeding, install ArgoCD in your management cluster, by following ArgoCD instructions
As soon as you install ArgoCD, OpenSlice is automatically aware for specific new Kinds. The one we will use is is the ```Kind: Application``` that ArgoCD can manage under the apiGroup argoproj.io
Browse to Resource Specifications. You will see an entry like the following: