Hi, Mesos 0.25.0 introduced a new NetworkInfo protobuf message. The NetworkInfo allows frameworks to request IP-per-container networking for the containerized Tasks they launch, and also allows a unified way for frameworks to discover the IP address the task will use (both traditional and IP-per-container networking).
We've noticed an issue with the way NetworkInfo was specified that means a less than ideal experience for framework and application developers. MESOS-3788<https://issues.apache.org/jira/browse/MESOS-3788> is our attempt to fix NetworkInfo to be easier for network module developers and Mesos users to understand. What went wrong? In the original NetworkInfo, merged in 0.25.0, the way to specify multiple IP addresses was to repeat the entire NetworkInfo object. If the framework repeated the NetworkInfo object with different network groups in each NetworkInfo object, it wasn't clear how the overall policy would be applied. Furthermore, it wasn't clear how multiple IP addresses might or might not be assigned to multiple virtual network interfaces. Would you get one interface with several IP addresses, or several interfaces with an IP address each? How do we fix it? We've collaborated with Ben Hindman, Connor Doyle, Kapil Arya, and Niklas Nielsen on the proposed solution. MESOS-3788<https://issues.apache.org/jira/browse/MESOS-3788> clarifies that each NetworkInfo object represents a single virtual network interface in the container. In order to allow multiple IP addresses on a single interface, we've deprecated the original protocol and ip_address fields and moved to a repeated IPAddress sub-message. If you want 3 IPs on an interface, repeat the IPAddress sub-message 3 times. The fields in the IPAddress sub-message are optional. The mainline use will be to include 1 copy of the IPAddress message with no parameters, which means "give me a single IP address." At present, since Mesos itself only supports IPv4, this will always be an IPv4 address, but in the future, if not specified, the network provider can assign whatever the local default is. Please feel free to comment directly on the issue or reply to this message. Cheers, Spike Curtis (Project Calico)