in pkg/azure/configbuilder.go [73:129]
func GetRule(egressrule azurefirewallrulesv1.AzureFirewallEgressRulesSpec, rule azurefirewallrulesv1.AzureFirewallEgressrulesRulesSpec, erulesSourceAddresses map[string][]string) n.BasicFirewallPolicyRule {
sourceAddresses := erulesSourceAddresses[egressrule.Name]
var fwRule n.BasicFirewallPolicyRule
if rule.RuleType == "Application" {
targetFqdns := []string{}
targetUrls := []string{}
var terminateTLS = false
destinationAddresses := []string{}
if rule.DestinationAddresses != nil {
destinationAddresses = rule.DestinationAddresses
}
if rule.TargetFqdns != nil {
targetFqdns = rule.TargetFqdns
}
if rule.TargetUrls != nil {
targetUrls = rule.TargetUrls
}
if len(targetUrls) != 0 {
terminateTLS = true
}
fwRule := &n.ApplicationRule{
SourceIPGroups: &(sourceAddresses),
DestinationAddresses: &(destinationAddresses),
TargetFqdns: &(targetFqdns),
TargetUrls: &(targetUrls),
TerminateTLS: &(terminateTLS),
Protocols: GetApplicationProtocols(rule.Protocol),
RuleType: GetRuleType(rule.RuleType),
Name: to.StringPtr(rule.RuleName),
}
return fwRule
} else if rule.RuleType == "Network" {
destinationAddresses := []string{}
destinationFqdns := []string{}
if rule.DestinationAddresses != nil {
destinationAddresses = rule.DestinationAddresses
}
if rule.DestinationFqdns != nil {
destinationFqdns = rule.DestinationFqdns
}
fwRule := &n.Rule{
SourceIPGroups: &(sourceAddresses),
DestinationAddresses: &(destinationAddresses),
DestinationFqdns: &(destinationFqdns),
DestinationPorts: &(rule.DestinationPorts),
RuleType: GetRuleType(rule.RuleType),
IPProtocols: GetIpProtocols(rule.Protocol),
Name: to.StringPtr(rule.RuleName),
}
return fwRule
}
return fwRule
}