summaryrefslogtreecommitdiffstats
path: root/docs/OOM Project Description/oom_project_description.rst
blob: ba9de5f1f706da1d44c4401f9515493dfb4b5bfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
.. This work is licensed under a Creative Commons Attribution 4.0 International License.

.. _onap-operations-manager-project:

ONAP Operations Manager Project
###############################

.. contents::
   :depth: 3
..

Introduction
============

The ONAP Operations Manager (OOM) is responsible for life-cycle
management of the ONAP platform itself; components such as MSO, SDNC,
etc. It is not responsible for the management of services, VNFs or
infrastructure instantiated by ONAP or used by ONAP to host such
services or VNFs. OOM uses the open-source Kubernetes container
management system as a means to manage the Docker containers that
compose ONAP where the containers are hosted either directly on
bare-metal servers or on VMs hosted by a 3rd party management system.
OOM ensures that ONAP is easily deployable and maintainable throughout
its life cycle while using hardware resources efficiently. 

Quick Start Guide
=================

Pre-requisites
--------------

* Your Kubernetes environment must be available. For more information see, `ONAP on Kubernetes <https://wiki.onap.org/display/DW/ONAP+on+Kubernetes>`__.
* Deployment artifacts are customized for your location.

**Step 1**

Review and optionally change configuration parameters:

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.

OR

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.

**Step 2**

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::

  oom/kubernetes/config/createConfig.sh -n onap
  
Where:

* onap' refers to the name of the instance. This serves as the Namespace prefix for each deployed ONAP component (for example, onap-mso).

**Step 3**

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:

* Creating the namespaces used to encapsulate the ONAP components, and
* Creating the services, pods and containers within each of these namespaces that provide the core functionality of ONAP.

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.

To deploy the containers and create your ONAP system, execute the following command::
  
  oom/kubernetes/oneclick/createAll.bash -n onap
  
Additional information on usage of createAll.bash
-------------------------------------------------

Namespaces provide isolation between ONAP components as ONAP release 1.0 contains duplicate application (for example, mariadb) and port usage.

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.

Deploying multiple ONAP instances within the same Kubernetes cluster
--------------------------------------------------------------------

To deploy multiple ONAP instances, you must specify the number of Instances you would like to create in a Kubernetes cluster using createAllbash.

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.

To create multiple instances of an ONAP deployment in the cluster, use the following commands::
  
  oom/kubernetes/config/createConfig.sh -n onap
  
  oom/kubernetes/oneclick/createAll.bash -n onap -i 2
  
Where:

* 'onap' refers to the name of the instance.
* ‘i 2’ refers to the number of instances of an ONAP deployment in the cluster.

To delete a deployed instance
-----------------------------

To delete a deployed instance, use the following command::
  
  oom/kubernetes/oneclick/deleteAll.bash -n onap
  
**Note**: Deleting the runtime containers does not remove the configuration created in step 2.

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>`__.

Demo Video
----------

If you'd like to see the installation of ONAP by OOM take a look at this
short video demonstration by Mike Elliott: 

.. raw:: html

   <video controls src="_static/OOM_Demo.mp4"></video>


OOM Architecture and Technical Details
======================================

OOM uses the \ `Kubernetes  <http://kubernetes.io/>`__\ container
management system to orchestrate the life cycle of the ONAP
infrastructure components.  If you'd like to learn more about how this
works or develop the deployment specifications for a project not already
managed by OOM look here: \ `OOM User
Guide <http://onap.readthedocs.io/en/latest/submodules/oom.git/docs/OOM%20User%20Guide/oom_user_guide.html>`__.


Links to Further Information
============================

-  Configuration data for all of the ONAP sub-projects is distributed by
   OOM.  For more information on how this is done see: \ `OOM
   Configuration Management <https://wiki.onap.org/display/DW/OOM+Configuration+Management>`__.