Operate Shared VyOS Image Registration Contract (HyOps)¶
Purpose¶
Register a single pinned VyOS disk record URL and provenance into HyOps state, then let both:
core/onprem/vyos-template-seedcore/hetzner/vyos-image-seed
consume that state by default.
This is the compatibility path for cases where the record already exists.
The default product path is now:
- build and publish with
core/shared/vyos-image-build - consume that state contract downstream
Use this module when you intentionally want to skip the build step and only publish the contract.
This still keeps the product DRY:
- build once
- publish once
- consume many
Related¶
Related reading¶
- Network routing contract
- Provision Hetzner VyOS Edge (HyOps Blueprint)
- Operate Shared VyOS Image Build Pipeline (HyOps)
Example¶
cd "$HOME/hybridops-core"
./.venv/bin/hyops validate --env dev --skip-preflight \
--module core/shared/vyos-image-record \
--inputs modules/core/shared/vyos-image-record/examples/inputs.min.yml
./.venv/bin/hyops apply --env dev \
--module core/shared/vyos-image-record \
--inputs modules/core/shared/vyos-image-record/examples/inputs.min.yml
Outputs¶
The module publishes:
record_keyrecord_urlrecord_formatrecord_versionrecord_sha256source_iso_urlrecords
Typical downstream reference:
record_state_ref: "core/shared/vyos-image-record#vyos_default"
record_key: "vyos-1.5"
Notes¶
- Prefer
core/shared/vyos-image-buildfor normal operator workflows. - Prefer a pinned record you control in object storage.
- Keep
image_source_urlin seed modules as an explicit override path only. - Do not point this contract at a mutable
latestURL.