[feature] Static IP / Interface Alias support - similar to Docker MacVlan
- 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