Skip to content

Commit

Permalink
Merge branch 'main' into slash-test-standalone
Browse files Browse the repository at this point in the history
  • Loading branch information
sandrampeter authored Jul 6, 2022
2 parents e118936 + d257763 commit 1034e4b
Show file tree
Hide file tree
Showing 5 changed files with 224 additions and 18 deletions.
8 changes: 2 additions & 6 deletions tests/private-active-active/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ k6_path=""
k6_tests_dir=""
bastion_key_file=""
skip_init=""
bind_to_localhost=""

Help()
{
Expand All @@ -17,7 +16,6 @@ Help()
echo "k (required) The path to the k6 binary."
echo "t (required) The path to the tfe-load-test repository."
echo "s (optional) Skip the admin user initialization and tfe token retrieval (This is useful for secondary / repeated test runs)."
echo "l (optional) Bind the test proxy to localhost instead of the detected ip address (This is useful when testing from within a docker container)."
echo
}

Expand All @@ -34,8 +32,6 @@ while getopts ":hk:t:b:sl" option; do
k6_tests_dir=$OPTARG;;
s) # Skip the admin user boostrapping process?
skip_init=1;;
l) # Bind test proxy to localhost
bind_to_localhost=1;;
\?) # Invalid option
echo "Error: Invalid option"
exit;;
Expand All @@ -59,7 +55,6 @@ Executing tests with the following configuration:
k6_path=$k6_path
k6_tests_dir=$k6_tests_dir
skip_init=$skip_init
bind_to_localhost=$bind_to_localhost
"

SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]:-$0}"; )" &> /dev/null && pwd 2> /dev/null; )";
Expand Down Expand Up @@ -104,7 +99,6 @@ if [[ -z "$skip_init" ]]; then
--proxy socks5://localhost:5000 \
"$admin_url"?token="$iact_token")

echo "$response"
tfe_token=$(echo "$response" | jq --raw-output '.token')
rm -f payload.json

Expand All @@ -114,6 +108,8 @@ if [[ -z "$skip_init" ]]; then
export [email protected]
export http_proxy=socks5://localhost:5000/
export https_proxy=socks5://localhost:5000/" > .env.sh
echo "Sleeping for 3 minutes to ensure that both instances are ready."
sleep 180
fi

source .env.sh
Expand Down
8 changes: 2 additions & 6 deletions tests/private-tcp-active-active/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ k6_path=""
k6_tests_dir=""
bastion_key_file=""
skip_init=""
bind_to_localhost=""

Help()
{
Expand All @@ -17,7 +16,6 @@ Help()
echo "k (required) The path to the k6 binary."
echo "t (required) The path to the tfe-load-test repository."
echo "s (optional) Skip the admin user initialization and tfe token retrieval (This is useful for secondary / repeated test runs)."
echo "l (optional) Bind the test proxy to localhost instead of the detected ip address (This is useful when testing from within a docker container)."
echo
}

Expand All @@ -34,8 +32,6 @@ while getopts ":hk:t:b:sl" option; do
k6_tests_dir=$OPTARG;;
s) # Skip the admin user boostrapping process?
skip_init=1;;
l) # Bind test proxy to localhost
bind_to_localhost=1;;
\?) # Invalid option
echo "Error: Invalid option"
exit;;
Expand All @@ -59,7 +55,6 @@ Executing tests with the following configuration:
k6_path=$k6_path
k6_tests_dir=$k6_tests_dir
skip_init=$skip_init
bind_to_localhost=$bind_to_localhost
"

SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]:-$0}"; )" &> /dev/null && pwd 2> /dev/null; )";
Expand Down Expand Up @@ -113,7 +108,6 @@ if [[ -z "$skip_init" ]]; then
--proxy socks5://localhost:5000 \
"$admin_url"?token="$iact_token")

echo "$response"
tfe_token=$(echo "$response" | jq --raw-output '.token')
rm -f payload.json

Expand All @@ -124,6 +118,8 @@ if [[ -z "$skip_init" ]]; then
export [email protected]
export http_proxy=socks5://localhost:5000/
export https_proxy=socks5://localhost:5000/" > .env.sh
echo "Sleeping for 3 minutes to ensure that both instances are ready."
sleep 180
fi

source .env.sh
Expand Down
10 changes: 4 additions & 6 deletions tests/public-active-active/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ k6_path=""
k6_tests_dir=""
bastion_key_file=""
skip_init=""
bind_to_localhost=""

Help()
{
Expand Down Expand Up @@ -56,7 +55,6 @@ Executing tests with the following configuration:
k6_path=$k6_path
k6_tests_dir=$k6_tests_dir
skip_init=$skip_init
bind_to_localhost=$bind_to_localhost
"

SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]:-$0}"; )" &> /dev/null && pwd 2> /dev/null; )";
Expand Down Expand Up @@ -93,16 +91,16 @@ if [[ -z "$skip_init" ]]; then
--request POST \
"$admin_url"?token="$iact_token")

echo "$response"
tfe_token=$(echo "$response" | jq --raw-output '.token')
rm -f payload.json

echo "export K6_PATHNAME=$k6_path
export TFE_URL=$tfe_url
export TFE_API_TOKEN=$tfe_token
export [email protected]
export http_proxy=socks5://localhost:5000/
export https_proxy=socks5://localhost:5000/" > .env.sh
export [email protected]" > .env.sh
echo "Sleeping for 3 minutes to ensure that both instances are ready."

sleep 180
fi

source .env.sh
Expand Down
108 changes: 108 additions & 0 deletions tests/standalone-external-rhel8-worker/run-tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
#!/bin/bash

k6_path=""
k6_tests_dir=""
bastion_key_file=""
skip_init=""

Help()
{
# Display Help
echo "This script bootstraps the k6 / tfe-load-test environment and executes a smoke-test against an active TFE instance deployed with the terraform-azure-terraform-enterprise module."
echo
echo "Syntax: run-tests.sh [-h|k|t|s]"
echo "options:"
echo "h Print this Help."
echo "k (required) The path to the k6 binary."
echo "t (required) The path to the tfe-load-test repository."
echo "s (optional) Skip the admin user initialization and tfe token retrieval (This is useful for secondary / repeated test runs)."
echo
}

# Get the options
while getopts ":hk:t:b:sl" option; do
case $option in
h) # display Help
Help
exit;;
k) # Enter a path to the k6 binary
k6_path=$OPTARG;;

t) # Enter a path to the tfe-load-test repo
k6_tests_dir=$OPTARG;;
s) # Skip the admin user boostrapping process?
skip_init=1;;
\?) # Invalid option
echo "Error: Invalid option"
exit;;
esac
done

if [[ -z "$k6_path" ]]; then
echo "k6 path missing. Please use the -k option."
Help
exit 1
fi

if [[ -z "$k6_tests_dir" ]]; then
echo "The tfe-load-test repository path missing. Please use the -t option."
Help
exit 1
fi

echo "
Executing tests with the following configuration:
k6_path=$k6_path
k6_tests_dir=$k6_tests_dir
skip_init=$skip_init
"

SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]:-$0}"; )" &> /dev/null && pwd 2> /dev/null; )";

cd $SCRIPT_DIR
health_check_url=$(terraform output -no-color -raw health_check_url)
echo "health check url: $health_check_url"

if [[ -z "$skip_init" ]]; then
while ! curl \
-sfS --max-time 5 \
$health_check_url; \
do sleep 5; done
echo " : TFE is healthy and listening."

tfe_url=$(terraform output -no-color -raw tfe_url)
echo "tfe url: $tfe_url"
iact_url=$(terraform output -no-color -raw iact_url)
echo "iact url: $iact_url"
echo "Fetching iact token.."
iact_token=$(curl --fail --retry 5 "$iact_url")
admin_url=`terraform output -no-color -raw initial_admin_user_url`
echo "admin url: $admin_url"

TFE_USERNAME="test$(date +%s)"
TFE_PASSWORD=`openssl rand -base64 32`
echo "{\"username\": \"$TFE_USERNAME\", \"email\": \"[email protected]\", \"password\": \"$TFE_PASSWORD\"}" \ > ./payload.json

response=$(\
curl \
--retry 5 \
--header 'Content-Type: application/json' \
--data @./payload.json \
--request POST \
"$admin_url"?token="$iact_token")

tfe_token=$(echo "$response" | jq --raw-output '.token')
rm -f payload.json

echo "export K6_PATHNAME=$k6_path
export TFE_URL=$tfe_url
export TFE_API_TOKEN=$tfe_token
export [email protected]" > .env.sh
echo "Sleeping for 3 minutes to ensure that both instances are ready."

sleep 180
fi

source .env.sh
cd $k6_tests_dir
make smoke-test
108 changes: 108 additions & 0 deletions tests/standalone-mounted-disk/run-tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
#!/bin/bash

k6_path=""
k6_tests_dir=""
bastion_key_file=""
skip_init=""

Help()
{
# Display Help
echo "This script bootstraps the k6 / tfe-load-test environment and executes a smoke-test against an active TFE instance deployed with the terraform-azure-terraform-enterprise module."
echo
echo "Syntax: run-tests.sh [-h|k|t|s]"
echo "options:"
echo "h Print this Help."
echo "k (required) The path to the k6 binary."
echo "t (required) The path to the tfe-load-test repository."
echo "s (optional) Skip the admin user initialization and tfe token retrieval (This is useful for secondary / repeated test runs)."
echo
}

# Get the options
while getopts ":hk:t:b:sl" option; do
case $option in
h) # display Help
Help
exit;;
k) # Enter a path to the k6 binary
k6_path=$OPTARG;;

t) # Enter a path to the tfe-load-test repo
k6_tests_dir=$OPTARG;;
s) # Skip the admin user boostrapping process?
skip_init=1;;
\?) # Invalid option
echo "Error: Invalid option"
exit;;
esac
done

if [[ -z "$k6_path" ]]; then
echo "k6 path missing. Please use the -k option."
Help
exit 1
fi

if [[ -z "$k6_tests_dir" ]]; then
echo "The tfe-load-test repository path missing. Please use the -t option."
Help
exit 1
fi

echo "
Executing tests with the following configuration:
k6_path=$k6_path
k6_tests_dir=$k6_tests_dir
skip_init=$skip_init
"

SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]:-$0}"; )" &> /dev/null && pwd 2> /dev/null; )";

cd $SCRIPT_DIR
health_check_url=$(terraform output -no-color -raw health_check_url)
echo "health check url: $health_check_url"

if [[ -z "$skip_init" ]]; then
while ! curl \
-sfS --max-time 5 \
$health_check_url; \
do sleep 5; done
echo " : TFE is healthy and listening."

tfe_url=$(terraform output -no-color -raw tfe_url)
echo "tfe url: $tfe_url"
iact_url=$(terraform output -no-color -raw iact_url)
echo "iact url: $iact_url"
echo "Fetching iact token.."
iact_token=$(curl --fail --retry 5 "$iact_url")
admin_url=`terraform output -no-color -raw initial_admin_user_url`
echo "admin url: $admin_url"

TFE_USERNAME="test$(date +%s)"
TFE_PASSWORD=`openssl rand -base64 32`
echo "{\"username\": \"$TFE_USERNAME\", \"email\": \"[email protected]\", \"password\": \"$TFE_PASSWORD\"}" \ > ./payload.json

response=$(\
curl \
--retry 5 \
--header 'Content-Type: application/json' \
--data @./payload.json \
--request POST \
"$admin_url"?token="$iact_token")

tfe_token=$(echo "$response" | jq --raw-output '.token')
rm -f payload.json

echo "export K6_PATHNAME=$k6_path
export TFE_URL=$tfe_url
export TFE_API_TOKEN=$tfe_token
export [email protected]" > .env.sh
echo "Sleeping for 3 minutes to ensure that both instances are ready."

sleep 180
fi

source .env.sh
cd $k6_tests_dir
make smoke-test

0 comments on commit 1034e4b

Please sign in to comment.