Commit Graph

214 Commits

Author SHA1 Message Date
Jana Radhakrishnan d3f628541c Make endpoint Join and Leave multi-thread safe
- Refactored the Join/Leave code so they are synchronized across multiple go-routines
    - Added parallel test coverage to test mult-thread access to Join/Leave
    - Updated sandbox code to revert back to caller namespace when removing interfaces
    - Changed the netns path to /var/run/netns so the cleanup is simpler on machine
      reboot scenario

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-10 17:36:04 +00:00
Jana Radhakrishnan 731ffc20d9 Merge pull request #135 from mavenugo/epleave
Cleaning up the ActiveContainer test properly
2015-05-08 22:37:01 -07:00
Madhu Venugopal 8c57fddf94 Cleaning up the Endpoint Joins with proper defered Leave
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-05-07 14:09:16 -07:00
Madhu Venugopal 9a68cc06c9 Merge pull request #109 from liubin/liubin/fixtypos
fix some typos
2015-05-07 06:34:01 -07:00
bin liu 51ec188af7 fix some typos
Signed-off-by: bin liu <liubin0329@gmail.com>
2015-05-07 09:22:06 +00:00
Jana Radhakrishnan 58a647c6f9 Merge pull request #128 from kunalkushwaha/master
Small typo fixed
2015-05-06 22:02:53 -07:00
Jana Radhakrishnan c6facf773d Merge pull request #127 from mavenugo/remote
Remote Driver Registration
2015-05-06 22:02:19 -07:00
Madhu Venugopal 0011d46ead Remote Driver Registration
This commits brings in a functionality for remote drivers to register
with LibNetwork. The Built-In remote driver is responsible for the
actual "remote" plugin to be made available.

Having such a mechanism makes libnetwork core not dependent on any
external plugin mechanism and also the Libnetwork NB apis are free of
Driver interface.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-05-06 21:45:30 -07:00
Madhu Venugopal 914b9a56c6 Added remote driver design doc
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-05-06 20:16:43 -07:00
unknown 81443fd853 Small typo fixed
Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
2015-05-07 11:11:34 +09:00
Madhu Venugopal d4f6960b88 Merge pull request #126 from mrjana/cnm_integ
Brought in iptables package from docker
2015-05-06 17:08:58 -07:00
Jana Radhakrishnan f57b90ae61 Updated godeps
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-06 23:52:50 +00:00
Jana Radhakrishnan 44c96449c2 Brought in iptables package into libnetwork.
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-06 23:52:50 +00:00
Jana Radhakrishnan 1ab172a0bb Merge pull request #123 from mavenugo/docs
Updated Design, Readme and Roadmap Documents
2015-05-06 15:45:51 -07:00
Madhu Venugopal 1a6371f39c Merge pull request #125 from mrjana/cnm_integ
Brought in etchosts and resolvconf packages from docker
2015-05-06 15:43:34 -07:00
Jana Radhakrishnan aa85b3e092 Updated Godeps
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-06 22:26:58 +00:00
Jana Radhakrishnan 876f3fc639 Copied etchosts and resolvconf packages to libnetwork.
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-06 22:26:58 +00:00
Jana Radhakrishnan 6ce4099460 Merge pull request #124 from mavenugo/endpoint
Handled endpoint delete with active containers attached to it
2015-05-06 15:18:45 -07:00
Madhu Venugopal a8556518f6 Updated Design Document
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-05-06 13:38:16 -07:00
Madhu Venugopal f91e47193f Handled endpoint delete with active containers attached to it
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-05-06 13:04:39 -07:00
Dave Tucker fd986bb1be Add design documentation
This is an intial pass at the design docs.
Hopefully, we can merge this and then start accepting PRs to improve it!

Signed-off-by: Dave Tucker <dt@docker.com>
2015-05-06 11:53:55 -07:00
Madhu Venugopal 5bb8c28b44 Merge pull request #122 from mrjana/cnm_integ
Add enable ipv6  network configuration
2015-05-06 11:02:00 -07:00
Jana Radhakrishnan 94fd20f941 Added support for network specific enable ipv6 label
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-06 17:43:34 +00:00
Jana Radhakrishnan e1b5e17165 Moved most of the driver configuration to network configuration.
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-06 17:43:24 +00:00
Jana Radhakrishnan 26779b6fea - Moved label definitions to a new package
- Added a network scope well-defined label
  to enable ipv6

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-06 17:21:19 +00:00
Madhu Venugopal 309ba92587 Merge pull request #111 from aboch/lk
In bridge.go: Join(), Leave(), getnetwork() are not thread safe
2015-05-06 09:29:56 -07:00
Alessandro Boch 91bc12ef2d In bridge.go: Join(), Leave(), getnetwork() are not thread safe
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-05-05 19:07:05 -07:00
Madhu Venugopal ede31dce0a Merge pull request #121 from mrjana/cnm_integ
Properly handle leave in libnetwork and bridge driver
2015-05-05 18:30:29 -07:00
Jana Radhakrishnan 511459f1af Properly handle Leave by
- Removing interface from the sandbox
  - Deleting Iptable rules in the bridge driver

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-06 00:34:38 +00:00
Jana Radhakrishnan 9a7cceced6 Added RemoveInterface support to sandbox.
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-06 00:34:38 +00:00
Madhu Venugopal 8d2339324e Merge pull request #120 from dave-tucker/fix-ci
Don't fail the build on coveralls upload
2015-05-05 17:06:38 -07:00
Dave Tucker 0c167ba011 Don't fail the build on coveralls upload
If we can't upload to coveralls, don't fail the build.

Goveralls and Coveralls have been a little flaky and started throwing
http 422 errors, although I still see coverage being reported.

It's best in the interim to ignore these, although this should be
removed in future when the service is more stable

Signed-off-by: Dave Tucker <dt@docker.com>
2015-05-06 00:49:41 +01:00
Madhu Venugopal fe2c704109 Merge pull request #119 from aboch/fmzhen-test-dev
Separate ExpsoedPorts from PortBindings
2015-05-05 16:26:41 -07:00
Alessandro Boch f21785e451 Separate ExposedPorts from PortBindings in libnetwork API
- Fix missing code in tests in 64cceb37ad1c16884d709fd49fba34e8a99d8c41

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-05-05 16:17:17 -07:00
Mingzhen Feng 417093c3f5 chang the type of ports form PortBinding to TransportPort in link.go
Signed-off-by: Mingzhen Feng <fmzhen@zju.edu.cn>
2015-05-05 16:17:17 -07:00
Madhu Venugopal 6bb9881907 Merge pull request #118 from mrjana/cnm_integ
Link integration fixes
2015-05-05 16:07:37 -07:00
Madhu Venugopal 4abc259f84 Merge pull request #117 from aboch/pt
Protect internal data in CreateOptionPortMapping
2015-05-05 13:57:24 -07:00
Jana Radhakrishnan 9897c23464 - Changed ContainerConfiguration to simply use strings
- Made ContainerConfiguration fields to be exported so
  options package can access them.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-05 20:52:12 +00:00
Alessandro Boch c203b3959e Reuse existing docker chain constant in link.go
- in bridge driver

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-05-04 23:53:32 -07:00
Alessandro Boch 3098ee6628 CreateOptionPortMapping to store a copy of the passed bindings
- Given this will be internal data, make a defensive copy to
  protect from client inadvertently modifications.

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-05-04 23:45:07 -07:00
Jana Radhakrishnan fe87ce50bc Merge pull request #116 from mavenugo/master
Incorrect assumption with golang net package causes Overlapping IP
v0.2-pre-integ
2015-05-04 22:42:05 -07:00
Madhu Venugopal 3678144103 Incorrect assumption with golang net package causes Overlapping IP
using a len(net.IP) to check for ipv4 or ipv6 is a bad idea.
And that was exactly done in NetworkOverlaps() function with the
assumption that any ipv4 net.IP will be of 4 bytes. Golang Net package
makes no such assumptions.

This assumption actually broke a particular use-case where the
NetworkOverlaps fails to identify a genuine overlap and that causes
datapath issues.

With this fix, we explicitely check for v4 or v6

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-05-04 22:31:16 -07:00
Madhu Venugopal 5d28b9f14c Merge pull request #108 from mrjana/cnm_integ
Docker integration commits
2015-05-04 22:26:27 -07:00
Jana Radhakrishnan 5f9906ddff - Removed sandbox override option from the driver.
- Reworked the host network mode support by introducing
  a new JoinOption.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-05 04:26:23 +00:00
Jana Radhakrishnan a7ac2c7454 Added mac address to EndpointInfo
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-05 03:27:34 +00:00
Jana Radhakrishnan 418da5befb Replaced all proto numbers in netutils with the defined const
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-05 00:16:36 +00:00
Jana Radhakrishnan ac1c5af15f Added support for /etc/resolv.conf
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-05 00:16:36 +00:00
Jana Radhakrishnan d35bd47790 Updated Godeps to the latest versions of docker packages.
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-05 00:16:36 +00:00
Jana Radhakrishnan c8062e4ad4 Added "host" driver and test code.
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-05 00:16:25 +00:00
Jana Radhakrishnan eeb243ca54 - Added support for JoinInfo so that driver can override certain
container config.
- Added JoinOption processing for extra /etc/hosts record.
- Added support for updating /etc/hosts entries of other containers.
- Added sandbox support for adding a sandbox without the OS level create.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-05 00:09:11 +00:00