mirror of
https://github.com/rancher/rke.git
synced 2025-08-29 03:40:55 +00:00
Ensure failed addon job is deleted before recreating
This commit is contained in:
parent
4844d114b5
commit
74b81a8766
19
k8s/job.go
19
k8s/job.go
@ -2,7 +2,6 @@ package k8s
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"k8s.io/api/batch/v1"
|
"k8s.io/api/batch/v1"
|
||||||
@ -43,7 +42,10 @@ func ApplyK8sSystemJob(jobYaml, kubeConfigPath string, k8sWrapTransport WrapTran
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
} else { // ignoring NotFound errors
|
} else { // ignoring NotFound errors
|
||||||
time.Sleep(time.Second * 5)
|
//Jobs take longer to delete than to complete, 2 x the timeout
|
||||||
|
if err := retryToWithTimeout(ensureJobDeleted, k8sClient, job, timeout*2); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,6 +74,19 @@ func ensureJobCompleted(k8sClient *kubernetes.Clientset, j interface{}) error {
|
|||||||
return fmt.Errorf("Failed to get job complete status: %v", err)
|
return fmt.Errorf("Failed to get job complete status: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ensureJobDeleted(k8sClient *kubernetes.Clientset, j interface{}) error {
|
||||||
|
job := j.(v1.Job)
|
||||||
|
_, err := k8sClient.BatchV1().Jobs(job.Namespace).Get(job.Name, metav1.GetOptions{})
|
||||||
|
if err != nil {
|
||||||
|
if apierrors.IsNotFound(err) {
|
||||||
|
// this is the "true" return of the function
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return fmt.Errorf("[k8s] Job [%s] is not deleted", job.Name)
|
||||||
|
}
|
||||||
|
|
||||||
func deleteK8sJob(k8sClient *kubernetes.Clientset, name, namespace string) error {
|
func deleteK8sJob(k8sClient *kubernetes.Clientset, name, namespace string) error {
|
||||||
deletePolicy := metav1.DeletePropagationForeground
|
deletePolicy := metav1.DeletePropagationForeground
|
||||||
return k8sClient.BatchV1().Jobs(namespace).Delete(
|
return k8sClient.BatchV1().Jobs(namespace).Delete(
|
||||||
|
Loading…
Reference in New Issue
Block a user