Skip to content

Commit d39a153

Browse files
committed
Add range checking for endpoints
This could fail when endpoints are removed during a scale down operation. Signed-off-by: Alex Ellis (OpenFaaS Ltd) <[email protected]>
1 parent 271ade0 commit d39a153

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

k8s/proxy.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,15 @@ func (l *FunctionLookup) Resolve(name string) (url.URL, error) {
7373
return url.URL{}, fmt.Errorf("error listing %s.%s %s", name, namespace, err.Error())
7474
}
7575

76+
if len(svc.Subsets) == 0 {
77+
return url.URL{}, fmt.Errorf("no subsets available for %s.%s", name, namespace)
78+
}
79+
7680
all := len(svc.Subsets[0].Addresses)
81+
if len(svc.Subsets[0].Addresses) == 0 {
82+
return url.URL{}, fmt.Errorf("no addresses in subset for %s.%s", name, namespace)
83+
}
84+
7785
target := rand.Intn(all)
7886

7987
serviceIP := svc.Subsets[0].Addresses[target].IP

0 commit comments

Comments
 (0)