mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
feat(website): extract /plugins /tools docs (#11584)
Co-authored-by: Luiz Aoqui <luiz@hashicorp.com> Co-authored-by: Mike Nomitch <mnomitch@hashicorp.com>
This commit is contained in:
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
17
website/content/plugins/devices/index.mdx
Normal file
17
website/content/plugins/devices/index.mdx
Normal file
@@ -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
|
||||
@@ -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/
|
||||
@@ -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
|
||||
41
website/content/plugins/drivers/index.mdx
Normal file
41
website/content/plugins/drivers/index.mdx
Normal file
@@ -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
|
||||
17
website/content/plugins/index.mdx
Normal file
17
website/content/plugins/index.mdx
Normal file
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -268,4 +268,4 @@ and help identify potential bottle necks or latency issues.
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
[agent_telemetry_config]: /docs/autoscaling/agent#telemetry-block
|
||||
[agent_telemetry_config]: /tools/autoscaling/agent#telemetry-block
|
||||
40
website/content/tools/index.mdx
Normal file
40
website/content/tools/index.mdx
Normal file
@@ -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
|
||||
@@ -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 <sup>Deprecated</sup> ",
|
||||
"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 <sup>Beta</sup>",
|
||||
"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",
|
||||
|
||||
107
website/data/plugins-nav-data.json
Normal file
107
website/data/plugins-nav-data.json
Normal file
@@ -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 <sup>Deprecated</sup> ",
|
||||
"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 <sup>Beta</sup>",
|
||||
"path": "devices/community/usb"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -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
|
||||
|
||||
214
website/data/tools-nav-data.json
Normal file
214
website/data/tools-nav-data.json
Normal file
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
42
website/pages/plugins/[[...page]].tsx
Normal file
42
website/pages/plugins/[[...page]].tsx
Normal file
@@ -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 (
|
||||
<DocsPage
|
||||
product={{ name: productName, slug: productSlug }}
|
||||
baseRoute={basePath}
|
||||
staticProps={props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
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,
|
||||
}),
|
||||
}
|
||||
}
|
||||
42
website/pages/tools/[[...page]].tsx
Normal file
42
website/pages/tools/[[...page]].tsx
Normal file
@@ -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 (
|
||||
<DocsPage
|
||||
product={{ name: productName, slug: productSlug }}
|
||||
baseRoute={basePath}
|
||||
staticProps={props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
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,
|
||||
}),
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
},
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user