From 00c0a684c39e4c8fcbcd46d7e7090b72d6514253 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Wed, 11 Oct 2023 16:32:41 +0000 Subject: [PATCH 1/8] refactor(scaletest/templates/scaltest/runner/scripts): extract coder_pods and namespace functions --- .../templates/scaletest-runner/scripts/lib.sh | 34 +++++++++++++------ 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/scaletest/templates/scaletest-runner/scripts/lib.sh b/scaletest/templates/scaletest-runner/scripts/lib.sh index 884e0a3b91eff..4b47316e3cf41 100644 --- a/scaletest/templates/scaletest-runner/scripts/lib.sh +++ b/scaletest/templates/scaletest-runner/scripts/lib.sh @@ -247,6 +247,20 @@ set_appearance() { "${CODER_URL}/api/v2/appearance" } +namespace() { + local ns + ns=$( Date: Thu, 12 Oct 2023 10:09:07 +0100 Subject: [PATCH 2/8] lib.sh: add annotate_self function --- scaletest/templates/scaletest-runner/scripts/lib.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/scaletest/templates/scaletest-runner/scripts/lib.sh b/scaletest/templates/scaletest-runner/scripts/lib.sh index 4b47316e3cf41..56f60a5d8c63d 100644 --- a/scaletest/templates/scaletest-runner/scripts/lib.sh +++ b/scaletest/templates/scaletest-runner/scripts/lib.sh @@ -295,3 +295,14 @@ fetch_coder_full() { maybedryrun "${DRY_RUN}" chmod +x "${SCALETEST_CODER_BINARY}" log "Full Coder binary downloaded to ${SCALETEST_CODER_BINARY}" } + +# set_status_annotation annotates the currently running pod with the key +# com.coder.scaletest.status. It will overwrite the previous status. +set_status_annotation() { + if [[ $# -ne 1 ]]; then + log "must specify an annotation value" + exit 1 + else + maybedryrun "${DRY_RUN}" kubectl --namespace "$(namespace)" annotate pod "$(hostname)" "com.coder.scaletest.status=$2" --overwrite + fi +} From e316ea54d97ab708ee3c77fd97b2249786b7a394 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Thu, 12 Oct 2023 10:28:20 +0100 Subject: [PATCH 3/8] set status annotation during scaletest --- scaletest/templates/scaletest-runner/scripts/prepare.sh | 1 + scaletest/templates/scaletest-runner/scripts/run.sh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/scaletest/templates/scaletest-runner/scripts/prepare.sh b/scaletest/templates/scaletest-runner/scripts/prepare.sh index e7e6c4d2a292a..c189d538254be 100755 --- a/scaletest/templates/scaletest-runner/scripts/prepare.sh +++ b/scaletest/templates/scaletest-runner/scripts/prepare.sh @@ -11,6 +11,7 @@ mkdir -p "${SCALETEST_RESULTS_DIR}" log "Preparing scaletest workspace environment..." set_status Preparing +set_status_annotation preparing log "Compressing previous run logs (if applicable)..." mkdir -p "${HOME}/archive" diff --git a/scaletest/templates/scaletest-runner/scripts/run.sh b/scaletest/templates/scaletest-runner/scripts/run.sh index 2925fdb867ae5..f9b3897ee94d6 100755 --- a/scaletest/templates/scaletest-runner/scripts/run.sh +++ b/scaletest/templates/scaletest-runner/scripts/run.sh @@ -11,6 +11,7 @@ export SCALETEST_PARAM_LOAD_SCENARIOS=("${scaletest_load_scenarios[@]}") log "Running scaletest..." set_status Running +set_status_annotation running start_phase "Creating workspaces" coder exp scaletest create-workspaces \ @@ -63,3 +64,4 @@ done log "Scaletest complete!" set_status Complete +set_status_annotation complete From c19a0f5676d87a0c85d14d5414f4a77b01bd91e0 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Thu, 12 Oct 2023 10:30:08 +0100 Subject: [PATCH 4/8] fixup! set status annotation during scaletest --- scaletest/templates/scaletest-runner/scripts/run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scaletest/templates/scaletest-runner/scripts/run.sh b/scaletest/templates/scaletest-runner/scripts/run.sh index f9b3897ee94d6..6c886640807b7 100755 --- a/scaletest/templates/scaletest-runner/scripts/run.sh +++ b/scaletest/templates/scaletest-runner/scripts/run.sh @@ -64,4 +64,4 @@ done log "Scaletest complete!" set_status Complete -set_status_annotation complete +set_status_annotation completed From 8ed96d565a8185c42c2428c1d9f07aa049d3feaa Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Thu, 12 Oct 2023 13:08:13 +0100 Subject: [PATCH 5/8] address PR feedback --- .../templates/scaletest-runner/scripts/lib.sh | 29 +++++++++---------- .../scaletest-runner/scripts/prepare.sh | 1 - .../templates/scaletest-runner/scripts/run.sh | 2 -- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/scaletest/templates/scaletest-runner/scripts/lib.sh b/scaletest/templates/scaletest-runner/scripts/lib.sh index 56f60a5d8c63d..fbcf8c542b47f 100644 --- a/scaletest/templates/scaletest-runner/scripts/lib.sh +++ b/scaletest/templates/scaletest-runner/scripts/lib.sh @@ -40,7 +40,7 @@ show_json() { set_status() { dry_run= if [[ ${DRY_RUN} == 1 ]]; then - dry_run=" (dry-ryn)" + dry_run=" (dry-run)" fi prev_status=$(get_status) if [[ ${prev_status} != *"Not started"* ]]; then @@ -49,6 +49,9 @@ set_status() { echo "$(date -Ins) ${*}${dry_run}" >>"${SCALETEST_STATE_DIR}/status" annotate_grafana "status" "Status: ${*}" + + status_lower=$(tr '[:upper:]' '[:lower:]' <<<"${*}") + set_pod_status_annotation "${status_lower}" } lock_status() { chmod 0440 "${SCALETEST_STATE_DIR}/status" @@ -248,17 +251,13 @@ set_appearance() { } namespace() { - local ns - ns=$( Date: Thu, 12 Oct 2023 13:27:38 +0100 Subject: [PATCH 6/8] fixup! address PR feedback --- scaletest/templates/scaletest-runner/scripts/lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scaletest/templates/scaletest-runner/scripts/lib.sh b/scaletest/templates/scaletest-runner/scripts/lib.sh index fbcf8c542b47f..b543aadba1db1 100644 --- a/scaletest/templates/scaletest-runner/scripts/lib.sh +++ b/scaletest/templates/scaletest-runner/scripts/lib.sh @@ -302,6 +302,6 @@ set_pod_status_annotation() { log "must specify an annotation value" return else - maybedryrun "${DRY_RUN}" kubectl --namespace "$(namespace)" annotate pod "$(hostname)" "com.coder.scaletest.status=$2" --overwrite + maybedryrun "${DRY_RUN}" kubectl --namespace "$(namespace)" annotate pod "$(hostname)" "com.coder.scaletest.status=$1" --overwrite fi } From 1b4c098f652d4ed2b5fee4ee39e9c3467536310d Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Thu, 12 Oct 2023 13:28:26 +0100 Subject: [PATCH 7/8] sync changes from existing template --- scaletest/templates/scaletest-runner/scripts/run.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scaletest/templates/scaletest-runner/scripts/run.sh b/scaletest/templates/scaletest-runner/scripts/run.sh index 2925fdb867ae5..bba1cf2f79f23 100755 --- a/scaletest/templates/scaletest-runner/scripts/run.sh +++ b/scaletest/templates/scaletest-runner/scripts/run.sh @@ -17,6 +17,7 @@ coder exp scaletest create-workspaces \ --count "${SCALETEST_PARAM_NUM_WORKSPACES}" \ --template "${SCALETEST_PARAM_TEMPLATE}" \ --concurrency "${SCALETEST_PARAM_CREATE_CONCURRENCY}" \ + --timeout 5h \ --job-timeout 5h \ --no-cleanup \ --output json:"${SCALETEST_RESULTS_DIR}/create-workspaces.json" From 785be858bb6b6cf5a6cee6b902ddf6d07b4799f0 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Thu, 12 Oct 2023 14:16:42 +0100 Subject: [PATCH 8/8] return 1 Co-authored-by: Mathias Fredriksson --- scaletest/templates/scaletest-runner/scripts/lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scaletest/templates/scaletest-runner/scripts/lib.sh b/scaletest/templates/scaletest-runner/scripts/lib.sh index b543aadba1db1..f70b92fcdd6b1 100644 --- a/scaletest/templates/scaletest-runner/scripts/lib.sh +++ b/scaletest/templates/scaletest-runner/scripts/lib.sh @@ -270,7 +270,7 @@ fetch_coder_full() { ns=$(namespace) if [[ -z "${ns}" ]]; then log "Could not determine namespace!" - return + return 1 fi log "Namespace from serviceaccount token is ${ns}" pods=$(coder_pods)