Skip to content
This repository was archived by the owner on Jan 16, 2025. It is now read-only.

Commit 5537474

Browse files
authored
fix: retry aws metadata token download (#3292)
1 parent 999d139 commit 5537474

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

Diff for: modules/runners/templates/start-runner.ps1

+17-4
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,38 @@
33

44
Write-Host "Retrieving TOKEN from AWS API"
55
$token=Invoke-RestMethod -Method PUT -Uri "http://169.254.169.254/latest/api/token" -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "180"}
6+
if ( ! $token ) {
7+
$retrycount=0
8+
do {
9+
echo "Failed to retrieve token. Retrying in 5 seconds."
10+
Start-Sleep 5
11+
$token=Invoke-RestMethod -Method PUT -Uri "http://169.254.169.254/latest/api/token" -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "180"}
12+
$retrycount=$retrycount + 1
13+
if ( $retrycount -gt 40 )
14+
{
15+
break
16+
}
17+
} until ($token)
18+
}
619

720
$ami_id=Invoke-RestMethod -Uri "http://169.254.169.254/latest/meta-data/ami-id" -Headers @{"X-aws-ec2-metadata-token" = $token}
821

922
$metadata=Invoke-RestMethod -Uri "http://169.254.169.254/latest/dynamic/instance-identity/document" -Headers @{"X-aws-ec2-metadata-token" = $token}
1023

1124
$Region = $metadata.region
12-
Write-Host "Reteieved REGION from AWS API ($Region)"
25+
Write-Host "Retrieved REGION from AWS API ($Region)"
1326

1427
$InstanceId = $metadata.instanceId
15-
Write-Host "Reteieved InstanceId from AWS API ($InstanceId)"
28+
Write-Host "Retrieved InstanceId from AWS API ($InstanceId)"
1629

1730
$tags=aws ec2 describe-tags --region "$Region" --filters "Name=resource-id,Values=$InstanceId" | ConvertFrom-Json
1831
Write-Host "Retrieved tags from AWS API"
1932

2033
$environment=$tags.Tags.where( {$_.Key -eq 'ghr:environment'}).value
21-
Write-Host "Reteieved ghr:environment tag - ($environment)"
34+
Write-Host "Retrieved ghr:environment tag - ($environment)"
2235

2336
$runner_name_prefix=$tags.Tags.where( {$_.Key -eq 'ghr:runner_name_prefix'}).value
24-
Write-Host "Reteieved ghr:runner_name_prefix tag - ($runner_name_prefix)"
37+
Write-Host "Retrieved ghr:runner_name_prefix tag - ($runner_name_prefix)"
2538

2639
$ssm_config_path=$tags.Tags.where( {$_.Key -eq 'ghr:ssm_config_path'}).value
2740
Write-Host "Retrieved ghr:ssm_config_path tag - ($ssm_config_path)"

Diff for: modules/runners/templates/start-runner.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## Retrieve instance metadata
44

55
echo "Retrieving TOKEN from AWS API"
6-
token=$(curl -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 180")
6+
token=$(curl --retry 20 -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 180")
77

88
ami_id=$(curl -f -H "X-aws-ec2-metadata-token: $token" -v http://169.254.169.254/latest/meta-data/ami-id)
99

0 commit comments

Comments
 (0)