Skip to content

Commit 732758c

Browse files
committed
Annotate the Switch YAML object
Signed-off-by: Logan Blyth <[email protected]> Update docs/install-upgrade/build-wiring.md Co-authored-by: Quentin Monnet <[email protected]> fix typo in config.md Signed-off-by: Pau Capdevila <[email protected]>
1 parent c64a87d commit 732758c

File tree

2 files changed

+338
-16
lines changed

2 files changed

+338
-16
lines changed

docs/install-upgrade/build-wiring.md

Lines changed: 333 additions & 11 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,33 @@ 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:
66-
serial: ABC123XYZ
63+
boot: # Serial or MAC can be used
64+
serial: ABC123XYZ # alternative `mac: 34:AD:61:00:02:03` of 1GbE interface
6765
role: server-leaf
68-
description: leaf-2
69-
profile: celestica-ds3000
70-
portBreakouts:
66+
description: rack 5, aisle 3, RU 22
67+
profile: celestica-ds3000 # (1)!
68+
portBreakouts: # (2)!
7169
E1/1: 4x10G
7270
E1/2: 4x10G
7371
E1/17: 4x25G
7472
E1/18: 4x25G
7573
E1/32: 4x25G
76-
redundancy:
77-
group: mclag-1
78-
type: mclag
74+
redundancy: # (3)!
75+
group: eslag-1
76+
type: eslag
7977
```
8078

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

@@ -279,3 +282,322 @@ The dotted line in the diagram shows the traffic flow for remote peering. The tr
279282

280283
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.
281284

285+
## Sample Wiring Diagram
286+
287+
The YAML listing below shows a complete wiring diagram. It illustrates how switches
288+
from a single vendor can be arranged to form a fabric. There are no IP
289+
addresses or ASN numbers in this listing, the controller creates those as part
290+
of creating the fabric. To physically connect this topology, 16 cables are
291+
needed for the fabric links, 8 cables are needed for the loop back connections.
292+
Additional cables are needed to connect servers into the fabric.
293+
294+
``` {.yaml .annotate linenums="1" title="wiring_diagram.yaml"}
295+
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)