@@ -18,10 +18,12 @@ import (
1818 "k8s.io/client-go/tools/record"
1919
2020 ctrl "sigs.k8s.io/controller-runtime"
21+ "sigs.k8s.io/controller-runtime/pkg/builder"
2122 "sigs.k8s.io/controller-runtime/pkg/client"
2223 "sigs.k8s.io/controller-runtime/pkg/event"
2324 "sigs.k8s.io/controller-runtime/pkg/handler"
2425 "sigs.k8s.io/controller-runtime/pkg/manager"
26+ "sigs.k8s.io/controller-runtime/pkg/predicate"
2527 "sigs.k8s.io/controller-runtime/pkg/source"
2628
2729 firewallv2 "github.com/metal-stack/firewall-controller-manager/api/v2"
@@ -38,6 +40,7 @@ type ClusterwideNetworkPolicyReconciler struct {
3840 SeedNamespace string
3941
4042 Log logr.Logger
43+ Ctx context.Context
4144 Recorder record.EventRecorder
4245
4346 Interval time.Duration
@@ -57,7 +60,7 @@ func (r *ClusterwideNetworkPolicyReconciler) SetupWithManager(mgr ctrl.Manager)
5760 }
5861
5962 return ctrl .NewControllerManagedBy (mgr ).
60- For (& firewallv1.ClusterwideNetworkPolicy {}).
63+ For (& firewallv1.ClusterwideNetworkPolicy {}, builder . WithPredicates (predicate. GenerationChangedPredicate {}) ).
6164 Watches (& corev1.Service {}, & handler.EnqueueRequestForObject {}).
6265 WatchesRawSource (& source.Channel {Source : scheduleChan }, & handler.EnqueueRequestForObject {}).
6366 Complete (r )
@@ -104,7 +107,7 @@ func (r *ClusterwideNetworkPolicyReconciler) Reconcile(ctx context.Context, _ ct
104107 cwnps .Items = validCwnps
105108
106109 nftablesFirewall := nftables .NewFirewall (f , & cwnps , & services , r .DnsProxy , r .Log , r .Recorder )
107- if err := r .manageDNSProxy (ctx , f , cwnps , nftablesFirewall ); err != nil {
110+ if err := r .manageDNSProxy (f , cwnps , nftablesFirewall ); err != nil {
108111 return ctrl.Result {}, err
109112 }
110113 updated , err := nftablesFirewall .Reconcile ()
@@ -127,7 +130,7 @@ func (r *ClusterwideNetworkPolicyReconciler) Reconcile(ctx context.Context, _ ct
127130// manageDNSProxy start DNS proxy if toFQDN rules are present
128131// if rules were deleted it will stop running DNS proxy
129132func (r * ClusterwideNetworkPolicyReconciler ) manageDNSProxy (
130- ctx context. Context , f * firewallv2.Firewall , cwnps firewallv1.ClusterwideNetworkPolicyList , nftablesFirewall * nftables.Firewall ,
133+ f * firewallv2.Firewall , cwnps firewallv1.ClusterwideNetworkPolicyList , nftablesFirewall * nftables.Firewall ,
131134) (err error ) {
132135 // Skipping is needed for testing
133136 if r .SkipDNS {
@@ -142,10 +145,10 @@ func (r *ClusterwideNetworkPolicyReconciler) manageDNSProxy(
142145
143146 if enableDNS && r .DnsProxy == nil {
144147 r .Log .Info ("DNS Proxy is initialized" )
145- if r .DnsProxy , err = dns .NewDNSProxy (f .Spec .DNSServerAddress , f .Spec .DNSPort , ctrl .Log .WithName ("DNS proxy" )); err != nil {
148+ if r .DnsProxy , err = dns .NewDNSProxy (r . Ctx , f .Spec .DNSServerAddress , f .Spec .DNSPort , r . ShootClient , ctrl .Log .WithName ("DNS proxy" )); err != nil {
146149 return fmt .Errorf ("failed to init DNS proxy: %w" , err )
147150 }
148- go r .DnsProxy .Run (ctx )
151+ go r .DnsProxy .Run ()
149152 } else if ! enableDNS && r .DnsProxy != nil {
150153 r .Log .Info ("DNS Proxy is stopped" )
151154 r .DnsProxy .Stop ()
@@ -217,7 +220,6 @@ func (r *ClusterwideNetworkPolicyReconciler) allowedCWNPs(ctx context.Context, c
217220 }
218221
219222 for _ , cwnp := range cwnps {
220- cwnp := cwnp
221223 oke , err := r .validateCWNPEgressTargetPrefix (cwnp , egressSet )
222224 if err != nil {
223225 return nil , err
0 commit comments