From 170721ccad0a9209336dc833e5b7ae45d7bb39d5 Mon Sep 17 00:00:00 2001 From: Matthew Booth Date: Wed, 13 Oct 2021 20:25:29 +0000 Subject: [PATCH] machine type --- hack/ci/common.sh | 13 +++++++------ hack/ci/devstack-on-aws-project-install.sh | 1 + hack/ci/devstack-on-gce-project-install.sh | 10 ++++++++-- hack/ci/devstack-on-openstack-install.sh | 9 +++++++-- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/hack/ci/common.sh b/hack/ci/common.sh index be0d23a76f..714ef1d238 100755 --- a/hack/ci/common.sh +++ b/hack/ci/common.sh @@ -47,7 +47,8 @@ REPO_ROOT=$(dirname "${BASH_SOURCE[0]}")/../../ cd "${REPO_ROOT}" || exit 1 REPO_ROOT_ABSOLUTE=$(pwd) ARTIFACTS=${ARTIFACTS:-/tmp/${CLUSTER_NAME}-artifacts} -mkdir -p "${ARTIFACTS}" +devstackdir="${ARTIFACTS}/devstack" +mkdir -p "${devstackdir}" # retry $1 times with $2 sleep in between function retry { @@ -130,12 +131,12 @@ function wait_for_devstack { retry 120 30 "$ssh_cmd ${ip} -- cat /var/lib/cloud/instance/boot-finished" # Continuously capture devstack logs until killed - $ssh_cmd "${ip}" -- sudo journalctl -b -u 'devstack@*' -f > "${ARTIFACTS}/${name}-devstack.log" & + $ssh_cmd "${ip}" -- sudo journalctl -b -u 'devstack@*' -f > "${devstackdir}/${name}-devstack.log" & # Capture cloud-init logs # Devstack logs are in cloud-final for service in cloud-config cloud-final cloud-init-local cloud-init; do - $ssh_cmd ${ip} -- sudo journalctl -u ${service} > "${ARTIFACTS}/${name}-${service}.log" + $ssh_cmd ${ip} -- sudo journalctl -u ${service} > "${devstackdir}/${name}-${service}.log" # Fail early if any cloud-init service failed $ssh_cmd ${ip} -- sudo systemctl status ${service} || exit 1 @@ -154,7 +155,7 @@ function create_devstack { local flavor=$1 && shift local public=${1:-} && shift - cloud_init="${ARTIFACTS}/cloud-init-${flavor}.yaml" + cloud_init="${devstackdir}/cloud-init-${flavor}.yaml" if [[ ${OPENSTACK_ENABLE_HORIZON} = "true" ]] then @@ -180,7 +181,7 @@ function create_devstack { < ./hack/ci/cloud-init/${tpl}.yaml.tpl >> "${cloud_init}" done - create_vm "${CLUSTER_NAME}-${name}" "${ip}" "${cloud_init}" "${public}" + create_vm "${CLUSTER_NAME}-${name}" "${ip}" "${cloud_init}" "${flavor}" "${public}" } function cleanup { @@ -194,7 +195,7 @@ function create_worker { create_devstack worker "${WORKER_IP}" worker # Wait and run post-install tasks asynchronously - wait_for_devstack worker "${WORKER_IP}" > "${ARTIFACTS}/worker-build.log" 2>&1 & + wait_for_devstack worker "${WORKER_IP}" > "${devstackdir}/worker-build.log" 2>&1 & } function main() { diff --git a/hack/ci/devstack-on-aws-project-install.sh b/hack/ci/devstack-on-aws-project-install.sh index 9766fe0058..71ff291af0 100755 --- a/hack/ci/devstack-on-aws-project-install.sh +++ b/hack/ci/devstack-on-aws-project-install.sh @@ -77,6 +77,7 @@ function create_vm { local name=$1 && shift local ip=$1 && shift local userdata=$1 && shift + local type=$1 && shift local public=$1 && shift if [[ $(aws ec2 describe-instances --filters Name=tag:Name,Values="${name}" --region="${AWS_REGION}" --query 'length(*[0])') = "0" ]]; diff --git a/hack/ci/devstack-on-gce-project-install.sh b/hack/ci/devstack-on-gce-project-install.sh index e982d11832..17e1f1ca3e 100755 --- a/hack/ci/devstack-on-gce-project-install.sh +++ b/hack/ci/devstack-on-gce-project-install.sh @@ -36,9 +36,12 @@ GCP_PROJECT=${GCP_PROJECT:-""} GCP_REGION=${GCP_REGION:-"us-east4"} GCP_ZONE=${GCP_ZONE:-"us-east4-a"} GCP_MACHINE_MIN_CPU_PLATFORM=${GCP_MACHINE_MIN_CPU_PLATFORM:-"Intel Cascade Lake"} -GCP_MACHINE_TYPE=${GCP_MACHINE_TYPE:-"n2-standard-16"} GCP_NETWORK_NAME=${GCP_NETWORK_NAME:-"${CLUSTER_NAME}-mynetwork"} +# We have a quota of 24 vCPUs +GCP_MACHINE_TYPE_controller=${GCP_MACHINE_TYPE:-"n2-standard-16"} +GCP_MACHINE_TYPE_worker=${GCP_MACHINE_TYPE:-"n2-standard-8"} + echo "Using: GCP_PROJECT: ${GCP_PROJECT} GCP_REGION: ${GCP_REGION} GCP_NETWORK_NAME: ${GCP_NETWORK_NAME}" function init_infrastructure() { @@ -84,6 +87,7 @@ function create_vm { local name=$1 && shift local ip=$1 && shift local userdata=$1 && shift + local type=$1 && shift local public=$1 && shift if [[ ${FLAVOR} = "default" ]] @@ -116,6 +120,8 @@ function create_vm { fi fi + machine_type_var=GCP_MACHINE_TYPE_${type} + if ! gcloud compute instances describe "devstack-${name}" --project "${GCP_PROJECT}" --zone "${GCP_ZONE}" > /dev/null; then gcloud compute instances create "devstack-${name}" \ @@ -127,7 +133,7 @@ function create_vm { --can-ip-forward \ --tags http-server,https-server,novnc,openstack-apis \ --min-cpu-platform "${GCP_MACHINE_MIN_CPU_PLATFORM}" \ - --machine-type "${GCP_MACHINE_TYPE}" \ + --machine-type "${!machine_type_var}" \ --network-interface="private-network-ip=${ip},network=${CLUSTER_NAME}-mynetwork,subnet=${CLUSTER_NAME}-mynetwork" \ --metadata-from-file user-data=${userdata} fi diff --git a/hack/ci/devstack-on-openstack-install.sh b/hack/ci/devstack-on-openstack-install.sh index 68a5d55542..462ef60910 100755 --- a/hack/ci/devstack-on-openstack-install.sh +++ b/hack/ci/devstack-on-openstack-install.sh @@ -29,13 +29,15 @@ source "$(dirname ${BASH_SOURCE[0]})/common.sh" # SSH_PRIVATE_KEY_FILE # OPENSTACK_PUBLIC_NETWORK # OPENSTACK_PUBLIC_IP (optional, will be created on OPENSTACK_PUBLIC_NETWORK if not defined) -OPENSTACK_FLAVOR=${OPENSTACK_FLAVOR:-m1.xlarge} OPENSTACK_NETWORK_NAME=${OPENSTACK_NETWORK_NAME:-${CLUSTER_NAME}-network} OPENSTACK_SUBNET_NAME=${OPENSTACK_SUBNET_NAME:-${CLUSTER_NAME}-subnet} OPENSTACK_SECGROUP_NAME=${OPENSTACK_SECGROUP_NAME:-${CLUSTER_NAME}-secgroup} OPENSTACK_ROUTER_NAME=${OPENSTACK_ROUTER_NAME:-${CLUSTER_NAME}-router} OPENSTACK_IMAGE_NAME=${OPENSTACK_IMAGE_NAME:-ubuntu-2004-lts} +OPENSTACK_FLAVOR_controller=${OPENSTACK_FLAVOR:-m1.xlarge} +OPENSTACK_FLAVOR_worker=${OPENSTACK_FLAVOR:-m1.large} + # For tagging support nova_microversion="--os-compute-api-version 2.52" @@ -94,6 +96,7 @@ function create_vm { local name=$1 && shift local ip=$1 && shift local userdata=$1 && shift + local type=$1 && shift local public=$1 && shift # Values which weren't initialised if we skipped init_infrastructure. Use names instead. @@ -101,11 +104,13 @@ function create_vm { secgroupid=${secgroupid:-${OPENSTACK_SECGROUP_NAME}} imageid=${imageid:-${OPENSTACK_IMAGE_NAME}} + flavor_var=OPENSTACK_FLAVOR_${type} + local serverid if ! serverid=$(openstack server show "${name}" -f value -c id 2>/dev/null) then serverid=$(openstack server create -f value -c id $nova_microversion --tag "${CLUSTER_NAME}" \ - --image "${imageid}" --flavor "${OPENSTACK_FLAVOR}" \ + --image "${imageid}" --flavor "${!flavor_var}" \ --nic net-id="${networkid}",v4-fixed-ip="${ip}" \ --security-group "${secgroupid}" \ --user-data "${userdata}" \