.. _deploy_physical:

Deploy a physical VOLTHA POD
============================

Quickstart
----------

The quickstart assumes you POD is already correctly cabled, if not you can refer to :ref:`Physical_Layout`

Requires:

- a physical kubernetes cluster
- `kind-voltha <https://github.com/ciena/kind-voltha>`_ cloned on your machine


Enter the ``kind-voltha`` directory and execute this command (``kubectl`` must be installed and poiting to your cluster):

.. code:: bash

    DEPLOY_K8S=no WITH_RADIUS=y CONFIG_SADIS=y ./voltha up

If you already have a ``radius`` server that you want to use, change the flag to ``WITH_RADIUS=n``
and `configure ONOS accordingly <https://github.com/opencord/aaa>`_.

TLDR;
-----

Below are the complete steps to install a physical cluster. It assumes ``kubectl`` and ``helm`` commands are already
available.

Configure Helm
--------------

Helm provide a capabilty to install and manage Kubernetes applications.
VOLTHA’s default deployment mechanism utilized Helm. Before Helm can be
used to deploy VOLTHA it must be initialized and the repositories that
container the artifacts required to deploy VOLTHA must be added to Helm.

.. code:: bash

    helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com
    helm repo add stable https://kubernetes-charts.storage.googleapis.com
    helm repo add onf https://charts.opencord.org
    helm repo update

.. _installation_steps:

Install EtcdOperator
--------------------

ETCD Operator is a utility that allows applications to create and manage
ETCD key/value clusters as Kubernetes resources. VOLTHA utilizes this
utility to create its key/value store. *NOTE: it is not required that
VOLTHA create its own datastore as VOLTHA can utilize and existing
datastore, but for this example VOLTHA will creates its own datastore*

.. code:: bash

   helm install -f $TYPE-values.yaml --namespace voltha --name etcd-operator stable/etcd-operator

Wait for operator pods
~~~~~~~~~~~~~~~~~~~~~~

Before continuing the Kubernetes pods associated with ETCD Operator must
be in the ``Running`` state.

.. code:: bash

   kubectl get -n voltha pod

Once all the pods are in the ``Running`` state the output, for a
**full** deployment should be similar to the output below. For a
**minimal** deployment there will only be a single pod, the
``etcd-operator-etcd-operator-etcd-operator`` pod.

.. code:: bash

   NAME                                                              READY     STATUS    RESTARTS   AGE
   etcd-operator-etcd-operator-etcd-backup-operator-7897665cfq75w2   1/1       Running   0          2m
   etcd-operator-etcd-operator-etcd-operator-7d579799f7-bjdnj        1/1       Running   0          2m
   etcd-operator-etcd-operator-etcd-restore-operator-7d77d878wwcn7   1/1       Running   0          2m

It is not just VOLTHA
---------------------

To demonstrate the capability of VOLTHA other *partner* applications are
required, such as ONOS. The followins sections describe how to install
and configure these *partner* applications.

*NOTE: It is important to start ONOS before VOLTHA as if they are
started in the reverse order ofagent sometimes does not connect to the
SDN
controller*\ `VOL-1764 <https://jira.opencord.org/browse/VOL-1764>`__.

ONOS (OpenFlow Controller)
~~~~~~~~~~~~~~~~~~~~~~~~~~

VOLTHA exposes an OLT and its connected ONUs as an OpenFlow switch. To
control that virtual OpenFlow switch an OpenFlow controller is required.
For most VOLTHA deployments that controller is ONOS with a set of ONOS
applications installed. To install ONOS use the following Helm command:

.. code:: bash

   helm install -f $TYPE-values.yaml --name onos onf/onos

Exposing ONOS Services
^^^^^^^^^^^^^^^^^^^^^^

.. code:: bash

   screen -dmS onos-ui kubectl port-forward service/onos-ui 8181:8181
   screen -dmS onos-ssh kubectl port-forward service/onos-ssh 8101:8101

Configuring ONOS Applications
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Configuration files have been provided to configure aspects of the ONOS
deployment. The following curl commands push those configurations to the
ONOS instance. It is possible (likely) that ONOS won’t be immediately
ready to accept REST requests, so the first ``curl`` command may need
retried until ONOS is ready to accept REST connections.

.. code:: bash

   curl --fail -sSL --user karaf:karaf \
       -X POST -H Content-Type:application/json \
       http://127.0.0.1:8181/onos/v1/network/configuration/apps/org.opencord.kafka \
       --data @onos-files/onos-kafka.json
   curl --fail -sSL --user karaf:karaf \
       -X POST -H Content-Type:application/json \
       http://127.0.0.1:8181/onos/v1/network/configuration/apps/org.opencord.dhcpl2relay \
       --data @onos-files/onos-dhcpl2relay.json
   curl --fail -sSL --user karaf:karaf \
       -X POST -H Content-Type:application/json \
       http://127.0.0.1:8181/onos/v1/configuration/org.opencord.olt.impl.Olt \
       --data @onos-files/olt-onos-olt-settings.json
   curl --fail -sSL --user karaf:karaf \
       -X POST -H Content-Type:application/json \
       http://127.0.0.1:8181/onos/v1/configuration/org.onosproject.net.flow.impl.FlowRuleManager \
       --data @onos-files/olt-onos-enableExtraneousRules.json

SADIS Configuration
^^^^^^^^^^^^^^^^^^^

The ONOS applications leverage the *Subscriber and Device Information
Store (SADIS)* when processing EAPOL and DHCP packets from VOLTHA
controlled devices. In order for VOLTHA to function propperly SADIS
entries must be configured into ONOS.

The repository contains two example SADIS configuration that can be used
with ONOS depending if you using VOLTHA with *tech profile* support
(``onos-files/onos-sadis-no-tp.json``) or without *tech profile* support
(``onos-files/onos-sadis-tp.json``). Either of these configurations can
be pushed to ONOS using the following command:

.. code:: bash

   curl --fail -sSL --user karaf:karaf \
       -X POST -H Content-Type:application/json \
       http://127.0.0.1:8181/onos/v1/network/configuration/apps/org.opencord.sadis \
       --data @<selected SADIS configuration file>

Install VOLTHA Core
-------------------

VOLTHA has two main *parts*: core and adapters. The **core** provides
the main logic for the VOLTHA application and the **adapters** contain
logic to adapter vendor neutral operations to vendor specific devices.

Before any adapters can be deployed the VOLTHA core must be installed
and in the ``Running`` state. The following Helm command installs the
core components of VOLTHA based on the desired deployment type.

.. code:: bash

   helm install -f $TYPE-values.yaml --set use_go=true --set defaults.log_level=WARN \
       --namespace voltha --name voltha onf/voltha

During the install of the core VOLTHA components some containers may
“crash” or restart. This is normal as there are dependencies, such as
the read/write cores cannot start until the ETCD cluster is established
and so they crash until the ETCD cluster is operational. Eventually all
the containers should be in a ``Running`` state as queried by the
command:

.. code:: bash

   kubectl get -n voltha pod

The output should be similar to the following with a different number of
``etcd-operator`` and ``voltha-etcd-cluster`` pods depending on the
deployment type.

.. code:: bash

   NAME                                                         READY     STATUS    RESTARTS   AGE
   etcd-operator-etcd-operator-etcd-operator-7d579799f7-xq6f2   1/1       Running   0          19m
   ofagent-8ccb7f5fb-hwgfn                                      1/1       Running   0          4m
   ro-core-564f5cdcc7-2pch8                                     1/1       Running   0          4m
   rw-core1-7fbb878cdd-6npvr                                    1/1       Running   2          4m
   rw-core2-7fbb878cdd-k7w9j                                    1/1       Running   3          4m
   voltha-api-server-5f7c8b5b77-k6mrg                           2/2       Running   0          4m
   voltha-cli-server-5df4c95b7f-kcpdl                           1/1       Running   0          4m
   voltha-etcd-cluster-4rsqcvpwr4                               1/1       Running   0          4m
   voltha-kafka-0                                               1/1       Running   0          4m
   voltha-zookeeper-0                                           1/1       Running   0          4m

Install Adapters
----------------

The following commands install both the simulated OLT and ONU adapters
as well as the adapters for an OpenOLT and OpenONU device.

.. code:: bash

   helm install -f $TYPE-values.yaml -set use_go=true --set defaults.log_level=WARN \
       --namespace voltha --name sim onf/voltha-adapter-simulated
   helm install -f $TYPE-values.yaml -set use_go=true --set defaults.log_level=WARN \
       --namespace voltha --name open-olt onf/voltha-adapter-openolt
   helm install -f $TYPE-values.yaml -set use_go=true --set defaults.log_level=WARN \
       --namespace voltha --name open-onu onf/voltha-adapter-openonu

Exposing VOLTHA Services
------------------------

At this point VOLTHA is deployed and from within the Kubernetes cluster
the VOLTHA services can be reached. However, from outside the Kubernetes
cluster the services cannot be reached.

.. code:: bash

   screen -dmS voltha-api kubectl port-forward -n voltha service/voltha-api 55555:55555
   screen -dmS voltha-ssh kubectl port-forward -n voltha service/voltha-cli 5022:5022

Install FreeRADIUS Service
--------------------------

.. code:: bash

   helm install -f minimal-values.yaml --namespace voltha --name radius onf/freeradius

Configure ``voltctl`` to Connect to VOLTHA
------------------------------------------

In order for ``voltctl`` to connect to the VOLTHA instance deplpoyed in
the Kubernetes cluster it must know which IP address and port to use.
This configuration can be persisted to a local config file using the
following commands.

.. code:: bash

   mkdir -p $HOME/.volt
   voltctl -a v2 -s localhost:55555 config > $HOME/.volt/config

To test the connectivity you can query the version of the VOLTHA client
and server.

.. code:: bash

   voltctl version

The output should be similar to the following

.. code:: bash

   Client:
    Version        unknown-version
    Go version:    unknown-goversion
    Vcs reference: unknown-vcsref
    Vcs dirty:     unknown-vcsdirty
    Built:         unknown-buildtime
    OS/Arch:       unknown-os/unknown-arch

   Cluster:
    Version        2.1.0-dev
    Go version:    1.12.6
    Vcs feference: 28f120f1f4751284cadccf73f2f559ce838dd0a5
    Vcs dirty:     false
    Built:         2019-06-26T16:58:22Z
    OS/Arch:       linux/amd64