Parcourir la source

add support for egress HA on relay

abhishek9686 il y a 5 mois
Parent
commit
d813dc4f92
1 fichiers modifiés avec 11 ajouts et 0 suppressions
  1. 11 0
      logic/peers.go

+ 11 - 0
logic/peers.go

@@ -6,6 +6,7 @@ import (
 	"net"
 	"net/netip"
 
+	"github.com/google/uuid"
 	"github.com/gravitl/netmaker/database"
 	"github.com/gravitl/netmaker/logger"
 	"github.com/gravitl/netmaker/logic/acls/nodeacls"
@@ -253,6 +254,16 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
 						}
 					}
 				}
+				if peer.FailedOverBy != uuid.Nil {
+					// get relay host
+					failOverNode, err := GetNodeByID(peer.FailedOverBy.String())
+					if err == nil {
+						relayHost, err := GetHost(failOverNode.HostID.String())
+						if err == nil {
+							peerKey = relayHost.PublicKey.String()
+						}
+					}
+				}
 				hostPeerUpdate.EgressRoutes = append(hostPeerUpdate.EgressRoutes, models.EgressNetworkRoutes{
 					PeerKey:                peerKey,
 					EgressGwAddr:           peer.Address,