James DeFelice created MESOS-7243:
-------------------------------------

             Summary: CNI implementation assumptions don't align with 
NetworkInfo proto docs
                 Key: MESOS-7243
                 URL: https://issues.apache.org/jira/browse/MESOS-7243
             Project: Mesos
          Issue Type: Bug
            Reporter: James DeFelice


The protobuf docs for NetworkInfo state that frameworks may request one or more 
IP addresses via the `ip_addresses` field: the actual `ip_address` and 
`protocol` may be left blank; one entry is required for each IP address 
requested at task-launch time.

The CNI implementation doesn't check `ip_addresses` and provides 1 address by 
default. This behavior breaks with the docs.

It's been suggested that it is "legal" for the CNI implementation to assume 
that if `ip_addresses` was completely empty, that would translate to 
`ip_addresses: [ {} ]` (requesting a single IP address). I've argued against 
this logic: by assuming such a default, it becomes impossible for a container 
to express interest in joining a network (namespace) but not actually be 
allocated an IP address. This might be an edge case, but it's one that's ruled 
out as soon as we assume empty-collection == give-me-one-address-please. FWIW 
the Marathon API has made this (empty = give me a default) mistake several 
times and it has burned us. Strongly urge caution here.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to