This is an automated email from the ASF dual-hosted git repository.
pbacsko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-k8shim.git
The following commit(s) were added to refs/heads/master by this push:
new a8206ab3 [YUNIKORN-1796] add retry to some e2e test functions (#612)
a8206ab3 is described below
commit a8206ab3f29c846745b8e894673afaea114da57c
Author: Frank Yang <[email protected]>
AuthorDate: Fri Jun 9 12:24:46 2023 +0200
[YUNIKORN-1796] add retry to some e2e test functions (#612)
Signed-off-by: Frank Yang <[email protected]>
Closes: #612
Signed-off-by: Peter Bacsko <[email protected]>
---
test/e2e/framework/helpers/k8s/k8s_utils.go | 101 +++++++++++++++-------------
1 file changed, 55 insertions(+), 46 deletions(-)
diff --git a/test/e2e/framework/helpers/k8s/k8s_utils.go
b/test/e2e/framework/helpers/k8s/k8s_utils.go
index 78922c20..e4a8a282 100644
--- a/test/e2e/framework/helpers/k8s/k8s_utils.go
+++ b/test/e2e/framework/helpers/k8s/k8s_utils.go
@@ -50,6 +50,7 @@ import (
"k8s.io/client-go/tools/clientcmd"
"k8s.io/client-go/tools/portforward"
"k8s.io/client-go/transport/spdy"
+ "k8s.io/client-go/util/retry"
resourcehelper "k8s.io/kubectl/pkg/util/resource"
podutil "k8s.io/kubernetes/pkg/api/v1/pod"
@@ -1222,16 +1223,18 @@ func (k *KubeCtl) DescribeNode(node v1.Node) error {
}
func (k *KubeCtl) SetNodeLabel(name, key, value string) error {
- node, err := k.clientSet.CoreV1().Nodes().Get(context.TODO(), name,
metav1.GetOptions{})
- if err != nil {
- return err
- }
- node.Labels[key] = value
- _, err = k.clientSet.CoreV1().Nodes().Update(context.TODO(), node,
metav1.UpdateOptions{})
- if err != nil {
- return err
- }
- return nil
+ return retry.RetryOnConflict(retry.DefaultBackoff, func() error {
+ node, err := k.clientSet.CoreV1().Nodes().Get(context.TODO(),
name, metav1.GetOptions{})
+ if err != nil {
+ return err
+ }
+ node.Labels[key] = value
+ _, err = k.clientSet.CoreV1().Nodes().Update(context.TODO(),
node, metav1.UpdateOptions{})
+ if err != nil {
+ return err
+ }
+ return nil
+ })
}
func (k *KubeCtl) IsNodeLabelExists(name, key string) (bool, error) {
@@ -1248,35 +1251,39 @@ func (k *KubeCtl) IsNodeLabelExists(name, key string)
(bool, error) {
}
func (k *KubeCtl) RemoveNodeLabel(name, key, value string) error {
- node, err := k.clientSet.CoreV1().Nodes().Get(context.TODO(), name,
metav1.GetOptions{})
- if err != nil {
- return err
- }
- delete(node.Labels, key)
- _, err = k.clientSet.CoreV1().Nodes().Update(context.TODO(), node,
metav1.UpdateOptions{})
- if err != nil {
- return err
- }
- return nil
+ return retry.RetryOnConflict(retry.DefaultBackoff, func() error {
+ node, err := k.clientSet.CoreV1().Nodes().Get(context.TODO(),
name, metav1.GetOptions{})
+ if err != nil {
+ return err
+ }
+ delete(node.Labels, key)
+ _, err = k.clientSet.CoreV1().Nodes().Update(context.TODO(),
node, metav1.UpdateOptions{})
+ if err != nil {
+ return err
+ }
+ return nil
+ })
}
func (k *KubeCtl) TaintNode(name, key, val string, effect v1.TaintEffect)
error {
- node, err := k.clientSet.CoreV1().Nodes().Get(context.TODO(), name,
metav1.GetOptions{})
- if err != nil {
- return err
- }
+ return retry.RetryOnConflict(retry.DefaultBackoff, func() error {
+ node, err := k.clientSet.CoreV1().Nodes().Get(context.TODO(),
name, metav1.GetOptions{})
+ if err != nil {
+ return err
+ }
- t := v1.Taint{
- Effect: effect,
- Key: key,
- Value: val,
- }
- taints := node.Spec.Taints
- taints = append(taints, t)
- node.Spec.Taints = taints
+ t := v1.Taint{
+ Effect: effect,
+ Key: key,
+ Value: val,
+ }
+ taints := node.Spec.Taints
+ taints = append(taints, t)
+ node.Spec.Taints = taints
- _, err = k.clientSet.CoreV1().Nodes().Update(context.TODO(), node,
metav1.UpdateOptions{})
- return err
+ _, err = k.clientSet.CoreV1().Nodes().Update(context.TODO(),
node, metav1.UpdateOptions{})
+ return err
+ })
}
func (k *KubeCtl) TaintNodes(names []string, key, val string, effect
v1.TaintEffect) error {
@@ -1290,21 +1297,23 @@ func (k *KubeCtl) TaintNodes(names []string, key, val
string, effect v1.TaintEff
}
func (k *KubeCtl) UntaintNode(name, key string) error {
- node, err := k.clientSet.CoreV1().Nodes().Get(context.TODO(), name,
metav1.GetOptions{})
- if err != nil {
- return err
- }
+ return retry.RetryOnConflict(retry.DefaultBackoff, func() error {
+ node, err := k.clientSet.CoreV1().Nodes().Get(context.TODO(),
name, metav1.GetOptions{})
+ if err != nil {
+ return err
+ }
- newTaints := make([]v1.Taint, 0)
- for _, taint := range node.Spec.Taints {
- if taint.Key != key {
- newTaints = append(newTaints, taint)
+ newTaints := make([]v1.Taint, 0)
+ for _, taint := range node.Spec.Taints {
+ if taint.Key != key {
+ newTaints = append(newTaints, taint)
+ }
}
- }
- node.Spec.Taints = newTaints
- _, err = k.clientSet.CoreV1().Nodes().Update(context.TODO(), node,
metav1.UpdateOptions{})
- return err
+ node.Spec.Taints = newTaints
+ _, err = k.clientSet.CoreV1().Nodes().Update(context.TODO(),
node, metav1.UpdateOptions{})
+ return err
+ })
}
func (k *KubeCtl) UntaintNodes(names []string, key string) error {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]