hashicorp / hashicorp/consul

Clarify in Nomad docs that Consul namespaces are a Consul enterprise feature

Open
#17,610 4 comments 0 reactions 0 assignees View on GitHub
theme/consul-nomad type/docs type/question
Dominant language
Go
Stars
30.1k
Forks
4.6k
Avg merge
2d 6h
Merged PRs (30d)
43

Description

#### Overview of the Issue

Hello,

As per the examples here: https://developer.hashicorp.com/nomad/docs/configuration/consul#default

I'm using the following Nomad agent config. This is all run locally, so `consul agent -dev` and `nomad agent -dev -config=nomad.conf`

This is the entirety of `nomad.conf`:
```
consul {
namespace = "dev"
server_service_name = "app"
auto_advertise = true
server_auto_join = true
client_auto_join = true
}
```

However, https://developer.hashicorp.com/nomad/docs/integrations/consul-integration#consul-namespaces states that agent config is _not_ an enterprise feature:

> Agent configuration: If the [`namespace`](https://developer.hashicorp.com/nomad/docs/configuration/consul#namespace) Nomad agent Consul configuration parameter is set, this namespace will be used instead of the Consul default.

Yet,

> [ERROR] consul.sync: still unable to update services in Consul: failures=310 error="failed to query Consul services: Unexpected response code: 400 (Invalid query parameter: \"ns\" - Namespaces are a Consul Enterprise feature)"

#### Reproduction Steps

1. Run `consul agent -dev`
2. Create `nomad.conf` with the config given above.
3. Run `nomad agent -dev -config=nomad.conf`

### Consul info for both Client and Server

Client info

```
Output from client 'consul info' command here
```
agent:
check_monitors = 0
check_ttls = 0
checks = 0
services = 0
build:
prerelease =
revision =
version = 1.15.3
version_metadata =
consul:
acl = disabled
bootstrap = false
known_datacenters = 1
leader = true
leader_addr = 127.0.0.1:8300
server = true
raft:
applied_index = 672
commit_index = 672
fsm_pending = 0
last_contact = 0
last_log_index = 672
last_log_term = 2
last_snapshot_index = 0
last_snapshot_term = 0
latest_configuration = [{Suffrage:Voter ID:2baf4539-fd12-d49d-7b30-c7b9fefc08ff Address:127.0.0.1:8300}]
latest_configuration_index = 0
num_peers = 0
protocol_version = 3
protocol_version_max = 3
protocol_version_min = 0
snapshot_version_max = 1
snapshot_version_min = 0
state = Leader
term = 2
runtime:
arch = arm64
cpu_count = 10
goroutines = 140
max_procs = 10
os = darwin
version = go1.20.4
serf_lan:
coordinate_resets = 0
encrypted = false
event_queue = 1
event_time = 2
failed = 0
health_score = 0
intent_queue = 0
left = 0
member_time = 1
members = 1
query_queue = 0
query_time = 1
serf_wan:
coordinate_resets = 0
encrypted = false
event_queue = 0
event_time = 1
failed = 0
health_score = 0
intent_queue = 0
left = 0
member_time = 1
members = 1
query_queue = 0
query_time = 1

```
Client agent HCL config
```

Server info

```
Running in dev mode, so probably the same as above(?)
```

```
N/A - none given.
```

### Operating system and Environment details

MacOS Ventura 13.4

Contributor guide

Open the contributing guide

Research direction

Start with the Consul integration page's Consul namespaces section and the linked agent configuration namespace page. Clarify that namespaces require Consul Enterprise, while preserving the documented behavior and reproduction context; done when the two pages no longer give conflicting expectations.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
1/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.