mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-06 21:24:16 +08:00
migrate remote access gw tags
This commit is contained in:
parent
aca11049c9
commit
f3fd10326f
6 changed files with 44 additions and 21 deletions
|
@ -95,11 +95,11 @@ func CreateDefaultAclNetworkPolicies(netID models.NetworkID) {
|
|||
InsertAcl(defaultUserAcl)
|
||||
}
|
||||
|
||||
if !IsAclExists(fmt.Sprintf("%s.%s", netID, "all-remote-access-gws")) {
|
||||
if !IsAclExists(fmt.Sprintf("%s.%s", netID, "all-gateways")) {
|
||||
defaultUserAcl := models.Acl{
|
||||
ID: fmt.Sprintf("%s.%s", netID, "all-remote-access-gws"),
|
||||
ID: fmt.Sprintf("%s.%s", netID, "all-gateways"),
|
||||
Default: true,
|
||||
Name: "All Remote Access Gateways",
|
||||
Name: "All Gateways",
|
||||
NetworkID: netID,
|
||||
Proto: models.ALL,
|
||||
ServiceType: models.Any,
|
||||
|
@ -108,7 +108,7 @@ func CreateDefaultAclNetworkPolicies(netID models.NetworkID) {
|
|||
Src: []models.AclPolicyTag{
|
||||
{
|
||||
ID: models.NodeTagID,
|
||||
Value: fmt.Sprintf("%s.%s", netID, models.RemoteAccessTagName),
|
||||
Value: fmt.Sprintf("%s.%s", netID, models.GwTagName),
|
||||
},
|
||||
},
|
||||
Dst: []models.AclPolicyTag{
|
||||
|
|
|
@ -220,7 +220,7 @@ func CreateIngressGateway(netid string, nodeid string, ingress models.IngressReq
|
|||
if node.Tags == nil {
|
||||
node.Tags = make(map[models.TagID]struct{})
|
||||
}
|
||||
node.Tags[models.TagID(fmt.Sprintf("%s.%s", netid, models.RemoteAccessTagName))] = struct{}{}
|
||||
node.Tags[models.TagID(fmt.Sprintf("%s.%s", netid, models.GwTagName))] = struct{}{}
|
||||
err = UpsertNode(&node)
|
||||
if err != nil {
|
||||
return models.Node{}, err
|
||||
|
@ -272,7 +272,7 @@ func DeleteIngressGateway(nodeid string) (models.Node, []models.ExtClient, error
|
|||
if !servercfg.IsPro {
|
||||
node.IsInternetGateway = false
|
||||
}
|
||||
delete(node.Tags, models.TagID(fmt.Sprintf("%s.%s", node.Network, models.RemoteAccessTagName)))
|
||||
delete(node.Tags, models.TagID(fmt.Sprintf("%s.%s", node.Network, models.GwTagName)))
|
||||
node.IngressGatewayRange = ""
|
||||
node.Metadata = ""
|
||||
err = UpsertNode(&node)
|
||||
|
|
|
@ -280,8 +280,8 @@ func CheckIDSyntax(id string) error {
|
|||
func CreateDefaultTags(netID models.NetworkID) {
|
||||
// create tag for remote access gws in the network
|
||||
tag := models.Tag{
|
||||
ID: models.TagID(fmt.Sprintf("%s.%s", netID.String(), models.RemoteAccessTagName)),
|
||||
TagName: models.RemoteAccessTagName,
|
||||
ID: models.TagID(fmt.Sprintf("%s.%s", netID.String(), models.GwTagName)),
|
||||
TagName: models.GwTagName,
|
||||
Network: netID,
|
||||
CreatedBy: "auto",
|
||||
CreatedAt: time.Now(),
|
||||
|
|
|
@ -204,15 +204,6 @@ func updateNodes() {
|
|||
logic.UpsertNode(&node)
|
||||
}
|
||||
if node.IsIngressGateway {
|
||||
tagID := models.TagID(fmt.Sprintf("%s.%s", node.Network,
|
||||
models.RemoteAccessTagName))
|
||||
if node.Tags == nil {
|
||||
node.Tags = make(map[models.TagID]struct{})
|
||||
}
|
||||
if _, ok := node.Tags[tagID]; !ok {
|
||||
node.Tags[tagID] = struct{}{}
|
||||
logic.UpsertNode(&node)
|
||||
}
|
||||
host, err := logic.GetHost(node.HostID.String())
|
||||
if err == nil {
|
||||
go logic.DeleteRole(models.GetRAGRoleID(node.Network, host.ID.String()), true)
|
||||
|
@ -448,7 +439,8 @@ func createDefaultTagsAndPolicies() {
|
|||
for _, network := range networks {
|
||||
logic.CreateDefaultTags(models.NetworkID(network.NetID))
|
||||
logic.CreateDefaultAclNetworkPolicies(models.NetworkID(network.NetID))
|
||||
|
||||
// delete old remote access gws policy
|
||||
logic.DeleteAcl(models.Acl{ID: fmt.Sprintf("%s.%s", network.NetID, "all-remote-access-gws")})
|
||||
}
|
||||
logic.MigrateAclPolicies()
|
||||
}
|
||||
|
@ -463,7 +455,37 @@ func migrateToGws() {
|
|||
node.IsGw = true
|
||||
node.IsIngressGateway = true
|
||||
node.IsRelay = true
|
||||
if node.Tags == nil {
|
||||
node.Tags = make(map[models.TagID]struct{})
|
||||
}
|
||||
node.Tags[models.TagID(fmt.Sprintf("%s.%s", node.Network, models.GwTagName))] = struct{}{}
|
||||
delete(node.Tags, models.TagID(fmt.Sprintf("%s.%s", node.Network, models.OldRemoteAccessTagName)))
|
||||
logic.UpsertNode(&node)
|
||||
}
|
||||
}
|
||||
acls := logic.ListAcls()
|
||||
for _, acl := range acls {
|
||||
upsert := false
|
||||
for i, srcI := range acl.Src {
|
||||
if srcI.ID == models.NodeTagID && srcI.Value == fmt.Sprintf("%s.%s", acl.NetworkID.String(), models.OldRemoteAccessTagName) {
|
||||
srcI.Value = models.GwTagName
|
||||
acl.Src[i] = srcI
|
||||
upsert = true
|
||||
}
|
||||
}
|
||||
for i, dstI := range acl.Dst {
|
||||
if dstI.ID == models.NodeTagID && dstI.Value == fmt.Sprintf("%s.%s", acl.NetworkID.String(), models.OldRemoteAccessTagName) {
|
||||
dstI.Value = models.GwTagName
|
||||
acl.Dst[i] = dstI
|
||||
upsert = true
|
||||
}
|
||||
}
|
||||
if upsert {
|
||||
logic.UpsertAcl(acl)
|
||||
}
|
||||
}
|
||||
nets, _ := logic.GetNetworks()
|
||||
for _, netI := range nets {
|
||||
logic.DeleteTag(models.TagID(fmt.Sprintf("%s.%s", netI.NetID, models.OldRemoteAccessTagName)), true)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,8 @@ import (
|
|||
type TagID string
|
||||
|
||||
const (
|
||||
RemoteAccessTagName = "remote-access-gws"
|
||||
OldRemoteAccessTagName = "remote-access-gws"
|
||||
GwTagName = "gateways"
|
||||
)
|
||||
|
||||
func (id TagID) String() string {
|
||||
|
|
|
@ -1230,7 +1230,7 @@ func CreateDefaultUserPolicies(netID models.NetworkID) {
|
|||
Dst: []models.AclPolicyTag{
|
||||
{
|
||||
ID: models.NodeTagID,
|
||||
Value: fmt.Sprintf("%s.%s", netID, models.RemoteAccessTagName),
|
||||
Value: fmt.Sprintf("%s.%s", netID, models.GwTagName),
|
||||
}},
|
||||
AllowedDirection: models.TrafficDirectionUni,
|
||||
Enabled: true,
|
||||
|
@ -1264,7 +1264,7 @@ func CreateDefaultUserPolicies(netID models.NetworkID) {
|
|||
Dst: []models.AclPolicyTag{
|
||||
{
|
||||
ID: models.NodeTagID,
|
||||
Value: fmt.Sprintf("%s.%s", netID, models.RemoteAccessTagName),
|
||||
Value: fmt.Sprintf("%s.%s", netID, models.GwTagName),
|
||||
}},
|
||||
AllowedDirection: models.TrafficDirectionUni,
|
||||
Enabled: true,
|
||||
|
|
Loading…
Add table
Reference in a new issue