From 7b06ba3dc49d7974b81b7a100292ca658ea0d1a0 Mon Sep 17 00:00:00 2001 From: Kristoffer Dalby Date: Sun, 23 Feb 2025 19:27:52 +0100 Subject: [PATCH] save routes on register Signed-off-by: Kristoffer Dalby --- hscontrol/db/node.go | 4 ++++ integration/tsic/tsic.go | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/hscontrol/db/node.go b/hscontrol/db/node.go index 0c167856..c9244095 100644 --- a/hscontrol/db/node.go +++ b/hscontrol/db/node.go @@ -453,6 +453,10 @@ func RegisterNode(tx *gorm.DB, node types.Node, ipv4 *netip.Addr, ipv6 *netip.Ad return nil, fmt.Errorf("failed register(save) node in the database: %w", err) } + if _, err := SaveNodeRoutes(tx, &node); err != nil { + return nil, fmt.Errorf("failed to save node routes: %w", err) + } + log.Trace(). Caller(). Str("node", node.Hostname). diff --git a/integration/tsic/tsic.go b/integration/tsic/tsic.go index c5a558cb..964b2662 100644 --- a/integration/tsic/tsic.go +++ b/integration/tsic/tsic.go @@ -80,6 +80,7 @@ type TailscaleInContainer struct { withExtraHosts []string workdir string netfilter string + extraLoginArgs []string // build options, solely for HEAD buildConfig TailscaleInContainerBuildConfig @@ -203,6 +204,14 @@ func WithBuildTag(tag string) Option { } } +// WithExtraLoginArgs adds additional arguments to the `tailscale up` command +// as part of the Login function. +func WithExtraLoginArgs(args []string) Option { + return func(tsic *TailscaleInContainer) { + tsic.extraLoginArgs = args + } +} + // New returns a new TailscaleInContainer instance. func New( pool *dockertest.Pool, @@ -436,6 +445,10 @@ func (t *TailscaleInContainer) Login( "--accept-routes=false", } + if t.extraLoginArgs != nil { + command = append(command, t.extraLoginArgs...) + } + if t.withSSH { command = append(command, "--ssh") } @@ -475,6 +488,10 @@ func (t *TailscaleInContainer) LoginWithURL( "--accept-routes=false", } + if t.extraLoginArgs != nil { + command = append(command, t.extraLoginArgs...) + } + stdout, stderr, err := t.Execute(command) if errors.Is(err, errTailscaleNotLoggedIn) { return nil, errTailscaleCannotUpWithoutAuthkey