From da89245e754e332039e9347b275eaaf93194819d Mon Sep 17 00:00:00 2001 From: Joseph Burnett Date: Wed, 3 Oct 2018 14:01:41 -0400 Subject: [PATCH 1/3] Do not modify config-map. --- test/e2e/autoscale_test.go | 44 +++++++++++--------------------------- test/kube_checks.go | 3 ++- 2 files changed, 14 insertions(+), 33 deletions(-) diff --git a/test/e2e/autoscale_test.go b/test/e2e/autoscale_test.go index 4fea4c240618..33eaf59c94b4 100644 --- a/test/e2e/autoscale_test.go +++ b/test/e2e/autoscale_test.go @@ -40,8 +40,7 @@ const ( ) var ( - initialScaleToZeroThreshold string - initialScaleToZeroGracePeriod string + scaleToZeroThreshold time.Duration ) func isDeploymentScaledUp() func(d *v1beta1.Deployment) (bool, error) { @@ -118,45 +117,23 @@ func generateTraffic(clients *test.Clients, logger *logging.BaseLogger, concurre return nil } -func getAutoscalerConfigMap(clients *test.Clients) (*v1.ConfigMap, error) { - return test.GetConfigMap(clients.KubeClient).Get("config-autoscaler", metav1.GetOptions{}) -} - -func setScaleToZeroThreshold(clients *test.Clients, threshold string, gracePeriod string) error { - configMap, err := getAutoscalerConfigMap(clients) - if err != nil { - return err - } - configMap.Data["scale-to-zero-threshold"] = threshold - configMap.Data["scale-to-zero-grace-period"] = gracePeriod - _, err = test.GetConfigMap(clients.KubeClient).Update(configMap) - return err -} - func setup(t *testing.T, logger *logging.BaseLogger) *test.Clients { clients := Setup(t) - configMap, err := getAutoscalerConfigMap(clients) + configMap, err := test.GetConfigMap(clients.KubeClient).Get("config-autoscaler", metav1.GetOptions{}) if err != nil { - logger.Infof("Unable to retrieve the autoscale configMap. Assuming a ScaleToZero value of '5m'. %v", err) - initialScaleToZeroThreshold = "5m" - initialScaleToZeroGracePeriod = "2m" - } else { - initialScaleToZeroThreshold = configMap.Data["scale-to-zero-threshold"] - initialScaleToZeroGracePeriod = configMap.Data["scale-to-zero-grace-period"] + t.Fatalf("Unable to get autoscaler config map: %v", err) } - - err = setScaleToZeroThreshold(clients, "1m", "30s") + threshold, err := time.ParseDuration(configMap.Data["scale-to-zero-threshold"]) if err != nil { - t.Fatalf(`Unable to set ScaleToZeroThreshold to '1m'. This will - cause the test to time out. Failing fast instead. %v`, err) + t.Fatalf("Unable to parse scale-to-zero-threshold as duration: %v", err) } + scaleToZeroThreshold = threshold return clients } func tearDown(clients *test.Clients, names test.ResourceNames, logger *logging.BaseLogger) { - setScaleToZeroThreshold(clients, initialScaleToZeroThreshold, initialScaleToZeroGracePeriod) TearDown(clients, names, logger) } @@ -232,7 +209,8 @@ func TestAutoscaleUpDownUp(t *testing.T) { clients.KubeClient, deploymentName, isDeploymentScaledUp(), - "DeploymentIsScaledUp") + "DeploymentIsScaledUp", + 2*time.Minute) if err != nil { logger.Fatalf(`Unable to observe the Deployment named %s scaling up. %s`, deploymentName, err) @@ -249,7 +227,8 @@ func TestAutoscaleUpDownUp(t *testing.T) { clients.KubeClient, deploymentName, isDeploymentScaledToZero(), - "DeploymentScaledToZero") + "DeploymentScaledToZero", + scaleToZeroThreshold+2*time.Minute) if err != nil { logger.Fatalf(`Unable to observe the Deployment named %s scaling down. %s`, deploymentName, err) @@ -283,7 +262,8 @@ func TestAutoscaleUpDownUp(t *testing.T) { clients.KubeClient, deploymentName, isDeploymentScaledUp(), - "DeploymentScaledUp") + "DeploymentScaledUp", + 2*time.Minute) if err != nil { logger.Fatalf(`Unable to observe the Deployment named %s scaling up. %s`, deploymentName, err) diff --git a/test/kube_checks.go b/test/kube_checks.go index 1c8e7f0f5e00..62eeb25b1d96 100644 --- a/test/kube_checks.go +++ b/test/kube_checks.go @@ -22,6 +22,7 @@ package test import ( "context" "fmt" + "time" pkgTest "github.com/knative/pkg/test" "go.opencensus.io/trace" @@ -35,7 +36,7 @@ import ( // from client every interval until inState returns `true` indicating it // is done, returns an error or timeout. desc will be used to name the metric // that is emitted to track how long it took for name to get into the state checked by inState. -func WaitForDeploymentState(client *pkgTest.KubeClient, name string, inState func(d *apiv1beta1.Deployment) (bool, error), desc string) error { +func WaitForDeploymentState(client *pkgTest.KubeClient, name string, inState func(d *apiv1beta1.Deployment) (bool, error), desc string, timeout time.Duration) error { d := client.Kube.ExtensionsV1beta1().Deployments(ServingNamespace) metricName := fmt.Sprintf("WaitForDeploymentState/%s/%s", name, desc) _, span := trace.StartSpan(context.Background(), metricName) From 68a547247f8b877fab9efa9b110cc3b135b640f9 Mon Sep 17 00:00:00 2001 From: Joseph Burnett Date: Thu, 4 Oct 2018 10:35:47 -0700 Subject: [PATCH 2/3] Remove comment about changing config map. --- test/e2e/autoscale_test.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/e2e/autoscale_test.go b/test/e2e/autoscale_test.go index 33eaf59c94b4..72dfa6421177 100644 --- a/test/e2e/autoscale_test.go +++ b/test/e2e/autoscale_test.go @@ -219,9 +219,6 @@ func TestAutoscaleUpDownUp(t *testing.T) { logger.Infof(`The autoscaler successfully scales down when devoid of traffic.`) - logger.Infof(`Manually setting ScaleToZeroThreshold to '1m' to facilitate - faster testing.`) - logger.Infof("Waiting for scale to zero") err = test.WaitForDeploymentState( clients.KubeClient, From c0212c0acb124a92e0bccaded82f4c9704989bc4 Mon Sep 17 00:00:00 2001 From: Joseph Burnett Date: Thu, 4 Oct 2018 13:51:50 -0400 Subject: [PATCH 3/3] Remove unnecessary variable. --- test/e2e/autoscale_test.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/e2e/autoscale_test.go b/test/e2e/autoscale_test.go index 72dfa6421177..54b51291641a 100644 --- a/test/e2e/autoscale_test.go +++ b/test/e2e/autoscale_test.go @@ -124,11 +124,10 @@ func setup(t *testing.T, logger *logging.BaseLogger) *test.Clients { if err != nil { t.Fatalf("Unable to get autoscaler config map: %v", err) } - threshold, err := time.ParseDuration(configMap.Data["scale-to-zero-threshold"]) + scaleToZeroThreshold, err = time.ParseDuration(configMap.Data["scale-to-zero-threshold"]) if err != nil { t.Fatalf("Unable to parse scale-to-zero-threshold as duration: %v", err) } - scaleToZeroThreshold = threshold return clients }