SEBA-440 Workaround failed voltha chart install

Change-Id: Icb2bc3127267b224ad12bb39bdfd1df620669e2f
diff --git a/seba-in-a-box/Makefile b/seba-in-a-box/Makefile
index 5c8db43..e8394cc 100644
--- a/seba-in-a-box/Makefile
+++ b/seba-in-a-box/Makefile
@@ -134,19 +134,28 @@
 	cd $(WORKSPACE)/cord/helm-charts; helm upgrade --install $(HELM_ONOS_ARGS) onos onos -f $(SEBAVALUES)
 	touch $@
 
+# SEBA-440 Sometimes VOLTHA install fails with 'namespaces "voltha" not found'
+# Work around by repeatedly trying to install the chart until it succeeds
 $(M)/voltha: | $(M)/kafka-running $(INFRA_PREREQS) $(M)/etcd-operator-ready
 	cd $(WORKSPACE)/cord/helm-charts; helm dep up voltha
-	cd $(WORKSPACE)/cord/helm-charts; helm upgrade --install $(HELM_VOLTHA_ARGS) voltha voltha -f $(SEBAVALUES)
+	cd $(WORKSPACE)/cord/helm-charts; \
+		for i in 1 2 3; \
+		do \
+			helm upgrade --install $(HELM_VOLTHA_ARGS) voltha voltha -f $(SEBAVALUES) && break; \
+			echo "VOLTHA chart install failed; cleaning up and trying again"; \
+			helm delete --purge voltha; \
+			until ! kubectl get namespace voltha; \
+			do \
+				sleep 5; \
+			done; \
+			sleep 5; \
+		done
 	touch $@
 
 $(M)/etcd-operator-ready: | $(WORKSPACE)/cord/helm-charts $(M)/helm-init
 	cd $(WORKSPACE)/cord/helm-charts; \
 	helm upgrade --install etcd-operator --version $(ETCD_OPERATOR_VERSION) stable/etcd-operator -f $(SEBAVALUES)
-	until kubectl get crd | grep etcdclusters; \
-	do \
-		echo "Waiting for etcdclusters CRD to be available"; \
-		sleep 5; \
-	done
+	timeout 120s bash -c "until kubectl get crd | grep etcdclusters; do echo 'Waiting for etcdclusters CRD to be available'; sleep 5; done"
 	touch $@
 
 $(M)/voltha-running: | $(M)/voltha