Skip to content

core/onprem/vyos-template-seed

Epoch: 2026E

Purpose

Seed or discover a Proxmox VyOS template and publish reusable template state for downstream VyOS edge modules.

Why it exists

  • VyOS template lifecycle should be state-first and idempotent.
  • Operators need one default path that handles both "template already exists" and "template missing".
  • Proxmox and Hetzner image consumption should share one canonical artifact contract where possible.

Required behaviour

  • MUST support seed-or-skip behavior:
  • if template exists and is valid, publish without rebuilding
  • if missing and seed_if_missing=true, seed from artifact_state_ref or explicit image_source_url
  • if rebuild_if_exists=true, rebuild template from scratch
  • MUST treat artifact_state_ref as the default image source and use explicit image_source_url only as an override path.
  • MUST validate that a discovered or seeded template is cloud-init-ready for downstream platform/onprem/vyos-edge consumption.
  • MUST fail clearly when a template exists but is not usable for first-boot cloud-init specialization.
  • MUST publish at least:
  • template_key
  • template_vm_id
  • template_name
  • templates
  • MUST fail clearly when no usable image source is available.
  • MUST preserve env-scoped state semantics consistent with other foundational modules.

Product boundary

  • This module owns Proxmox template seed/discovery and publication only.
  • It MUST NOT own routed edge policy or BGP/IPsec configuration.
  • It SHOULD be the default upstream for platform/onprem/vyos-edge.