The Need
Every time a new building needed a network, it was weeks of spreadsheet work. Engineers manually picking devices, calculating port counts, figuring out cabling, assigning IP addresses by hand. The same work, repeated hundreds of times, with a different person making slightly different decisions each time.
We asked ourselves: what if we could describe a building in 20 lines of YAML and have the entire network design generated automatically? Every cable, every port assignment, every IP address, every ordering file. Consistent. Repeatable. Auditable. That is what Fleet-as-Code does.
What is Fleet-as-Code
A fully automated, policy-driven platform that transforms a simple YAML description of a building into everything needed to deploy a complete enterprise network. Hardware ordering, physical cabling, IP addressing, Day-0 device configuration. All generated from policy.
How we Solved
graph LR
subgraph "Traditional Approach"
direction TB
M1[Weeks of manual BOM creation]
M2[Error-prone cable spreadsheets]
M3[Inconsistent standards across sites]
M4[IP planning by hand in Excel]
M5[No audit trail or repeatability]
end
subgraph "Fleet-as-Code"
direction TB
A1[BOM generated in seconds]
A2[Every cable auto-calculated]
A3[Enterprise policy enforced everywhere]
A4[IP plan auto-allocated from IPAM]
A5[Full Git history and governance]
end
M1 -.->|Replaced by| A1
M2 -.->|Replaced by| A2
M3 -.->|Replaced by| A3
M4 -.->|Replaced by| A4
M5 -.->|Replaced by| A5
Core Principles
These are the principles that drive every design decision in the platform:
| Principle | What It Means in Practice |
|---|---|
| Declare Intent | A site input says “I need 96 ports on floor 1” not “give me 2 stacks of C9300-48T” |
| Encode Once | Device specs, topology rules, VLAN schemas live in YAML policy files. Change them once, every future site picks them up. |
| Fail Loud | If a port count exceeds what a stack can serve, the build fails with a clear error. It never silently under-provisions. |
| Deterministic | Run the same input today or six months from now. You get the same BOM, same cables, same IPs. |
| Traceable | Every generated artifact lands in Git. Every site goes through governance approval before ordering. |
| Humans Define, Machines Execute | Network architects write topology policies. The engine does the multiplication, the port math, the cable selection. |
How It Works
flowchart LR
A["DEFINE
Simple YAML input
~20 lines of config"]
B["GENERATE
Policy engine builds
everything automatically"]
C["DELIVER
BOM, cables, IP plan,
Day-0 templates"]
D["DEPLOY
Order, build, provision
with confidence"]
A --> B --> C --> D
style A fill:#1565c0,color:#fff
style B fill:#2e7d32,color:#fff
style C fill:#ef6c00,color:#fff
style D fill:#6a1b9a,color:#fff
Platform Architecture
graph TB
subgraph "Fleet-as-Code Engine"
ENGINE["Policy-Driven
Generation Platform"]
end
subgraph "Enterprise Standards"
POLICIES["Topology Policies
Device Catalogs
Address Schemas"]
end
subgraph "Network Platforms"
CATC["Cisco Catalyst Center"]
IPAM["IPAM"]
end
subgraph "Enterprise Systems"
SNOW["ServiceNow
(Change Mgmt)"]
GITHUB["GitHub
(Artifact Store)"]
end
POLICIES -->|"Standards and
device rules"| ENGINE
ENGINE -->|"Day-0 templates"| CATC
ENGINE -->|"Subnet allocation"| IPAM
ENGINE -->|"Change requests"| SNOW
ENGINE -->|"All outputs"| GITHUB
style ENGINE fill:#1a73e8,color:#fff
style POLICIES fill:#ff6d00,color:#fff
style CATC fill:#049fd9,color:#fff
style IPAM fill:#049fd9,color:#fff
style SNOW fill:#6b4fbb,color:#fff
style GITHUB fill:#24292e,color:#fff
The Generation Pipeline
sequenceDiagram
participant Input as Site YAML
participant Policy as Policy Engine
participant BOM as BOM Builder
participant Conn as Connectivity Builder
participant Net as Network Planner
participant Out as Outputs
Note over Input,Out: Fully Automated, No Human Intervention Required
Input->>Policy: Building requirements (floors, ports, services)
Policy->>Policy: Resolve topology + device selection rules
rect rgb(230, 245, 255)
Note over Policy,Out: Stage 1: Materials
Policy->>BOM: Apply device selection + stack sizing
BOM->>Out: BOM CSV + CCW ordering file
end
rect rgb(230, 255, 230)
Note over Policy,Out: Stage 2: Physical Build
Policy->>Conn: Resolve ports, cables, power, console
Conn->>Out: Connectivity CSV + Rack diagrams + Topology SVG
end
rect rgb(255, 245, 230)
Note over Policy,Out: Stage 3: Logical Build
Conn->>Net: Device inventory + address blocks
Net->>Out: Network plan + Address table + CATC templates
end
rect rgb(245, 230, 255)
Note over Policy,Out: Stage 4: Publish
Out->>Out: Push all artifacts to GitHub + governance docs
end
From Input to Output: An Example
flowchart LR
subgraph "INPUT (20 lines)"
YAML["site_name: SITE-ABC
topology: standard_enterprise
floors:
- floor: 1
rooms:
- type: BD
ports: 96
aps: 12
- type: FD
ports: 48
aps: 6
services: [voice, wireless]"]
end
subgraph "OUTPUT (All artifacts)"
direction TB
O1["47 devices with PIDs"]
O2["200+ cable connections"]
O3["94 power assignments"]
O4["32 VLANs with IPs"]
O5["Day-0 config templates"]
O6["Rack + topology diagrams"]
end
YAML --> O1
YAML --> O2
YAML --> O3
YAML --> O4
YAML --> O5
YAML --> O6
style YAML fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style O1 fill:#f3e5f5,stroke:#7b1fa2
style O2 fill:#f3e5f5,stroke:#7b1fa2
style O3 fill:#f3e5f5,stroke:#7b1fa2
style O4 fill:#f3e5f5,stroke:#7b1fa2
style O5 fill:#f3e5f5,stroke:#7b1fa2
style O6 fill:#f3e5f5,stroke:#7b1fa2
What Gets Generated
mindmap root((Site Input
~20 lines YAML)) Materials Bill of Materials CSV CCW Ordering File DHCP Scopes Physical Build Connectivity Matrix Rack Elevation Diagrams Network Topology SVG Port Maps Logical Build Network Plan (L2/L3) Address Table CATC Day-0 Templates CMDB Attributes Documentation Governance Slide (PPTX) Site README Pipeline Events
Key Capabilities
| Capability | Description |
|---|---|
| Policy-Driven Design | Enterprise standards encoded once, applied everywhere automatically |
| Multi-Topology Support | Small offices, standard enterprise sites, multi-building campuses, all from one engine |
| Complete Physical Build | Every cable, port, PDU socket, and console connection calculated |
| IP Address Automation | Subnets allocated from IPAM with profile-based VLAN assignment |
| Day-0 Provisioning | Catalyst Center composite templates generated for zero-touch deployment |
| Governance and Compliance | Full audit trail via Git, governance slides for PM approval |
| CCW-Ready Ordering | Direct import to Cisco Commerce Workspace for hardware procurement |
| Visual Documentation | Auto-generated rack elevations and topology diagrams (SVG) |
| Topology Inheritance | Base topologies extend via overlays. Maintain once, deploy variants. |
| Fail Loud, Never Guess | Validation at every step ensures no incorrect hardware ships |
Scale and Flexibility
graph TB
subgraph "One Platform, Many Site Types"
SMALL["Small Office
Single WAN router, no core
One access stack"]
MEDIUM["Standard Enterprise
Redundant WAN, dual core
Multi-stack access layers"]
LARGE["Multi-Building Campus
Campus backbone
Satellite building links"]
end
ENGINE["Fleet-as-Code
Same engine, same policies"] --> SMALL
ENGINE --> MEDIUM
ENGINE --> LARGE
style ENGINE fill:#1a73e8,color:#fff
style SMALL fill:#e8f5e9,stroke:#2e7d32
style MEDIUM fill:#fff3e0,stroke:#ef6c00
style LARGE fill:#fce4ec,stroke:#c62828
The same policy engine handles all of these. The only difference is the topology file selected in the site input. Device selection, stack sizing, cabling, addressing: all derived from that single choice.
Business Value
mindmap
root((Fleet-as-Code))
Operational Efficiency
90% faster site deployment
Seconds vs weeks for BOM generation
Zero manual spreadsheet work
Risk Reduction
Policy-enforced accuracy
No human calculation errors
Validated at every step
Consistency at Scale
Hundreds of sites, one standard
Enterprise-wide compliance
Topology policies maintained once
Agility
Infrastructure as Code
Repeatable and auditable
Rapid topology iteration
Summary
Fleet-as-Code transforms network site deployment from a manual, weeks-long engineering effort into a fully automated, policy-driven generation pipeline. Organizations deploy consistent, compliant network infrastructure at scale with zero manual calculation. The standards are written by humans. The execution is handled by machines.