hashicorp / hashicorp/nomad

[feature] Static IP / Interface Alias support - similar to Docker MacVlan

Open
#9,525 13 comments 0 reactions 0 assignees View on GitHub
stage/needs-discussion theme/cni theme/networking type/question
Dominant language
Go
Stars
17k
Forks
2.1k
Avg merge
1d 9h
Merged PRs (30d)
105

Description

TL/DR This is a feature request - while CNI drivers can be used with java/exec drivers, you can't pass a static IP like you can with the docker driver's `ipv4_address`

---

There's a variety of software out there that requires fixed IP addresses. The ones I work with are typically UDP based message buses

Putting this traffic through NAT, or changing the apparent IP when a job moves from agent to agent will break the software.

With Docker, the solution is MacVLAN and `ipv4_address` - as it allows the container to take the IP with it, as it moves around the fleet of servers.

With Java/exec - it doesn't look like this is possible, I'd have to write something as part of the startup routine which creates the IP alias, and somehow manage to always clean it up at the end - without fail.

Anybody tackled this before with Nomad? Any good ways to achieve this without Dockerising or otherwise rewriting a fleet of existing java applications?

Ideally, Nomad would have a low level concept of an IP address per job, and be able to create/destroy interface aliases associated with it. Stretch goal of having something preventing IP re-use.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing how CNI drivers are used with the Java and exec drivers, along with the Docker MacVLAN and ipv4_address behavior described here. The issue does not name implementation files or tests; done would require an agreed design for per-job static IP or interface aliases, cleanup, and prevention of IP reuse.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, java
Domain
networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.