blob: 6e4445fd6a5e18e542ec0e9f26de2198df2ab298 [file] [log] [blame]
Deploy a virtual VOLTHA POD
===========================
A guide to install a virtual POD. This is generally used to gain familiarity with the
environment or to do development.
Quickstart
----------
Requires:
- ``docker`` and ``go`` installed on your machine
- `kind-voltha <https://github.com/ciena/kind-voltha>`_ cloned on your machine
.. code:: bash
TYPE=minimal WITH_RADIUS=y CONFIG_SADIS=y ONLY_ONE=y WITH_BBSIM=y ./voltha up
TLDR;
-----
Below are the complete steps to install a physical cluster.
Most of the steps are the same as :ref:`deploy_physical`.
Create Kubernetes Cluster
-------------------------
Kind provides a command line control tool to easily create Kubernetes
clusters using just a basic Docker environment. The following commands
will create the desired deployment of Kubernetes and then configure your
local copy of ``kubectl`` to connect to this cluster.
.. code:: bash
kind create cluster --name=voltha-$TYPE --config $TYPE-cluster.cfg
export KUBECONFIG="$(kind get kubeconfig-path --name="voltha-$TYPE")"
kubectl cluster-info
Initialize Helm
---------------
Helm provide a capability to install and manage Kubernetes applications.
VOLTHAs 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
# Initialize Helm and add the required chart repositories
helm init
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
# Create and k8s service account so that Helm can create pods
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
From this point follow the :ref:`physical VOLTHA POD installation instructions
<installation_steps>`. Come back here once done.
Install BBSIM (Broad Band OLT/ONU Simulator)
--------------------------------------------
BBSIM provides a simulation of a BB device. It can be useful for
testing.
.. code:: bash
helm install -f minimal-values.yaml --namespace voltha --name bbsim onf/bbsim
Create BBSIM Device
^^^^^^^^^^^^^^^^^^^
.. code:: bash
voltctl device create -t openolt -H $(kubectl get -n voltha service/bbsim -o go-template='{{.spec.clusterIP}}'):50060
Enable BBSIM Device
^^^^^^^^^^^^^^^^^^^
.. code:: bash
voltctl device enable $(voltctl device list --filter Type~openolt -q)