Skip to content

Commit 1cecb04

Browse files
author
Thibault Gilles
committed
Add -sidecar-for-tag option
1 parent 73dddb5 commit 1cecb04

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

main.go

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"flag"
5+
"strings"
56

67
log "github.com/sirupsen/logrus"
78

@@ -17,7 +18,8 @@ func main() {
1718
log.SetLevel(log.TraceLevel)
1819

1920
consulAddr := flag.String("http-addr", "127.0.0.1:8500", "Consul agent address")
20-
service := flag.String("sidecar-for", "", "The consul service to proxy")
21+
service := flag.String("sidecar-for", "", "The consul service id to proxy")
22+
serviceTag := flag.String("sidecar-for-tag", "", "The consul service id to proxy")
2123
haproxyBin := flag.String("haproxy", "haproxy", "Haproxy binary path")
2224
dataplaneBin := flag.String("dataplane", "dataplane-api", "Dataplane binary path")
2325
haproxyCfgBasePath := flag.String("haproxy-cfg-base-path", "/tmp", "Haproxy binary path")
@@ -38,7 +40,30 @@ func main() {
3840
consulClient, err := api.NewClient(consulConfig)
3941
if err != nil {
4042
}
41-
watcher := consul.New(*service, consulClient)
43+
44+
var serviceID string
45+
if *serviceTag != "" {
46+
svcs, err := consulClient.Agent().Services()
47+
if err != nil {
48+
log.Fatal(err)
49+
}
50+
OUTER:
51+
for _, s := range svcs {
52+
if strings.HasSuffix(s.Service, "sidecar-proxy") {
53+
continue
54+
}
55+
for _, t := range s.Tags {
56+
if t == *serviceTag {
57+
serviceID = s.ID
58+
break OUTER
59+
}
60+
}
61+
}
62+
} else {
63+
serviceID = *service
64+
}
65+
66+
watcher := consul.New(serviceID, consulClient)
4267
go func() {
4368
if err := watcher.Run(); err != nil {
4469
log.Error(err)

0 commit comments

Comments
 (0)