Skip to content

Commit

Permalink
Docs SEO: task drivers and plugins; refactor virt section
Browse files Browse the repository at this point in the history
  • Loading branch information
aimeeu committed Jan 3, 2025
1 parent 6469b59 commit 330c50e
Show file tree
Hide file tree
Showing 36 changed files with 333 additions and 331 deletions.
15 changes: 2 additions & 13 deletions website/content/docs/devices/index.mdx
Original file line number Diff line number Diff line change
@@ -1,18 +1,7 @@
---
layout: docs
page_title: Device Plugins
description: Device Plugins are used to expose devices to tasks in Nomad.
description: Learn how device driver plugins expose devices such as GPUs USBs to tasks in Nomad jobs.
---

# Device Plugins

Device plugins are used to detect and make devices available to tasks in
Nomad. Devices are physical hardware that exists on a client node such as a
GPU or an FPGA. 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.

The list of supported device plugins is provided on the left of this page.
Each device plugin documents its configuration and installation requirements,
the attributes it fingerprints, and the environment variables it exposes to
tasks.
@include 'device-driver-intro.mdx'
2 changes: 1 addition & 1 deletion website/content/docs/drivers/docker.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: docs
page_title: 'Drivers: Docker'
description: The Docker task driver is used to run Docker based tasks.
description: Learn how to configure and use Nomad's Docker task driver to run Docker-based tasks in your jobs.
---

# Docker Driver
Expand Down
2 changes: 1 addition & 1 deletion website/content/docs/drivers/exec.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: docs
page_title: 'Drivers: Exec'
description: The Exec task driver runs binaries using OS isolation primitives.
description: Learn how to configure and use Nomad's Exec task driver in your jobs to run binaries using OS isolation primitives.
---

# Isolated Fork/Exec Driver
Expand Down
38 changes: 2 additions & 36 deletions website/content/docs/drivers/index.mdx
Original file line number Diff line number Diff line change
@@ -1,41 +1,7 @@
---
layout: docs
page_title: Task Drivers
description: Task Drivers are used to integrate with the host OS to run tasks in Nomad.
description: Learn how Nomad's bundled task drivers integrate with the host OS to run job tasks in isolation.
---

# Task Drivers

Task drivers are used by Nomad clients to execute a task and provide resource
isolation. By having extensible task drivers, Nomad has the flexibility to
support a broad set of workloads across all major operating systems.

Task drivers are pluggable. This gives you the flexibility to introduce your
own drivers without having to recompile Nomad. You can view the
[plugin block][plugin] documentation for examples on how to use the plugin
block in Nomad's client configuration. See the Docker driver's
[Client Requirements][docker_plugin] for a more detailed and specific example.

The Nomad binary includes the default task drivers, so you do not have to
download them separately.

The list of supported task drivers is provided on the left of this page. Each
task driver documents the configuration available in a [job
specification](/nomad/docs/job-specification), the environments it can be
used in, and the resource isolation mechanisms available.

For details on authoring a task driver plugin, please refer to the [plugin
authoring guide][plugin_guide].

Task driver resource isolation is intended to provide a degree of separation of
Nomad client CPU / memory / storage between tasks. Resource isolation
effectiveness is dependent upon individual task driver implementations and
underlying client operating systems. Task drivers do include various
security-related controls, but the Nomad client to task interface should not be
considered a security boundary. See the [access control guide][acl_guide] for
more information on how to protect Nomad cluster operations.

[plugin]: /nomad/docs/configuration/plugin
[docker_plugin]: /nomad/docs/drivers/docker#client-requirements
[plugin_guide]: /nomad/docs/concepts/plugins
[acl_guide]: /nomad/tutorials/access-control
@include 'task-driver-intro.mdx'
2 changes: 1 addition & 1 deletion website/content/docs/drivers/java.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: docs
page_title: 'Drivers: Java'
description: The Java task driver is used to run Jars using the JVM.
description: Learn how to configure and use Nomad's Java task driver to run JAR files in your jobs.
---

# Java Driver
Expand Down
2 changes: 1 addition & 1 deletion website/content/docs/drivers/qemu.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: docs
page_title: 'Drivers: QEMU'
description: The QEMU task driver is used to run virtual machines using QEMU/KVM.
description: Learn how to configure and use Nomad's QEMU task driver to run virtual machines using QEMU/KVM in your jobs.
---

# QEMU Driver
Expand Down
2 changes: 1 addition & 1 deletion website/content/docs/drivers/raw_exec.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: docs
page_title: 'Drivers: Raw Exec'
description: The Raw Exec task driver simply fork/execs and provides no isolation.
description: Learn how to configure and use Nomad's Raw Exec task driver to execute commands without isolation in your jobs.
---

# Raw Fork/Exec Driver
Expand Down
28 changes: 28 additions & 0 deletions website/content/partials/device-driver-intro.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

# Device driver plugins

Use device driver plugins to detect and make devices available to tasks in
Nomad jobs. Devices are physical hardware that exists on a client node such as a
GPU or an FPGA. 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
61 changes: 61 additions & 0 deletions website/content/partials/task-driver-intro.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Task drivers

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
set of workloads across all major operating systems.

Task driver resource isolation provides a degree of separation of Nomad client
CPU, memory, and storage between tasks. Resource isolation effectiveness depends
upon individual task driver implementations and underlying client operating
systems. Task drivers do include various security-related controls, but the
Nomad client-to-task interface should not be considered a security boundary.
Refer to the [access control guide][acl_guide] for more information on how to
protect Nomad cluster operations.

## Configuration

Refer to the [plugin block][plugin] documentation for examples on how to use the
plugin block in Nomad's client configuration. Review the Docker driver's [Client
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.

| Bundled with Nomad | Separate installation |
|----------------------|-----------------------|
| [Docker] | [Exec2] |
| [Isolated Fork/Exec] | [Podman] |
| [Java] | [Virt] |
| [QEMU] | |
| [Raw Fork/Exec] | |

Each task driver page documents the configuration available in a [job
specification](/nomad/docs/job-specification), the environments you can use the
task driver in, and the resource isolation mechanisms available.

## Community task drivers

You may also use [community-supported task driver
plugins](/nomad/plugins/drivers/community/).

## Create task drivers

Nomad's task 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.


[plugin]: /nomad/docs/configuration/plugin
[docker_plugin]: /nomad/docs/drivers/docker#client-requirements
[plugin_guide]: /nomad/docs/concepts/plugins/task-drivers
[acl_guide]: /nomad/tutorials/access-control
[Docker]: /nomad/docs/drivers/docker
[Exec2]: /nomad/plugins/drivers/exec2
[Isolated Fork/Exec]: /nomad/docs/drivers/exec
[Podman]: /nomad/plugins/drivers/podman
[Java]: /nomad/docs/drivers/java
[Virt]: /nomad/plugins/drivers/virt/index
[QEMU]: /nomad/docs/drivers/qemu
[Raw Fork/Exec]: /nomad/docs/drivers/raw_exec
4 changes: 2 additions & 2 deletions website/content/plugins/devices/community/index.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: docs
page_title: 'Device Plugins: Community Supported'
description: 'A list of community supported Device Plugins.'
description: Learn about the community-supported device driver plugins that extend Nomad job features.
---

# Community Supported
Expand All @@ -11,7 +11,7 @@ broader Nomad community and you are committed to maintaining the plugin,
please file a PR to add your plugin to this page. For details on authoring a
device plugin, please refer to the [plugin authoring guide][plugin_guide].

Below is a list of community-support task drivers you can use with Nomad:
The following is a list of community-support device drivers you can use with Nomad:

- [USB][usb]

Expand Down
2 changes: 1 addition & 1 deletion website/content/plugins/devices/community/usb.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: docs
page_title: 'Devices: USB'
description: The USB Device Plugin detects and makes USB devices available to tasks
description: Use the USB Device Plugin to detect and use USB devices in Nomad jobs.
---

# USB Device Plugin
Expand Down
14 changes: 2 additions & 12 deletions website/content/plugins/devices/index.mdx
Original file line number Diff line number Diff line change
@@ -1,17 +1,7 @@
---
layout: docs
page_title: 'Device Plugins: External'
description: 'A list of external Device Plugins.'
description: Learn how device driver plugins extend Nomad functionality to run jobs on hardware such as GPUs and USBs.
---

# External Device Plugins

Nomad has a plugin system for defining task drivers. External device driver
plugins will have the same user experience as built in devices.

Below is a list of official external task drivers you can use with Nomad:

- [Nvidia][nvidia]

[plugin_guide]: /nomad/docs/concepts/plugins
[nvidia]: /nomad/plugins/devices/nvidia
@include 'device-driver-intro.mdx'
4 changes: 2 additions & 2 deletions website/content/plugins/devices/nvidia.mdx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
layout: docs
page_title: 'Device Plugins: Nvidia'
description: The Nvidia Device Plugin detects and makes Nvidia devices available to tasks.
description: Use the NVIDIA device plugin to expose NVIDIA GPUs to Nomad so you can run jobs on GPU hardware.
---

# Nvidia GPU Device Plugin
# NVIDIA GPU Device Plugin

Name: `nomad-device-nvidia`

Expand Down
3 changes: 1 addition & 2 deletions website/content/plugins/drivers/community/containerd.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
layout: docs
page_title: 'Drivers: nomad-driver-containerd'
description: >-
The containerd driver is used
for launching containers using containerd.
Use the containerd task driver to launch containerd containers in your Nomad job.
---

# containerd Task Driver
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@
layout: docs
page_title: 'Drivers: firecracker-task-driver'
description: >-
The Firecracker task driver is used to run
firecracker(https://firecracker-microvm.github.io/) microvms.
Use the Firecracker task driver to run Firecracker micro virtual machines in your Nomad job.
---

# Firecracker task Driver

Name: `firecracker-task-driver`

The Firecracker task driver provides an interface for creating Linux microvms.
The Firecracker task driver provides an interface for creating Linux microVMs.
For more detailed instructions on how to set up and use this driver, please
refer to the [documentation][firecracker-task-guide].

Expand Down
5 changes: 2 additions & 3 deletions website/content/plugins/drivers/community/iis.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@
layout: docs
page_title: 'Drivers: nomad-driver-iis'
description: >-
The IIS driver is used for running
Windows IIS services.
Use the Windows IIS task driver to run Windows IIS services in Nomad jobs.
---

# Windows IIS Driver

Name: `win_iis`

The Nomad IIS driver provides an interface for running Windows IIS website tasks.
The Nomad `win_iis` task driver provides an interface for running Windows IIS website tasks.
A "website" is a combination of an application pool and a site (app, vdir, etc.).
Each allocation will create an application pool and site with the name being the allocation ID (guid).

Expand Down
8 changes: 4 additions & 4 deletions website/content/plugins/drivers/community/index.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: docs
page_title: 'Task Driver Plugins: Community Supported'
description: A list of community supported Task Driver Plugins.
description: Learn about the community-supported task driver plugins that extend Nomad job features.
---

# Community Supported
Expand All @@ -18,7 +18,7 @@ authoring guide][plugin_guide].
Nomad has a plugin system for defining task drivers. External task driver
plugins will have the same user experience as built in drivers.

Below is a list of community-supported task drivers you can use with Nomad:
The following is a list of community-supported task drivers you can use with Nomad:

- [containerd][nomad-driver-containerd]
- [Firecracker][firecracker-task-driver]
Expand All @@ -29,8 +29,8 @@ Below is a list of community-supported task drivers you can use with Nomad:
- [Rookout][rookout]
- [Singularity][singularity]
- [systemd-nspawn][nspawn-driver]
- [Windows IIS][nomad-driver-iis]
- [Windows IIS][nomad-iis]
- [Windows IIS (nomad-driver-iis)][nomad-driver-iis]
- [Windows IIS (nomad-iis)][nomad-iis]

[rookout]: /nomad/plugins/drivers/community/rookout
[plugin_guide]: /nomad/docs/concepts/plugins
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
layout: docs
page_title: 'Drivers: jail-task-driver'
description: >-
The Jail task driver is used to run application containers using FreeBSD
jails.
Use the Jail task driver to run application containers using FreeBSD
jails in your Nomad jobs.
---

# Jail task Driver
Expand Down
2 changes: 1 addition & 1 deletion website/content/plugins/drivers/community/lightrun.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: docs
page_title: 'Drivers: Lightrun'
description: The Lightrun driver is used to run your Java application with Lightrun.
description: Use the Lightrun task driver to run your Java application with Lightrun in your Nomad jobs.
---

# Lightrun Driver
Expand Down
11 changes: 5 additions & 6 deletions website/content/plugins/drivers/community/nomad-iis.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@
layout: docs
page_title: 'Drivers: nomad-iis'
description: >-
The IIS driver is used for running
Windows IIS services.
Use the Nomad IIS driver to run Windows IIS services in Nomad jobs.
---

# Windows IIS Driver

Name: `nomad_iis`

This plugin is a task driver to run IIS Web Applications on Windows Servers. Each allocation will create an AppPool and a Website.
The `nomad_iis` plugin is a task driver to run IIS Web Applications on Windows Servers. Each allocation will create an AppPool and a Website.
For a full documentation please refer to the project's [Readme](https://github.com/sevensolutions/nomad-iis/blob/main/README.md).

Unlike most other Nomad task drivers, this one is written in the C# language using ASP.NET. It uses the Microsoft.Web.Administration-API to communicate with IIS.
Expand All @@ -28,7 +27,7 @@ job "iis-test" {
group "iis-test" {
count = 1
network {
port "httplabel" {}
}
Expand All @@ -44,13 +43,13 @@ job "iis-test" {
alias = "subapp"
path = "C:\\inetpub\\wwwroot"
}
binding {
type = "http"
port = "httplabel"
}
}
env {
my_key = "my-value"
}
Expand Down
Loading

0 comments on commit 330c50e

Please sign in to comment.