Namespaces are a Consul Enterprise feature


As per the examples here: consul Block - Agent Configuration | Nomad | HashiCorp Developer

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, Consul Integration | Nomad | HashiCorp Developer states that agent config is not an enterprise feature:

Agent configuration: If the namespace Nomad agent Consul configuration parameter is set, this namespace will be used instead of the Consul default.


[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)”

What am I missing?

You must delete the line

since you are not using Consul Enterprise.

The docs specifically say that namespace is supported on agent config outside of Enterprise.

The client supports specifying whatever value you like. But unless the server on the other end is Consul Enterprise, the correct value is to leave it unset.

Aha, I see. So the Nomad enterprise is not required. But Consul enterprise is required, but this is considered common knowledge and not worth spelling out.

Anyway, thank you for explaining!