This repo contains all the necessary instructions and scripts to install and configure a Multi-access Edge Computing (MEC) environment using Open Source MANO (OSM) platform and ATNoG MEC components.
Tested on Ubuntu 22.04 with 8 vCPUs, 16GB RAM and 120GB disk space.
Before running the main installation script, make sure to pull and update the submodule for mec-migration.
git submodule update --init --recursiveExecute the run.sh script to install and configure the MEC environment.
./run.shThis script will install OSM, configure necessary components, and deploy the MEC services.
The run.sh script accepts the following command line options:
-f: Install the MEC Federator-k: Install Keycloak-i <ip>: Keycloak IP address (required when-kis not used)-p <operator_id>: Operator ID (required when-kis not used)-s <client_secret>: Client secret (required when-kis not used)-t <client_ids>: Comma-separated list of Keycloak client IDs (required when-kor-fis used). Multiple IDs should be separated by commas.-a <ips>: Comma-separated list of federator IPs (required when-fis used)-n <passwords>: Comma-separated list of SSL passwords (required when-fis used)-l <password>: Kafka consumer password (required when-fis used)
To install the MEC environment with Keycloak and Federator:
./run.sh -f -k -p IT_AVEIRO -t "NOS" -a "10.255.41.185"To install the MEC environment with a Federator and an existing Keycloak:
./run.sh -f -i 10.255.41.197 -p NOS -s "client-secret" -t "IT_AVEIRO" -a "10.255.41.197" -n "8SalyT4ELW"To add additional partners to the configuration, you can use Helm upgrade with the --set flag to specify the partner configuration. For example, to add a new partner called "NEW_PARTNER":
helm -n osm-mec upgrade osm-mec osm-mec/deployment/helm-chart \
--set metricsForwarder.partnersConfig.NEW_PARTNER.bootstrap_servers="10.255.41.198:31999" \
--set metricsForwarder.partnersConfig.NEW_PARTNER.security_protocol="SASL_PLAINTEXT" \
--set metricsForwarder.partnersConfig.NEW_PARTNER.sasl_mechanism="PLAIN" \
--set metricsForwarder.partnersConfig.NEW_PARTNER.sasl_plain_username="user1" \
--set metricsForwarder.partnersConfig.NEW_PARTNER.sasl_plain_password="new-password" \
--reuse-values --wait
kubectl rollout restart deployment metrics-forwarder -n osm-mecEach partner configuration should include:
bootstrap_servers: The Kafka server address and portsecurity_protocol: The security protocol to use (e.g., "SASL_PLAINTEXT")sasl_mechanism: The SASL mechanism (e.g., "PLAIN")sasl_plain_username: The username for authenticationsasl_plain_password: The password for authentication
To add an edge to your MEC environment, you need to add a k8s cluster in OSM. For that, first create the cluster using k3s or other distribution and then run the following command:
source ~/.bashrc
osm vim-create --name <vim-cluster-name> --user dummy --password dummy --auth_url http://dummy.dummy --project dummy --account_type dummy
osm k8scluster-add --creds <path-to-kubeconfig> --version '1.17' --vim <vim-cluster-name> --description "My cluster" --k8s-nets '{"net1": "osm-ext"}' <cluster-name>To add monitoring capabilities to your MEC environment, you can deploy cAdvisor as a CNF (Cloud-Native Function) in OSM. Follow these steps:
cd cadvisor-cnf
./run.sh
cd ..This will deploy cAdvisor in your OSM environment, allowing you to monitor the performance and resource usage of your MEC applications.
The web interface is available at http://<HOST_IP>:30000.