Browse Source

Merge pull request #2772 from gravitl/NET-910

NET-910: add extclient extrallowedips to fellow extclients, don't return err on inet range in egress gw
Abhishek K 1 year ago
parent
commit
7ef0aa436b
2 changed files with 10 additions and 2 deletions
  1. 7 0
      logic/extpeers.go
  2. 3 2
      logic/gateway.go

+ 7 - 0
logic/extpeers.go

@@ -67,6 +67,13 @@ func GetEgressRangesOnNetwork(client *models.ExtClient) ([]string, error) {
 			}
 		}
 	}
+	extclients := GetGwExtclients(client.IngressGatewayID, client.Network)
+	for _, extclient := range extclients {
+		if extclient.ClientID == client.ClientID {
+			continue
+		}
+		result = append(result, extclient.ExtraAllowedIPs...)
+	}
 
 	return result, nil
 }

+ 3 - 2
logic/gateway.go

@@ -2,7 +2,6 @@ package logic
 
 import (
 	"errors"
-	"fmt"
 	"time"
 
 	"github.com/gravitl/netmaker/database"
@@ -89,7 +88,9 @@ 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" || gateway.Ranges[i] == "::/0" {
-			return models.Node{}, fmt.Errorf("create internet gateways on the remote client gateway")
+			// remove inet range
+			gateway.Ranges = append(gateway.Ranges[:i], gateway.Ranges[i+1:]...)
+			continue
 		}
 		normalized, err := NormalizeCIDR(gateway.Ranges[i])
 		if err != nil {