blob: ba9de5f1f706da1d44c4401f9515493dfb4b5bfb [file] [log] [blame]
rvyasea507b52017-09-25 14:29:47 -04001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2
Gildas Lanilis966a2e52017-11-21 11:54:01 -08003.. _onap-operations-manager-project:
4
rvyasea507b52017-09-25 14:29:47 -04005ONAP Operations Manager Project
6###############################
7
akhosla8c4e3d32017-12-15 06:57:31 +00008.. contents::
9 :depth: 3
10..
11
rvyasea507b52017-09-25 14:29:47 -040012Introduction
13============
14
15The ONAP Operations Manager (OOM) is responsible for life-cycle
16management of the ONAP platform itself; components such as MSO, SDNC,
17etc. It is not responsible for the management of services, VNFs or
18infrastructure instantiated by ONAP or used by ONAP to host such
19services or VNFs. OOM uses the open-source Kubernetes container
20management system as a means to manage the Docker containers that
21compose ONAP where the containers are hosted either directly on
22bare-metal servers or on VMs hosted by a 3rd party management system.
23OOM ensures that ONAP is easily deployable and maintainable throughout
24its life cycle while using hardware resources efficiently
25
26Quick Start Guide
27=================
28
akhosla8c4e3d32017-12-15 06:57:31 +000029Pre-requisites
30--------------
rvyasea507b52017-09-25 14:29:47 -040031
akhosla8c4e3d32017-12-15 06:57:31 +000032* 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.
rvyasea507b52017-09-25 14:29:47 -040034
akhosla8c4e3d32017-12-15 06:57:31 +000035**Step 1**
rvyasea507b52017-09-25 14:29:47 -040036
akhosla8c4e3d32017-12-15 06:57:31 +000037Review and optionally change configuration parameters:
rvyasea507b52017-09-25 14:29:47 -040038
akhosla8c4e3d32017-12-15 06:57:31 +000039Setup 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.
rvyasea507b52017-09-25 14:29:47 -040040
akhosla8c4e3d32017-12-15 06:57:31 +000041OR
rvyasea507b52017-09-25 14:29:47 -040042
akhosla8c4e3d32017-12-15 06:57:31 +000043There 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.
rvyasea507b52017-09-25 14:29:47 -040044
akhosla8c4e3d32017-12-15 06:57:31 +000045**Step 2**
rvyasea507b52017-09-25 14:29:47 -040046
akhosla8c4e3d32017-12-15 06:57:31 +000047In-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::
rvyasea507b52017-09-25 14:29:47 -040048
akhosla8c4e3d32017-12-15 06:57:31 +000049 oom/kubernetes/config/createConfig.sh -n onap
50
51Where:
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
57The 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
62Before 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
64To deploy the containers and create your ONAP system, execute the following command::
65
66 oom/kubernetes/oneclick/createAll.bash -n onap
67
68Additional information on usage of createAll.bash
69-------------------------------------------------
70
71Namespaces provide isolation between ONAP components as ONAP release 1.0 contains duplicate application (for example, mariadb) and port usage.
72
73As 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
75Deploying multiple ONAP instances within the same Kubernetes cluster
76--------------------------------------------------------------------
77
78To deploy multiple ONAP instances, you must specify the number of Instances you would like to create in a Kubernetes cluster using createAllbash.
79
80This 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
82To 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
88Where:
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
93To delete a deployed instance
94-----------------------------
95
96To 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
102For 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>`__.
rvyasea507b52017-09-25 14:29:47 -0400103
104Demo Video
105----------
106
107If you'd like to see the installation of ONAP by OOM take a look at this
108short video demonstration by Mike Elliott: 
109
110.. raw:: html
111
akhosla27137ce2017-12-08 09:18:53 +0000112 <video controls src="_static/OOM_Demo.mp4"></video>
rvyasea507b52017-09-25 14:29:47 -0400113
114
115OOM Architecture and Technical Details
116======================================
117
118OOM uses the \ `Kubernetes  <http://kubernetes.io/>`__\ container
119management system to orchestrate the life cycle of the ONAP
120infrastructure components.  If you'd like to learn more about how this
121works or develop the deployment specifications for a project not already
122managed by OOM look here\ `OOM User
akhosla27137ce2017-12-08 09:18:53 +0000123Guide <http://onap.readthedocs.io/en/latest/submodules/oom.git/docs/OOM%20User%20Guide/oom_user_guide.html>`__.
rvyasea507b52017-09-25 14:29:47 -0400124
125
126Links 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
akhosla27137ce2017-12-08 09:18:53 +0000131 Configuration Management <https://wiki.onap.org/display/DW/OOM+Configuration+Management>`__.