Skip to content

Commit

Permalink
use docsy for webpage
Browse files Browse the repository at this point in the history
Change-Id: Ifbeedc625bf5a67e4b671d54eb51d58373729745
  • Loading branch information
aojea committed Dec 19, 2024
1 parent c35c0b1 commit f9000d6
Show file tree
Hide file tree
Showing 14 changed files with 192 additions and 55 deletions.
7 changes: 7 additions & 0 deletions .github/workflows/deploy-github-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,13 @@ jobs:
hugo-version: '0.125.5'
extended: true

- uses: actions/setup-node@v4
with:
node-version: '20'
check-latest: true

- run: npm install autoprefixer postcss-cli

- run: hugo --baseURL https://${REPO_OWNER}.github.io/${REPO_NAME} --minify
working-directory: ./site

Expand Down
44 changes: 10 additions & 34 deletions site/content/_index.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,13 @@
---
title: dranet
title: DraNet
---

DRANET is a Kubernetes Network Driver that uses Dynamic Resource Allocation (DRA) to deliver high-performance networking for demanding applications in Kubernetes.

## Key Features

- **DRA Integration:** Leverages the power of Kubernetes' Dynamic Resource Allocation.
- **High-Performance Networking:** Designed for demanding workloads like AI/ML applications.
- **Simplified Management:** Easy to deploy and manage.
- **Enhanced Efficiency:** Optimizes resource utilization for improved overall performance.
- **Cluster-Wide Scalability:** Effectively manages network resources across a large number of nodes for seamless operation in Kubernetes deployments.

## How It Works

The networking DRA driver uses GRPC to communicate with the Kubelet via the [DRA API](https://github.com/kubernetes/kubernetes/blob/3bec2450efd29787df0f27415de4e8049979654f/staging/src/k8s.io/kubelet/pkg/apis/dra/v1beta1/api.proto) and the Container Runtime via [NRI](https://github.com/containerd/nri). This architecture facilitates the supportability and reduces the complexity of the solution, it also makes it fully compatible and agnostic of the existing CNI plugins in the cluster.

The DRA driver, once the Pod network namespaces has been created, will receive a GRPC call from the Container Runtime via NRI to execute the corresponding configuration. A more detailed diagram can be found in:

[![](https://mermaid.ink/img/pako:eNp9UstuwyAQ_JUVp1ZNfoBDpMi-WFXdyLn6gs0mQTXgLtCHovx714nTWoobDgiW2dlhNEfReo1CioDvCV2LuVF7UrZ2wEul6F2yDdLl_pwa7DAul6vVU4nx09Mb5NUacjIfSBJK5toQ9oqwwuATtRgeHi-9pY8InmEw1_naRGUcxAPCtTPrlLF8Y10hgnIaMu92Zj_S3ZAMqpajwvtSrt_gXzDlMBhJS6iS23i95UmN_7pi_wADf1YWEniDdZ6P72VxfpjwMEmxCXPts55VBRy8f5sff981xoMb605ZDL1qGd4jqWi8C_esmiqGG7FTK2eF_eNhRqgi_lbCjI1T6lu4WAiLZJXRHMrj0FwLToXFWkg-atyp1MVa1O7E0CGg22_XChkp4UKkXjPfmGEhd6oLXEVtoqeXS9DPeT_9ABUC_8M?type=png)](https://mermaid.live/edit#pako:eNp9UstuwyAQ_JUVp1ZNfoBDpMi-WFXdyLn6gs0mQTXgLtCHovx714nTWoobDgiW2dlhNEfReo1CioDvCV2LuVF7UrZ2wEul6F2yDdLl_pwa7DAul6vVU4nx09Mb5NUacjIfSBJK5toQ9oqwwuATtRgeHi-9pY8InmEw1_naRGUcxAPCtTPrlLF8Y10hgnIaMu92Zj_S3ZAMqpajwvtSrt_gXzDlMBhJS6iS23i95UmN_7pi_wADf1YWEniDdZ6P72VxfpjwMEmxCXPts55VBRy8f5sff981xoMb605ZDL1qGd4jqWi8C_esmiqGG7FTK2eF_eNhRqgi_lbCjI1T6lu4WAiLZJXRHMrj0FwLToXFWkg-atyp1MVa1O7E0CGg22_XChkp4UKkXjPfmGEhd6oLXEVtoqeXS9DPeT_9ABUC_8M)

## References

- [KEP 3063 - Dynamic Resource Allocation #306](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/3063-dynamic-resource-allocation/README.md)
- [KEP 3695 - DRA: structured parameters #438](https://github.com/kubernetes/enhancements/issues/4381)
- [Extend PodResources to include resources from Dynamic Resource Allocation (DRA)](https://github.com/kubernetes/enhancements/issues/3695)
- [Working Group Device Management](https://github.com/kubernetes-sigs/wg-device-management)
- [Kubernetes Network Drivers, Antonio Ojea, Presentation](https://docs.google.com/presentation/d/1Vdr7BhbYXeWjwmLjGmqnUkvJr_eOUdU0x-JxfXWxUT8/edit?usp=sharing)
- [The Future of Kubernetes Networking - Antonio Ojea, Googe & Dan Winship, Red Hat - Kubernetes Contributor Summit EU 2024](https://sched.co/1aOqO)
- [Better Together! GPU, TPU and NIC Topological Alignment with DRA - John Belamaric, Google & Patrick Ohly, Intel - Kubecon US 2024](https://sched.co/1i7pv)

## Disclaimer

This is not an officially supported Google product. This project is not
eligible for the [Google Open Source Software Vulnerability Rewards
Program](https://bughunters.google.com/open-source-security).
{{< blocks/cover title="Welcome to DraNet" image_anchor="top" height="full" >}}
<a class="btn btn-lg btn-primary me-3 mb-4" href="/dranet/docs/">
Learn More <i class="fas fa-arrow-alt-circle-right ms-2"></i>
</a>
<a class="btn btn-lg btn-secondary me-3 mb-4" href="https://github.com/google/dranet">
Download <i class="fab fa-github ms-2 "></i>
</a>
<p class="lead mt-5">A Kubernetes Network Driver!</p>
{{< /blocks/cover >}}
5 changes: 0 additions & 5 deletions site/content/contributing/about.md

This file was deleted.

21 changes: 21 additions & 0 deletions site/content/docs/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: dranet
weight: 1150

---

DRANET is a Kubernetes Network Driver that uses Dynamic Resource Allocation (DRA) to deliver high-performance networking for demanding applications in Kubernetes.

## Key Features

- **DRA Integration:** Leverages the power of Kubernetes' Dynamic Resource Allocation.
- **High-Performance Networking:** Designed for demanding workloads like AI/ML applications.
- **Simplified Management:** Easy to deploy and manage.
- **Enhanced Efficiency:** Optimizes resource utilization for improved overall performance.
- **Cluster-Wide Scalability:** Effectively manages network resources across a large number of nodes for seamless operation in Kubernetes deployments.

## Disclaimer

This is not an officially supported Google product. This project is not
eligible for the [Google Open Source Software Vulnerability Rewards
Program](https://bughunters.google.com/open-source-security).
4 changes: 4 additions & 0 deletions site/content/docs/contributing/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: Contributing
weight: 4
---
35 changes: 35 additions & 0 deletions site/content/docs/contributing/contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: "Contributing"
date: 2024-12-19T11:30:40Z
---

We would love to accept your patches and contributions to this project.

## Before you begin

### Sign our Contributor License Agreement

Contributions to this project must be accompanied by a
[Contributor License Agreement](https://cla.developers.google.com/about) (CLA).
You (or your employer) retain the copyright to your contribution; this simply
gives us permission to use and redistribute your contributions as part of the
project.

If you or your current employer have already signed the Google CLA (even if it
was for a different project), you probably don't need to do it again.

Visit <https://cla.developers.google.com/> to see your current agreements or to
sign a new one.

### Review our Community Guidelines

This project follows [Google's Open Source Community
Guidelines](https://opensource.google/conduct/).

## Contribution process

### Code Reviews

All submissions, including submissions by project members, require review. We
use [GitHub pull requests](https://docs.github.com/articles/about-pull-requests)
for this purpose.
4 changes: 4 additions & 0 deletions site/content/docs/design/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: Design
weight: 3
---
10 changes: 10 additions & 0 deletions site/content/docs/design/howitworks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: "How It Works"
date: 2024-12-19T11:20:46Z
---

The networking DRA driver uses GRPC to communicate with the Kubelet via the [DRA API](https://github.com/kubernetes/kubernetes/blob/3bec2450efd29787df0f27415de4e8049979654f/staging/src/k8s.io/kubelet/pkg/apis/dra/v1beta1/api.proto) and the Container Runtime via [NRI](https://github.com/containerd/nri). This architecture facilitates the supportability and reduces the complexity of the solution, it also makes it fully compatible and agnostic of the existing CNI plugins in the cluster.

The DRA driver, once the Pod network namespaces has been created, will receive a GRPC call from the Container Runtime via NRI to execute the corresponding configuration. A more detailed diagram can be found in:

[![](https://mermaid.ink/img/pako:eNp9UstuwyAQ_JUVp1ZNfoBDpMi-WFXdyLn6gs0mQTXgLtCHovx714nTWoobDgiW2dlhNEfReo1CioDvCV2LuVF7UrZ2wEul6F2yDdLl_pwa7DAul6vVU4nx09Mb5NUacjIfSBJK5toQ9oqwwuATtRgeHi-9pY8InmEw1_naRGUcxAPCtTPrlLF8Y10hgnIaMu92Zj_S3ZAMqpajwvtSrt_gXzDlMBhJS6iS23i95UmN_7pi_wADf1YWEniDdZ6P72VxfpjwMEmxCXPts55VBRy8f5sff981xoMb605ZDL1qGd4jqWi8C_esmiqGG7FTK2eF_eNhRqgi_lbCjI1T6lu4WAiLZJXRHMrj0FwLToXFWkg-atyp1MVa1O7E0CGg22_XChkp4UKkXjPfmGEhd6oLXEVtoqeXS9DPeT_9ABUC_8M?type=png)](https://mermaid.live/edit#pako:eNp9UstuwyAQ_JUVp1ZNfoBDpMi-WFXdyLn6gs0mQTXgLtCHovx714nTWoobDgiW2dlhNEfReo1CioDvCV2LuVF7UrZ2wEul6F2yDdLl_pwa7DAul6vVU4nx09Mb5NUacjIfSBJK5toQ9oqwwuATtRgeHi-9pY8InmEw1_naRGUcxAPCtTPrlLF8Y10hgnIaMu92Zj_S3ZAMqpajwvtSrt_gXzDlMBhJS6iS23i95UmN_7pi_wADf1YWEniDdZ6P72VxfpjwMEmxCXPts55VBRy8f5sff981xoMb605ZDL1qGd4jqWi8C_esmiqGG7FTK2eF_eNhRqgi_lbCjI1T6lu4WAiLZJXRHMrj0FwLToXFWkg-atyp1MVa1O7E0CGg22_XChkp4UKkXjPfmGEhd6oLXEVtoqeXS9DPeT_9ABUC_8M)
12 changes: 12 additions & 0 deletions site/content/docs/design/references.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "References"
date: 2024-12-19T11:20:46Z
---

- [KEP 3063 - Dynamic Resource Allocation #306](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/3063-dynamic-resource-allocation/README.md)
- [KEP 3695 - DRA: structured parameters #438](https://github.com/kubernetes/enhancements/issues/4381)
- [Extend PodResources to include resources from Dynamic Resource Allocation (DRA)](https://github.com/kubernetes/enhancements/issues/3695)
- [Working Group Device Management](https://github.com/kubernetes-sigs/wg-device-management)
- [Kubernetes Network Drivers, Antonio Ojea, Presentation](https://docs.google.com/presentation/d/1Vdr7BhbYXeWjwmLjGmqnUkvJr_eOUdU0x-JxfXWxUT8/edit?usp=sharing)
- [The Future of Kubernetes Networking - Antonio Ojea, Googe & Dan Winship, Red Hat - Kubernetes Contributor Summit EU 2024](https://sched.co/1aOqO)
- [Better Together! GPU, TPU and NIC Topological Alignment with DRA - John Belamaric, Google & Patrick Ohly, Intel - Kubecon US 2024](https://sched.co/1i7pv)
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
---
title: "Quick Start"
date: 2024-12-17T14:47:05Z
weight: 1
---

DRANET depends on the Kubernetes feature [Dynamic Resource Allocation (DRA)](https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/), that is beta (disabled by default in v1.32).

In order to enable DRA you need to enable both the [feature gates and the API groups](https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#enabling-dynamic-resource-allocation).

## Create a Kubernetes Cluster
## Kubernetes cluster with DRA

### KIND

Expand Down Expand Up @@ -88,15 +89,15 @@ kubectl get --raw /metrics | grep kubernetes_feature_enabled | grep DynamicResou
kubernetes_feature_enabled{name="DynamicResourceAllocation",stage="BETA"} 1
```

## Install DRANET
### Installation

You can install the latest stable version using the provided manifest:

```
kubectl apply -f https://raw.githubusercontent.com/google/dranet/refs/heads/main/install.yaml
```

## How to use it
### How to use it

Once the Kubernetes Network Driver is running you can see the list of Network Interfaces and its attributes published by the drivers:

Expand Down Expand Up @@ -297,7 +298,7 @@ spec:
resourceClaimName: cloud-network-dra-net-3
```

Kubernets schedules the `Pod` to the corresponding `Node` and attach the network interface to the `Pod`:
Kubernetes schedules the `Pod` to the corresponding `Node` and attach the network interface to the `Pod`:

```sh
kubectl get pods -o wide
Expand Down
4 changes: 4 additions & 0 deletions site/content/docs/user/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: User Guides
weight: 2
---
6 changes: 6 additions & 0 deletions site/content/docs/user/contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: "Attach Network Interfaces"
date: 2024-12-19T11:30:40Z
draft: true
---

Binary file added site/content/featured-background.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
86 changes: 74 additions & 12 deletions site/hugo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ languageCode = "en-us"
# we use this to disable indexing for the non-production build
enableRobotsTXT = true

# this allows us to show the source commit in the footer
enableGitInfo = true

# we don't use these currently
disableKinds = ["taxonomy", "taxonomyTerm"]
contentDir = "content"

# syntax highlighting options
[markup]
Expand All @@ -35,30 +31,96 @@ sectionPagesMenu = "main"
identifier = "home"
name = "Home"
title = "Home"
url = "/"
url = "/docs"
weight = 1
[[menu.main]]
identifier = "user"
name = "User Guide"
title = "User Guide"
url = "/docs/user"
name = "User Guides"
title = "User Guides"
weight = 2
[[menu.main]]
identifier = "design"
url = "/docs/design"
name = "Design"
title = "Design"
weight = 5
[[menu.main]]
identifier = "contributing"
url = "/docs/contributing"
name = "Contributing"
title = "contributing"
title = "Contributing"
weight = 6


[outputs]
home = ["HTML"]

[params]
stable = "v0.25.0"
privacy_policy = "https://policies.google.com/privacy"

# First one is picked as the Twitter card image if not set on page.
# images = ["images/project-illustration.png"]

# Repository configuration (URLs for in-page links to opening issues and suggesting changes)
github_repo = "https://github.com/google/dranet"

# Specify a value here if your content directory is not in your repo's root directory
github_subdir = "site"

# Uncomment this if your GitHub repo does not have "main" as the default branch,
# or specify a new value if you want to reference another branch in your GitHub links
github_branch= "main"

# Google Custom Search Engine ID. Remove or comment out to disable search.
gcs_engine_id = "d72aa9b2712488cc3"

# Enable Lunr.js offline search
offlineSearch = false

# Enable syntax highlighting and copy buttons on code blocks with Prism
prism_syntax_highlighting = false

[params.copyright]
authors = "Google LLC | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0) | "
from_year = 2024

# User interface configuration
[params.ui]
# Set to true to disable breadcrumb navigation.
breadcrumb_disable = false
# Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top navbar
navbar_logo = false
# Set to true if you don't want the top navbar to be translucent when over a `block/cover`, like on the homepage.
navbar_translucent_over_cover_disable = false
# Enable to show the side bar menu in its compact state.
sidebar_menu_compact = false
# Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled)
sidebar_search_disable = false

# Adds a reading time to the top of each doc.
# If you want this feature, but occasionally need to remove the Reading time from a single page,
# add "hide_readingtime: true" to the page's front matter
[params.ui.readingtime]
enable = false

[params.links]
# End user relevant links. These will show up on left side of footer and in the community page if you have one.
[[params.links.user]]
name = "SIG Network mailing list"
url = "https://groups.google.com/forum/#!forum/kubernetes-sig-network"
icon = "fa fa-envelope"
desc = "Discussion and help from your fellow users"
[[params.links.developer]]
name = "GitHub"
url = "https://github.com/google/dranet"
icon = "fab fa-github"
desc = "Development takes place here!"
[[params.links.developer]]
name = "Slack"
url = "https://kubernetes.slack.com/messages/sig-network"
icon = "fab fa-slack"
desc = "Chat with other project developers"


# privacy settings
[privacy]
Expand All @@ -68,4 +130,4 @@ privacyEnhanced = true

[module]
[[module.imports]]
path = 'github.com/thingsym/hugo-theme-techdoc'
path = 'github.com/google/docsy'

0 comments on commit f9000d6

Please sign in to comment.