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)