Parcourir la source

create default acl policies

abhishek9686 il y a 4 mois
Parent
commit
844f8cbefa
1 fichiers modifiés avec 31 ajouts et 0 suppressions
  1. 31 0
      migrate/migrate.go

+ 31 - 0
migrate/migrate.go

@@ -556,6 +556,37 @@ func migrateToEgressV1() {
 				node.EgressGatewayNatEnabled = false
 				node.EgressGatewayRanges = []string{}
 				node.IsInternetGateway = false
+				src := []models.AclPolicyTag{}
+				for _, inetClientID := range node.InetNodeReq.InetNodeClientIDs {
+					_, err := logic.GetNodeByID(inetClientID)
+					if err == nil {
+						src = append(src, models.AclPolicyTag{
+							ID:    models.NodeID,
+							Value: inetClientID,
+						})
+					}
+				}
+				acl := models.Acl{
+					ID:          uuid.New().String(),
+					Name:        "exit node policy",
+					MetaData:    "all traffic on source nodes will pass through the destination node in the policy",
+					Default:     false,
+					ServiceType: models.Any,
+					NetworkID:   models.NetworkID(node.Network),
+					Proto:       models.ALL,
+					RuleType:    models.UserPolicy,
+					Src:         src,
+					Dst: []models.AclPolicyTag{
+						{
+							ID:    models.NodeID,
+							Value: node.ID.String(),
+						}},
+					AllowedDirection: models.TrafficDirectionBi,
+					Enabled:          true,
+					CreatedBy:        "auto",
+					CreatedAt:        time.Now().UTC(),
+				}
+				logic.InsertAcl(acl)
 				node.InetNodeReq = models.InetNodeReq{}
 				logic.UpsertNode(&node)
 			}