From 7461adf76b5442c55f9de4dd73db3dc414a1242f Mon Sep 17 00:00:00 2001
From: kaiyou <dev@kaiyou.fr>
Date: Sun, 5 Nov 2023 15:01:09 +0100
Subject: [PATCH] Improve the readability of the VPN code

---
 services/manager.go | 4 +---
 services/meta.go    | 5 +++--
 services/vpn.go     | 1 +
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/services/manager.go b/services/manager.go
index 9dad1ca..ecaee15 100644
--- a/services/manager.go
+++ b/services/manager.go
@@ -72,12 +72,10 @@ type Cluster struct {
 type Unit = daeman.Unit[*Cluster]
 
 func NewManager(settings *ClusterSettings, node *HeptoMeta, logger logr.Logger) *daeman.Manager[*Cluster] {
-	networking := NewClusterNetworking(settings.Name, node.Name)
-	node.VpnIP = networking.NodeAddress
 	cluster := &Cluster{
 		settings:      settings,
 		thisNode:      node,
-		networking:    networking,
+		networking:    NewClusterNetworking(settings.Name, node.Name),
 		loopbackToken: uuid.NewString(),
 		nodes:         []*HeptoMeta{},
 		state: &HeptoState{
diff --git a/services/meta.go b/services/meta.go
index 79836fd..d05efaa 100644
--- a/services/meta.go
+++ b/services/meta.go
@@ -13,9 +13,9 @@ type HeptoMeta struct {
 	Name string `json:"name"`
 	// Public address of the node
 	PublicIP netip.Addr `json:"ip"`
-	// Address of the node over the VPN
+	// Address of the node over the VPN, set once the VPN is up
 	VpnIP netip.Prefix `json:"vpnIP"`
-	// Public key for the wireguard mesh VPN
+	// Public key for the wireguard mesh VPN, set once the VPN is up
 	VpnKey string `json:"vpnKey"`
 	// Node role inside the cluster
 	Role string `json:"role"`
@@ -35,6 +35,7 @@ func (m *HeptoMeta) OverlayIP() netip.Prefix {
 }
 
 func (m *HeptoMeta) Routes() []netip.Prefix {
+	// We do not currently support exposing additional routes
 	return []netip.Prefix{}
 }
 
diff --git a/services/vpn.go b/services/vpn.go
index 7410493..9946401 100644
--- a/services/vpn.go
+++ b/services/vpn.go
@@ -28,6 +28,7 @@ var vpn = &Unit{
 			return err
 		}
 		c.settings.Logger.Info("initialized vpn", "key", vpn.PubKey.String())
+		c.thisNode.VpnIP = c.networking.NodeAddress
 		c.thisNode.VpnKey = vpn.PubKey.String()
 		c.vpn = vpn
 		return nil
-- 
GitLab