hashicorp / hashicorp/nomad

Feature-based Consul constraint

Open
#13,899 0 comments 1 reaction 0 assignees View on GitHub
stage/accepted theme/consul type/enhancement
Dominant language
Go
Stars
17k
Forks
2.1k
Avg merge
1d 9h
Merged PRs (30d)
105

Description

### Proposal

In Nomad v1.3.0 jobs that use Consul service discovery received [an implicit constraint for the Consul version](https://github.com/hashicorp/nomad/blob/v1.3.2/nomad/job_endpoint_hooks.go#L27-L35). But this constraint is hard-coded to 1.7.0, since this is version that added support for namespaces, but versions prior to that would work if the service doesn't make use of the namespace feature.

It would be better if the constraint value was based on the features being used, so, for example, if the service has a Consul namespece set, the constraint is 1.7.0, but without namespace, there would be no version requirement.

### Use-cases

Using Nomad with Consul versions prior to 1.7.0.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with nomad/job_endpoint_hooks.go, particularly the implicit Consul version constraint introduced for service discovery. Trace how service namespaces are represented in the job configuration and how the constraint is generated; done means the required version reflects whether namespace functionality is used while preserving compatibility for services without namespaces.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.