Skip to content

Add an option to fail startup if we cannot fetch instance tags#3801

Merged
omehegan merged 2 commits intomainfrom
owen/PF-9576
Apr 28, 2026
Merged

Add an option to fail startup if we cannot fetch instance tags#3801
omehegan merged 2 commits intomainfrom
owen/PF-9576

Conversation

@omehegan
Copy link
Copy Markdown
Contributor

@omehegan omehegan commented Apr 7, 2026

Description

This is a customer-requested feature. They use EC2 instance tags to signal which AWS launch template should be used to launch an instance. In their workflow, when instance tags are unavailable (they've seen this due to AWS API rate-limiting), the agent will start up and connect to Buildkite, but isn't usable for their builds. They requested an option to make this conditional fatal during agent startup, to make it easier to diagnose and respond to the issue.

I considered using an agent-startup hook to check this and abort the startup if tags are not available, but this code change is pretty self-contained, and it felt low-risk and cleaner than the hook workaround.

Context

PF-9576

Changes

Adds a --fail-on-missing-tags argument to buildkite-agent start.

Exit the agent with an error if any enabled cloud tag source (EC2, ECS, GCP) fails to return tags (default: false) [$BUILDKITE_AGENT_FAIL_ON_MISSING_TAGS]

Testing

  • Tests have run locally (with go test ./...). Buildkite employees may check this if the pipeline has run automatically.
  • Code is formatted (with go tool gofumpt -extra -w .)

Disclosures / Credits

Claude wrote the code and tests. I reviewed the changes myself, to the best of my ability, and also used a separate Claude agent to poke holes, and made a couple of minor improvements based on that feedback.

@omehegan omehegan requested review from a team as code owners April 7, 2026 05:13
@ss1909
Copy link
Copy Markdown
Contributor

ss1909 commented Apr 24, 2026

Test results:

  1. --tags-from-ec2-meta-data-paths "my-tag=meta-data/instance-id" \
image
  1. --tags-from-ec2-tags \
image
  1. --tags-from-ec2-meta-data \
image
  1. --tags-from-ec2
image

@ss1909
Copy link
Copy Markdown
Contributor

ss1909 commented Apr 24, 2026

Made one little change and did a bunch of testing, but lgtm!

@omehegan omehegan merged commit 1faacaf into main Apr 28, 2026
3 checks passed
@omehegan omehegan deleted the owen/PF-9576 branch April 28, 2026 22:36
@buildkate buildkate mentioned this pull request May 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants