mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
[NET-494 / ACC-322] New free tier limits (#2495)
* Rename var * Rename consts and use iota * Use switch instead of repeated else if * Rename limits related vars * Introduce new free tier limits * Measure new limits and report on license validation * Separate usage and limits, have new ones * Don't check for hosts and clients limits, but for machines instead * Error on egress creation @ free tier w/ internet gateways * Remove clients and hosts limit from code * Rename var * Rename consts and use iota * Use switch instead of repeated else if * Rename limits related vars * Introduce new free tier limits * Measure new limits and report on license validation * Separate usage and limits, have new ones * Don't check for hosts and clients limits, but for machines instead * Error on egress creation @ free tier w/ internet gateways * Remove clients and hosts limit from code
This commit is contained in:

committed by
GitHub

parent
449f3f947b
commit
8ce7da2ce9
@@ -11,6 +11,36 @@ import (
|
||||
"github.com/gravitl/netmaker/servercfg"
|
||||
)
|
||||
|
||||
// GetAllIngresses - gets all the hosts that are ingresses
|
||||
func GetAllIngresses() ([]models.Node, error) {
|
||||
nodes, err := GetAllNodes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
ingresses := make([]models.Node, 0)
|
||||
for _, node := range nodes {
|
||||
if node.IsIngressGateway {
|
||||
ingresses = append(ingresses, node)
|
||||
}
|
||||
}
|
||||
return ingresses, nil
|
||||
}
|
||||
|
||||
// GetAllEgresses - gets all the hosts that are egresses
|
||||
func GetAllEgresses() ([]models.Node, error) {
|
||||
nodes, err := GetAllNodes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
egresses := make([]models.Node, 0)
|
||||
for _, node := range nodes {
|
||||
if node.IsEgressGateway {
|
||||
egresses = append(egresses, node)
|
||||
}
|
||||
}
|
||||
return egresses, nil
|
||||
}
|
||||
|
||||
// CreateEgressGateway - creates an egress gateway
|
||||
func CreateEgressGateway(gateway models.EgressGatewayRequest) (models.Node, error) {
|
||||
node, err := GetNodeByID(gateway.NodeID)
|
||||
@@ -28,10 +58,13 @@ func CreateEgressGateway(gateway models.EgressGatewayRequest) (models.Node, erro
|
||||
return models.Node{}, errors.New("firewall is not supported for egress gateways")
|
||||
}
|
||||
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" {
|
||||
logger.Log(0, "currently IPv6 internet gateways are not supported", gateway.Ranges[i])
|
||||
gateway.Ranges = append(gateway.Ranges[:i], gateway.Ranges[i+1:]...)
|
||||
continue
|
||||
return models.Node{}, fmt.Errorf("currently IPv6 internet gateways are not supported: %s", gateway.Ranges[i])
|
||||
}
|
||||
normalized, err := NormalizeCIDR(gateway.Ranges[i])
|
||||
if err != nil {
|
||||
@@ -150,15 +183,6 @@ func DeleteIngressGateway(nodeid string) (models.Node, bool, []models.ExtClient,
|
||||
node.IsIngressGateway = false
|
||||
node.IngressGatewayRange = ""
|
||||
node.Failover = false
|
||||
|
||||
//logger.Log(3, "deleting ingress gateway firewall in use is '", host.FirewallInUse, "' and isEgressGateway is", node.IsEgressGateway)
|
||||
if node.EgressGatewayRequest.NodeID != "" {
|
||||
_, err := CreateEgressGateway(node.EgressGatewayRequest)
|
||||
if err != nil {
|
||||
logger.Log(0, fmt.Sprintf("failed to create egress gateway on node [%s] on network [%s]: %v",
|
||||
node.EgressGatewayRequest.NodeID, node.EgressGatewayRequest.NetID, err))
|
||||
}
|
||||
}
|
||||
err = UpsertNode(&node)
|
||||
if err != nil {
|
||||
return models.Node{}, wasFailover, removedClients, err
|
||||
|
Reference in New Issue
Block a user