Skip to content

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-seed
  • core/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

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_key
  • record_url
  • record_format
  • record_version
  • record_sha256
  • source_iso_url
  • records

Typical downstream reference:

record_state_ref: "core/shared/vyos-image-record#vyos_default"
record_key: "vyos-1.5"

Notes

  • Prefer core/shared/vyos-image-build for normal operator workflows.
  • Prefer a pinned record you control in object storage.
  • Keep image_source_url in seed modules as an explicit override path only.
  • Do not point this contract at a mutable latest URL.