From 6b76b189849b7a5a146fe2434d391c19e81fc5d6 Mon Sep 17 00:00:00 2001
From: Lluis Gifre <lluis.gifre@cttc.es>
Date: Fri, 15 Jul 2022 08:45:31 +0000
Subject: [PATCH] Tutorial:

- added section in deployment for deploy and log inspection, and troubleshooting
- extended list of experiments with placeholders for pending experiments
- updated Table of Content in README.md
---
 tutorial/1-0-deployment.md                  |  1 +
 tutorial/1-3-deploy-tfs.md                  | 13 ++-------
 tutorial/1-5-deploy-logs-troubleshooting.md | 32 +++++++++++++++++++++
 tutorial/2-0-run-experiments.md             |  6 ++--
 tutorial/2-3-oeccpsc22.md                   |  2 +-
 tutorial/2-4-ecoc22.md                      |  1 +
 tutorial/2-5-nfvsdn22.md                    |  1 +
 tutorial/3-2-develop-cth.md                 | 10 -------
 tutorial/README.md                          |  7 +++--
 9 files changed, 47 insertions(+), 26 deletions(-)
 create mode 100644 tutorial/1-5-deploy-logs-troubleshooting.md
 create mode 100644 tutorial/2-4-ecoc22.md
 create mode 100644 tutorial/2-5-nfvsdn22.md

diff --git a/tutorial/1-0-deployment.md b/tutorial/1-0-deployment.md
index 7b2aaad4a..cdf5cb8f8 100644
--- a/tutorial/1-0-deployment.md
+++ b/tutorial/1-0-deployment.md
@@ -9,3 +9,4 @@ configuring MicroK8s, and deploying and reporting the status of the TeraFlowSDN
 - [1.2. Install MicroK8s Kubernetes platform](./1-2-install-microk8s.md)
 - [1.3. Deploy TeraFlowSDN over MicroK8s](./1-3-deploy-tfs.md)
 - [1.4. Access TeraFlowSDN WebUI and Grafana Dashboards](./1-4-access-webui.md)
+- [1.5. Show Deployment and Log per Component](./1-5-deploy-logs-troubleshooting.md)
diff --git a/tutorial/1-3-deploy-tfs.md b/tutorial/1-3-deploy-tfs.md
index a4693465e..2e37085a6 100644
--- a/tutorial/1-3-deploy-tfs.md
+++ b/tutorial/1-3-deploy-tfs.md
@@ -84,14 +84,5 @@ The script does the following steps:
 7. Create an ingress controller listening at port 80 for HTTP connections to enable external access to the TeraFlowSDN
    WebUI, Grafana Dashboards, Context Debug endpoints, and Compute NBI interfaces.
 8. Initialize and configure the Grafana dashboards
-9. Report a summary of the deployment
-
-
-## 1.3.6. Report the deployment of the TFS controller
-The summary report given at the end of the deployment can be generated manually running the following command. You can
-avoid sourcing `my_deploy.sh` if it has been already done.
-```bash
-cd ~/tfs-ctrl
-source my_deploy.sh
-./show_deploy.sh
-```
+9. Report a summary of the deployment (see 
+   [1.5. Show Deployment and Log per Component](./1-5-deploy-logs-troubleshooting.md))
diff --git a/tutorial/1-5-deploy-logs-troubleshooting.md b/tutorial/1-5-deploy-logs-troubleshooting.md
new file mode 100644
index 000000000..ce16a279c
--- /dev/null
+++ b/tutorial/1-5-deploy-logs-troubleshooting.md
@@ -0,0 +1,32 @@
+# 1.5. Show Deployment and Log per Component
+
+This section presents some helper scripts to inspect the status of the deployment and the logs of the components. These
+scripts are particularly helpful for troubleshooting during execution of experiments, development, and debugging.
+
+
+## 1.5.1. Report the deployment of the TFS controller
+
+The summary report given at the end of the [Deploy TFS controller](./1-3-deploy-tfs.md#135-deploy-tfs-controller)
+procedure can be generated manually at any time by running the following command. You can avoid sourcing `my_deploy.sh`
+if it has been already done.
+```bash
+cd ~/tfs-ctrl
+source my_deploy.sh
+./show_deploy.sh
+```
+
+Use this script to validate that all the pods, deployments, replica sets, ingress controller, etc. are ready and have
+the appropriate state, e.g., "running" for Pods, and the services are deployed and have appropriate IP addresses and
+port numbers.
+
+
+## 1.5.2. Report the log of a specific TFS controller component
+
+A number of scripts are pre-created in the `scripts` folder to facilitate the inspection of the component logs. For
+instance, to dump the log of the Context component, run the following command. You can avoid sourcing `my_deploy.sh`
+if it has been already done.
+
+```bash
+source my_deploy.sh
+./scripts/show_logs_context.sh
+```
diff --git a/tutorial/2-0-run-experiments.md b/tutorial/2-0-run-experiments.md
index 12e389e86..f87d00e98 100644
--- a/tutorial/2-0-run-experiments.md
+++ b/tutorial/2-0-run-experiments.md
@@ -6,5 +6,7 @@ commands you might need, configuring the network topology, and executing differe
 
 ## Table of Content:
 - [2.1. Configure the Python environment](./2-1-python-environment.md)
-- [2.2. Execute OFC'22 Experiment (WORK IN PROGRESS)](./2-2-ofc22.md)
-- [2.3. Execute OECC/PSC'22 Experiment (WORK IN PROGRESS)](./2-3-oeccpsc22.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.4. ECOC'22 Demo (PENDING)](./2-4-ecoc22.md)
+- [2.5. NFV-SDN'22 Demo (PENDING)](./2-5-nfvsdn22.md)
diff --git a/tutorial/2-3-oeccpsc22.md b/tutorial/2-3-oeccpsc22.md
index 27d4cf44b..9327ff428 100644
--- a/tutorial/2-3-oeccpsc22.md
+++ b/tutorial/2-3-oeccpsc22.md
@@ -1,3 +1,3 @@
-# 2.3. OECC/PSC'22 (WORK IN PROGRESS)
+# 2.3. OECC/PSC'22 Demo (WORK IN PROGRESS)
 
 Check [Old Version](./../oeccpsc22/README.md)
diff --git a/tutorial/2-4-ecoc22.md b/tutorial/2-4-ecoc22.md
new file mode 100644
index 000000000..f752bda84
--- /dev/null
+++ b/tutorial/2-4-ecoc22.md
@@ -0,0 +1 @@
+# 2.4. ECOC'22 Demo (PENDING)
diff --git a/tutorial/2-5-nfvsdn22.md b/tutorial/2-5-nfvsdn22.md
new file mode 100644
index 000000000..35fae3af3
--- /dev/null
+++ b/tutorial/2-5-nfvsdn22.md
@@ -0,0 +1 @@
+# 2.5. NFV-SDN'22 Demo (PENDING)
diff --git a/tutorial/3-2-develop-cth.md b/tutorial/3-2-develop-cth.md
index 3592a2adf..f13006fbd 100644
--- a/tutorial/3-2-develop-cth.md
+++ b/tutorial/3-2-develop-cth.md
@@ -1,16 +1,6 @@
 # 3.2. Development Commands, Tricks, and Hints (WORK IN PROGRESS)
 
 
-## 3.2.1. Report the log of a specific TFS controller component
-A number of scripts are pre-created to facilitate the inspection of the component logs. For instance, to dump the log
-of the Context component, run the following command. You can avoid sourcing `my_deploy.sh` if it has been already done.
-
-__Note__: these commands should be run on the VM, not in the Docker-based runtime environment.
-
-```bash
-source my_deploy.sh
-./scripts/show_logs_context.sh
-```
 
 ## Items to be addressed:
 - pytest flags: --log-level=INFO --verbose -o log_cli=true -o log_file=my_log_file.log -o log_file_level=DEBUG
diff --git a/tutorial/README.md b/tutorial/README.md
index e99ba5b74..836434e51 100644
--- a/tutorial/README.md
+++ b/tutorial/README.md
@@ -27,10 +27,13 @@ with the ETSI TeraFlowSDN controller, contact the ETSI TeraFlowSDN OSG team thro
   - [1.2. Install MicroK8s Kubernetes platform](./1-2-install-microk8s.md)
   - [1.3. Deploy TeraFlowSDN over MicroK8s](./1-3-deploy-tfs.md)
   - [1.4. Access TeraFlowSDN WebUI and Grafana Dashboards](./1-4-access-webui.md)
+  - [1.5. Show Deployment and Log per Component](./1-5-deploy-logs-troubleshooting.md)
 - [2. Run Experiments Guide (WORK IN PROGRESS)](./2-0-run-experiments.md)
   - [2.1. Configure the Python environment](./2-1-python-environment.md)
-  - [2.2. Execute OFC'22 Experiment (WORK IN PROGRESS)](./2-2-ofc22.md)
-  - [2.3. Execute OECC/PSC'22 Experiment (WORK IN PROGRESS)](./2-3-oeccpsc22.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.4. ECOC'22 Demo (PENDING)](./2-4-ecoc22.md)
+  - [2.5. NFV-SDN'22 Demo (PENDING)](./2-5-nfvsdn22.md)
 - [3. Development Guide (WORK IN PROGRESS)](./3-0-development.md)
   - [3.1. Configure VSCode and Connect to the VM](./3-1-configure-vscode.md)
   - [3.2. Development Commands, Tricks, and Hints (WORK IN PROGRESS)](./3-2-develop-cth.md)
-- 
GitLab