Skip to content

Manifest reference

Hostwright reads one bounded YAML document named hostwright.yaml. The current contract is Manifest v3; the core repository maintains the complete schema and field reference.

version: 3
project: api-local
imagePolicy: require-digest
services:
api:
image: ghcr.io/example/api@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
resources:
requests:
cpus: 2
memory: 512MiB
limits:
cpus: 4
memory: 1GiB
command: ["/app/server", "serve"]
ports:
- "8080:8080"
restart:
policy: unless-stopped

Every service must declare non-empty resource requests and limits that include CPU and memory. Requests cannot exceed limits. Additional resource dimensions are accepted only when they appear on both sides and the selected runtime can enforce them.

version: 3 is required for current execution. Legacy v1/versionless and v2 manifests can be inspected with a deterministic migration preview. Preview does not edit the source file. Unsupported versions, fields, YAML features, and provider capabilities fail before mutation.

  • imagePolicy: require-digest validates image reference syntax. Registry retrieval and signature, SBOM, vulnerability, and provenance checks are separate commands and policies.
  • ports use the supported local provider behavior; unsupported exposure modes fail closed.
  • Compose conversion supports only the documented subset. It does not add Docker semantics to Manifest v3.
  • Scheduling constraints express local placement requirements. They do not enable multi-Mac scheduling or deferred accelerator support.

See the core Manifest v3 reference for supported fields, limits, and exact rejection behavior.