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)