blob: 2e21546644df9193c5f923f81701c49b78b14205 [file] [log] [blame]
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
.. ===============LICENSE_START=======================================================
.. Copyright (C) 2019-2020 AT&T Intellectual Property
.. ===================================================================================
.. This documentation file is distributed under the Creative Commons Attribution
.. 4.0 International License (the "License"); you may not use this file except in
.. compliance with the License. You may obtain a copy of the License at
..
.. http://creativecommons.org/licenses/by/4.0
..
.. This file 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.
.. ===============LICENSE_END=========================================================
**xApp Onboarding using CLI tool called dms_cli**
xApp onboarder provides a cli tool called dms_cli to fecilitate xApp onboarding service to operators. It consumes the xApp descriptor and optionally additional schema file, and produces xApp helm charts.
Below are the sequence of steps to onboard, install and uninstall the xApp.
Step 1: (OPTIONAL ) Install python3 and its dependent libraries, if not installed.
Step 2: Prepare the xApp descriptor and an optional schema file. xApp descriptor file is a config file that defines the behavior of the xApp. An optional schema file is a JSON schema file that validates the self-defined parameters.
Step 3: Before any xApp can be deployed, its Helm chart must be loaded into this private Helm repository.
.. code:: bash
#Create a local helm repository with a port other than 8080 on host
docker run --rm -u 0 -it -d -p 8090:8080 -e DEBUG=1 -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/charts -v $(pwd)/charts:/charts chartmuseum/chartmuseum:latest
Step 4: Set up the environment variables for CLI connection using the same port as used above.
.. code:: bash
#Set CHART_REPO_URL env variable
export CHART_REPO_URL=http://0.0.0.0:8090
Step 5: Install dms_cli tool
.. code:: bash
#Git clone appmgr
git clone "https://gerrit.o-ran-sc.org/r/ric-plt/appmgr"
#Change dir to xapp_onboarder
cd appmgr/xapp_orchestrater/dev/xapp_onboarder
#If pip3 is not installed, install using the following command
yum install python3-pip
#In case dms_cli binary is already installed, it can be uninstalled using following command
pip3 uninstall xapp_onboarder
#Install xapp_onboarder using following command
pip3 install ./
Step 6: (OPTIONAL ) If the host user is non-root user, after installing the packages, please assign the permissions to the below filesystems
.. code:: bash
#Assign relevant permission for non-root user
sudo chmod 755 /usr/local/bin/dms_cli
sudo chmod -R 755 /usr/local/lib/python3.6
sudo chmod -R 755 /usr/local/lib/python3.6
Step 7: Onboard your xApp
.. code:: bash
# Make sure that you have the xapp descriptor config file and the schema file at your local file system
dms_cli onboard CONFIG_FILE_PATH SCHEMA_FILE_PATH
OR
dms_cli onboard --config_file_path=CONFIG_FILE_PATH --shcema_file_path=SCHEMA_FILE_PATH
#Example:
dms_cli onboard /files/config-file.json /files/schema.json
OR
dms_cli onboard --config_file_path=/files/config-file.json --shcema_file_path=/files/schema.json
Step 8: (OPTIONAL ) List the helm charts from help repository.
.. code:: bash
#List all the helm charts from help repository
curl -X GET http://localhost:8080/api/charts | jq .
#List details of specific helm chart from helm repository
curl -X GET http://localhost:8080/api/charts/<XAPP_CHART_NAME>/<VERSION>
Step 9: (OPTIONAL ) Delete a specific Chart Version from helm repository.
.. code:: bash
#Delete a specific Chart Version from helm repository
curl -X DELETE http://localhost:8080/api/charts/<XAPP_CHART_NAME>/<VERSION>
Step 10: (OPTIONAL ) Download the xApp helm charts.
.. code:: bash
dms_cli download_helm_chart XAPP_CHART_NAME VERSION --output_path=OUTPUT_PATH
OR
dms_cli download_helm_chart --xapp_chart_name=XAPP_CHART_NAME --version=VERSION --output_path=OUTPUT_PATH
Example:
dms_cli download_helm_chart ueec 1.0.0 --output_path=/files/helm_xapp
OR
dms_cli download_helm_chart --xapp_chart_name=ueec --version=1.0.0 --output_path=/files/helm_xapp
Step 11: Install the xApp.
.. code:: bash
dms_cli install XAPP_CHART_NAME VERSION NAMESPACE
OR
dms_cli install --xapp_chart_name=XAPP_CHART_NAME --version=VERSION --namespace=NAMESPACE
Example:
dms_cli install ueec 1.0.0 ricxapp
OR
dms_cli install --xapp_chart_name=ueec --version=1.0.0 --namespace=ricxapp
Step 12: (OPTIONAL ) Install xApp using helm charts by providing the override values.yaml.
.. code:: bash
#Download the default values.yaml
dms_cli download_values_yaml XAPP_CHART_NAME VERSION --output_path=OUTPUT_PATH
OR
dms_cli download_values_yaml --xapp_chart_name=XAPP_CHART_NAME --version=VERSION --output_path=OUTPUT_PATH
Example:
dms_cli download_values_yaml traffic-steering 0.6.0 --output-path=/tmp
OR
dms_cli download_values_yaml --xapp_chart_name=traffic-steering --version=0.6.0 --output-path=/tmp
#Modify values.yaml and provide it as override file
dms_cli install XAPP_CHART_NAME VERSION NAMESPACE OVERRIDEFILE
OR
dms_cli install --xapp_chart_name=XAPP_CHART_NAME --version=VERSION --namespace=NAMESPACE --overridefile=OVERRIDEFILE
Example:
dms_cli install ueec 1.0.0 ricxapp /tmp/values.yaml
OR
dms_cli install --xapp_chart_name=ueec --version=1.0.0 --namespace=ricxapp --overridefile=/tmp/values.yaml
Step 13: (OPTIONAL ) Uninstall the xApp.
.. code:: bash
dms_cli uninstall XAPP_CHART_NAME NAMESPACE
OR
dms_cli uninstall --xapp_chart_name=XAPP_CHART_NAME --namespace=NAMESPACE
Example:
dms_cli uninstall ueec ricxapp
OR
dms_cli uninstall --xapp_chart_name=ueec --namespace=ricxapp
Step 14: (OPTIONAL) Upgrade the xApp to a new version.
.. code:: bash
dms_cli upgrade XAPP_CHART_NAME OLD_VERSION NEW_VERSION NAMESPACE
OR
dms_cli upgrade --xapp_chart_name=XAPP_CHART_NAME --old_version=OLD_VERSION --new_version=NEW_VERSION --namespace=NAMESPACE
Example:
dms_cli upgrade ueec 1.0.0 2.0.0 ricxapp
OR
dms_cli upgrade --xapp_chart_name=ueec --old_version=1.0.0 --new_version=2.0.0 --namespace=ricxapp
Step 15: (OPTIONAL) Rollback the xApp to old version.
.. code:: bash
dms_cli rollback XAPP_CHART_NAME NEW_VERSION OLD_VERSION NAMESPACE
OR
dms_cli rollback --xapp_chart_name=XAPP_CHART_NAME --new_version=NEW_VERSION --old_version=OLD_VERSION --namespace=NAMESPACE
Example:
dms_cli rollback ueec 2.0.0 1.0.0 ricxapp
OR
dms_cli rollback --xapp_chart_name=ueec --new_version=2.0.0 --old_version=1.0.0 --namespace=ricxapp
Step 16: (OPTIONAL) Check the health of xApp.
.. code:: bash
dms_cli health_check XAPP_CHART_NAME NAMESPACE
OR
dms_cli health_check --xapp_chart_name=XAPP_CHART_NAME --namespace=NAMESPACE
Example:
dms_cli health_check ueec ricxapp
OR
dms_cli health_check --xapp_chart_name=ueec --namespace=ricxapp