浏览代码

add support for egress HA on relay

abhishek9686 5 月之前
父节点
当前提交
d813dc4f92
共有 1 个文件被更改,包括 11 次插入0 次删除
  1. 11 0
      logic/peers.go

+ 11 - 0
logic/peers.go

@@ -6,6 +6,7 @@ import (
 	"net"
 	"net"
 	"net/netip"
 	"net/netip"
 
 
+	"github.com/google/uuid"
 	"github.com/gravitl/netmaker/database"
 	"github.com/gravitl/netmaker/database"
 	"github.com/gravitl/netmaker/logger"
 	"github.com/gravitl/netmaker/logger"
 	"github.com/gravitl/netmaker/logic/acls/nodeacls"
 	"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{
 				hostPeerUpdate.EgressRoutes = append(hostPeerUpdate.EgressRoutes, models.EgressNetworkRoutes{
 					PeerKey:                peerKey,
 					PeerKey:                peerKey,
 					EgressGwAddr:           peer.Address,
 					EgressGwAddr:           peer.Address,