mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
Fix flakiness in daemonset TestLaunchWithHashCollisiion
This commit is contained in:
parent
a73ef59833
commit
d6ffcae31d
@ -41,6 +41,7 @@ go_test(
|
|||||||
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
|
"//staging/src/k8s.io/client-go/tools/cache:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
|
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
|
||||||
|
"//staging/src/k8s.io/client-go/util/retry:go_default_library",
|
||||||
"//test/integration/framework:go_default_library",
|
"//test/integration/framework:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -51,6 +51,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/scheduler/factory"
|
"k8s.io/kubernetes/pkg/scheduler/factory"
|
||||||
labelsutil "k8s.io/kubernetes/pkg/util/labels"
|
labelsutil "k8s.io/kubernetes/pkg/util/labels"
|
||||||
"k8s.io/kubernetes/pkg/util/metrics"
|
"k8s.io/kubernetes/pkg/util/metrics"
|
||||||
|
"k8s.io/kubernetes/staging/src/k8s.io/client-go/util/retry"
|
||||||
"k8s.io/kubernetes/test/integration/framework"
|
"k8s.io/kubernetes/test/integration/framework"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -461,6 +462,22 @@ func validateFailedPlacementEvent(eventClient corev1typed.EventInterface, t *tes
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func updateDS(t *testing.T, dsClient appstyped.DaemonSetInterface, dsName string, updateFunc func(*apps.DaemonSet)) *apps.DaemonSet {
|
||||||
|
var ds *apps.DaemonSet
|
||||||
|
if err := retry.RetryOnConflict(retry.DefaultBackoff, func() error {
|
||||||
|
newDS, err := dsClient.Get(dsName, metav1.GetOptions{})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
updateFunc(newDS)
|
||||||
|
ds, err = dsClient.Update(newDS)
|
||||||
|
return err
|
||||||
|
}); err != nil {
|
||||||
|
t.Fatalf("Failed to update DaemonSet: %v", err)
|
||||||
|
}
|
||||||
|
return ds
|
||||||
|
}
|
||||||
|
|
||||||
func forEachFeatureGate(t *testing.T, tf func(t *testing.T)) {
|
func forEachFeatureGate(t *testing.T, tf func(t *testing.T)) {
|
||||||
for _, fg := range featureGates() {
|
for _, fg := range featureGates() {
|
||||||
func() {
|
func() {
|
||||||
@ -832,7 +849,7 @@ func TestLaunchWithHashCollision(t *testing.T) {
|
|||||||
// Wait for the DaemonSet to be created before proceeding
|
// Wait for the DaemonSet to be created before proceeding
|
||||||
err = waitForDaemonSetAndControllerRevisionCreated(clientset, ds.Name, ds.Namespace)
|
err = waitForDaemonSetAndControllerRevisionCreated(clientset, ds.Name, ds.Namespace)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Failed to create DeamonSet: %v", err)
|
t.Fatalf("Failed to create DaemonSet: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ds, err = dsClient.Get(ds.Name, metav1.GetOptions{})
|
ds, err = dsClient.Get(ds.Name, metav1.GetOptions{})
|
||||||
@ -875,10 +892,9 @@ func TestLaunchWithHashCollision(t *testing.T) {
|
|||||||
|
|
||||||
// Make an update of the DaemonSet which we know will create a hash collision when
|
// Make an update of the DaemonSet which we know will create a hash collision when
|
||||||
// the next ControllerRevision is created.
|
// the next ControllerRevision is created.
|
||||||
_, err = dsClient.Update(ds)
|
ds = updateDS(t, dsClient, ds.Name, func(updateDS *apps.DaemonSet) {
|
||||||
if err != nil {
|
updateDS.Spec.Template.Spec.TerminationGracePeriodSeconds = &one
|
||||||
t.Fatalf("Failed to update DaemonSet: %v", err)
|
})
|
||||||
}
|
|
||||||
|
|
||||||
// Wait for any pod with the latest Spec to exist
|
// Wait for any pod with the latest Spec to exist
|
||||||
err = wait.PollImmediate(100*time.Millisecond, 10*time.Second, func() (bool, error) {
|
err = wait.PollImmediate(100*time.Millisecond, 10*time.Second, func() (bool, error) {
|
||||||
|
Loading…
Reference in New Issue
Block a user