VOLTHA Deployment Environment

All the components in the VOLTHA project are containerized and the default deployment environment is kubernetes.

Generally VOLTHA is installed in one of two setups:

  • A physical kubernetes cluster, generally used for production deployments.

  • A virtual kind cluster, generally used for development.

Regardless of the chosen environment the deployment process is the same, more on this later, and the installation can be managed in the same way.

Managing a VOLTHA deployment

VOLTHA components on top of kubernetes are managed via helm charts. For more information about helm please refer to the Official Documentation. For the sake of this guide all you need to know is that an helm chart describes all the information required to deploy a component on top of kubernetes, such as: containers, exposed ports and configuration parameters.

A VOLTHA deployment is composed, at its very minimum, by:

  • Infrastructure

    • A kafka cluster (can also be a single node)

    • An etcd cluster (can also be a single node)

    • ONOS (single or multi instance)

    • [Optional] radius (for EAPOL based authentication)


    • voltha-core and ofAgent (contained in the same helm chart)

  • Adapters

    • [one or more] adapter pair(s) (OLT adapter + ONU Adapter)

VOLTHA Component Diagram

VOLTHA Kubernetes deployment

Note that the Infrastructure components can be deployed outside of the kubernetes cluster.

You can read more about VOLTHA deployments in:


To simplify the installation of VOLTHA we provided a tool called kind-voltha. You can read more on kind-voltha in its own documentation.