Skip to content

Commit 140e518

Browse files
docs: add example wiring diagram
also experiment with adding line numbers for listings --------- Signed-off-by: Pau Capdevila <pau@githedgehog.com> Signed-off-by: Logan Blyth <logan@githedgehog.com> Co-authored-by: Quentin Monnet <qmo@qmon.net>
1 parent e653648 commit 140e518

File tree

2 files changed

+337
-15
lines changed

2 files changed

+337
-15
lines changed

docs/install-upgrade/build-wiring.md

Lines changed: 332 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# Build Wiring Diagram
22

3-
!!! warning ""
4-
Under construction.
53

64
## Overview
75

@@ -56,28 +54,34 @@ OPTIONS:
5654
```
5755

5856
### Sample Switch Configuration
59-
```yaml
57+
``` { .yaml .annotate linenums="1" }
6058
apiVersion: wiring.githedgehog.com/v1beta1
6159
kind: Switch
6260
metadata:
6361
name: ds3000-02
6462
spec:
65-
boot:
63+
boot: # Serial or MAC can be used
6664
serial: ABC123XYZ
65+
mac: 34:AD:61:00:02:03 # Usually the first management port MAC address
6766
role: server-leaf
68-
description: leaf-2
69-
profile: celestica-ds3000
70-
portBreakouts:
67+
description: rack 5, aisle 3, RU 22
68+
profile: celestica-ds3000 # (1)!
69+
portBreakouts: # (2)!
7170
E1/1: 4x10G
7271
E1/2: 4x10G
7372
E1/17: 4x25G
7473
E1/18: 4x25G
7574
E1/32: 4x25G
76-
redundancy:
77-
group: mclag-1
78-
type: mclag
75+
redundancy: # (3)!
76+
group: eslag-1
77+
type: eslag
7978
```
8079

80+
1. See the [list](../reference/profiles.md) of profile names
81+
2. More information in the [User Guide](../user-guide/profiles.md#port-naming)
82+
3. Could be MCLAG, ESLAG or nothing, more details in [Redundancy
83+
Groups](../user-guide/devices.md#redundnacy-groups)
84+
8185
## Design Discussion
8286
This section is meant to help the reader understand how to assemble the primitives presented by the Fabric API into a functional fabric.
8387

@@ -279,3 +283,321 @@ The dotted line in the diagram shows the traffic flow for remote peering. The tr
279283

280284
A VPC loopback is a physical cable with both ends plugged into the same switch, suggested but not required to be the adjacent ports. This loopback allows two different VPCs to communicate with each other. This is due to a Broadcom limitation.
281285

286+
## Sample Wiring Diagram
287+
288+
The YAML listing below shows a complete wiring diagram. It illustrates how switches
289+
from a single vendor can be arranged to form a fabric. There are no IP
290+
addresses or ASN numbers in this listing, the `hhfab build` step creates those as part
291+
of creating the fabric. To physically connect this topology, 16 cables are
292+
needed for the fabric links, 8 cables are needed for the loop back connections.
293+
Additional cables are needed to connect servers into the fabric.
294+
295+
``` {.yaml .annotate linenums="1" title="wiring_diagram.yaml"}
296+
#
297+
# VLANNamespaceList
298+
#
299+
apiVersion: wiring.githedgehog.com/v1beta1
300+
kind: VLANNamespace
301+
metadata:
302+
name: default
303+
spec:
304+
ranges:
305+
- from: 1000
306+
to: 2999
307+
#
308+
# IPv4NamespaceList
309+
#
310+
---
311+
apiVersion: vpc.githedgehog.com/v1beta1
312+
kind: IPv4Namespace
313+
metadata:
314+
name: default
315+
spec:
316+
subnets:
317+
- 10.0.0.0/16
318+
#
319+
# SwitchGroupList
320+
#
321+
---
322+
apiVersion: wiring.githedgehog.com/v1beta1
323+
kind: SwitchGroup
324+
metadata:
325+
name: empty
326+
spec: {}
327+
#
328+
# SwitchList
329+
#
330+
---
331+
apiVersion: wiring.githedgehog.com/v1beta1
332+
kind: Switch
333+
metadata:
334+
name: leaf-01
335+
spec:
336+
boot:
337+
mac: 0c:20:12:ff:00:00 # CHANGE ME
338+
description: leaf-01
339+
profile: celestica-ds3000
340+
redundancy: {}
341+
role: server-leaf
342+
---
343+
apiVersion: wiring.githedgehog.com/v1beta1
344+
kind: Switch
345+
metadata:
346+
name: leaf-02
347+
spec:
348+
boot:
349+
mac: 0c:20:12:ff:01:00 # CHANGE ME
350+
description: leaf-02
351+
profile: celestica-ds3000
352+
redundancy: {}
353+
role: server-leaf
354+
---
355+
apiVersion: wiring.githedgehog.com/v1beta1
356+
kind: Switch
357+
metadata:
358+
name: leaf-03
359+
spec:
360+
boot:
361+
mac: 0c:20:12:ff:02:00 # CHANGE ME
362+
description: leaf-03
363+
profile: celestica-ds3000
364+
redundancy: {}
365+
role: server-leaf
366+
---
367+
apiVersion: wiring.githedgehog.com/v1beta1
368+
kind: Switch
369+
metadata:
370+
name: leaf-04
371+
spec:
372+
boot:
373+
mac: 0c:20:12:ff:03:00 # CHANGE ME
374+
description: leaf-04
375+
profile: celestica-ds3000
376+
redundancy: {}
377+
role: server-leaf
378+
---
379+
apiVersion: wiring.githedgehog.com/v1beta1
380+
kind: Switch
381+
metadata:
382+
name: spine-01
383+
spec:
384+
boot:
385+
mac: 0c:20:12:ff:05:00 # CHANGE ME
386+
description: spine-01
387+
profile: celestica-ds4000
388+
portBreakouts:
389+
E1/1: 4x100G
390+
E1/2: 4x100G
391+
redundancy: {}
392+
role: spine
393+
---
394+
apiVersion: wiring.githedgehog.com/v1beta1
395+
kind: Switch
396+
metadata:
397+
name: spine-02
398+
spec:
399+
boot:
400+
mac: 0c:20:12:ff:06:00 # CHANGE ME
401+
description: spine-02
402+
profile: celestica-ds4000
403+
portBreakouts:
404+
E1/1: 4x100G
405+
E1/2: 4x100G
406+
redundancy: {}
407+
role: spine
408+
#
409+
# ConnectionList
410+
#
411+
---
412+
apiVersion: wiring.githedgehog.com/v1beta1
413+
kind: Connection
414+
metadata:
415+
name: leaf-01--vpc-loopback
416+
spec:
417+
vpcLoopback:
418+
links:
419+
- switch1:
420+
port: leaf-01/E1/12
421+
switch2:
422+
port: leaf-01/E1/13
423+
- switch1:
424+
port: leaf-01/E1/14
425+
switch2:
426+
port: leaf-01/E1/15
427+
---
428+
apiVersion: wiring.githedgehog.com/v1beta1
429+
kind: Connection
430+
metadata:
431+
name: leaf-02--vpc-loopback
432+
spec:
433+
vpcLoopback:
434+
links:
435+
- switch1:
436+
port: leaf-02/E1/13
437+
switch2:
438+
port: leaf-02/E1/14
439+
- switch1:
440+
port: leaf-02/E1/15
441+
switch2:
442+
port: leaf-02/E1/16
443+
---
444+
apiVersion: wiring.githedgehog.com/v1beta1
445+
kind: Connection
446+
metadata:
447+
name: leaf-03--vpc-loopback
448+
spec:
449+
vpcLoopback:
450+
links:
451+
- switch1:
452+
port: leaf-03/E1/8
453+
switch2:
454+
port: leaf-03/E1/9
455+
- switch1:
456+
port: leaf-03/E1/10
457+
switch2:
458+
port: leaf-03/E1/11
459+
---
460+
apiVersion: wiring.githedgehog.com/v1beta1
461+
kind: Connection
462+
metadata:
463+
name: leaf-04--vpc-loopback
464+
spec:
465+
vpcLoopback:
466+
links:
467+
- switch1:
468+
port: leaf-04/E1/9
469+
switch2:
470+
port: leaf-04/E1/10
471+
- switch1:
472+
port: leaf-04/E1/11
473+
switch2:
474+
port: leaf-04/E1/12
475+
---
476+
apiVersion: wiring.githedgehog.com/v1beta1
477+
kind: Connection
478+
metadata:
479+
name: spine-01--fabric--leaf-01
480+
spec:
481+
fabric:
482+
links:
483+
- leaf:
484+
port: leaf-01/E1/8
485+
spine:
486+
port: spine-01/E1/1/1
487+
- leaf:
488+
port: leaf-01/E1/9
489+
spine:
490+
port: spine-01/E1/2/1
491+
---
492+
apiVersion: wiring.githedgehog.com/v1beta1
493+
kind: Connection
494+
metadata:
495+
name: spine-01--fabric--leaf-02
496+
spec:
497+
fabric:
498+
links:
499+
- leaf:
500+
port: leaf-02/E1/9
501+
spine:
502+
port: spine-01/E1/1/2
503+
- leaf:
504+
port: leaf-02/E1/10
505+
spine:
506+
port: spine-01/E1/2/2
507+
---
508+
apiVersion: wiring.githedgehog.com/v1beta1
509+
kind: Connection
510+
metadata:
511+
name: spine-01--fabric--leaf-03
512+
spec:
513+
fabric:
514+
links:
515+
- leaf:
516+
port: leaf-03/E1/4
517+
spine:
518+
port: spine-01/E1/1/3
519+
- leaf:
520+
port: leaf-03/E1/5
521+
spine:
522+
port: spine-01/E1/2/3
523+
---
524+
apiVersion: wiring.githedgehog.com/v1beta1
525+
kind: Connection
526+
metadata:
527+
name: spine-01--fabric--leaf-04
528+
spec:
529+
fabric:
530+
links:
531+
- leaf:
532+
port: leaf-04/E1/5
533+
spine:
534+
port: spine-01/E1/1/4
535+
- leaf:
536+
port: leaf-04/E1/6
537+
spine:
538+
port: spine-01/E1/2/4
539+
---
540+
apiVersion: wiring.githedgehog.com/v1beta1
541+
kind: Connection
542+
metadata:
543+
name: spine-02--fabric--leaf-01
544+
spec:
545+
fabric:
546+
links:
547+
- leaf:
548+
port: leaf-01/E1/10
549+
spine:
550+
port: spine-02/E1/1/1
551+
- leaf:
552+
port: leaf-01/E1/11
553+
spine:
554+
port: spine-02/E1/2/1
555+
---
556+
apiVersion: wiring.githedgehog.com/v1beta1
557+
kind: Connection
558+
metadata:
559+
name: spine-02--fabric--leaf-02
560+
spec:
561+
fabric:
562+
links:
563+
- leaf:
564+
port: leaf-02/E1/11
565+
spine:
566+
port: spine-02/E1/1/2
567+
- leaf:
568+
port: leaf-02/E1/12
569+
spine:
570+
port: spine-02/E1/2/2
571+
---
572+
apiVersion: wiring.githedgehog.com/v1beta1
573+
kind: Connection
574+
metadata:
575+
name: spine-02--fabric--leaf-03
576+
spec:
577+
fabric:
578+
links:
579+
- leaf:
580+
port: leaf-03/E1/6
581+
spine:
582+
port: spine-02/E1/1/3
583+
- leaf:
584+
port: leaf-03/E1/7
585+
spine:
586+
port: spine-02/E1/2/3
587+
---
588+
apiVersion: wiring.githedgehog.com/v1beta1
589+
kind: Connection
590+
metadata:
591+
name: spine-02--fabric--leaf-04
592+
spec:
593+
fabric:
594+
links:
595+
- leaf:
596+
port: leaf-04/E1/7
597+
spine:
598+
port: spine-02/E1/1/4
599+
- leaf:
600+
port: leaf-04/E1/8
601+
spine:
602+
port: spine-02/E1/2/4
603+
```

0 commit comments

Comments
 (0)