> On Sept. 3, 2016, 9:36 p.m., Jie Yu wrote: > > src/slave/containerizer/mesos/isolators/network/cni/spec.hpp, line 35 > > <https://reviews.apache.org/r/51097/diff/15/?file=1490679#file1490679line35> > > > > This is not in the CNI spec. Why we have it here?
Most CNI plugins return an error code of 100. The CNI spec specifies error codes of 100+ to be unreserved, so using this as the return code for generic errors for the plugins. > On Sept. 3, 2016, 9:36 p.m., Jie Yu wrote: > > src/slave/containerizer/mesos/isolators/network/cni/spec.hpp, lines 37-40 > > <https://reviews.apache.org/r/51097/diff/15/?file=1490679#file1490679line37> > > > > This is a non-POD global variable. We try to avoid that. Also, why we > > need this? Currently, the CNI spec has specified only two errors VERSION_ERROR and FIELD_ERROR. Though we don't use it in the plugins right now, specifying it for future purposes. - Avinash ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/51097/#review147619 ----------------------------------------------------------- On Sept. 2, 2016, 10:33 p.m., Avinash sridharan wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/51097/ > ----------------------------------------------------------- > > (Updated Sept. 2, 2016, 10:33 p.m.) > > > Review request for mesos, Jie Yu and Qian Zhang. > > > Bugs: MESOS-6023 > https://issues.apache.org/jira/browse/MESOS-6023 > > > Repository: mesos > > > Description > ------- > > This class will embody the logic for implementing the CNI port-mapper > plugin. > > Also added helper functions in `cni::spec` to be able to log CNI > plugin error as a JSON formatted string of `spec::error`. > > > Diffs > ----- > > src/Makefile.am 120a715eeeb7fb222d1169500950b5c7643df554 > > src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/main.cpp > PRE-CREATION > > src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.hpp > PRE-CREATION > > src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp > PRE-CREATION > src/slave/containerizer/mesos/isolators/network/cni/spec.hpp > e6967415a689184f13d65a986f13b0af54364fb2 > src/slave/containerizer/mesos/isolators/network/cni/spec.cpp > 938a9f3bff2a95c8591450f0edafaddb01833e59 > > Diff: https://reviews.apache.org/r/51097/diff/ > > > Testing > ------- > > Tested the port-mapper with the following CNI config: > { > "name": "mynet", > "type": "port-mapper", > "chain": "MESOS", > "delegate": { > "type" : "bridge", > "bridge": "cni0", > "isGateway": true, > "ipMasq": true, > "ipam": { > "type": "host-local", > "subnet": "10.22.0.0/16", > "routes": [ > { "dst": "0.0.0.0/0" } > ] > } > }, > "args" : { > "org.apache.mesos" : { > "network_info" : { > "port_mappings": { > "host_port" : 80, > "container_port" : 80 > } > } > } > } > } > > and the following environment variables: > export CNI_COMMAND="ADD" > export CNI_CONTAINERID="0000000111101110" > export CNI_PATH="$MESOS_INSTALL:/home/vagrant/dev/go/cni/bin" > export CNI_IFNAME="eth0" > export CNI_NETNS="/etc/netns" > > If we remove fields from the above CNI config, or remove certain environment > variables the creation of the `PortMapper` correctly fails. However, if > config and environment variables are passed as is it will create the > `PortMapper` correctly. > > > Thanks, > > Avinash sridharan > >
