Skip to content

Add target-node CPU architecture semantics to SDL #674

Description

@Brad-Edwards

Gap

The SDL Node model has no CPU architecture attribute. Resources carries only RAM and CPU count; the existing runtime-package architecture field describes a package artifact, not the architecture required by the target node or guest.

That prevents an authored environment from expressing a realization-relevant node constraint and makes cross-backend equivalence ambiguous.

Current ownership boundary

This issue covers only the architecture semantics of the node described by SDL.

  • RAES owns the controlled architecture value, schema placement, validation, normalization, and compatibility semantics between a target node and its runtime packages.
  • env-packs, adapters, and backends own physical runner/host capability declarations, selection, negotiation, and realization evidence.
  • A backend manifest may say what a host can provide; it must not replace what the SDL says the target node requires.

Outcome

Add a first-class target-node CPU architecture requirement with a governed vocabulary and deterministic compatibility rules.

Acceptance criteria

  • The schema distinguishes target-node architecture from runtime-package architecture and backend host architecture.
  • Canonical vocabulary, aliases, normalization, and unknown/custom-value behavior are explicit.
  • Validation defines compatibility between a target node and each architecture-constrained package.
  • Absence has defined semantics and does not silently mean the current host architecture.
  • Generated contracts, examples, and semantic-diff behavior cover the field.
  • A conformant backend can report whether it can realize the requirement without RAES selecting a runner.

Non-goals

  • Modeling a specific cloud instance, runner image, or deployment host.
  • Backend scheduling or capability negotiation.
  • Assuming target-node and physical-host architectures are always identical.

Refs: #637 and adapters #21.

Requirements

  • DSL-438

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions