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.
In summary OOM provides the following capabilities:
- Deployment - with built-in component dependency management (including multiple clusters, federated deployments across sites, and anti-affinity rules)
- Configuration - unified configuration across all ONAP components
- Monitoring - real-time health monitoring feeding to a Consul UI and Kubernets
- Heal- failed ONAP containers are recreated automatically
- Clustering and Scaling - cluster ONAP services to enable seamless scaling
- Upgrade - change-out containers or configuration with little or no service impact
- Deletion - cleanup individual containers or entire deployments
OOM supports a wide variety of cloud infrastructures to suit your individual requirements.
Table of Contents
Quick Start Guide
Once a kubernetes environment is available (check out ONAP on Kubernetes if you're getting started) and the deployment artifacts have been customized for your location, ONAP is ready to be installed.
The first step is to setup the /oom/kubernetes/config/onap-parameters.yaml file with key-value pairs specific to your OpenStack environment. There is a sample that may help you out or even be usable directly if you don't intend to actually use OpenStack resources.
In-order to be able to support multiple ONAP instances within a single kubernetes environment a configuration set is required. The
createConfig.sh script is used to do this.
The bash script
createAll.bash 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.
Namespaces provide isolation between ONAP components as ONAP release 1.0 contains duplicate application (e.g. 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 (e.g.
onapTrial-sdc, onapTrial-aai, onapTrial-mso, onapTrial-message-router, onapTrial-robot, onapTrial-vid, onapTrial-sdnc, onapTrial-portal, onapTrial-policy, onapTrial-appc) being created within the kubernetes environment. A prerequisite pod config-init (
pod-config-init.yaml) may need editing to match your environment and deployment into the default namespace before running
If you'd like to see the installation of ONAP by OOM take a look at this short video demonstration by Mike Elliott: OOM Demo Video
OOM Architecture and Technical Details
OOM uses the Kubernetes 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.
OOM Configuration Management
OOM provides capabilities to manage the configuration parameters of an ONAP deployment. For more information refer to OOM Configuration Management.
OOM Production-Grade Deployments
ONAP can be deployed as a carrier grade application as described in OOM for Production-Grade Deployments.
Contributing to OOM
Feedback: You can provide feedback on the onap-discuss list, sign up here: ONAP Discuss List
Bug reports: Jira
Contributions: Instructions on how to set up Gerrit is here: Configuring Gerrit. Please join the onap-discuss list (OOM posts are tagged with oom) or attend OOM's weekly meetings for information on how you can help.
Development Policies, Standards, and Coding
- Developer Best Practices (note that as OOM is not a standard Java project, the coding specific points don't apply)
- Development Procedures and Policies
- Code Review
Amsterdam Release Planning
- M1 Release Planning Checklist link
- M2 Functionality Freeze Checklist link
- M3 API Freeze Checklist link
- M4 Code Freeze Checklist link
- RCx Checklist link
- Sign-Off Checklist link
- OOM for Planning Milestone Checklist Template
Beijing Release Planning
Links to Further Information
- The OOM project proposal page is here: Approved Project Proposal.
- 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.
- If you're interested in project status, look here: OOM Deployment Status.
- The committers on this team are listed here: OOM Team
- The OOM Weekly meeting notes will help you understand what the OOM team is actively working on.