Skip to content

Commit 65dc445

Browse files
authored
Merge pull request kubernetes#74241 from snowplayfire/fix-pdb-update
fix too many pdb update operations when nothing change
2 parents 4a1da48 + dfa3353 commit 65dc445

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

pkg/controller/disruption/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ go_library(
1717
"//staging/src/k8s.io/api/core/v1:go_default_library",
1818
"//staging/src/k8s.io/api/extensions/v1beta1:go_default_library",
1919
"//staging/src/k8s.io/api/policy/v1beta1:go_default_library",
20+
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
2021
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
2122
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
2223
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
@@ -50,6 +51,7 @@ go_test(
5051
"//staging/src/k8s.io/api/apps/v1:go_default_library",
5152
"//staging/src/k8s.io/api/core/v1:go_default_library",
5253
"//staging/src/k8s.io/api/policy/v1beta1:go_default_library",
54+
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
5355
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
5456
"//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library",
5557
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",

pkg/controller/disruption/disruption.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ package disruption
1818

1919
import (
2020
"fmt"
21-
"reflect"
2221
"time"
2322

2423
apps "k8s.io/api/apps/v1beta1"
2524
"k8s.io/api/core/v1"
2625
"k8s.io/api/extensions/v1beta1"
2726
policy "k8s.io/api/policy/v1beta1"
27+
apiequality "k8s.io/apimachinery/pkg/api/equality"
2828
"k8s.io/apimachinery/pkg/api/errors"
2929
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3030
"k8s.io/apimachinery/pkg/types"
@@ -695,7 +695,7 @@ func (dc *DisruptionController) updatePdbStatus(pdb *policy.PodDisruptionBudget,
695695
pdb.Status.DesiredHealthy == desiredHealthy &&
696696
pdb.Status.ExpectedPods == expectedCount &&
697697
pdb.Status.PodDisruptionsAllowed == disruptionsAllowed &&
698-
reflect.DeepEqual(pdb.Status.DisruptedPods, disruptedPods) &&
698+
apiequality.Semantic.DeepEqual(pdb.Status.DisruptedPods, disruptedPods) &&
699699
pdb.Status.ObservedGeneration == pdb.Generation {
700700
return nil
701701
}

pkg/controller/disruption/disruption_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ package disruption
1818

1919
import (
2020
"fmt"
21-
"reflect"
2221
"runtime/debug"
2322
"testing"
2423
"time"
2524

2625
apps "k8s.io/api/apps/v1"
2726
"k8s.io/api/core/v1"
2827
policy "k8s.io/api/policy/v1beta1"
28+
apiequality "k8s.io/apimachinery/pkg/api/equality"
2929
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3030
"k8s.io/apimachinery/pkg/util/intstr"
3131
"k8s.io/apimachinery/pkg/util/uuid"
@@ -67,7 +67,7 @@ func (ps *pdbStates) VerifyPdbStatus(t *testing.T, key string, disruptionsAllowe
6767
ObservedGeneration: actualPDB.Generation,
6868
}
6969
actualStatus := actualPDB.Status
70-
if !reflect.DeepEqual(actualStatus, expectedStatus) {
70+
if !apiequality.Semantic.DeepEqual(actualStatus, expectedStatus) {
7171
debug.PrintStack()
7272
t.Fatalf("PDB %q status mismatch. Expected %+v but got %+v.", key, expectedStatus, actualStatus)
7373
}

0 commit comments

Comments
 (0)