mirror of
https://github.com/kemko/nomad.git
synced 2026-01-02 00:15:43 +03:00
Add the plumbing we need to accept multiple Consul clusters in Nomad agent configuration, to support upcoming Nomad Enterprise features. The `consul` blocks are differentiated by a new `name` field, and if the `name` is omitted it becomes the "default" Consul configuration. All blocks with the same name are merged together, as with the existing behavior. As with the `vault` block, we're still using HCL1 for parsing configuration and the `Decode` method doesn't parse multiple blocks differentiated only by a field name without a label. So we've had to add an extra parsing pass, similar to what we've done for HCL1 jobspecs. This also revealed a subtle bug in the `vault` block handling of extra keys when there are multiple `vault` blocks, which I've fixed here. For now, all existing consumers will use the "default" Consul configuration, so there's no user-facing behavior change in this changeset other than the contents of the agent self API. Ref: https://github.com/hashicorp/team-nomad/issues/404
92 lines
2.0 KiB
JSON
92 lines
2.0 KiB
JSON
{
|
|
"autopilot": {
|
|
"cleanup_dead_servers": true
|
|
},
|
|
"acl": {
|
|
"enabled": true
|
|
},
|
|
"audit": {
|
|
"enabled": true,
|
|
"sink": [
|
|
{
|
|
"file": {
|
|
"type": "file",
|
|
"format": "json",
|
|
"delivery_guarantee": "enforced",
|
|
"path": "/opt/nomad/audit.log",
|
|
"rotate_bytes": 100,
|
|
"rotate_duration": "24h",
|
|
"rotate_max_files": 10
|
|
}
|
|
}
|
|
],
|
|
"filter": [
|
|
{
|
|
"default": [
|
|
{
|
|
"endpoints": ["/v1/metrics"],
|
|
"operations": ["*"],
|
|
"stages": ["*"],
|
|
"type": "HTTPEvent"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"advertise": {
|
|
"http": "host.example.com",
|
|
"rpc": "host.example.com",
|
|
"serf": "host.example.com"
|
|
},
|
|
"bind_addr": "0.0.0.0",
|
|
"consul": {
|
|
"name": "default",
|
|
"server_auto_join": false,
|
|
"client_auto_join": false,
|
|
"token": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
|
|
},
|
|
"data_dir": "/opt/data/nomad/data",
|
|
"datacenter": "dc1",
|
|
"enable_syslog": true,
|
|
"leave_on_interrupt": true,
|
|
"leave_on_terminate": true,
|
|
"log_level": "INFO",
|
|
"region": "global",
|
|
"server": {
|
|
"bootstrap_expect": 3,
|
|
"enabled": true,
|
|
"encrypt": "sHck3WL6cxuhuY7Mso9BHA==",
|
|
"plan_rejection_tracker": {
|
|
"node_threshold": 100,
|
|
"node_window": "31m"
|
|
},
|
|
"retry_join": [
|
|
"10.0.0.101",
|
|
"10.0.0.102",
|
|
"10.0.0.103"
|
|
]
|
|
},
|
|
"syslog_facility": "LOCAL0",
|
|
"telemetry": {
|
|
"collection_interval": "60s",
|
|
"disable_hostname": true,
|
|
"prometheus_metrics": true,
|
|
"publish_allocation_metrics": true,
|
|
"publish_node_metrics": true
|
|
},
|
|
"tls": {
|
|
"ca_file": "/opt/data/nomad/certs/nomad-ca.pem",
|
|
"cert_file": "/opt/data/nomad/certs/server.pem",
|
|
"http": true,
|
|
"key_file": "/opt/data/nomad/certs/server-key.pem",
|
|
"rpc": true,
|
|
"verify_server_hostname": true
|
|
},
|
|
"vault": {
|
|
"name": "default",
|
|
"address": "http://host.example.com:8200",
|
|
"create_from_role": "nomad-cluster",
|
|
"enabled": true
|
|
}
|
|
}
|