From cbc8ccc9ac7a65d1a7ddfa17bb0b11d622a14771 Mon Sep 17 00:00:00 2001 From: Mads Hartmann Date: Fri, 18 Feb 2022 12:31:49 +0000 Subject: [PATCH 1/3] Script for basic load testing of VMs preview envs --- dev/preview/test/load-test.sh | 71 +++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 dev/preview/test/load-test.sh diff --git a/dev/preview/test/load-test.sh b/dev/preview/test/load-test.sh new file mode 100755 index 00000000000000..aaba500cbc82ef --- /dev/null +++ b/dev/preview/test/load-test.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +# +# This script makes it possible to run load tests against VM-based preview +# environments. +# +# Usage: +# ./dev/preview/test/load-test.sh +# ./dev/preview/test/load-test.sh --base-branch-name my-load-test-base-branch-name --start 1 --end 5 +# + +set -euo pipefail + +function log { + echo "[$(date)] $*" +} + +START=1 +END=15 +BASE_BRANCH_NAME="vm-load-test" + +opts=$(getopt \ + --longoptions "start:,end:,base-branch-name:" \ + --name "$(basename "$0")" \ + --options "" \ + -- "$@" +) + +eval set --$opts + +while [[ $# -gt 0 ]]; do + case "$1" in + --start) START=$2 ; shift 2 ;; + --end) END=$2 ; shift 2 ;; + --base-branch-name) BASE_BRANCH_NAME=$2 ; shift 2 ;; + *) break ;; + esac +done + +while true; do + read -rp " +Are you sure you want to run the load test with the following configuration? + +START=${START} +END=${END} +BASE_BRANCH_NAME=${BASE_BRANCH_NAME} + +y/n: " yn + case "$yn" in + [Yy]* ) break;; + [Nn]* ) echo "Aborting load test" ; exit 0;; + * ) echo "Please answer y/n";; + esac +done + +log "Creating base branch ${BASE_BRANCH_NAME}" +git checkout -b "${BASE_BRANCH_NAME}" +git commit --allow-empty -m "Prepare load test" -m "/werft with-vm=true" + +for number in $(seq "${START}" "${END}"); do + branch="${BASE_BRANCH_NAME}-${number}" + + log "Creating and pushing branch ${branch}" + git checkout -b "${branch}" + git push -u origin "${branch}" + + log "Back to base branch ${BASE_BRANCH_NAME}" + git checkout "${BASE_BRANCH_NAME}" + + log "Sleeping 30 seconds" + sleep 30 +done From 8ac070034f6193d7413a735ef3f11a3660465f09 Mon Sep 17 00:00:00 2001 From: Mads Hartmann Date: Wed, 23 Feb 2022 15:07:58 +0000 Subject: [PATCH 2/3] Shellcheck: quote variable --- dev/preview/test/load-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/preview/test/load-test.sh b/dev/preview/test/load-test.sh index aaba500cbc82ef..abb790fe70b968 100755 --- a/dev/preview/test/load-test.sh +++ b/dev/preview/test/load-test.sh @@ -25,7 +25,7 @@ opts=$(getopt \ -- "$@" ) -eval set --$opts +eval set -- "$opts" while [[ $# -gt 0 ]]; do case "$1" in From c62a0d893c9206fb2c5a82d417efb38e77457658 Mon Sep 17 00:00:00 2001 From: Mads Hartmann Date: Wed, 23 Feb 2022 15:08:51 +0000 Subject: [PATCH 3/3] Add Platform as owners of dev/preview --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 724812ddbcaadd..c731e5e3876047 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -67,6 +67,7 @@ /components/ws-proxy @gitpod-io/engineering-workspace /dev/gpctl @gitpod-io/engineering-workspace /dev/loadgen @gitpod-io/engineering-workspace +/dev/preview @gitpod-io/platform /operations/observability/mixins @gitpod-io/platform /operations/observability/mixins/IDE @gitpod-io/engineering-ide /operations/observability/mixins/meta @gitpod-io/engineering-webapp