Merge R3 into master
[it/dep.git] / docs / installation-xapps.rst
index d5af024..3d94fe9 100644 (file)
 Loading xApp Helm Charts
 ------------------------
 
-The RIC Platform App Manager deploys RIC applications (a.k.a. xApps) using Helm charts stored in a private Helm repo.
-In the dev testing deployment described in this documentation, this private Helm repo is the Chart Museum pod that is deployed within the ric infrastructure group into the RIC cluster.
+The RIC Platform App Manager deploys RIC applications (a.k.a. xApps) using Helm charts stored in a private local Helm repo.
+The Helm local repo is deployed as a sidecar of the App Manager pod, and its APIs are exposed using an ingress controller with TLS enabled.
+You can use both HTTP and HTTPS to access it.
 
-The Helm repo location and credential for access the repo are specified in both the infrastructure and platform recipe files.
+Before any xApp can be deployed, its Helm chart must be loaded into this private Helm repo.
+The example below shows the command sequences that upload and delete the xApp Helm charts:
 
-Before any xApp can be deployed, its Helm chart must be loaded into this private Helm repo before the App manager can deploy them.
-The example below show a command sequence that completes:
-
-#. Add the Helm repo at the Helm client running on the RIC cluster host VM (via Kong Ingress Controller);
-#. Load the xApp Helm chart into the Helm repo;
-#. Update the local cache for the Helm repo and check the Helm chart is loaded;
-#. Calling App Manager to deploy the xApp;
-#. Calling App Manager to delete the xApp;
+#. Load the xApp Helm charts into the Helm repo;
+#. Verify the xApp Helm charts;
+#. Call App Manager to deploy the xApp;
+#. Call App Manager to delete the xApp;
 #. Delete the xApp helm chart from the private Helm repo.
 
-.. code:: bash
+In the following example, the <INGRESS_CONTROLLER_IP> is the IP address that the RIC cluster ingress controller is listening to.
+If you are using a VM, it is the IP address of the main interface.
+If you are using REC clusters, it is the DANM network IP address you assigned in the recipe.
+If the commands are executed inside the host machine, you can use "localhost" as the <INGRESS_CONTROLLER_IP>.
 
-   # add the Chart Museum as repo cm
-   helm repo add cm http://10.0.2.100:32080/helm
 
-   # load admin-xapp Helm chart to the Chart Museum
-   curl -L -u helm:helm --data-binary "@admin-xapp-1.0.7.tgz" \
-      http://10.0.2.100:32080/helm/api/charts
+.. code:: bash
+
+   # load admin-xapp Helm chart to the Helm repo
+   curl -L --data-binary "@admin-xapp-1.0.7.tgz" http://<INGRESS_CONTROLLER_IP>:32080/helmrepo
 
-   # check the local cache of repo cm
-   helm repo update cm
-   # verify that the Helm chart is loaded and accessible
-   helm search cm/
-   # the new admin-app chart should show up here.
+   # verify the xApp Helm charts
+   curl -L http://<INGRESS_CONTROLLER_IP>:32080/helmrepo/index.yaml
 
    # test App Manager health check API
-   curl -v http://10.0.2.100:32080/appmgr/ric/v1/health/ready
+   curl -v http://<INGRESS_CONTROLLER_IP>:32080/appmgr/ric/v1/health/ready
    # expecting a 200 response
 
    # list deployed xApps
-   curl http://10.0.2.100:32080/appmgr/ric/v1/xapps
+   curl http://<INGRESS_CONTROLLER_IP>:32080/appmgr/ric/v1/xapps
    # expecting a []
-       
-   # deploy xApp
-   curl -X POST http://10.0.2.100:32080/appmgr/ric/v1/xapps -d '{"name": "admin-xapp"}'
+
+   # deploy xApp, the xApp name has to be the same as the xApp Helm chart name
+   curl -X POST http://<INGRESS_CONTROLLER_IP>/appmgr/ric/v1/xapps -d '{"name": "admin-xapp"}'
    # expecting: {"name":"admin-app","status":"deployed","version":"1.0","instances":null}
-       
+
    # check again deployed xApp
-   curl http://10.0.2.10:32080/appmgr/ric/v1/xapps
+   curl http://<INGRESS_CONTROLLER_IP>:32080/appmgr/ric/v1/xapps
    # expecting a JSON array with an entry for admin-app
-       
+
    # check pods using kubectl
    kubectl get pods --all-namespaces
    # expecting the admin-xapp pod showing up
-       
+
    # underlay the xapp
-   curl -X DELETE http://10.0.2.100:32080/appmgr/ric/v1/xapps/admin-xapp
+   curl -X DELETE http://<INGRESS_CONTROLLER_IP>:32080/appmgr/ric/v1/xapps/admin-xapp
 
    # check pods using kubectl
    kubectl get pods --all-namespaces
    # expecting the admin-xapp pod gone or shown as terminating
 
    # to delete a chart
-   curl -L -X DELETE -u helm:helm http://10.0.2.100:32080/api/charts/admin-xapp/0.0.5
+   curl -L -X DELETE -u helm:helm http://<INGRESS_CONTROLLER_IP>:32080/api/charts/admin-xapp/0.0.5
 
 For more xApp deployment and usage examples, please see the documentation for the it/test repository.