Skip to content

Commit 8a0cb00

Browse files
committed
Select random router from map
1 parent 26b4a7c commit 8a0cb00

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

deploy/helm/jumpstarter/charts/jumpstarter-controller/templates/controller-deployment.yaml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,6 @@ spec:
6565
{{ else }}
6666
value: grpc.{{ .Values.global.baseDomain }}:{{ .Values.grpc.tls.port }}
6767
{{ end }}
68-
- name: GRPC_ROUTER_ENDPOINT
69-
{{ if .Values.grpc.router.default.endpoint }}
70-
value: {{ .Values.grpc.router.default.endpoint }}
71-
{{ else if .Values.router.default.hostname }}
72-
value: {{ .Values.router.default.hostname }}:{{ .Values.grpc.tls.port }}
73-
{{ else }}
74-
value: router.{{ .Values.global.baseDomain }}:{{ .Values.grpc.tls.port }}
75-
{{ end }}
7668
- name: CONTROLLER_KEY
7769
valueFrom:
7870
secretKeyRef:

internal/service/controller_service.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"context"
2121
"crypto/tls"
2222
"fmt"
23+
"math/rand"
2324
"net/http"
2425
"os"
2526
"strings"
@@ -413,8 +414,19 @@ func (s *ControllerService) Dial(ctx context.Context, req *pb.DialRequest) (*pb.
413414
return nil, status.Errorf(codes.Internal, "unable to sign token")
414415
}
415416

416-
// TODO: find best router from list
417-
endpoint := routerEndpoint()
417+
var endpoint string
418+
// Current go map implementation guarantees a random ordering
419+
for name, v := range s.Router {
420+
endpoint = v.Endpoint
421+
logger.Info("selected router", "name", name, "endpoint", endpoint)
422+
break
423+
}
424+
425+
if endpoint == "" {
426+
err := fmt.Errorf("no router available")
427+
logger.Error(err, "no router available")
428+
return nil, err
429+
}
418430

419431
response := &pb.ListenResponse{
420432
RouterEndpoint: endpoint,

0 commit comments

Comments
 (0)