Skip to content

Commit

Permalink
updated aws_eks_create_custom_ami.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
HariSekhon committed Jan 31, 2025
1 parent 3ad9230 commit 55c502f
Showing 1 changed file with 42 additions and 32 deletions.
74 changes: 42 additions & 32 deletions aws/aws_eks_create_custom_ami.sh
Original file line number Diff line number Diff line change
Expand Up @@ -74,43 +74,53 @@ fi
timestamp "Base EKS AMI is: $base_ami"
echo

instance_name="EKS-$eks_version-Instance-for-Custom-AMI"
instance_launched=0

timestamp "Checking if EC2 instance of EKS Base AMI already exists"
instance_id="$(
aws ec2 describe-instances \
--filters "Name=tag:Name,Values=$instance_name" \
--query "Reservations[0].Instances[0].InstanceId" \
--output text
)"
for((i=1; i <= 100 ; i++)); do
instance_name="EKS-$eks_version-Instance-for-Custom-AMI-$i"

timestamp "Checking the instance state isn't terminated"
instance_state="$(
aws ec2 describe-instances \
--instance-ids "$instance_id" \
--query "Reservations[0].Instances[0].State.Name" \
--output text
)"
if [ "$instance_state" = "terminated" ]; then
# will trigger launching a new instance with the same name
instance_id=''
fi

if is_blank "$instance_id" || [ "$instance_id" = "None" ]; then
timestamp "Launching EC2 instance of EKS Base AMI: $instance_name"
timestamp "Checking if EC2 instance of EKS Base AMI already exists: $instance_name"
instance_id="$(
aws ec2 run-instances \
--image-id "$base_ami" \
--count 1 \
--instance-type "$instance_type" \
--key-name "$ssh_key_name" \
--security-group-ids "$security_group" \
--subnet-id "$subnet_id" \
--tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$instance_name}]" \
--query "Instances[0].InstanceId" \
aws ec2 describe-instances \
--filters "Name=tag:Name,Values=$instance_name" \
--query "Reservations[0].Instances[0].InstanceId" \
--output text
)"

timestamp "Checking the instance state isn't terminated"
instance_state="$(
aws ec2 describe-instances \
--instance-ids "$instance_id" \
--query "Reservations[0].Instances[0].State.Name" \
--output text
)"
timestamp "Launched instance: $instance_id"
if [ "$instance_state" = "terminated" ]; then
timestamp "This instance is already terminated, will try a new instance name"
continue
fi

if is_blank "$instance_id" || [ "$instance_id" = "None" ]; then
timestamp "Launching EC2 instance of EKS Base AMI: $instance_name"
instance_id="$(
aws ec2 run-instances \
--image-id "$base_ami" \
--count 1 \
--instance-type "$instance_type" \
--key-name "$ssh_key_name" \
--security-group-ids "$security_group" \
--subnet-id "$subnet_id" \
--tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=$instance_name}]" \
--query "Instances[0].InstanceId" \
--output text
)"
timestamp "Launched instance: $instance_id"
fi
instance_launched=1
break
done

if [ "$instance_launched" != 1 ]; then
die "ERROR: Failed to launch instance"
fi

echo
Expand Down

0 comments on commit 55c502f

Please sign in to comment.