Merge pull request #44 from ciena/experimental
Experimental
diff --git a/README.md b/README.md
index 1911651..ec737d7 100644
--- a/README.md
+++ b/README.md
@@ -70,11 +70,12 @@
WITH_BBSIM=yes WITH_RADIUS=y CONFIG_SADIS=y voltha up
```
-To start a specific version of VOLTHA, e.g. 2.2, you could use the following command:
+To start a specific version of VOLTHA, e.g. 2.3, you could use the following commands:
```bash
-source releases/voltha-2.2 && voltha up
+git checkout tags/3.0.3 -b 3.0.3
+source releases/voltha-2.3 && voltha up
```
-Please check the `releases` folder to see the available ones.
+Please check the `releases` folder to see the available ones and pick the correct tag associatet do that release.
| OPTION | DEFAULT | DESCRIPTION |
| ------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------ |
@@ -82,9 +83,13 @@
| `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) |
+| `VOLTHA_NS` | `voltha` | K8s namespace into which to deploy voltha PODs |
+| `INFRA_NS` | `default` | K8s namespace into which to deploy infrastructure PODs |
+| `BBSIM_NS` | `voltha` | K8s namespace into which to deploy BBSIM PODs |
+| `ADAPTER_NS` | `voltha` | K8s namespace into which to deploy VOLTHA adapters |
| `WITH_BBSIM` | no | Should the BBSIM POD be deployed? |
| `NUM_OF_BBSIM` | 1 | number of BBSIM POD to start (minimum = 1, maximum = 10) |
-| `WITH_ONOS` | yes | Should `ONOS` service be deployed? |
+| `WITH_ONOS` | yes | Deploy ONOS (yes/no) or service:port of external ONOS |
| `WITH_KAFKA` | yes | Deploy private Kafka (yes/no) or k8s servce:port of external Kafka |
| `WITH_ETCD` | yes | Deploy private etcd (yes/no) or k8s service:port of external etcd |
| `WITH_RADIUS` | no | Deploy sample RADIUS server (yes/no) or a k8s service:port of external RADIUS |
@@ -131,6 +136,33 @@
| `VOLTHA_ETCD_PORT` | dynamic | (advanced) Override dynamic port selection for port forward for VOLTHA etcd |
| `VOLTHA_KAFKA_PORT` | dynamic | (advanced) Override dynamic port selection for port forward for VOLTHA Kafka API |
+### Custom Namespaces
+
+Separate namespaces can be specified for various components
+ - `VOLTHA_NS` (default: `voltha`) for cores, ofagent, Etcd (yes), Kafka (yes)
+ - `ADAPTER_NS` (default: `voltha`) for device adapters
+ - `INFRA_NS` (default: `default`) for RADIUS, ONOS, Etcd (external), Kafka (external)
+ - `BBSIM_NS` (default: `voltha`) for BBSIM instances
+
+As an example `BBSIM_NS=devices` deployes BBSim in the `devices` namespace.
+
+### External Kafka, Etcd and ONOS
+`WITH_ETCD`, `WITH_KAFKA` and `WITH_ONOS` can have different values depending on the deployment needs:
+
+| VALUE | DESCRIPTION |
+| ---------------- | --------------- |
+| `yes` or `y` | installs Etcd and Kafka in the `voltha` namespace |
+| `external` | installs Etcd and Kafka in the `default` namespace |
+| `<endpoint>` | connects the deployment to pre-deployed instance of the service |
+
+When specifying the `<endpoint>` of the service the format for each of these is `service-name`[`:port`]. Port is optional and will default to the standard port for the given service. For example, `WITH_KAFA=kafka.infra.svc.cluster.local`
+
+Specifying the endpoint enable to use `./voltha up` incrementally, for example:
+```
+DEPLOY_K8S=n WITH_BBSIM=y WITH_RADIUS=no CONFIG_SADIS=no WITH_ONOS=onos-openflow.infra.svc.cluster.local WITH_ETCD=etcd-cluster-client.infra.svc.cluster.local WITH_KAFKA=kafka.infra.svc.cluster.local INFRA_NS=infra BBSIM_NS=devices ADAPTER_NS=adapters ./voltha up
+```
+starts VOLTHA with external ONOS,KAFKA,ETCD in the `infra` namespace.
+
### `CONFIG_SADIS` Values
| VALUE | DESCRIPTION |
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
new file mode 100644
index 0000000..a4f37dc
--- /dev/null
+++ b/RELEASE_NOTES.md
@@ -0,0 +1,29 @@
+# April 7, 2020
+- Etcd and Kafka can be installed independently of VOLTHA, with `WITH_ETCD` and/or `WITH_KAFKA` set to their endpoints:
+ - `WITH_ETCD=y WITH_KAFKA=y` installs Etcd and Kafka in the `voltha` namespace
+ - `WITH_ETCD=external WITH_KAFKA=external` installs Etcd and Kafka in the `default` namespace
+ - `WITH_ETCD=<etcd-endpoint> WITH_KAFKA=<kafka-endpoint>` connects the deployment to pre-deployed instance of Etcd and Kafka
+- `WITH_ETCD`, `WITH_KAFKA`, and `WITH_ONOS` when used to specify external services (i.e. services that are not nessisarily deployed as part of `kind-voltha`) require the format for each of these is `service-name`[`:port`]. Port is optional and will default to the standard port for the given service.
+- Separate namespaces can be specified for various components
+ - `VOLTHA_NS` (default: `voltha`) for cores, ofagent, Etcd (yes), Kafka (yes)
+ - `ADAPTER_NS` (default: `voltha`) for device adapters
+ - `INFRA_NS` (default: `default`) for RADIUS, ONOS, Etcd (external), Kafka (external)
+ - `BBSIM_NS` (default: `voltha`) for BBSIM instances
+
+
+The changes in this release enable the ability to shorten the development cycle by allowing developers only to cycle (restart) the components required.
+
+For example, if VOLTHA is started with the following command:
+```
+WITH_BBSIM=y WITH_RADIUS=y CONFIG_SADIS=y WITH_ONOS=y WITH_ETCD=external WITH_KAFKA=external INFRA_NS=infra BBSIM_NS=devices ADAPTER_NS=adapters ./voltha up
+```
+And then brought down with the following command:
+```
+DEPLOY_K8S=n WITH_BBSIM=y WITH_RADIUS=no CONFIG_SADIS=no WITH_ONOS=no WITH_ETCD=no WITH_KAFKA=no INFRA_NS=infra BBSIM_NS=devices ADAPTER_NS=adapters ./voltha down
+```
+Then it can be restarted with the following command and only the VOLTHA core components, adapters, and BBSIM are required to be restarted:
+```
+DEPLOY_K8S=n WITH_BBSIM=y WITH_RADIUS=no CONFIG_SADIS=no WITH_ONOS=onos-openflow.infra.svc.cluster.local WITH_ETCD=etcd-cluster-client.infra.svc.cluster.local WITH_KAFKA=kafka.infra.svc.cluster.local INFRA_NS=infra BBSIM_NS=devices ADAPTER_NS=adapters ./voltha up
+```
+In the above examples namespaces are specified, but this is not required.
+
diff --git a/minimal-values.yaml b/minimal-values.yaml
index fdf4614..226ed8f 100644
--- a/minimal-values.yaml
+++ b/minimal-values.yaml
@@ -70,11 +70,11 @@
# tag: master
# START_OFAGENT_GO - Comment the following block to use the Python implementation
# of the ofagent
-# ofagent:
+# ofagent_go:
# repository: voltha/voltha-ofagent-go
# tag: master
# END_OFAGENT_GO
-# ofagent:
+# ofagent_py:
# repository: voltha/voltha-ofagent-py
# tag: 2.1.1
# rw_core:
diff --git a/voltha b/voltha
index 2233f89..f4e87d0 100755
--- a/voltha
+++ b/voltha
@@ -71,6 +71,10 @@
NAME=${NAME:-$TYPE}
ENABLE_ONOS_EXTRANEOUS_RULES=${ENABLE_ONOS_EXTRANEOUS_RULES:-no}
+INFRA_NS=${INFRA_NS:-default}
+VOLTHA_NS=${VOLTHA_NS:-voltha}
+BBSIM_NS=${BBSIM_NS:-voltha}
+ADAPTER_NS=${ADAPTER_NS:-voltha}
WITH_TIMINGS=${WITH_TIMINGS:-no}
WITH_BBSIM=${WITH_BBSIM:-no}
WITH_RADIUS=${WITH_RADIUS:-no}
@@ -87,14 +91,15 @@
WITH_ETCD=${WITH_ETCD:-yes}
ONLY_ONE=${ONLY_ONE:-yes}
CONFIG_SADIS=${CONFIG_SADIS:-no} # yes | no | file | bbsim | URL
-SADIS_SUBSCRIBERS=${SADIS_SUBSCRIBERS:-http://bbsim.voltha.svc:50074/v2/subscribers/%s}
-SADIS_BANDWIDTH_PROFILES=${SADIS_BANDWIDTH_PROFILES:-http://bbsim.voltha.svc:50074/v2/bandwidthprofiles/%s}
+SADIS_SUBSCRIBERS=${SADIS_SUBSCRIBERS:-http://bbsim.$VOLTHA_NS.svc:50074/v2/subscribers/%s}
+SADIS_BANDWIDTH_PROFILES=${SADIS_BANDWIDTH_PROFILES:-http://bbsim.$VOLTHA_NS.svc:50074/v2/bandwidthprofiles/%s}
SADIS_CFG=${SADIS_CFG:-onos-files/onos-sadis-sample.json}
INSTALL_ONOS_APPS=${INSTALL_ONOS_APPS:-no}
JUST_K8S=${JUST_K8S:-no}
DEPLOY_K8S=${DEPLOY_K8S:-yes}
INSTALL_KUBECTL=${INSTALL_KUBECTL:-yes}
INSTALL_HELM=${INSTALL_HELM:-yes}
+HELM_USE_UPGRADE=${HELM_USE_UPGRADE:-no}
UPDATE_HELM_REPOS=${UPDATE_HELM_REPOS:-yes}
WAIT_ON_DOWN=${WAIT_ON_DOWN:-yes}
WAIT_TIMEOUT=${WAIT_TIMEOUT:-30m}
@@ -201,7 +206,6 @@
WITH_EAPOL \
WITH_DHCP \
WITH_IGMP \
- WITH_ONOS \
WITH_CHAOS \
WITH_ADAPTERS \
WITH_SIM_ADAPTERS \
@@ -212,6 +216,7 @@
INSTALL_ONOS_APPS \
INSTALL_KUBECTL \
INSTALL_HELM \
+ HELM_USE_UPGRADE \
UPDATE_HELM_REPOS \
WAIT_ON_DOWN \
ONLY_ONE \
@@ -252,6 +257,11 @@
WITH_RADIUS \
WITH_KAFKA \
WITH_ETCD \
+ WITH_ONOS \
+ VOLTHA_NS \
+ ADAPTER_NS \
+ INFRA_NS \
+ BBSIM_NS \
"
# Iterate over yes/no configuration options and validate
@@ -270,25 +280,43 @@
CONFIG_SADIS="no"
fi
-# Special case for WITH_KAFKA and WITH_ETCD
+# Special case for WITH_ONOS, WITH_RADIUS, WITH_KAFKA, and WITH_ETCD
if [ $(echo ":y:yes:true:1:" | grep -ic ":$WITH_KAFKA:") -eq 1 ]; then
WITH_KAFKA="yes"
fi
if [ $(echo ":n:no:false:0:" | grep -ic ":$WITH_KAFKA:") -eq 1 ]; then
WITH_KAFKA="no"
fi
+if [ $(echo ":external:" | grep -ic ":$WITH_KAFKA:") -eq 1 ]; then
+ WITH_KAFKA="external"
+fi
if [ $(echo ":y:yes:true:1:" | grep -ic ":$WITH_ETCD:") -eq 1 ]; then
WITH_ETCD="yes"
fi
if [ $(echo ":n:no:false:0:" | grep -ic ":$WITH_ETCD:") -eq 1 ]; then
WITH_ETCD="no"
fi
+if [ $(echo ":external:" | grep -ic ":$WITH_ETCD:") -eq 1 ]; then
+ WITH_ETCD="external"
+fi
if [ $(echo ":y:yes:true:1:" | grep -ic ":$WITH_RADIUS:") -eq 1 ]; then
WITH_RADIUS="yes"
fi
if [ $(echo ":n:no:false:0:" | grep -ic ":$WITH_RADIUS:") -eq 1 ]; then
WITH_RADIUS="no"
fi
+if [ $(echo ":y:yes:true:1:" | grep -ic ":$WITH_ONOS:") -eq 1 ]; then
+ WITH_ONOS="yes"
+fi
+if [ $(echo ":n:no:false:0:" | grep -ic ":$WITH_ONOS:") -eq 1 ]; then
+ WITH_ONOS="no"
+fi
+
+if [ $HELM_USE_UPGRADE == "yes" ]; then
+ _HELM_DESC="Upgrade/Install"
+else
+ _HELM_DESC="Install"
+fi
# Check for prerequiste tools
TOOLS="curl sed jq"
@@ -749,7 +777,7 @@
fi
sspin "Remove port-forwards: voltha-api-$NAME$CEOL"
kill_port_forward voltha-api
- if [ $WITH_ETCD == "yes" ]; then
+ if [ $WITH_ETCD == "yes" -o $WITH_ETCD == "external" ]; then
sspin "Remove port-forwards: voltha-etcd-$NAME$CEOL"
kill_port_forward voltha-etcd-cluster-client
fi
@@ -769,7 +797,7 @@
fi
else
EXISTS=$(helm list -q)
- EXPECT="voltha etcd-operator"
+ EXPECT="voltha"
if [ $WITH_ONOS == yes ]; then
EXPECT+=" onos"
fi
@@ -785,6 +813,14 @@
if [ $WITH_SIM_ADAPTERS == "yes" ]; then
EXPECT+=" sim"
fi
+ if [ $WITH_ETCD == "external" ]; then
+ EXPECT+=" etcd-operator etcd-cluster"
+ elif [ $WITH_ETCD == "yes" ]; then
+ EXPECT+=" etcd-operator"
+ fi
+ if [ $WITH_KAFKA == "external" ]; then
+ EXPECT+=" kafka"
+ fi
bspin "Remove Helm Deployments"
for i in $EXISTS; do
for j in $EXPECT; do
@@ -796,21 +832,40 @@
done
espin "$VERIFIED Remove Helm Deployments$CEOL"
if [ "$WAIT_ON_DOWN" == "yes" ]; then
- PODS="voltha-kafka.* voltha-ofagent.* voltha-rw-core.* voltha-etcd.* etcd-operator.*"
+ PODS="voltha-kafka.* voltha-ofagent.* voltha-rw-core.* voltha-etcd.*"
+ INFRA_PODS=
+ ADAPT_PODS=
+ SIM_PODS=
if [ $WITH_RADIUS == "yes" ]; then
PODS+=" radius.*"
fi
if [ $WITH_BBSIM == "yes" ]; then
- PODS+=" bbsim.*"
+ SIM_PODS+=" bbsim.*"
fi
if [ $WITH_OPEN_ADAPTERS -o $WITH_SIM_ADAPTERS ]; then
- PODS+=" adapter-*"
+ ADAPT_PODS+=" adapter-*"
fi
- if [ "$WITH_ONOS" == "yes" ]; then
- ONOS_PODS="onos-.*"
- wait_for_pods "default" 0 "not" -1 "Waiting for ONOS PODs to terminate" $ONOS_PODS
- fi
- wait_for_pods "voltha" 0 "not" -1 "Waiting for VOLTHA PODs to terminate" $PODS
+ if [ $WITH_ONOS == "yes" ]; then
+ INFRA_PODS+=" onos-.*"
+ fi
+ if [ $WITH_ETCD == "external" ]; then
+ INFRA_PODS+=" etcd-operator.* etcd-cluster.*"
+ elif [ $WITH_ETCD == "yes" ]; then
+ PODS+=" etcd-operator.*"
+ fi
+ if [ $WITH_KAFKA == "external" ]; then
+ INFRA_PODS+=" kafka.*"
+ fi
+ if [ ! -z "$SIM_PODS" ]; then
+ wait_for_pods "$BBSIM_NS" 0 "not" -1 "Waiting for BBSIM PODs to terminate" $SIM_PODS
+ fi
+ if [ ! -z "$INFRA_PODS" ]; then
+ wait_for_pods "$INFRA_NS" 0 "not" -1 "Waiting for infrastructure PODs to terminate" $INFRA_PODS
+ fi
+ if [ ! -z "$ADAPT_PODS" ]; then
+ wait_for_pods "$ADAPTER_NS" 0 "not" -1 "Waiting for adapter PODs to terminate" $ADAPT_PODS
+ fi
+ wait_for_pods "$VOLTHA_NS" 0 "not" -1 "Waiting for VOLTHA PODs to terminate" $PODS
fi
fi
exit
@@ -844,7 +899,7 @@
(set -x; kubectl get --all-namespaces events >> $DATA/all-events.txt 2>&1) >>$LOG 2>&1
espin - $VERIFIED
bspin - "Dumping VOLTHA POD details"
- PODS="$(kubectl -n default get pod -o name | grep onos | sed -e 's/^/default:/g') $(kubectl get -n voltha pod -o name | sed -e 's/^/voltha:/g')"
+ PODS="$(kubectl -n $INFRA_NS get pod -o name | grep onos | sed -e 's/^/$INFRA_NS:/g') $(kubectl get -n $VOLTHA_NS pod -o name | sed -e 's/^/$VOLTHA_NS:/g')"
SINCE=
if [ ! -z "$DUMP_FROM" ]; then
SINCE="--since-time=$DUMP_FROM"
@@ -918,7 +973,14 @@
local WAIT_START=$(date +%s)
COUNT=$(expr 300 / 15)
bspin $INDENT $MESSAGE
- (set -x; helm install -f $NAME-values.yaml $CHART_ARGS $INTERNAL_EXTRA_HELM_INSTALL_ARGS $EXTRA_HELM_INSTALL_ARGS --set defaults.log_level=$VOLTHA_LOG_LEVEL --namespace $NAMESPACE --name $INAME $CHART_VERSION $EXTRA_HELM_FLAGS $CHART >>$LOG 2>&1) >>$LOG 2>&1
+ if [ $HELM_USE_UPGRADE == "yes" ]; then
+ _HELM_COMMAND="upgrade --install"
+ _HELM_ARGS="$INAME"
+ else
+ _HELM_COMMAND="install"
+ _HELM_ARGS="--name $INAME"
+ fi
+ (set -x; helm $_HELM_COMMAND -f $NAME-values.yaml $CHART_ARGS $INTERNAL_EXTRA_HELM_INSTALL_ARGS $EXTRA_HELM_INSTALL_ARGS --set defaults.log_level=$VOLTHA_LOG_LEVEL --namespace $NAMESPACE $_HELM_ARGS $CHART_VERSION $EXTRA_HELM_FLAGS $CHART >>$LOG 2>&1) >>$LOG 2>&1
SUCCESS=$?
while [ $SUCCESS -ne 0 ]; do
if [ $(($(date +%s) - $WAIT_START)) -gt $TIMEOUT_SECONDS ]; then
@@ -928,8 +990,10 @@
sspin $INDENT
COUNT=$(expr $COUNT - 1)
if [ $COUNT -eq 0 ]; then
- (set -x; helm delete --purge $INAME >>$LOG 2>&1) >>$LOG 2>&1
- (set -x; helm install -f $NAME-values.yaml $CHART_ARGS $INTERNAL_EXTRA_HELM_INSTALL_ARGS $EXTRA_HELM_INSTALL_ARGS --set defaults.log_level=$VOLTHA_LOG_LEVEL --namespace $NAMESPACE --name $INAME $CHART_VERSION $EXTRA_HELM_FLAGS $CHART >>$LOG 2>&1) >>$LOG 2>&1
+ if [ $HELM_USE_UPGRADE == "no" ]; then
+ (set -x; helm delete --purge $INAME >>$LOG 2>&1) >>$LOG 2>&1
+ fi
+ (set -x; helm $_HELM_COMMAND -f $NAME-values.yaml $CHART_ARGS $INTERNAL_EXTRA_HELM_INSTALL_ARGS $EXTRA_HELM_INSTALL_ARGS --set defaults.log_level=$VOLTHA_LOG_LEVEL --namespace $NAMESPACE $_HELM_ARGS $CHART_VERSION $EXTRA_HELM_FLAGS $CHART >>$LOG 2>&1) >>$LOG 2>&1
SUCCESS=$?
COUNT=$(expr 300 / 15)
fi
@@ -1261,20 +1325,24 @@
exit 0
fi
-if [ $WITH_ETCD != "yes" ]; then
+if [ $WITH_ETCD != "yes" -a $WITH_ETCD != "external" ]; then
bspin "Skip ETCD Operator Deployment"
espin $NO_ENTRY
else
STIME=$(date +%s)
+ NS=$VOLTHA_NS
+ if [ $WITH_ETCD == "external" ]; then
+ NS=$INFRA_NS
+ fi
bspin "Verify ETCD Operator $OLD_KEY"
- if [ $(helm list --deployed --short --namespace voltha "^etcd-operator\$" | wc -l) -ne 1 ]; then
+ if [ $HELM_USE_UPGRADE == "yes" -o $(helm list --deployed --short --namespace $NS "^etcd-operator\$" | wc -l) -ne 1 ]; then
espin $NOT_VERIFIED
- helm_install - voltha etcd-operator stable/etcd-operator latest "Install ETCD Operator"
+ helm_install - $NS etcd-operator stable/etcd-operator latest "$_HELM_DESC ETCD Operator"
else
espin $VERIFIED
fi
EXPECT=$(test "$TYPE" == "minimal" && echo "1" || echo "3")
- wait_for_pods - "voltha" $EXPECT "includes" -1 "Waiting for ETCD Operator to start" "etcd-operator-.*"
+ wait_for_pods - "$NS" $EXPECT "includes" -1 "Waiting for ETCD Operator to start" "etcd-operator-.*"
if [ "$WITH_TIMINGS" == "yes" ]; then
printtime $(expr $(date +%s) - $STIME)
fi
@@ -1283,26 +1351,26 @@
STIME=$(date +%s)
if [ $WITH_ONOS == "yes" ]; then
bspin "Verify ONOS installed $BIRD"
- if [ $(helm list --deployed --short --namespace default "^onos\$" | wc -l) -ne 1 ]; then
+ if [ $HELM_USE_UPGRADE == "yes" -o $(helm list --deployed --short --namespace $INFRA_NS "^onos\$" | wc -l) -ne 1 ]; then
espin $NOT_VERIFIED
- EXTRA_HELM_FLAGS="$SET_TAG $EXTRA_HELM_FLAGS" helm_install - default onos $ONOS_CHART $ONOS_CHART_VERSION "Install ONOS"
+ EXTRA_HELM_FLAGS="$SET_TAG $EXTRA_HELM_FLAGS" helm_install - $INFRA_NS onos $ONOS_CHART $ONOS_CHART_VERSION "$_HELM_DESC ONOS"
else
espin $VERIFIED
fi
- wait_for_pods - "default" 1 "includes" -1 "Waiting for ONOS to start" "onos-.*"
+ wait_for_pods - "$INFRA_NS" 1 "includes" -1 "Waiting for ONOS to start" "onos-.*"
if [ $WITH_PORT_FORWARDS == "yes" ]; then
bspin - "Forward ONOS API port $FORWARD"
kill_port_forward onos-ui
- port_forward default onos-ui $ONOS_API_PORT 8181
+ port_forward $INFRA_NS onos-ui $ONOS_API_PORT 8181
espin - $VERIFIED
bspin - "Forward ONOS SSH port $FORWARD"
kill_port_forward onos-ssh
- port_forward default onos-ssh $ONOS_SSH_PORT 8101
+ port_forward $INFRA_NS onos-ssh $ONOS_SSH_PORT 8101
espin - $VERIFIED
_ONOS_API_EP="127.0.0.1:$ONOS_API_PORT"
else
- _ONOS_API_EP=$(get_service_ep default onos-ui)
+ _ONOS_API_EP=$(get_service_ep $INFRA_NS onos-ui)
fi
bspin - "Verify or download ONOS configuration support files $DOWNLOAD"
ONOS_FILES="olt-onos-enableExtraneousRules.json onos-aaa.json \
@@ -1340,9 +1408,15 @@
if [ $WITH_KAFKA != "no" ]; then
check_onos_app_active org.opencord.kafka
- _HOST=voltha-kafka.voltha.svc.cluster.local
+ _HOST=voltha-kafka.$INFRA_NS.svc.cluster.local
_PORT=9092
- if [ $WITH_KAFKA != "yes" ]; then
+ if [ $WITH_KAFKA == "yes" ]; then
+ _HOST=voltha-kafka.$VOLTHA_NS.svc.cluster.local
+ _PORT=9092
+ elif [ $WITH_KAFKA == "external" ]; then
+ _HOST=kafka.$INFRA_NS.svc.cluster.local
+ _PORT=9092
+ else
_HOST=$(echo $WITH_KAFKA | cut -d: -f1)
_PORT=$(echo $WITH_KAFKA | cut -s -d: -f2)
_PORT=${_PORT:-9092}
@@ -1393,7 +1467,7 @@
{
"sadis": {
"integration": {
- "url": "http://bbsim.voltha.svc.cluster.local:50074/v2/subscribers/%s",
+ "url": "http://bbsim.$BBSIM_NS.svc.cluster.local:50074/v2/subscribers/%s",
"cache": {
"enabled": true,
"maxsize": 50,
@@ -1403,7 +1477,7 @@
},
"bandwidthprofile": {
"integration": {
- "url": "http://bbsim.voltha.svc.cluster.local:50074/v2/bandwidthprofiles/%s",
+ "url": "http://bbsim.$BBSIM_NS.svc.cluster.local:50074/v2/bandwidthprofiles/%s",
"cache": {
"enabled": true,
"maxsize": 50,
@@ -1449,6 +1523,58 @@
printtime $(expr $(date +%s) - $STIME)
fi
+if [ $WITH_ETCD == "external" ]; then
+ STIME=$(date +%s)
+ bspin "Verify external ETCD cluster $OLD_KEY"
+ EXPECT=$(test "$TYPE" == "minimal" && echo "1" || echo "3")
+ if [ $HELM_USE_UPGRADE == "yes" -o $(helm list --deployed --short --namespace $INFRA_NS "^etcd-cluster\$" | wc -l) -ne 1 ]; then
+ espin $NOT_VERIFIED
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+="--set clusterName=etcd-cluster --set autoCompactionRetention=1 --set clusterSize=$EXPECT"
+ helm_install - $INFRA_NS etcd-cluster onf/voltha-etcd-cluster latest "$_HELM_DESC external ETCD cluster"
+ else
+ espin $VERIFIED
+ fi
+ wait_for_pods - "$INFRA_NS" $EXPECT "includes" -1 "Waiting for ETCD cluster to start" "etcd-cluster-.*"
+ if [ "$WITH_TIMINGS" == "yes" ]; then
+ printtime $(expr $(date +%s) - $STIME)
+ fi
+fi
+
+if [ $WITH_KAFKA == "external" ]; then
+ _TMP=$(mktemp -u)
+ _COUNT=$(test $TYPE == "minimal" && echo "1" || echo "3")
+ cat << EOC > $_TMP
+configurationOverrides:
+ "default.replication.factor": $_COUNT
+ "offsets.topic.replication.factor": $_COUNT
+ "log.retention.hours": 4
+ "log.message.timestamp.type": "LogAppendTime"
+persistence:
+ enabled: false
+zookeeper:
+ replicaCount: 1
+ persistence:
+ enabled: false
+replicas: $_COUNT
+EOC
+ STIME=$(date +%s)
+ bspin "Verify external Kafka cluster $OLD_KEY"
+ EXPECT=$(test "$TYPE" == "minimal" && echo "2" || echo "4")
+ if [ $HELM_USE_UPGRADE == "yes" -o $(helm list --deployed --short --namespace $INFRA_NS "^kafka\$" | wc -l) -ne 1 ]; then
+ espin $NOT_VERIFIED
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" -f $_TMP"
+ helm_install - $INFRA_NS kafka incubator/kafka latest "$_HELM_DESC external Kafka cluster"
+ else
+ espin $VERIFIED
+ fi
+ # DKB
+ wait_for_pods - "$INFRA_NS" $EXPECT "includes" -1 "Waiting for Kafka cluster to start" "kafka-.*"
+ if [ "$WITH_TIMINGS" == "yes" ]; then
+ printtime $(expr $(date +%s) - $STIME)
+ fi
+ rm -rf $_TMP
+fi
+
STIME=$(date +%s)
EXPECT=1
if [ "$ONLY_ONE" == "yes" ]; then
@@ -1457,40 +1583,65 @@
else
EXPECT=$((EXPECT+2))
fi
-if [ $WITH_ETCD != "yes" ]; then
- INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set private_etcd_cluster=false"
- if [ $WITH_ETCD != "no" ]; then
+case $WITH_ETCD in
+ no)
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set private_etcd_cluster=false"
+ ;;
+ yes)
+ _HOST="voltha-etcd-cluster-client.$VOLTHA_NS.svc.cluster.local"
+ _PORT=2379
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set services.etcd.service=$_HOST --set services.etcd.port=$_PORT"
+ EXPECT=$((EXPECT+$(test "$TYPE" == "minimal" && echo "1" || echo "3")))
+ ;;
+ external)
+ _HOST="etcd-cluster-client.$INFRA_NS.svc.cluster.local"
+ _PORT=2379
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set private_etcd_cluster=false --set services.etcd.service=$_HOST --set services.etcd.port=$_PORT"
+ ;;
+ *)
_HOST=$(echo $WITH_ETCD | cut -d: -f1)
_PORT=$(echo $WITH_ETCD | cut -s -d: -f2)
_PORT=${_PORT:-2379}
- INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set services.etcd.service=$_HOST --set services.etcd.port=$_PORT"
- fi
-else
- if [ $TYPE == "minimal" ]; then
- EXPECT=$((EXPECT+1))
- else
- EXPECT=$((EXPECT+3))
- fi
-fi
-if [ $WITH_KAFKA != "yes" ]; then
- INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set private_kafka_cluster=false"
- if [ $WITH_KAFKA != "no" ]; then
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set private_etcd_cluster=false --set services.etcd.service=$_HOST --set services.etcd.port=$_PORT"
+ ;;
+esac
+case $WITH_KAFKA in
+ no)
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set private_kafka_cluster=false"
+ ;;
+ yes)
+ _HOST=voltha-kafka.$VOLTHA_NS.svc.cluster.local
+ _PORT=9092
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set kafka_broker=$_HOST:$_PORT --set services.kafka.adapter.service=$_HOST --set services.kafka.adapter.port=$_PORT --set services.kafka.cluster.service=$_HOST --set services.kafka.cluster.port=$_PORT"
+ EXPECT=$((EXPECT+$(test "$TYPE" == "minimal" && echo "2" || echo "4")))
+ ;;
+ external)
+ _HOST=kafka.$INFRA_NS.svc.cluster.local
+ _PORT=9092
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set private_kafka_cluster=false --set kafka_broker=$_HOST:$_PORT --set services.kafka.adapter.service=$_HOST --set services.kafka.adapter.port=$_PORT --set services.kafka.cluster.service=$_HOST --set services.kafka.cluster.port=$_PORT"
+ ;;
+ *)
_HOST=$(echo $WITH_KAFKA | cut -d: -f1)
_PORT=$(echo $WITH_KAFKA | cut -s -d: -f2)
_PORT=${_PORT:-9092}
- INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set kafka_broker=$_HOST:$_PORT --set services.kafka.adapter.service=$_HOST --set services.kafka.adapter.port=$_PORT --set services.kafka.cluster.service=$_HOST --set services.kafka.cluster.port=$_PORT"
- fi
-else
- if [ $TYPE == "minimal" ]; then
- EXPECT=$((EXPECT+2))
- else
- EXPECT=$((EXPECT+4))
- fi
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set private_kafka_cluster=false --set kafka_broker=$_HOST:$_PORT --set services.kafka.adapter.service=$_HOST --set services.kafka.adapter.port=$_PORT --set services.kafka.cluster.service=$_HOST --set services.kafka.cluster.port=$_PORT"
+ ;;
+esac
+
+if [ $WITH_ONOS == "yes" ]; then
+ _HOST=onos-openflow.$INFRA_NS.svc.cluster.local
+ _PORT=6653
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set services.controller.service=$_HOST --set services.controller.port=$_PORT"
+elif [ $WITH_ONOS != "no" ]; then
+ _HOST=$(echo $WITH_ONOS | cut -d: -f1)
+ _PORT=$(echo $WITH_ONOS | cut -s -d: -f2)
+ _PORT=${_PORT:-6653}
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set services.controller.service=$_HOST --set services.controller.port=$_PORT"
fi
bspin "Verify VOLTHA installed $HIGH_VOLTAGE"
-if [ $(helm list --deployed --short --namespace voltha "^voltha\$" | wc -l) -ne 1 ]; then
+if [ $HELM_USE_UPGRADE == "yes" -o $(helm list --deployed --short --namespace $VOLTHA_NS "^voltha\$" | wc -l) -ne 1 ]; then
espin $NOT_VERIFIED
- helm_install - voltha voltha $VOLTHA_CHART $VOLTHA_CHART_VERSION "Install VOLTHA Core"
+ helm_install - $VOLTHA_NS voltha $VOLTHA_CHART $VOLTHA_CHART_VERSION "$_HELM_DESC VOLTHA Core"
else
espin $VERIFIED
fi
@@ -1501,7 +1652,7 @@
voltha-etcd-cluster-.* \
voltha-kafka-.* \
voltha-zookeeper-.*"
-wait_for_pods - "voltha" $EXPECT "includes" -1 "Waiting for VOLTHA Core to start" $VOLTHA
+wait_for_pods - "$VOLTHA_NS" $EXPECT "includes" -1 "Waiting for VOLTHA Core to start" $VOLTHA
if [ "$WITH_TIMINGS" == "yes" ]; then
printtime $(expr $(date +%s) - $STIME)
fi
@@ -1509,28 +1660,40 @@
if [ "$WITH_ADAPTERS" == "yes" ]; then
STIME=$(date +%s)
EXPECT=0
- if [ $WITH_ETCD != "yes" ]; then
- if [ $WITH_ETCD != "no" ]; then
- _HOST=$(echo $WITH_ETCD | cut -d: -f1)
- _PORT=$(echo $WITH_ETCD | cut -s -d: -f2)
- _PORT=${_PORT:-2379}
- INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set services.etcd.service=$_HOST --set services.etcd.port=$_PORT"
- fi
+ if [ $WITH_ETCD == "yes" ]; then
+ _HOST=voltha-etcd-cluster-client.$VOLTHA_NS.svc.cluster.local
+ _PORT=2379
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set services.etcd.service=$_HOST --set services.etcd.port=$_PORT"
+ elif [ $WITH_ETCD == "external" ]; then
+ _HOST=etcd-cluster-client.$INFRA_NS.svc.cluster.local
+ _PORT=2379
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set services.etcd.service=$_HOST --set services.etcd.port=$_PORT"
+ elif [ $WITH_ETCD != "no" ]; then
+ _HOST=$(echo $WITH_ETCD | cut -d: -f1)
+ _PORT=$(echo $WITH_ETCD | cut -s -d: -f2)
+ _PORT=${_PORT:-2379}
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set services.etcd.service=$_HOST --set services.etcd.port=$_PORT"
fi
- if [ $WITH_KAFKA != "yes" ]; then
- if [ $WITH_KAFKA != "no" ]; then
- _HOST=$(echo $WITH_KAFKA | cut -d: -f1)
- _PORT=$(echo $WITH_KAFKA | cut -s -d: -f2)
- _PORT=${_PORT:-9092}
- INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set kafka_broker=$_HOST:$_PORT --set services.kafka.adapter.service=$_HOST --set services.kafka.adapter.port=$_PORT --set services.kafka.cluster.service=$_HOST --set services.kafka.cluster.port=$_PORT"
- fi
+ if [ $WITH_KAFKA == "yes" ]; then
+ _HOST=voltha-kafka.$VOLTHA_NS.svc.cluster.local
+ _PORT=9092
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set kafka_broker=$_HOST:$_PORT --set services.kafka.adapter.service=$_HOST --set services.kafka.adapter.port=$_PORT --set services.kafka.cluster.service=$_HOST --set services.kafka.cluster.port=$_PORT"
+ elif [ $WITH_KAFKA == "external" ]; then
+ _HOST=kafka.$INFRA_NS.svc.cluster.local
+ _PORT=9092
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set kafka_broker=$_HOST:$_PORT --set services.kafka.adapter.service=$_HOST --set services.kafka.adapter.port=$_PORT --set services.kafka.cluster.service=$_HOST --set services.kafka.cluster.port=$_PORT"
+ elif [ $WITH_KAFKA != "no" ]; then
+ _HOST=$(echo $WITH_KAFKA | cut -d: -f1)
+ _PORT=$(echo $WITH_KAFKA | cut -s -d: -f2)
+ _PORT=${_PORT:-9092}
+ INTERNAL_EXTRA_HELM_INSTALL_ARGS+=" --set kafka_broker=$_HOST:$_PORT --set services.kafka.adapter.service=$_HOST --set services.kafka.adapter.port=$_PORT --set services.kafka.cluster.service=$_HOST --set services.kafka.cluster.port=$_PORT"
fi
echo -e "Verify Adapters $PLUG"
if [ "$WITH_SIM_ADAPTERS" == "yes" ]; then
bspin - "Verify Simulated Adapters installed"
- if [ $(helm list --deployed --short --namespace voltha "^sim\$" | wc -l) -ne 1 ]; then
+ if [ $HELM_USE_UPGRADE == "yes" -o $(helm list --deployed --short --namespace $ADAPTER_NS "^sim\$" | wc -l) -ne 1 ]; then
espin - $NOT_VERIFIED
- helm_install - voltha sim $VOLTHA_ADAPTER_SIM_CHART $VOLTHA_ADAPTER_SIM_CHART_VERSION "Install Simulated Adapters"
+ helm_install - $ADAPTER_NS sim $VOLTHA_ADAPTER_SIM_CHART $VOLTHA_ADAPTER_SIM_CHART_VERSION "$_HELM_DESC Simulated Adapters"
else
espin - $VERIFIED
fi
@@ -1539,16 +1702,16 @@
if [ "$WITH_OPEN_ADAPTERS" == "yes" ]; then
bspin - "Verify OpenOLT Adapter installed"
- if [ $(helm list --deployed --short --namespace voltha "^open-olt\$" | wc -l) -ne 1 ]; then
+ if [ $HELM_USE_UPGRADE == "yes" -o $(helm list --deployed --short --namespace $ADAPTER_NS "^open-olt\$" | wc -l) -ne 1 ]; then
espin - $NOT_VERIFIED
- helm_install - voltha open-olt $VOLTHA_ADAPTER_OPEN_OLT_CHART $VOLTHA_ADAPTER_OPEN_OLT_CHART_VERSION "Install OpenOLT Adapter"
+ helm_install - $ADAPTER_NS open-olt $VOLTHA_ADAPTER_OPEN_OLT_CHART $VOLTHA_ADAPTER_OPEN_OLT_CHART_VERSION "$_HELM_DESC OpenOLT Adapter"
else
espin - $VERIFIED
fi
bspin - "Verify OpenONU Adapter installed"
- if [ $(helm list --deployed --short --namespace voltha "^open-onu\$" | wc -l) -ne 1 ]; then
+ if [ $HELM_USE_UPGRADE == "yes" -o $(helm list --deployed --short --namespace $ADAPTER_NS "^open-onu\$" | wc -l) -ne 1 ]; then
espin - $NOT_VERIFIED
- helm_install - voltha open-onu $VOLTHA_ADAPTER_OPEN_ONU_CHART $VOLTHA_ADAPTER_OPEN_ONU_CHART_VERSION "Install OpenONU Adapter"
+ helm_install - $ADAPTER_NS open-onu $VOLTHA_ADAPTER_OPEN_ONU_CHART $VOLTHA_ADAPTER_OPEN_ONU_CHART_VERSION "$_HELM_DESC OpenONU Adapter"
else
espin - $VERIFIED
fi
@@ -1557,7 +1720,7 @@
INTERNAL_EXTRA_HELM_INSTALL_ARGS=
ADAPTERS="adapter-.*"
- wait_for_pods - "voltha" $EXPECT "includes" -1 "Waiting for adapters to start" $ADAPTERS
+ wait_for_pods - "$ADAPTER_NS " $EXPECT "includes" -1 "Waiting for adapters to start" $ADAPTERS
if [ "$WITH_TIMINGS" == "yes" ]; then
printtime $(expr $(date +%s) - $STIME)
fi
@@ -1573,17 +1736,17 @@
else
instance_num=$instance
fi
- if [ $(helm list --deployed --short --namespace voltha "^bbsim${instance_num}\$" | wc -l) -ne 1 ]; then
+ if [ $HELM_USE_UPGRADE == "yes" -o $(helm list --deployed --short --namespace $BBSIM_NS "^bbsim${instance_num}\$" | wc -l) -ne 1 ]; then
espin - $NOT_VERIFIED
S_TAG=$((900+$instance))
INTERNAL_EXTRA_HELM_INSTALL_ARGS="--set olt_id=$instance,s_tag=$S_TAG"
- helm_install - voltha bbsim${instance_num} $VOLTHA_BBSIM_CHART $VOLTHA_BBSIM_CHART_VERSION "Install BBSIM${instance_num}"
+ helm_install - $BBSIM_NS bbsim${instance_num} $VOLTHA_BBSIM_CHART $VOLTHA_BBSIM_CHART_VERSION "$_HELM_DESC BBSIM${instance_num}"
INTERNAL_EXTRA_HELM_INSTALL_ARGS=
else
espin - $VERIFIED
fi
done
- wait_for_pods - "voltha" $NUM_OF_BBSIM "includes" -1 "Waiting for BBSIM to start" "bbsim*"
+ wait_for_pods - "$BBSIM_NS" $NUM_OF_BBSIM "includes" -1 "Waiting for BBSIM to start" "bbsim*"
if [ "$WITH_TIMINGS" == "yes" ]; then
printtime $(expr $(date +%s) - $STIME)
fi
@@ -1593,13 +1756,13 @@
STIME=$(date +%s)
echo -e "Verify RADIUS $LOCK"
bspin - "Verify RADIUS Installed"
- if [ $(helm list --deployed --short --namespace voltha "^radius\$" | wc -l) -ne 1 ]; then
+ if [ $HELM_USE_UPGRADE == "yes" -o $(helm list --deployed --short --namespace $INFRA_NS "^radius\$" | wc -l) -ne 1 ]; then
espin - $NOT_VERIFIED
- helm_install - voltha radius onf/freeradius latest "Install RADIUS"
+ helm_install - $INFRA_NS radius onf/freeradius latest "$_HELM_DESC RADIUS"
else
espin - $VERIFIED
fi
- wait_for_pods - "voltha" 1 "includes" -1 "Waiting for RADIUS to start" "radius-.*"
+ wait_for_pods - "$INFRA_NS" 1 "includes" -1 "Waiting for RADIUS to start" "radius-.*"
if [ "$WITH_TIMINGS" == "yes" ]; then
printtime $(expr $(date +%s) - $STIME)
fi
@@ -1609,18 +1772,20 @@
STIME=$(date +%s)
bspin - "Forward VOLTHA API port $FORWARD"
kill_port_forward voltha-api
- port_forward voltha voltha-api $VOLTHA_API_PORT 55555
+ port_forward $VOLTHA_NS voltha-api $VOLTHA_API_PORT 55555
espin - $VERIFIED
- if [ $WITH_ETCD == "yes" ]; then
+ if [ $WITH_ETCD == "yes" -o $WITH_ETCD == "external" ]; then
+ _NS=$(test $WITH_ETCD == "yes" && echo $VOLTHA_NS || echo $INFRA_NS)
bspin - "Forward VOLTHA ETCD port $FORWARD"
kill_port_forward voltha-etcd-cluster-client
- port_forward voltha voltha-etcd-cluster-client $VOLTHA_ETCD_PORT 2379
+ port_forward $_NS voltha-etcd-cluster-client $VOLTHA_ETCD_PORT 2379
espin - $VERIFIED
fi
- if [ $WITH_KAFKA == "yes" ]; then
+ if [ $WITH_KAFKA == "yes" -o $WITH_KAFKA == "external" ]; then
+ _NS=$(test $WITH_ETCD == "yes" && echo $VOLTHA_NS || echo $INFRA_NS)
bspin - "Forward VOLTHA Kafka port $FORWARD"
kill_port_forward voltha-kafka
- port_forward voltha voltha-kafka $VOLTHA_KAFKA_PORT 9092
+ port_forward $_NS voltha-kafka $VOLTHA_KAFKA_PORT 9092
espin - $VERIFIED
fi
if [ "$WITH_TIMINGS" == "yes" ]; then
@@ -1629,7 +1794,7 @@
fi
if [ $WITH_ONOS == "yes" -a $WITH_RADIUS != "no" ]; then
- _HOST=radius.voltha.svc.cluster.local
+ _HOST=radius.$INFRA_NS.svc.cluster.local
_PORT=1812
if [ $WITH_RADIUS != "yes" ]; then
_HOST=$(echo $WITH_RADIUS | cut -d: -f1)
@@ -1645,9 +1810,9 @@
STIME=$(date +%s)
echo -e "Verify kube-monkey $LOCK"
bspin - "Verify kube-monkey Installed"
- if [ $(helm list --deployed --short --namespace kube-monkey "^monkey\$" | wc -l) -ne 1 ]; then
+ if [ $HELM_USE_UPGRADE == "yes" -o $(helm list --deployed --short --namespace kube-monkey "^monkey\$" | wc -l) -ne 1 ]; then
espin - $NOT_VERIFIED
- helm_install - kube-monkey monkey ./kube-monkey/helm/kubemonkey latest "Install Chaos Monkey"
+ helm_install - kube-monkey monkey ./kube-monkey/helm/kubemonkey latest "$_HELM_DESC Chaos Monkey"
else
espin - $VERIFIED
fi
@@ -1669,7 +1834,7 @@
fi
else
KAFKA_FLAG="-k $(get_service_ep voltha voltha-kafka)"
- SERVER_FLAG="-s $(get_service_ep voltha voltha-api)"
+ SERVER_FLAG="-s $(get_service_ep $VOLTHA_NS voltha-api)"
ETCD_FLAG=
if [ "$MIN_VC_VERSION" == "1.0.15" ]; then
ETCD_FLAG="-e $(get_service_ep voltha voltha-etcd-client)"