Skip to content

Commit 45cd398

Browse files
authored
Merge pull request #898 from buildkite/keithduncan/fix-disk-check
Fix hourly disk check
2 parents 3554f2d + 9f4b3be commit 45cd398

File tree

4 files changed

+19
-9
lines changed

4 files changed

+19
-9
lines changed

packer/linux/conf/bin/bk-install-elastic-stack.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,13 @@ on_error() {
1111
local exitCode="$?"
1212
local errorLine="$1"
1313

14+
# If the curl fails, we're already in the error trap...
15+
# shellcheck disable=SC2155
16+
local token=$(curl -X PUT -H "X-aws-ec2-metadata-token-ttl-seconds: 60" --fail --silent --show-error --location "http://169.254.169.254/latest/api/token")
17+
1418
if [[ $exitCode != 0 ]] ; then
15-
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 60")
1619
aws autoscaling set-instance-health \
17-
--instance-id "$(curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id)" \
20+
--instance-id "$(curl -H "X-aws-ec2-metadata-token: $token" --fail --silent --show-error --location "http://169.254.169.254/latest/meta-data/instance-id")" \
1821
--health-status Unhealthy || true
1922
fi
2023

packer/linux/conf/buildkite-agent/scripts/terminate-instance

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ echo "sleeping for 10 seconds before terminating instance to allow agent logs to
66

77
sleep 10
88

9-
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 60")
10-
instance_id=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -fsSL http://169.254.169.254/latest/meta-data/instance-id)
11-
region=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -fsSL http://169.254.169.254/latest/meta-data/placement/availability-zone | head -c -1)
9+
token=$(curl -X PUT -H "X-aws-ec2-metadata-token-ttl-seconds: 60" --fail --silent --show-error --location "http://169.254.169.254/latest/api/token")
10+
instance_id=$(curl -H "X-aws-ec2-metadata-token: $token" --fail --silent --show-error --location "http://169.254.169.254/latest/meta-data/instance-id")
11+
region=$(curl -H "X-aws-ec2-metadata-token: $token" --fail --silent --show-error --location "http://169.254.169.254/latest/meta-data/placement/region")
1212

1313
echo "requesting instance termination..."
1414

packer/linux/conf/docker/cron.hourly/docker-low-disk-gc

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,16 @@ mark_instance_unhealthy() {
1414
# mark the instance for termination
1515
echo "Marking instance as unhealthy"
1616

17-
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 60")
17+
# shellcheck disable=SC2155
18+
local token=$(curl -X PUT -H "X-aws-ec2-metadata-token-ttl-seconds: 60" --fail --silent --show-error --location "http://169.254.169.254/latest/api/token")
19+
# shellcheck disable=SC2155
20+
local instance_id=$(curl -H "X-aws-ec2-metadata-token: $token" --fail --silent --show-error --location "http://169.254.169.254/latest/meta-data/instance-id")
21+
# shellcheck disable=SC2155
22+
local region=$(curl -H "X-aws-ec2-metadata-token: $token" --fail --silent --show-error --location "http://169.254.169.254/latest/meta-data/placement/region")
23+
1824
aws autoscaling set-instance-health \
19-
--instance-id "$(curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id)" \
25+
--instance-id "${instance_id}" \
26+
--region "${region}" \
2027
--health-status Unhealthy
2128
}
2229

@@ -32,7 +39,7 @@ if ! /usr/local/bin/bk-check-disk-space.sh ; then
3239
docker builder prune --all --force --filter "until=${DOCKER_PRUNE_UNTIL}"
3340

3441
if ! /usr/local/bin/bk-check-disk-space.sh ; then
35-
echo "Disk health checks failed" >&2
42+
echo "Disk health checks failed" >&2 && false
3643
exit 1
3744
fi
3845
fi

packer/windows/conf/buildkite-agent/scripts/terminate-instance.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
$Token = (Invoke-WebRequest -UseBasicParsing -Method Put -Headers @{'X-aws-ec2-metadata-token-ttl-seconds' = '60'} http://169.254.169.254/latest/api/token).content
22

33
$InstanceId = (Invoke-WebRequest -UseBasicParsing -Headers @{'X-aws-ec2-metadata-token' = $Token} http://169.254.169.254/latest/meta-data/instance-id).content
4-
$Region = (Invoke-WebRequest -UseBasicParsing -Headers @{'X-aws-ec2-metadata-token' = $Token} http://169.254.169.254/latest/meta-data/placement/availability-zone).content -replace ".$"
4+
$Region = (Invoke-WebRequest -UseBasicParsing -Headers @{'X-aws-ec2-metadata-token' = $Token} http://169.254.169.254/latest/meta-data/placement/region).content
55

66
Write-Output "terminate-instance: requesting instance termination..."
77
aws autoscaling terminate-instance-in-auto-scaling-group --region "$Region" --instance-id "$InstanceId" "--should-decrement-desired-capacity" 2> $null

0 commit comments

Comments
 (0)