fix(agent): allow disabling Tailscale netns (#618)

This commit is contained in:
QEDeD
2026-08-25 07:04:15 +02:00
committed by GitHub
parent 9375e18b55
commit a5b6ecf28e
11 changed files with 157 additions and 7 deletions
+3
View File
@@ -8,6 +8,7 @@ type Config struct {
Hostname string
TSControlURL string
TSAuthKey string
TSNetNS bool
WorkDir string
}
@@ -16,6 +17,7 @@ const (
HostnameEnv = "HEADPLANE_AGENT_HOSTNAME"
TSControlURLEnv = "HEADPLANE_AGENT_TS_SERVER"
TSAuthKeyEnv = "HEADPLANE_AGENT_TS_AUTHKEY"
TSNetNSEnv = "HEADPLANE_AGENT_TS_NETNS"
WorkDirEnv = "HEADPLANE_AGENT_WORK_DIR"
)
@@ -26,6 +28,7 @@ func Load() (*Config, error) {
Hostname: os.Getenv(HostnameEnv),
TSControlURL: os.Getenv(TSControlURLEnv),
TSAuthKey: os.Getenv(TSAuthKeyEnv),
TSNetNS: os.Getenv(TSNetNSEnv) != "false",
WorkDir: os.Getenv(WorkDirEnv),
}
+44
View File
@@ -0,0 +1,44 @@
package config
import (
"net/http"
"net/http/httptest"
"testing"
)
func loadTestConfig(t *testing.T, tailscaleNetNS string) *Config {
t.Helper()
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
w.WriteHeader(http.StatusOK)
}))
t.Cleanup(server.Close)
t.Setenv(DebugEnv, "false")
t.Setenv(HostnameEnv, "headplane-agent")
t.Setenv(TSControlURLEnv, server.URL)
t.Setenv(TSAuthKeyEnv, "test-auth-key")
t.Setenv(TSNetNSEnv, tailscaleNetNS)
t.Setenv(WorkDirEnv, t.TempDir())
cfg, err := Load()
if err != nil {
t.Fatalf("Load() returned an error: %v", err)
}
return cfg
}
func TestLoadTailscaleNetNSEnabledByDefault(t *testing.T) {
cfg := loadTestConfig(t, "")
if !cfg.TSNetNS {
t.Fatal("TSNetNS is false, want true")
}
}
func TestLoadTailscaleNetNSDisabled(t *testing.T) {
cfg := loadTestConfig(t, "false")
if cfg.TSNetNS {
t.Fatal("TSNetNS is true, want false")
}
}