diff --git a/cluster/aws/templates/setup-master-pd.sh b/cluster/aws/templates/setup-master-pd.sh index efc30caa168..0f509b51864 100644 --- a/cluster/aws/templates/setup-master-pd.sh +++ b/cluster/aws/templates/setup-master-pd.sh @@ -17,6 +17,18 @@ # Format and mount the disk, create directories on it for all of the master's # persistent data, and link them to where they're used. +echo "Waiting for master pd to be attached" +attempt=0 +while true; do + echo Attempt "$(($attempt+1))" to check for /dev/xvdb + if [[ -e /dev/xvdb ]]; then + echo "Found /dev/xvdb" + break + fi + attempt=$(($attempt+1)) + sleep 1 +done + # Mount Master Persistent Disk echo "Mounting master-pd" mkdir -p /mnt/master-pd diff --git a/cluster/aws/util.sh b/cluster/aws/util.sh index 3dfe3a99ff7..bda884912fd 100644 --- a/cluster/aws/util.sh +++ b/cluster/aws/util.sh @@ -836,7 +836,7 @@ function kube-up { wait-for-instance-running $master_id # This is a race between instance start and volume attachment. There appears to be no way to start an AWS instance with a volume attached. - # TODO: Wait for volume to be ready in setup-master-pd.sh + # To work around this, we wait for volume to be ready in setup-master-pd.sh echo "Attaching peristent data volume (${MASTER_DISK_ID}) to master" $AWS_CMD attach-volume --volume-id ${MASTER_DISK_ID} --device /dev/sdb --instance-id ${master_id}