Skip to content

Commit da61a51

Browse files
authored
Merge pull request #1553 from buildkite/SUP-4522-agent-disconnect-after-uptime
Implement new agent disconnect-after-uptime config
2 parents ff48e8f + 27981a3 commit da61a51

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ spawn=${BUILDKITE_AGENTS_PER_INSTANCE}
291291
no-color=true
292292
disconnect-after-idle-timeout=${BUILDKITE_SCALE_IN_IDLE_PERIOD}
293293
disconnect-after-job=${BUILDKITE_TERMINATE_INSTANCE_AFTER_JOB}
294+
disconnect-after-uptime=${BUILDKITE_AGENT_DISCONNECT_AFTER_UPTIME}
294295
tracing-backend=${BUILDKITE_AGENT_TRACING_BACKEND}
295296
cancel-grace-period=${BUILDKITE_AGENT_CANCEL_GRACE_PERIOD}
296297
signal-grace-period-seconds=${BUILDKITE_AGENT_SIGNAL_GRACE_PERIOD_SECONDS}

packer/windows/conf/bin/bk-install-elastic-stack.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ no-color=true
155155
shell=powershell
156156
disconnect-after-idle-timeout=${Env:BUILDKITE_SCALE_IN_IDLE_PERIOD}
157157
disconnect-after-job=${Env:BUILDKITE_TERMINATE_INSTANCE_AFTER_JOB}
158+
disconnect-after-uptime=${Env:BUILDKITE_AGENT_DISCONNECT_AFTER_UPTIME}
158159
tracing-backend=${Env:BUILDKITE_AGENT_TRACING_BACKEND}
159160
signing-aws-kms-key=${Env:BUILDKITE_AGENT_SIGNING_KMS_KEY}
160161
verification-failure-behavior=${Env:BUILDKITE_AGENT_SIGNING_FAILURE_BEHAVIOR}

templates/aws-stack.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,15 @@ Parameters:
285285
- "false"
286286
Default: "false"
287287

288+
BuildkiteAgentDisconnectAfterUptime:
289+
Description: >
290+
The maximum uptime in seconds before the agent stops accepting new jobs and shuts down
291+
after any running jobs complete. Set to 0 to disable uptime-based termination.
292+
This helps regularly cycle out machines and prevent resource accumulation issues.
293+
Type: Number
294+
Default: 0
295+
MinValue: 0
296+
288297
ExperimentalEnableResourceLimits:
289298
Description: >
290299
(Experimental) If true, enables systemd resource limits for the Buildkite agent.
@@ -1573,6 +1582,7 @@ Resources:
15731582
$Env:BUILDKITE_AUTHORIZED_USERS_URL="${AuthorizedUsersUrl}"
15741583
$Env:BUILDKITE_ECR_POLICY="${ECRAccessPolicy}"
15751584
$Env:BUILDKITE_TERMINATE_INSTANCE_AFTER_JOB="${BuildkiteTerminateInstanceAfterJob}"
1585+
$Env:BUILDKITE_AGENT_DISCONNECT_AFTER_UPTIME="${BuildkiteAgentDisconnectAfterUptime}"
15761586
$Env:BUILDKITE_ADDITIONAL_SUDO_PERMISSIONS="${BuildkiteAdditionalSudoPermissions}"
15771587
$Env:BUILDKITE_WINDOWS_ADMINISTRATOR="${BuildkiteWindowsAdministrator}"
15781588
$Env:AWS_DEFAULT_REGION="${AWS::Region}"
@@ -1652,6 +1662,7 @@ Resources:
16521662
BUILDKITE_AUTHORIZED_USERS_URL="${AuthorizedUsersUrl}" \
16531663
BUILDKITE_ECR_POLICY="${ECRAccessPolicy}" \
16541664
BUILDKITE_TERMINATE_INSTANCE_AFTER_JOB="${BuildkiteTerminateInstanceAfterJob}" \
1665+
BUILDKITE_AGENT_DISCONNECT_AFTER_UPTIME="${BuildkiteAgentDisconnectAfterUptime}" \
16551666
BUILDKITE_TERMINATE_INSTANCE_ON_DISK_FULL="${BuildkiteTerminateInstanceOnDiskFull}" \
16561667
BUILDKITE_ADDITIONAL_SUDO_PERMISSIONS="${BuildkiteAdditionalSudoPermissions}" \
16571668
AWS_DEFAULT_REGION="${AWS::Region}" \

0 commit comments

Comments
 (0)