Update UI, code comment, and README links to docs, tutorials (#26429)

* Update UI, code comment, and README links to docs, tutorials

* fix typo in ephemeral disks learn more link url

* feedback on typo

Co-authored-by: Tim Gross <tgross@hashicorp.com>

---------

Co-authored-by: Tim Gross <tgross@hashicorp.com>
This commit is contained in:
Aimee Ukasick
2025-08-06 09:40:23 -05:00
committed by GitHub
parent 1c63ad50d9
commit a30cb2f137
38 changed files with 46 additions and 46 deletions

View File

@@ -9,7 +9,7 @@ Nomad
</a>
</p>
Nomad is a simple and flexible workload orchestrator to deploy and manage containers ([docker](https://developer.hashicorp.com/nomad/docs/drivers/docker), [podman](https://developer.hashicorp.com/nomad/plugins/drivers/podman)), non-containerized applications ([executable](https://developer.hashicorp.com/nomad/docs/drivers/exec), [Java](https://developer.hashicorp.com/nomad/docs/drivers/java)), and virtual machines ([qemu](https://developer.hashicorp.com/nomad/docs/drivers/qemu)) across on-prem and clouds at scale.
Nomad is a simple and flexible workload orchestrator to deploy and manage containers ([docker](https://developer.hashicorp.com/nomad/docs/deploy/task-driver/docker), [podman](https://developer.hashicorp.com/nomad/plugins/drivers/podman)), non-containerized applications ([executable](https://developer.hashicorp.com/nomad/docs/deploy/task-driver/exec), [Java](https://developer.hashicorp.com/nomad/docs/deploy/task-driver/java)), and virtual machines ([qemu](https://developer.hashicorp.com/nomad/docs/deploy/task-driver/qemu)) across on-prem and clouds at scale.
Nomad is supported on Linux, Windows, and macOS. A commercial version of Nomad, [Nomad Enterprise](https://developer.hashicorp.com/nomad/docs/enterprise), is also available.

View File

@@ -26,7 +26,7 @@ Usage: nomad acl binding-rule <subcommand> [options] [args]
This command groups subcommands for interacting with ACL binding rules.
Nomad's ACL system can be used to control access to data and APIs. For a full
guide see: https://developer.hashicorp.com/nomad/tutorials/access-control
guide see: https://developer.hashicorp.com/nomad/docs/secure/acl
Create an ACL binding rule:

View File

@@ -20,7 +20,7 @@ Usage: nomad acl policy <subcommand> [options] [args]
This command groups subcommands for interacting with ACL policies. Nomad's ACL
system can be used to control access to data and APIs. ACL policies allow a
set of capabilities or actions to be granted or allowlisted. For a full guide
see: https://developer.hashicorp.com/nomad/tutorials/access-control
see: https://developer.hashicorp.com/nomad/docs/secure/acl
Create an ACL policy:

View File

@@ -28,7 +28,7 @@ Usage: nomad acl role <subcommand> [options] [args]
This command groups subcommands for interacting with ACL roles. Nomad's ACL
system can be used to control access to data and APIs. ACL roles are
associated with one or more ACL policies which grant specific capabilities.
For a full guide see: https://developer.hashicorp.com/nomad/tutorials/access-control
For a full guide see: https://developer.hashicorp.com/nomad/docs/secure/acl
Create an ACL role:

View File

@@ -20,7 +20,7 @@ Usage: nomad acl token <subcommand> [options] [args]
This command groups subcommands for interacting with ACL tokens. Nomad's ACL
system can be used to control access to data and APIs. ACL tokens are
associated with one or more ACL policies which grant specific capabilities.
For a full guide see: https://developer.hashicorp.com/nomad/tutorials/access-control
For a full guide see: https://developer.hashicorp.com/nomad/docs/secure/acl
Create an ACL token:

View File

@@ -12,7 +12,7 @@ node_pool "example" {
# The scheduler configuration options specific to this node pool. This block
# supports a subset of the fields supported in the global scheduler
# configuration as described at:
# https://developer.hashicorp.com/nomad/docs/commands/operator/scheduler/set-config
# https://developer.hashicorp.com/nomad/commands/operator/scheduler/set-config
#
# * scheduler_algorithm is the scheduling algorithm to use for the pool.
# If not defined, the global cluster scheduling algorithm is used.

View File

@@ -24,7 +24,7 @@ Usage: nomad license <subcommand> [options] [args]
This command has subcommands for managing the Nomad Enterprise license.
For more detailed examples see:
https://developer.hashicorp.com/nomad/docs/commands/license
https://developer.hashicorp.com/nomad/commands/license
Retrieve the server's license:

View File

@@ -22,7 +22,7 @@ Usage: nomad namespace <subcommand> [options] [args]
This command groups subcommands for interacting with namespaces. Namespaces
allow jobs and their associated objects to be segmented from each other and
other users of the cluster. For a full guide on namespaces see:
https://developer.hashicorp.com/nomad/tutorials/manage-clusters/namespaces
https://developer.hashicorp.com/nomad/docs/govern/namespaces
Create or update a namespace:

View File

@@ -30,7 +30,7 @@ Usage: nomad operator autopilot <subcommand> [options]
This command groups subcommands for interacting with Nomad's Autopilot
subsystem. Autopilot provides automatic, operator-friendly management of Nomad
servers. The command can be used to view or modify the current Autopilot
configuration. For a full guide see: https://developer.hashicorp.com/nomad/tutorials/manage-clusters/autopilot
configuration. For a full guide see: https://developer.hashicorp.com/nomad/docs/manage/autopilot
Get the current Autopilot configuration:

View File

@@ -23,7 +23,7 @@ Usage: nomad quota <subcommand> [options] [args]
quotas allow operators to restrict the aggregate resource usage of namespaces.
Users can inspect existing quota specifications, create new quotas, delete and
list existing quotas, and more. For a full guide on resource quotas see:
https://developer.hashicorp.com/nomad/tutorials/governance-and-policy/quotas
https://developer.hashicorp.com/nomad/docs/govern/resource-quotas
Examine a quota's status:

View File

@@ -24,7 +24,7 @@ Usage: nomad sentinel <subcommand> [options] [args]
Sentinel integration builds on the ACL System. Users can read existing
Sentinel policies, create new policies, delete and list existing policies, and
more. For a full guide on Sentinel policies see:
https://developer.hashicorp.com/nomad/tutorials/governance-and-policy/sentinel
https://developer.hashicorp.com/nomad/docs/govern/sentinel
Read an existing policy:

View File

@@ -175,8 +175,8 @@ flowchart TD
NodeDrainer -- "4. NodesDrainComplete\n(raft shim)" --> StateStore
```
[`nomad node drain`]: https://developer.hashicorp.com/nomad/docs/commands/node/drain
[node drain tutorial]: https://developer.hashicorp.com/nomad/tutorials/manage-clusters/node-drain
[`nomad node drain`]: https://developer.hashicorp.com/nomad/commands/node/drain
[node drain tutorial]: https://developer.hashicorp.com/nomad/docs/manage/migrate-workloads
[`nomad/drainer`]: https://github.com/hashicorp/nomad/tree/main/nomad/drainer
[`watch_nodes.go`]: https://github.com/hashicorp/nomad/blob/main/nomad/drainer/watch_nodes.go
[`watch_jobs.go`]: https://github.com/hashicorp/nomad/blob/main/nomad/drainer/watch_jobs.go

View File

@@ -338,5 +338,5 @@ sequenceDiagram
```
[Scheduling Concepts]: https://developer.hashicorp.com/nomad/docs/concepts/scheduling/scheduling
[Scheduling Concepts]: https://developer.hashicorp.com/nomad/docs/concepts/scheduling/how-scheduling-works
[`update`]: https://developer.hashicorp.com/nomad/docs/job-specification/update

View File

@@ -198,4 +198,4 @@ flowchart LR
```
[Scheduling in Nomad]: https://developer.hashicorp.com/nomad/docs/internals/scheduling/scheduling
[Scheduling in Nomad]: https://developer.hashicorp.com/nomad/docs/concepts/scheduling/how-scheduling-works

View File

@@ -252,7 +252,7 @@ and eventually need to be garbage collected.
[Scheduling in Nomad]: https://developer.hashicorp.com/nomad/docs/internals/scheduling/scheduling
[Scheduling in Nomad]: https://developer.hashicorp.com/nomad/docs/concepts/scheduling/how-scheduling-works
[`structs.go`]: https://github.com/hashicorp/nomad/blob/v1.4.0-beta.1/nomad/structs/structs.go#L10857-L10875
[`update`]: https://developer.hashicorp.com/nomad/docs/job-specification/update
[`restart` attempts]: https://developer.hashicorp.com/nomad/docs/job-specification/restart

View File

@@ -38,6 +38,6 @@ CLI (command/) -> API Client (api/) -> HTTP API (command/agent) -> RPC (nomad/)
* [ ] Changelog
* [ ] API docs https://developer.hashicorp.com/nomad/api
* [ ] CLI docs https://developer.hashicorp.com/nomad/docs/commands
* [ ] CLI docs https://developer.hashicorp.com/nomad/commands
* [ ] If adding new docs see [website README](../website/README.md#editing-navigation-sidebars)
* [ ] Consider if it needs a guide https://developer.hashicorp.com/nomad/guides/index.html

View File

@@ -55,5 +55,5 @@ Prefer adding a new message to changing any existing RPC messages.
## Docs
* [ ] Changelog
* [ ] [Metrics](https://developer.hashicorp.com/nomad/docs/operations/metrics#server-metrics)
* [ ] [Metrics](https://developer.hashicorp.com/nomad/docs/reference/metrics#server-metrics)
* [ ] [API docs](https://developer.hashicorp.com/nomad/api-docs) for RPCs with an HTTP endpoint, include ACLs, params, and example response body.

View File

@@ -16,4 +16,4 @@ in this directory. This folder should include:
* Add an `Author: @<Github Username>` field at the top so you can be tagged
on issues.
* A Nomad job file for the plugin.
* A [volume specification](https://developer.hashicorp.com/nomad/docs/commands/volume/register#volume-specification) file.
* A [volume specification](https://developer.hashicorp.com/nomad/commands/volume/register#volume-specification) file.

View File

@@ -9,7 +9,7 @@ can be modified for the CephFS Driver, as used
## Deployment
The Ceph CSI Node task requires that [`privileged =
true`](https://developer.hashicorp.com/nomad/docs/drivers/docker#privileged) be
true`](https://developer.hashicorp.com/nomad/docs/deploy/task-driver/docker#allow_privileged) be
set. This is not needed for the Controller task.
### Plugin Arguments

View File

@@ -20,7 +20,7 @@ region = RegionOne
### Docker Privileged Mode
The Cinder CSI Node task requires that [`privileged = true`](https://developer.hashicorp.com/nomad/docs/drivers/docker#privileged) be set. This is not needed for the Controller task.
The Cinder CSI Node task requires that [`privileged = true`](https://developer.hashicorp.com/nomad/docs/deploy/task-driver/docker#allow_privileged) be set. This is not needed for the Controller task.
## Container Arguments

View File

@@ -113,7 +113,7 @@ job "kadalu-csi-controller" {
image = "docker.io/kadalu/kadalu-csi:${var.kadalu_version}"
# Nomad client config for docker plugin should have privileged set to 'true'
# refer https://developer.hashicorp.com/nomad/docs/drivers/docker#privileged
# refer https://developer.hashicorp.com/nomad/docs/deploy/task-driver/docker#allow_privileged
# Need to access '/dev/fuse' for mounting external gluster volume
privileged = true

View File

@@ -102,7 +102,7 @@ EOT
# /var/nomad/alloc/:alloc_id/:task_name
# which is the same as the root directory for exec tasks.
# we just need to make sure this doesn't collide with the
# chroot: https://developer.hashicorp.com/nomad/docs/drivers/exec#chroot
# chroot: https://developer.hashicorp.com/nomad/docs/deploy/task-driver/exec#chroot
destination = "usr/local/bin/myapplication.sh"
}

View File

@@ -163,7 +163,7 @@ func (v *Variable) Value() (cty.Value, hcl.Diagnostics) {
Severity: hcl.DiagError,
Summary: fmt.Sprintf("Unset variable %q", v.Name),
Detail: "A used variable must be set or have a default value; see " +
"https://developer.hashicorp.com/nomad/docs/job-specification/hcl2/variables for " +
"https://developer.hashicorp.com/nomad/docs/reference/hcl2/variables for " +
"details.",
Context: v.Range.Ptr(),
}}

View File

@@ -273,7 +273,7 @@ func (s *Authenticator) AuthenticateServerOnly(ctx RPCContext, args structs.Requ
// verify them here and only return the server ACL for actual servers even
// if mTLS was disabled. Without mTLS, any request can spoof server RPCs.
// This is known and documented in the Security Model:
// https://developer.hashicorp.com/nomad/docs/concepts/security#requirements
// https://developer.hashicorp.com/nomad/docs/secure/acl
if err := verifyTLS(s.verifyTLS.Load(), ctx, s.validServerCertNames, identity); err != nil {
return nil, err
}

View File

@@ -2190,7 +2190,7 @@ directory.
The "address" field is the address and port of the server.
The "non_voter" field controls whether the server is a non-voter, which is used
in some advanced Autopilot configurations, please see
https://developer.hashicorp.com/nomad/tutorials/manage-clusters/outage-recovery for more information. If
https://developer.hashicorp.com/nomad/docs/manage/outage-recovery for more information. If
"non_voter" is omitted it will default to false, which is typical for most
clusters.
@@ -2207,5 +2207,5 @@ creating the peers.json file, and that all servers receive the same
configuration. Once the peers.json file is successfully ingested and applied, it
will be deleted.
Please see https://developer.hashicorp.com/nomad/tutorials/manage-clusters/outage-recovery for more information.
Please see https://developer.hashicorp.com/nomad/docs/manage/outage-recovery for more information.
`

View File

@@ -198,4 +198,4 @@ This part of scheduling sits in the `scheduler/feasible/rank.go` file. The
`RankIterator` interface, which is implemented by e.g., `SpreadIterator` and
`BinPackIterator`, captures the ranking logic in its `Next()` methods.
[0]: https://developer.hashicorp.com/nomad/docs/concepts/scheduling/scheduling
[0]: https://developer.hashicorp.com/nomad/docs/concepts/scheduling/how-scheduling-works

View File

@@ -9,7 +9,7 @@ case "$1" in
then
echo "======================================================================================================================================="
echo "!! Running Nomad clients inside Docker containers is not supported. !!"
echo "!! Refer to https://developer.hashicorp.com/nomad/docs/install/production/requirements#running-nomad-in-docker for more information. !!"
echo "!! Refer to https://developer.hashicorp.com/nomad/docs/deploy/production/requirements#running-nomad-in-docker for more information. !!"
echo "!! Set the NOMAD_SKIP_DOCKER_IMAGE_WARN environment variable to skip this warning. !!"
echo "======================================================================================================================================="
echo ""

View File

@@ -74,7 +74,7 @@ for an introduction to Vault.
Use the following links to get started with Nomad and its HashiCorp integrations:
* [Getting Started with Nomad](https://developer.hashicorp.com/nomad/intro/getting-started/jobs.html)
* [Consul integration](https://developer.hashicorp.com/nomad/docs/service-discovery/index.html)
* [Vault integration](https://developer.hashicorp.com/nomad/docs/vault-integration/index.html)
* [Consul integration](https://developer.hashicorp.com/nomad/docs/networking/service-discovery)
* [Vault integration](https://developer.hashicorp.com/nomad/docs/secure/vault)
* [consul-template integration](https://developer.hashicorp.com/nomad/docs/job-specification/template.html)

View File

@@ -99,7 +99,7 @@
{{#if this.system.shouldShowRegions}}
<Hds::Form::Radio::Group data-test-global-token-group @layout="horizontal" @name="regional-or-global" {{on "change" this.updateTokenLocality}} as |G|>
<G.Legend>Token Region</G.Legend>
<G.HelperText>See <Hds::Link::Inline @href="https://developer.hashicorp.com/nomad/tutorials/access-control/access-control-tokens#token-replication-settings">ACL token fundamentals: Token replication settings</Hds::Link::Inline> for more information.</G.HelperText>
<G.HelperText>See <Hds::Link::Inline @href="https://developer.hashicorp.com/nomad/docs/secure/acl/tokens#token-replication-settings">ACL token fundamentals: Token replication settings</Hds::Link::Inline> for more information.</G.HelperText>
<G.RadioField
@id={{this.system.activeRegion}}
checked={{eq this.tokenRegion this.system.activeRegion}}
@@ -133,7 +133,7 @@
<div>
<Hds::Form::Radio::Group @layout="horizontal" @name="method-demo1" {{on "change" this.updateTokenType}} as |G|>
<G.Legend>Client or Management token?</G.Legend>
<G.HelperText>See <Hds::Link::Inline @href="https://developer.hashicorp.com/nomad/tutorials/access-control/access-control-tokens#token-types">Token types documentation</Hds::Link::Inline> for more information.</G.HelperText>
<G.HelperText>See <Hds::Link::Inline @href="https://developer.hashicorp.com/nomad/docs/secure/acl/tokens#token-types">Token types documentation</Hds::Link::Inline> for more information.</G.HelperText>
<G.RadioField
@id="client"
checked={{eq @token.type "client"}}

View File

@@ -6,7 +6,7 @@
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
const INITIAL_POLICY_RULES = `# See https://developer.hashicorp.com/nomad/tutorials/access-control/access-control-policies for ACL Policy details
const INITIAL_POLICY_RULES = `# See https://developer.hashicorp.com/nomad/docs/secure/acl/policies for ACL Policy details
# Example policy structure:

View File

@@ -7,8 +7,8 @@
<section class="intro">
<p>Your Nomad cluster has Access Control enabled, which you can use to control access to data and APIs. Here, you can manage the Tokens, Policies, and Roles for your system.</p>
<footer>
<Hds::Link::Standalone @icon="docs-link" @text="ACL System Fundamentals" @iconPosition="trailing" @href="https://developer.hashicorp.com/nomad/tutorials/access-control/access-control" />
<Hds::Link::Standalone @icon="docs-link" @text="ACL Policy Concepts" @iconPosition="trailing" @href="https://developer.hashicorp.com/nomad/tutorials/access-control/access-control-policies" />
<Hds::Link::Standalone @icon="docs-link" @text="ACL System Fundamentals" @iconPosition="trailing" @href="https://developer.hashicorp.com/nomad/docs/secure/acl" />
<Hds::Link::Standalone @icon="docs-link" @text="ACL Policy Concepts" @iconPosition="trailing" @href="https://developer.hashicorp.com/nomad/docs/secure/acl/policies" />
</footer>
</section>
<div class="section-cards">

View File

@@ -59,7 +59,7 @@
<h3>Create Tokens from the Nomad CLI</h3>
</div>
<div class="boxed-section-body">
<p>When you're ready to create more tokens, you can do so via the <a class="external-link" href="https://developer.hashicorp.com/nomad/docs/commands" target="_blank" rel="noopener noreferrer">Nomad CLI <Hds::Icon @name="external-link" @isInline={{true}} /></a> with the following:
<p>When you're ready to create more tokens, you can do so via the <a class="external-link" href="https://developer.hashicorp.com/nomad/commands" target="_blank" rel="noopener noreferrer">Nomad CLI <Hds::Icon @name="external-link" @isInline={{true}} /></a> with the following:
<pre>
<code>{{this.newTokenString}}</code>
<CopyButton

View File

@@ -7,7 +7,7 @@ SPDX-License-Identifier: BUSL-1.1
<Hds::PageHeader class="variable-title" as |PH|>
<PH.Title>Sentinel Policies</PH.Title>
<PH.Description>
Nomad integrates with <Hds::Link::Inline @icon="collections" @href="https://developer.hashicorp.com/nomad/tutorials/governance-and-policy/sentinel">HashiCorp Sentinel</Hds::Link::Inline> to allow operators to express policies as code and have those policies automatically enforced. This allows operators to define a "sandbox" and restrict actions to only those compliant with that policy.
Nomad integrates with <Hds::Link::Inline @icon="collections" @href="https://developer.hashicorp.com/nomad/docs/govern/sentinel">HashiCorp Sentinel</Hds::Link::Inline> to allow operators to express policies as code and have those policies automatically enforced. This allows operators to define a "sandbox" and restrict actions to only those compliant with that policy.
</PH.Description>
<PH.Actions>
{{#if (can "write sentinel-policy")}}

View File

@@ -9,7 +9,7 @@
<Hds::PageHeader class="variable-title" as |PH|>
<PH.Title>Create Sentinel Policy</PH.Title>
<PH.Description>
Nomad integrates with <Hds::Link::Inline @icon="collections" @href="https://developer.hashicorp.com/nomad/tutorials/governance-and-policy/sentinel">HashiCorp Sentinel</Hds::Link::Inline> to allow operators to express policies as code and have those policies automatically enforced. This allows operators to define a "sandbox" and restrict actions to only those compliant with that policy.
Nomad integrates with <Hds::Link::Inline @icon="collections" @href="https://developer.hashicorp.com/nomad/docs/govern/sentinel">HashiCorp Sentinel</Hds::Link::Inline> to allow operators to express policies as code and have those policies automatically enforced. This allows operators to define a "sandbox" and restrict actions to only those compliant with that policy.
</PH.Description>
<PH.Actions>
<Hds::Button

View File

@@ -59,7 +59,7 @@
<h1 data-test-error-title class="title is-spaced">No Cluster Leader</h1>
<p data-test-error-message class="subtitle">
The cluster has no leader.
<a href="https://developer.hashicorp.com/nomad/tutorials/manage-clusters/outage-recovery">
<a href="https://developer.hashicorp.com/nomad/docs/manage/outage-recovery">
Read about Outage Recovery.</a>
</p>
{{else if this.isOTTExchange}}

View File

@@ -13,7 +13,7 @@
<A.Button data-test-pause-fetching @text="Stop polling for job updates" @color="secondary" {{on "click" this.pauseJobFetching}} />
{{/if}}
<A.Button data-test-restart-fetching @text="Manually fetch jobs" @color="secondary" {{on "click" this.restartJobList}} />
<A.LinkStandalone @size="medium" @color="primary" @icon="learn-link" @iconPosition="trailing" @text="Tutorial: Configure reverse proxy for Nomad's web UI" @href="https://developer.hashicorp.com/nomad/tutorials/manage-clusters/reverse-proxy-ui#extend-connection-timeout" />
<A.LinkStandalone @size="medium" @color="primary" @icon="learn-link" @iconPosition="trailing" @text="Tutorial: Configure reverse proxy for Nomad's web UI" @href="https://developer.hashicorp.com/nomad/docs/deploy/clusters/reverse-proxy-ui#extend-connection-timeout" />
</Hds::Alert>
{{/if}}

View File

@@ -55,7 +55,7 @@
</li>
</ul>
</A.Description>
<A.LinkStandalone @color="secondary" @icon="arrow-right" @iconPosition="trailing" @text="Learn more about Nomad Variables" @href="https://developer.hashicorp.com/nomad/tutorials/variables" />
<A.LinkStandalone @color="secondary" @icon="arrow-right" @iconPosition="trailing" @text="Learn more about Nomad Variables" @href="https://developer.hashicorp.com/nomad/docs/job-declare/nomad-variables" />
</Hds::Alert>
</header>

View File

@@ -231,7 +231,7 @@
<A.Description>
Defined in the Nomad agent's config file, best for infrequently changing storage
</A.Description>
<A.Button @color="secondary" @icon="arrow-right" @iconPosition="trailing" @text="Learn more" @href="https://developer.hashicorp.com/nomad/tutorials/stateful-workloads/stateful-workloads-host-volumes" />
<A.Button @color="secondary" @icon="arrow-right" @iconPosition="trailing" @text="Learn more" @href="https://developer.hashicorp.com/nomad/docs/stateful-workloads/static-host-volumes" />
</Hds::Alert>
<Hds::Alert @type="inline" @color="highlight" @icon="hard-drive" as |A|>
<A.Title>
@@ -240,7 +240,7 @@
<A.Description>
Best-effort persistence, ideal for rebuildable data. Stored in the <code>/alloc/data</code> directory in a given allocation.
</A.Description>
<A.Button @color="secondary" @icon="arrow-right" @iconPosition="trailing" @text="Learn more" @href="https://developer.hashicorp.com/nomad/docs/operations/stateful-workloads#ephemeral-disks" />
<A.Button @color="secondary" @icon="arrow-right" @iconPosition="trailing" @text="Learn more" @href="https://developer.hashicorp.com/nomad/docs/architecture/storage/stateful-workloads#ephemeral-disks" />
</Hds::Alert>
</Hds::Card::Container>