rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 1 | .. This work is licensed under a Creative Commons Attribution 4.0 International License. |
| 2 | |
Gildas Lanilis | 966a2e5 | 2017-11-21 11:54:01 -0800 | [diff] [blame] | 3 | .. _onap-operations-manager-project: |
| 4 | |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 5 | ONAP Operations Manager Project |
| 6 | ############################### |
| 7 | |
akhosla | 8c4e3d3 | 2017-12-15 06:57:31 +0000 | [diff] [blame] | 8 | .. contents:: |
| 9 | :depth: 3 |
| 10 | .. |
| 11 | |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 12 | Introduction |
| 13 | ============ |
| 14 | |
| 15 | The ONAP Operations Manager (OOM) is responsible for life-cycle |
| 16 | management of the ONAP platform itself; components such as MSO, SDNC, |
| 17 | etc. It is not responsible for the management of services, VNFs or |
| 18 | infrastructure instantiated by ONAP or used by ONAP to host such |
| 19 | services or VNFs. OOM uses the open-source Kubernetes container |
| 20 | management system as a means to manage the Docker containers that |
| 21 | compose ONAP where the containers are hosted either directly on |
| 22 | bare-metal servers or on VMs hosted by a 3rd party management system. |
| 23 | OOM ensures that ONAP is easily deployable and maintainable throughout |
| 24 | its life cycle while using hardware resources efficiently. |
| 25 | |
| 26 | Quick Start Guide |
| 27 | ================= |
| 28 | |
akhosla | 8c4e3d3 | 2017-12-15 06:57:31 +0000 | [diff] [blame] | 29 | Pre-requisites |
| 30 | -------------- |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 31 | |
akhosla | 8c4e3d3 | 2017-12-15 06:57:31 +0000 | [diff] [blame] | 32 | * Your Kubernetes environment must be available. For more information see, `ONAP on Kubernetes <https://wiki.onap.org/display/DW/ONAP+on+Kubernetes>`__. |
| 33 | * Deployment artifacts are customized for your location. |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 34 | |
akhosla | 8c4e3d3 | 2017-12-15 06:57:31 +0000 | [diff] [blame] | 35 | **Step 1** |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 36 | |
akhosla | 8c4e3d3 | 2017-12-15 06:57:31 +0000 | [diff] [blame] | 37 | Review and optionally change configuration parameters: |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 38 | |
akhosla | 8c4e3d3 | 2017-12-15 06:57:31 +0000 | [diff] [blame] | 39 | Setup the `/oom/kubernetes/config/onap-parameters.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters.yaml;h=7ddaf4d4c3dccf2fad515265f0da9c31ec0e64b1;hb=refs/heads/master>`__ file with key-value pairs specific to your OpenStack environment. |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 40 | |
akhosla | 8c4e3d3 | 2017-12-15 06:57:31 +0000 | [diff] [blame] | 41 | OR |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 42 | |
akhosla | 8c4e3d3 | 2017-12-15 06:57:31 +0000 | [diff] [blame] | 43 | There is a `sample <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters-sample.yaml;h=3a74beddbbf7f9f9ec8e5a6abaecb7cb238bd519;hb=refs/heads/master>`__ that may help you out or even be usable directly if you don't intend to actually use OpenStack resources. |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 44 | |
akhosla | 8c4e3d3 | 2017-12-15 06:57:31 +0000 | [diff] [blame] | 45 | **Step 2** |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 46 | |
akhosla | 8c4e3d3 | 2017-12-15 06:57:31 +0000 | [diff] [blame] | 47 | In-order to be able to support multiple ONAP instances within a single kubernetes environment, a configuration set is required. To do this, execute the `createConfig.sh <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/createConfig.sh;h=f226ccae47ca6de15c1da49be4b8b6de974895ed;hb=refs/heads/master>`__ script:: |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 48 | |
akhosla | 8c4e3d3 | 2017-12-15 06:57:31 +0000 | [diff] [blame] | 49 | oom/kubernetes/config/createConfig.sh -n onap |
| 50 | |
| 51 | Where: |
| 52 | |
| 53 | * onap' refers to the name of the instance. This serves as the Namespace prefix for each deployed ONAP component (for example, onap-mso). |
| 54 | |
| 55 | **Step 3** |
| 56 | |
| 57 | The bash script `createAll.bash <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/oneclick/createAll.bash;h=5e5f2dc76ea7739452e757282e750638b4e3e1de;hb=refs/heads/master>`__ is used to create an ONAP deployment with kubernetes. It has two primary functions: |
| 58 | |
| 59 | * Creating the namespaces used to encapsulate the ONAP components, and |
| 60 | * Creating the services, pods and containers within each of these namespaces that provide the core functionality of ONAP. |
| 61 | |
| 62 | Before you execute the createAll.bash. script, pod config-init (`pod-config-init.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/pod-config-init.yaml;h=b1285ce21d61815c082f6d6aa3c43d00561811c7;hb=refs/heads/master>`__) may need editing to match your environment and deployment into the default namespace. |
| 63 | |
| 64 | To deploy the containers and create your ONAP system, execute the following command:: |
| 65 | |
| 66 | oom/kubernetes/oneclick/createAll.bash -n onap |
| 67 | |
| 68 | Additional information on usage of createAll.bash |
| 69 | ------------------------------------------------- |
| 70 | |
| 71 | Namespaces provide isolation between ONAP components as ONAP release 1.0 contains duplicate application (for example, mariadb) and port usage. |
| 72 | |
| 73 | As such createAll.bash requires the user to enter a namespace prefix string that can be used to separate multiple deployments of onap. The result will be set of 10 namespaces (for example, onap-sdc, onap-aai, onap-mso, onap-message-router, onap-robot, onap-vid, onap-sdnc, onap-portal, onap-policy, onap-appc) being created within the kubernetes environment. |
| 74 | |
| 75 | Deploying multiple ONAP instances within the same Kubernetes cluster |
| 76 | -------------------------------------------------------------------- |
| 77 | |
| 78 | To deploy multiple ONAP instances, you must specify the number of Instances you would like to create in a Kubernetes cluster using createAllbash. |
| 79 | |
| 80 | This is currently required due to the use of NodePort ranges. NodePorts allow external IP:Port access to containers that are running inside a Kubernetes cluster. |
| 81 | |
| 82 | To create multiple instances of an ONAP deployment in the cluster, use the following commands:: |
| 83 | |
| 84 | oom/kubernetes/config/createConfig.sh -n onap |
| 85 | |
| 86 | oom/kubernetes/oneclick/createAll.bash -n onap -i 2 |
| 87 | |
| 88 | Where: |
| 89 | |
| 90 | * 'onap' refers to the name of the instance. |
| 91 | * ‘i 2’ refers to the number of instances of an ONAP deployment in the cluster. |
| 92 | |
| 93 | To delete a deployed instance |
| 94 | ----------------------------- |
| 95 | |
| 96 | To delete a deployed instance, use the following command:: |
| 97 | |
| 98 | oom/kubernetes/oneclick/deleteAll.bash -n onap |
| 99 | |
| 100 | **Note**: Deleting the runtime containers does not remove the configuration created in step 2. |
| 101 | |
| 102 | For more information on OOM project documentation, refer to `Quick Start Guide on Wiki <https://wiki.onap.org/display/DW/ONAP+Operations+Manager+Project#ONAPOperationsManagerProject-QuickStartGuide>`__. |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 103 | |
| 104 | Demo Video |
| 105 | ---------- |
| 106 | |
| 107 | If you'd like to see the installation of ONAP by OOM take a look at this |
| 108 | short video demonstration by Mike Elliott: |
| 109 | |
| 110 | .. raw:: html |
| 111 | |
akhosla | 27137ce | 2017-12-08 09:18:53 +0000 | [diff] [blame] | 112 | <video controls src="_static/OOM_Demo.mp4"></video> |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 113 | |
| 114 | |
| 115 | OOM Architecture and Technical Details |
| 116 | ====================================== |
| 117 | |
| 118 | OOM uses the \ `Kubernetes <http://kubernetes.io/>`__\ container |
| 119 | management system to orchestrate the life cycle of the ONAP |
| 120 | infrastructure components. If you'd like to learn more about how this |
| 121 | works or develop the deployment specifications for a project not already |
| 122 | managed by OOM look here: \ `OOM User |
akhosla | 27137ce | 2017-12-08 09:18:53 +0000 | [diff] [blame] | 123 | Guide <http://onap.readthedocs.io/en/latest/submodules/oom.git/docs/OOM%20User%20Guide/oom_user_guide.html>`__. |
rvyas | ea507b5 | 2017-09-25 14:29:47 -0400 | [diff] [blame] | 124 | |
| 125 | |
| 126 | Links to Further Information |
| 127 | ============================ |
| 128 | |
| 129 | - Configuration data for all of the ONAP sub-projects is distributed by |
| 130 | OOM. For more information on how this is done see: \ `OOM |
akhosla | 27137ce | 2017-12-08 09:18:53 +0000 | [diff] [blame] | 131 | Configuration Management <https://wiki.onap.org/display/DW/OOM+Configuration+Management>`__. |