.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2018 Amdocs, Bell Canada

.. _quick-start-label:

OOM Quick Start Guide
#####################

.. figure:: oomLogoV2-medium.png
   :align: right

Once a kubernetes environment is available (follow the instructions in
:ref:`cloud-setup-guide-label` if you don't have a cloud environment
available), follow the following instructions to deploy ONAP.

**Step 1.** Clone the OOM repository from ONAP gerrit::

  > git clone -b beijing http://gerrit.onap.org/r/oom
  > cd oom/kubernetes


**Step 2.** Customize the onap/values.yaml file to suit your deployment. You
may want to selectively enable or disable ONAP components by changing the
`enabled: true/false` flags as shown below:

.. code-block:: yaml

  #################################################################
  # Global configuration overrides.
  #
  # These overrides will affect all helm charts (ie. applications)
  # that are listed below and are 'enabled'.
  #################################################################
  global:
    # Change to an unused port prefix range to prevent port conflicts
    # with other instances running within the same k8s cluster
    nodePortPrefix: 302

    # image repositories
    repository: nexus3.onap.org:10001
    repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
    # readiness check
    readinessRepository: oomk8s
    # logging agent
    loggingRepository: docker.elastic.co

    # image pull policy
    pullPolicy: Always

    # default mount path root directory referenced
    # by persistent volumes and log files
    persistence:
      mountPath: /dockerdata-nfs

    # flag to enable debugging - application support required
    debugEnabled: false

  #################################################################
  # Enable/disable and configure helm charts (ie. applications)
  # to customize the ONAP deployment.
  #################################################################
  aaf:
    enabled: true
  aai:
    enabled: true
  appc:
    enabled: true
  clamp:
    enabled: true
  cli:
    enabled: true
  consul: # Consul Health Check Monitoring
    enabled: true
  dcaegen2:
    enabled: true
  esr:
    enabled: true
  log:
    enabled: true
  message-router:
    enabled: true
  mock:
    enabled: true
  msb:
    enabled: true
  multicloud:
    enabled: true
  policy:
    enabled: true
  portal:
    enabled: true
  robot: # Robot Health Check
    enabled: true
  sdc:
    enabled: true
  sdnc:
    enabled: true
  so: # Service Orchestrator
    enabled: true

    replicaCount: 1

    liveness:
      # necessary to disable liveness probe when setting breakpoints
      # in debugger so K8s doesn't restart unresponsive container
      enabled: true

    # so server configuration
    config:
      # message router configuration
      dmaapTopic: "AUTO"
      # openstack configuration
      openStackUserName: "vnf_user"
      openStackRegion: "RegionOne"
      openStackKeyStoneUrl: "http://1.2.3.4:5000"
      openStackServiceTenantName: "service"
      openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"

    # configure embedded mariadb
    mariadb:
      config:
        mariadbRootPassword: password
  uui:
    enabled: true
  vfc:
    enabled: true
  vid:
    enabled: true
  vnfsdk:
    enabled: true

.. note::
  To generate openStackEncryptedPasswordHere :

  ``root@olc-rancher:~# cd so/resources/config/mso/``

  ``root@olc-rancher:~/oom/kubernetes/so/resources/config/mso# echo -n "<openstack tenant password>" | openssl aes-128-ecb -e -K `cat encryption.key` -nosalt | xxd -c 256 -p``

**Step 3.** To setup a local Helm server to server up the ONAP charts::

  > helm serve &

Note the port number that is listed and use it in the Helm repo add as
follows::

  > helm repo add local http://127.0.0.1:8879

**Step 4.** Verify your Helm repository setup with::

  > helm repo list
  NAME   URL
  local  http://127.0.0.1:8879

**Step 5.** Build a local Helm repository (from the kubernetes directory)::

  > make all

**Step 6.** Display the charts that available to be deployed::

  > helm search -l
  NAME                    VERSION    DESCRIPTION
  local/appc              2.0.0      Application Controller
  local/clamp             2.0.0      ONAP Clamp
  local/common            2.0.0      Common templates for inclusion in other charts
  local/onap              2.0.0      Open Network Automation Platform (ONAP)
  local/robot             2.0.0      A helm Chart for kubernetes-ONAP Robot
  local/so                2.0.0      ONAP Service Orchestrator

.. note::
  The setup of the Helm repository is a one time activity. If you make changes to your deployment charts or values be sure to use `make` to update your local Helm repository.

**Step 7.** Once the repo is setup, installation of ONAP can be done with a
single command::

  > helm install local/onap -n dev --namespace onap

.. note::
  The requirement for the use of the `onap` namespace will be lifted once the OOM team completes their Beijing deveivers.

Use the following to monitor your deployment and determine when ONAP is ready for use::

  > kubectl get pods --all-namespaces -o=wide