k3d-dev fails when SSH folder does not exist
Bug
Description
Command:
./docs/assets/scripts/developer/k3d-dev.sh
Error:
Will use standard t3.2xlarge spot instance
Checking if key pair Jeremy.Glover-dev-default exists ...missing
Creating key pair Jeremy.Glover-dev-default ... ./docs/assets/scripts/developer/k3d-dev.sh: line 942: /Users/jglover/.ssh/Jeremy.Glover-dev-default.pem: No such file or directory
Exception ignored on flushing sys.stdout:
BrokenPipeError: [Errno 32] Broken pipe
chmod: /Users/jglover/.ssh/Jeremy.Glover-dev-default.pem: No such file or directory
done
Local key file /Users/jglover/.ssh/Jeremy.Glover-dev-default.pem does not exist. Cannot continue.
Root Cause: My machine was new and had never had an SSH key created. Therefore, the ~/.ssh
folder did not exist. When the script attempted to create a key, it assumed that my ~/.ssh
folder existed, but because it did not, there was an error when it tried to write the key to the non-existent folder.
BigBang Version
2.53
Proposed Fix
Goes after echo -n -e "missing\nCreating key pair ${KeyName} ... "
# Create SSH key directory if it does not exist
SSHKEY_DIR=$(dirname -- "$SSHKEY")
if [[ ! -d "$SSHKEY_DIR" ]]; then
printf "Creating directory %s...\n" "$SSHKEY_DIR"
mkdir -p -- "$SSHKEY_DIR"
chmod 700 "$SSHKEY_DIR"
fi
Edited by Jeremy Glover