VOL-417 Part 2 of this fix. Removed the use of the Docker Swarm VIP
which from experience isn't as deterministic as managing the round robin
externally.
Change-Id: I195555108448bb994d7fc599ed66f8be64ed9638
diff --git a/envoy/front-proxy/voltha-grpc-proxy-no-http.template.json b/envoy/front-proxy/voltha-grpc-proxy-no-http.template.json
index 4741d34..2d71f57 100644
--- a/envoy/front-proxy/voltha-grpc-proxy-no-http.template.json
+++ b/envoy/front-proxy/voltha-grpc-proxy-no-http.template.json
@@ -154,9 +154,15 @@
"lb_type": "round_robin",
"features": "http2",
"hosts": [
- {
- "url": "tcp://{{- .VolthaVip }}"
- }
+ {{block "viplist" .VolthaRR}}
+ {{- range .}}
+ {{- if isFirst2}}
+ {{- printf "{\"url\": \"tcp://%s\"}" . }}
+ {{- else }}
+ {{- printf ",{\"url\": \"tcp://%s\"}" . }}
+ {{- end }}
+ {{- end}}
+ {{- end}}
]
},
{
diff --git a/envoy/front-proxy/voltha-grpc-proxy-no-https.template.json b/envoy/front-proxy/voltha-grpc-proxy-no-https.template.json
index 7c5ba2e..7c8e6b1 100644
--- a/envoy/front-proxy/voltha-grpc-proxy-no-https.template.json
+++ b/envoy/front-proxy/voltha-grpc-proxy-no-https.template.json
@@ -149,9 +149,15 @@
"lb_type": "round_robin",
"features": "http2",
"hosts": [
- {
- "url": "tcp://{{- .VolthaVip }}"
- }
+ {{block "viplist" .VolthaRR}}
+ {{- range .}}
+ {{- if isFirst2}}
+ {{- printf "{\"url\": \"tcp://%s\"}" . }}
+ {{- else }}
+ {{- printf ",{\"url\": \"tcp://%s\"}" . }}
+ {{- end }}
+ {{- end}}
+ {{- end}}
]
},
{
diff --git a/envoy/go/envoyd/envoyd.go b/envoy/go/envoyd/envoyd.go
index 66fe628..a64271a 100644
--- a/envoy/go/envoyd/envoyd.go
+++ b/envoy/go/envoyd/envoyd.go
@@ -267,12 +267,18 @@
// the targetfile substituting
func (ec * EnvoyControl) updateEnvoyConfig(ecv * EnvoyConfigVars) (err error) {
var firstRun bool = true
+ var firstRun2 bool = true
f := func() (bool) {
var rtrn bool = firstRun
firstRun = false
return rtrn
}
- var funcs = template.FuncMap{"isFirst": f}
+ g := func() (bool) {
+ var rtrn bool = firstRun2
+ firstRun2 = false
+ return rtrn
+ }
+ var funcs = template.FuncMap{"isFirst": f, "isFirst2": g}
// Slurp up the template file.
tplt, err := ioutil.ReadFile(ec.envoyConfigTemplate)
if err != nil {
@@ -430,6 +436,7 @@
for {
qo.WaitIndex = meta.LastIndex
qo.RequireConsistent = true
+ //qo.AllowStale = true
for {
if qo.WaitIndex != meta.LastIndex {
break