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 71c5f5a0203..675ffd49114 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 cf724e35ad6..eb3c05746bd 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 92fc96fb645..59175a3fdad 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 0c607ff6838..9fc80adcd0b 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 ef4ff2c17ad..fc637369940 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 12617f53192..80412b9a79a 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 407de14bf5e..1035bd56d34 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 76ae4d726a9..89cbb0be57f 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 00000000000..49dbcbaa718 --- /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 3106e616af8..7c58879567e 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 f3ed7821e40..8bce2075fa4 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 00000000000..ec7152644cd --- /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 00000000000..ca69e8e5893 --- /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 879acb25992..e6b899ff85e 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 8998f26f9e9..91f3d0cfd7d 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 ecacbe6124a..54b8072e077 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 41150e97f92..ba9cd487f0a 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 b32b10f419a..71e167689a7 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 a6887a55788..e94632fd818 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 eb14454eb0a..efd07ce958a 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 dec6b34b6ca..b3ce155137d 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 3139970d388..750c6125396 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 e1187d9040e..1c6a44b82c2 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 cc01cb5d3d2..102b4969b45 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 ca001c901fc..25b46ec4892 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 f90fed188b5..9b31b08be7c 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 41140938145..f532ea4181f 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 bbfc4d8ad57..e5692ead0b9 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 73bfd4519ff..9fdab12113d 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 173d7d74009..dfa3eca34ca 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 ddb8f664a5b..7458d793c6b 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 1110079e17f..368fb2c54c8 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 99166fc0d53..e6ab5d9defe 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 16706d59430..ef2ff9bdcb6 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 00000000000..8d3d217cd1f --- /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 dc56f2637ea..51ce0a2af9e 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 00000000000..2e1b3e9fcc0 --- /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 56ddf5dd05e..ce213fc7827 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 00000000000..34ad0eccefe --- /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 00000000000..c82972f45fe --- /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 00000000000..772c0526d51 --- /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 e74a0d045b7..48a206b7f66 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, + }, ]