Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 14 additions & 19 deletions test/e2e/minscale_readiness_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ func TestMinScale(t *testing.T) {
}

revName := latestRevisionName(t, clients, names.Config, "")
serviceName := serverlessServicesName(t, clients, revName)
serviceName := privateServiceName(t, clients, revName)

// Before becoming ready, observe minScale
t.Log("Waiting for revision to scale to minScale before becoming ready")
if err := waitForDesiredScale(t, clients, serviceName, gte(minScale)); err != nil {
if err := waitForDesiredScale(clients, serviceName, gte(minScale)); err != nil {
t.Fatalf("The revision %q did not scale >= %d before becoming ready: %v", revName, minScale, err)
}

Expand All @@ -79,7 +79,7 @@ func TestMinScale(t *testing.T) {

// Without a route, ignore minScale
t.Log("Waiting for revision to scale below minScale after becoming ready")
if err := waitForDesiredScale(t, clients, serviceName, lt(minScale)); err != nil {
if err := waitForDesiredScale(clients, serviceName, lt(minScale)); err != nil {
t.Fatalf("The revision %q did not scale < minScale after becoming ready: %v", revName, err)
}

Expand All @@ -99,7 +99,7 @@ func TestMinScale(t *testing.T) {

// With a route, observe minScale
t.Log("Waiting for revision to scale to minScale after creating route")
if err := waitForDesiredScale(t, clients, serviceName, gte(minScale)); err != nil {
if err := waitForDesiredScale(clients, serviceName, gte(minScale)); err != nil {
t.Fatalf("The revision %q did not scale >= %d after creating route: %v", revName, minScale, err)
}

Expand All @@ -109,11 +109,11 @@ func TestMinScale(t *testing.T) {
}

newRevName := latestRevisionName(t, clients, names.Config, revName)
newServiceName := serverlessServicesName(t, clients, newRevName)
newServiceName := privateServiceName(t, clients, newRevName)

// After update, observe minScale in new revision
t.Log("Waiting for latest revision to scale to minScale after update")
if err := waitForDesiredScale(t, clients, newServiceName, gte(minScale)); err != nil {
if err := waitForDesiredScale(clients, newServiceName, gte(minScale)); err != nil {
t.Fatalf("The revision %q did not scale >= %d after creating route: %v", newRevName, minScale, err)
}

Expand All @@ -127,13 +127,13 @@ func TestMinScale(t *testing.T) {

// After update, ensure new revision holds minScale
t.Log("Hold minScale after update")
if err := ensureDesiredScale(t, clients, newServiceName, gte(minScale)); err != nil {
if err := ensureDesiredScale(clients, newServiceName, gte(minScale)); err != nil {
t.Fatalf("The revision %q did not stay at scale >= %d after creating route: %v", newRevName, minScale, err)
}

// After update, ensure old revision ignores minScale
t.Log("Waiting for old revision to scale below minScale after being replaced")
if err := waitForDesiredScale(t, clients, serviceName, lt(minScale)); err != nil {
if err := waitForDesiredScale(clients, serviceName, lt(minScale)); err != nil {
t.Fatalf("The revision %q did not scale < minScale after being replaced: %v", revName, err)
}
}
Expand Down Expand Up @@ -184,7 +184,7 @@ func latestRevisionName(t *testing.T, clients *test.Clients, configName, oldRevN
return config.Status.LatestCreatedRevisionName
}

func serverlessServicesName(t *testing.T, clients *test.Clients, revisionName string) string {
func privateServiceName(t *testing.T, clients *test.Clients, revisionName string) string {
var privateServiceName string

if err := wait.PollImmediate(time.Second, 1*time.Minute, func() (bool, error) {
Expand All @@ -193,18 +193,15 @@ func serverlessServicesName(t *testing.T, clients *test.Clients, revisionName st
return false, nil
}
privateServiceName = sks.Status.PrivateServiceName
if privateServiceName == "" {
return false, nil
}
return true, nil
return privateServiceName != "", nil
}); err != nil {
t.Fatalf("Error retrieving sks %q: %v", revisionName, err)
}

return privateServiceName
}

func waitForDesiredScale(t *testing.T, clients *test.Clients, serviceName string, cond func(int) bool) error {
func waitForDesiredScale(clients *test.Clients, serviceName string, cond func(int) bool) error {
endpoints := clients.KubeClient.Kube.CoreV1().Endpoints(test.ServingNamespace)

return wait.PollImmediate(250*time.Millisecond, 1*time.Minute, func() (bool, error) {
Expand All @@ -217,10 +214,10 @@ func waitForDesiredScale(t *testing.T, clients *test.Clients, serviceName string

}

func ensureDesiredScale(t *testing.T, clients *test.Clients, serviceName string, cond func(int) bool) error {
func ensureDesiredScale(clients *test.Clients, serviceName string, cond func(int) bool) error {
endpoints := clients.KubeClient.Kube.CoreV1().Endpoints(test.ServingNamespace)

err := wait.PollImmediate(250*time.Millisecond, 5*time.Second, func() (bool, error) {
if err := wait.PollImmediate(250*time.Millisecond, 5*time.Second, func() (bool, error) {
endpoint, err := endpoints.Get(serviceName, metav1.GetOptions{})
if err != nil {
return false, nil
Expand All @@ -231,9 +228,7 @@ func ensureDesiredScale(t *testing.T, clients *test.Clients, serviceName string,
}

return false, nil
})

if err != wait.ErrWaitTimeout {
}); err != wait.ErrWaitTimeout {
return err
}

Expand Down