diff --git a/website/source/docs/configuration/acl.html.md b/website/source/docs/configuration/acl.html.md index 0cd0a9c45..f430114b6 100644 --- a/website/source/docs/configuration/acl.html.md +++ b/website/source/docs/configuration/acl.html.md @@ -1,7 +1,7 @@ --- layout: "docs" page_title: "acl Stanza - Agent Configuration" -sidebar_current: "docs-agent-configuration-acl" +sidebar_current: "docs-configuration-acl" description: |- The "acl" stanza configures the Nomad agent to enable ACLs and tune various parameters. --- diff --git a/website/source/docs/configuration/autopilot.html.md b/website/source/docs/configuration/autopilot.html.md index 6cf637c9e..9e02537c4 100644 --- a/website/source/docs/configuration/autopilot.html.md +++ b/website/source/docs/configuration/autopilot.html.md @@ -1,7 +1,7 @@ --- layout: "docs" page_title: "autopilot Stanza - Agent Configuration" -sidebar_current: "docs-agent-configuration-autopilot" +sidebar_current: "docs-configuration-autopilot" description: |- The "autopilot" stanza configures the Nomad agent to configure Autopilot behavior. --- @@ -18,7 +18,7 @@ description: |- The `autopilot` stanza configures the Nomad agent to configure Autopilot behavior. -For more information about Autopilot, see the [Autopilot Guide](/guides/autopilot.html). +For more information about Autopilot, see the [Autopilot Guide](/guides/operations/autopilot.html). ```hcl autopilot { @@ -51,7 +51,7 @@ autopilot { - `enable_redundancy_zones` `(bool: false)` - (Enterprise-only) Controls whether Autopilot separates servers into zones for redundancy, in conjunction with the - [redundancy_zone](/docs/agent/configuration/server.html#redundancy_zone) parameter. + [redundancy_zone](/docs/configuration/server.html#redundancy_zone) parameter. Only one server in each zone can be a voting member at one time. - `disable_upgrade_migration` `(bool: false)` - (Enterprise-only) Disables Autopilot's @@ -61,5 +61,5 @@ autopilot { - `enable_custom_upgrades` `(bool: false)` - (Enterprise-only) Specifies whether to enable using custom upgrade versions when performing migrations, in conjunction with - the [upgrade_version](/docs/agent/configuration/server.html#upgrade_version) parameter. + the [upgrade_version](/docs/configuration/server.html#upgrade_version) parameter. diff --git a/website/source/docs/configuration/client.html.md b/website/source/docs/configuration/client.html.md index 2ba20be5b..9f990c649 100644 --- a/website/source/docs/configuration/client.html.md +++ b/website/source/docs/configuration/client.html.md @@ -1,7 +1,7 @@ --- layout: "docs" page_title: "client Stanza - Agent Configuration" -sidebar_current: "docs-agent-configuration-client" +sidebar_current: "docs-configuration-client" description: |- The "client" stanza configures the Nomad agent to accept jobs as assigned by the Nomad server, join the cluster, and specify driver-specific configuration. @@ -32,7 +32,7 @@ client { - `alloc_dir` `(string: "[data_dir]/alloc")` - Specifies the directory to use for allocation data. By default, this is the top-level - [data_dir](/docs/agent/configuration/index.html#data_dir) suffixed with + [data_dir](/docs/configuration/index.html#data_dir) suffixed with "alloc", like `"/opt/nomad/alloc"`. This must be an absolute path - `chroot_env` ([ChrootEnv](#chroot_env-parameters): nil) - @@ -98,7 +98,7 @@ client { - `state_dir` `(string: "[data_dir]/client")` - Specifies the directory to use to store client state. By default, this is - the top-level - [data_dir](/docs/agent/configuration/index.html#data_dir) suffixed with + [data_dir](/docs/configuration/index.html#data_dir) suffixed with "client", like `"/opt/nomad/client"`. This must be an absolute path. - `gc_interval` `(string: "1m")` - Specifies the interval at which Nomad @@ -356,4 +356,4 @@ client { } } ``` -[server-join]: /docs/agent/configuration/server_join.html "Server Join" +[server-join]: /docs/configuration/server_join.html "Server Join" diff --git a/website/source/docs/configuration/consul.html.md b/website/source/docs/configuration/consul.html.md index a0189d96c..2f183652e 100644 --- a/website/source/docs/configuration/consul.html.md +++ b/website/source/docs/configuration/consul.html.md @@ -1,7 +1,7 @@ --- layout: "docs" page_title: "consul Stanza - Agent Configuration" -sidebar_current: "docs-agent-configuration-consul" +sidebar_current: "docs-configuration-consul" description: |- The "consul" stanza configures the Nomad agent's communication with Consul for service discovery and key-value integration. When @@ -168,4 +168,4 @@ consul { ``` [consul]: https://www.consul.io/ "Consul by HashiCorp" -[bootstrap]: /guides/cluster/automatic.html "Automatic Bootstrapping" +[bootstrap]: /guides/operations/cluster/automatic.html "Automatic Bootstrapping" diff --git a/website/source/docs/configuration/index.html.md b/website/source/docs/configuration/index.html.md index 14ed69c8f..c99720d4f 100644 --- a/website/source/docs/configuration/index.html.md +++ b/website/source/docs/configuration/index.html.md @@ -1,12 +1,12 @@ --- layout: "docs" page_title: "Agent Configuration" -sidebar_current: "docs-agent-configuration" +sidebar_current: "docs-configuration" description: |- Learn about the configuration options available for the Nomad agent. --- -# Agent Configuration +# Nomad Configuration Nomad agents have a variety of parameters that can be specified via configuration files or command-line flags. Configuration files are written in @@ -236,10 +236,10 @@ http_api_response_headers { [hcl]: https://github.com/hashicorp/hcl "HashiCorp Configuration Language" [go-sockaddr/template]: https://godoc.org/github.com/hashicorp/go-sockaddr/template -[consul]: /docs/agent/configuration/consul.html "Nomad Agent consul Configuration" -[vault]: /docs/agent/configuration/vault.html "Nomad Agent vault Configuration" -[tls]: /docs/agent/configuration/tls.html "Nomad Agent tls Configuration" -[client]: /docs/agent/configuration/client.html "Nomad Agent client Configuration" -[sentinel]: /docs/agent/configuration/sentinel.html "Nomad Agent sentinel Configuration" -[server]: /docs/agent/configuration/server.html "Nomad Agent server Configuration" -[acl]: /docs/agent/configuration/acl.html "Nomad Agent ACL Configuration" +[consul]: /docs/configuration/consul.html "Nomad Agent consul Configuration" +[vault]: /docs/configuration/vault.html "Nomad Agent vault Configuration" +[tls]: /docs/configuration/tls.html "Nomad Agent tls Configuration" +[client]: /docs/configuration/client.html "Nomad Agent client Configuration" +[sentinel]: /docs/configuration/sentinel.html "Nomad Agent sentinel Configuration" +[server]: /docs/configuration/server.html "Nomad Agent server Configuration" +[acl]: /docs/configuration/acl.html "Nomad Agent ACL Configuration" diff --git a/website/source/docs/configuration/sentinel.html.md b/website/source/docs/configuration/sentinel.html.md index 05769b453..0b71edd1d 100644 --- a/website/source/docs/configuration/sentinel.html.md +++ b/website/source/docs/configuration/sentinel.html.md @@ -1,7 +1,7 @@ --- layout: "docs" page_title: "sentinel Stanza - Agent Configuration" -sidebar_current: "docs-agent-configuration-sentinel" +sidebar_current: "docs-configuration-sentinel" description: |- The "sentinel" stanza configures the Nomad agent for Sentinel policies and tune various parameters. --- diff --git a/website/source/docs/configuration/server.html.md b/website/source/docs/configuration/server.html.md index 1b3466be5..35de23397 100644 --- a/website/source/docs/configuration/server.html.md +++ b/website/source/docs/configuration/server.html.md @@ -1,7 +1,7 @@ --- layout: "docs" page_title: "server Stanza - Agent Configuration" -sidebar_current: "docs-agent-configuration-server" +sidebar_current: "docs-configuration-server" description: |- The "server" stanza configures the Nomad agent to operate in server mode to participate in scheduling decisions, register with service discovery, handle @@ -51,7 +51,7 @@ server { - `data_dir` `(string: "[data_dir]/server")` - Specifies the directory to use - for server-specific data, including the replicated log. By default, this is - - the top-level [data_dir](/docs/agent/configuration/index.html#data_dir) + the top-level [data_dir](/docs/configuration/index.html#data_dir) suffixed with "server", like `"/opt/nomad/server"`. This must be an absolute path. @@ -70,7 +70,7 @@ server { provided once on each agent's initial startup sequence. If it is provided after Nomad has been initialized with an encryption key, then the provided key is ignored and a warning will be displayed. See the - [Nomad encryption documentation][encryption] for more details on this option + [encryption documentation][encryption] for more details on this option and its impact on the cluster. - `node_gc_threshold` `(string: "24h")` - Specifies how long a node must be in a @@ -127,7 +127,7 @@ server { - `redundancy_zone` `(string: "")` - (Enterprise-only) Specifies the redundancy zone that this server will be a part of for Autopilot management. For more - information, see the [Autopilot Guide](/guides/autopilot.html). + information, see the [Autopilot Guide](/guides/operations/autopilot.html). - `rejoin_after_leave` `(bool: false)` - Specifies if Nomad will ignore a previous leave and attempt to rejoin the cluster when starting. By default, @@ -142,7 +142,7 @@ server { - `upgrade_version` `(string: "")` - A custom version of the format X.Y.Z to use in place of the Nomad version when custom upgrades are enabled in Autopilot. - For more information, see the [Autopilot Guide](/guides/autopilot.html). + For more information, see the [Autopilot Guide](/guides/operations/autopilot.html). ### Deprecated Parameters @@ -169,7 +169,7 @@ server { - `start_join` `(array: [])` - Specifies a list of server addresses to join on startup. If Nomad is unable to join with any of the specified addresses, agent startup will fail. See the [server address - format](/docs/agent/configuration/server_join.html#server-address-format) + format](/docs/configuration/server_join.html#server-address-format) section for more information on the format of the string. This field is deprecated in favor of the [server_join stanza][server-join]. @@ -203,7 +203,7 @@ server { The Nomad servers can automatically bootstrap if Consul is configured. For a more detailed explanation, please see the -[automatic Nomad bootstrapping documentation](/guides/cluster/automatic.html). +[automatic Nomad bootstrapping documentation](/guides/operations/cluster/automatic.html). ### Restricting Schedulers @@ -218,5 +218,5 @@ server { } ``` -[encryption]: /docs/agent/encryption.html "Nomad Agent Encryption" -[server-join]: /docs/agent/configuration/server_join.html "Server Join" +[encryption]: /guides/security/encryption.html "Nomad Encryption Overview" +[server-join]: /docs/configuration/server_join.html "Server Join" diff --git a/website/source/docs/configuration/server_join.html.md b/website/source/docs/configuration/server_join.html.md index 82620a781..3869522c0 100644 --- a/website/source/docs/configuration/server_join.html.md +++ b/website/source/docs/configuration/server_join.html.md @@ -1,7 +1,7 @@ --- layout: "docs" page_title: "server_join Stanza - Agent Configuration" -sidebar_current: "docs-agent-configuration--server-join" +sidebar_current: "docs-configuration--server-join" description: |- The "server_join" stanza specifies how the Nomad agent will discover and connect to Nomad servers. --- @@ -43,8 +43,8 @@ server_join { Address format includes both using IP addresses as well as an interface to the [go-discover](https://github.com/hashicorp/go-discover) library for doing - automated cluster joining using cloud metadata. See [Cloud - Auto-join][cloud_auto_join] for more information. + automated cluster joining using cloud metadata. See the [Cloud Auto-join](#cloud-auto-join) + section below for more information. ``` server_join { @@ -128,4 +128,104 @@ Auto-join][cloud_auto_join] for more information. "provider=aws tag_key=..." => 1.2.3.4:4648 ``` -[cloud_auto_join]: /docs/agent/cloud_auto_join.html "Nomad Cloud Auto-join" +## Cloud Auto-join + +The following sections describe the Cloud Auto-join `retry_join` options that are specific +to a subset of supported cloud providers. For information on all providers, see further +documentation in [go-discover](https://github.com/hashicorp/go-discover). + +### Amazon EC2 + +This returns the first private IP address of all servers in the given +region which have the given `tag_key` and `tag_value`. + + +```json +{ + "retry_join": ["provider=aws tag_key=... tag_value=..."] +} +``` + +- `provider` (required) - the name of the provider ("aws" in this case). +- `tag_key` (required) - the key of the tag to auto-join on. +- `tag_value` (required) - the value of the tag to auto-join on. +- `region` (optional) - the AWS region to authenticate in. +- `addr_type` (optional) - the type of address to discover: `private_v4`, `public_v4`, `public_v6`. Default is `private_v4`. (>= 1.0) +- `access_key_id` (optional) - the AWS access key for authentication (see below for more information about authenticating). +- `secret_access_key` (optional) - the AWS secret access key for authentication (see below for more information about authenticating). + +#### Authentication & Precedence + +- Static credentials `access_key_id=... secret_access_key=...` +- Environment variables (`AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`) +- Shared credentials file (`~/.aws/credentials` or the path specified by `AWS_SHARED_CREDENTIALS_FILE`) +- ECS task role metadata (container-specific). +- EC2 instance role metadata. + + The only required IAM permission is `ec2:DescribeInstances`, and it is + recommended that you make a dedicated key used only for auto-joining. If the + region is omitted it will be discovered through the local instance's [EC2 + metadata + endpoint](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-identity-documents.html). + +### Microsoft Azure + + This returns the first private IP address of all servers in the given region + which have the given `tag_key` and `tag_value` in the tenant and subscription, or in + the given `resource_group` of a `vm_scale_set` for Virtual Machine Scale Sets. + + + ```json +{ + "retry_join": ["provider=azure tag_name=... tag_value=... tenant_id=... client_id=... subscription_id=... secret_access_key=..."] +} +``` + +- `provider` (required) - the name of the provider ("azure" in this case). +- `tenant_id` (required) - the tenant to join machines in. +- `client_id` (required) - the client to authenticate with. +- `secret_access_key` (required) - the secret client key. + +Use these configuration parameters when using tags: +- `tag_name` - the name of the tag to auto-join on. +- `tag_value` - the value of the tag to auto-join on. + +Use these configuration parameters when using Virtual Machine Scale Sets (Consul 1.0.3 and later): +- `resource_group` - the name of the resource group to filter on. +- `vm_scale_set` - the name of the virtual machine scale set to filter on. + + When using tags the only permission needed is the `ListAll` method for `NetworkInterfaces`. When using + Virtual Machine Scale Sets the only role action needed is `Microsoft.Compute/virtualMachineScaleSets/*/read`. + +### Google Compute Engine + +This returns the first private IP address of all servers in the given +project which have the given `tag_value`. +``` + +```json +{ +"retry_join": ["provider=gce project_name=... tag_value=..."] +} +``` + +- `provider` (required) - the name of the provider ("gce" in this case). +- `tag_value` (required) - the value of the tag to auto-join on. +- `project_name` (optional) - the name of the project to auto-join on. Discovered if not set. +- `zone_pattern` (optional) - the list of zones can be restricted through an RE2 compatible regular expression. If omitted, servers in all zones are returned. +- `credentials_file` (optional) - the credentials file for authentication. See below for more information. + +#### Authentication & Precedence + +- Use credentials from `credentials_file`, if provided. +- Use JSON file from `GOOGLE_APPLICATION_CREDENTIALS` environment variable. +- Use JSON file in a location known to the gcloud command-line tool. +- On Windows, this is `%APPDATA%/gcloud/application_default_credentials.json`. +- On other systems, `$HOME/.config/gcloud/application_default_credentials.json`. +- On Google Compute Engine, use credentials from the metadata +server. In this final case any provided scopes are ignored. + +Discovery requires a [GCE Service +Account](https://cloud.google.com/compute/docs/access/service-accounts). +Credentials are searched using the following paths, in order of precedence. + diff --git a/website/source/docs/configuration/telemetry.html.md b/website/source/docs/configuration/telemetry.html.md index bf5b486e3..861b4a8dc 100644 --- a/website/source/docs/configuration/telemetry.html.md +++ b/website/source/docs/configuration/telemetry.html.md @@ -1,7 +1,7 @@ --- layout: "docs" page_title: "telemetry Stanza - Agent Configuration" -sidebar_current: "docs-agent-configuration-telemetry" +sidebar_current: "docs-configuration-telemetry" description: |- The "telemetry" stanza configures Nomad's publication of metrics and telemetry to third-party systems. @@ -31,7 +31,7 @@ telemetry { This section of the documentation only covers the configuration options for `telemetry` stanza. To understand the architecture and metrics themselves, -please see the [Nomad telemetry documentation](/docs/agent/telemetry.html). +please see the [Telemetry guide](/guides/operations/monitoring/telemetry.html). ## `telemetry` Parameters diff --git a/website/source/docs/configuration/tls.html.md b/website/source/docs/configuration/tls.html.md index b79a1ac7e..cc2367c4f 100644 --- a/website/source/docs/configuration/tls.html.md +++ b/website/source/docs/configuration/tls.html.md @@ -1,7 +1,7 @@ --- layout: "docs" page_title: "tls Stanza - Agent Configuration" -sidebar_current: "docs-agent-configuration-tls" +sidebar_current: "docs-configuration-tls" description: |- The "tls" stanza configures Nomad's TLS communication via HTTP and RPC to enforce secure cluster communication between servers, clients, and between. @@ -33,7 +33,7 @@ start the Nomad agent. This section of the documentation only covers the configuration options for `tls` stanza. To understand how to setup the certificates themselves, please see -the [Agent's Gossip and RPC Encryption](/docs/agent/encryption.html). +the [Encryption Overview Guide](/guides/security/encryption.html). ## `tls` Parameters diff --git a/website/source/docs/configuration/vault.html.md b/website/source/docs/configuration/vault.html.md index 01207900d..87e30a583 100644 --- a/website/source/docs/configuration/vault.html.md +++ b/website/source/docs/configuration/vault.html.md @@ -1,7 +1,7 @@ --- layout: "docs" page_title: "vault Stanza - Agent Configuration" -sidebar_current: "docs-agent-configuration-vault" +sidebar_current: "docs-configuration-vault" description: |- The "vault" stanza configures Nomad's integration with HashiCorp's Vault. When configured, Nomad can create and distribute Vault tokens to tasks @@ -86,8 +86,8 @@ vault { - `token` `(string: "")` - Specifies the parent Vault token to use to derive child tokens for jobs requesting tokens. - Visit the [Vault Integration](/docs/vault-integration/index.html) - documentation to see how to generate an appropriate token in Vault. + Visit the [Vault Integration Guide](/guides/operations/vault-integration/index.html) + to see how to generate an appropriate token in Vault. !> It is **strongly discouraged** to place the token as a configuration parameter like this, since the token could be checked into source control @@ -150,4 +150,4 @@ token needs to be given to the servers without having to restart them. A reload can be accomplished by sending the process a `SIGHUP` signal. [vault]: https://www.vaultproject.io/ "Vault by HashiCorp" -[nomad-vault]: /docs/vault-integration/index.html "Nomad Vault Integration" +[nomad-vault]: /guides/operations/vault-integration/index.html "Nomad Vault Integration"