mirror of https://github.com/k3s-io/k3s
Merge pull request #5193 from bprashanth/e2e_stop_controller
Properly reap replication controllers in e2e testpull/6/head
commit
6de2e615cb
|
@ -26,8 +26,9 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
interval = time.Second * 3
|
||||
timeout = time.Minute * 5
|
||||
shortInterval = time.Millisecond * 100
|
||||
interval = time.Second * 3
|
||||
timeout = time.Minute * 5
|
||||
)
|
||||
|
||||
// A Reaper handles terminating an object as gracefully as possible.
|
||||
|
@ -69,10 +70,12 @@ func (reaper *ReplicationControllerReaper) Stop(namespace, name string) (string,
|
|||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
controller.Spec.Replicas = 0
|
||||
// TODO: do retry on 409 errors here?
|
||||
if _, err := rc.Update(controller); err != nil {
|
||||
resizer, err := ResizerFor("ReplicationController", *reaper)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
cond := ResizeCondition(resizer, &ResizePrecondition{-1, ""}, namespace, name, 0)
|
||||
if err = wait.Poll(shortInterval, reaper.timeout, cond); err != nil {
|
||||
return "", err
|
||||
}
|
||||
if err := wait.Poll(reaper.pollInterval, reaper.timeout,
|
||||
|
|
|
@ -43,10 +43,10 @@ func TestReplicationControllerStop(t *testing.T) {
|
|||
if s != expected {
|
||||
t.Errorf("expected %s, got %s", expected, s)
|
||||
}
|
||||
if len(fake.Actions) != 4 {
|
||||
if len(fake.Actions) != 5 {
|
||||
t.Errorf("unexpected actions: %v, expected 4 actions (get, update, get, delete)", fake.Actions)
|
||||
}
|
||||
for i, action := range []string{"get", "update", "get", "delete"} {
|
||||
for i, action := range []string{"get", "get", "update", "get", "delete"} {
|
||||
if fake.Actions[i].Action != action+"-controller" {
|
||||
t.Errorf("unexpected action: %v, expected %s-controller", fake.Actions[i], action)
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ import (
|
|||
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
|
@ -123,13 +124,13 @@ var _ = Describe("Networking", func() {
|
|||
defer func() {
|
||||
defer GinkgoRecover()
|
||||
By("Cleaning up the replication controller")
|
||||
rc.Spec.Replicas = 0
|
||||
rc, err = c.ReplicationControllers(ns).Update(rc)
|
||||
// Resize the replication controller to zero to get rid of pods.
|
||||
rcReaper, err := kubectl.ReaperFor("ReplicationController", c)
|
||||
if err != nil {
|
||||
Fail(fmt.Sprintf("unable to modify replica count for rc %v: %v", rc.Name, err))
|
||||
Fail(fmt.Sprintf("unable to stop rc %v: %v", rc.Name, err))
|
||||
}
|
||||
if err = c.ReplicationControllers(ns).Delete(rc.Name); err != nil {
|
||||
Fail(fmt.Sprintf("unable to delete rc %v: %v", rc.Name, err))
|
||||
if _, err = rcReaper.Stop(ns, rc.Name); err != nil {
|
||||
Fail(fmt.Sprintf("unable to stop rc %v: %v", rc.Name, err))
|
||||
}
|
||||
}()
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ import (
|
|||
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
||||
|
||||
|
@ -97,14 +98,13 @@ func ServeImageOrFail(c *client.Client, test string, image string) {
|
|||
// Cleanup the replication controller when we are done.
|
||||
defer func() {
|
||||
// Resize the replication controller to zero to get rid of pods.
|
||||
controller.Spec.Replicas = 0
|
||||
if _, err = c.ReplicationControllers(ns).Update(controller); err != nil {
|
||||
Logf("Failed to resize replication controller %s to zero: %v", name, err)
|
||||
By("Cleaning up the replication controller")
|
||||
rcReaper, err := kubectl.ReaperFor("ReplicationController", c)
|
||||
if err != nil {
|
||||
Logf("Failed to cleanup replication controller %v: %v.", controller.Name, err)
|
||||
}
|
||||
|
||||
// Delete the replication controller.
|
||||
if err = c.ReplicationControllers(ns).Delete(name); err != nil {
|
||||
Logf("Failed to delete replication controller %s: %v", name, err)
|
||||
if _, err = rcReaper.Stop(ns, controller.Name); err != nil {
|
||||
Logf("Failed to stop replication controller %v: %v.", controller.Name, err)
|
||||
}
|
||||
}()
|
||||
|
||||
|
|
Loading…
Reference in New Issue