Files
virtual-kubelet/test/e2e/node_test.go
Brian Goff 99c07d487e Fix node create after delete
node.ResourceVersion must not be set when creating a node.
This issue prevents vk from resolving issues after the vk node instance
has been deleted (for whatever reason).
2019-04-03 22:57:11 -07:00

52 lines
947 B
Go

// +build e2e
package e2e
import (
"testing"
"time"
"gotest.tools/assert"
watchapi "k8s.io/apimachinery/pkg/watch"
)
// TestNodeCreateAfterDelete makes sure that a node is automatically recreated
// if it is deleted while VK is running.
func TestNodeCreateAfterDelete(t *testing.T) {
chErr := make(chan error, 1)
chDone := make(chan struct{})
defer close(chDone)
go func() {
var deleted bool
wait := func(e watchapi.Event) (bool, error) {
select {
case <-chDone:
return true, nil
default:
}
if deleted {
return f.WaitUntilNodeAdded(e)
}
if e.Type == watchapi.Deleted {
deleted = true
}
return false, nil
}
chErr <- f.WaitUntilNodeCondition(wait)
}()
assert.NilError(t, f.DeleteNode())
timer := time.NewTimer(60 * time.Second)
defer timer.Stop()
select {
case <-timer.C:
t.Fatal("timeout waiting for node to be recreated")
case err := <-chErr:
assert.NilError(t, err)
}
}