From 6728dc77160742b06530bc3344e57c5387029ac7 Mon Sep 17 00:00:00 2001 From: TotoTheDragon Date: Fri, 16 Feb 2024 16:17:28 +0100 Subject: [PATCH] Revert "Change docker networking stuff" This reverts commit 29ed9031ff34a7a474f6d67f1b9f3277ce523494. --- integration/control.go | 2 +- integration/embedded_derp_test.go | 23 +++++++++++++++++++++-- integration/hsic/hsic.go | 9 ++++----- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/integration/control.go b/integration/control.go index fc99986fe75..f5557495a09 100644 --- a/integration/control.go +++ b/integration/control.go @@ -10,6 +10,7 @@ type ControlServer interface { SaveLog(string) error SaveProfile(string) error Execute(command []string) (string, error) + ConnectToNetwork(network *dockertest.Network) error GetHealthEndpoint() string GetEndpoint() string WaitForRunning() error @@ -19,5 +20,4 @@ type ControlServer interface { GetCert() []byte GetHostname() string GetIP() string - GetNetwork() *dockertest.Network } diff --git a/integration/embedded_derp_test.go b/integration/embedded_derp_test.go index 232baff6132..bb4308dec81 100644 --- a/integration/embedded_derp_test.go +++ b/integration/embedded_derp_test.go @@ -9,6 +9,7 @@ import ( "testing" "github.com/juanfont/headscale/hscontrol/util" + "github.com/juanfont/headscale/integration/dockertestutil" "github.com/juanfont/headscale/integration/hsic" "github.com/juanfont/headscale/integration/tsic" "github.com/ory/dockertest/v3" @@ -227,10 +228,28 @@ func (s *EmbeddedDERPServerScenario) CreateTailscaleIsolatedNodesInUser( return err } - network := hsServer.GetNetwork() - if user, ok := s.users[userStr]; ok { for clientN := 0; clientN < count; clientN++ { + networkName := fmt.Sprintf("tsnet-%s-%s-%d", + hash, + userStr, + clientN, + ) + network, err := dockertestutil.GetFirstOrCreateNetwork( + s.pool, + networkName, + ) + if err != nil { + return fmt.Errorf("failed to create or get %s network: %w", networkName, err) + } + + s.tsicNetworks[networkName] = network + + err = hsServer.ConnectToNetwork(network) + if err != nil { + return fmt.Errorf("failed to connect headscale to %s network: %w", networkName, err) + } + version := requestedVersion if requestedVersion == "all" { version = MustTestVersions[clientN%len(MustTestVersions)] diff --git a/integration/hsic/hsic.go b/integration/hsic/hsic.go index c789d82da3c..0bdf031e3f8 100644 --- a/integration/hsic/hsic.go +++ b/integration/hsic/hsic.go @@ -305,6 +305,10 @@ func New( return hsic, nil } +func (t *HeadscaleInContainer) ConnectToNetwork(network *dockertest.Network) error { + return t.container.ConnectToNetwork(network) +} + func (t *HeadscaleInContainer) hasTLS() bool { return len(t.tlsCert) != 0 && len(t.tlsKey) != 0 } @@ -469,11 +473,6 @@ func (t *HeadscaleInContainer) GetEndpoint() string { return fmt.Sprintf("http://%s", hostEndpoint) } -// GetEndpoint returns the Headscale endpoint for the HeadscaleInContainer. -func (t *HeadscaleInContainer) GetNetwork() *dockertest.Network { - return t.network -} - // GetCert returns the public certificate of the HeadscaleInContainer. func (t *HeadscaleInContainer) GetCert() []byte { return t.tlsCert