Skip to content

Commit 3b76341

Browse files
committed
chore: refine and deduplicate architecture pages
Signed-off-by: Pau Capdevila <[email protected]>
1 parent 471df45 commit 3b76341

File tree

2 files changed

+15
-33
lines changed

2 files changed

+15
-33
lines changed

docs/architecture/management.md

+13-33
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
# Fabric Management
22

3+
This section focuses on operational aspects of Hedgehog Fabric, explaining available tools and typical workflows for administrators. It builds upon the architectural concepts explained in the [Overview](overview.md).
4+
35
The installation of a Hedgehog Fabric deployment is carried out using Fabricator (hhfab CLI). Once deployed, ongoing operations are managed via the [Kubernetes](https://kubernetes.io) CLI, [`kubectl`](https://kubernetes.io/docs/reference/kubectl/).
46

5-
In this workflow, the Kubernetes API Server processes the Fabric Custom Resources (CRs) and forwards them to the Fabric Controller. The Fabric Controller then generates the required SONiC configurations and dispatches them to the Fabric Agent, which applies these configurations to the SONiC Config DB via gNMI. Simultaneously, Alloy collects metrics and logs from the SONiC switches, sending this information to the monitoring tools for continuous monitoring.
7+
In this workflow, the Kubernetes API Server processes the Fabric Custom Resources (CRs) and forwards them to the Fabric Controller. The Fabric Controller then translates these high-level network intents into concrete network configurations and manages their application to the underlying infrastructure. The Controller continuously monitors the state of the network resources, ensuring they match the desired state defined in the CRs.
68

7-
The diagram below illustrates the general workflow for fabric management as well as the interactions between control plane components and the SONiC switches that form the Fabric.
9+
The diagram below illustrates the general workflow for fabric management:
810

911
```mermaid
1012
graph TD
@@ -22,16 +24,6 @@ subgraph ControlNode["Control Node"]
2224
KubectlFabric["kubectl fabric"]
2325
end
2426
25-
%% SONiC Switch components
26-
subgraph SONiCSwitch["SONiC Switch"]
27-
FA[Fabric Agent]
28-
Alloy[Alloy]
29-
DB[SONiC Config DB]
30-
end
31-
32-
%% External monitoring
33-
Monitoring[Loki/Grafana/Tempo/Mimir]
34-
3527
%% Define the relationships
3628
Kubectl -.->|Direct kubectl commands| K8S
3729
User -.->|CLI| Fabricator
@@ -42,18 +34,14 @@ Fabricator -->|Applies CRs| K8S
4234
KubectlFabric -->|Interacts with| K8S
4335
K9s -->|UI Manages| K8S
4436
K8S -->|Sends CRDs| FC
45-
FC -->|Generates SONiC Configs| FA
46-
FA -->|Applies Config via gNMI| DB
47-
FA -->|Reports Metrics| Alloy
48-
Alloy -->|Sends Logs & Metrics| Monitoring
4937
```
5038

5139
---
5240

5341
## **Management Workflow Overview**
5442

5543
### **User**
56-
- **Creates Fabric CR YAMLs** and commits them to version control.
44+
- **Creates Fabric CR YAMLs** and applies them through standard Kubernetes resource management.
5745
- **Directly interacts with SONiC switches** via the Fabricator CLI.
5846
- **Uses [`kubectl`](https://kubernetes.io/docs/reference/kubectl/) and `kubectl fabric`** to interact with the Kubernetes API for fabric resource management.
5947

@@ -71,19 +59,11 @@ Alloy -->|Sends Logs & Metrics| Monitoring
7159

7260
### **K9s**
7361
- A 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:
74-
- **SSH** – SSH into a fabric switch
75-
- **Serial** – Open a serial connection to a fabric switch
76-
- **Reboot** – Reboot a fabric switch
77-
- **Power Reset** Perform a power reset on a fabric switch in the NOS
78-
- **Reinstall** – Reinstall a fabric switch
79-
80-
### **SONiC Switch Relevant Components**
81-
- **Fabric Agent:** Receives configurations from the Fabric Controller and applies them to the SONiC switches via gNMI.
82-
- **Alloy:** Monitors SONiC and reports metrics.
83-
- **SONiC Config DB:** Stores and manages switch configuration data.
84-
85-
### **Monitoring**
86-
- Logs and metrics from SONiC are collected and sent to [Loki](https://grafana.com/oss/loki/) and [Mimir](https://grafana.com/oss/mimir/) for visualization and analysis through [Grafana](https://grafana.com).
62+
- **SSH** – SSH into a fabric switch
63+
- **Serial** – Open a serial connection to a fabric switch
64+
- **Reboot** – Reboot a fabric switch
65+
- **Power Reset** Perform a power reset on a fabric switch in the NOS
66+
- **Reinstall** – Reinstall a fabric switch
8767

8868
---
8969

@@ -92,10 +72,10 @@ Alloy -->|Sends Logs & Metrics| Monitoring
9272
GitOps workflows can be leveraged using [ArgoCD](https://argo-cd.readthedocs.io/en/stable/). This is an alternative approach to show that a Fabric can be used with industry standard tools seamlessly.
9373

9474
- **User Actions:**
95-
- The user **creates Fabric CR YAMLs** and pushes them to a [Git repository](https://git-scm.com) for version control.
75+
- The user **creates Fabric CR YAMLs** and pushes them to a [Git repository](https://git-scm.com) for version control.
9676
- **ArgoCD Actions:**
97-
- [ArgoCD](https://argo-cd.readthedocs.io/en/stable/) monitors the Git repository.
98-
- ArgoCD **pulls the CRs from Git** and applies them to [Kubernetes](https://kubernetes.io) via the Kubernetes API Server.
77+
- [ArgoCD](https://argo-cd.readthedocs.io/en/stable/) monitors the Git repository.
78+
- ArgoCD **pulls the CRs from Git** and applies them to [Kubernetes](https://kubernetes.io) via the Kubernetes API Server.
9979

10080
```mermaid
10181
graph TD

docs/architecture/overview.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Overview
22

3+
This section provides an architectural understanding of Hedgehog Open Network Fabric, explaining its components and their relationships.
4+
35
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.
46

57
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).

0 commit comments

Comments
 (0)