mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 19:23:40 +00:00
improve daemonset's retry creating failed daemon pods e2e test
This commit is contained in:
parent
ae1fc13aee
commit
9758a0fedd
@ -24,6 +24,7 @@ import (
|
|||||||
|
|
||||||
apps "k8s.io/api/apps/v1"
|
apps "k8s.io/api/apps/v1"
|
||||||
"k8s.io/api/core/v1"
|
"k8s.io/api/core/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
apierrs "k8s.io/apimachinery/pkg/api/errors"
|
apierrs "k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
@ -261,6 +262,10 @@ var _ = SIGDescribe("Daemon set [Serial]", func() {
|
|||||||
Expect(err).NotTo(HaveOccurred(), "error failing a daemon pod")
|
Expect(err).NotTo(HaveOccurred(), "error failing a daemon pod")
|
||||||
err = wait.PollImmediate(dsRetryPeriod, dsRetryTimeout, checkRunningOnAllNodes(f, ds))
|
err = wait.PollImmediate(dsRetryPeriod, dsRetryTimeout, checkRunningOnAllNodes(f, ds))
|
||||||
Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pod to revive")
|
Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pod to revive")
|
||||||
|
|
||||||
|
By("Wait for the failed daemon pod to be completely deleted.")
|
||||||
|
err = wait.PollImmediate(dsRetryPeriod, dsRetryTimeout, waitFailedDaemonPodDeleted(c, &pod))
|
||||||
|
Expect(err).NotTo(HaveOccurred(), "error waiting for the failed daemon pod to be completely deleted")
|
||||||
})
|
})
|
||||||
|
|
||||||
// This test should not be added to conformance. We will consider deprecating OnDelete when the
|
// This test should not be added to conformance. We will consider deprecating OnDelete when the
|
||||||
@ -466,6 +471,9 @@ func newDaemonSet(dsName, image string, label map[string]string) *apps.DaemonSet
|
|||||||
Name: dsName,
|
Name: dsName,
|
||||||
},
|
},
|
||||||
Spec: apps.DaemonSetSpec{
|
Spec: apps.DaemonSetSpec{
|
||||||
|
Selector: &metav1.LabelSelector{
|
||||||
|
MatchLabels: label,
|
||||||
|
},
|
||||||
Template: v1.PodTemplateSpec{
|
Template: v1.PodTemplateSpec{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Labels: label,
|
Labels: label,
|
||||||
@ -857,3 +865,15 @@ func curHistory(historyList *apps.ControllerRevisionList, ds *apps.DaemonSet) *a
|
|||||||
Expect(curHistory).NotTo(BeNil())
|
Expect(curHistory).NotTo(BeNil())
|
||||||
return curHistory
|
return curHistory
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func waitFailedDaemonPodDeleted(c clientset.Interface, pod *v1.Pod) func() (bool, error) {
|
||||||
|
return func() (bool, error) {
|
||||||
|
if _, err := c.CoreV1().Pods(pod.Namespace).Get(pod.Name, metav1.GetOptions{}); err != nil {
|
||||||
|
if errors.IsNotFound(err) {
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
return false, fmt.Errorf("failed to get failed daemon pod %q: %v", pod.Name, err)
|
||||||
|
}
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user