@@ -18,10 +18,12 @@ import (
18
18
"k8s.io/client-go/tools/record"
19
19
20
20
ctrl "sigs.k8s.io/controller-runtime"
21
+ "sigs.k8s.io/controller-runtime/pkg/builder"
21
22
"sigs.k8s.io/controller-runtime/pkg/client"
22
23
"sigs.k8s.io/controller-runtime/pkg/event"
23
24
"sigs.k8s.io/controller-runtime/pkg/handler"
24
25
"sigs.k8s.io/controller-runtime/pkg/manager"
26
+ "sigs.k8s.io/controller-runtime/pkg/predicate"
25
27
"sigs.k8s.io/controller-runtime/pkg/source"
26
28
27
29
firewallv2 "github.com/metal-stack/firewall-controller-manager/api/v2"
@@ -38,6 +40,7 @@ type ClusterwideNetworkPolicyReconciler struct {
38
40
SeedNamespace string
39
41
40
42
Log logr.Logger
43
+ Ctx context.Context
41
44
Recorder record.EventRecorder
42
45
43
46
Interval time.Duration
@@ -57,7 +60,7 @@ func (r *ClusterwideNetworkPolicyReconciler) SetupWithManager(mgr ctrl.Manager)
57
60
}
58
61
59
62
return ctrl .NewControllerManagedBy (mgr ).
60
- For (& firewallv1.ClusterwideNetworkPolicy {}).
63
+ For (& firewallv1.ClusterwideNetworkPolicy {}, builder . WithPredicates (predicate. GenerationChangedPredicate {}) ).
61
64
Watches (& corev1.Service {}, & handler.EnqueueRequestForObject {}).
62
65
WatchesRawSource (& source.Channel {Source : scheduleChan }, & handler.EnqueueRequestForObject {}).
63
66
Complete (r )
@@ -104,7 +107,7 @@ func (r *ClusterwideNetworkPolicyReconciler) Reconcile(ctx context.Context, _ ct
104
107
cwnps .Items = validCwnps
105
108
106
109
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 {
108
111
return ctrl.Result {}, err
109
112
}
110
113
updated , err := nftablesFirewall .Reconcile ()
@@ -127,7 +130,7 @@ func (r *ClusterwideNetworkPolicyReconciler) Reconcile(ctx context.Context, _ ct
127
130
// manageDNSProxy start DNS proxy if toFQDN rules are present
128
131
// if rules were deleted it will stop running DNS proxy
129
132
func (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 ,
131
134
) (err error ) {
132
135
// Skipping is needed for testing
133
136
if r .SkipDNS {
@@ -142,10 +145,10 @@ func (r *ClusterwideNetworkPolicyReconciler) manageDNSProxy(
142
145
143
146
if enableDNS && r .DnsProxy == nil {
144
147
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 {
146
149
return fmt .Errorf ("failed to init DNS proxy: %w" , err )
147
150
}
148
- go r .DnsProxy .Run (ctx )
151
+ go r .DnsProxy .Run ()
149
152
} else if ! enableDNS && r .DnsProxy != nil {
150
153
r .Log .Info ("DNS Proxy is stopped" )
151
154
r .DnsProxy .Stop ()
@@ -217,7 +220,6 @@ func (r *ClusterwideNetworkPolicyReconciler) allowedCWNPs(ctx context.Context, c
217
220
}
218
221
219
222
for _ , cwnp := range cwnps {
220
- cwnp := cwnp
221
223
oke , err := r .validateCWNPEgressTargetPrefix (cwnp , egressSet )
222
224
if err != nil {
223
225
return nil , err
0 commit comments