open-nomad/website/redirects.js
Kevin Wang c74c06746b
chore: redirects (#12560)
Co-authored-by: Luiz Aoqui <luiz@hashicorp.com>
2022-04-15 13:13:40 -04:00

1397 lines
36 KiB
JavaScript

module.exports = [
// Define your custom redirects within this file.
// Vercel's redirect documentation: https://vercel.com/docs/configuration#project/redirects
// Playground for testing url pattern matching: https://npm.runkit.com/path-to-regexp
{
source: '/home',
destination: '/',
permanent: true,
},
// Friendly URL for trial form redirection
{
source: '/trial',
destination: 'https://www.hashicorp.com/products/nomad/trial',
permanent: true,
},
{
source: '/docs/operations/overview',
destination: '/docs/operations',
permanent: true,
},
// This redirect supports a URL built into the Nomad UI, and should always be
// directed someplace valid to support the text "Read about Outage Recovery."
{
source: '/guides/outage.html',
destination: 'https://learn.hashicorp.com/tutorials/nomad/outage-recovery',
permanent: true,
},
// Nomad Learn Redirects
{
source: '/intro/getting-started',
destination: 'https://learn.hashicorp.com/collections/nomad/get-started',
permanent: true,
},
{
source: '/intro/getting-started/install',
destination:
'https://learn.hashicorp.com/tutorials/nomad/get-started-install',
permanent: true,
},
{
source: '/intro/getting-started/running',
destination: 'https://learn.hashicorp.com/tutorials/nomad/get-started-run',
permanent: true,
},
{
source: '/intro/getting-started/jobs',
destination: 'https://learn.hashicorp.com/tutorials/nomad/get-started-jobs',
permanent: true,
},
{
source: '/intro/getting-started/cluster',
destination:
'https://learn.hashicorp.com/tutorials/nomad/get-started-cluster',
permanent: true,
},
{
source: '/intro/getting-started/ui',
destination: 'https://learn.hashicorp.com/tutorials/nomad/get-started-ui',
permanent: true,
},
{
source: '/intro/getting-started/next-steps',
destination:
'https://learn.hashicorp.com/tutorials/nomad/get-started-learn-more',
permanent: true,
},
{
source: '/intro/vs/kubernetes',
destination: '/docs/nomad-vs-kubernetes',
permanent: true,
},
{
source: '/intro/who-uses-nomad',
destination: '/docs/who-uses/noamd',
permanent: true,
},
// Guides
{
source: '/guides/load-balancing',
destination: 'https://learn.hashicorp.com/collections/nomad/load-balancing',
permanent: true,
},
{
source: '/guides/load-balancing/fabio',
destination:
'https://learn.hashicorp.com/tutorials/nomad/load-balancing-fabio',
permanent: true,
},
{
source: '/guides/load-balancing/nginx',
destination:
'https://learn.hashicorp.com/tutorials/nomad/load-balancing-nginx',
permanent: true,
},
{
source: '/guides/load-balancing/haproxy',
destination:
'https://learn.hashicorp.com/tutorials/nomad/load-balancing-haproxy',
permanent: true,
},
{
source: '/guides/load-balancing/traefik',
destination:
'https://learn.hashicorp.com/tutorials/nomad/load-balancing-traefik',
permanent: true,
},
{
source: '/guides/stateful-workloads',
destination:
'https://learn.hashicorp.com/collections/nomad/stateful-workloads',
permanent: true,
},
{
source: '/guides/stateful-workloads/host-volumes',
destination:
'https://learn.hashicorp.com/tutorials/nomad/stateful-workloads-host-volumes',
permanent: true,
},
{
source: '/guides/stateful-workloads/portworx',
destination:
'https://learn.hashicorp.com/tutorials/nomad/stateful-workloads-portworx',
permanent: true,
},
{
source: '/guides/web-ui',
destination: 'https://learn.hashicorp.com/collections/nomad/web-ui',
permanent: true,
},
{
source: '/guides/web-ui/access.html',
destination: 'https://learn.hashicorp.com/tutorials/nomad/web-ui-access',
permanent: true,
},
{
source: '/guides/web-ui/accessing',
destination: 'https://learn.hashicorp.com/tutorials/nomad/web-ui-access',
permanent: true,
},
{
source: '/guides/web-ui/submitting-a-job',
destination:
'https://learn.hashicorp.com/tutorials/nomad/web-ui-workload-info',
permanent: true,
},
{
source: '/guides/web-ui/operating-a-job',
destination:
'https://learn.hashicorp.com/tutorials/nomad/web-ui-submit-job',
permanent: true,
},
{
source: '/guides/web-ui/inspecting-the-cluster',
destination:
'https://learn.hashicorp.com/tutorials/nomad/web-ui-cluster-info',
permanent: true,
},
{
source: '/guides/web-ui/securing',
destination:
'https://learn.hashicorp.com/tutorials/nomad/web-ui-access#access-an-acl-enabled-ui',
permanent: true,
},
{
source: '/guides/governance-and-policy',
destination:
'https://learn.hashicorp.com/collections/nomad/governance-and-policy',
permanent: true,
},
{
source: '/guides/governance-and-policy/namespaces',
destination: 'https://learn.hashicorp.com/tutorials/nomad/namespaces',
permanent: true,
},
{
source: '/guides/governance-and-policy/quotas',
destination: 'https://learn.hashicorp.com/tutorials/nomad/quotas',
permanent: true,
},
{
source: '/guides/governance-and-policy/sentinel/sentinel-policy',
destination: 'https://learn.hashicorp.com/tutorials/nomad/sentinel',
permanent: true,
},
{
source: '/guides/governance-and-policy/sentinel/job',
destination: 'https://learn.hashicorp.com/tutorials/nomad/sentinel',
permanent: true,
},
// /s/* redirects for useful links that need a stable URL but we may need to
// change its destination in the future.
{
source: '/s/port-plan-failure',
destination: 'https://github.com/hashicorp/nomad/issues/9506',
permanent: false,
},
// Spark guide links are all repointed to deprecated nomad-spark repo
{
source: '/guides/spark',
destination: 'https://github.com/hashicorp/nomad-spark',
permanent: true,
},
{
source: '/guides/spark/:splat*',
destination: 'https://github.com/hashicorp/nomad-spark',
permanent: true,
},
{
source: '/guides/analytical-workloads',
destination: 'https://github.com/hashicorp/nomad-spark',
permanent: true,
},
{
source: '/guides/analytical-workloads/:splat*',
destination: 'https://github.com/hashicorp/nomad-spark',
permanent: true,
},
// These are subsumed in the splat over analytical-workloads, but I'm keeping them here in case
// we want to reclaim the slug "analytical-workloads" at some point and deal with some bad links.
// {
// source: '/guides/analytical-workloads/spark/spark',
// destination: 'https://github.com/hashicorp/nomad-spark',
// permanent: true,
// },
{
source: '/guides/operating-a-job',
destination: 'https://learn.hashicorp.com/collections/nomad/manage-jobs',
permanent: true,
},
{
source: '/guides/operating-a-job/accessing-logs',
destination:
'https://learn.hashicorp.com/tutorials/nomad/jobs-accessing-logs',
permanent: true,
},
{
source: '/guides/operating-a-job/configuring-tasks',
destination: 'https://learn.hashicorp.com/tutorials/nomad/jobs-configuring',
permanent: true,
},
{
source: '/guides/operating-a-job/external',
destination: 'https://learn.hashicorp.com/collections/nomad/plugins',
permanent: true,
},
{
source: '/guides/operating-a-job/external/lxc',
destination: 'https://learn.hashicorp.com/tutorials/nomad/plugin-lxc',
permanent: true,
},
{
source: '/guides/operating-a-job/inspecting-state',
destination: 'https://learn.hashicorp.com/tutorials/nomad/jobs-inspec',
permanent: true,
},
{
source: '/guides/operating-a-job/resource-utilization',
destination: 'https://learn.hashicorp.com/tutorials/nomad/jobs-utilization',
permanent: true,
},
{
source: '/guides/operating-a-job/submitting-jobs',
destination: 'https://learn.hashicorp.com/tutorials/nomad/jobs-submit',
permanent: true,
},
{
source: '/guides/operating-a-job/advanced-scheduling/advanced-scheduling',
destination:
'https://learn.hashicorp.com/collections/nomad/advanced-scheduling',
permanent: true,
},
{
source: '/guides/operating-a-job/advanced-scheduling/affinity',
destination: 'https://learn.hashicorp.com/tutorials/nomad/affinity',
permanent: true,
},
{
source:
'/guides/operating-a-job/advanced-scheduling/preemption-service-batch',
destination: 'https://learn.hashicorp.com/tutorials/nomad/preemption',
permanent: true,
},
{
source: '/guides/operating-a-job/advanced-scheduling/spread',
destination: 'https://learn.hashicorp.com/tutorials/nomad/spread',
permanent: true,
},
{
source: '/guides/operating-a-job/failure-handling-strategies',
destination:
'https://learn.hashicorp.com/collections/nomad/job-failure-handling',
permanent: true,
},
{
source: '/guides/operating-a-job/failure-handling-strategies/check-restart',
destination:
'https://learn.hashicorp.com/tutorials/nomad/failures-check-restart',
permanent: true,
},
{
source: '/guides/operating-a-job/failure-handling-strategies/reschedule',
destination:
'https://learn.hashicorp.com/tutorials/nomad/failures-reschedule',
permanent: true,
},
{
source: '/guides/operating-a-job/failure-handling-strategies/restart',
destination: 'https://learn.hashicorp.com/tutorials/nomad/failures-restart',
permanent: true,
},
{
source: '/guides/operating-a-job/update-strategies',
destination:
'https://learn.hashicorp.com/tutorials/nomad/job-update-strategies',
permanent: true,
},
{
source:
'/guides/operating-a-job/update-strategies/blue-green-and-canary-deployments',
destination:
'https://learn.hashicorp.com/tutorials/nomad/job-blue-green-and-canary-deployments',
permanent: true,
},
{
source: '/guides/operating-a-job/update-strategies/handling-signals',
destination:
'https://learn.hashicorp.com/tutorials/nomad/job-update-handle-signals',
permanent: true,
},
{
source: '/guides/operating-a-job/update-strategies/rolling-upgrades',
destination:
'https://learn.hashicorp.com/tutorials/nomad/job-rolling-update',
permanent: true,
},
{
source: '/guides/operations',
destination:
'https://learn.hashicorp.com/collections/nomad/manage-clusters',
permanent: true,
},
{
source: '/guides/operations/autopilot',
destination: 'https://learn.hashicorp.com/tutorials/nomad/autopilot',
permanent: true,
},
{
source: '/guides/operations/cluster/automatic',
destination: 'https://learn.hashicorp.com/tutorials/nomad/clustering',
permanent: true,
},
{
source: '/guides/operations/cluster/bootstrapping',
destination: 'https://learn.hashicorp.com/tutorials/nomad/clustering',
permanent: true,
},
{
source: '/guides/operations/cluster/cloud_auto_join',
destination: 'https://learn.hashicorp.com/tutorials/nomad/clustering',
permanent: true,
},
{
source: '/guides/operations/cluster/manual',
destination: 'https://learn.hashicorp.com/tutorials/nomad/clustering',
permanent: true,
},
{
source: '/guides/operations/federation',
destination: 'https://learn.hashicorp.com/tutorials/nomad/federation',
permanent: true,
},
{
source: '/guides/operations/monitoring-and-alerting/monitoring',
destination:
'https://learn.hashicorp.com/tutorials/nomad/prometheus-metrics',
permanent: true,
},
{
source: '/guides/operations/monitoring-and-alerting/prometheus-metrics',
destination:
'https://learn.hashicorp.com/tutorials/nomad/prometheus-metrics',
permanent: true,
},
{
source: '/guides/operations/monitoring/nomad-metrics',
destination:
'https://learn.hashicorp.com/tutorials/nomad/prometheus-metrics',
permanent: true,
},
{
source: '/guides/operations/node-draining',
destination: 'https://learn.hashicorp.com/tutorials/nomad/node-drain',
permanent: true,
},
{
source: '/guides/operations/outage',
destination: 'https://learn.hashicorp.com/tutorials/nomad/outage-recovery',
permanent: true,
},
{
source: '/guides/security',
destination: 'https://learn.hashicorp.com/collections/nomad/access-control',
permanent: true,
},
{
source: '/guides/security/acl',
destination: 'https://learn.hashicorp.com/collections/nomad/access-control',
permanent: true,
},
{
source: '/guides/security/encryption',
destination:
'https://learn.hashicorp.com/tutorials/nomad/security-gossip-encryption',
permanent: true,
},
{
source: '/guides/security/securing-nomad',
destination:
'https://learn.hashicorp.com/tutorials/nomad/security-enable-tls',
permanent: true,
},
{
source: '/guides/security/vault-pki-integration',
destination: 'https://learn.hashicorp.com/tutorials/nomad/vault-pki-nomad',
permanent: true,
},
// Multi-part UI guides
{
source: '/guides/ui',
destination: 'https://learn.hashicorp.com/collections/nomad/web-ui',
permanent: true,
},
// Website
// Docs
{
source: '/docs/index',
destination: '/docs',
permanent: true,
},
{
source: '/api/index',
destination: '/api-docs',
permanent: true,
},
{
source: '/api-docs/index',
destination: '/api-docs',
permanent: true,
},
{
source: '/docs/agent/config',
destination: '/docs/configuration',
permanent: true,
},
{
source: '/docs/devices/nvidia',
destination: '/plugins/devices/nvidia',
permanent: true,
},
{
source: '/docs/jobops',
destination: 'https://learn.hashicorp.com/collections/nomad/manage-jobs',
permanent: true,
},
{
source: '/docs/jobops/taskconfig',
destination: 'https://learn.hashicorp.com/tutorials/nomad/jobs-configuring',
permanent: true,
},
{
source: '/docs/jobops/inspecting',
destination: 'https://learn.hashicorp.com/tutorials/nomad/jobs-inspect',
permanent: true,
},
{
source: '/docs/jobops/resources',
destination: 'https://learn.hashicorp.com/tutorials/nomad/jobs-utilization',
permanent: true,
},
{
source: '/docs/jobops/logs',
destination:
'https://learn.hashicorp.com/tutorials/nomad/jobs-accessing-logs',
permanent: true,
},
{
source: '/docs/jobops/updating',
destination: 'https://learn.hashicorp.com/collections/nomad/job-updates',
permanent: true,
},
{
source: '/docs/jobops/servicediscovery',
destination: '/docs/integrations/consul-integration',
permanent: true,
},
{
source: '/docs/jobspec',
destination: '/docs/job-specification',
permanent: true,
},
{
source: '/docs/jobspec/interpreted',
destination: '/docs/runtime/interpolation',
permanent: true,
},
{
source: '/docs/jobspec/json',
destination: '/api-docs/json-jobs',
permanent: true,
},
{
source: '/docs/jobspec/environment',
destination: '/docs/runtime/environment',
permanent: true,
},
{
source: '/docs/jobspec/schedulers',
destination: '/docs/schedulers',
permanent: true,
},
{
source: '/docs/jobspec/servicediscovery',
destination: '/docs/job-specification/service',
permanent: true,
},
{
source: '/docs/jobspec/networking',
destination: '/docs/job-specification/network',
permanent: true,
},
{
source: '/docs/job-specification/index',
destination: '/docs/job-specification',
permanent: true,
},
{
source: '/docs/cluster/automatic',
destination: 'https://learn.hashicorp.com/tutorials/nomad/clustering',
permanent: true,
},
{
source: '/docs/cluster/manual',
destination: 'https://learn.hashicorp.com/tutorials/nomad/clustering',
permanent: true,
},
{
source: '/docs/cluster/federation',
destination: 'https://learn.hashicorp.com/tutorials/nomad/federation',
permanent: true,
},
{
source: '/docs/cluster/requirements',
destination: '/docs/install/production/requirements/',
permanent: true,
},
{
source: '/docs/commands/operator-index',
destination: '/docs/commands/operator',
permanent: true,
},
{
source: '/docs/commands/operator-raft-list-peers',
destination: '/docs/commands/operator/raft-list-peers',
permanent: true,
},
{
source: '/docs/commands/operator-raft-remove-peer',
destination: '/docs/commands/operator/raft-remove-peer',
permanent: true,
},
{
source: '/docs/commands/job-dispatch',
destination: '/docs/commands/job/dispatch',
permanent: true,
},
{
source: '/docs/commands/alloc-status',
destination: '/docs/commands/alloc/status',
permanent: true,
},
{
source: '/docs/commands/eval-status',
destination: '/docs/commands/eval/status',
permanent: true,
},
{
source: '/docs/commands/fs',
destination: '/docs/commands/alloc/fs',
permanent: true,
},
{
source: '/docs/commands/logs',
destination: '/docs/commands/alloc/logs',
permanent: true,
},
{
source: '/docs/commands/init',
destination: '/docs/commands/job/init',
permanent: true,
},
{
source: '/docs/commands/inspect',
destination: '/docs/commands/job/inspect',
permanent: true,
},
{
source: '/docs/commands/run',
destination: '/docs/commands/job/run',
permanent: true,
},
{
source: '/docs/commands/stop',
destination: '/docs/commands/job/stop',
permanent: true,
},
{
source: '/docs/commands/plan',
destination: '/docs/commands/job/plan',
permanent: true,
},
{
source: '/docs/commands/validate',
destination: '/docs/commands/job/validate',
permanent: true,
},
{
source: '/docs/commands/client-config',
destination: '/docs/commands/node/config',
permanent: true,
},
{
source: '/docs/commands/node-drain',
destination: '/docs/commands/node/drain',
permanent: true,
},
{
source: '/docs/commands/node-status',
destination: '/docs/commands/node/status',
permanent: true,
},
{
source: '/docs/commands/keygen',
destination: '/docs/commands/operator/keygen',
permanent: true,
},
{
source: '/docs/commands/keyring',
destination: '/docs/commands/operator/keyring',
permanent: true,
},
{
source: '/docs/commands/server-force-leave',
destination: '/docs/commands/server/force-leave',
permanent: true,
},
{
source: '/docs/commands/server-join',
destination: '/docs/commands/server/join',
permanent: true,
},
{
source: '/docs/commands/server-members',
destination: '/docs/commands/server/members',
permanent: true,
},
{
source: '/docs/runtime/schedulers',
destination: '/docs/schedulers',
permanent: true,
},
// Sometimes code names are too good not to mention
{
source: '/heartyeet',
destination: '/docs/job-specification/group#stop_after_client_disconnect',
permanent: true,
},
// Moved /docs/drivers/external/podman -> /docs/drivers/podman
{
source: '/docs/drivers/external/podman',
destination: '/plugins/drivers/podman',
permanent: true,
},
// Moved /docs/operating-a-job/ -> /guides/operating-a-job/
{
source: '/docs/operating-a-job',
destination: 'https://learn.hashicorp.com/collections/nomad/manage-jobs',
permanent: true,
},
{
source: '/docs/operating-a-job/accessing-logs',
destination:
'https://learn.hashicorp.com/tutorials/nomad/jobs-accessing-logs',
permanent: true,
},
{
source: '/docs/operating-a-job/inspecting-state',
destination: 'https://learn.hashicorp.com/tutorials/nomad/jobs-inspect',
permanent: true,
},
{
source: '/docs/operating-a-job/resource-utilization',
destination: 'https://learn.hashicorp.com/tutorials/nomad/jobs-utilization',
permanent: true,
},
{
source: '/docs/operating-a-job/configuring-tasks',
destination: 'https://learn.hashicorp.com/tutorials/nomad/jobs-configuring',
permanent: true,
},
{
source: '/docs/operating-a-job/submitting-jobs',
destination: 'https://learn.hashicorp.com/tutorials/nomad/jobs-submit',
permanent: true,
},
{
source: '/docs/operating-a-job/failure-handling-strategies',
destination:
'https://learn.hashicorp.com/collections/nomad/job-failure-handling',
permanent: true,
},
{
source: '/docs/operating-a-job/failure-handling-strategies/check-restart',
destination:
'https://learn.hashicorp.com/tutorials/nomad/failures-check-restart',
permanent: true,
},
{
source: '/docs/operating-a-job/failure-handling-strategies/reschedule',
destination:
'https://learn.hashicorp.com/tutorials/nomad/failures-reschedule',
permanent: true,
},
{
source: '/docs/operating-a-job/failure-handling-strategies/restart',
destination: 'https://learn.hashicorp.com/tutorials/nomad/failures-restart',
permanent: true,
},
{
source: '/docs/operating-a-job/update-strategies',
destination: 'https://learn.hashicorp.com/collections/nomad/job-updates',
permanent: true,
},
{
source:
'/docs/operating-a-job/update-strategies/blue-green-and-canary-deployments',
destination:
'https://learn.hashicorp.com/tutorials/nomad/job-blue-green-and-canary-deployments',
permanent: true,
},
{
source: '/docs/operating-a-job/update-strategies/handling-signals',
destination:
'https://learn.hashicorp.com/tutorials/nomad/job-update-handle-signals',
permanent: true,
},
{
source: '/docs/operating-a-job/update-strategies/rolling-upgrades',
destination:
'https://learn.hashicorp.com/tutorials/nomad/job-rolling-update',
permanent: true,
},
// Moved /docs/agent/configuration/ -> /docs/configuration/ 301!
{
source: '/docs/agent/configuration',
destination: '/docs/configuration',
permanent: true,
},
{
source: '/docs/agent/configuration/acl',
destination: '/docs/configuration/acl',
permanent: true,
},
{
source: '/docs/agent/configuration/autopilot',
destination: '/docs/configuration/autopilot',
permanent: true,
},
{
source: '/docs/agent/configuration/client',
destination: '/docs/configuration/client',
permanent: true,
},
{
source: '/docs/agent/configuration/consul',
destination: '/docs/configuration/consul',
permanent: true,
},
{
source: '/docs/agent/configuration/sentinel',
destination: '/docs/configuration/sentinel',
permanent: true,
},
{
source: '/docs/agent/configuration/server',
destination: '/docs/configuration/server',
permanent: true,
},
{
source: '/docs/agent/configuration/server_join',
destination: '/docs/configuration/server_join',
permanent: true,
},
{
source: '/docs/agent/configuration/telemetry',
destination: '/docs/configuration/telemetry',
permanent: true,
},
{
source: '/docs/agent/configuration/tls',
destination: '/docs/configuration/tls',
permanent: true,
},
{
source: '/docs/agent/configuration/vault',
destination: '/docs/configuration/vault',
permanent: true,
},
// Moved telemetry under operations
{
source: '/docs/telemetry',
destination: '/docs/operations/telemetry',
permanent: true,
},
{
source: '/docs/telemetry/metrics',
destination: '/docs/operations/metrics',
permanent: true,
},
{
source: '/docs/operations/metrics',
destination: '/docs/operations/metrics-reference',
permanent: true,
},
{
source: '/docs/operations/telemetry',
destination: '/docs/operations/monitoring-nomad',
permanent: true,
},
// Moved installing agent under operations as ope
{
source: '/docs/install/production/nomad-agent',
destination: '/docs/operations/nomad-agent',
permanent: true,
},
// Moved guide-like docs to /guides
{
source: '/docs/agent',
destination: '/docs/install/production/nomad-agent/',
permanent: true,
},
{
source: '/docs/agent/cloud_auto_join',
destination: 'https://learn.hashicorp.com/tutorials/nomad/clustering',
permanent: true,
},
{
source: '/docs/agent/telemetry',
destination:
'https://learn.hashicorp.com/tutorials/nomad/prometheus-metrics',
permanent: true,
},
{
source: '/docs/agent/encryption',
destination:
'https://learn.hashicorp.com/tutorials/nomad/security-gossip-encryption',
permanent: true,
},
{
source: '/docs/service-discovery',
destination: '/docs/integrations/consul-integration',
permanent: true,
},
// Redirect old LXC driver doc to new one in /docs/external
{
source: '/docs/drivers/lxc',
destination: '/plugins/drivers/community/lxc',
permanent: true,
},
{
source: '/docs/drivers/rkt',
destination: '/plugins/drivers/community/rkt',
permanent: true,
},
// API
{
source: '/docs/http/agent-force-leave',
destination: '/api-docs/agent',
permanent: true,
},
{
source: '/docs/http/agent-join',
destination: '/api-docs/agent',
permanent: true,
},
{
source: '/docs/http/agent-members',
destination: '/api-docs/agent',
permanent: true,
},
{
source: '/docs/http/agent-self',
destination: '/api-docs/agent',
permanent: true,
},
{
source: '/docs/http/agent-servers',
destination: '/api-docs/agent',
permanent: true,
},
{
source: '/docs/http/alloc',
destination: '/api-docs/allocations',
permanent: true,
},
{
source: '/docs/http/allocs',
destination: '/api-docs/allocations',
permanent: true,
},
{
source: '/docs/http/client-allocation-stats',
destination: '/api-docs/client',
permanent: true,
},
{
source: '/docs/http/client-fs',
destination: '/api-docs/client',
permanent: true,
},
{
source: '/docs/http/client-stats',
destination: '/api-docs/client',
permanent: true,
},
{
source: '/docs/http/eval',
destination: '/api-docs/evaluations',
permanent: true,
},
{
source: '/docs/http/evals',
destination: '/api-docs/evaluations',
permanent: true,
},
{
source: '/docs/http',
destination: '/api-docs',
permanent: true,
},
{
source: '/docs/http/job',
destination: '/api-docs/jobs',
permanent: true,
},
{
source: '/docs/http/jobs',
destination: '/api-docs/jobs',
permanent: true,
},
{
source: '/docs/http/json-jobs',
destination: '/api-docs/json-jobs',
permanent: true,
},
{
source: '/docs/http/node',
destination: '/api-docs/nodes',
permanent: true,
},
{
source: '/docs/http/nodes',
destination: '/api-docs/nodes',
permanent: true,
},
{
source: '/docs/http/operator',
destination: '/api-docs/operator',
permanent: true,
},
{
source: '/docs/http/regions',
destination: '/api-docs/regions',
permanent: true,
},
{
source: '/docs/http/status',
destination: '/api-docs/status',
permanent: true,
},
{
source: '/docs/http/system',
destination: '/api-docs/system',
permanent: true,
},
// Guides
// Reorganized Guides by Persona
{
source: '/guides/autopilot',
destination: 'https://learn.hashicorp.com/tutorials/nomad/autopilot',
permanent: true,
},
{
source: '/guides/cluster/automatic',
destination: 'https://learn.hashicorp.com/tutorials/nomad/clustering',
permanent: true,
},
{
source: '/guides/cluster/bootstrapping',
destination: 'https://learn.hashicorp.com/tutorials/nomad/clustering',
permanent: true,
},
{
source: '/guides/operations/cluster/bootstrapping',
destination: 'https://learn.hashicorp.com/tutorials/nomad/clustering',
permanent: true,
},
{
source: '/guides/cluster/manual',
destination: 'https://learn.hashicorp.com/tutorials/nomad/clustering',
permanent: true,
},
{
source: '/guides/cluster/federation',
destination: 'https://learn.hashicorp.com/tutorials/nomad/federation',
permanent: true,
},
{
source: '/guides/cluster/requirements',
destination: '/docs/install/production/requirements',
permanent: true,
},
{
source: '/guides/nomad-metrics',
destination:
'https://learn.hashicorp.com/tutorials/nomad/prometheus-metrics',
permanent: true,
},
{
source: '/guides/node-draining',
destination: 'https://learn.hashicorp.com/tutorials/nomad/node-drain',
permanent: true,
},
{
source: '/guides/outage',
destination: 'https://learn.hashicorp.com/tutorials/nomad/outage-recovery',
permanent: true,
},
{
source: '/guides/acl',
destination: 'https://learn.hashicorp.com/collections/nomad/access-control',
permanent: true,
},
{
source: '/guides/namespaces',
destination: 'https://learn.hashicorp.com/tutorials/nomad/namespaces',
permanent: true,
},
{
source: '/guides/quotas',
destination: 'https://learn.hashicorp.com/tutorials/nomad/quotas',
permanent: true,
},
{
source: '/guides/securing-nomad',
destination:
'https://learn.hashicorp.com/tutorials/nomad/security-enable-tls',
permanent: true,
},
{
source: '/guides/sentinel-policy',
destination: 'https://learn.hashicorp.com/tutorials/nomad/sentinel',
permanent: true,
},
{
source: '/guides/sentinel/job',
destination: 'https://learn.hashicorp.com/tutorials/nomad/sentinel',
permanent: true,
},
{
source: '/guides/security/namespaces',
destination: 'https://learn.hashicorp.com/tutorials/nomad/namespaces',
permanent: true,
},
{
source: '/guides/security/quotas',
destination: 'https://learn.hashicorp.com/tutorials/nomad/quotas',
permanent: true,
},
{
source: '/guides/security/sentinel/job',
destination: 'https://learn.hashicorp.com/tutorials/nomad/quotas',
permanent: true,
},
{
source: '/guides/security/sentinel-policy',
destination: 'https://learn.hashicorp.com/tutorials/nomad/sentinel',
permanent: true,
},
{
source: '/guides/operations/install/index',
destination: '/docs/install',
permanent: true,
},
{
source: '/guides/operations/agent/index',
destination: '/docs/install/production/nomad-agent',
permanent: true,
},
{
source: '/guides/operations/requirements',
destination: '/docs/install/production/requirements',
permanent: true,
},
{
source: '/guides/operations/consul-integration/index',
destination: '/docs/integrations/consul-integration',
permanent: true,
},
{
source: '/guides/operations/vault-integration/index',
destination: '/docs/integrations/vault-integration',
permanent: true,
},
{
source: '/guides/advanced-scheduling',
destination:
'https://learn.hashicorp.com/collections/nomad/advanced-scheduling',
permanent: true,
},
{
source: '/guides/external',
destination: 'https://learn.hashicorp.com/collections/nomad/plugins',
permanent: true,
},
{
source: '/guides/external/lxc',
destination: 'https://learn.hashicorp.com/tutorials/nomad/plugin-lxc',
permanent: true,
},
{
source: '/guides/operations/upgrade',
destination: '/docs/upgrade',
permanent: true,
},
{
source: '/guides/operations/upgrade/upgrade-specific',
destination: '/docs/upgrade/upgrade-specific',
permanent: true,
},
{
source: '/guides/upgrade',
destination: '/docs/upgrade',
permanent: true,
},
{
source: '/guides/upgrade/upgrade-specific',
destination: '/docs/upgrade/upgrade-specific',
permanent: true,
},
{
source: '/guides/operations/deployment-guide',
destination:
'https://learn.hashicorp.com/tutorials/nomad/production-deployment-guide-vm-with-consul',
permanent: true,
},
{
source: '/guides/operations/reference-architecture',
destination:
'https://learn.hashicorp.com/tutorials/nomad/production-reference-architecture-vm-with-consul',
permanent: true,
},
{
source: '/docs/install/production/deployment-guide',
destination:
'https://learn.hashicorp.com/tutorials/nomad/production-deployment-guide-vm-with-consul',
permanent: true,
},
{
source: '/docs/install/production/reference-architecture',
destination:
'https://learn.hashicorp.com/tutorials/nomad/production-reference-architecture-vm-with-consul',
permanent: true,
},
// Enterprise
// Reorganized Enterprise into single pager
{
source: '/docs/enterprise/namespaces',
destination: '/docs/enterprise#namespaces',
permanent: true,
},
{
source: '/docs/enterprise/quotas',
destination: '/docs/enterprise#resource-quotas',
permanent: true,
},
{
source: '/docs/enterprise/preemption',
destination: '/docs/enterprise#preemption',
permanent: true,
},
{
source: '/docs/enterprise/sentinel',
destination: '/docs/enterprise#sentinel-policies',
permanent: true,
},
{
source: '/docs/enterprise/autopilot',
destination: '/docs/enterprise#nomad-enterprise-platform',
permanent: true,
},
// Guide Catch-all Redirects
{
source: '/guides/:splat*',
destination: 'https://learn.hashicorp.com/nomad',
permanent: true,
},
// Vault Integration
{
source: '/docs/vault-integration',
destination: '/docs/integrations/vault-integration',
permanent: true,
},
// Old resources -> Community
{
source: '/resources',
destination: '/community',
permanent: true,
},
// `/<path>/index.html` to /<path>
{
source: '/:splat*/index.html',
destination: '/:splat*',
permanent: true,
},
// `.html` to non-`.html`
{
source: '/:splat(.*).html',
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,
},
{
source: '/api/:path*',
destination: '/api-docs/:path*',
permanent: true,
},
// Redirects for exact versioned-docs to respective generic versions
{
source: '/:base(docs|api-docs)/v1.:minor([0-2]{1,}).(\\d+)',
destination: '/:base/v1.:minor.x',
permanent: true,
},
{
source: '/:base(docs|api-docs)/v1.:minor([0-2]{1,}).(\\d+)/:path*',
destination: '/:base/v1.:minor.x/:path',
permanent: true,
},
]