Skip to content

Commit a499fac

Browse files
authored
Merge pull request kubernetes#128954 from sanposhiho/conflict-error
fix(e2e): retry on conflict when deleting extended resource
2 parents bfe431b + 89e23dd commit a499fac

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

Diff for: test/e2e/framework/node/helper.go

+11-5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"k8s.io/apimachinery/pkg/types"
3131
"k8s.io/apimachinery/pkg/util/wait"
3232
clientset "k8s.io/client-go/kubernetes"
33+
"k8s.io/client-go/util/retry"
3334

3435
"k8s.io/kubernetes/test/e2e/framework"
3536
testutils "k8s.io/kubernetes/test/utils"
@@ -204,10 +205,15 @@ func RemoveExtendedResource(ctx context.Context, clientSet clientset.Interface,
204205
extendedResource := v1.ResourceName(extendedResourceName)
205206

206207
ginkgo.By("Removing a custom resource")
207-
node, err := clientSet.CoreV1().Nodes().Get(ctx, nodeName, metav1.GetOptions{})
208-
framework.ExpectNoError(err)
209-
delete(node.Status.Capacity, extendedResource)
210-
delete(node.Status.Allocatable, extendedResource)
211-
_, err = clientSet.CoreV1().Nodes().UpdateStatus(ctx, node, metav1.UpdateOptions{})
208+
err := retry.RetryOnConflict(retry.DefaultBackoff, func() error {
209+
node, err := clientSet.CoreV1().Nodes().Get(ctx, nodeName, metav1.GetOptions{})
210+
if err != nil {
211+
return fmt.Errorf("failed to get node %s: %w", nodeName, err)
212+
}
213+
delete(node.Status.Capacity, extendedResource)
214+
delete(node.Status.Allocatable, extendedResource)
215+
_, err = clientSet.CoreV1().Nodes().UpdateStatus(ctx, node, metav1.UpdateOptions{})
216+
return err
217+
})
212218
framework.ExpectNoError(err)
213219
}

0 commit comments

Comments
 (0)