Skip to content

(architecture): add Fabric Management page #71

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

pau-hedgehog
Copy link
Contributor

No description provided.

@pau-hedgehog pau-hedgehog self-assigned this Mar 5, 2025
Copy link

github-actions bot commented Mar 5, 2025

🚀 Deployed on https://preview-71--hedgehog-docs.netlify.app

@github-actions github-actions bot temporarily deployed to pull request March 5, 2025 22:54 Inactive
@github-actions github-actions bot temporarily deployed to pull request March 7, 2025 14:40 Inactive
@github-actions github-actions bot temporarily deployed to pull request March 7, 2025 15:12 Inactive
@github-actions github-actions bot temporarily deployed to pull request March 21, 2025 10:10 Inactive
@pau-hedgehog pau-hedgehog marked this pull request as ready for review March 21, 2025 10:24
@pau-hedgehog pau-hedgehog requested a review from a team as a code owner March 21, 2025 10:24
@pau-hedgehog pau-hedgehog requested a review from edipascale March 21, 2025 10:24
@edipascale
Copy link
Contributor

this looks good @pau-hedgehog, my only concern is that I feel there's a big overlap between the first section in this PR and what you previously added in the architecture overview section, and I wonder whether we should just collapse the two sections into one. That being said, having more documentation is never a bad thing, so I'm not against adding this if you / other people feel that they're better kept separate.

@mrbojangles3
Copy link
Contributor

I support adding it. I can see that a user might say, what happens when I do X, Y or Z. They would have those questions answered in the Fabric Management Workflow.

@github-actions github-actions bot temporarily deployed to pull request March 24, 2025 10:26 Inactive
@github-actions github-actions bot temporarily deployed to pull request March 24, 2025 10:29 Inactive
@github-actions github-actions bot temporarily deployed to pull request March 24, 2025 10:35 Inactive
@pau-hedgehog
Copy link
Contributor Author

I've made some amendments to try to make both @edipascale and @mrbojangles3 happy ;)

edipascale
edipascale previously approved these changes Mar 24, 2025
@github-actions github-actions bot temporarily deployed to pull request April 15, 2025 16:08 Inactive
@github-actions github-actions bot temporarily deployed to pull request April 16, 2025 08:18 Inactive
@github-actions github-actions bot temporarily deployed to pull request April 16, 2025 08:29 Inactive
@github-actions github-actions bot temporarily deployed to pull request April 16, 2025 08:50 Inactive
@github-actions github-actions bot temporarily deployed to pull request April 16, 2025 08:54 Inactive
@github-actions github-actions bot temporarily deployed to pull request April 16, 2025 08:55 Inactive
@github-actions github-actions bot temporarily deployed to pull request April 16, 2025 09:56 Inactive
@github-actions github-actions bot temporarily deployed to pull request May 27, 2025 14:51 Inactive
@github-actions github-actions bot temporarily deployed to pull request May 27, 2025 14:57 Inactive
@github-actions github-actions bot temporarily deployed to pull request May 27, 2025 15:05 Inactive
@github-actions github-actions bot temporarily deployed to pull request May 27, 2025 15:12 Inactive
@qmonnet
Copy link
Member

qmonnet commented Jun 27, 2025

I note this PR has been open for a while, what's the status? Is it still pending reviews from the three of us? 🙈

@pau-hedgehog
Copy link
Contributor Author

I note this PR has been open for a while, what's the status? Is it still pending reviews from the three of us? 🙈

I addressed all comments a few weeks ago. But I understand we have more pressing priorities. Thus I didn't chase anyone

Copy link
Member

@qmonnet qmonnet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice document!

My high-level comment would be that it's not super-clear how it relates to the “Architecture” section, as it's somewhat of a mix of an architectural-ish description of the management processes and a command reference, with an intro and some headings that might make one believe it will be some user guide to manage the Fabric.

Just to be clear, I do agree your page is in the right section 🙂, but I'd try to rework it a little bit to orient it even more towards the architecture-description aspect, not sure how, maybe by making clear you introduce the different “actors” from your first Mermaid diagram, and explaining their different interactions - and keep the “reference” parts to a minimum. Maybe run your doc through some LLM, to see if it's got some useful input?


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

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/).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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/).
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/).

For consistency with kubectl formatting.

Comment on lines +49 to +57
- **Uses [`kubectl`](https://kubernetes.io/docs/reference/kubectl/) and `kubectl fabric`** to interact with the Kubernetes API for fabric resource management.
- Can use their **own `kubectl` installation** or the one pre-installed on the control node as part of [k3s](https://k3s.io).

### Kubernetes API Server (K8S)
- Part of [Kubernetes](https://kubernetes.io).
- Manages Fabric Custom Resources (CRs) and interacts with the **Fabric Controller**.

### kubectl & kubectl fabric
- [`kubectl`](https://kubernetes.io/docs/reference/kubectl/) is the standard CLI tool for [Kubernetes](https://kubernetes.io).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I wouldn't keep all the web links to kubectl, k3s, Kubernetes this far down in the document, I find them more distracting than useful. Having them mentioned at the top is enough. Seeing the link to “k3s”, I'd rather expect it to link to a section of our docs that tells how k3s is used and what for, rather than to redirect me to the k3s website.

Comment on lines +59 to +72
- **vpc** – Manage VPCs: create, attach, peer, or wipe all related resources
- **switch** – Manage switches: get IP, SSH, serial, reboot, reinstall
- **connection** – View connections: management, fabric, vpc-loopback
- **switchgroup** – Create SwitchGroups
- **external** – Manage external BGP peers and VPC peering
- **wiring** – Export fabric wiring diagrams
- **inspect** – Inspect and troubleshoot fabric resources:
- `fabric` – Overview of control nodes and switches
- `switch`, `port` – Status, counters, and usage
- `server`, `connection` – VPC/external attachments and link details
- `vpc` – Subnet attachments and reachability
- `bgp`, `lldp` – Neighbor status checks
- `ip`, `mac` – Lookup usage across the fabric
- `access` – Check reachability between VPCs, servers, and IPs
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a mix between the architectural description (rest of the doc) and a command reference. Do we need these here to understand the operational aspects? Should it link to a command reference instead?

@@ -0,0 +1,127 @@
# Fabric Management

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).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it's about operational aspects and typical workflows, then why is this located in the “Architecture” section, and not in “Use guides” for example?

Comment on lines +74 to +75
### Fabricator
- 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need for a list?

Suggested change
### Fabricator
- 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.
### Fabricator
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.

Comment on lines +77 to +78
### K9s
- 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:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It includes some helper plugins

I'd mention they're specific to the Open Network Fabric (to make it explicit it's not some random plug-ins available on the web that we've only packaged).

- **Power Reset** Perform a power reset on a fabric switch in the NOS
- **Reinstall** – Reinstall a fabric switch

---
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Why the rule?)


- **User Responsibilities:**
- Define Fabric Custom Resources (CRs) in YAML.
- Commit and push these CRs to a [Git repository](https://git-scm.com) for version control and collaboration.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really need to provide a link for Git? 😄

FC -->|Watches CRs| K8S
```

---
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(why the rule?)


---

## GitOps Integration
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might deserve a one-line transition to better tie it to the rest of the document? I don't know, maybe something like: “Given that the Fabric configuration heavily relies on Custom Definitions, users often rely on Git-centric workflows to manage them. GitOps is ...”

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants