mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-06 09:22:42 +08:00
NET-710: Internet Gws Re-Design (#2718)
* add internet gateway to client gateway * migration func to remove internet egress range from egress gateway * add internet gateways ranges to firewall update * add internet gw ranges to extcleint conf * add ipv6 internet address * remove failover field from ingress req * only let normal to be created on PRO (#2716) * feat(NET-805): send internet gw props to rac * set inet gw field on node update api * move internet gws to EE --------- Co-authored-by: the_aceix <aceixsmartx@gmail.com>
This commit is contained in:
@@ -10,6 +10,16 @@ import (
|
||||
"github.com/gravitl/netmaker/models"
|
||||
)
|
||||
|
||||
var (
|
||||
// SetInternetGw - sets the node as internet gw based on flag bool
|
||||
SetInternetGw = func(node *models.Node, flag bool) {
|
||||
}
|
||||
// IsInternetGw - checks if node is acting as internet gw
|
||||
IsInternetGw = func(node models.Node) bool {
|
||||
return false
|
||||
}
|
||||
)
|
||||
|
||||
// GetInternetGateways - gets all the nodes that are internet gateways
|
||||
func GetInternetGateways() ([]models.Node, error) {
|
||||
nodes, err := GetAllNodes()
|
||||
@@ -78,12 +88,8 @@ func CreateEgressGateway(gateway models.EgressGatewayRequest) (models.Node, erro
|
||||
}
|
||||
for i := len(gateway.Ranges) - 1; i >= 0; i-- {
|
||||
// check if internet gateway IPv4
|
||||
if gateway.Ranges[i] == "0.0.0.0/0" && FreeTier {
|
||||
return models.Node{}, fmt.Errorf("currently IPv4 internet gateways are not supported on the free tier: %s", gateway.Ranges[i])
|
||||
}
|
||||
// check if internet gateway IPv6
|
||||
if gateway.Ranges[i] == "::/0" {
|
||||
return models.Node{}, fmt.Errorf("currently IPv6 internet gateways are not supported: %s", gateway.Ranges[i])
|
||||
if gateway.Ranges[i] == "0.0.0.0/0" || gateway.Ranges[i] == "::/0" {
|
||||
return models.Node{}, fmt.Errorf("create internet gateways on the remote client gateway")
|
||||
}
|
||||
normalized, err := NormalizeCIDR(gateway.Ranges[i])
|
||||
if err != nil {
|
||||
@@ -163,6 +169,7 @@ func CreateIngressGateway(netid string, nodeid string, ingress models.IngressReq
|
||||
return models.Node{}, err
|
||||
}
|
||||
node.IsIngressGateway = true
|
||||
SetInternetGw(&node, ingress.IsInternetGateway)
|
||||
node.IngressGatewayRange = network.AddressRange
|
||||
node.IngressGatewayRange6 = network.AddressRange6
|
||||
node.IngressDNS = ingress.ExtclientDNS
|
||||
@@ -215,6 +222,7 @@ func DeleteIngressGateway(nodeid string) (models.Node, []models.ExtClient, error
|
||||
logger.Log(3, "deleting ingress gateway")
|
||||
node.LastModified = time.Now()
|
||||
node.IsIngressGateway = false
|
||||
node.IsInternetGateway = false
|
||||
node.IngressGatewayRange = ""
|
||||
err = UpsertNode(&node)
|
||||
if err != nil {
|
||||
|
Reference in New Issue
Block a user