efiacor | 0fb3b8f | 2022-10-28 15:29:26 +0100 | [diff] [blame] | 1 | .. This work is licensed under a Creative Commons Attribution 4.0 |
| 2 | .. International License. |
| 3 | .. http://creativecommons.org/licenses/by/4.0 |
| 4 | .. Copyright (C) 2022 Nordix Foundation |
| 5 | |
| 6 | .. Links |
| 7 | .. _Helm: https://docs.helm.sh/ |
| 8 | .. _Helm Charts: https://github.com/kubernetes/charts |
| 9 | .. _Kubernetes: https://Kubernetes.io/ |
| 10 | .. _Docker: https://www.docker.com/ |
| 11 | .. _Nexus: https://nexus.onap.org/ |
| 12 | |
| 13 | .. _oom_dev_guide: |
| 14 | |
| 15 | OOM Developer Guide |
| 16 | ################### |
| 17 | |
| 18 | .. figure:: ../../resources/images/oom_logo/oomLogoV2-medium.png |
| 19 | :align: right |
| 20 | |
| 21 | ONAP consists of a large number of components, each of which are substantial |
| 22 | projects within themselves, which results in a high degree of complexity in |
| 23 | deployment and management. To cope with this complexity the ONAP Operations |
| 24 | Manager (OOM) uses a Helm_ model of ONAP - Helm being the primary management |
| 25 | system for Kubernetes_ container systems - to drive all user driven life-cycle |
| 26 | management operations. The Helm model of ONAP is composed of a set of |
| 27 | hierarchical Helm charts that define the structure of the ONAP components and |
| 28 | the configuration of these components. These charts are fully parameterized |
| 29 | such that a single environment file defines all of the parameters needed to |
| 30 | deploy ONAP. A user of ONAP may maintain several such environment files to |
| 31 | control the deployment of ONAP in multiple environments such as development, |
| 32 | pre-production, and production. |
| 33 | |
| 34 | |
| 35 | |
| 36 | .. rubric:: Container Background |
| 37 | |
| 38 | Linux containers allow for an application and all of its operating system |
| 39 | dependencies to be packaged and deployed as a single unit without including a |
| 40 | guest operating system as done with virtual machines. The most popular |
| 41 | container solution is Docker_ which provides tools for container management |
| 42 | like the Docker Host (dockerd) which can create, run, stop, move, or delete a |
| 43 | container. Docker has a very popular registry of containers images that can be |
| 44 | used by any Docker system; however, in the ONAP context, Docker images are |
| 45 | built by the standard CI/CD flow and stored in Nexus_ repositories. OOM uses |
| 46 | the "standard" ONAP docker containers and three new ones specifically created |
| 47 | for OOM. |
| 48 | |
| 49 | Containers are isolated from each other primarily via name spaces within the |
| 50 | Linux kernel without the need for multiple guest operating systems. As such, |
| 51 | multiple containers can be deployed with little overhead such as all of ONAP |
| 52 | can be deployed on a single host. With some optimization of the ONAP components |
| 53 | (e.g. elimination of redundant database instances) it may be possible to deploy |
| 54 | ONAP on a single laptop computer. |
| 55 | |
| 56 | The following sections describe how the ONAP Helm charts are constructed. |
| 57 | |
| 58 | .. toctree:: |
| 59 | :maxdepth: 1 |
| 60 | |
| 61 | oom_dev_helm_chart_info.rst |
| 62 | oom_dev_config_management.rst |
| 63 | oom_dev_container_orchestration.rst |
| 64 | |