Skip to main content

Developer guide

This guide is for contributors who want to extend, debug, or maintain the AVD pipeline — adding device roles, transform outputs, schema fields, or fixing pipeline issues. It assumes familiarity with Python, GraphQL, and Infrahub generators/transforms.

Start here​

  1. Architecture Overview — system components, data model hierarchy, and the generator pipeline at a glance.
  2. AVD Pipeline → Overview — the two-phase pipeline (hostvars → structured config) and the PyAVD version target.

Reference​

  • Schemas — every YAML schema file and the kinds it defines.
  • Generators — the generator framework, file structure, and per-generator behaviour.
  • Transforms — Python and Jinja2 transforms, queries, and content types.
  • Checks — proposed-change validation checks, including CloudVision configuration validation.

AVD pipeline​

The AVD pipeline is the technically distinguishing piece of this solution and has its own sub-section:

  • Overview — two-phase pipeline + PyAVD version pin.
  • Hostvars Reference — the PyAVD-compatible structure produced per device role.
  • Transforms — avd_eos_config, avd_fabric_doc, avd_device_doc.
  • AvdArtifact & File Storage — the AvdArtifact node, child file nodes, checksum-based change detection.
  • Role Mapping — Infrahub roles → AVD device types.
  • Extending the Pipeline — worked examples for new roles, new transform outputs, new hostvar fields.
  • Debugging the Pipeline — intermediate-file inspection, single-generator re-runs, common failure modes.

Looking for the operator guides?​

If you want to use the system to provision fabrics and view configurations without modifying code, start with Quick Start and the how-to guides.