Skip to content

Commit df77a4d

Browse files
orishoshanzohar7ch
andauthored
Remove overly verbose event ReasonEnforcementGloballyDisabled in allowexternaltraffic.Off mode & improve event messages (#574)
This PR removes an overly verbose event with reason ReasonEnforcementGloballyDisabled, reported when external traffic policy support is disabled. The PR also fixes the formatting of the events (to start with capital case, to meed conventions). Co-authored-by: zohar7ch <zohar.s@otterize.com>
1 parent e76ea21 commit df77a4d

File tree

5 files changed

+28
-36
lines changed

5 files changed

+28
-36
lines changed

src/operator/controllers/external_traffic/network_policy.go

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,13 @@ import (
2727
)
2828

2929
const (
30-
ReasonEnforcementGloballyDisabled = "EnforcementGloballyDisabled"
3130
ReasonCreatingExternalTrafficPolicyFailed = "CreatingExternalTrafficPolicyFailed"
3231
ReasonCreatedExternalTrafficPolicy = "CreatedExternalTrafficPolicy"
3332
ReasonGettingExternalTrafficPolicyFailed = "GettingExternalTrafficPolicyFailed"
3433
ReasonRemovingExternalTrafficPolicy = "RemovingExternalTrafficPolicy"
3534
ReasonRemovingExternalTrafficPolicyFailed = "RemovingExternalTrafficPolicyFailed"
3635
ReasonRemovedExternalTrafficPolicy = "RemovedExternalTrafficPolicy"
3736
OtterizeExternalNetworkPolicyNameTemplate = "external-access-to-%s"
38-
successMsgNetpolCreate = "created external traffic network policy. service '%s' refers to pods protected by network policy '%s'"
3937
)
4038

4139
type NetworkPolicyHandler struct {
@@ -76,20 +74,20 @@ func (r *NetworkPolicyHandler) createOrUpdateNetworkPolicy(
7674
return errors.Wrap(err)
7775
}
7876
existingPolicy := &v1.NetworkPolicy{}
79-
errGetExistingPolicy := r.client.Get(ctx, types.NamespacedName{Name: policyName, Namespace: endpoints.GetNamespace()}, existingPolicy)
77+
err = r.client.Get(ctx, types.NamespacedName{Name: policyName, Namespace: endpoints.GetNamespace()}, existingPolicy)
8078

8179
// No matching network policy found, create one
82-
if k8serrors.IsNotFound(errGetExistingPolicy) {
80+
if k8serrors.IsNotFound(err) {
8381
logrus.Debugf("Creating network policy to allow external traffic to %s (ns %s)", endpoints.GetName(), endpoints.GetNamespace())
8482
err := r.client.Create(ctx, newPolicy)
8583
if err != nil {
8684
return r.handleCreationErrors(ctx, err, newPolicy, owner)
8785
}
8886
r.RecordNormalEvent(owner, ReasonCreatedExternalTrafficPolicy, successMsg)
8987
return nil
90-
} else if errGetExistingPolicy != nil {
88+
} else if err != nil {
9189
r.RecordWarningEventf(owner, ReasonGettingExternalTrafficPolicyFailed, "failed to get external traffic network policy: %s", err.Error())
92-
return errGetExistingPolicy
90+
return errors.Wrap(err)
9391
}
9492

9593
// Found matching policy, is an update needed?
@@ -507,19 +505,19 @@ func (r *NetworkPolicyHandler) handlePolicyDelete(ctx context.Context, policyNam
507505
ownerObj.SetKind(ownerRef.Kind)
508506
err := r.client.Get(ctx, types.NamespacedName{Name: ownerRef.Name, Namespace: policyNamespace}, ownerObj)
509507
if err != nil {
510-
logrus.Debugf("can't get the owner of %s. So no events will be recorded for the deletion", policyName)
508+
logrus.Debugf("Can't get the owner of %s. So no events will be recorded for the deletion", policyName)
511509
}
512510
owner = ownerObj
513511
}
514512

515-
r.RecordNormalEvent(owner, ReasonRemovingExternalTrafficPolicy, "removing external traffic network policy, reconciler was disabled")
513+
r.RecordNormalEvent(owner, ReasonRemovingExternalTrafficPolicy, "Removing external traffic network policy")
516514

517515
err = r.client.Delete(ctx, policy)
518516
if err != nil && !k8serrors.IsNotFound(err) {
519-
r.RecordWarningEventf(owner, ReasonRemovingExternalTrafficPolicyFailed, "failed removing external traffic network policy: %s", err.Error())
517+
r.RecordWarningEventf(owner, ReasonRemovingExternalTrafficPolicyFailed, "Failed removing external traffic network policy: %s", err.Error())
520518
return errors.Wrap(err)
521519
}
522-
r.RecordNormalEvent(owner, ReasonRemovedExternalTrafficPolicy, "removed external traffic network policy, success")
520+
r.RecordNormalEvent(owner, ReasonRemovedExternalTrafficPolicy, "Removed external traffic network policy")
523521

524522
return nil
525523
}
@@ -533,7 +531,6 @@ func (r *NetworkPolicyHandler) handleNetpolsForOtterizeService(ctx context.Conte
533531

534532
// delete policy if disabled
535533
if r.allowExternalTraffic == allowexternaltraffic.Off {
536-
r.RecordNormalEventf(svc, ReasonEnforcementGloballyDisabled, "Skipping created external traffic network policy for service '%s' because enforcement is globally disabled", endpoints.GetName())
537534
err = r.handlePolicyDelete(ctx, r.formatPolicyName(endpoints.Name), endpoints.Namespace)
538535
if err != nil {
539536
return errors.Wrap(err)
@@ -542,7 +539,8 @@ func (r *NetworkPolicyHandler) handleNetpolsForOtterizeService(ctx context.Conte
542539
}
543540

544541
for _, netpol := range netpolList {
545-
successMsg := fmt.Sprintf(successMsgNetpolCreate, endpoints.GetName(), netpol.GetName())
542+
successMsg := fmt.Sprintf("Created external traffic network policy. service '%s' refers to pods protected by network policy '%s'",
543+
endpoints.GetName(), netpol.GetName())
546544
err = r.createOrUpdateNetworkPolicy(ctx, endpoints, svc, otterizeServiceName, netpol.Spec.PodSelector, ingressList, successMsg)
547545

548546
if err != nil {

src/operator/controllers/intents_reconcilers/external_traffic_network_policy/external_traffic_network_policy_test.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -839,12 +839,7 @@ func (s *ExternalNetworkPolicyReconcilerTestSuite) TestEndpointsReconcilerNetwor
839839
err = s.Mgr.GetClient().Get(context.Background(), types.NamespacedName{Namespace: s.TestNamespace, Name: externalNetworkPolicyName}, np)
840840
assert.True(errors.IsNotFound(err))
841841
})
842-
select {
843-
case event := <-recorder.Events:
844-
s.Require().Contains(event, external_traffic.ReasonEnforcementGloballyDisabled)
845-
default:
846-
s.Fail("event not raised")
847-
}
842+
s.ExpectNoEvent(recorder)
848843
}
849844

850845
func TestExternalNetworkPolicyReconcilerTestSuite(t *testing.T) {

src/operator/controllers/intents_reconcilers/external_traffic_network_policy/external_traffic_network_policy_with_ingress_controllers_configured_test.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -924,12 +924,7 @@ func (s *ExternalNetworkPolicyReconcilerWithIngressControllersConfiguredTestSuit
924924
err = s.Mgr.GetClient().Get(context.Background(), types.NamespacedName{Namespace: s.TestNamespace, Name: externalNetworkPolicyName}, np)
925925
assert.True(errors.IsNotFound(err))
926926
})
927-
select {
928-
case event := <-recorder.Events:
929-
s.Require().Contains(event, external_traffic.ReasonEnforcementGloballyDisabled)
930-
default:
931-
s.Fail("event not raised")
932-
}
927+
s.ExpectNoEvent(recorder)
933928
}
934929

935930
func (s *ExternalNetworkPolicyReconcilerWithIngressControllersConfiguredTestSuite) TestNetworkPolicyForAWSALBExemption_enabled() {

src/shared/testbase/mocks_tests_suite_base.go

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package testbase
22

33
import (
44
mocks "github.com/otterize/intents-operator/src/operator/controllers/intents_reconcilers/mocks"
5-
"github.com/stretchr/testify/suite"
65
"go.uber.org/mock/gomock"
76
"k8s.io/client-go/tools/record"
87
"strings"
@@ -14,7 +13,7 @@ const (
1413
)
1514

1615
type MocksSuiteBase struct {
17-
suite.Suite
16+
TestSuiteBase
1817
Controller *gomock.Controller
1918
Recorder *record.FakeRecorder
2019
Client *mocks.MockClient
@@ -63,12 +62,3 @@ func (s *MocksSuiteBase) ExpectEventsOrderAndCountDontMatter(expectedEventReason
6362
}
6463
}
6564
}
66-
67-
func (s *MocksSuiteBase) ExpectNoEvent(eventRecorder *record.FakeRecorder) {
68-
select {
69-
case event := <-eventRecorder.Events:
70-
s.Fail("Unexpected event found", event)
71-
default:
72-
// Amazing, no events left behind!
73-
}
74-
}

src/shared/testbase/testsuitebase.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"k8s.io/apimachinery/pkg/util/wait"
2323
"k8s.io/client-go/kubernetes"
2424
"k8s.io/client-go/rest"
25+
"k8s.io/client-go/tools/record"
2526
_ "os"
2627
ctrl "sigs.k8s.io/controller-runtime"
2728
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -39,8 +40,21 @@ const waitForCreationInterval = 20 * time.Millisecond
3940
const waitForCreationTimeout = 10 * time.Second
4041
const waitForDeletionTSTimeout = 3 * time.Second
4142

42-
type ControllerManagerTestSuiteBase struct {
43+
type TestSuiteBase struct {
4344
suite.Suite
45+
}
46+
47+
func (s *TestSuiteBase) ExpectNoEvent(eventRecorder *record.FakeRecorder) {
48+
select {
49+
case event := <-eventRecorder.Events:
50+
s.Fail("Unexpected event found", event)
51+
default:
52+
// Amazing, no events left behind!
53+
}
54+
}
55+
56+
type ControllerManagerTestSuiteBase struct {
57+
TestSuiteBase
4458
TestEnv *envtest.Environment
4559
RestConfig *rest.Config
4660
TestNamespace string

0 commit comments

Comments
 (0)