mirror of https://github.com/rancher/dashboard.git
149 lines
5.6 KiB
Bash
Executable File
149 lines
5.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -x
|
|
set -e
|
|
|
|
OS="$(uname -s)"
|
|
case "${OS}" in
|
|
Linux*) MACHINE=amd64;;
|
|
Darwin*) MACHINE=darwin-amd64;;
|
|
esac
|
|
|
|
case "${MACHINE}" in
|
|
amd64*) GOLANG_PGK_SUFFIX=linux-amd64 ;;
|
|
darwin-amd64*) GOLANG_PGK_SUFFIX=darwin-amd64 ;;
|
|
esac
|
|
|
|
GO_DL_URL="https://go.dev/dl"
|
|
GO_DL_VERSION="${GO_DL_VERSION:-1.20.5}"
|
|
GO_PKG_FILENAME="go${GO_DL_VERSION}.${GOLANG_PGK_SUFFIX}.tar.gz"
|
|
GO_DL_PACKAGE="${GO_DL_URL}/${GO_PKG_FILENAME}"
|
|
CORRAL_PATH="${WORKSPACE}/bin"
|
|
CORRAL="${CORRAL_PATH}/corral"
|
|
CORRAL_VERSION="${CORRAL_VERSION:-1.1.1}"
|
|
CORRAL_DOWNLOAD_URL="https://github.com/rancherlabs/corral/releases/download/"
|
|
CORRAL_DOWNLOAD_BIN="${CORRAL_DOWNLOAD_URL}v${CORRAL_VERSION}/corral-${CORRAL_VERSION}-${MACHINE}"
|
|
PATH="${CORRAL_PATH}:${PATH}"
|
|
CORRAL_PACKAGES_REPO="${CORRAL_PACKAGES_REPO:-rancherlabs/corral-packages.git}"
|
|
CORRAL_PACKAGES_BRANCH="${CORRAL_PACKAGES_BRANCH:-main}"
|
|
DASHBOARD_REPO="${DASHBOARD_REPO:-rancher/dashboard.git}"
|
|
DASHBOARD_BRANCH="${DASHBOARD_BRANCH:-master}"
|
|
GITHUB_URL="https://github.com/"
|
|
RANCHER_TYPE="${RANCHER_TYPE:-local}"
|
|
NODEJS_VERSION="${NODEJS_VERSION:-14.19.1}"
|
|
CYPRESS_VERSION="${CYPRESS_VERSION:-13.2.0}"
|
|
YARN_VERSION="${YARN_VERSION:-1.22.19}"
|
|
YQ_BIN="mikefarah/yq/releases/latest/download/yq_linux_amd64"
|
|
|
|
mkdir -p "${WORKSPACE}/bin"
|
|
wget "${GITHUB_URL}${YQ_BIN}" -O "${WORKSPACE}/bin/yq"
|
|
chmod +x "${WORKSPACE}/bin/yq"
|
|
|
|
if [ -f "${CORRAL}" ]; then rm "${CORRAL}"; fi
|
|
curl -L -o "${CORRAL}" "${CORRAL_DOWNLOAD_BIN}"
|
|
chmod +x "${CORRAL}"
|
|
|
|
curl -L -o "${GO_PKG_FILENAME}" "${GO_DL_PACKAGE}"
|
|
tar -C "${WORKSPACE}" -xzf "${GO_PKG_FILENAME}"
|
|
|
|
ls -al "${WORKSPACE}"
|
|
export PATH=$PATH:"${WORKSPACE}/go/bin:${WORKSPACE}/bin"
|
|
echo $PATH
|
|
|
|
go version
|
|
|
|
|
|
if [[ ! -d "${WORKSPACE}/.ssh" ]]; then mkdir -p "${WORKSPACE}/.ssh"; fi
|
|
export PRIV_KEY="${WORKSPACE}/.ssh/jenkins_ecdsa"
|
|
if [ -f "${PRIV_KEY}" ]; then rm "${PRIV_KEY}"; fi
|
|
ssh-keygen -t ecdsa -b 521 -N "" -f "${PRIV_KEY}"
|
|
ls -al "${WORKSPACE}/.ssh/"
|
|
|
|
corral config --public_key "${PRIV_KEY}.pub" --user_id jenkins
|
|
corral config vars set corral_user_public_key "$(cat ${PRIV_KEY}.pub)"
|
|
corral config vars set corral_user_id jenkins
|
|
corral config vars set aws_ssh_user ${AWS_SSH_USER}
|
|
corral config vars set aws_access_key ${AWS_ACCESS_KEY_ID}
|
|
corral config vars set aws_secret_key ${AWS_SECRET_ACCESS_KEY}
|
|
corral config vars set aws_ami ${AWS_AMI}
|
|
corral config vars set aws_region ${AWS_REGION}
|
|
corral config vars set aws_security_group ${AWS_SECURITY_GROUP}
|
|
corral config vars set aws_subnet ${AWS_SUBNET}
|
|
corral config vars set aws_vpc ${AWS_VPC}
|
|
corral config vars set aws_volume_size ${AWS_VOLUME_SIZE}
|
|
corral config vars set aws_volume_type ${AWS_VOLUME_TYPE}
|
|
corral config vars set volume_type ${AWS_VOLUME_TYPE}
|
|
corral config vars set volume_iops ${AWS_VOLUME_IOPS}
|
|
|
|
if [[ "${JOB_TYPE}" == "recurring" ]]; then
|
|
RANCHER_TYPE="recurring"
|
|
cd "${WORKSPACE}/corral-packages"
|
|
yq -i e ".variables.rancher_version += [\"${RANCHER_VERSION}\"] | .variables.rancher_version style=\"literal\"" packages/aws/rancher.yaml
|
|
yq -i e ".variables.kubernetes_version += [\"${RKE2_KUBERNETES_VERSION}\"] | .variables.kubernetes_version style=\"literal\"" packages/aws/rancher.yaml
|
|
yq -i e ".variables.cert_manager_version += [\"${CERT_MANAGER_VERSION}\"] | .variables.kubernetes_version style=\"literal\"" packages/aws/rancher.yaml
|
|
|
|
cat packages/aws/rancher.yaml
|
|
ls -al packages/aws/
|
|
cat packages/aws/dashboard-tests.yaml
|
|
|
|
prefix_random=$(cat /dev/urandom | env LC_ALL=C tr -dc 'a-z0-9' | fold -w 8 | head -n 1)
|
|
|
|
corral config vars set bootstrap_password ${BOOTSTRAP_PASSWORD:-password}
|
|
corral config vars set aws_route53_zone ${AWS_ROUTE53_ZONE}
|
|
if [[ -n "${RANCHER_IMAGE_TAG}" ]]; then
|
|
corral config vars set rancher_image_tag ${RANCHER_IMAGE_TAG}
|
|
fi
|
|
corral config vars set server_count ${SERVER_COUNT:-3}
|
|
corral config vars set agent_count ${AGENT_COUNT:-0}
|
|
corral config vars set instance_type ${AWS_INSTANCE_TYPE}
|
|
corral config vars set aws_hostname_prefix "jenkins-${prefix_random}"
|
|
corral config vars delete rancher_host
|
|
RANCHER_HOST="jenkins-${prefix_random}.${AWS_ROUTE53_ZONE}"
|
|
|
|
RKE2_KUBERNETES_VERSION="${RKE2_KUBERNETES_VERSION//+/-}"
|
|
make init
|
|
make build
|
|
ls -al dist
|
|
echo "Corral Package string: ${RKE2_KUBERNETES_VERSION}-${RANCHER_VERSION//v}-${CERT_MANAGER_VERSION}"
|
|
corral create --skip-cleanup --recreate --debug rancher \
|
|
"dist/aws-rke2-rancher-calico-${RKE2_KUBERNETES_VERSION}-${RANCHER_VERSION//v}-${CERT_MANAGER_VERSION}"
|
|
fi
|
|
|
|
corral config vars set rancher_type ${RANCHER_TYPE}
|
|
corral config vars set nodejs_version ${NODEJS_VERSION}
|
|
corral config vars set dashboard_repo ${DASHBOARD_REPO}
|
|
corral config vars set dashboard_branch ${DASHBOARD_BRANCH}
|
|
corral config vars set cypress_tags ${CYPRESS_TAGS}
|
|
corral config vars set cypress_version ${CYPRESS_VERSION}
|
|
corral config vars set yarn_version ${YARN_VERSION}
|
|
|
|
if [[ -n "${RANCHER_USERNAME}" ]]; then
|
|
corral config vars set rancher_username ${RANCHER_USERNAME}
|
|
fi
|
|
|
|
if [[ -n "${RANCHER_PASSWORD}" ]]; then
|
|
corral config vars set rancher_password ${RANCHER_PASSWORD}
|
|
fi
|
|
|
|
if [[ -n "${RANCHER_HOST}" ]]; then
|
|
corral config vars set rancher_host ${RANCHER_HOST}
|
|
fi
|
|
|
|
if [[ -n "${CHROME_VERSION}" ]]; then
|
|
corral config vars set chrome_version ${CHROME_VERSION}
|
|
fi
|
|
|
|
cd "${WORKSPACE}/corral-packages"
|
|
make init
|
|
make build
|
|
echo "${PWD}"
|
|
chmod -R 766 "${WORKSPACE}/corral-packages"
|
|
corral config vars set node_count 1
|
|
corral config vars set bastion_ip ""
|
|
corral config vars delete instance_type
|
|
corral create --skip-cleanup --recreate --debug ci dist/aws-dashboard-tests-t3a.xlarge
|
|
corral config vars -o yaml
|
|
NODE_EXTERNAL_IP="$(corral vars ci first_node_ip)"
|
|
cd ${WORKSPACE}
|
|
echo "${PWD}"
|