func BuildFirewallConfig()

in pkg/azure/configbuilder.go [17:43]


func BuildFirewallConfig(erulesList azurefirewallrulesv1.AzureFirewallRulesList, erulesSourceAddresses map[string][]string) *[]n.BasicFirewallPolicyRuleCollection {
	var ruleCollections []n.BasicFirewallPolicyRuleCollection

	for _, item := range erulesList.Items {
		for _, egressrule := range item.Spec.EgressRules {
			if len(erulesSourceAddresses[egressrule.Name]) != 0 {
				for _, rule := range egressrule.Rules {
					if len(ruleCollections) == 0 || NotFoundRuleCollection(rule, ruleCollections) {
						ruleCollection := BuildRuleCollection(egressrule, rule, erulesSourceAddresses)
						ruleCollections = append(ruleCollections, ruleCollection)
					} else {
						for i := 0; i < len(ruleCollections); i++ {
							ruleCollection := ruleCollections[i].(*n.FirewallPolicyFilterRuleCollection)
							if rule.RuleCollectionName == *ruleCollection.Name {
								fwRules := *ruleCollection.Rules
								fwRule := GetRule(egressrule, rule, erulesSourceAddresses)
								fwRules = append(fwRules, fwRule)
								ruleCollection.Rules = &fwRules
							}
						}
					}
				}
			}
		}
	}
	return &ruleCollections
}