mirror of
https://github.com/kemko/nomad.git
synced 2026-01-03 00:45: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
26 lines
889 B
HCL
26 lines
889 B
HCL
# Copyright (c) HashiCorp, Inc.
|
|
# SPDX-License-Identifier: BUSL-1.1
|
|
|
|
# this unnamed (default) config should merge cleanly onto the basic config
|
|
consul {
|
|
address = "127.0.0.1:9501"
|
|
allow_unauthenticated = false
|
|
token = "abracadabra"
|
|
timeout = "20s"
|
|
}
|
|
|
|
# this alternate config should be added as an extra consul config
|
|
consul {
|
|
name = "alternate"
|
|
server_service_name = "nomad"
|
|
server_http_check_name = "nomad-server-http-health-check"
|
|
server_serf_check_name = "nomad-server-serf-health-check"
|
|
server_rpc_check_name = "nomad-server-rpc-health-check"
|
|
client_service_name = "nomad-client"
|
|
client_http_check_name = "nomad-client-http-health-check"
|
|
address = "127.0.0.2:8501"
|
|
allow_unauthenticated = true
|
|
token = "xyzzy"
|
|
auth = "username:pass"
|
|
}
|