Deploy VOLTHA
First Time Installation
Install the etcd-operator helm chart first. This chart provides a convenient way of creating and managing etcd clusters. When VOLTHA installs it will attempt to use etcd-operator to create its etcd cluster. Once installed etcd-operator can be left running.
helm install -n etcd-operator stable/etcd-operator --version 0.8.0
Allow etcd-operator enough time to create the EtdCluster CustomResourceDefinitions. This should only be a couple of seconds after the etcd-operator pods are running. Check the CRD are ready by running the following:
kubectl get crd | grep etcd
If you haven't done it yet, add the CORD repository to the list of your local repositories and update the repo index:
helm repo add cord https://charts.opencord.org
helm repo update
Then, install the VOLTHA helm chart. This will create the VOLTHA pods and will create the etcd-cluster pods.
helm install -n voltha cord/voltha
Allow enough time for the 3 etcd-cluster pods to start before using the VOLTHA pods.
Standard Uninstall
helm delete --purge voltha
Standard Install
helm install -n voltha cord/voltha
Nodeports Exposed
- Voltha CLI
- Inner port: 5022
- Nodeport: 30110
- Voltha REST APIs
- Inner port: 8882
- Nodeport: 30125
Accessing the VOLTHA CLI
Assuming you have not changed the default ports in the chart, you can use this command to access the VOLTHA CLI:
ssh voltha@<node-ip> -p 30110
The default VOLTHA password is admin.
Building and using development images
In some cases you may want to build custom images to try out development code. In order to do that, from the CORD repository, do:
cd incubator/voltha
REPOSITORY=voltha/ TAG=dev VOLTHA_BUILD=docker make build
cd ~/cord/automation-tools/developer
bash tag_and_push.sh -t dev -r 192.168.99.100:30500
This set of commands builds the VOLTHA containers and pushes them to a local docker registry using a tag called dev.
Once the images are pushed to a docker registry on the POD, you can create a values file like the following one, to override the default chart values, so use your images:
# voltha-values.yaml
images:
vcore:
repository: '192.168.99.100:30500/voltha-voltha'
tag: 'dev'
pullPolicy: 'Always'
vcli:
repository: '192.168.99.100:30500/voltha-cli'
tag: 'dev'
pullPolicy: 'Always'
ofagent:
repository: '192.168.99.100:30500/voltha-ofagent'
tag: 'dev'
pullPolicy: 'Always'
netconf:
repository: '192.168.99.100:30500/voltha-netconf'
tag: 'dev'
pullPolicy: 'Always'
envoy_for_etcd:
repository: '192.168.99.100:30500/voltha-envoy'
tag: 'dev'
pullPolicy: 'Always'
Then, install VOLTHA using:
helm install -n voltha -f voltha-values.yaml cord/voltha