From ddca508b0d3088eb543f15df755d4208ac57e88c Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Thu, 9 Dec 2021 14:25:18 -0500 Subject: [PATCH] feat(website): extract `/plugins` `/tools` docs (#11584) Co-authored-by: Luiz Aoqui Co-authored-by: Mike Nomitch --- website/content/api-docs/ui.mdx | 2 +- website/content/docs/ecosystem.mdx | 12 +- website/content/docs/enterprise/index.mdx | 4 +- .../docs/internals/plugins/task-drivers.mdx | 4 +- .../docs/job-specification/scaling.mdx | 6 +- website/content/docs/partnerships.mdx | 4 +- .../content/docs/upgrade/upgrade-specific.mdx | 13 +- .../devices/community}/index.mdx | 18 +- .../devices/community}/usb.mdx | 0 website/content/plugins/devices/index.mdx | 17 ++ .../external => plugins/devices}/nvidia.mdx | 10 +- .../drivers/community}/containerd.mdx | 0 .../community}/firecracker-task-driver.mdx | 0 .../drivers/community}/iis.mdx | 0 .../drivers/community}/index.mdx | 24 +- .../drivers/community}/jail-task-driver.mdx | 0 .../drivers/community}/lightrun.mdx | 0 .../drivers/community}/lxc.mdx | 0 .../drivers/community}/nspawn.mdx | 0 .../drivers/community}/pot.mdx | 0 .../drivers/community}/rkt.mdx | 0 .../drivers/community}/rookout.mdx | 0 .../drivers/community}/singularity.mdx | 0 website/content/plugins/drivers/index.mdx | 41 ++++ .../{docs => plugins}/drivers/podman.mdx | 0 .../{docs => plugins}/drivers/remote/ecs.mdx | 0 .../drivers/remote/index.mdx | 0 website/content/plugins/index.mdx | 17 ++ .../{docs => tools}/autoscaling/agent.mdx | 6 +- .../{docs => tools}/autoscaling/agent/apm.mdx | 2 +- .../agent/dynamic_application_sizing.mdx | 0 .../autoscaling/agent/http.mdx | 0 .../autoscaling/agent/nomad.mdx | 0 .../autoscaling/agent/policy.mdx | 0 .../autoscaling/agent/policy_eval.mdx | 0 .../autoscaling/agent/strategy.mdx | 2 +- .../autoscaling/agent/target.mdx | 2 +- .../autoscaling/agent/telemetry.mdx | 0 .../{docs => tools}/autoscaling/api.mdx | 0 .../{docs => tools}/autoscaling/cli.mdx | 2 +- .../{docs => tools}/autoscaling/index.mdx | 4 +- .../autoscaling/internals/checks.mdx | 0 .../autoscaling/internals/index.mdx | 4 +- .../internals/node-selector-strategy.mdx | 0 .../autoscaling/internals/plugins/apm.mdx | 4 +- .../autoscaling/internals/plugins/base.mdx | 2 +- .../autoscaling/internals/plugins/index.mdx | 8 +- .../internals/plugins/strategy.mdx | 2 +- .../autoscaling/internals/plugins/target.mdx | 4 +- .../autoscaling/plugins/apm/datadog.mdx | 0 .../autoscaling/plugins/apm/index.mdx | 0 .../autoscaling/plugins/apm/nomad.mdx | 0 .../autoscaling/plugins/apm/prometheus.mdx | 0 .../autoscaling/plugins/external/index.mdx | 2 +- .../autoscaling/plugins/index.mdx | 10 +- .../plugins/strategy/app-sizing-avg.mdx | 0 .../plugins/strategy/app-sizing-max.mdx | 0 .../strategy/app-sizing-percentile.mdx | 0 .../plugins/strategy/fixed-value.mdx | 0 .../autoscaling/plugins/strategy/index.mdx | 0 .../plugins/strategy/pass-through.mdx | 0 .../plugins/strategy/target-value.mdx | 0 .../plugins/strategy/threshold.mdx | 2 +- .../plugins/target/app-sizing-nomad.mdx | 2 +- .../autoscaling/plugins/target/aws-asg.mdx | 2 +- .../autoscaling/plugins/target/azure-vmss.mdx | 2 +- .../autoscaling/plugins/target/gce-mig.mdx | 2 +- .../autoscaling/plugins/target/index.mdx | 0 .../autoscaling/plugins/target/nomad.mdx | 0 .../{docs => tools}/autoscaling/policy.mdx | 12 +- .../{docs => tools}/autoscaling/telemetry.mdx | 2 +- website/content/tools/index.mdx | 40 ++++ website/data/docs-nav-data.json | 123 +++++----- website/data/plugins-nav-data.json | 107 +++++++++ website/data/subnav.js | 31 ++- website/data/tools-nav-data.json | 214 ++++++++++++++++++ website/pages/plugins/[[...page]].tsx | 42 ++++ website/pages/tools/[[...page]].tsx | 42 ++++ website/redirects.js | 112 ++++++++- 79 files changed, 783 insertions(+), 178 deletions(-) rename website/content/{docs/devices/external => plugins/devices/community}/index.mdx (50%) rename website/content/{docs/devices/external => plugins/devices/community}/usb.mdx (100%) create mode 100644 website/content/plugins/devices/index.mdx rename website/content/{docs/devices/external => plugins/devices}/nvidia.mdx (96%) rename website/content/{docs/drivers/external => plugins/drivers/community}/containerd.mdx (100%) rename website/content/{docs/drivers/external => plugins/drivers/community}/firecracker-task-driver.mdx (100%) rename website/content/{docs/drivers/external => plugins/drivers/community}/iis.mdx (100%) rename website/content/{docs/drivers/external => plugins/drivers/community}/index.mdx (64%) rename website/content/{docs/drivers/external => plugins/drivers/community}/jail-task-driver.mdx (100%) rename website/content/{docs/drivers/external => plugins/drivers/community}/lightrun.mdx (100%) rename website/content/{docs/drivers/external => plugins/drivers/community}/lxc.mdx (100%) rename website/content/{docs/drivers/external => plugins/drivers/community}/nspawn.mdx (100%) rename website/content/{docs/drivers/external => plugins/drivers/community}/pot.mdx (100%) rename website/content/{docs/drivers/external => plugins/drivers/community}/rkt.mdx (100%) rename website/content/{docs/drivers/external => plugins/drivers/community}/rookout.mdx (100%) rename website/content/{docs/drivers/external => plugins/drivers/community}/singularity.mdx (100%) create mode 100644 website/content/plugins/drivers/index.mdx rename website/content/{docs => plugins}/drivers/podman.mdx (100%) rename website/content/{docs => plugins}/drivers/remote/ecs.mdx (100%) rename website/content/{docs => plugins}/drivers/remote/index.mdx (100%) create mode 100644 website/content/plugins/index.mdx rename website/content/{docs => tools}/autoscaling/agent.mdx (95%) rename website/content/{docs => tools}/autoscaling/agent/apm.mdx (95%) rename website/content/{docs => tools}/autoscaling/agent/dynamic_application_sizing.mdx (100%) rename website/content/{docs => tools}/autoscaling/agent/http.mdx (100%) rename website/content/{docs => tools}/autoscaling/agent/nomad.mdx (100%) rename website/content/{docs => tools}/autoscaling/agent/policy.mdx (100%) rename website/content/{docs => tools}/autoscaling/agent/policy_eval.mdx (100%) rename website/content/{docs => tools}/autoscaling/agent/strategy.mdx (95%) rename website/content/{docs => tools}/autoscaling/agent/target.mdx (95%) rename website/content/{docs => tools}/autoscaling/agent/telemetry.mdx (100%) rename website/content/{docs => tools}/autoscaling/api.mdx (100%) rename website/content/{docs => tools}/autoscaling/cli.mdx (99%) rename website/content/{docs => tools}/autoscaling/index.mdx (95%) rename website/content/{docs => tools}/autoscaling/internals/checks.mdx (100%) rename website/content/{docs => tools}/autoscaling/internals/index.mdx (74%) rename website/content/{docs => tools}/autoscaling/internals/node-selector-strategy.mdx (100%) rename website/content/{docs => tools}/autoscaling/internals/plugins/apm.mdx (94%) rename website/content/{docs => tools}/autoscaling/internals/plugins/base.mdx (95%) rename website/content/{docs => tools}/autoscaling/internals/plugins/index.mdx (84%) rename website/content/{docs => tools}/autoscaling/internals/plugins/strategy.mdx (96%) rename website/content/{docs => tools}/autoscaling/internals/plugins/target.mdx (95%) rename website/content/{docs => tools}/autoscaling/plugins/apm/datadog.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/apm/index.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/apm/nomad.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/apm/prometheus.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/external/index.mdx (94%) rename website/content/{docs => tools}/autoscaling/plugins/index.mdx (91%) rename website/content/{docs => tools}/autoscaling/plugins/strategy/app-sizing-avg.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/strategy/app-sizing-max.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/strategy/app-sizing-percentile.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/strategy/fixed-value.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/strategy/index.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/strategy/pass-through.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/strategy/target-value.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/strategy/threshold.mdx (97%) rename website/content/{docs => tools}/autoscaling/plugins/target/app-sizing-nomad.mdx (98%) rename website/content/{docs => tools}/autoscaling/plugins/target/aws-asg.mdx (98%) rename website/content/{docs => tools}/autoscaling/plugins/target/azure-vmss.mdx (98%) rename website/content/{docs => tools}/autoscaling/plugins/target/gce-mig.mdx (98%) rename website/content/{docs => tools}/autoscaling/plugins/target/index.mdx (100%) rename website/content/{docs => tools}/autoscaling/plugins/target/nomad.mdx (100%) rename website/content/{docs => tools}/autoscaling/policy.mdx (94%) rename website/content/{docs => tools}/autoscaling/telemetry.mdx (99%) create mode 100644 website/content/tools/index.mdx create mode 100644 website/data/plugins-nav-data.json create mode 100644 website/data/tools-nav-data.json create mode 100644 website/pages/plugins/[[...page]].tsx create mode 100644 website/pages/tools/[[...page]].tsx diff --git a/website/content/api-docs/ui.mdx b/website/content/api-docs/ui.mdx index 71c5f5a02..675ffd491 100644 --- a/website/content/api-docs/ui.mdx +++ b/website/content/api-docs/ui.mdx @@ -498,7 +498,7 @@ This page lists all allocations for a CSI plugin. Each allocation includes the s ~> **Enterprise Only!** This feature depends on functionality only present in Nomad Autoscaler Enterprise. -This page lists all recommendations surfaced by [dynamic application sizing](/docs/autoscaling#dynamic-application-sizing). This page will automatically redirect to the recommendation summary route for the first recommendation sorted by relevance. +This page lists all recommendations surfaced by [dynamic application sizing](/tools/autoscaling#dynamic-application-sizing). This page will automatically redirect to the recommendation summary route for the first recommendation sorted by relevance. Each recommendation in the list will contain information including the job and task group the recommendation is for, the time the recommendation was surfaced, the number of allocations impacted, the difference in CPU the recommendation suggests, the difference in memory the recommendation suggests, and the aggregate change in CPU and memory given the number of allocations impacted. diff --git a/website/content/docs/ecosystem.mdx b/website/content/docs/ecosystem.mdx index cf724e35a..eb3c05746 100644 --- a/website/content/docs/ecosystem.mdx +++ b/website/content/docs/ecosystem.mdx @@ -36,7 +36,7 @@ https://buildkite.com/works-with/hashicorp #### Containerd -https://www.nomadproject.io/docs/drivers/external/containerd +https://www.nomadproject.io/plugins/drivers/community/containerd #### Windows IIS @@ -44,7 +44,7 @@ https://github.com/Roblox/nomad-driver-iis #### Jailtask -https://www.nomadproject.io/docs/drivers/external/jail-task-driver +https://www.nomadproject.io/plugins/drivers/community/jail-task-driver #### Pot @@ -52,19 +52,19 @@ https://github.com/trivago/nomad-pot-driver #### Singularity -https://www.nomadproject.io/docs/drivers/external/singularity +https://www.nomadproject.io/plugins/drivers/community/singularity #### Firecracker -https://www.nomadproject.io/docs/drivers/external/firecracker-task-driver +https://www.nomadproject.io/plugins/drivers/community/firecracker-task-driver #### Podman -https://www.nomadproject.io/docs/drivers/podman +https://www.nomadproject.io/plugins/drivers/podman #### LXC -https://www.nomadproject.io/docs/drivers/external/lxc +https://www.nomadproject.io/plugins/drivers/community/lxc ### Application Definition & Image Build diff --git a/website/content/docs/enterprise/index.mdx b/website/content/docs/enterprise/index.mdx index 92fc96fb6..59175a3fd 100644 --- a/website/content/docs/enterprise/index.mdx +++ b/website/content/docs/enterprise/index.mdx @@ -173,6 +173,6 @@ Click [here](https://www.hashicorp.com/go/nomad-enterprise) to set up a demo or request a trial of Nomad Enterprise. [multiregion deployments]: /docs/job-specification/multiregion -[autoscaling capabilities]: /docs/autoscaling -[scaling policies]: /docs/autoscaling/policy +[autoscaling capabilities]: /tools/autoscaling +[scaling policies]: /tools/autoscaling/policy [gh-9958]: https://github.com/hashicorp/nomad/issues/9958 diff --git a/website/content/docs/internals/plugins/task-drivers.mdx b/website/content/docs/internals/plugins/task-drivers.mdx index 0c607ff68..9fc80adcd 100644 --- a/website/content/docs/internals/plugins/task-drivers.mdx +++ b/website/content/docs/internals/plugins/task-drivers.mdx @@ -109,7 +109,7 @@ For task driver plugin authors there are 2 important new behaviors when allocation. 2. If the Nomad client managing a remote task is drained or if the allocation was `lost`, the remote task is sent a special `DETACH` kill signal. This - indicates the plugin should stop managing the remote task, but *not* stop + indicates the plugin should stop managing the remote task, but _not_ stop it. These behaviors are meant to keep remote tasks running even when the Nomad @@ -253,4 +253,4 @@ inside the running container. `ExecTask` is called for Consul script checks. [taskconfig]: https://godoc.org/github.com/hashicorp/nomad/plugins/drivers#TaskConfig [taskhandle]: https://godoc.org/github.com/hashicorp/nomad/plugins/drivers#TaskHandle [fifopackage]: https://godoc.org/github.com/hashicorp/nomad/client/lib/fifo -[rtd]: /docs/drivers/remote +[rtd]: /plugins/drivers/remote diff --git a/website/content/docs/job-specification/scaling.mdx b/website/content/docs/job-specification/scaling.mdx index ef4ff2c17..fc6373699 100644 --- a/website/content/docs/job-specification/scaling.mdx +++ b/website/content/docs/job-specification/scaling.mdx @@ -108,8 +108,8 @@ job "example" { its contents are specific to the autoscaler; consult the [Nomad Autoscaler documentation][autoscaling_policy] for more details. -[autoscaling_policy]: /docs/autoscaling/policy +[autoscaling_policy]: /tools/autoscaling/policy [`count`]: /docs/job-specification/group#count 'Nomad Task Group specification' [`resources`]: /docs/job-specification/task#resources 'Nomad Task specification' -[das]: /docs/autoscaling#dynamic-application-sizing -[horizontal_app_scaling]: /docs/autoscaling#horizontal-application-autoscaling +[das]: /tools/autoscaling#dynamic-application-sizing +[horizontal_app_scaling]: /tools/autoscaling#horizontal-application-autoscaling diff --git a/website/content/docs/partnerships.mdx b/website/content/docs/partnerships.mdx index 12617f531..80412b9a7 100644 --- a/website/content/docs/partnerships.mdx +++ b/website/content/docs/partnerships.mdx @@ -73,7 +73,7 @@ Container Runtime - [Task driver documentation](/docs/drivers) - [Guide to build, install, and maintaining a task driver plugin](/docs/internals/plugins/task-drivers) -- [Community examples of task drivers](/docs/drivers/external) +- [Community examples of task drivers](/plugins/drivers/community) GPUs & Specialized Hardware Devices @@ -84,7 +84,7 @@ GPUs & Specialized Hardware Devices Autoscaling -- [Autoscaling plugin documentation](/docs/autoscaling) +- [Autoscaling plugin documentation](/tools/autoscaling) Storage diff --git a/website/content/docs/upgrade/upgrade-specific.mdx b/website/content/docs/upgrade/upgrade-specific.mdx index 407de14bf..1035bd56d 100644 --- a/website/content/docs/upgrade/upgrade-specific.mdx +++ b/website/content/docs/upgrade/upgrade-specific.mdx @@ -63,7 +63,7 @@ you must ensure the `Config.Namespace` field is unset. Starting in Nomad 1.1.2, task groups with `network.mode = "bridge"` generated a hosts file in Docker containers. This generated hosts file was bind-mounted -from the task directory to `/etc/hosts` within the task. In Nomad 1.1.3 the +from the task directory to `/etc/hosts` within the task. In Nomad 1.1.3 the source for the bind mount was moved to the allocation directory so that it is shared between all tasks in an allocation. @@ -144,7 +144,6 @@ Tasks using the `exec` or `java` task drivers can add or remove desired linux capabilities using the [`cap_add`][cap_add_exec] and [`cap_drop`][cap_drop_exec] task configuration options. - #### iptables Nomad now appends its iptables rules to the `NOMAD-ADMIN` chain instead of @@ -1182,11 +1181,11 @@ deleted and then Nomad 0.3.0 can be launched. [go-client]: https://pkg.go.dev/github.com/hashicorp/nomad/api#Client [hcl2]: https://github.com/hashicorp/hcl2 [limits]: /docs/configuration#limits -[lxc]: /docs/drivers/external/lxc +[lxc]: /plugins/drivers/community/lxc [migrate]: /docs/job-specification/migrate -[nvidia]: /docs/devices/external/nvidia +[nvidia]: /plugins/devices/nvidia [plugin-stanza]: /docs/configuration/plugin -[plugins]: /docs/drivers/external +[plugins]: /plugins/drivers/community [preemption-api]: /api-docs/operator#update-scheduler-configuration [preemption]: /docs/internals/scheduling/preemption [proxy_concurrency]: /docs/job-specification/sidecar_task#proxy_concurrency @@ -1204,8 +1203,8 @@ deleted and then Nomad 0.3.0 can be launched. [`volume create`]: /docs/commands/volume/create [`volume register`]: /docs/commands/volume/register [`volume`]: /docs/job-specification/volume -[Enterprise licensing]: /docs/enterprise/license -[`CAP_NET_RAW`]: https://security.stackexchange.com/a/128988 +[enterprise licensing]: /docs/enterprise/license +[`cap_net_raw`]: https://security.stackexchange.com/a/128988 [`linux capabilities`]: https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities [`allow_caps`]: /docs/drivers/docker#allow_caps [`extra_hosts`]: /docs/drivers/docker#extra_hosts diff --git a/website/content/docs/devices/external/index.mdx b/website/content/plugins/devices/community/index.mdx similarity index 50% rename from website/content/docs/devices/external/index.mdx rename to website/content/plugins/devices/community/index.mdx index 76ae4d726..89cbb0be5 100644 --- a/website/content/docs/devices/external/index.mdx +++ b/website/content/plugins/devices/community/index.mdx @@ -1,19 +1,10 @@ --- layout: docs -page_title: 'Device Plugins: External' -description: 'A list of external Device Plugins.' +page_title: 'Device Plugins: Community Supported' +description: 'A list of community supported Device Plugins.' --- -# 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] - -## Community Supported +# Community Supported If you have authored a device plugin that you believe will be useful to the broader Nomad community and you are committed to maintaining the plugin, @@ -25,5 +16,4 @@ Below is a list of community-support task drivers you can use with Nomad: - [USB][usb] [plugin_guide]: /docs/internals/plugins -[nvidia]: /docs/devices/external/nvidia -[usb]: /docs/devices/external/usb +[usb]: /plugins/devices/community/usb diff --git a/website/content/docs/devices/external/usb.mdx b/website/content/plugins/devices/community/usb.mdx similarity index 100% rename from website/content/docs/devices/external/usb.mdx rename to website/content/plugins/devices/community/usb.mdx diff --git a/website/content/plugins/devices/index.mdx b/website/content/plugins/devices/index.mdx new file mode 100644 index 000000000..49dbcbaa7 --- /dev/null +++ b/website/content/plugins/devices/index.mdx @@ -0,0 +1,17 @@ +--- +layout: docs +page_title: 'Device Plugins: External' +description: 'A list of external Device Plugins.' +--- + +# 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]: /docs/internals/plugins +[nvidia]: /plugins/devices/nvidia diff --git a/website/content/docs/devices/external/nvidia.mdx b/website/content/plugins/devices/nvidia.mdx similarity index 96% rename from website/content/docs/devices/external/nvidia.mdx rename to website/content/plugins/devices/nvidia.mdx index 3106e616a..7c5887956 100644 --- a/website/content/docs/devices/external/nvidia.mdx +++ b/website/content/plugins/devices/nvidia.mdx @@ -11,10 +11,10 @@ Name: `nvidia-gpu` The Nvidia device plugin is used to expose Nvidia GPUs to Nomad. ~> **Note**: The Nvidia device plugin setup has changed in Nomad 1.2. You must - add a [`plugin`] block to your clients configuration and install the - [external Nvidia device plugin][nvidia_plugin_download] into their - [`plugin_dir`] prior to upgrading. See plugin options below for an example. - Note the job specification remains the same. +add a [`plugin`] block to your clients configuration and install the +[external Nvidia device plugin][nvidia_plugin_download] into their +[`plugin_dir`] prior to upgrading. See plugin options below for an example. +Note the job specification remains the same. ## Fingerprinted Attributes @@ -337,7 +337,7 @@ Wed Jan 23 18:25:32 2019 [docker-driver]: /docs/drivers/docker 'Nomad docker Driver' [exec-driver]: /docs/drivers/exec 'Nomad exec Driver' [java-driver]: /docs/drivers/java 'Nomad java Driver' -[lxc-driver]: /docs/drivers/external/lxc 'Nomad lxc Driver' +[lxc-driver]: /plugins/drivers/community/lxc 'Nomad lxc Driver' [`plugin`]: /docs/configuration/plugin [`plugin_dir`]: /docs/configuration#plugin_dir [nvidia_plugin_download]: https://releases.hashicorp.com/nomad-device-nvidia/ diff --git a/website/content/docs/drivers/external/containerd.mdx b/website/content/plugins/drivers/community/containerd.mdx similarity index 100% rename from website/content/docs/drivers/external/containerd.mdx rename to website/content/plugins/drivers/community/containerd.mdx diff --git a/website/content/docs/drivers/external/firecracker-task-driver.mdx b/website/content/plugins/drivers/community/firecracker-task-driver.mdx similarity index 100% rename from website/content/docs/drivers/external/firecracker-task-driver.mdx rename to website/content/plugins/drivers/community/firecracker-task-driver.mdx diff --git a/website/content/docs/drivers/external/iis.mdx b/website/content/plugins/drivers/community/iis.mdx similarity index 100% rename from website/content/docs/drivers/external/iis.mdx rename to website/content/plugins/drivers/community/iis.mdx diff --git a/website/content/docs/drivers/external/index.mdx b/website/content/plugins/drivers/community/index.mdx similarity index 64% rename from website/content/docs/drivers/external/index.mdx rename to website/content/plugins/drivers/community/index.mdx index f3ed7821e..8bce2075f 100644 --- a/website/content/docs/drivers/external/index.mdx +++ b/website/content/plugins/drivers/community/index.mdx @@ -25,7 +25,6 @@ Below is a list of community-supported task drivers you can use with Nomad: - [Jail task driver][jail-task-driver] - [Lightrun][lightrun] - [LXC][lxc] -- [Podman][podman] - [Pot][pot] - [Rkt][rkt] - [Rookout][rookout] @@ -33,16 +32,15 @@ Below is a list of community-supported task drivers you can use with Nomad: - [systemd-nspawn][nspawn-driver] - [Windows IIS][nomad-driver-iis] -[rookout]: /docs/drivers/external/rookout -[lxc]: /docs/drivers/external/lxc -[rkt]: /docs/drivers/external/rkt +[rookout]: /plugins/drivers/community/rookout +[lxc]: /plugins/drivers/community/lxc +[rkt]: /plugins/drivers/community/rkt [plugin_guide]: /docs/internals/plugins -[singularity]: /docs/drivers/external/singularity -[jail-task-driver]: /docs/drivers/external/jail-task-driver -[podman]: /docs/drivers/external/podman -[pot]: /docs/drivers/external/pot -[firecracker-task-driver]: /docs/drivers/external/firecracker-task-driver -[nspawn-driver]: /docs/drivers/external/nspawn -[nomad-driver-iis]: /docs/drivers/external/iis -[nomad-driver-containerd]: /docs/drivers/external/containerd -[lightrun]: /docs/drivers/external/lightrun +[singularity]: /plugins/drivers/community/singularity +[jail-task-driver]: /plugins/drivers/community/jail-task-driver +[pot]: /plugins/drivers/community/pot +[firecracker-task-driver]: /plugins/drivers/community/firecracker-task-driver +[nspawn-driver]: /plugins/drivers/community/nspawn +[nomad-driver-iis]: /plugins/drivers/community/iis +[nomad-driver-containerd]: /plugins/drivers/community/containerd +[lightrun]: /plugins/drivers/community/lightrun diff --git a/website/content/docs/drivers/external/jail-task-driver.mdx b/website/content/plugins/drivers/community/jail-task-driver.mdx similarity index 100% rename from website/content/docs/drivers/external/jail-task-driver.mdx rename to website/content/plugins/drivers/community/jail-task-driver.mdx diff --git a/website/content/docs/drivers/external/lightrun.mdx b/website/content/plugins/drivers/community/lightrun.mdx similarity index 100% rename from website/content/docs/drivers/external/lightrun.mdx rename to website/content/plugins/drivers/community/lightrun.mdx diff --git a/website/content/docs/drivers/external/lxc.mdx b/website/content/plugins/drivers/community/lxc.mdx similarity index 100% rename from website/content/docs/drivers/external/lxc.mdx rename to website/content/plugins/drivers/community/lxc.mdx diff --git a/website/content/docs/drivers/external/nspawn.mdx b/website/content/plugins/drivers/community/nspawn.mdx similarity index 100% rename from website/content/docs/drivers/external/nspawn.mdx rename to website/content/plugins/drivers/community/nspawn.mdx diff --git a/website/content/docs/drivers/external/pot.mdx b/website/content/plugins/drivers/community/pot.mdx similarity index 100% rename from website/content/docs/drivers/external/pot.mdx rename to website/content/plugins/drivers/community/pot.mdx diff --git a/website/content/docs/drivers/external/rkt.mdx b/website/content/plugins/drivers/community/rkt.mdx similarity index 100% rename from website/content/docs/drivers/external/rkt.mdx rename to website/content/plugins/drivers/community/rkt.mdx diff --git a/website/content/docs/drivers/external/rookout.mdx b/website/content/plugins/drivers/community/rookout.mdx similarity index 100% rename from website/content/docs/drivers/external/rookout.mdx rename to website/content/plugins/drivers/community/rookout.mdx diff --git a/website/content/docs/drivers/external/singularity.mdx b/website/content/plugins/drivers/community/singularity.mdx similarity index 100% rename from website/content/docs/drivers/external/singularity.mdx rename to website/content/plugins/drivers/community/singularity.mdx diff --git a/website/content/plugins/drivers/index.mdx b/website/content/plugins/drivers/index.mdx new file mode 100644 index 000000000..ec7152644 --- /dev/null +++ b/website/content/plugins/drivers/index.mdx @@ -0,0 +1,41 @@ +--- +layout: docs +page_title: Task Drivers +description: Task Drivers are used to integrate with the host OS to run tasks in Nomad. +--- + +# 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. + +Starting with Nomad 0.9, task drivers are now pluggable. This gives users the +flexibility to introduce their own drivers without having to recompile Nomad. +You can view the [plugin stanza][plugin] documentation for examples on how to +use the `plugin` stanza in Nomad's client configuration. Note that we have +introduced new syntax when specifying driver options in the client configuration +(see [docker][docker_plugin] for an example). Keep in mind that even though all +built-in drivers are now plugins, Nomad remains a single binary and maintains +backwards compatibility except with the `lxc` driver. + +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](/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]: /docs/configuration/plugin +[docker_plugin]: /docs/drivers/docker#client-requirements +[plugin_guide]: /docs/internals/plugins +[acl_guide]: https://learn.hashicorp.com/collections/nomad/access-control diff --git a/website/content/docs/drivers/podman.mdx b/website/content/plugins/drivers/podman.mdx similarity index 100% rename from website/content/docs/drivers/podman.mdx rename to website/content/plugins/drivers/podman.mdx diff --git a/website/content/docs/drivers/remote/ecs.mdx b/website/content/plugins/drivers/remote/ecs.mdx similarity index 100% rename from website/content/docs/drivers/remote/ecs.mdx rename to website/content/plugins/drivers/remote/ecs.mdx diff --git a/website/content/docs/drivers/remote/index.mdx b/website/content/plugins/drivers/remote/index.mdx similarity index 100% rename from website/content/docs/drivers/remote/index.mdx rename to website/content/plugins/drivers/remote/index.mdx diff --git a/website/content/plugins/index.mdx b/website/content/plugins/index.mdx new file mode 100644 index 000000000..ca69e8e58 --- /dev/null +++ b/website/content/plugins/index.mdx @@ -0,0 +1,17 @@ +--- +layout: docs +page_title: Plugins +description: Learn about task driver and device plugins for Nomad. +--- + +# Plugins + +Nomad 0.9 introduced a plugin framework which allows users to extend the +functionality of some components within Nomad. The design of the plugin system +is inspired by the lessons learned from plugin systems implemented in other +HashiCorp products such as Terraform and Vault. + +The following components are currently pluggable within Nomad: + +- [Task Drivers](/plugins/drivers) +- [Devices](/plugins/devices) diff --git a/website/content/docs/autoscaling/agent.mdx b/website/content/tools/autoscaling/agent.mdx similarity index 95% rename from website/content/docs/autoscaling/agent.mdx rename to website/content/tools/autoscaling/agent.mdx index 879acb259..e6b899ff8 100644 --- a/website/content/docs/autoscaling/agent.mdx +++ b/website/content/tools/autoscaling/agent.mdx @@ -90,6 +90,6 @@ following actions. [hcl_v2]: https://github.com/hashicorp/hcl/tree/hcl2 [nomad_namespaces]: https://learn.hashicorp.com/tutorials/nomad/namespaces [nomad_acls]: https://learn.hashicorp.com/collections/nomad/access-control -[autoscaler_agent_nomad]: /docs/autoscaling/agent/nomad -[autoscaler_cli_config]: /docs/autoscaling/cli#config -[autoscaler_cli_policy_dir]: /docs/autoscaling/cli#policy-dir +[autoscaler_agent_nomad]: /tools/autoscaling/agent/nomad +[autoscaler_cli_config]: /tools/autoscaling/cli#config +[autoscaler_cli_policy_dir]: /tools/autoscaling/cli#policy-dir diff --git a/website/content/docs/autoscaling/agent/apm.mdx b/website/content/tools/autoscaling/agent/apm.mdx similarity index 95% rename from website/content/docs/autoscaling/agent/apm.mdx rename to website/content/tools/autoscaling/agent/apm.mdx index 8998f26f9..91f3d0cfd 100644 --- a/website/content/docs/autoscaling/agent/apm.mdx +++ b/website/content/tools/autoscaling/agent/apm.mdx @@ -35,4 +35,4 @@ apm "example-apm-plugin" { the plugin either as HCL or JSON. The accepted values are plugin specific. Please refer to the individual plugin's documentation. -[plugin_dir]: /docs/autoscaling/agent#plugin_dir +[plugin_dir]: /tools/autoscaling/agent#plugin_dir diff --git a/website/content/docs/autoscaling/agent/dynamic_application_sizing.mdx b/website/content/tools/autoscaling/agent/dynamic_application_sizing.mdx similarity index 100% rename from website/content/docs/autoscaling/agent/dynamic_application_sizing.mdx rename to website/content/tools/autoscaling/agent/dynamic_application_sizing.mdx diff --git a/website/content/docs/autoscaling/agent/http.mdx b/website/content/tools/autoscaling/agent/http.mdx similarity index 100% rename from website/content/docs/autoscaling/agent/http.mdx rename to website/content/tools/autoscaling/agent/http.mdx diff --git a/website/content/docs/autoscaling/agent/nomad.mdx b/website/content/tools/autoscaling/agent/nomad.mdx similarity index 100% rename from website/content/docs/autoscaling/agent/nomad.mdx rename to website/content/tools/autoscaling/agent/nomad.mdx diff --git a/website/content/docs/autoscaling/agent/policy.mdx b/website/content/tools/autoscaling/agent/policy.mdx similarity index 100% rename from website/content/docs/autoscaling/agent/policy.mdx rename to website/content/tools/autoscaling/agent/policy.mdx diff --git a/website/content/docs/autoscaling/agent/policy_eval.mdx b/website/content/tools/autoscaling/agent/policy_eval.mdx similarity index 100% rename from website/content/docs/autoscaling/agent/policy_eval.mdx rename to website/content/tools/autoscaling/agent/policy_eval.mdx diff --git a/website/content/docs/autoscaling/agent/strategy.mdx b/website/content/tools/autoscaling/agent/strategy.mdx similarity index 95% rename from website/content/docs/autoscaling/agent/strategy.mdx rename to website/content/tools/autoscaling/agent/strategy.mdx index ecacbe612..54b8072e0 100644 --- a/website/content/docs/autoscaling/agent/strategy.mdx +++ b/website/content/tools/autoscaling/agent/strategy.mdx @@ -34,4 +34,4 @@ strategy "example-strategy-plugin" { the plugin either as HCL or JSON. The accepted values are plugin specific. Please refer to the individual plugin's documentation. -[plugin_dir]: /docs/autoscaling/agent#plugin_dir +[plugin_dir]: /tools/autoscaling/agent#plugin_dir diff --git a/website/content/docs/autoscaling/agent/target.mdx b/website/content/tools/autoscaling/agent/target.mdx similarity index 95% rename from website/content/docs/autoscaling/agent/target.mdx rename to website/content/tools/autoscaling/agent/target.mdx index 41150e97f..ba9cd487f 100644 --- a/website/content/docs/autoscaling/agent/target.mdx +++ b/website/content/tools/autoscaling/agent/target.mdx @@ -35,4 +35,4 @@ target "example-target-plugin" { the plugin either as HCL or JSON. The accepted values are plugin specific. Please refer to the individual plugin's documentation. -[plugin_dir]: /docs/autoscaling/agent#plugin_dir +[plugin_dir]: /tools/autoscaling/agent#plugin_dir diff --git a/website/content/docs/autoscaling/agent/telemetry.mdx b/website/content/tools/autoscaling/agent/telemetry.mdx similarity index 100% rename from website/content/docs/autoscaling/agent/telemetry.mdx rename to website/content/tools/autoscaling/agent/telemetry.mdx diff --git a/website/content/docs/autoscaling/api.mdx b/website/content/tools/autoscaling/api.mdx similarity index 100% rename from website/content/docs/autoscaling/api.mdx rename to website/content/tools/autoscaling/api.mdx diff --git a/website/content/docs/autoscaling/cli.mdx b/website/content/tools/autoscaling/cli.mdx similarity index 99% rename from website/content/docs/autoscaling/cli.mdx rename to website/content/tools/autoscaling/cli.mdx index b32b10f41..71e167689 100644 --- a/website/content/docs/autoscaling/cli.mdx +++ b/website/content/tools/autoscaling/cli.mdx @@ -188,4 +188,4 @@ $ nomad-autoscaler version Nomad Autoscaler v0.0.3-dev (da91fa9) ``` -[nomad_autoscaler_agent_guide]: /docs/autoscaling/agent +[nomad_autoscaler_agent_guide]: /tools/autoscaling/agent diff --git a/website/content/docs/autoscaling/index.mdx b/website/content/tools/autoscaling/index.mdx similarity index 95% rename from website/content/docs/autoscaling/index.mdx rename to website/content/tools/autoscaling/index.mdx index a6887a557..e94632fd8 100644 --- a/website/content/docs/autoscaling/index.mdx +++ b/website/content/tools/autoscaling/index.mdx @@ -34,7 +34,7 @@ from a cluster to ensure there is an appropriate amount of cluster resource for the scheduled applications. This is achieved by interacting with remote providers to start or terminate new Nomad clients based on metrics such as the remaining free schedulable CPU or memory. Cluster scaling is enabled by configuring the -[autoscaler agent](/docs/autoscaling/agent#dir) with policies targeting the Nomad +[autoscaler agent](/tools/autoscaling/agent#dir) with policies targeting the Nomad cluster. ## Dynamic Application Sizing @@ -56,7 +56,7 @@ Dynamic Application Sizing can be enabled on an individual task by configuring specification [`scaling` block][scaling_block]. [scaling_block]: /docs/job-specification/scaling#scaling-stanza -[autoscaling_policy]: /docs/autoscaling/policy +[autoscaling_policy]: /tools/autoscaling/policy [autoscaler_github]: https://github.com/hashicorp/nomad-autoscaler [autoscaler_releases]: https://releases.hashicorp.com/nomad-autoscaler/ [autoscaler_dockerhub]: https://hub.docker.com/r/hashicorp/nomad-autoscaler diff --git a/website/content/docs/autoscaling/internals/checks.mdx b/website/content/tools/autoscaling/internals/checks.mdx similarity index 100% rename from website/content/docs/autoscaling/internals/checks.mdx rename to website/content/tools/autoscaling/internals/checks.mdx diff --git a/website/content/docs/autoscaling/internals/index.mdx b/website/content/tools/autoscaling/internals/index.mdx similarity index 74% rename from website/content/docs/autoscaling/internals/index.mdx rename to website/content/tools/autoscaling/internals/index.mdx index eb14454eb..efd07ce95 100644 --- a/website/content/docs/autoscaling/internals/index.mdx +++ b/website/content/tools/autoscaling/internals/index.mdx @@ -11,5 +11,5 @@ description: > This section covers the internals of the Nomad Autoscaler and explains the technical details of how it functions, its architecture, and sub-systems. -- [Autoscaler plugins](/docs/autoscaling/internals/plugins) -- [Check calculations](/docs/autoscaling/interals/checks) +- [Autoscaler plugins](/tools/autoscaling/internals/plugins) +- [Check calculations](/tools/autoscaling/interals/checks) diff --git a/website/content/docs/autoscaling/internals/node-selector-strategy.mdx b/website/content/tools/autoscaling/internals/node-selector-strategy.mdx similarity index 100% rename from website/content/docs/autoscaling/internals/node-selector-strategy.mdx rename to website/content/tools/autoscaling/internals/node-selector-strategy.mdx diff --git a/website/content/docs/autoscaling/internals/plugins/apm.mdx b/website/content/tools/autoscaling/internals/plugins/apm.mdx similarity index 94% rename from website/content/docs/autoscaling/internals/plugins/apm.mdx rename to website/content/tools/autoscaling/internals/plugins/apm.mdx index dec6b34b6..b3ce15513 100644 --- a/website/content/docs/autoscaling/internals/plugins/apm.mdx +++ b/website/content/tools/autoscaling/internals/plugins/apm.mdx @@ -43,6 +43,6 @@ An example would be to return the CPU utilization for all allocations during the time range. [apm_plugin]: https://github.com/hashicorp/nomad-autoscaler/blob/v0.3.0/plugins/apm/apm.go#L11 -[base_plugin]: /docs/autoscaling/internals/plugins/base +[base_plugin]: /tools/autoscaling/internals/plugins/base [noop_plugin]: https://github.com/hashicorp/nomad-autoscaler/tree/v0.3.0/plugins/test/noop-apm -[das]: /docs/autoscaling#dynamic-application-sizing +[das]: /tools/autoscaling#dynamic-application-sizing diff --git a/website/content/docs/autoscaling/internals/plugins/base.mdx b/website/content/tools/autoscaling/internals/plugins/base.mdx similarity index 95% rename from website/content/docs/autoscaling/internals/plugins/base.mdx rename to website/content/tools/autoscaling/internals/plugins/base.mdx index 3139970d3..750c61253 100644 --- a/website/content/docs/autoscaling/internals/plugins/base.mdx +++ b/website/content/tools/autoscaling/internals/plugins/base.mdx @@ -30,4 +30,4 @@ PluginInfo{ The `SetConfig` function is called when starting an instance of the plugin. It contains the configuration for a named instance of the plugin as provided in the autoscaler [agent config][plugin_config]. -[plugin_config]: /docs/autoscaling/agent +[plugin_config]: /tools/autoscaling/agent diff --git a/website/content/docs/autoscaling/internals/plugins/index.mdx b/website/content/tools/autoscaling/internals/plugins/index.mdx similarity index 84% rename from website/content/docs/autoscaling/internals/plugins/index.mdx rename to website/content/tools/autoscaling/internals/plugins/index.mdx index e1187d904..1c6a44b82 100644 --- a/website/content/docs/autoscaling/internals/plugins/index.mdx +++ b/website/content/tools/autoscaling/internals/plugins/index.mdx @@ -13,11 +13,11 @@ devices. The following components are currently pluggable within the Nomad Autoscaler: -- [APMs](/docs/autoscaling/internals/plugins/apm) -- [Strategies](/docs/autoscaling/internals/plugins/strategy) -- [Targets](/docs/autoscaling/internals/plugins/target) +- [APMs](/tools/autoscaling/internals/plugins/apm) +- [Strategies](/tools/autoscaling/internals/plugins/strategy) +- [Targets](/tools/autoscaling/internals/plugins/target) -In addition, each plugin implements a [base](/docs/autoscaling/internals/plugins/base) +In addition, each plugin implements a [base](/tools/autoscaling/internals/plugins/base) plugin functionality. # Architecture diff --git a/website/content/docs/autoscaling/internals/plugins/strategy.mdx b/website/content/tools/autoscaling/internals/plugins/strategy.mdx similarity index 96% rename from website/content/docs/autoscaling/internals/plugins/strategy.mdx rename to website/content/tools/autoscaling/internals/plugins/strategy.mdx index cc01cb5d3..102b4969b 100644 --- a/website/content/docs/autoscaling/internals/plugins/strategy.mdx +++ b/website/content/tools/autoscaling/internals/plugins/strategy.mdx @@ -35,6 +35,6 @@ argument includes the current value of the scaling target. The returned struct s from applying the strategy. [strategy_plugin]: https://github.com/hashicorp/nomad-autoscaler/blob/v0.3.0/plugins/strategy/strategy.go#L11 -[base_plugin]: /docs/autoscaling/internals/plugins/base +[base_plugin]: /tools/autoscaling/internals/plugins/base [noop_plugin]: https://github.com/hashicorp/nomad-autoscaler/tree/v0.3.0/plugins/test/noop-strategy [target_value]: https://github.com/hashicorp/nomad-autoscaler/tree/v0.3.0/plugins/builtin/strategy/target-value diff --git a/website/content/docs/autoscaling/internals/plugins/target.mdx b/website/content/tools/autoscaling/internals/plugins/target.mdx similarity index 95% rename from website/content/docs/autoscaling/internals/plugins/target.mdx rename to website/content/tools/autoscaling/internals/plugins/target.mdx index ca001c901..25b46ec48 100644 --- a/website/content/docs/autoscaling/internals/plugins/target.mdx +++ b/website/content/tools/autoscaling/internals/plugins/target.mdx @@ -43,8 +43,8 @@ current scaling level, readiness, and arbitrary metadata. [nomad_group_count_plugin]: https://github.com/hashicorp/nomad-autoscaler/tree/v0.3.0/plugins/builtin/target/nomad [target_plugin]: https://github.com/hashicorp/nomad-autoscaler/blob/v0.3.0/plugins/target/target.go#L12 -[base_plugin]: /docs/autoscaling/internals/plugins/base +[base_plugin]: /tools/autoscaling/internals/plugins/base [noop_plugin]: https://github.com/hashicorp/nomad-autoscaler/tree/v0.3.0/plugins/test/noop-target [scaling_action_sdk]: https://github.com/hashicorp/nomad-autoscaler/blob/v0.3.0/sdk/strategy.go#L25 -[policy_target]: /docs/autoscaling/policy#target +[policy_target]: /tools/autoscaling/policy#target [target_status_sdk]: https://github.com/hashicorp/nomad-autoscaler/blob/v0.3.0/sdk/target.go#L6 diff --git a/website/content/docs/autoscaling/plugins/apm/datadog.mdx b/website/content/tools/autoscaling/plugins/apm/datadog.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/apm/datadog.mdx rename to website/content/tools/autoscaling/plugins/apm/datadog.mdx diff --git a/website/content/docs/autoscaling/plugins/apm/index.mdx b/website/content/tools/autoscaling/plugins/apm/index.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/apm/index.mdx rename to website/content/tools/autoscaling/plugins/apm/index.mdx diff --git a/website/content/docs/autoscaling/plugins/apm/nomad.mdx b/website/content/tools/autoscaling/plugins/apm/nomad.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/apm/nomad.mdx rename to website/content/tools/autoscaling/plugins/apm/nomad.mdx diff --git a/website/content/docs/autoscaling/plugins/apm/prometheus.mdx b/website/content/tools/autoscaling/plugins/apm/prometheus.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/apm/prometheus.mdx rename to website/content/tools/autoscaling/plugins/apm/prometheus.mdx diff --git a/website/content/docs/autoscaling/plugins/external/index.mdx b/website/content/tools/autoscaling/plugins/external/index.mdx similarity index 94% rename from website/content/docs/autoscaling/plugins/external/index.mdx rename to website/content/tools/autoscaling/plugins/external/index.mdx index f90fed188..9b31b08be 100644 --- a/website/content/docs/autoscaling/plugins/external/index.mdx +++ b/website/content/tools/autoscaling/plugins/external/index.mdx @@ -21,7 +21,7 @@ Below is a list of community-support plugins available for the Nomad autoscaler. - [OpenStack Nova][os-nova] - [OpenStack Senlin][senlin] -[plugin_guide]: /docs/autoscaling/internals/plugins +[plugin_guide]: /tools/autoscaling/internals/plugins [senlin]: https://github.com/dkt26111/nomad-senlin-autoscaler [do-droplets]: https://github.com/jsiebens/nomad-droplets-autoscaler [os-nova]: https://github.com/jorgemarey/nomad-nova-autoscaler diff --git a/website/content/docs/autoscaling/plugins/index.mdx b/website/content/tools/autoscaling/plugins/index.mdx similarity index 91% rename from website/content/docs/autoscaling/plugins/index.mdx rename to website/content/tools/autoscaling/plugins/index.mdx index 411409381..f532ea418 100644 --- a/website/content/docs/autoscaling/plugins/index.mdx +++ b/website/content/tools/autoscaling/plugins/index.mdx @@ -72,8 +72,8 @@ with an appropriate [APM][apm], [Strategy][strategy] or [Target][target] block entry. [go_plugin_github]: https://github.com/hashicorp/go-plugin -[community_plugins]: /docs/autoscaling/plugins/external -[plugin_dir_config]: /docs/autoscaling/agent#plugin_dir -[apm]: /docs/autoscaling/agent/apm#apm-block -[strategy]: /docs/autoscaling/agent/strategy#strategy-block -[target]: /docs/autoscaling/agent/target#target-block +[community_plugins]: /tools/autoscaling/plugins/external +[plugin_dir_config]: /tools/autoscaling/agent#plugin_dir +[apm]: /tools/autoscaling/agent/apm#apm-block +[strategy]: /tools/autoscaling/agent/strategy#strategy-block +[target]: /tools/autoscaling/agent/target#target-block diff --git a/website/content/docs/autoscaling/plugins/strategy/app-sizing-avg.mdx b/website/content/tools/autoscaling/plugins/strategy/app-sizing-avg.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/strategy/app-sizing-avg.mdx rename to website/content/tools/autoscaling/plugins/strategy/app-sizing-avg.mdx diff --git a/website/content/docs/autoscaling/plugins/strategy/app-sizing-max.mdx b/website/content/tools/autoscaling/plugins/strategy/app-sizing-max.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/strategy/app-sizing-max.mdx rename to website/content/tools/autoscaling/plugins/strategy/app-sizing-max.mdx diff --git a/website/content/docs/autoscaling/plugins/strategy/app-sizing-percentile.mdx b/website/content/tools/autoscaling/plugins/strategy/app-sizing-percentile.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/strategy/app-sizing-percentile.mdx rename to website/content/tools/autoscaling/plugins/strategy/app-sizing-percentile.mdx diff --git a/website/content/docs/autoscaling/plugins/strategy/fixed-value.mdx b/website/content/tools/autoscaling/plugins/strategy/fixed-value.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/strategy/fixed-value.mdx rename to website/content/tools/autoscaling/plugins/strategy/fixed-value.mdx diff --git a/website/content/docs/autoscaling/plugins/strategy/index.mdx b/website/content/tools/autoscaling/plugins/strategy/index.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/strategy/index.mdx rename to website/content/tools/autoscaling/plugins/strategy/index.mdx diff --git a/website/content/docs/autoscaling/plugins/strategy/pass-through.mdx b/website/content/tools/autoscaling/plugins/strategy/pass-through.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/strategy/pass-through.mdx rename to website/content/tools/autoscaling/plugins/strategy/pass-through.mdx diff --git a/website/content/docs/autoscaling/plugins/strategy/target-value.mdx b/website/content/tools/autoscaling/plugins/strategy/target-value.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/strategy/target-value.mdx rename to website/content/tools/autoscaling/plugins/strategy/target-value.mdx diff --git a/website/content/docs/autoscaling/plugins/strategy/threshold.mdx b/website/content/tools/autoscaling/plugins/strategy/threshold.mdx similarity index 97% rename from website/content/docs/autoscaling/plugins/strategy/threshold.mdx rename to website/content/tools/autoscaling/plugins/strategy/threshold.mdx index bbfc4d8ad..e5692ead0 100644 --- a/website/content/docs/autoscaling/plugins/strategy/threshold.mdx +++ b/website/content/tools/autoscaling/plugins/strategy/threshold.mdx @@ -75,4 +75,4 @@ within bounds. Similarly, if `upper_bound` is not defined, any value above One, and only one, of `delta`, `percentage`, or `value` must be defined. -[internals_check]: /docs/autoscaling/internals/checks +[internals_check]: /tools/autoscaling/internals/checks diff --git a/website/content/docs/autoscaling/plugins/target/app-sizing-nomad.mdx b/website/content/tools/autoscaling/plugins/target/app-sizing-nomad.mdx similarity index 98% rename from website/content/docs/autoscaling/plugins/target/app-sizing-nomad.mdx rename to website/content/tools/autoscaling/plugins/target/app-sizing-nomad.mdx index 73bfd4519..9fdab1211 100644 --- a/website/content/docs/autoscaling/plugins/target/app-sizing-nomad.mdx +++ b/website/content/tools/autoscaling/plugins/target/app-sizing-nomad.mdx @@ -67,7 +67,7 @@ check "mem" { specification [`resource` stanza][nomad_resource_stanza]. Supports either `CPU` or `MemoryMB`. -[nomad_autoscaler_policy]: /docs/autoscaling/policy +[nomad_autoscaler_policy]: /tools/autoscaling/policy [nomad_group_stanza]: /docs/job-specification/group [nomad_job_stanza]: /docs/job-specification/job [nomad_namespace_parameter]: /docs/job-specification/job#namespace diff --git a/website/content/docs/autoscaling/plugins/target/aws-asg.mdx b/website/content/tools/autoscaling/plugins/target/aws-asg.mdx similarity index 98% rename from website/content/docs/autoscaling/plugins/target/aws-asg.mdx rename to website/content/tools/autoscaling/plugins/target/aws-asg.mdx index 173d7d740..dfa3eca34 100644 --- a/website/content/docs/autoscaling/plugins/target/aws-asg.mdx +++ b/website/content/tools/autoscaling/plugins/target/aws-asg.mdx @@ -126,5 +126,5 @@ check "hashistack-allocated-cpu" { [nomad_node_class]: /docs/configuration/client#node_class [nomad_node_drain_deadline]: /api-docs/nodes#deadline [nomad_node_purge]: /api-docs/nodes#purge-node -[node_selector_strategy]: /docs/autoscaling/internals/node-selector-strategy +[node_selector_strategy]: /tools/autoscaling/internals/node-selector-strategy [vault_aws_backend]: https://www.vaultproject.io/docs/secrets/aws diff --git a/website/content/docs/autoscaling/plugins/target/azure-vmss.mdx b/website/content/tools/autoscaling/plugins/target/azure-vmss.mdx similarity index 98% rename from website/content/docs/autoscaling/plugins/target/azure-vmss.mdx rename to website/content/tools/autoscaling/plugins/target/azure-vmss.mdx index ddb8f664a..7458d793c 100644 --- a/website/content/docs/autoscaling/plugins/target/azure-vmss.mdx +++ b/website/content/tools/autoscaling/plugins/target/azure-vmss.mdx @@ -136,7 +136,7 @@ service][azure_instance_metadata]. [azure_virtual_machine_scale_sets]: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/overview [azure_vm_identity]: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/ [client_meta_tag]: #client-meta-tag -[node_selector_strategy]: /docs/autoscaling/internals/node-selector-strategy +[node_selector_strategy]: /tools/autoscaling/internals/node-selector-strategy [nomad_datacenter]: /docs/configuration#datacenter [nomad_client_meta_tag]: /docs/configuration/client#meta [nomad_node_class]: /docs/configuration/client#node_class diff --git a/website/content/docs/autoscaling/plugins/target/gce-mig.mdx b/website/content/tools/autoscaling/plugins/target/gce-mig.mdx similarity index 98% rename from website/content/docs/autoscaling/plugins/target/gce-mig.mdx rename to website/content/tools/autoscaling/plugins/target/gce-mig.mdx index 1110079e1..368fb2c54 100644 --- a/website/content/docs/autoscaling/plugins/target/gce-mig.mdx +++ b/website/content/tools/autoscaling/plugins/target/gce-mig.mdx @@ -106,5 +106,5 @@ check "hashistack-allocated-cpu" { [nomad_node_class]: /docs/configuration/client#node_class [nomad_node_drain_deadline]: /api-docs/nodes#deadline [nomad_node_purge]: /api-docs/nodes#purge-node -[node_selector_strategy]: /docs/autoscaling/internals/node-selector-strategy +[node_selector_strategy]: /tools/autoscaling/internals/node-selector-strategy [vault_gcp_backend]: https://www.vaultproject.io/docs/secrets/gcp diff --git a/website/content/docs/autoscaling/plugins/target/index.mdx b/website/content/tools/autoscaling/plugins/target/index.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/target/index.mdx rename to website/content/tools/autoscaling/plugins/target/index.mdx diff --git a/website/content/docs/autoscaling/plugins/target/nomad.mdx b/website/content/tools/autoscaling/plugins/target/nomad.mdx similarity index 100% rename from website/content/docs/autoscaling/plugins/target/nomad.mdx rename to website/content/tools/autoscaling/plugins/target/nomad.mdx diff --git a/website/content/docs/autoscaling/policy.mdx b/website/content/tools/autoscaling/policy.mdx similarity index 94% rename from website/content/docs/autoscaling/policy.mdx rename to website/content/tools/autoscaling/policy.mdx index 99166fc0d..e6ab5d9de 100644 --- a/website/content/docs/autoscaling/policy.mdx +++ b/website/content/tools/autoscaling/policy.mdx @@ -221,10 +221,10 @@ scaling "mem" { } ``` -[das]: /docs/autoscaling#dynamic-application-sizing -[policy_default_cooldown_agent]: /docs/autoscaling/agent#default_cooldown -[eval_interval_agent]: /docs/autoscaling/agent#default_evaluation_interval -[target_plugin_docs]: /docs/autoscaling/plugins/target -[strategy_plugin_docs]: /docs/autoscaling/plugins/strategy -[apm_plugin_docs]: /docs/autoscaling/plugins/apm +[das]: /tools/autoscaling#dynamic-application-sizing +[policy_default_cooldown_agent]: /tools/autoscaling/agent#default_cooldown +[eval_interval_agent]: /tools/autoscaling/agent#default_evaluation_interval +[target_plugin_docs]: /tools/autoscaling/plugins/target +[strategy_plugin_docs]: /tools/autoscaling/plugins/strategy +[apm_plugin_docs]: /tools/autoscaling/plugins/apm [jobspec_scaling_stanza]: /docs/job-specification/scaling diff --git a/website/content/docs/autoscaling/telemetry.mdx b/website/content/tools/autoscaling/telemetry.mdx similarity index 99% rename from website/content/docs/autoscaling/telemetry.mdx rename to website/content/tools/autoscaling/telemetry.mdx index 16706d594..ef2ff9bdc 100644 --- a/website/content/docs/autoscaling/telemetry.mdx +++ b/website/content/tools/autoscaling/telemetry.mdx @@ -268,4 +268,4 @@ and help identify potential bottle necks or latency issues. -[agent_telemetry_config]: /docs/autoscaling/agent#telemetry-block +[agent_telemetry_config]: /tools/autoscaling/agent#telemetry-block diff --git a/website/content/tools/index.mdx b/website/content/tools/index.mdx new file mode 100644 index 000000000..8d3d217cd --- /dev/null +++ b/website/content/tools/index.mdx @@ -0,0 +1,40 @@ +--- +layout: docs +page_title: Tools +description: Learn about tools for Nomad. +--- + +# Tools + +External tools provide additional capabilities and use cases to Nomad. They are +installed separately from Nomad itself and can sometimes be deployed as a Nomad +job in your cluster. + +## HashiCorp-Maintained Tools + +The following external tools are currently available for Nomad and maintained by HashiCorp: + +- [Autoscaling](/tools/autoscaling) - HashiCorp's official Nomad Autoscaler. Supports scaling allocations within Nomad and scaling nodes on AWS, Azure, GCP, or arbitrary infrastructure via plugins. +- [Damon](https://github.com/hashicorp/damon) - An terminal dashboard for Nomad. +- [Levant](https://github.com/hashicorp/levant) - A templating and deployment tool for HashiCorp Nomad jobs that provides realtime feedback and detailed failure messages upon deployment issues. +- [Nomad Pack](https://github.com/hashicorp/nomad-pack) - An official package manager and templating tool for Nomad, currently a Tech Preview. + +## Community Tools + +The following external tools are currently available for Nomad and maintained by members of the Nomad Community: + +- [Chaotic](https://github.com/ngine-io/chaotic) - A Chaos Engineering tool to stop allocations, reboot or stop/start virtual machines in your cloud environment +- [Deadman Check](https://github.com/sepulworld/deadman-check) - A monitoring companion for Nomad periodic jobs that alerts if periodic isn't running at the expected interval +- [Hashi Up](https://github.com/jsiebens/hashi-up) - A utility to install Nomad on remote Linux hosts +- [Jenkins Nomad Cloud Plugin](https://github.com/jenkinsci/nomad-plugin) - A Jenkins plugin using Nomad to provision build workers +- [Kreconciler](https://github.com/koyeb/kreconciler) - A library to build control-loops for things on Nomad (or other schedulers) +- [Nelson](https://getnelson.io/) - A tool for automated, multi-region container deployment using Nomad +- [Node Problem Detector](https://github.com/Roblox/nomad-node-problem-detector) - A tool used to detect problems on Nomad nodes based on user-defined health checks +- [Nomad deploy result action](https://github.com/let-sh/nomad-deploy-result-action) - A Github action to monitor deployment results +- [Nomad Firehose](https://github.com/seatgeek/nomad-firehose) - A tool to enable teams to quickly build logic around nomad task events without hooking into Nomad API +- [Nomad Helper](https://github.com/seatgeek/nomad-helper) - A Nomad helper binary. Reevaluate jobs, force garbage collection, drain nodes, export/import count information +- [Nomad Toast](https://github.com/jrasell/nomad-toast) - A tool for receiving notifications based on HashiCorp Nomad events +- [Nomad Watcher](https://github.com/blalor/nomad-watcher) - A simple service that watches Nomad's nodes, jobs, deployments, evaluations, allocations, and task states, and writes the events to a file +- [Nomadgen](https://github.com/smintz/nomadgen) - Craft your Hashicorp's Nomad job specs in python. +- [Nomadctld](https://github.com/42wim/nomadctld) - An ssh server that sits between users and the nomad cluster allowing for limited access to your nomad cluster and allow them to attach, see logs, tail logs, stop, restart, exec containers they own on the cluster +- [Nomad-spk](https://github.com/numkem/nomad-spk) - A tool to install nomad into a Synology NAS diff --git a/website/data/docs-nav-data.json b/website/data/docs-nav-data.json index dc56f2637..51ce0a2af 100644 --- a/website/data/docs-nav-data.json +++ b/website/data/docs-nav-data.json @@ -1368,7 +1368,7 @@ }, { "title": "Podman", - "path": "drivers/podman" + "href": "/plugins/drivers/podman" }, { "title": "QEMU", @@ -1383,51 +1383,51 @@ "routes": [ { "title": "Overview", - "path": "drivers/external" + "href": "/plugins/drivers/community" }, { "title": "containerd", - "path": "drivers/external/containerd" + "href": "/plugins/drivers/community/containerd" }, { "title": "Firecracker driver", - "path": "drivers/external/firecracker-task-driver" + "href": "/plugins/drivers/community/firecracker-task-driver" }, { "title": "Jailtask driver", - "path": "drivers/external/jail-task-driver" + "href": "/plugins/drivers/community/jail-task-driver" }, { "title": "Lightrun", - "path": "drivers/external/lightrun" + "href": "/plugins/drivers/community/lightrun" }, { "title": "LXC", - "path": "drivers/external/lxc" + "href": "/plugins/drivers/community/lxc" }, { "title": "Pot", - "path": "drivers/external/pot" + "href": "/plugins/drivers/community/pot" }, { "title": "Rkt Deprecated ", - "path": "drivers/external/rkt" + "href": "/plugins/drivers/community/rkt" }, { "title": "Rookout", - "path": "drivers/external/rookout" + "href": "/plugins/drivers/community/rookout" }, { "title": "Singularity", - "path": "drivers/external/singularity" + "href": "/plugins/drivers/community/singularity" }, { "title": "systemd-nspawn", - "path": "drivers/external/nspawn" + "href": "/plugins/drivers/community/nspawn" }, { "title": "Windows IIS", - "path": "drivers/external/iis" + "href": "/plugins/drivers/community/iis" } ] }, @@ -1436,11 +1436,11 @@ "routes": [ { "title": "Overview", - "path": "drivers/remote" + "href": "/plugins/drivers/remote" }, { "title": "ECS", - "path": "drivers/remote/ecs" + "href": "/plugins/drivers/remote/ecs" } ] } @@ -1458,15 +1458,15 @@ "routes": [ { "title": "Overview", - "path": "devices/external" + "href": "/plugins/devices" }, { "title": "Nvidia", - "path": "devices/external/nvidia" + "href": "/plugins/devices/nvidia" }, { "title": "USB Beta", - "path": "devices/external/usb" + "href": "/plugins/devices/community/usb" } ] } @@ -1498,38 +1498,38 @@ "routes": [ { "title": "Overview", - "path": "autoscaling" + "href": "/tools/autoscaling" }, { "title": "Agent", "routes": [ { "title": "Overview", - "path": "autoscaling/agent" + "href": "/tools/autoscaling/agent" }, { "title": "apm", - "path": "autoscaling/agent/apm" + "href": "/tools/autoscaling/agent/apm" }, { "title": "dynamic_application_sizing", - "path": "autoscaling/agent/dynamic_application_sizing" + "href": "/tools/autoscaling/agent/dynamic_application_sizing" }, { "title": "http", - "path": "autoscaling/agent/http" + "href": "/tools/autoscaling/agent/http" }, { "title": "nomad", - "path": "autoscaling/agent/nomad" + "href": "/tools/autoscaling/agent/nomad" }, { "title": "policy", - "path": "autoscaling/agent/policy" + "href": "/tools/autoscaling/agent/policy" }, { "title": "policy_eval", - "path": "autoscaling/agent/policy_eval" + "href": "/tools/autoscaling/agent/policy_eval" }, { "title": "source", @@ -1537,59 +1537,59 @@ }, { "title": "strategy", - "path": "autoscaling/agent/strategy" + "href": "/tools/autoscaling/agent/strategy" }, { "title": "target", - "path": "autoscaling/agent/target" + "href": "/tools/autoscaling/agent/target" }, { "title": "telemetry", - "path": "autoscaling/agent/telemetry" + "href": "/tools/autoscaling/agent/telemetry" } ] }, { "title": "API", - "path": "autoscaling/api" + "href": "/tools/autoscaling/api" }, { "title": "CLI", - "path": "autoscaling/cli" + "href": "/tools/autoscaling/cli" }, { "title": "Policy", - "path": "autoscaling/policy" + "href": "/tools/autoscaling/policy" }, { "title": "Telemetry", - "path": "autoscaling/telemetry" + "href": "/tools/autoscaling/telemetry" }, { "title": "Plugins", "routes": [ { "title": "Overview", - "path": "autoscaling/plugins" + "href": "/tools/autoscaling/plugins" }, { "title": "APM", "routes": [ { "title": "Overview", - "path": "autoscaling/plugins/apm" + "href": "/tools/autoscaling/plugins/apm" }, { "title": "Datadog", - "path": "autoscaling/plugins/apm/datadog" + "href": "/tools/autoscaling/plugins/apm/datadog" }, { "title": "Nomad API", - "path": "autoscaling/plugins/apm/nomad" + "href": "/tools/autoscaling/plugins/apm/nomad" }, { "title": "Prometheus", - "path": "autoscaling/plugins/apm/prometheus" + "href": "/tools/autoscaling/plugins/apm/prometheus" } ] }, @@ -1598,35 +1598,35 @@ "routes": [ { "title": "Overview", - "path": "autoscaling/plugins/strategy" + "href": "/tools/autoscaling/plugins/strategy" }, { "title": "Dynamic Application Sizing Average", - "path": "autoscaling/plugins/strategy/app-sizing-avg" + "href": "/tools/autoscaling/plugins/strategy/app-sizing-avg" }, { "title": "Dynamic Application Sizing Max", - "path": "autoscaling/plugins/strategy/app-sizing-max" + "href": "/tools/autoscaling/plugins/strategy/app-sizing-max" }, { "title": "Dynamic Application Sizing Percentile", - "path": "autoscaling/plugins/strategy/app-sizing-percentile" + "href": "/tools/autoscaling/plugins/strategy/app-sizing-percentile" }, { "title": "Fixed Value", - "path": "autoscaling/plugins/strategy/fixed-value" + "href": "/tools/autoscaling/plugins/strategy/fixed-value" }, { "title": "Pass-Through", - "path": "autoscaling/plugins/strategy/pass-through" + "href": "/tools/autoscaling/plugins/strategy/pass-through" }, { "title": "Target Value", - "path": "autoscaling/plugins/strategy/target-value" + "href": "/tools/autoscaling/plugins/strategy/target-value" }, { "title": "Threshold", - "path": "autoscaling/plugins/strategy/threshold" + "href": "/tools/autoscaling/plugins/strategy/threshold" } ] }, @@ -1635,33 +1635,33 @@ "routes": [ { "title": "Overview", - "path": "autoscaling/plugins/target" + "href": "/tools/autoscaling/plugins/target" }, { "title": "Amazon Web Services Autoscaling Group", - "path": "autoscaling/plugins/target/aws-asg" + "href": "/tools/autoscaling/plugins/target/aws-asg" }, { "title": "Azure Virtual Machine Scale Set", - "path": "autoscaling/plugins/target/azure-vmss" + "href": "/tools/autoscaling/plugins/target/azure-vmss" }, { "title": "Dynamic Application Sizing", - "path": "autoscaling/plugins/target/app-sizing-nomad" + "href": "/tools/autoscaling/plugins/target/app-sizing-nomad" }, { "title": "Google Cloud Engine Managed Instance Group", - "path": "autoscaling/plugins/target/gce-mig" + "href": "/tools/autoscaling/plugins/target/gce-mig" }, { "title": "Nomad Task Group", - "path": "autoscaling/plugins/target/nomad" + "href": "/tools/autoscaling/plugins/target/nomad" } ] }, { "title": "Community", - "path": "autoscaling/plugins/external" + "href": "/tools/autoscaling/plugins/external" } ] }, @@ -1670,38 +1670,38 @@ "routes": [ { "title": "Overview", - "path": "autoscaling/internals" + "href": "/tools/autoscaling/internals" }, { "title": "Checks", - "path": "autoscaling/internals/checks" + "href": "/tools/autoscaling/internals/checks" }, { "title": "Node Selector Strategy", - "path": "autoscaling/internals/node-selector-strategy" + "href": "/tools/autoscaling/internals/node-selector-strategy" }, { "title": "Plugins", "routes": [ { "title": "Overview", - "path": "autoscaling/internals/plugins" + "href": "/tools/autoscaling/internals/plugins" }, { "title": "Base", - "path": "autoscaling/internals/plugins/base" + "href": "/tools/autoscaling/internals/plugins/base" }, { "title": "APM", - "path": "autoscaling/internals/plugins/apm" + "href": "/tools/autoscaling/internals/plugins/apm" }, { "title": "Strategy", - "path": "autoscaling/internals/plugins/strategy" + "href": "/tools/autoscaling/internals/plugins/strategy" }, { "title": "Target", - "path": "autoscaling/internals/plugins/target" + "href": "/tools/autoscaling/internals/plugins/target" } ] } @@ -1787,7 +1787,6 @@ { "title": "Overview", "path": "enterprise/license" - }, { "title": "FAQ", diff --git a/website/data/plugins-nav-data.json b/website/data/plugins-nav-data.json new file mode 100644 index 000000000..2e1b3e9fc --- /dev/null +++ b/website/data/plugins-nav-data.json @@ -0,0 +1,107 @@ +[ + { + "title": "Task Drivers", + "routes": [ + { + "title": "Overview", + "path": "drivers" + }, + { + "title": "Podman", + "path": "drivers/podman" + }, + { + "title": "Community", + "routes": [ + { + "title": "Overview", + "path": "drivers/community" + }, + { + "title": "containerd", + "path": "drivers/community/containerd" + }, + { + "title": "Firecracker driver", + "path": "drivers/community/firecracker-task-driver" + }, + { + "title": "Jail task driver", + "path": "drivers/community/jail-task-driver" + }, + { + "title": "Lightrun", + "path": "drivers/community/lightrun" + }, + { + "title": "LXC", + "path": "drivers/community/lxc" + }, + { + "title": "Pot", + "path": "drivers/community/pot" + }, + { + "title": "Rkt Deprecated ", + "path": "drivers/community/rkt" + }, + { + "title": "Rookout", + "path": "drivers/community/rookout" + }, + { + "title": "Singularity", + "path": "drivers/community/singularity" + }, + { + "title": "systemd-nspawn", + "path": "drivers/community/nspawn" + }, + { + "title": "Windows IIS", + "path": "drivers/community/iis" + } + ] + }, + { + "title": "Remote", + "routes": [ + { + "title": "Overview", + "path": "drivers/remote" + }, + { + "title": "ECS", + "path": "drivers/remote/ecs" + } + ] + } + ] + }, + { + "title": "Device Plugins", + "routes": [ + { + "title": "Overview", + "path": "devices" + }, + { + "title": "Nvidia", + "path": "devices/nvidia" + }, + { + "title": "Community", + "routes": [ + { + "title": "Overview", + "path": "devices/community" + }, + { + "title": "USB Beta", + "path": "devices/community/usb" + } + ] + } + ] + } +] diff --git a/website/data/subnav.js b/website/data/subnav.js index 56ddf5dd0..ce213fc78 100644 --- a/website/data/subnav.js +++ b/website/data/subnav.js @@ -1,22 +1,5 @@ -export default [ +const subnavData = [ { text: 'Overview', url: '/', type: 'inbound' }, - { - text: 'Use Cases', - submenu: [ - { - text: 'Simple Container Orchestration', - url: '/use-cases/simple-container-orchestration', - }, - { - text: 'Non-Containerized Application Orchestration', - url: '/use-cases/non-containerized-application-orchestration', - }, - { - text: 'Automated Service Networking with Consul', - url: '/use-cases/automated-service-networking-with-consul', - }, - ], - }, { text: 'Enterprise', url: 'https://www.hashicorp.com/products/nomad/', @@ -38,9 +21,21 @@ export default [ url: '/api-docs', type: 'inbound', }, + { + text: 'Plugins', + url: '/plugins', + type: 'inbound', + }, + { + text: 'Tools', + url: '/tools', + type: 'inbound', + }, { text: 'Community', url: '/community', type: 'inbound', }, ] + +export default subnavData diff --git a/website/data/tools-nav-data.json b/website/data/tools-nav-data.json new file mode 100644 index 000000000..34ad0ecce --- /dev/null +++ b/website/data/tools-nav-data.json @@ -0,0 +1,214 @@ +[ + { + "title": "Autoscaling", + "routes": [ + { + "title": "Overview", + "path": "autoscaling" + }, + { + "title": "Agent", + "routes": [ + { + "title": "Overview", + "path": "autoscaling/agent" + }, + { + "title": "apm", + "path": "autoscaling/agent/apm" + }, + { + "title": "dynamic_application_sizing", + "path": "autoscaling/agent/dynamic_application_sizing" + }, + { + "title": "http", + "path": "autoscaling/agent/http" + }, + { + "title": "nomad", + "path": "autoscaling/agent/nomad" + }, + { + "title": "policy", + "path": "autoscaling/agent/policy" + }, + { + "title": "policy_eval", + "path": "autoscaling/agent/policy_eval" + }, + { + "title": "strategy", + "path": "autoscaling/agent/strategy" + }, + { + "title": "target", + "path": "autoscaling/agent/target" + }, + { + "title": "telemetry", + "path": "autoscaling/agent/telemetry" + } + ] + }, + { + "title": "API", + "path": "autoscaling/api" + }, + { + "title": "CLI", + "path": "autoscaling/cli" + }, + { + "title": "Policy", + "path": "autoscaling/policy" + }, + { + "title": "Telemetry", + "path": "autoscaling/telemetry" + }, + { + "title": "Plugins", + "routes": [ + { + "title": "Overview", + "path": "autoscaling/plugins" + }, + { + "title": "APM", + "routes": [ + { + "title": "Overview", + "path": "autoscaling/plugins/apm" + }, + { + "title": "Datadog", + "path": "autoscaling/plugins/apm/datadog" + }, + { + "title": "Nomad API", + "path": "autoscaling/plugins/apm/nomad" + }, + { + "title": "Prometheus", + "path": "autoscaling/plugins/apm/prometheus" + } + ] + }, + { + "title": "Strategy", + "routes": [ + { + "title": "Overview", + "path": "autoscaling/plugins/strategy" + }, + { + "title": "Dynamic Application Sizing Average", + "path": "autoscaling/plugins/strategy/app-sizing-avg" + }, + { + "title": "Dynamic Application Sizing Max", + "path": "autoscaling/plugins/strategy/app-sizing-max" + }, + { + "title": "Dynamic Application Sizing Percentile", + "path": "autoscaling/plugins/strategy/app-sizing-percentile" + }, + { + "title": "Fixed Value", + "path": "autoscaling/plugins/strategy/fixed-value" + }, + { + "title": "Pass-Through", + "path": "autoscaling/plugins/strategy/pass-through" + }, + { + "title": "Target Value", + "path": "autoscaling/plugins/strategy/target-value" + }, + { + "title": "Threshold", + "path": "autoscaling/plugins/strategy/threshold" + } + ] + }, + { + "title": "Target", + "routes": [ + { + "title": "Overview", + "path": "autoscaling/plugins/target" + }, + { + "title": "Amazon Web Services Autoscaling Group", + "path": "autoscaling/plugins/target/aws-asg" + }, + { + "title": "Azure Virtual Machine Scale Set", + "path": "autoscaling/plugins/target/azure-vmss" + }, + { + "title": "Dynamic Application Sizing", + "path": "autoscaling/plugins/target/app-sizing-nomad" + }, + { + "title": "Google Cloud Engine Managed Instance Group", + "path": "autoscaling/plugins/target/gce-mig" + }, + { + "title": "Nomad Task Group", + "path": "autoscaling/plugins/target/nomad" + } + ] + }, + { + "title": "Community", + "path": "autoscaling/plugins/external" + } + ] + }, + { + "title": "Internals", + "routes": [ + { + "title": "Overview", + "path": "autoscaling/internals" + }, + { + "title": "Checks", + "path": "autoscaling/internals/checks" + }, + { + "title": "Node Selector Strategy", + "path": "autoscaling/internals/node-selector-strategy" + }, + { + "title": "Plugins", + "routes": [ + { + "title": "Overview", + "path": "autoscaling/internals/plugins" + }, + { + "title": "Base", + "path": "autoscaling/internals/plugins/base" + }, + { + "title": "APM", + "path": "autoscaling/internals/plugins/apm" + }, + { + "title": "Strategy", + "path": "autoscaling/internals/plugins/strategy" + }, + { + "title": "Target", + "path": "autoscaling/internals/plugins/target" + } + ] + } + ] + } + ] + } +] diff --git a/website/pages/plugins/[[...page]].tsx b/website/pages/plugins/[[...page]].tsx new file mode 100644 index 000000000..c82972f45 --- /dev/null +++ b/website/pages/plugins/[[...page]].tsx @@ -0,0 +1,42 @@ +import { productName, productSlug } from 'data/metadata' +import DocsPage from '@hashicorp/react-docs-page' +import { + generateStaticPaths, + generateStaticProps, +} from '@hashicorp/react-docs-page/server' + +const NAV_DATA_FILE = 'data/plugins-nav-data.json' +const CONTENT_DIR = 'content/plugins' +const basePath = 'plugins' + +export default function DocsLayout(props) { + return ( + + ) +} + +export async function getStaticPaths() { + return { + fallback: false, + paths: await generateStaticPaths({ + navDataFile: NAV_DATA_FILE, + localContentDir: CONTENT_DIR, + }), + } +} + +export async function getStaticProps({ params }) { + return { + props: await generateStaticProps({ + navDataFile: NAV_DATA_FILE, + localContentDir: CONTENT_DIR, + product: { name: productName, slug: productSlug }, + params, + basePath: basePath, + }), + } +} diff --git a/website/pages/tools/[[...page]].tsx b/website/pages/tools/[[...page]].tsx new file mode 100644 index 000000000..772c0526d --- /dev/null +++ b/website/pages/tools/[[...page]].tsx @@ -0,0 +1,42 @@ +import { productName, productSlug } from 'data/metadata' +import DocsPage from '@hashicorp/react-docs-page' +import { + generateStaticPaths, + generateStaticProps, +} from '@hashicorp/react-docs-page/server' + +const NAV_DATA_FILE = 'data/tools-nav-data.json' +const CONTENT_DIR = 'content/tools' +const basePath = 'tools' + +export default function DocsLayout(props) { + return ( + + ) +} + +export async function getStaticPaths() { + return { + fallback: false, + paths: await generateStaticPaths({ + navDataFile: NAV_DATA_FILE, + localContentDir: CONTENT_DIR, + }), + } +} + +export async function getStaticProps({ params }) { + return { + props: await generateStaticProps({ + navDataFile: NAV_DATA_FILE, + localContentDir: CONTENT_DIR, + product: { name: productName, slug: productSlug }, + params, + basePath: basePath, + }), + } +} diff --git a/website/redirects.js b/website/redirects.js index e74a0d045..48a206b7f 100644 --- a/website/redirects.js +++ b/website/redirects.js @@ -465,7 +465,7 @@ module.exports = [ }, { source: '/docs/devices/nvidia', - destination: '/docs/devices/external/nvidia', + destination: '/plugins/devices/nvidia', permanent: true, }, { @@ -685,7 +685,7 @@ module.exports = [ // Moved /docs/drivers/external/podman -> /docs/drivers/podman { source: '/docs/drivers/external/podman', - destination: '/docs/drivers/podman', + destination: '/plugins/drivers/podman', permanent: true, }, @@ -888,12 +888,12 @@ module.exports = [ // Redirect old LXC driver doc to new one in /docs/external { source: '/docs/drivers/lxc', - destination: '/docs/drivers/external/lxc', + destination: '/plugins/drivers/community/lxc', permanent: true, }, { source: '/docs/drivers/rkt', - destination: '/docs/drivers/external/rkt', + destination: '/plugins/drivers/community/rkt', permanent: true, }, @@ -1262,4 +1262,108 @@ module.exports = [ destination: '/:splat', permanent: true, }, + // Extracted content into `/plugins` & `/tools` + { + source: '/docs/autoscaling', + destination: '/tools/autoscaling', + permanent: true, + }, + { + source: '/docs/autoscaling/:splat*', + destination: '/tools/autoscaling/:splat*', + permanent: true, + }, + // Extracted content into `/plugins` & `/tools`; + // - Redirect individual pages so we don't conflict with + // "built-in plugins" pages + { + source: '/docs/devices/external', + destination: '/plugins/devices/community', + permanent: true, + }, + { + source: '/docs/devices/external/usb', + destination: '/plugins/devices/community/usb', + permanent: true, + }, + { + source: '/docs/devices/external/nvidia', + destination: '/plugins/devices/nvidia', + permanent: true, + }, + { + source: '/docs/drivers/external/containerd', + destination: '/plugins/drivers/community/containerd', + permanent: true, + }, + { + source: '/docs/drivers/external/firecracker-task-driver', + destination: '/plugins/drivers/community/firecracker-task-driver', + permanent: true, + }, + { + source: '/docs/drivers/external/iis', + destination: '/plugins/drivers/community/iis', + permanent: true, + }, + { + source: '/docs/drivers/external', + destination: '/plugins/drivers/community', + permanent: true, + }, + { + source: '/docs/drivers/external/jail-task-driver', + destination: '/plugins/drivers/community/jail-task-driver', + permanent: true, + }, + { + source: '/docs/drivers/external/lightrun', + destination: '/plugins/drivers/community/lightrun', + permanent: true, + }, + { + source: '/docs/drivers/external/lxc', + destination: '/plugins/drivers/community/lxc', + permanent: true, + }, + { + source: '/docs/drivers/external/nspawn', + destination: '/plugins/drivers/community/nspawn', + permanent: true, + }, + { + source: '/docs/drivers/external/pot', + destination: '/plugins/drivers/community/pot', + permanent: true, + }, + { + source: '/docs/drivers/external/rkt', + destination: '/plugins/drivers/community/rkt', + permanent: true, + }, + { + source: '/docs/drivers/external/rookout', + destination: '/plugins/drivers/community/rookout', + permanent: true, + }, + { + source: '/docs/drivers/external/singularity', + destination: '/plugins/drivers/community/singularity', + permanent: true, + }, + { + source: '/docs/drivers/podman', + destination: '/plugins/drivers/podman', + permanent: true, + }, + { + source: '/docs/drivers/remote/ecs', + destination: '/plugins/drivers/remote/ecs', + permanent: true, + }, + { + source: '/docs/drivers/remote', + destination: '/plugins/drivers/remote', + permanent: true, + }, ]