mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-08 14:15:25 +08:00
add static node ips in the ingress update
This commit is contained in:
parent
3994183fe8
commit
1c9b986f0e
3 changed files with 23 additions and 6 deletions
|
@ -402,6 +402,19 @@ func ToggleExtClientConnectivity(client *models.ExtClient, enable bool) (models.
|
||||||
return newClient, nil
|
return newClient, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetStaticNodeIps(node models.Node) (ips []net.IP) {
|
||||||
|
extclients := GetStaticNodesByNetwork(models.NetworkID(node.Network), false)
|
||||||
|
for _, extclient := range extclients {
|
||||||
|
if extclient.StaticNode.Address != "" {
|
||||||
|
ips = append(ips, extclient.StaticNode.AddressIPNet4().IP)
|
||||||
|
}
|
||||||
|
if extclient.StaticNode.Address6 != "" {
|
||||||
|
ips = append(ips, extclient.StaticNode.AddressIPNet6().IP)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func GetFwRulesOnIngressGateway(node models.Node) (rules []models.FwRule) {
|
func GetFwRulesOnIngressGateway(node models.Node) (rules []models.FwRule) {
|
||||||
// fetch user access to static clients via policies
|
// fetch user access to static clients via policies
|
||||||
extclients := GetStaticNodesByNetwork(models.NetworkID(node.Network), true)
|
extclients := GetStaticNodesByNetwork(models.NetworkID(node.Network), true)
|
||||||
|
@ -413,12 +426,14 @@ func GetFwRulesOnIngressGateway(node models.Node) (rules []models.FwRule) {
|
||||||
rules = append(rules, models.FwRule{
|
rules = append(rules, models.FwRule{
|
||||||
SrcIp: userNodeI.StaticNode.AddressIPNet4().IP,
|
SrcIp: userNodeI.StaticNode.AddressIPNet4().IP,
|
||||||
DstIP: extclient.StaticNode.AddressIPNet4().IP,
|
DstIP: extclient.StaticNode.AddressIPNet4().IP,
|
||||||
|
Allow: true,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if userNodeI.StaticNode.Address6 != "" {
|
if userNodeI.StaticNode.Address6 != "" {
|
||||||
rules = append(rules, models.FwRule{
|
rules = append(rules, models.FwRule{
|
||||||
SrcIp: userNodeI.StaticNode.AddressIPNet6().IP,
|
SrcIp: userNodeI.StaticNode.AddressIPNet6().IP,
|
||||||
DstIP: extclient.StaticNode.AddressIPNet6().IP,
|
DstIP: extclient.StaticNode.AddressIPNet6().IP,
|
||||||
|
Allow: true,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -294,9 +294,10 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
|
||||||
extPeers, extPeerIDAndAddrs, egressRoutes, extUserIps, err = GetExtPeers(&node, &node)
|
extPeers, extPeerIDAndAddrs, egressRoutes, extUserIps, err = GetExtPeers(&node, &node)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
hostPeerUpdate.FwUpdate.IngressInfo[node.ID.String()] = models.IngressInfo{
|
hostPeerUpdate.FwUpdate.IngressInfo[node.ID.String()] = models.IngressInfo{
|
||||||
IngressID: node.ID.String(),
|
IngressID: node.ID.String(),
|
||||||
UserIps: extUserIps,
|
UserIps: extUserIps,
|
||||||
Rules: GetFwRulesOnIngressGateway(node),
|
Rules: GetFwRulesOnIngressGateway(node),
|
||||||
|
StaticNodeIps: GetStaticNodeIps(node),
|
||||||
}
|
}
|
||||||
hostPeerUpdate.EgressRoutes = append(hostPeerUpdate.EgressRoutes, egressRoutes...)
|
hostPeerUpdate.EgressRoutes = append(hostPeerUpdate.EgressRoutes, egressRoutes...)
|
||||||
hostPeerUpdate.Peers = append(hostPeerUpdate.Peers, extPeers...)
|
hostPeerUpdate.Peers = append(hostPeerUpdate.Peers, extPeers...)
|
||||||
|
|
|
@ -34,9 +34,10 @@ type FwRule struct {
|
||||||
|
|
||||||
// IngressInfo - struct for ingress info
|
// IngressInfo - struct for ingress info
|
||||||
type IngressInfo struct {
|
type IngressInfo struct {
|
||||||
IngressID string `json:"ingress_id"`
|
IngressID string `json:"ingress_id"`
|
||||||
UserIps []net.IP `json:"user_ips"`
|
UserIps []net.IP `json:"user_ips"`
|
||||||
Rules []FwRule `json:"rules"`
|
StaticNodeIps []net.IP `json:"static_node_ips"`
|
||||||
|
Rules []FwRule `json:"rules"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// EgressInfo - struct for egress info
|
// EgressInfo - struct for egress info
|
||||||
|
|
Loading…
Add table
Reference in a new issue