### 6. osscapi container (TMF API service) *(conditional)*
### 6. Configure osscapi container (TMF API service) *(conditional)*
Change the respective fields:
...
...
@@ -209,6 +209,53 @@ SPRING_APPLICATION_JSON: '{
}'
```
### 7. Configure CRIDGE container
If you want to create and manage Kubernetes Custom Resources (CRs), you will have to provide:
- a cluster-wide scope kubeconf file (typically located at `/home/{user}/.kube` directory of the Kubernetes Cluster's host)
You will have to copy the kubeconf file to the `org.etsi.osl.main/compose/kubedir` directory, *prior to the deployment*.
By default, the deployment process copies the contents of `org.etsi.osl.main/compose/kubedir` directory into the `/root/.kube` directory of the CRIDGE container.
```yaml
volumes:
-./kubedir/:/root/.kube
```
> **The above configuration works for the default kubeconf file names. It explicitly expects a file named `config` within the `/root/.kube` directory of the created container.**
Optionally, if you want to use custom kubeconf file names you will have to sync volumes by files and not entire directories, e.g.
```yaml
volumes:
-./kubedir/custom-config-name:/root/.kube/config
```
OpenSlice also offers management support of *multiple Kubernetes Clusters* simultaneously. For this, you will have to:
- add all the respective kubeconf files into the `org.etsi.osl.main/compose/kubedir` directory.
- create a copy of CRIDGE service in the deployment file and map the appropriate volumes. *Mind the need for a different service and container name*.
Below you may find an indicative example that only references the affected fields of the docker-compose file:
```yaml
cridge-cluster1:
container_name:openslice-cluster1
...
volumes:
-./kubedir/config-cluster1:/root/.kube/config
cridge-cluster2:
container_name:openslice-cluster2
...
volumes:
-./kubedir/config-cluster2:/root/.kube/config
```
> Note the same `/root/.kube/config` container's path for the proper functionality. See the above note for explanation.
## Configure nginx
In folder `org.etsi.osl.main/compose/nginx` create a configuration specific `nginx.conf` file.
For configuring external services like Bugzilla and CentralLog, specify their URLs and credentials in the `values.yaml` file:
Keycloak settings, including the database and admin password, are part of the `oscreds.mysql.keycloak` 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 `kubernetes/helm/openslice/files/keycloak-init/realm-export.json`.
```yaml
oscreds:
mysql:
keycloak:
database:"keycloak"
username:"keycloak"
password:"password"
adminpassword:"Pa55w0rd"
```
#### 3. CRIDGE Configuration
If you want to create and manage Kubernetes Custom Resources (CRs), you will have to provide:
- a cluster-wide scope kubeconf file (typically located at `/home/{user}/.kube` directory of the Kubernetes Cluster's host)
You will have to copy the kubeconf file to the `org.etsi.osl.main/kubernetes/helm/openslice/files/org.etsi.osl.cridge` directory, *prior to the deployment*.
By default, the deployment process copies the `org.etsi.osl.main/kubernetes/helm/openslice/files/org.etsi.osl.cridge/config` file into the `/root/.kube` directory of the CRIDGE container.
> **The above configuration works for the default kubeconf file names. It explicitly expects a file named `config` within the `org.etsi.osl.main/kubernetes/helm/openslice/files/org.etsi.osl.cridge` directory. If you are working with custom kubeconf file names, you will have to rename them.**
OpenSlice also offers management support of *multiple Kubernetes Clusters* simultaneously. For this, you will have to:
- add all the respective kubeconf files into the `org.etsi.osl.main/compose/kubedir` directory.
- create a copy of the `cridge.yaml` and `cridge-config.yaml` in `\org.etsi.osl.main\kubernetes\helm\openslice\templates` directory for every Cluster. *Mind the need for different naming*.
- update every `cridge-config.yaml` file to get the appropriate kubeconf file for every Cluster.
Below you may find an indicative example that only references the affected fields of each cridge-config.yaml file:
For configuring optional external services like Bugzilla and CentralLog, specify their URLs and credentials in the `values.yaml` file:
```yaml
bugzillaurl:"example.com:443/bugzilla"
...
...
@@ -113,21 +152,7 @@ Bugzilla should have the following components under the specified product:
Also in the 'Main Site Operations' product, a version named 'unspecified' must be created.
#### 3. Keycloak Configuration
Keycloak settings, including the database and admin password, are part of the `oscreds.mysql.keycloak` 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 `kubernetes/helm/openslice/files/keycloak-init/realm-export.json`.
```yaml
oscreds:
mysql:
keycloak:
database:"keycloak"
username:"keycloak"
password:"password"
adminpassword:"Pa55w0rd"
```
#### 4. Application and Logging Configuration
#### 5. Application and Logging Configuration
Application-specific configurations, such as OAuth client secrets, can be set in the `spring` section:
...
...
@@ -136,7 +161,7 @@ spring:
oauthClientSecret:"secret"
```
#### 5. Ingress and Root URL
#### 6. Ingress and Root URL
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:
...
...
@@ -146,7 +171,7 @@ rooturl: "http://openslice.com" # Example domain
rooturl:"http://3.15.198.35:8080"# Example IP with port
```
#### 6. Persistent Volume for MySQL
#### 7. Persistent Volume for MySQL
For persistent storage, especially for MySQL, define the storage size under the `mysql` section. This ensures that your database retains data across pod restarts and deployments.
...
...
@@ -155,7 +180,7 @@ mysql:
storage:"10Gi"
```
## Configure Web UI
### Configure Web UI
In folder `kubernetes/helm/openslice/files/org.etsi.osl.portal.web/src/js` you must make a copy of `config.js.default` file and rename it to `config.js`.
...
...
@@ -178,7 +203,7 @@ Edit the `config.js` configuration file with your static configuration, if neede
## Configure TMF Web UI
### Configure TMF Web UI
In the folder `kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config` there are 3 files available for configuration:
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.
...
...
@@ -20,9 +20,9 @@ An end-to-end (E2E) service orchestration framework is designed to manage and au
- 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.
- 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.
- Service Design and Creation tharough service templates based on predefined models for creating services.
- Service Design and Creation through service templates based on predefined models for creating services.
- 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.
- 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
- 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 exchange between systems during workflows orchestration
- 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.
- 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.
- 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.
...
...
@@ -33,7 +33,7 @@ In general an E2E service orchestration workflow includes the following phases:
- 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.
- 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.
- 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
- 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 resources, Containerized controllers manage their workload, etc
- 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.
- Lifecycle Management: The orchestration framework handles updates, scaling, and any necessary modifications throughout the service lifecycle.
- At the end of the service period, resources are decommissioned and reclaimed.