feat(api): add stable build ID override via spec.workerOptions.buildID #176
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Adds support for user-controlled build IDs via
spec.workerOptions.buildID, enabling rolling updates for non-workflow code changes while preserving new deployment creation for workflow code changes.Problem
With PINNED versioning strategy and long-running workflows, any pod spec change (image tag, env vars, resources) generates a new build ID, causing deployment proliferation - potentially 10-15 active deployments running simultaneously, causing resource waste and operational complexity.
Solution
Allow users to set a stable build ID via
spec.workerOptions.buildID. When the build ID is stable but pod spec changes, trigger a rolling update instead of creating a new deployment.API Changes
New optional field in
WorkerOptions:Usage
Drift Detection
When
spec.workerOptions.buildIDis set, the controller detects spec drift by directly comparing the deployed spec with the desired spec (images, resources, replicas, etc.). This is simple and transparent - no hidden state required.Behavior Matrix
Test Plan
go test ./...passes🤖 Generated with Claude Code