Merge pull request #6 from ciena/voltha-onos
Utilize pre-built voltha-onos image
diff --git a/README.md b/README.md
index 28feeee..2784249 100644
--- a/README.md
+++ b/README.md
@@ -62,16 +62,20 @@
| OPTION | DEFAULT | DESCRIPTION |
| ------------------------------- | ---------------------------- | ----------------------------------------------------------------------------------- |
| `TYPE` | minimal | `minimal` or `full` and determines number of cluster nodes and etcd cluster members |
-| `WITH_TIMINGS` | no | Outputs duration of various steps of the install |
-| `WITH_BBSIM` | no | Should the BBSIM POD be deployed? |
-| `WITH_RADIUS` | no | Should `freeradius` service be deployed? |
-| `WITH_ONOS` | yes | Should `ONOS` service be deployed? |
-| `JUST_K8S` | no | Should just the KinD Kubernetes cluster be depoyed? (i.e. no VOLTHA) |
+| `NAME` | TYPE | Name of the KinD Cluster to be created |
| `DEPLOY_K8S` | yes | Should the KinD Kubernetes cluster be deployed? |
+| `JUST_K8S` | no | Should just the KinD Kubernetes cluster be depoyed? (i.e. no VOLTHA) |
+| `WITH_BBSIM` | no | Should the BBSIM POD be deployed? |
+| `WITH_ONOS` | yes | Should `ONOS` service be deployed? |
+| `WITH_RADIUS` | no | Should `freeradius` service be deployed? |
+| `WITH_TP` | yes | Install the ONOS image that support Tech Profiles |
+| `WITH_TIMINGS` | no | Outputs duration of various steps of the install |
+| `INSTALL_ONOS_APPS` | no | Replaces/installs ONOS OAR files in onos-files/onos-apps |
| `SKIP_RESTART_API` | no | Should the VOLTHA API service be restarted after install to avoid known bug? |
| `INSTALL_KUBECTL` | yes | Should a copy of `kubectl` be installed locally? |
| `INSTALL_HELM` | yes | Should a copy of `helm` be installed locallly? |
| `USE_GO` | yes | Should the Go[lang] version of the OpenOLT adapter be used? |
+| `ONOS_TAG` | | Used to override the default image tag for the ONOS docker image |
| `VOLTHA_LOG_LEVEL` | WARN | Log level to set for VOLTHA core processes |
| `VOLTHA_CHART` | onf/voltha | Helm chart to used to install voltha |
| `VOLTHA_ADAPTER_SIM_CHART` | onf/voltha-adapter-simulated | Helm chart to use to install simulated device adapter |
@@ -160,11 +164,24 @@
screen -dmS onos-ssh kubectl port-forward service/onos-ssh 8101:8101
```
-#### Installing and Configuring ONOS Applications
-A script has been included, `install-onos-applications.sh`, that can be used
-to download and install the required applications into ONOS.
+#### 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.
```bash
-./onos-files/install-onos-applications.sh
+curl --fail -sSL --user karaf:karaf \
+ -X POST -H Content-Type:application/json \
+ http://127.0.0.1:8181/onos/v1/network/configuration \
+ --data @onos-files/olt-onos-netcfg.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
```
## Install VOLTHA Core
@@ -176,7 +193,8 @@
the `Running` state. The following Helm command installs the core components
of VOLTHA based on the desired deployment type.
```bash
-helm install -f $TYPE-values.yaml --namespace voltha --name voltha onf/voltha
+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
@@ -209,9 +227,12 @@
The following commands install both the simulated OLT and ONU adapters as well
as the adapters for an OpenOLT and OpenONU device.
```bash
-helm install -f $TYPE-values.yaml --namespace voltha --name sim onf/voltha-adapter-simulated
-helm install -f $TYPE-values.yaml --namespace voltha --name open-olt onf/voltha-adapter-openolt
-helm install -f $TYPE-values.yaml --namespace voltha --name open-onu onf/voltha-adapter-openonu
+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
@@ -223,6 +244,17 @@
screen -dmS voltha-ssh kubectl port-forward -n voltha service/voltha-cli 5022:5022
```
+## Install BBSIM (Broad Band OLT/ONU Simulator)
+BBSIM provides a simulation of a BB device. It can be useful for testing.
+```bash
+helm install -f minimal-values.yaml --namespace voltha --name bbsim onf/bbsim
+```
+
+## Install FreeRADIUS Service
+```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
@@ -382,14 +414,23 @@
kind delete cluster --name=voltha-$TYPE
```
+## Troubleshooting
+There exists a bug in VOLTHA (as of 8/14/2019) where the API server doesn't always
+correctly connect to the back end services. To work around this bug, the `voltha-api-server`
+and `ofagent` can be restarted as described below.
+```bash
+kubectl scale --replicas=0 deployment -n voltha voltha-api-server ofagent
+```
+
+Wait for the POD to be removed, then scale it back up.
+```bash
+kubectl scale --replicas=1 deployment -n voltha voltha-api-server ofagent
+```
+
## WIP
### Create BBSIM Device
-#### Install BBSIM Helm Chart
-```bash
-helm install -f $TYPE-values.yaml --namespace voltha --name bbsim onf/bbsim
-```
#### Create BBSIM Device
```bash
diff --git a/full-values.yaml b/full-values.yaml
index 00800a6..dbf23d6 100644
--- a/full-values.yaml
+++ b/full-values.yaml
@@ -14,12 +14,19 @@
defaults:
image_tag: master
+ image_pullPolicy: Always
images:
adapter_open_olt:
- tag_go: master-go
+ tag_go: master
+ pullPolicy: Always
+ onos:
+ tag: master
+ repository: voltha/voltha-onos
+ pullPolicy: Always
bbsim:
tag: master
+ pullPolicy: Always
onos_env:
- name: POD_IP
diff --git a/minimal-values.yaml b/minimal-values.yaml
index 0a6a22c..7708ade 100644
--- a/minimal-values.yaml
+++ b/minimal-values.yaml
@@ -14,14 +14,19 @@
defaults:
image_tag: master
+ image_pullPolicy: Always
images:
adapter_open_olt:
tag_go: master
+ pullPolicy: Always
onos:
- tag: 1.13.5
+ tag: master
+ repository: voltha/voltha-onos
+ pullPolicy: Always
bbsim:
tag: master
+ pullPolicy: Always
deployments:
etcdOperator: true
diff --git a/onos-files/install-onos-applications.sh b/onos-files/install-onos-applications.sh
deleted file mode 100755
index 5a3d3b9..0000000
--- a/onos-files/install-onos-applications.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/bash
-
-# Copyright 2019 Ciena Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-ONOS_ADDRESS=${ONOS_ADDRESS:-127.0.0.1}
-
-SADIS_VER=${SADIS_VER:-3.1.0}
-OLT_VER=${OLT_VER:-3.0.1}
-AAA_VER=${AAA_VER:-1.9.0}
-DHCP_VER=${DHCP_VER:-1.6.0}
-
-if [ $(expr $AAA_VER \>= 1.9.0) -eq 1 ]; then
- AAA_NAME=aaa-app
-else
- AAA_NAME=aaa
-fi
-
-if [ $(expr $DHCP_VER \>= 1.6.0) -eq 1 ]; then
- DHCP_NAME=dhcpl2relay-app
-else
- DHCP_NAME=dhcpl2relay
-fi
-
-TYPE=${TYPE:-minimal}
-
-if [ "$TYPE" == "full" ]; then
- ONOS_API_PORT=${ONOS_API_PORT:-8182}
- ONOS_SSH_PORT=${ONOS_SSH_PORT:-8102}
-else
- ONOS_API_PORT=${ONOS_API_PORT:-8181}
- ONOS_SSH_PORT=${ONOS_SSH_PORT:-8101}
-fi
-
-echo "Target ONOS is ${ONOS_ADDRESS}:${ONOS_API_PORT}"
-
-mkdir -p onos-files/onos-apps
-echo "Downloading ONOS applications"
-curl --fail -sSL https://repo.maven.apache.org/maven2/org/opencord/sadis-app/$SADIS_VER/sadis-app-$SADIS_VER.oar -o ./onos-files/onos-apps/sadis-app-$SADIS_VER.oar
-curl --fail -sSL https://repo.maven.apache.org/maven2/org/opencord/$AAA_NAME/$AAA_VER/$AAA_NAME-$AAA_VER.oar -o ./onos-files/onos-apps/aaa-app-$AAA_VER.oar
-curl --fail -sSL https://repo.maven.apache.org/maven2/org/opencord/olt-app/$OLT_VER/olt-app-$OLT_VER.oar -o ./onos-files/onos-apps/olt-app-$OLT_VER.oar
-curl --fail -sSL https://repo.maven.apache.org/maven2/org/opencord/$DHCP_NAME/$DHCP_VER/$DHCP_NAME-$DHCP_VER.oar -o ./onos-files/onos-apps/dhcpl2relay-app-$DHCP_VER.oar
-
-until test $(curl -w '\n%{http_code}' --fail -sSL --user karaf:karaf -X POST -H Content-Type:application/octet-stream http://$ONOS_ADDRESS:$ONOS_API_PORT/onos/v1/applications?activate=true --data-binary @./onos-files/onos-apps/sadis-app-$SADIS_VER.oar 2>/dev/null | tail -1) -eq 409; do echo "Installing 'SADIS' ONOS application (v${SADIS_VER})..."; sleep 1; done
-until test $(curl -w '\n%{http_code}' --fail -sSL --user karaf:karaf -X POST -H Content-Type:application/octet-stream http://$ONOS_ADDRESS:$ONOS_API_PORT/onos/v1/applications?activate=true --data-binary @./onos-files/onos-apps/olt-app-$OLT_VER.oar 2>/dev/null | tail -1) -eq 409; do echo "Installing 'OLT' ONOS application (v${OLT_VER})..."; sleep 1; done
-until test $(curl -w '\n%{http_code}' --fail -sSL --user karaf:karaf -X POST -H Content-Type:application/octet-stream http://$ONOS_ADDRESS:$ONOS_API_PORT/onos/v1/applications?activate=true --data-binary @./onos-files/onos-apps/aaa-app-$AAA_VER.oar 2>/dev/null | tail -1) -eq 409; do echo "Installing 'AAA' ONOS application (v${AAA_VER})..."; sleep 1; done
-until test $(curl -w '\n%{http_code}' --fail -sSL --user karaf:karaf -X POST -H Content-Type:application/octet-stream http://$ONOS_ADDRESS:$ONOS_API_PORT/onos/v1/applications?activate=true --data-binary @./onos-files/onos-apps/dhcpl2relay-app-$DHCP_VER.oar 2>/dev/null | tail -1) -eq 409; do echo "Installing 'DHCP L2 Relay' ONOS application (v${DHCP_VER})..."; sleep 1; done
-until test $(curl -w '\n%{http_code}' --fail -sSL --user karaf:karaf -X POST -H Content-Type:application/json http://$ONOS_ADDRESS:$ONOS_API_PORT/onos/v1/network/configuration --data @onos-files/olt-onos-netcfg.json 2>/dev/null | tail -1) -eq 200; do echo "Configuring VOLTHA ONOS ..."; sleep 1; done
-until test $(curl -w '\n%{http_code}' --fail -sSL --user karaf:karaf -X POST -H Content-Type:application/json http://$ONOS_ADDRESS:$ONOS_API_PORT/onos/v1/configuration/org.opencord.olt.impl.Olt --data @onos-files/olt-onos-olt-settings.json 2>/dev/null | tail -1) -eq 200; do echo "Enabling VOLTHA ONOS DHCP provisioning..."; sleep 1; done
-until test $(curl -w '\n%{http_code}' --fail -sSL --user karaf:karaf -X POST -H Content-Type:application/json http://$ONOS_ADDRESS:$ONOS_API_PORT/onos/v1/configuration/org.onosproject.net.flow.impl.FlowRuleManager --data @onos-files/olt-onos-enableExtraneousRules.json 2>/dev/null | tail -1) -eq 200; do echo "Enabling extraneous rules for ONOS..."; sleep 1; done
-until test $(curl -w '\n%{http_code}' --fail -sSL --user karaf:karaf -X POST -H Content-Type:application/json "http://$ONOS_ADDRESS:$ONOS_API_PORT/onos/v1/flows/of:0000000000000001?appId=env.voltha" --data @onos-files/dhcp-to-controller-flow.json 2>/dev/null | tail -1) -eq 201; do echo "Establishing DHCP packet-in flow ..."; sleep 1; done
diff --git a/voltha b/voltha
index f5adc4d..0ce23ac 100755
--- a/voltha
+++ b/voltha
@@ -12,6 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+TOTAL_START_TIME=$(date +%s)
FANCY=${FANCY:-1}
if [ "$TERM X" == " X" ]; then
@@ -70,6 +71,7 @@
WITH_BBSIM=${WITH_BBSIM:-no}
WITH_RADIUS=${WITH_RADIUS:-no}
WITH_ONOS=${WITH_ONOS:-yes}
+INSTALL_ONOS_APPS=${INSTALL_ONOS_APPS:-no}
WITH_TP=${WITH_TP:-yes}
JUST_K8S=${JUST_K8S:-no}
DEPLOY_K8S=${DEPLOY_K8S:-yes}
@@ -220,6 +222,18 @@
WITH_TIMINGS=no
fi
+# Verify INSTALL_ONOS_APPS settting and convert uniform value of yes or no
+if [ $(echo ":y:yes:true:n:no:false:1:0:" | grep -ic ":$INSTALL_ONOS_APPS:") -eq 0 ]; then
+ >&2 echo -e "${RED}${BOLD}${ERROR}ERROR:${NORMAL}${RED} Invalid \$INSTALL_ONOS_APPS value of '$INSTALL_ONOS_APPS'. Should be 'yes' or 'no'${NORMAL}"
+ exit 1
+fi
+
+if [ $(echo ":y:yes:true:1:" | grep -ic ":$INSTALL_ONOS_APPS:") -eq 1 ]; then
+ INSTALL_ONOS_APPS=yes
+else
+ INSTALL_ONOS_APPS=no
+fi
+
mkdir -p .voltha
touch .voltha/ports
HAVE=$(grep $NAME .voltha/ports)
@@ -253,18 +267,11 @@
cp $PORTTMP .voltha/ports
rm -f $PORTTMP
-if [ "$WITH_TP" == "yes" ]; then
- SADIS_VER=3.1.0
- OLT_VER=3.0.1
- AAA_VER=1.9.0
- DHCP_VER=1.6.0
-else
- SADIS_VER=2.2.0
- OLT_VER=2.1.0
- AAA_VER=1.8.0
- DHCP_VER=1.5.0
+ONOS_TAG=${ONOS_TAG:-}
+if [ "$WITH_TP" == "yes" -a "$ONOS_TAG X" == " X" ]; then
+ ONOS_TAG="voltha-1.7"
fi
-export ONOS_API_PORT ONOS_SSH_PORT SADIS_VER OLT_VER AAA_VER DHCP_VER
+export ONOS_API_PORT ONOS_SSH_PORT
spin() {
PARTS="\
@@ -295,6 +302,10 @@
CLOCK="TIME:"
SPIN_PARTS=
NOT_VERIFIED=
+THEX=
+BUILD=
+CROSS=
+ENTER=
VERIFIED=
HELM=
OLD_KEY=
@@ -323,9 +334,13 @@
\xe2\xa2\x86\xe2\xa1\xb1 \
"
CLOCK="\xe2\x8f\xb1"
- NOT_VERIFIED="\xe2\x9c\x97\x20"
- VERIFIED="\xe2\x9c\x93\x20"
- HELM="\xE2\x8E\x88"
+ THEX="${RED}${BOLD}\xe2\x9c\x97\x20${NORMAL}"
+ ENTER="${YELLOW}${BOLD}\xe2\x8e\x86${NORMAL}"
+ CROSS="${YELLOW}${BOLD}\xe2\x9c\x9a${NORMAL}"
+ BUILD="${YELLOW}${BOLD}\xf0\x9f\x8f\x97${NORMAL}"
+ NOT_VERIFIED="$BUILD"
+ VERIFIED="${GREEN}${BOLD}\xe2\x9c\x93\x20${NORMAL}"
+ HELM="${BLUE}${BOLD}\xE2\x8E\x88${NORMAL}"
OLD_KEY="\xF0\x9F\x97\x9D"
BIRD="\xF0\x9F\x90\xA6"
HIGH_VOLTAGE="\xE2\x9A\xA1"
@@ -341,12 +356,7 @@
LOCK="\xf0\x9f\x94\x92"
fi
-timeout() {
- local INDENT=
- if [ "$1" == "-" ]; then
- INDENT=" "
- shift
- fi
+duration() {
local h=$(expr $1 / 3600)
local m=$(expr $1 % 3600 / 60)
local s=$(expr $1 % 60)
@@ -358,8 +368,16 @@
if [ $m -gt 0 ]; then
t="$t${m}m"
fi
- t="$t${s}s"
- echo -e "$INDENT $CLOCK $t"
+ echo "$t${s}s"
+}
+
+printtime() {
+ local INDENT=
+ if [ "$1" == "-" ]; then
+ INDENT=" "
+ shift
+ fi
+ echo -e "$INDENT $CLOCK $(duration $1)"
}
bspin() {
@@ -548,9 +566,9 @@
# Output install options to log
echo "OPTIONS" >> $LOG
ALL_OPTIONS="NAME TYPE WITH_TIMINGS WITH_BBSIM WITH_RADIUS WITH_ONOS WITH_TP JUST_K8S DEPLOY_K8S \
- SKIP_RESTART_API INSTALL_KUBECTL INSTALL_HELM USE_GO VOLTHA_LOG_LEVEL \
+ INSTALL_ONOS_APPS SKIP_RESTART_API INSTALL_KUBECTL INSTALL_HELM USE_GO VOLTHA_LOG_LEVEL \
VOLTHA_CHART VOLTHA_ADAPTER_SIM_CHART VOLTHA_ADAPTER_OPEN_OLT_CHART \
- VOLTHA_ADAPTER_OPEN_ONU_CHART SADIS_VER OLT_VER AAA_VER DHCP_VER \
+ VOLTHA_ADAPTER_OPEN_ONU_CHART ONOS_TAG \
ONOS_API_PORT ONOS_SSH_PORT VOLTHA_API_PORT VOLTHA_SSH_PORT VOLTHA_ETCD_PORT"
for O in $ALL_OPTIONS; do
VAL=$(eval echo \$$O)
@@ -562,6 +580,38 @@
fi
done
+push_onos_config() {
+ local MSG=$1
+ local RESOURCE=$2
+ local DATA=$3
+
+ bspin - "$MSG $GEAR"
+ until test; do
+ (set -x; curl --fail -sSL --user karaf:karaf -X POST -H Content-Type:application/json http://127.0.0.1:$ONOS_API_PORT/onos/v1/$RESOURCE --data @$DATA >>$LOG 2>&1) >>$LOG 2>&1
+ if [ $? -eq 0 ]; then
+ break
+ fi
+ sleep .2
+ sspin -
+ done
+ espin - $VERIFIED
+}
+
+override_onos_app() {
+ local APP=$1
+ local NAME=$(basename $APP | sed -e 's/-.*$//g')
+ until test; do
+ sspin -
+ # Attempt to delete old version (if it exists)
+ (set -x; curl --fail -sSL --user karaf:karaf -X DELETE http://127.0.0.1:$ONOS_API_PORT/onos/v1/applications/$NAME >>$LOG 2>&1) >>$LOG 2>&1
+ sspin -
+ (set -x; curl --fail -sSL --user karaf:karaf -X POST -H Content-Type:application/octet-stream http://127.0.0.1:$ONOS_API_PORT/onos/v1/applications?activate=true --data-binary @$APP >>$LOG 2>&1) >>$LOG 2>&1
+ if [ $? -eq 0 ]; then
+ break
+ fi
+ sleep .2
+ done
+}
count_pods() {
local NAMESPACE=$1; shift
@@ -669,7 +719,7 @@
fi
fi
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
STIME=$(date +%s)
@@ -690,7 +740,7 @@
fi
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
STIME=$(date +%s)
@@ -709,7 +759,7 @@
fi
fi
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
STIME=$(date +%s)
@@ -724,7 +774,7 @@
espin - $VERIFIED
fi
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
bspin "Verify command PATH"
@@ -765,7 +815,7 @@
wait_for_pods - "kube-system" $EXPECT -1 "Waiting for system PODs to start" $P
fi
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
STIME=$(date +%s)
@@ -824,7 +874,7 @@
fi
wait_for_pods - "kube-system" 1 -1 "Waiting for Tiller POD to start" "tiller-deploy-.*"
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
STIME=$(date +%s)
@@ -838,7 +888,7 @@
espin $VERIFIED
fi
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
if [ "$JUST_K8S" == "yes" ]; then
@@ -870,7 +920,7 @@
EXPECT=$(test "$TYPE" == "minimal" && echo "1" || echo "3")
wait_for_pods - "voltha" $EXPECT -1 "Waiting for ETCD Operator to start" "etcd-operator-.*"
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
STIME=$(date +%s)
@@ -878,7 +928,11 @@
bspin "Verify ONOS installed $BIRD"
if [ $(helm list --deployed --short --namespace default "^onos\$" | wc -l) -ne 1 ]; then
espin $NOT_VERIFIED
- helm_install - default onos onf/onos "Install ONOS"
+ SET_TAG=
+ if [ "$ONOS_TAG X" != " X" ]; then
+ SET_TAG="--set images.onos.tag=$ONOS_TAG"
+ fi
+ EXTRA_HELM_FLAGS="$SET_TAG $EXTRA_HELM_FLAGS" helm_install - default onos onf/onos "Install ONOS"
else
espin $VERIFIED
fi
@@ -896,24 +950,34 @@
done
(set -x; screen -dmS onos-ssh-$NAME bash -c "while true; do kubectl port-forward service/onos-ssh $ONOS_SSH_PORT:8101; done" >>$LOG 2>&1) >>$LOG 2>&1
espin - $VERIFIED
- if [ ! -x ./onos-files/install-onos-applications.sh ]; then
- bspin - "Verify or download ONOS configuration support files $DOWNLOAD"
- (set -x; mkdir -p ./onos-files >>$LOG 2>&1) >>$LOG 2>&1
- for i in dhcp-to-controller-flow.json install-onos-applications.sh olt-onos-enableExtraneousRules.json olt-onos-netcfg.json olt-onos-olt-settings.json radius-config.json; do
- if [ ! -r ./onos-files/$i ]; then
- (set -x; curl -o ./onos-files/$i -sSL https://raw.githubusercontent.com/ciena/kind-voltha/master/onos-files/$i >>$LOG 2>&1) >>$LOG 2>&1
- fi
- done
- (set -x; chmod 755 ./onos-files/install-onos-applications.sh >>$LOG 2>&1) >>$LOG 2>&1
- espin - $VERIFIED
- fi
-
- bspin - "Install required ONOS applications $INSTALL"
- (set -x; ./onos-files/install-onos-applications.sh >>$LOG 2>&1) >>$LOG 2>&1
+ bspin - "Verify or download ONOS configuration support files $DOWNLOAD"
+ (set -x; mkdir -p ./onos-files >>$LOG 2>&1) >>$LOG 2>&1
+ for i in dhcp-to-controller-flow.json olt-onos-enableExtraneousRules.json olt-onos-netcfg.json olt-onos-olt-settings.json radius-config.json; do
+ if [ ! -r ./onos-files/$i ]; then
+ (set -x; curl -o ./onos-files/$i -sSL https://raw.githubusercontent.com/ciena/kind-voltha/master/onos-files/$i >>$LOG 2>&1) >>$LOG 2>&1
+ fi
+ done
espin - $VERIFIED
+
+ if [ $INSTALL_ONOS_APPS == "yes" ]; then
+ bspin - "Installing custom ONOS applications"
+ if [ -x onos-files/onos-apps -a $(ls -1 onos-files/onos-apps/*.oar 2>/dev/null | wc -l) -gt 0 ]; then
+ for OAR in $(ls -1 onos-files/onos-apps/*.oar); do
+ sspin - "Installing custom ONOS applications - $OAR$CEOL"
+ override_onos_app $OAR
+ done
+ espin - "$VERIFIED Installing custom ONOS applications$CEOL"
+ else
+ espin - "$NOT_VERIFIED Installing custom ONOS applications - None Found"
+ fi
+ fi
+
+ push_onos_config "Push ONOS Network Configuration" "network/configuration" "onos-files/olt-onos-netcfg.json"
+ push_onos_config "Enable VOLTHA ONOS DHCP provisioning" "configuration/org.opencord.olt.impl.Olt" "onos-files/olt-onos-olt-settings.json"
+ push_onos_config "Enabling extraneous rules for ONOS" "configuration/org.onosproject.net.flow.impl.FlowRuleManager" "onos-files/olt-onos-enableExtraneousRules.json"
fi
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
STIME=$(date +%s)
@@ -936,7 +1000,7 @@
EXPECT=$(test "$TYPE" == "minimal" && echo "9" || echo "11")
wait_for_pods - "voltha" $EXPECT -1 "Waiting for VOLTHA Core to start" $VOLTHA
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
STIME=$(date +%s)
@@ -967,7 +1031,7 @@
ADAPTERS="adapter-.*"
wait_for_pods - "voltha" 4 -1 "Waiting for adapters to start" $ADAPTERS
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
if [ $WITH_BBSIM == "yes" ]; then
@@ -982,7 +1046,7 @@
fi
wait_for_pods - "voltha" 1 -1 "Waiting for BBSIM to start" "bbsim-.*"
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
fi
@@ -998,7 +1062,7 @@
fi
wait_for_pods - "voltha" 1 -1 "Waiting for RADIUS to start" "radius-.*"
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
fi
@@ -1034,7 +1098,7 @@
(set -x; screen -dmS voltha-etcd-$NAME bash -c "while true; do kubectl port-forward -n voltha service/voltha-etcd-cluster-client $VOLTHA_ETCD_PORT:2379; done" >>$LOG 2>&1) >>$LOG 2>&1
espin - $VERIFIED
if [ "$WITH_TIMINGS" == "yes" ]; then
- timeout $(expr $(date +%s) - $STIME)
+ printtime $(expr $(date +%s) - $STIME)
fi
if [ $WITH_ONOS == "yes" -a $WITH_RADIUS == "yes" ]; then
@@ -1089,3 +1153,7 @@
echo "" | tee -a $LOG
echo "Thank you for choosing kind-voltha for you quick cluster needs." | tee -a $LOG
+if [ "$WITH_TIMINGS" == "yes" ]; then
+ echo -e "$CLOCK ${BOLD}TOTAL: $(duration $(expr $(date +%s) - $TOTAL_START_TIME))${NORMAL}"
+fi
+