-
Set up your machine with the following CLI tools:
-
AWS CLI
-
Kubectl
-
Helm
-
-
Set up your local AWS CLI Environment Variables.
-
Create an EKS Cluster:
Recommended settings: https://dish-wireless-network.atlassian.net/wiki/spaces/MSS/pages/427327690/Network+as+an+APP+deployment
-
In the sections below we are using a cluster that is named: "response_expirimentation_cluster". Feel free to replace this cluster name with your own.
-
If you already have OpenVerso resources deployed in your cluster, please clean them up and start fresh for this read me.
Network as App deployment (please ensure you have your EKS cluster and node group fired up prior to beginning):
-
Update local kubectl config file:
aws eks --region us-east-1 update-kubeconfig --name response_expirimentation_cluster
(do this every time you want to talk to a new cluster)
-
Ensure your config file is set up correctly:
aws eks --region us-east-1 describe-cluster --name response_expirimentation_cluster --query cluster.status
-
Create openverso namespace and set it to current namespace:
kubectl create namespace openverso
kubectl config set-context --current --namespace=openverso
Troubleshooting: "Error from server (AlreadyExists): namespaces "openverso" already exists" --> If the namespace already exists, this error will show and can be ignored.
-
Add OpenVerso to helm:
helm repo add openverso https://gradiant.github.io/openverso-charts/
-
Deploy open5gs, using custom values from DishDevex:
helm install open5gs openverso/open5gs --version 2.0.8 --values https://raw.githubusercontent.com/DISHDevEx/napp/main/napp/open5gs_values/5gSA_ues_values.yaml
-
Deploy UERANSIM, using custom values from DishDevex:
helm install ueransim-gnb openverso/ueransim-gnb --version 0.2.2 --values https://github.com/DISHDevEx/napp/blob/main/napp/open5gs_values/gnb_ues_values.yaml
Ensure that your ten UE’s are set up correctly and you can enable their tunnel interfaces to connect to the internet via the network.
-
Open an interactive terminal (-ti) for the Deployment (the kubernetes load balancer) of UEs.
kubectl -n openverso exec -ti deployment/ueransim-gnb-ues -- /bin/bash
-
Inspect the IP addresses of the UEs.
ip addr
-
Verify that the deployment can communicate with the internet, in particular with google.com (replaceable with dish.com or cats.com)
ping -I uesimtun6 google.com
This will ping in eternity. Please
^c
to exit the ping.traceroute -i uesimtun6 google.com
This inspects the hops the packet from the UE took to reach google.com.
curl --interface uesimtun6 https://www.google.com
This will retrieve the source code for google.com webpage.
-
Exit the bash session and return to your local machine terminal.
exit
-
Ensure Mongo DB is updated:
Enter open5gs-mongodb bash.
kubectl -n openverso exec deployment/open5gs-mongodb -ti -- bash
Open MongoDB by enter the following command.
mongo
Switch database to open5gs.
use open5gs
Print UE information.
db.subscribers.find().pretty()
To exit: (need to exit twice)
exit exit
-
Ensure all pods are running:
kubectl get pods -n openverso kubectl -n openverso logs deployment/ueransim-gnb
View the Flux README for documentation on the installation of Flux CD and its use in NAPP.
View the cluster-autoscaling README for documentation on the implementation of cluster-autoscaling in NAPP.