Skip to content

Commit 43da536

Browse files
committed
make xds port (18000) configurable
1 parent 903a1d9 commit 43da536

3 files changed

Lines changed: 20 additions & 5 deletions

File tree

cmd/localproxyd/daemon.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ type Config struct {
2727
HTTPSRedirect bool
2828
TraceProcessLogs bool
2929
EnvoyAdminPort int
30+
XDSPort int
3031
}
3132

3233
type Daemon struct {
@@ -147,15 +148,15 @@ func (d *Daemon) initCerts() error {
147148
func (d *Daemon) initXDS() error {
148149
d.xdsServer = xds.NewServer()
149150
d.xdsServer.SetHTTPSRedirect(d.config.HTTPSRedirect)
150-
if err := d.xdsServer.Start(":18000"); err != nil {
151+
if err := d.xdsServer.Start(fmt.Sprintf(":%d", d.config.XDSPort)); err != nil {
151152
return err
152153
}
153-
log.Printf("xds server listening on :18000")
154+
log.Printf("xds server listening on :%d", d.config.XDSPort)
154155
return nil
155156
}
156157

157158
func (d *Daemon) initEnvoy() error {
158-
d.envoyMgr = envoy.NewManager(d.dataDir, "127.0.0.1:18000", d.xdsServer.NodeID(), d.config.LogLevel, d.config.EnvoyAdminPort)
159+
d.envoyMgr = envoy.NewManager(d.dataDir, fmt.Sprintf("127.0.0.1:%d", d.config.XDSPort), d.xdsServer.NodeID(), d.config.LogLevel, d.config.EnvoyAdminPort)
159160
if err := d.envoyMgr.Start(); err != nil {
160161
return err
161162
}

cmd/localproxyd/main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@ var logLevel string
1414
var httpsRedirect bool
1515
var traceProcessLogs bool
1616
var envoyAdminPort int
17+
var xdsPort int
1718

1819
func init() {
1920
pflag.StringArrayVar(&watchPaths, "watch", []string{}, "Folders to watch for processes (can be specified multiple times)")
2021
pflag.StringVar(&logLevel, "log-level", "info", "Envoy log level (trace, debug, info, warning, error, critical, off)")
2122
pflag.BoolVar(&httpsRedirect, "https-redirect", false, "Redirect HTTP requests to HTTPS")
2223
pflag.BoolVar(&traceProcessLogs, "trace-process-logs", false, "Trace logs from spawned process stdout/stderr. Requires SIP to be disabled on macos (Will probably cause your system to freeze if you're below Tahoe)")
2324
pflag.IntVar(&envoyAdminPort, "envoy-admin-port", 9901, "Envoy admin interface port")
25+
pflag.IntVar(&xdsPort, "xds-port", 18000, "XDS server port")
2426
pflag.Parse()
2527
}
2628

@@ -33,6 +35,7 @@ func main() {
3335
HTTPSRedirect: httpsRedirect,
3436
TraceProcessLogs: traceProcessLogs,
3537
EnvoyAdminPort: envoyAdminPort,
38+
XDSPort: xdsPort,
3639
}
3740

3841
daemon, err := NewDaemon(cfg)

internal/envoy/manager.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ import (
55
"encoding/json"
66
"fmt"
77
"log"
8+
"net"
89
"os"
910
"os/exec"
1011
"path/filepath"
12+
"strconv"
1113
"sync"
1214
"time"
1315
)
@@ -136,6 +138,15 @@ func (m *Manager) spawn() error {
136138
}
137139

138140
func (m *Manager) writeBootstrapConfig() error {
141+
xdsHost, xdsPortStr, err := net.SplitHostPort(m.xdsAddress)
142+
if err != nil {
143+
return fmt.Errorf("invalid xds address: %w", err)
144+
}
145+
xdsPort, err := strconv.Atoi(xdsPortStr)
146+
if err != nil {
147+
return fmt.Errorf("invalid xds port: %w", err)
148+
}
149+
139150
config := map[string]interface{}{
140151
"node": map[string]interface{}{
141152
"id": m.nodeID,
@@ -181,8 +192,8 @@ func (m *Manager) writeBootstrapConfig() error {
181192
"endpoint": map[string]interface{}{
182193
"address": map[string]interface{}{
183194
"socket_address": map[string]interface{}{
184-
"address": "127.0.0.1",
185-
"port_value": 18000,
195+
"address": xdsHost,
196+
"port_value": xdsPort,
186197
},
187198
},
188199
},

0 commit comments

Comments
 (0)