Skip to content

Commit

Permalink
machine type
Browse files Browse the repository at this point in the history
  • Loading branch information
mdbooth committed Oct 13, 2021
1 parent 400d722 commit 170721c
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 10 deletions.
13 changes: 7 additions & 6 deletions hack/ci/common.sh
Expand Up @@ -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 {
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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 {
Expand All @@ -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() {
Expand Down
1 change: 1 addition & 0 deletions hack/ci/devstack-on-aws-project-install.sh
Expand Up @@ -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" ]];
Expand Down
10 changes: 8 additions & 2 deletions hack/ci/devstack-on-gce-project-install.sh
Expand Up @@ -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() {
Expand Down Expand Up @@ -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" ]]
Expand Down Expand Up @@ -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}" \
Expand All @@ -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
Expand Down
9 changes: 7 additions & 2 deletions hack/ci/devstack-on-openstack-install.sh
Expand Up @@ -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"

Expand Down Expand Up @@ -94,18 +96,21 @@ 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.
networkid=${networkid:-${OPENSTACK_NETWORK_NAME}}
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}" \
Expand Down

0 comments on commit 170721c

Please sign in to comment.