Skip to content

Commit 933e5be

Browse files
authored
Ignore namespace and pod updates that we have not action items on. (#556)
1 parent 6712d8b commit 933e5be

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

npm/namespace.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
package npm
44

55
import (
6+
"reflect"
7+
68
"github.com/Azure/azure-container-networking/log"
79
"github.com/Azure/azure-container-networking/npm/ipsm"
810
"github.com/Azure/azure-container-networking/npm/iptm"
@@ -42,6 +44,15 @@ func isSystemNs(nsObj *corev1.Namespace) bool {
4244
return nsObj.ObjectMeta.Name == util.KubeSystemFlag
4345
}
4446

47+
func isInvalidNamespaceUpdate(oldNsObj, newNsObj *corev1.Namespace) (isInvalidUpdate bool) {
48+
isInvalidUpdate = oldNsObj.ObjectMeta.Name == newNsObj.ObjectMeta.Name &&
49+
newNsObj.ObjectMeta.DeletionTimestamp == nil &&
50+
newNsObj.ObjectMeta.DeletionGracePeriodSeconds == nil
51+
isInvalidUpdate = isInvalidUpdate && reflect.DeepEqual(oldNsObj.ObjectMeta.Labels, newNsObj.ObjectMeta.Labels)
52+
53+
return
54+
}
55+
4556
func (ns *namespace) policyExists(npObj *networkingv1.NetworkPolicy) bool {
4657
if np, exists := ns.rawNpMap[npObj.ObjectMeta.Name]; exists {
4758
if isSamePolicy(np, npObj) {
@@ -134,8 +145,11 @@ func (npMgr *NetworkPolicyManager) AddNamespace(nsObj *corev1.Namespace) error {
134145

135146
// UpdateNamespace handles updating namespace in ipset.
136147
func (npMgr *NetworkPolicyManager) UpdateNamespace(oldNsObj *corev1.Namespace, newNsObj *corev1.Namespace) error {
137-
var err error
148+
if isInvalidNamespaceUpdate(oldNsObj, newNsObj) {
149+
return nil
150+
}
138151

152+
var err error
139153
oldNsNs, oldNsLabel := "ns-"+oldNsObj.ObjectMeta.Name, oldNsObj.ObjectMeta.Labels
140154
newNsNs, newNsLabel := "ns-"+newNsObj.ObjectMeta.Name, newNsObj.ObjectMeta.Labels
141155
log.Printf(

npm/pod.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package npm
44

55
import (
66
"fmt"
7+
"reflect"
78

89
"github.com/Azure/azure-container-networking/log"
910
"github.com/Azure/azure-container-networking/npm/util"
@@ -20,6 +21,18 @@ func isSystemPod(podObj *corev1.Pod) bool {
2021
return podObj.ObjectMeta.Namespace == util.KubeSystemFlag
2122
}
2223

24+
func isInvalidPodUpdate(oldPodObj, newPodObj *corev1.Pod) (isInvalidUpdate bool) {
25+
isInvalidUpdate = oldPodObj.ObjectMeta.Namespace == newPodObj.ObjectMeta.Namespace &&
26+
oldPodObj.ObjectMeta.Name == newPodObj.ObjectMeta.Name &&
27+
oldPodObj.Status.Phase == newPodObj.Status.Phase &&
28+
oldPodObj.Status.PodIP == newPodObj.Status.PodIP &&
29+
newPodObj.ObjectMeta.DeletionTimestamp == nil &&
30+
newPodObj.ObjectMeta.DeletionGracePeriodSeconds == nil
31+
isInvalidUpdate = isInvalidUpdate && reflect.DeepEqual(oldPodObj.ObjectMeta.Labels, newPodObj.ObjectMeta.Labels)
32+
33+
return
34+
}
35+
2336
// AddPod handles adding pod ip to its label's ipset.
2437
func (npMgr *NetworkPolicyManager) AddPod(podObj *corev1.Pod) error {
2538
if !isValidPod(podObj) {
@@ -92,6 +105,10 @@ func (npMgr *NetworkPolicyManager) UpdatePod(oldPodObj, newPodObj *corev1.Pod) e
92105
return nil
93106
}
94107

108+
if isInvalidPodUpdate(oldPodObj, newPodObj) {
109+
return nil
110+
}
111+
95112
var (
96113
err error
97114
oldPodObjNs = oldPodObj.ObjectMeta.Namespace

0 commit comments

Comments
 (0)