diff --git a/pkg/virtualkubelet/mesh.go b/pkg/virtualkubelet/mesh.go index cb904019..424f5ec2 100644 --- a/pkg/virtualkubelet/mesh.go +++ b/pkg/virtualkubelet/mesh.go @@ -476,6 +476,7 @@ PersistentKeepalive = %d // Prepare template data data := MeshScriptTemplateData{ WGInterfaceName: wgInterfaceName, + MeshContactHost: fmt.Sprintf("%s.%s.svc.cluster.local", td.Name, td.Namespace), WSTunnelExecutableURL: WSTunnelExecutableURL, WireguardGoURL: wireguardGoURL, WgToolURL: wgToolURL, diff --git a/pkg/virtualkubelet/mesh_template_test.go b/pkg/virtualkubelet/mesh_template_test.go new file mode 100644 index 00000000..fe930c8d --- /dev/null +++ b/pkg/virtualkubelet/mesh_template_test.go @@ -0,0 +1,24 @@ +package virtualkubelet + +import ( + "bytes" + "testing" + "text/template" + + "github.com/stretchr/testify/require" +) + +func TestMeshTemplateExportsContactHost(t *testing.T) { + content, err := meshScriptTemplate.ReadFile("templates/mesh.sh") + require.NoError(t, err) + + tmpl, err := template.New("mesh").Parse(string(content)) + require.NoError(t, err) + + var rendered bytes.Buffer + err = tmpl.Execute(&rendered, MeshScriptTemplateData{ + MeshContactHost: "worker-tunnel.pods-wstunnel.svc.cluster.local", + }) + require.NoError(t, err) + require.Contains(t, rendered.String(), `export INTERLINK_MESH_CONTACT_HOST="worker-tunnel.pods-wstunnel.svc.cluster.local"`) +} diff --git a/pkg/virtualkubelet/templates/mesh.sh b/pkg/virtualkubelet/templates/mesh.sh index 300e799b..a3e10931 100644 --- a/pkg/virtualkubelet/templates/mesh.sh +++ b/pkg/virtualkubelet/templates/mesh.sh @@ -79,6 +79,7 @@ echo "=== Inside network namespace ===" echo "Using WireGuard interface: $WG_IFACE" export WG_SOCKET_DIR="$TMPDIR" +export INTERLINK_MESH_CONTACT_HOST="{{.MeshContactHost}}" # Override /etc/resolv.conf to avoid issues with read-only filesystems # Not all environments support this; ignore errors @@ -242,4 +243,4 @@ sleep 5 echo "=== Bringing job to foreground ===" fg 1 -EOFMESH \ No newline at end of file +EOFMESH diff --git a/pkg/virtualkubelet/virtualkubelet.go b/pkg/virtualkubelet/virtualkubelet.go index d4f7cd43..e0565454 100644 --- a/pkg/virtualkubelet/virtualkubelet.go +++ b/pkg/virtualkubelet/virtualkubelet.go @@ -110,6 +110,7 @@ type PortMapping struct { type MeshScriptTemplateData struct { WGInterfaceName string + MeshContactHost string WSTunnelExecutableURL string WireguardGoURL string WgToolURL string