The VPC Creation workflow provisions the VRF metadata for a new VPC at a site. A VPC in this context is a tenant-scoped routing domain modeled as a VRF on the managed switches; creation is the metadata step that allocates the route distinguisher (RD) and registers the VRF objects in Nautobot. No switches are touched by this workflow — applying the new VPC to a device happens through VPC Assignment, and re-rendering and redeploying tenant configuration happens through VPC Tenant Change.
Creation is idempotent on vpc_id — re-running with an existing ID returns the already-existing VRFs rather than creating new ones.
This workflow is experimental and not intended for general use. Use it only in test or pilot environments.
Before running, confirm:
rd_min..rd_max window. The workflow’s RD allocator pulls the first available RD in that window.After submission, a status page shows the single create_vpc stage. The workflow returns a result with two lists: created_vrfs (newly provisioned in this run) and existing_vrfs (already present at start time).
The workflow runs one stage. No human approval is required.
create_vpc — Allocate the RD and provision VRF objects.
Queries Nautobot for any existing VRFs matching the vpc_id + namespace_tag. If they exist, the stage short-circuits with the existing-VRFs list and the result is treated as a successful no-op. Otherwise, the activity allocates the first available RD in [rd_min, rd_max] and calls provision_vrf to register the VRF in Nautobot. The stage display reports the created VRFs.
After the workflow reports success, confirm:
create_vpc shows green and the result’s created_vrfs or existing_vrfs list contains the expected VRF objects.vpc_id returns immediately with existing_vrfs populated — confirming idempotency.create_vpc fails with “no available route distinguishers”.
The [rd_min, rd_max] window is exhausted. Either widen the window via the optional inputs, or audit the site’s existing VRFs and reclaim RDs no longer in use before retrying.
create_vpc fails with “Failed to create VRFs”.
The Nautobot write to register the VRF failed. Check Nautobot’s logs and confirm the site, tenant, and namespace tag are correctly modeled before re-running.
The result has empty created_vrfs and a populated existing_vrfs.
The VPC already existed — the workflow short-circuited. This is the expected idempotent behavior.