Skip to content
Snippets Groups Projects
Commit 213c0476 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

ECOC'22 functional test:

- removed redundant scripts and files
- added missing show_logs_slice.sh script
- partially arranged tutorial page
parent eab105e4
No related branches found
No related tags found
2 merge requests!54Release 2.0.0,!4Compute component:
...@@ -13,5 +13,15 @@ ...@@ -13,5 +13,15 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
K8S_NAMESPACE="ecoc22" ########################################################################################################################
kubectl --namespace $K8S_NAMESPACE logs deployment/deviceservice # Define your deployment settings here
########################################################################################################################
# If not already set, set the name of the Kubernetes namespace to deploy to.
export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs-dev"}
########################################################################################################################
# Automated steps start here
########################################################################################################################
kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/sliceservice
# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
apiVersion: v1
kind: Service
metadata:
name: contextservice-public
labels:
app: contextservice
spec:
type: NodePort
selector:
app: contextservice
ports:
- name: grpc
protocol: TCP
port: 1010
targetPort: 1010
nodePort: 30101
- name: redis
protocol: TCP
port: 6379
targetPort: 6379
nodePort: 30637
- name: http
protocol: TCP
port: 8080
targetPort: 8080
nodePort: 31808
---
apiVersion: v1
kind: Service
metadata:
name: deviceservice-public
labels:
app: deviceservice
spec:
type: NodePort
selector:
app: deviceservice
ports:
- name: grpc
protocol: TCP
port: 2020
targetPort: 2020
nodePort: 30202
---
apiVersion: v1
kind: Service
metadata:
name: monitoringservice-public
labels:
app: monitoringservice
spec:
type: NodePort
selector:
app: monitoringservice
ports:
- name: influx
protocol: TCP
port: 8086
targetPort: 8086
nodePort: 30886
---
apiVersion: v1
kind: Service
metadata:
name: computeservice-public
spec:
type: NodePort
selector:
app: computeservice
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 8080
nodePort: 30808
---
apiVersion: v1
kind: Service
metadata:
name: webuiservice-public
labels:
app: webuiservice
spec:
type: NodePort
selector:
app: webuiservice
ports:
- name: http
protocol: TCP
port: 8004
targetPort: 8004
nodePort: 30800
- name: grafana
protocol: TCP
port: 3000
targetPort: 3000
nodePort: 30300
#!/bin/bash
# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
K8S_NAMESPACE="ecoc22"
kubectl --namespace $K8S_NAMESPACE logs deployment/computeservice
#!/bin/bash
# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
K8S_NAMESPACE="ecoc22"
kubectl --namespace $K8S_NAMESPACE logs deployment/contextservice -c server
#!/bin/bash
# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
K8S_NAMESPACE="ecoc22"
kubectl --namespace $K8S_NAMESPACE logs deployment/serviceservice
#!/bin/bash
# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
K8S_NAMESPACE="ecoc22"
kubectl --namespace $K8S_NAMESPACE logs deployment/sliceservice
#!/bin/bash
# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
K8S_NAMESPACE="ecoc22"
kubectl --namespace $K8S_NAMESPACE logs deployment/webuiservice -c server
...@@ -8,5 +8,5 @@ commands you might need, configuring the network topology, and executing differe ...@@ -8,5 +8,5 @@ commands you might need, configuring the network topology, and executing differe
- [2.1. Configure the Python environment](./2-1-python-environment.md) - [2.1. Configure the Python environment](./2-1-python-environment.md)
- [2.2. OFC'22 Demo - Bootstrap devices, Monitor device Endpoints, Manage L3VPN Services](./2-2-ofc22.md) - [2.2. OFC'22 Demo - Bootstrap devices, Monitor device Endpoints, Manage L3VPN Services](./2-2-ofc22.md)
- [2.3. OECC/PSC'22 Demo (WORK IN PROGRESS)](./2-3-oeccpsc22.md) - [2.3. OECC/PSC'22 Demo (WORK IN PROGRESS)](./2-3-oeccpsc22.md)
- [2.4. ECOC'22 Demo (PENDING)](./2-4-ecoc22.md) - [2.4. ECOC'22 Demo - Disjoint DC-2-DC L3VPN Service (WORK IN PROGRESS)](./2-4-ecoc22.md)
- [2.5. NFV-SDN'22 Demo (PENDING)](./2-5-nfvsdn22.md) - [2.5. NFV-SDN'22 Demo (PENDING)](./2-5-nfvsdn22.md)
# 2.4. ECOC'22 Demo (PENDING) # 2.4. ECOC'22 Demo - Disjoint DC-2-DC L3VPN Service (WORK IN PROGRESS)
This functional test reproduces the experimental assessment of "Experimental Demonstration of Transport Network Slicing
with SLA Using the TeraFlowSDN Controller" presented at [ECOC'22](https://www.ecoc2022.org/).
## 2.4.1. Functional test folder
This functional test can be found in folder `./src/tests/ecoc22/`. A convenience alias `./ecoc22/` pointing to that
folder has been defined.
## 2.4.2. Execute with real devices
This functional test has only been tested with emulated devices; however, if you have access to real devices, you can
modify the files `./ecoc22/tests/Objects.py` and `./ecoc22/tests/Credentials.py` to point to your devices, and map to
your network topology.
__Important__: The device drivers operating with real devices, e.g., OpenConfigDriver, P4Driver, and TransportApiDriver,
have to be considered as experimental. The configuration and monitoring capabilities they support are
limited or partially implemented/tested. Use them with care.
## 2.4.3. Deployment and Dependencies
To run this functional test, it is assumed you have deployed a MicroK8s-based Kubernetes environment and a TeraFlowSDN
controller instance as described in the [Tutorial: Deployment Guide](./1-0-deployment.md), and you configured the
Python environment as described in
[Tutorial: Run Experiments Guide > 2.1. Configure Python Environment](./2-1-python-environment.md).
Remember to source the scenario settings appropriately, e.g., `cd ~/tfs-ctrl && source my_deploy.sh` in each terminal
you open.
## 2.4.4. Access to the WebUI and Dashboard
When the deployment completes, you can connect to the TeraFlowSDN WebUI and Dashboards as described in
[Tutorial: Deployment Guide > 1.4. Access TeraFlowSDN WebUI and Grafana Dashboards](./1-4-access-webui.md)
Notes:
- the default credentials for the Grafana Dashboiard is user/pass: `admin`/`admin123+`.
- this functional test does not involve the Monitoring component, so no monitoring data is plotted in Grafana.
## 2.4.5. Test execution
To execute this functional test, four main steps needs to be carried out:
1. Device bootstrapping
2. L3VPN Service creation
3. L3VPN Service removal
4. Cleanup
Upon the execution of each test progresses, a report will be generated indicating PASSED / FAILED / SKIPPED. If there
is some error during the execution, you should see a detailed report on the error. See the troubleshooting section if
needed.
You can check the logs of the different components using the appropriate `scripts/show_logs_[component].sh` scripts
after you execute each step.
### 2.4.5.1. Device bootstrapping
This step configures some basic entities (Context and Topology), the devices, and the links in the topology. The
expected results are:
- The devices to be added into the Topology.
- The devices to be pre-configured and initialized as ENABLED by the Automation component.
- The monitoring for the device ports (named as endpoints in TeraFlowSDN) to be activated and data collection to
automatically start.
- The links to be added to the topology.
To run this step, you can do it from the WebUI by uploading the file `./ecoc22/tests/descriptors_emulated.json` that
contains the descriptors of the contexts, topologies, devices, and links, or by executing the
`./ecoc22/run_test_01_bootstrap.sh` script.
When the bootstrapping finishes, check in the Grafana L3-Monitoring Dashboard and you should see the monitoring data
being plotted and updated every 5 seconds (by default). Given that there is no service configured, you should see a
0-valued flat plot.
In the WebUI, select the "admin" Context. Then, in the "Devices" tab you should see that 5 different emulated devices
have been created and activated: 4 packet routers, and 1 optical line system controller. Besides, in the "Services" tab
you should see that there is no service created. Note here that the emulated devices produce synthetic
randomly-generated data and do not care about the services configured.
### 2.4.5.2. L3VPN Service creation
This step configures a new service emulating the request an OSM WIM would make by means of a Mock OSM instance.
To run this step, execute the `./ecoc22/run_test_02_create_service.sh` script.
When the script finishes, check the WebUI "Services" tab. You should see that two services have been created, one for
the optical layer and another for the packet layer. Besides, you can check the "Devices" tab to see the configuration
rules that have been configured in each device. In the Grafana Dashboard, given that there is now a service configured,
you should see the plots with the monitored data for the device. By default, device R1-EMU is selected.
### 2.4.5.3. L3VPN Service removal
This step deconfigures the previously created services emulating the request an OSM WIM would make by means of a Mock
OSM instance.
To run this step, execute the `./ecoc22/run_test_03_delete_service.sh` script, or delete the L3NM service from the WebUI.
When the script finishes, check the WebUI "Services" tab. You should see that the two services have been removed.
Besides, in the "Devices" tab you can see that the appropriate configuration rules have been deconfigured. In the
Grafana Dashboard, given that there is no service configured, you should see a 0-valued flat plot again.
### 2.4.5.4. Cleanup
This last step performs a cleanup of the scenario removing all the TeraFlowSDN entities for completeness.
To run this step, execute the `./ecoc22/run_test_04_cleanup.sh` script.
When the script finishes, check the WebUI "Devices" tab, you should see that the devices have been removed. Besides, in
the "Services" tab you can see that the "admin" Context has no services given that that context has been removed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment