Skip to content

Change CPU arch default value/validation - #4136

Open
un-def wants to merge 1 commit into
masterfrom
pr_change_cpu_arch_default
Open

Change CPU arch default value/validation#4136
un-def wants to merge 1 commit into
masterfrom
pr_change_cpu_arch_default

Conversation

@un-def

@un-def un-def commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator
  • In the fleet spec, None/missing value now means "any arch", not "must be inferred and set"
  • In the run spec, None/missing value now means "any arch supported by the image", not "must be inferred and set"
  • The arch inferred from the image registry is set per-JobSpec (not RunSpec) via JobConfigurator. As a consequence, resources.cpu.arch must now be set in addition to commands and user to avoid contacting the image registry (e.g., when a local image not pushed to the registry is used)
  • As the arch is no longer inferred from GPU models, the image/cpu.arch field combination is only validated when cpu.arch is explicitly set to arm. A configuration that requests an NVIDIA ARM chip via gpu but sets neither image nor cpu.arch is valid now
  • Relaxing resources.cpu.arch from a specific value to null is treated as a compatible change, so re-applying an unchanged configuration after a server upgrade neither redeploys service replicas nor fails the in-place update
  • image: "scratch" now has a special meaning -- it forces the server to use some dummy defaults instead of contacting the image registry to extract optional field values from the image config. Used by dstack offer

Fixes: #4056

* In the fleet spec, None/missing value now means "any arch", not
  "must be inferred and set"
* In the run spec, None/missing value now means "any arch supported by
  the image", not "must be inferred and set"
* The arch inferred from the image registry is set per-JobSpec (not
  RunSpec) via JobConfigurator. As a consequence, resources.cpu.arch
  must now be set in addition to commands and user to avoid contacting
  the image registry (e.g., when a local image not pushed to the
  registry is used)
* As the arch is no longer inferred from GPU models, the image/cpu.arch
  field combination is only validated when cpu.arch is explicitly set
  to arm. A configuration that requests an NVIDIA ARM chip via gpu but
  sets neither image nor cpu.arch is valid now
* Relaxing resources.cpu.arch from a specific value to null is treated
  as a compatible change, so re-applying an unchanged configuration
  after a server upgrade neither redeploys service replicas nor fails
  the in-place update
* image: "scratch" now has a special meaning -- it forces the server
  to use some dummy defaults instead of contacting the image registry
  to extract optional field values from the image config. Used by
  `dstack offer`

Fixes: #4056
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.

Fleet-pinned offer queries return no offers for ARM fleets unless cpu.arch is set explicitly

1 participant