|
|
|
|
@@ -125,6 +125,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
}
|
|
|
|
|
log.Info("Running finalizer logic for FirewallPolicy", "name", firewallPolicy.Name)
|
|
|
|
|
|
|
|
|
|
if firewallPolicy.Status.ResourcesManaged != nil {
|
|
|
|
|
if len(firewallPolicy.Status.ResourcesManaged.UnifiFirewallPolicies) > 0 {
|
|
|
|
|
for i, UnifiFirewallPolicy := range firewallPolicy.Status.ResourcesManaged.UnifiFirewallPolicies {
|
|
|
|
|
log.Info(fmt.Sprintf("From: %s to: %s TcpIpv4: %s UdpIpv4: %s TcpIpv6: %s UdpIpv6: %s", UnifiFirewallPolicy.From, UnifiFirewallPolicy.To, UnifiFirewallPolicy.TcpIpv4ID, UnifiFirewallPolicy.UdpIpv4ID, UnifiFirewallPolicy.TcpIpv6ID, UnifiFirewallPolicy.UdpIpv6ID))
|
|
|
|
|
@@ -193,6 +194,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
controllerutil.RemoveFinalizer(&firewallPolicy, firewallPolicyFinalizer)
|
|
|
|
|
if err := r.Update(ctx, &firewallPolicy); err != nil {
|
|
|
|
|
return ctrl.Result{}, err
|
|
|
|
|
@@ -285,7 +287,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
// This will be used when running through all firewall groups and servics known, to see if a rule should be added.
|
|
|
|
|
|
|
|
|
|
for _, dest_group := range firewallPolicy.Spec.Destination.FirewallGroups {
|
|
|
|
|
namespace := defaultNs
|
|
|
|
|
namespace := firewallPolicy.Namespace
|
|
|
|
|
if len(dest_group.Namespace) > 0 {
|
|
|
|
|
namespace = dest_group.Namespace
|
|
|
|
|
}
|
|
|
|
|
@@ -310,7 +312,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
// Run through all firewall groups. Add them to the myFirewallGroups list if they either have an annotations or is specified in the resource.
|
|
|
|
|
|
|
|
|
|
for _, firewallGroup := range firewallGroupCRDs.Items {
|
|
|
|
|
if val, found := firewallGroup.Annotations["unifi.engen.priv.no/firewall-policy"]; found && ((strings.Contains(val, "/") && val == firewallPolicy.Namespace+"/"+firewallPolicy.Name) || (val == firewallPolicy.Name && firewallPolicy.Namespace == defaultNs)) {
|
|
|
|
|
if val, found := firewallGroup.Annotations["unifi.engen.priv.no/firewall-policy"]; found && ((strings.Contains(val, "/") && val == firewallPolicy.Namespace+"/"+firewallPolicy.Name) || (val == firewallPolicy.Name && firewallPolicy.Namespace == firewallGroup.Namespace)) {
|
|
|
|
|
myFirewallGroups = append(myFirewallGroups, firewallGroup)
|
|
|
|
|
} else if _, found := destination_groups[firewallGroup.Namespace+"/"+firewallGroup.Name]; found {
|
|
|
|
|
myFirewallGroups = append(myFirewallGroups, firewallGroup)
|
|
|
|
|
@@ -340,7 +342,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
skipService = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if val, found := service.Annotations["unifi.engen.priv.no/firewall-policy"]; found && ((strings.Contains(val, "/") && val == firewallPolicy.Namespace+"/"+firewallPolicy.Name) || (val == firewallPolicy.Name && firewallPolicy.Namespace == defaultNs)) && !skipService {
|
|
|
|
|
if val, found := service.Annotations["unifi.engen.priv.no/firewall-policy"]; found && ((strings.Contains(val, "/") && val == firewallPolicy.Namespace+"/"+firewallPolicy.Name) || (val == firewallPolicy.Name && firewallPolicy.Namespace == service.Namespace)) && !skipService {
|
|
|
|
|
myServices = append(myServices, service)
|
|
|
|
|
} else if _, found := destination_services[service.Namespace+"/"+service.Name]; found && !skipService {
|
|
|
|
|
myServices = append(myServices, service)
|
|
|
|
|
@@ -468,7 +470,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
|
|
|
|
|
if len(firewallGroup.Status.ResolvedIPV4Addresses) > 0 {
|
|
|
|
|
if len(firewallGroup.Status.ResolvedTCPPorts) > 0 {
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Name + "-" + "zone:" + zoneCRDs.Items[zoneIndex].Name + "-" + firewallGroup.Name + "-ipv4-tcp"
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Namespace + "/" + firewallPolicy.Name + "-" + "zone:" + zoneCRDs.Items[zoneIndex].Name + "-" + firewallGroup.Name + "-ipv4-tcp"
|
|
|
|
|
if _, found := unifiFirewallpolicyNames[policyname]; !found {
|
|
|
|
|
log.Info(fmt.Sprintf("Creating ipv4 tcp firewallpolicy for %s to %s: %s", zoneCRDs.Items[zoneIndex].Name, firewallGroup.Name, policyname))
|
|
|
|
|
unifiFirewallPolicy := fillDefaultPolicy()
|
|
|
|
|
@@ -503,7 +505,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if len(firewallGroup.Status.ResolvedUDPPorts) > 0 {
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Name + "-" + "zone:" + zoneCRDs.Items[zoneIndex].Name + "-" + firewallGroup.Name + "-ipv4-udp"
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Namespace + "/" + firewallPolicy.Name + "-" + "zone:" + zoneCRDs.Items[zoneIndex].Name + "-" + firewallGroup.Name + "-ipv4-udp"
|
|
|
|
|
if _, found := unifiFirewallpolicyNames[policyname]; !found {
|
|
|
|
|
log.Info(fmt.Sprintf("Creating ipv4 udp firewallpolicy for %s to %s: %s", zoneCRDs.Items[zoneIndex].Name, firewallGroup.Name, policyname))
|
|
|
|
|
unifiFirewallPolicy := fillDefaultPolicy()
|
|
|
|
|
@@ -541,7 +543,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
}
|
|
|
|
|
if len(firewallGroup.Status.ResolvedIPV6Addresses) > 0 {
|
|
|
|
|
if len(firewallGroup.Status.ResolvedTCPPorts) > 0 {
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Name + "-" + "zone:" + zoneCRDs.Items[zoneIndex].Name + "-" + firewallGroup.Name + "-ipv6-tcp"
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Namespace + "/" + firewallPolicy.Name + "-" + "zone:" + zoneCRDs.Items[zoneIndex].Name + "-" + firewallGroup.Name + "-ipv6-tcp"
|
|
|
|
|
if _, found := unifiFirewallpolicyNames[policyname]; !found {
|
|
|
|
|
log.Info(fmt.Sprintf("Creating ipv6 tcp firewallpolicy for %s to %s: %s", zoneCRDs.Items[zoneIndex].Name, firewallGroup.Name, policyname))
|
|
|
|
|
unifiFirewallPolicy := fillDefaultPolicy()
|
|
|
|
|
@@ -577,7 +579,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if len(firewallGroup.Status.ResolvedUDPPorts) > 0 {
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Name + "-" + "zone:" + zoneCRDs.Items[zoneIndex].Name + "-" + firewallGroup.Name + "-ipv6-udp"
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Namespace + "/" + firewallPolicy.Name + "-" + "zone:" + zoneCRDs.Items[zoneIndex].Name + "-" + firewallGroup.Name + "-ipv6-udp"
|
|
|
|
|
if _, found := unifiFirewallpolicyNames[policyname]; !found {
|
|
|
|
|
log.Info(fmt.Sprintf("Creating ipv6 udp firewallpolicy for %s to %s: %s", zoneCRDs.Items[zoneIndex].Name, firewallGroup.Name, policyname))
|
|
|
|
|
unifiFirewallPolicy := fillDefaultPolicy()
|
|
|
|
|
@@ -640,7 +642,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
}
|
|
|
|
|
if len(firewallGroup.Status.ResolvedIPV4Addresses) > 0 {
|
|
|
|
|
if len(firewallGroup.Status.ResolvedTCPPorts) > 0 {
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Name + "-" + "network:" + networkCRDs.Items[networkIndex].Name + "-" + firewallGroup.Name + "-ipv4-tcp"
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Namespace + "/" + firewallPolicy.Name + "-" + "network:" + networkCRDs.Items[networkIndex].Name + "-" + firewallGroup.Name + "-ipv4-tcp"
|
|
|
|
|
if _, found := unifiFirewallpolicyNames[policyname]; !found {
|
|
|
|
|
log.Info(fmt.Sprintf("Creating ipv4 tcp firewallpolicy for %s to %s: %s", networkCRDs.Items[networkIndex].Name, firewallGroup.Name, policyname))
|
|
|
|
|
unifiFirewallPolicy := fillDefaultPolicy()
|
|
|
|
|
@@ -677,7 +679,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if len(firewallGroup.Status.ResolvedUDPPorts) > 0 {
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Name + "-" + "network:" + networkCRDs.Items[networkIndex].Name + "-" + firewallGroup.Name + "-ipv4-udp"
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Namespace + "/" + firewallPolicy.Name + "-" + "network:" + networkCRDs.Items[networkIndex].Name + "-" + firewallGroup.Name + "-ipv4-udp"
|
|
|
|
|
if _, found := unifiFirewallpolicyNames[policyname]; !found {
|
|
|
|
|
log.Info(fmt.Sprintf("Creating ipv4 udp firewallpolicy for %s to %s: %s", networkCRDs.Items[networkIndex].Name, firewallGroup.Name, policyname))
|
|
|
|
|
unifiFirewallPolicy := fillDefaultPolicy()
|
|
|
|
|
@@ -716,7 +718,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
}
|
|
|
|
|
if len(firewallGroup.Status.ResolvedIPV6Addresses) > 0 {
|
|
|
|
|
if len(firewallGroup.Status.ResolvedTCPPorts) > 0 {
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Name + "-" + "network:" + networkCRDs.Items[networkIndex].Name + "-" + firewallGroup.Name + "-ipv6-tcp"
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Namespace + "/" + firewallPolicy.Name + "-" + "network:" + networkCRDs.Items[networkIndex].Name + "-" + firewallGroup.Name + "-ipv6-tcp"
|
|
|
|
|
if _, found := unifiFirewallpolicyNames[policyname]; !found {
|
|
|
|
|
log.Info(fmt.Sprintf("Creating ipv6 tcp firewallpolicy for %s to %s: %s", networkCRDs.Items[networkIndex].Name, firewallGroup.Name, policyname))
|
|
|
|
|
unifiFirewallPolicy := fillDefaultPolicy()
|
|
|
|
|
@@ -753,7 +755,7 @@ func (r *FirewallPolicyReconciler) Reconcile(ctx context.Context, req ctrl.Reque
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if len(firewallGroup.Status.ResolvedUDPPorts) > 0 {
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Name + "-" + "network:" + networkCRDs.Items[networkIndex].Name + "-" + firewallGroup.Name + "-ipv6-udp"
|
|
|
|
|
policyname := "k8s-fw-" + firewallPolicy.Namespace + "/" + firewallPolicy.Name + "-" + "network:" + networkCRDs.Items[networkIndex].Name + "-" + firewallGroup.Name + "-ipv6-udp"
|
|
|
|
|
if _, found := unifiFirewallpolicyNames[policyname]; !found {
|
|
|
|
|
log.Info(fmt.Sprintf("Creating ipv6 udp firewallpolicy for %s to %s: %s", networkCRDs.Items[networkIndex].Name, firewallGroup.Name, policyname))
|
|
|
|
|
unifiFirewallPolicy := fillDefaultPolicy()
|
|
|
|
|
|