fix: default Azure dual-pool autoscaling - #659
Open
adamrtalbot wants to merge 1 commit into
Open
Conversation
Explicitly enable autoscaling for Azure Batch Forge head and worker pools when their disable flags are omitted. Closes #658
adamrtalbot
marked this pull request as ready for review
August 7, 2026 11:06
zhliUU
added a commit
to Aletechdev/ALE_Yeast
that referenced
this pull request
Aug 31, 2026
`tw compute-envs add azure-batch forge --dual-pool` omits headPool.autoScale /
workerPool.autoScale from the request, so Azure builds enableAutoScale: False —
fixed-size pools billing 24/7 (~$66/day, measured 2026-08-07). Dual-pool CEs were
therefore being created by hand in the web UI.
They no longer are. `tw compute-envs export`/`import` round-trip autoScale, so
13_create_compute_env.sh imports a readback of a known-good CE and then runs the
verifier. No REST client was needed: the earlier "the CLI cannot express it"
conclusion was drawn from `add ... forge`'s flag set and over-generalised to tw.
Verified end to end with a throwaway CE: 12_verify_compute_env.sh 6/6, Azure
enableAutoScale True on both pools, drained to 0 + 0 after 17 minutes, deleted
with pools and disks disposed. Cost ~5 node-minutes.
Two corrections recorded alongside the original incident entry, which is kept
intact so the wrong conclusion is not re-derived:
- `add ... forge` CAN set autoscale via explicit --head-no-auto-scale=false
--worker-no-auto-scale=false (undocumented; seqeralabs/tower-cli#658).
Kept as an escape hatch only — that route has no flags for jobMaxWallClockTime,
deleteJobsOnCompletion, deleteTasksOnCompletion or terminateJobsOnCompletion,
so it silently takes Platform defaults for the four settings our CEs pin.
- autoScale is omitted from the payload, not sent as null; the null is
Platform's readback of the missing field.
Upstream fix seqeralabs/tower-cli#659 is unmerged and 0.38.0 is the latest
release, so there is no version to upgrade to.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Why
Azure Batch Forge dual-pool compute environments omitted
headPool.autoScaleandworkerPool.autoScalewhen the corresponding disable flags were not supplied. This allowed the resulting pools to behave as fixed-size pools even though the CLI presents autoscaling as the default.Closes #658.
What
truefor head and worker pools by default.--head-no-auto-scaleand--worker-no-auto-scalebehavior by setting the selected pool tofalse.Impact
Dual-pool VM counts are now serialized as autoscaling maximums by default, matching the CLI help and single-pool behavior. Existing users who pass the disable flags retain fixed-size pools.