From 576a3aadb9898ae4f1f2e5243940bdc75b4ac6ad Mon Sep 17 00:00:00 2001 From: Martin Skorupski Date: Wed, 23 Oct 2024 13:49:48 +0200 Subject: [PATCH] Create Deployment Guideline for INT - simplify network settings for test network - update README.md - adopt .gitignore towards python 3.12 and virtual environment Issue-ID: OAM-423 Change-Id: I3531db48f08e433f732fedbb66c8a699f369b2f0 Signed-off-by: Martin Skorupski --- .gitignore | 5 ++++- solution/README.md | 36 +++++++++++++++++++++--------------- solution/network/.env | 6 +++--- solution/network/docker-compose.yaml | 13 +++++-------- 4 files changed, 33 insertions(+), 27 deletions(-) diff --git a/.gitignore b/.gitignore index 2cbf06a..d789c1e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ ############################################################################## # -# Copyright 2019 highstreet technologies GmbH and others... +# Copyright 2024 highstreet technologies USA Corp. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -47,6 +47,9 @@ archive __pycache__ .pylintrc output +.oam +.venv +venv # Avoid ignoring Maven wrapper jar file (.jar files are usually ignored) !/.mvn/wrapper/maven-wrapper.jar diff --git a/solution/README.md b/solution/README.md index 315bf6f..b7cacbb 100644 --- a/solution/README.md +++ b/solution/README.md @@ -4,12 +4,12 @@ This project focus on a docker-compose deployment solution for SMO/OAM Component ## Introduction -With respect to OAM the SMO implements the O1-interface consumers. +With respect to Operation and Maintenance (OAM) the SMO implements the O1-interface consumers. According to the O-RAN OAM Architecture and the O-RAN OAM Interface Specification, the SMO implements a NETCONF Client for configuration and a HTTP/REST/VES server for receiving all kind of events in VES format. -The setup contains an OpenDaylight based NETCONF client and an ONAP VES Collector. +The O-RAN-SC OAM deployment contains an OpenDaylight based NETCONF client and an ONAP VES Collector. Kafka is used as massage router for communication between the components. The Keycloak implementation offers and Identity service, while traefik acts as reverse proxy to terminate all incoming https traffic. For storing data in a persistence way the implementation of the mariaDB project is used. ## SMO OAM Components @@ -47,14 +47,14 @@ The solution was tested on a VM with ``` $ cat /etc/os-release | grep PRETTY_NAME -PRETTY_NAME="Ubuntu 22.04.2 LTS" +PRETTY_NAME="Ubuntu 24.04.1 LTS" ``` ### Docker ``` $ docker --version -Docker version 27.2.0, build 3ab4256 +Docker version 27.3.1, build ce12230 ``` Please follow the required docker daemon configuration as documented in the following README.md: - [./smo/common/docker/README.md](./smo/common/docker/README.md) @@ -63,27 +63,33 @@ Please follow the required docker daemon configuration as documented in the foll ``` $ docker compose version -Docker Compose version v2.29.2 +Docker Compose version v2.29.7 ``` ### GIT ``` $ git --version -git version 2.34.1 +git version 2.43.0 ``` ### Python ``` $ python3 --version -Python 3.10.12 +Python 3.12.3 ``` A python parser package is required. ``` -sudo apt install python3-pip -pip install jproperties +python3 -m venv .oam +source .oam/bin/activate +pip3 install jproperties +pip3 install jinja2 +pip3 install requests + +# your system IP is required in .env files, please see explanations below +python3 ./adopt_to_environment.py -i ``` It is beneficial (but not mandatory) adding the following line add the @@ -123,7 +129,7 @@ $ cat /etc/hosts # SMO OAM development system smo.o-ran-sc.org - gateway.smo.o-ran-sc.org + gateway.smo.o-ran-sc.org identity.smo.o-ran-sc.org messages.smo.o-ran-sc.org kafka-bridge.smo.o-ran-sc.org @@ -132,7 +138,6 @@ $ cat /etc/hosts tests.oam.smo.o-ran-sc.org controller.dcn.smo.o-ran-sc.org ves-collector.dcn.smo.o-ran-sc.org - ``` ## Usage @@ -145,23 +150,24 @@ The following commands should be invoked. More detailed can be found in the next chapters. ```bash -docker compose -f smo/common/docker-compose.yaml up -d --wait +source .oam/bin/activate +docker compose -f smo/common/docker-compose.yaml up -d --wait # optionally adjust the users.csv file to create new users vim users.csv # override authentication.json with the new users python3 create_users.py users.csv -o smo/common/identity/authentication.json -python smo/common/identity/config.py +python3 smo/common/identity/config.py docker compose -f smo/oam/docker-compose.yaml up -d docker compose -f smo/apps/docker-compose.yaml up -d -# wait until the cpu load is low again +# the cpu load is low again, we can start a simulated network docker compose -f network/docker-compose.yaml up -d docker compose -f network/docker-compose.yaml restart ntsim-ng-o-du-1122 -python network/config.py +python3 network/config.py ``` #### Check (adjust if required) environment variables diff --git a/solution/network/.env b/solution/network/.env index 757e1fd..a976b52 100644 --- a/solution/network/.env +++ b/solution/network/.env @@ -16,7 +16,7 @@ HOST_IP=aaa.bbb.ccc.ddd # NETWORK_SUBNET_DCN_IPv4=172.60.0.0/24 -NETWORK_SUBNET_DCN_IPv6=2001:db8:1:60::/96 +NETWORK_SUBNET_DCN_IPv6=2001:db8:1:50::/96 # Credentials ADMIN_USERNAME=admin @@ -49,8 +49,8 @@ NTS_MANAGER_PORT=8300 NTS_BUILD_VERSION=1.8.1 IPv6_ENABLED=true -SSH_CONNECTIONS=1 -TLS_CONNECTIONS=0 +SSH_CONNECTIONS=0 +TLS_CONNECTIONS=1 NTS_HOST_IP=2a00:7b80:454:2000::2 NTS_HOST_BASE_PORT=50000 NTS_HOST_NETCONF_SSH_BASE_PORT=0 diff --git a/solution/network/docker-compose.yaml b/solution/network/docker-compose.yaml index 14cf1b9..61e8d6b 100755 --- a/solution/network/docker-compose.yaml +++ b/solution/network/docker-compose.yaml @@ -58,6 +58,8 @@ x-nf: &common_nf cap_add: - SYS_ADMIN - SYS_PTRACE + networks: + dcn: services: ntsim-ng-o-du-1122: @@ -133,11 +135,6 @@ services: <<: [*common_env, *ru_env] networks: - default: - driver: bridge - name: network - enable_ipv6: true - ipam: - driver: default - config: - - subnet: ${NETWORK_SUBNET_DCN_IPv6} + dcn: + external: true + -- 2.16.6