mirror of
https://github.com/openshift/installer.git
synced 2026-02-05 15:47:14 +01:00
tests: Remove unused smoke.sh + tfvars file
The smoke.sh bash script is fully replaced by the Ruby scripts and thereby not needed anymore. In addition the aws-vpc.tfvars file is replaced by aws-vpc-internal.tfvars.json.
This commit is contained in:
@@ -1,211 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# shellcheck disable=SC2002,SC2015,SC2086,SC2091
|
|
||||||
set -exuo pipefail
|
|
||||||
shopt -s expand_aliases
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
# Allow smoke.sh to work off jenkins.
|
|
||||||
WORKSPACE=${WORKSPACE:-"$(cd "$DIR"/../../.. && pwd)"}
|
|
||||||
BUILD_ID=${BUILD_ID:-1}
|
|
||||||
BRANCH_NAME=${BRANCH_NAME:-$(git rev-parse --abbrev-ref HEAD)}
|
|
||||||
|
|
||||||
# Alias filter for convenience
|
|
||||||
# shellcheck disable=SC2139
|
|
||||||
alias filter="$WORKSPACE"/installer/scripts/filter.sh
|
|
||||||
|
|
||||||
assume_role() {
|
|
||||||
# Don't print out the credentials.
|
|
||||||
set +x
|
|
||||||
ROLE_NAME=$1
|
|
||||||
# Get the actual role ARN. This allows us to invoke the script with friendly arguments.
|
|
||||||
# shellcheck disable=SC2155
|
|
||||||
ROLE_ARN="$(aws iam get-role --role-name="$ROLE_NAME" | jq -r '.Role.Arn')"
|
|
||||||
# shellcheck disable=SC2155
|
|
||||||
CREDENTIALS="$(aws sts assume-role --role-arn="$ROLE_ARN" --role-session-name=tectonic-installer | jq '.Credentials')"
|
|
||||||
export AWS_ACCESS_KEY_ID
|
|
||||||
AWS_ACCESS_KEY_ID=$(echo "$CREDENTIALS" | jq -r '.AccessKeyId')
|
|
||||||
export AWS_SECRET_ACCESS_KEY
|
|
||||||
AWS_SECRET_ACCESS_KEY=$(echo "$CREDENTIALS" | jq -r '.SecretAccessKey')
|
|
||||||
export AWS_SESSION_TOKEN
|
|
||||||
AWS_SESSION_TOKEN=$(echo "$CREDENTIALS" | jq -r '.SessionToken')
|
|
||||||
set -x
|
|
||||||
}
|
|
||||||
|
|
||||||
set_role() {
|
|
||||||
ROLE_NAME=$1
|
|
||||||
ROLE_POLICY=$2
|
|
||||||
TRUST_POLICY=$3
|
|
||||||
# If the role exists, then update the trust policy. Otherwise, create a new role.
|
|
||||||
if aws iam get-role --role-name="$ROLE_NAME" > /dev/null 2>&1 ; then
|
|
||||||
aws iam update-assume-role-policy --role-name="$ROLE_NAME" --policy-document=file://"$TRUST_POLICY"
|
|
||||||
else
|
|
||||||
aws iam create-role --role-name="$ROLE_NAME" --assume-role-policy-document=file://"$TRUST_POLICY"
|
|
||||||
fi
|
|
||||||
aws iam put-role-policy --role-name="$ROLE_NAME" --policy-name="$ROLE_NAME" --policy-document=file://"$ROLE_POLICY"
|
|
||||||
}
|
|
||||||
|
|
||||||
random_region() {
|
|
||||||
# randomly select region
|
|
||||||
REGIONS=(us-east-1 us-east-2 us-west-1 us-west-2)
|
|
||||||
export CHANGE_ID=${CHANGE_ID:-${BUILD_ID}}
|
|
||||||
i=$(( CHANGE_ID % ${#REGIONS[@]} ))
|
|
||||||
export TF_VAR_tectonic_aws_region="${REGIONS[$i]}"
|
|
||||||
export AWS_REGION="${REGIONS[$i]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
common() {
|
|
||||||
# make core utils accessible to make
|
|
||||||
export PATH=/bin:$PATH
|
|
||||||
export PLATFORM=aws
|
|
||||||
|
|
||||||
# Set the specified vars file
|
|
||||||
TF_VARS_FILE=$1
|
|
||||||
TEST_NAME=$(basename "$TF_VARS_FILE" | cut -d "." -f 1)
|
|
||||||
|
|
||||||
# Set required configuration
|
|
||||||
CLUSTER="$TEST_NAME-$BRANCH_NAME-$BUILD_ID"
|
|
||||||
MAX_LENGTH=28
|
|
||||||
|
|
||||||
LENGTH=${#CLUSTER}
|
|
||||||
if [ "$LENGTH" -gt "$MAX_LENGTH" ]
|
|
||||||
then
|
|
||||||
CLUSTER="${CLUSTER:0:MAX_LENGTH}"
|
|
||||||
echo "Cluster name too long. Truncated to $CLUSTER"
|
|
||||||
elif [ "$LENGTH" -lt "$MAX_LENGTH" ]
|
|
||||||
then
|
|
||||||
# shellcheck disable=SC2034
|
|
||||||
APPEND=$(( MAX_LENGTH - LENGTH ))
|
|
||||||
APPEND_STR="012345678901234567890123456789"
|
|
||||||
CLUSTER="$CLUSTER${APPEND_STR:0:APPEND}"
|
|
||||||
echo "Cluster name too short. Appended to $CLUSTER"
|
|
||||||
fi
|
|
||||||
|
|
||||||
random_region
|
|
||||||
CLUSTER=$(echo "${CLUSTER}" | awk '{print tolower($0)}')
|
|
||||||
export CLUSTER
|
|
||||||
export TF_VAR_tectonic_cluster_name=$CLUSTER
|
|
||||||
|
|
||||||
echo "selected region: $TF_VAR_tectonic_aws_region"
|
|
||||||
echo "cluster name: $CLUSTER"
|
|
||||||
|
|
||||||
export CONFIG="${WORKSPACE}/build/${CLUSTER}/terraform.tfvars"
|
|
||||||
if [ ! -f "$CONFIG" ]; then
|
|
||||||
# Create local config
|
|
||||||
make localconfig
|
|
||||||
# Use smoke test configuration for deployment
|
|
||||||
cp "$DIR/$TF_VARS_FILE" "$CONFIG"
|
|
||||||
# Store AWS region in tfvars file
|
|
||||||
echo -e "tectonic_aws_region = \"$TF_VAR_tectonic_aws_region\"" >> "$CONFIG"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
create() {
|
|
||||||
common "$1"
|
|
||||||
make apply | filter
|
|
||||||
}
|
|
||||||
|
|
||||||
grafiti_clean() {
|
|
||||||
common "$1"
|
|
||||||
|
|
||||||
# Parse AWS_REGION from a tfvars file
|
|
||||||
# shellcheck disable=SC2155
|
|
||||||
export AWS_REGION="$(grep -oP 'tectonic_aws_region\s*=\s*"\K([^"]+)' "$CONFIG")"
|
|
||||||
|
|
||||||
# Get CLUSTER_ID from `terraform apply` output. Because 'tectonicClusterID'
|
|
||||||
# is created during a 'terraform apply' step, which might fail before a state
|
|
||||||
# file is generated, we must collect and parse log output
|
|
||||||
if [ ! -f "${WORKSPACE}/terraform.log" ]; then
|
|
||||||
echo "Cannot find terraform log file"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
CLUSTER_ID="$(grep -m 1 -oP 'tags.tectonicClusterID:\s*""[^"]*"\K([^"]+)' "${WORKSPACE}/terraform.log")"
|
|
||||||
|
|
||||||
GRAFITI_TMP_DIR="$(mktemp -d -p $WORKSPACE)"
|
|
||||||
|
|
||||||
GRAFITI_CONFIG_FILE="${GRAFITI_TMP_DIR}/config.toml"
|
|
||||||
echo "maxNumRequestRetries = 11" > "$GRAFITI_CONFIG_FILE"
|
|
||||||
|
|
||||||
GRAFITI_TAG_FILE="${GRAFITI_TMP_DIR}/tag.json"
|
|
||||||
echo -e "{\"TagFilters\":[{\"Key\":\"tectonicClusterID\",\"Values\":[\"$CLUSTER_ID\"]}]}" > "$GRAFITI_TAG_FILE"
|
|
||||||
|
|
||||||
echo "Cleaning up \"${CLUSTER_ID}\"..."
|
|
||||||
|
|
||||||
grafiti --config "$GRAFITI_CONFIG_FILE" --ignore-errors delete --silent --all-deps --delete-file "$GRAFITI_TAG_FILE"
|
|
||||||
|
|
||||||
rm -rf "$GRAFITI_TMP_DIR"
|
|
||||||
}
|
|
||||||
|
|
||||||
destroy() {
|
|
||||||
common "$1"
|
|
||||||
echo "Destroying ${CLUSTER}..."
|
|
||||||
make destroy
|
|
||||||
}
|
|
||||||
|
|
||||||
plan() {
|
|
||||||
common "$1"
|
|
||||||
make plan | filter
|
|
||||||
}
|
|
||||||
|
|
||||||
test_cluster() {
|
|
||||||
common "$1"
|
|
||||||
# TODO: replace in Go
|
|
||||||
MASTER_COUNT=$(grep tectonic_master_count "$CONFIG" | awk -F "=" '{gsub(/"/, "", $2); print $2}')
|
|
||||||
WORKER_COUNT=$(grep tectonic_worker_count "$CONFIG" | awk -F "=" '{gsub(/"/, "", $2); print $2}')
|
|
||||||
export SMOKE_NODE_COUNT=$(( MASTER_COUNT + WORKER_COUNT ))
|
|
||||||
export SMOKE_KUBECONFIG=$WORKSPACE/build/$CLUSTER/generated/auth/kubeconfig
|
|
||||||
export SMOKE_MANIFEST_PATHS=$WORKSPACE/build/$CLUSTER/generated/
|
|
||||||
# shellcheck disable=SC2155
|
|
||||||
export SMOKE_MANIFEST_EXPERIMENTAL=$(grep tectonic_experimental "$CONFIG" | awk -F "=" '{gsub(/"/, "", $2); print $2}' | tr -d ' ')
|
|
||||||
# shellcheck disable=SC2155
|
|
||||||
export SMOKE_CALICO_NETWORK_POLICY=$(grep tectonic_calico_network_policy "$CONFIG" | awk -F "=" '{gsub(/"/, "", $2); print $2}' | tr -d ' ')
|
|
||||||
bin/smoke -test.v -test.parallel=1 --cluster
|
|
||||||
}
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
# It's annoying to print the debug statement and the output from printf
|
|
||||||
set +x
|
|
||||||
printf "%s is a tool for running Tectonic smoke tests on AWS.\n\n" "$(basename "$0")"
|
|
||||||
printf "Usage:\n\n \t %s command [arguments]\n\n" "$(basename "$0")"
|
|
||||||
printf "The commands are:\n\n"
|
|
||||||
printf "\t assume-role <role-name> assume the role specified by <role-name>\n"
|
|
||||||
printf "\t create <tfvars> create a Tectonic cluster parameterized by <tfvars>\n"
|
|
||||||
printf "\t destroy <tfvars> destroy the Tectonic cluster parameterized by <tfvars>\n"
|
|
||||||
printf "\t plan <tfvars> plan a Tectonic cluster parameterized by <tfvars>\n"
|
|
||||||
printf "\t set-role <role-name> <policy> <trust-policy> create or update the <role-name> role with policy at file\n"
|
|
||||||
printf "\t path <policy> and trust policy at file path <trust-policy>\n"
|
|
||||||
printf "\t test <tfvars> test a Tectonic cluster parameterized by <tfvars>\n"
|
|
||||||
printf "\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
main () {
|
|
||||||
COMMAND=$1
|
|
||||||
if [ $# -eq 0 ]; then
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
shift
|
|
||||||
case $COMMAND in
|
|
||||||
common)
|
|
||||||
common "$@";;
|
|
||||||
assume-role)
|
|
||||||
assume_role "$@";;
|
|
||||||
create)
|
|
||||||
create "$@";;
|
|
||||||
destroy)
|
|
||||||
destroy "$@";;
|
|
||||||
grafiti-clean)
|
|
||||||
grafiti_clean "$@";;
|
|
||||||
plan)
|
|
||||||
plan "$@";;
|
|
||||||
set-role)
|
|
||||||
set_role "$@";;
|
|
||||||
test)
|
|
||||||
test_cluster "$@";;
|
|
||||||
*)
|
|
||||||
usage;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
pushd "$WORKSPACE" > /dev/null
|
|
||||||
main "$@"
|
|
||||||
popd > /dev/null
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
tectonic_worker_count = "2"
|
|
||||||
|
|
||||||
tectonic_master_count = "1"
|
|
||||||
|
|
||||||
tectonic_etcd_count = "1"
|
|
||||||
|
|
||||||
tectonic_etcd_servers = [""]
|
|
||||||
|
|
||||||
tectonic_base_domain = "tectonic.dev.coreos.systems"
|
|
||||||
|
|
||||||
tectonic_cl_channel = "stable"
|
|
||||||
|
|
||||||
tectonic_ca_cert = ""
|
|
||||||
|
|
||||||
tectonic_ca_key = ""
|
|
||||||
|
|
||||||
tectonic_aws_master_ec2_type = "m4.large"
|
|
||||||
|
|
||||||
tectonic_aws_worker_ec2_type = "m4.large"
|
|
||||||
|
|
||||||
tectonic_aws_etcd_ec2_type = "m4.large"
|
|
||||||
|
|
||||||
tectonic_aws_vpc_cidr_block = "10.0.0.0/16"
|
|
||||||
|
|
||||||
tectonic_aws_public_dns = false
|
|
||||||
|
|
||||||
tectonic_aws_az_count = "2"
|
|
||||||
|
|
||||||
tectonic_stats_url = "https://stats-collector-staging.tectonic.com"
|
|
||||||
Reference in New Issue
Block a user