You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/architecture/management.md
+26-26Lines changed: 26 additions & 26 deletions
Original file line number
Diff line number
Diff line change
@@ -42,27 +42,27 @@ FC -->|Watches CRs| K8S
42
42
43
43
---
44
44
45
-
## **Management Workflow Overview**
45
+
## Management Workflow Overview
46
46
47
-
### **User**
48
-
-**Creates Fabric CR YAMLs** and applies them through standard Kubernetes resource management.
49
-
-**Uses [`kubectl`](https://kubernetes.io/docs/reference/kubectl/) and `kubectl fabric`** to interact with the Kubernetes API for fabric resource management.
50
-
- Can use their **own `kubectl` installation** or the one pre-installed on the control node as part of [k3s](https://k3s.io).
47
+
### User
48
+
- Creates Fabric CR YAMLs and applies them through standard Kubernetes resource management.
49
+
- Uses [`kubectl`](https://kubernetes.io/docs/reference/kubectl/) and `kubectl fabric` to interact with the Kubernetes API for fabric resource management.
50
+
- Can use their own `kubectl` installation or the one pre-installed on the control node as part of [k3s](https://k3s.io).
51
51
52
-
### **Kubernetes API Server (K8S)**
52
+
### Kubernetes API Server (K8S)
53
53
- Part of [Kubernetes](https://kubernetes.io).
54
-
- Manages Fabric Custom Resources (CRs) and interacts with the **Fabric Controller**.
54
+
- Manages Fabric Custom Resources (CRs) and interacts with the Fabric Controller.
55
55
56
-
### **kubectl & kubectl fabric**
56
+
### kubectl & kubectl fabric
57
57
-[`kubectl`](https://kubernetes.io/docs/reference/kubectl/) is the standard CLI tool for [Kubernetes](https://kubernetes.io).
58
58
-`kubectl fabric` is a plugin that extends `kubectl` with fabric-specific commands and interacts with the Kubernetes API Server. It supports the following commands:
59
-
-**vpc** – Manage VPCs: create, attach, peer, or wipe all related resources
60
-
-**switch** – Manage switches: get IP, SSH, serial, reboot, reinstall
- external – Manage external BGP peers and VPC peering
64
+
- wiring – Export fabric wiring diagrams
65
+
- inspect – Inspect and troubleshoot fabric resources:
66
66
-`fabric` – Overview of control nodes and switches
67
67
-`switch`, `port` – Status, counters, and usage
68
68
-`server`, `connection` – VPC/external attachments and link details
@@ -71,30 +71,30 @@ FC -->|Watches CRs| K8S
71
71
-`ip`, `mac` – Lookup usage across the fabric
72
72
-`access` – Check reachability between VPCs, servers, and IPs
73
73
74
-
### **Fabricator**
75
-
- Using the **hhfab** CLI you can **SSH** the control node and use **K9s** or **kubectl** and **kubectl fabric** to manage or monitor Fabric API objects.
74
+
### Fabricator
75
+
- Using the hhfab CLI you can SSH the control node and use K9s or kubectl and kubectl fabric to manage or monitor Fabric API objects.
76
76
77
-
### **K9s**
77
+
### K9s
78
78
- K9s is a terminal based Kubernetes UI that provides visibility and control over Kubernetes resources, allowing you to manage pods, nodes, services, logs, and Fabric resources efficiently. It includes some helper plugins:
79
-
-**SSH** – SSH into a fabric switch
80
-
-**Serial** – Open a serial connection to a fabric switch
81
-
-**Reboot** – Reboot a fabric switch
82
-
-**Power Reset** Perform a power reset on a fabric switch in the NOS
83
-
-**Reinstall** – Reinstall a fabric switch
79
+
- SSH – SSH into a fabric switch
80
+
- Serial – Open a serial connection to a fabric switch
81
+
- Reboot – Reboot a fabric switch
82
+
- Power Reset Perform a power reset on a fabric switch in the NOS
83
+
- Reinstall – Reinstall a fabric switch
84
84
85
85
---
86
86
87
-
## **GitOps Integration**
87
+
## GitOps Integration
88
88
89
89
GitOps is a continuous deployment approach where the desired state of a Kubernetes cluster is stored in Git. A GitOps controller monitors this repository and ensures the actual cluster state matches the declared state, using the Kubernetes API.
90
90
91
91
Hedgehog Fabric is fully compatible with GitOps workflows and can be managed declaratively using any GitOps-compatible tool such as [ArgoCD](https://argo-cd.readthedocs.io/en/stable/) or [Flux](https://fluxcd.io).
92
92
93
-
-**User Responsibilities:**
93
+
- User Responsibilities:
94
94
- Define Fabric Custom Resources (CRs) in YAML.
95
95
- Commit and push these CRs to a [Git repository](https://git-scm.com) for version control and collaboration.
96
96
97
-
-**GitOps Tool Responsibilities:**
97
+
- GitOps Tool Responsibilities:
98
98
- Monitor the Git repository for updates.
99
99
- Apply changes to the cluster automatically via the Kubernetes API Server.
Copy file name to clipboardExpand all lines: docs/architecture/overview.md
+25-25Lines changed: 25 additions & 25 deletions
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ This section provides an architectural understanding of Hedgehog Open Network Fa
4
4
5
5
Hedgehog Open Network Fabric leverages the Kubernetes API to manage its resources. All user-facing APIs are exposed as Kubernetes Custom Resources Definitions (CRDs), allowing users to manage Fabric resources using standard Kubernetes tools.
6
6
7
-
To make network switches Kubernetes-aware, the Fabric employs an **Agent** running on each switch. This agent acts as an interface between the Kubernetes control plane and the switch internal network configuration mechanisms. It continuously syncs desired state from Kubernetes via the Fabric Controller and applies configurations using **gNMI** (gRPC Network Management Interface).
7
+
To make network switches Kubernetes-aware, the Fabric employs an Agent running on each switch. This agent acts as an interface between the Kubernetes control plane and the switch internal network configuration mechanisms. It continuously syncs desired state from Kubernetes via the Fabric Controller and applies configurations using gNMI (gRPC Network Management Interface).
8
8
9
9
## Components
10
10
@@ -70,38 +70,38 @@ graph TD;
70
70
The key components essential for understanding the Fabric architecture are:
71
71
72
72
### Control Node Components
73
-
-**Fabric Controller**: The central control plane component that manages Fabric resources and configurations.
74
-
-**Fabric CLI (kubectl plugin)**: A `kubectl` plugin that provides an easy way to manage Fabric resources.
75
-
-**Fabric Proxy**: A pod responsible for collecting logs and metrics from switches (via Alloy) and forwarding them to an external system.
76
-
-**Fabricator**: A tool for installing and configuring Fabric, including virtual lab environments.
73
+
- Fabric Controller: The central control plane component that manages Fabric resources and configurations.
74
+
- Fabric CLI (kubectl plugin): A `kubectl` plugin that provides an easy way to manage Fabric resources.
75
+
- Fabric Proxy: A pod responsible for collecting logs and metrics from switches (via Alloy) and forwarding them to an external system.
76
+
- Fabricator: A tool for installing and configuring Fabric, including virtual lab environments.
77
77
78
78
### SONiC Switch Components
79
-
-**Fabric Agent**: Runs on each switch and applies configurations received from the control plane.
80
-
-**Alloy**: Collects logs and telemetry data from the switch.
81
-
-**gNMI Interface**: The main configuration API used by the Fabric Agent to interact with the switch.
82
-
-**Config DB**: The central database in SONiC responsible for maintaining switch configuration.
83
-
-**ASIC**: The hardware component handling packet forwarding.
79
+
- Fabric Agent: Runs on each switch and applies configurations received from the control plane.
80
+
- Alloy: Collects logs and telemetry data from the switch.
81
+
- gNMI Interface: The main configuration API used by the Fabric Agent to interact with the switch.
82
+
- Config DB: The central database in SONiC responsible for maintaining switch configuration.
83
+
- ASIC: The hardware component handling packet forwarding.
84
84
85
85
The SONiC architecture presented here is a high-level abstraction, for simplicity.
86
86
87
87
## Architecture Flow
88
88
89
-
### 1. **Fabric Installation & Configuration**
90
-
- The **Fabricator** tool installs and configures Hedgehog Fabric.
91
-
- It provisions **Flatcar Linux** for Control Nodes and automatically installs **K3s** (lightweight Kubernetes).
89
+
### 1. Fabric Installation & Configuration
90
+
- The Fabricator tool installs and configures Hedgehog Fabric.
91
+
- It provisions Flatcar Linux for Control Nodes and automatically installs K3s (lightweight Kubernetes).
92
92
- All components, including their dependencies, are deployed within Kubernetes.
93
93
94
-
### 2. **Fabric API & Resource Management**
95
-
- Hedgehog represents all infrastructure elements as **Fabric resources** using Kubernetes CRDs.
96
-
- These CRDs define **switches, servers, control nodes, external systems, and their interconnections**.
97
-
- The **Fabric Controller** watches these CRDs and manages configurations accordingly.
94
+
### 2. Fabric API & Resource Management
95
+
- Hedgehog represents all infrastructure elements as Fabric resources using Kubernetes CRDs.
96
+
- These CRDs define switches, servers, control nodes, external systems, and their interconnections.
97
+
- The Fabric Controller watches these CRDs and manages configurations accordingly.
98
98
99
-
### 3. **Switch Configuration & Management**
100
-
- The **Fabric Controller** communicates with the **Fabric Agent** on each switch via the Kubernetes API.
101
-
- The **Fabric Agent** applies configurations using the **gNMI** interface, updating the **Config DB**.
102
-
- The **Config DB** ensures that all settings are applied to the **ASIC** for packet forwarding.
99
+
### 3. Switch Configuration & Management
100
+
- The Fabric Controller communicates with the Fabric Agent on each switch via the Kubernetes API.
101
+
- The Fabric Agent applies configurations using the gNMI interface, updating the Config DB.
102
+
- The Config DB ensures that all settings are applied to the ASIC for packet forwarding.
103
103
104
-
### 4. **Telemetry & Monitoring**
105
-
- The **Alloy** agent on the switch collects logs and metrics.
106
-
- Logs and metrics are sent to the **Fabric Proxy** running in Kubernetes.
107
-
- The **Fabric Proxy** forwards this data to **LGTM**, an external logging and monitoring system.
104
+
### 4. Telemetry & Monitoring
105
+
- The Alloy agent on the switch collects logs and metrics.
106
+
- Logs and metrics are sent to the Fabric Proxy running in Kubernetes.
107
+
- The Fabric Proxy forwards this data to LGTM, an external logging and monitoring system.
0 commit comments