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
+33-25Lines changed: 33 additions & 25 deletions
Original file line number
Diff line number
Diff line change
@@ -6,15 +6,18 @@ The installation of a Hedgehog Fabric deployment is carried out using Fabricator
6
6
7
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.
8
8
9
+
In this workflow, the user interacts with the Kubernetes API Server by creating or modifying Fabric Custom Resources (CRs). The Fabric Controller watches the Kubernetes API for changes to these CRs. Upon detecting a change, the Controller translates the high-level network intent into concrete configurations and applies them to the fabric switches.
10
+
11
+
The Controller continuously reconciles the actual network state with the desired state declared in the CRs, ensuring consistency and reliability across the fabric.
12
+
9
13
The diagram below illustrates the general workflow for fabric management:
10
14
11
15
```mermaid
12
16
graph TD
13
17
14
-
%% Define the nodes (General Workflow excludes Git & ArgoCD)
18
+
%% Define the nodes
15
19
User[User]
16
20
Kubectl[kubectl]
17
-
Fabricator[Fabricator]
18
21
19
22
%% Control Node components
20
23
subgraph ControlNode["Control Node"]
@@ -26,14 +29,12 @@ end
26
29
27
30
%% Define the relationships
28
31
Kubectl -.->|Direct kubectl commands| K8S
29
-
User -.->|CLI| Fabricator
32
+
User -.->|SSH Control| K9s
30
33
User -.->|CLI| Kubectl
31
-
Kubectl -.->|Plugin| KubectlFabric
32
-
Fabricator -->|SSH access| K9s
33
-
Fabricator -->|Applies CRs| K8S
34
+
User -.->|SSH Control| KubectlFabric
34
35
KubectlFabric -->|Interacts with| K8S
35
36
K9s -->|UI Manages| K8S
36
-
K8S -->|Sends CRDs| FC
37
+
FC -->|Watches CRDs| K8S
37
38
```
38
39
39
40
---
@@ -42,7 +43,6 @@ K8S -->|Sends CRDs| FC
42
43
43
44
### **User**
44
45
-**Creates Fabric CR YAMLs** and applies them through standard Kubernetes resource management.
45
-
-**Directly interacts with SONiC switches** via the Fabricator CLI.
46
46
-**Uses [`kubectl`](https://kubernetes.io/docs/reference/kubectl/) and `kubectl fabric`** to interact with the Kubernetes API for fabric resource management.
47
47
48
48
### **Kubernetes API Server (K8S)**
@@ -53,7 +53,7 @@ K8S -->|Sends CRDs| FC
53
53
-[`kubectl`](https://kubernetes.io/docs/reference/kubectl/) is the standard CLI tool for [Kubernetes](https://kubernetes.io).
54
54
-`kubectl fabric` is a plugin that extends `kubectl` with fabric-specific commands and interacts with the Kubernetes API Server. It supports the following commands:
55
55
-**vpc** – Manage VPCs: create, attach, peer, or wipe all related resources
-**external** – Manage external BGP peers and VPC peering
@@ -81,36 +81,44 @@ K8S -->|Sends CRDs| FC
81
81
82
82
---
83
83
84
-
## **GitOps Functionality (ArgoCD)**
84
+
## **GitOps Integration**
85
+
86
+
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.
87
+
88
+
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).
85
89
86
-
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.
90
+
-**User Responsibilities:**
91
+
- Define Fabric Custom Resources (CRs) in YAML.
92
+
- Commit and push these CRs to a [Git repository](https://git-scm.com) for version control and collaboration.
87
93
88
-
-**User Actions:**
89
-
-The user **creates Fabric CR YAMLs** and pushes them to a [Git repository](https://git-scm.com) for version control.
90
-
-**ArgoCD Actions:**
91
-
-[ArgoCD](https://argo-cd.readthedocs.io/en/stable/) monitors the Git repository.
92
-
- ArgoCD **pulls the CRs from Git** and applies them to [Kubernetes](https://kubernetes.io) via the Kubernetes API Server.
94
+
-**GitOps Tool Responsibilities:**
95
+
-Monitor the Git repository for updates.
96
+
- Apply changes to the cluster automatically via the Kubernetes API Server.
97
+
98
+
This enables seamless integration of Hedgehog Fabric into modern CI/CD pipelines and Git-centric workflows.
93
99
94
100
```mermaid
95
101
graph TD
96
102
97
-
%% Define the nodes (GitOps includes Git & ArgoCD)
0 commit comments