From 3f877476045aac8d6497be4298776af22ff130d5 Mon Sep 17 00:00:00 2001 From: Aimee Ukasick Date: Fri, 17 Jan 2025 12:33:16 -0600 Subject: [PATCH] Remove docs/devices/ and redirect to plugins/devices --- website/content/docs/devices/index.mdx | 7 -- website/content/docs/drivers/index.mdx | 6 +- .../content/docs/job-specification/device.mdx | 2 +- website/content/docs/partnerships.mdx | 2 +- website/content/intro/index.mdx | 2 +- .../content/partials/device-driver-intro.mdx | 31 ------ .../content/partials/task-driver-intro.mdx | 6 +- website/content/plugins/devices/index.mdx | 31 +++++- website/content/plugins/drivers/index.mdx | 8 +- website/data/docs-nav-data.json | 104 ++---------------- website/redirects.js | 5 + 11 files changed, 62 insertions(+), 142 deletions(-) delete mode 100644 website/content/docs/devices/index.mdx delete mode 100644 website/content/partials/device-driver-intro.mdx diff --git a/website/content/docs/devices/index.mdx b/website/content/docs/devices/index.mdx deleted file mode 100644 index 63fc9181717..00000000000 --- a/website/content/docs/devices/index.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: docs -page_title: Device Plugins -description: Learn how device driver plugins expose devices such as GPUs USBs to tasks in Nomad jobs. ---- - -@include 'device-driver-intro.mdx' diff --git a/website/content/docs/drivers/index.mdx b/website/content/docs/drivers/index.mdx index f6188d7a226..070cdcb3be4 100644 --- a/website/content/docs/drivers/index.mdx +++ b/website/content/docs/drivers/index.mdx @@ -1,7 +1,11 @@ --- layout: docs page_title: Task Drivers -description: Learn how Nomad's bundled task drivers integrate with the host OS to run job tasks in isolation. +description: Nomad's bundled task drivers integrate with the host OS to run job tasks in isolation. Review the Docker, Isolated Fork/Exec, Java, QEMU, and Raw Fork/Exec task drivers. --- +# Task Drivers + +This section provides reference information for task drivers bundled with Nomad. + @include 'task-driver-intro.mdx' diff --git a/website/content/docs/job-specification/device.mdx b/website/content/docs/job-specification/device.mdx index 0748bf8ec43..90ed59c35c3 100644 --- a/website/content/docs/job-specification/device.mdx +++ b/website/content/docs/job-specification/device.mdx @@ -326,4 +326,4 @@ device "nvidia/gpu" { [affinity]: /nomad/docs/job-specification/affinity 'Nomad affinity Job Specification' [constraint]: /nomad/docs/job-specification/constraint 'Nomad constraint Job Specification' -[devices]: /nomad/docs/devices 'Nomad Device Plugins' +[devices]: /nomad/plugins/devices 'Nomad Device Plugins' diff --git a/website/content/docs/partnerships.mdx b/website/content/docs/partnerships.mdx index b8c95e0b935..231a7eefe57 100644 --- a/website/content/docs/partnerships.mdx +++ b/website/content/docs/partnerships.mdx @@ -77,7 +77,7 @@ Container Runtime GPUs & Specialized Hardware Devices -- [Device plugin documentation](/nomad/docs/devices) +- [Device plugin documentation](/nomad/plugins/devices) - [Guide to build, install, and maintain a device plugin](/nomad/docs/concepts/plugins/devices) - [Template for writing a device plugin](https://github.com/hashicorp/nomad-skeleton-device-plugin) - [Example of a device plugin](https://github.com/hashicorp/nomad/tree/main/devices/gpu/nvidia) diff --git a/website/content/intro/index.mdx b/website/content/intro/index.mdx index 44757a51821..0495948e541 100644 --- a/website/content/intro/index.mdx +++ b/website/content/intro/index.mdx @@ -33,7 +33,7 @@ Nomad is widely adopted and used in production by PagerDuty, Target, Citadel, Tr - **Simple & Reliable**: Nomad runs as a single binary and is entirely self contained - combining resource management and scheduling into a single system. Nomad does not require any external services for storage or coordination. Nomad automatically handles application, node, and driver failures. Nomad is distributed and resilient, using leader election and state replication to provide high availability in the event of failures. -- **Device Plugins & GPU Support**: Nomad offers built-in support for GPU workloads such as machine learning (ML) and artificial intelligence (AI). Nomad uses [device plugins](/nomad/docs/devices) to automatically detect and utilize resources from hardware devices such as GPU, FPGAs, and TPUs. +- **Device Plugins & GPU Support**: Nomad offers built-in support for GPU workloads such as machine learning (ML) and artificial intelligence (AI). Nomad uses [device plugins](/nomad/plugins/devices) to automatically detect and utilize resources from hardware devices such as GPU, FPGAs, and TPUs. - **Federation for Multi-Region**: Nomad has native support for multi-region federation. This built-in capability allows multiple clusters to be linked together, which in turn enables developers to deploy jobs to any cluster in any region. Federation also enables automatic replication of ACL policies, namespaces, resource quotas and Sentinel policies across all clusters. diff --git a/website/content/partials/device-driver-intro.mdx b/website/content/partials/device-driver-intro.mdx deleted file mode 100644 index 5c483a46364..00000000000 --- a/website/content/partials/device-driver-intro.mdx +++ /dev/null @@ -1,31 +0,0 @@ - -# Device driver plugins - -Use device driver plugins to detect physical hardware devices, such as graph -processing units (GPUs), a field-programmable gate arrays (FPGAs), and universal -serial buses (USBs), on your Nomad clients. You can then use those devices in -your Nomad workloads. - -By having extensible device plugins, Nomad has the flexibility -to support a broad set of devices and allows the community to build additional -device plugins as needed. - -## Nomad device drivers - -We support the [NVIDIA] device driver plugin, which you must install -separately. Refer to the [NVIDIA] documentation for instructions. - -## Community device drivers - -The community supports the [USB] device driver plugin. - -## Create device drivers - -Nomad's device driver architecture is pluggable, which gives you the flexibility -to create your own drivers without having to recompile Nomad. Refer to the -[plugin authoring guide][plugin_guide] for details. - - -[NVIDIA]: /nomad/plugins/devices/nvidia -[USB]: /nomad/plugins/devices/community/usb -[plugin_guide]: /nomad/docs/concepts/plugins/devices diff --git a/website/content/partials/task-driver-intro.mdx b/website/content/partials/task-driver-intro.mdx index cd708555ad0..768c2af8185 100644 --- a/website/content/partials/task-driver-intro.mdx +++ b/website/content/partials/task-driver-intro.mdx @@ -1,4 +1,4 @@ -# Task drivers +## Introduction Nomad clients use task drivers to execute a task and provide resource isolation. By having extensible task drivers, Nomad has the flexibility to support a broad @@ -21,9 +21,9 @@ Requirements][docker_plugin] section for a detailed example. ## Nomad task drivers The Nomad binary contains several bundled task drivers. We also support -additional task drivers that you may install separately. +additional task driver plugins that you may install separately. -| Bundled with Nomad | Separate installation | +| Bundled with Nomad | Plugins | |----------------------|-----------------------| | [Docker] | [Exec2] | | [Isolated Fork/Exec] | [Podman] | diff --git a/website/content/plugins/devices/index.mdx b/website/content/plugins/devices/index.mdx index e4531f862ad..c65be2f94b7 100644 --- a/website/content/plugins/devices/index.mdx +++ b/website/content/plugins/devices/index.mdx @@ -5,4 +5,33 @@ description: |- Use device driver plugins to detect your Nomad client's physical hardware devices, such as graph processing units (GPUs), field programmable gate arrays (FPGAs), tensor processing units (TPUs), and universal serial buses (USBs). You can then use those devices in your Nomad workloads. --- -@include 'device-driver-intro.mdx' +# Device driver plugins + +Use device driver plugins to detect physical hardware devices, such as graph +processing units (GPUs), a field-programmable gate arrays (FPGAs), and universal +serial buses (USBs), on your Nomad clients. You can then use those devices in +your Nomad workloads. + +By having extensible device plugins, Nomad has the flexibility +to support a broad set of devices and allows the community to build additional +device plugins as needed. + +## Nomad device drivers + +We support the [NVIDIA] device driver plugin, which you must install +separately. Refer to the [NVIDIA] documentation for instructions. + +## Community device drivers + +The community supports the [USB] device driver plugin. + +## Create device drivers + +Nomad's device driver architecture is pluggable, which gives you the flexibility +to create your own drivers without having to recompile Nomad. Refer to the +[plugin authoring guide][plugin_guide] for details. + + +[NVIDIA]: /nomad/plugins/devices/nvidia +[USB]: /nomad/plugins/devices/community/usb +[plugin_guide]: /nomad/docs/concepts/plugins/devices diff --git a/website/content/plugins/drivers/index.mdx b/website/content/plugins/drivers/index.mdx index a299ad9ac56..dfe2a71689d 100644 --- a/website/content/plugins/drivers/index.mdx +++ b/website/content/plugins/drivers/index.mdx @@ -1,8 +1,12 @@ --- layout: docs -page_title: Task Drivers -description: Learn how task driver plugins extend Nomad functionality to provide resource isolation when executing job tasks. +page_title: Task Driver Plugins +description: Task driver plugins extend Nomad functionality to provide resource isolation when executing job tasks. Review the Exec2, Podman, and Virt task driver reference. Explore plugins developed by the Nomad user community. --- +# Task driver plugins + +This section provides reference information for task driver plugins. + @include 'task-driver-intro.mdx' diff --git a/website/data/docs-nav-data.json b/website/data/docs-nav-data.json index 0d95fe1f584..31b86770957 100644 --- a/website/data/docs-nav-data.json +++ b/website/data/docs-nav-data.json @@ -1974,10 +1974,6 @@ "title": "Docker", "path": "drivers/docker" }, - { - "title": "Exec2", - "href": "/plugins/drivers/exec2" - }, { "title": "Isolated Fork/Exec", "path": "drivers/exec" @@ -1986,10 +1982,6 @@ "title": "Java", "path": "drivers/java" }, - { - "title": "Podman", - "href": "/plugins/drivers/podman" - }, { "title": "QEMU", "path": "drivers/qemu" @@ -1999,72 +1991,23 @@ "path": "drivers/raw_exec" }, { - "title": "Virt Beta", - "routes": [ - { - "title": "Overview", - "href": "/plugins/drivers/virt" - }, - { - "title": "Installation", - "href": "/plugins/drivers/virt/install" - }, - { - "title": "Task Config", - "href": "/plugins/drivers/virt/task-config" - } - ] - }, - { - "title": "Community", + "title": "Plugins", "routes": [ { - "title": "Overview", - "href": "/plugins/drivers/community" - }, - { - "title": "containerd", - "href": "/plugins/drivers/community/containerd" - }, - { - "title": "Pledge", - "href": "/plugins/drivers/community/pledge" - }, - { - "title": "Firecracker driver", - "href": "/plugins/drivers/community/firecracker-task-driver" - }, - { - "title": "Jailtask driver", - "href": "/plugins/drivers/community/jail-task-driver" + "title": "Exec2", + "href": "/plugins/drivers/exec2" }, { - "title": "Lightrun", - "href": "/plugins/drivers/community/lightrun" + "title": "Podman", + "href": "/plugins/drivers/podman" }, { - "title": "Pot", - "href": "/plugins/drivers/community/pot" - }, - { - "title": "Rookout", - "href": "/plugins/drivers/community/rookout" - }, - { - "title": "Singularity", - "href": "/plugins/drivers/community/singularity" - }, - { - "title": "systemd-nspawn", - "href": "/plugins/drivers/community/nspawn" - }, - { - "title": "Windows IIS", - "href": "/plugins/drivers/community/iis" + "title": "Virt Beta", + "href": "/plugins/drivers/virt" }, { - "title": "Windows IIS", - "href": "/plugins/drivers/community/nomad-iis" + "title": "Community", + "href": "/plugins/drivers/community" } ] } @@ -2072,34 +2015,7 @@ }, { "title": "Device Plugins", - "routes": [ - { - "title": "Overview", - "path": "devices" - }, - { - "title": "External", - "routes": [ - { - "title": "Overview", - "href": "/plugins/devices" - }, - { - "title": "Nvidia", - "href": "/plugins/devices/nvidia" - }, - { - "title": "USB", - "badge": { - "text": "Beta", - "type": "outlined", - "color": "neutral" - }, - "href": "/plugins/devices/community/usb" - } - ] - } - ] + "href": "/plugins/devices" }, { "title": "Schedulers", diff --git a/website/redirects.js b/website/redirects.js index 7981cb1133c..c71a3e555dd 100644 --- a/website/redirects.js +++ b/website/redirects.js @@ -108,4 +108,9 @@ module.exports = [ destination: '/nomad/plugins/drivers/virt/install', permanent: true, }, + { + source: '/nomad/docs/devices', + destination: '/nomad/plugins/devices/', + permanent: true, + }, ]