Commit Graph

681 Commits

Author SHA1 Message Date
Jana Radhakrishnan
09453df618 Merge pull request #637 from aboch/rm
Change in remote IPAM API payload
2015-10-12 14:21:57 -07:00
Jana Radhakrishnan
f1c968c8ba Merge pull request #638 from mavenugo/vin-fixes
Updated Vagrant with the latest UX
2015-10-12 14:18:02 -07:00
Madhu Venugopal
9ae62c93dd Updated Vagrant with the latest UX
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-12 13:54:58 -07:00
Alessandro Boch
8d56508190 Change in remote IPAM API payload
- Avoid net.IP and net.IPNet types to ease marshalling/unmarshalling
  at client and server side

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-12 13:03:28 -07:00
Jana Radhakrishnan
6d6490b91c Check if address space valid in getStore
Added a check to see if address space is valid in
addrSpaces map before accessing it. Also fixed some
error strings so that it provides better information
to the user.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-12 11:20:29 -07:00
Madhu Venugopal
c454b1084d Merge pull request #633 from mrjana/bugs
Separate endpoint count into a different object
2015-10-11 23:41:58 -07:00
Jana Radhakrishnan
ab8dfb54fe Separate endpoint count data from network object
Currently endpoint count is maintained as part of
network object and the endpoint count gets updated
frequently while the rest of network is quite stable.
Because of the frequent updates to endpoint count the
network object is getting marshalled and unmarshalled
ferquently. This is causing a lot of churn and transient
memory usage. Fix this by creating a deparate object of
endpoint count so that only that gets updated.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-11 23:17:06 -07:00
Madhu Venugopal
74376e8676 Moved the default local and global store to new root
This is required in order to provide a clean switchover.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-11 22:57:24 -07:00
Jana Radhakrishnan
a6c2dd75b5 Synchronize datastore apis
Currently there are 3 distinct operations performed by
datastore
   - Pushing the data to the store
   - Updating the Index of the local object
   - Updating the cache (in case of localscope)

Without a lock racing datastore api calls can interleave
in various surprising ways. Best thing is to keep these
3 above operation inseparable. Use a datastore lock to
achieve this.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-11 18:51:10 -07:00
Jana Radhakrishnan
93bc5ed4c7 Update libkv godeps
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-11 16:02:16 -07:00
Jana Radhakrishnan
7391338323 Make ipamutils compile for windows
currently ipamutils package uses apis which are linux
specific and makes windows compile error out. Separated
the OS specific apis into linux and windows files to
diverge the implementation.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-10 13:16:52 -07:00
Jana Radhakrishnan
fb19b4f488 Merge pull request #629 from sanimej/slice
Fix the overlay cleanup in the multi-subnet case
2015-10-10 13:01:52 -07:00
Jana Radhakrishnan
922e45b5f2 Merge pull request #623 from aboch/ipc
Miscellaneous changes for ipam docker integration
2015-10-10 11:09:55 -07:00
Madhu Venugopal
750671e633 Default bridge need not have persistence in bridge driver
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-10 09:00:35 -07:00
Alessandro Boch
c2064dc18d Reduce logging verbosity in allocator
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-10 05:42:31 -07:00
Alessandro Boch
6026fe772c Remove 2^32 bits restriction on bitsequence
- Allow bitsequence of length 2^64-1
- Updated ID Manager and IPAM

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-10 05:42:26 -07:00
Madhu Venugopal
50db985c1d Few more fixes identified during integration
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-10 03:49:39 -07:00
Jana Radhakrishnan
23d35bcb4e Merge pull request #611 from sanimej/slice
marshal/unmarshal for overlay multiple subnets
2015-10-09 20:17:20 -07:00
Madhu Venugopal
f8891e4f4a Merge pull request #625 from aboch/acf
Relax restriction on IpamConfig
2015-10-09 20:04:15 -07:00
Jana Radhakrishnan
dbbc561c18 Network ep count increment/decrement needs retry
Today we try to increment/decrement endpoint count
only once even if it is a key modified error. In case
of key modified error we should retry it to allow it to
succeed.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-09 19:37:25 -07:00
Alessandro Boch
24339bea43 Relax restriction on IpamConfig
- Both an empty and nil list of IpamConf object
  will trigger auto-allocation for ipv4.
  Auto-allocation for ipv6 will still be excluded
  in the two cases above.

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-09 17:54:28 -07:00
Alessandro Boch
af95bfd273 Preserve default ipam driver setting
- If IPAMConf does not contain an ipam driver setting

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-09 14:24:49 -07:00
Alessandro Boch
0e04c8555e Network to expose ipam config
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-09 14:24:38 -07:00
Jana Radhakrishnan
1ffe6fef02 Move sandbox resources when container restarts
Currently when container has a restart policy and gets
restarted, docker does not release networking and allocate
it back. But it presents libnetwork with a new sandbox while
all the network resources are locked in the old sandbox. This
commit attempts to move all the network resources from the old
sandbox to the new sandbox when libnetwork is presented with the
new sandbox.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-09 13:43:25 -07:00
Madhu Venugopal
bd45253fb5 move Labels from array to map to be consistent with cotnainers
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-09 11:08:13 -07:00
Madhu Venugopal
0f8a6b392f Fixed a bridge driver bug in unmarshalling DefaultBridge
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-09 03:53:22 -07:00
Madhu Venugopal
3d3bd9331f Fixed a couple of error messages to address UX related comments
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-09 01:45:24 -07:00
Alessandro Boch
2401496d2a Enable network labels in Rest API
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-09 01:06:20 -07:00
Alessandro Boch
02386e85d5 Enable Network labels in backend
- Allow labels to be passed to network driver during network create

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-09 01:06:15 -07:00
Alessandro Boch
b7c2b8111f Add netlable. KeyValue() and ToMap()
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-09 00:21:09 -07:00
Jana Radhakrishnan
888f13d17b Make the integration tests robust
Currently integration test is a bit flaky because of
variability in the dnet bootup time. Fixed it to wait for
dnet to come up before performing any tests.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-09 00:06:51 -07:00
Jana Radhakrishnan
f14bf27c25 Merge pull request #612 from aboch/bip
Retire ipallocator
2015-10-08 22:29:08 -07:00
Jana Radhakrishnan
be700ec0eb Add default network restart test case
Added restart test for default network so that we can test
bridge network persistence. Also added changes to dnet to
delete the default network if it is present.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-08 21:31:19 -07:00
Jana Radhakrishnan
268d41835d Make bridge driver networks persistent
Since libnetwork is going to provide createNetwork
notifications only once when the network is created
bridge network needs to save it's network state in
persistent store so that it becomes available even
after restart.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-08 20:42:45 -07:00
Alessandro Boch
9a8c636a40 Retire ipallocator
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-08 18:19:25 -07:00
Jana Radhakrishnan
82660a9d6f Merge pull request #600 from aboch/br
Bridge driver changes to support IPAM model
2015-10-08 16:30:43 -07:00
Alessandro Boch
af3eb25d44 Phase-2 bridge driver changes to support IPAM
- Set bridge ipv4 address when bridge is present
- IPv6 changes for bridge
- Convert unit tests to the new model

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-08 16:22:03 -07:00
Jana Radhakrishnan
ab01eedba6 Merge pull request #610 from mavenugo/revert-598
Revert "Share libkv store handles across datastore handles"
2015-10-08 15:57:21 -07:00
Madhu Venugopal
4543607d74 Merge pull request #602 from dhiltgen/tls
Add support for configuring TLS
2015-10-08 15:56:10 -07:00
Jana Radhakrishnan
305ab4a6ad Merge pull request #607 from mavenugo/libkv-upd
Libkv update with boltdb concurrent connection fix
2015-10-08 15:40:24 -07:00
aboch
dce266d406 Merge pull request #604 from mavenugo/vin-fixes
Fixed a few issues identified during docker integration
2015-10-08 15:35:54 -07:00
Madhu Venugopal
284c9cd0f5 Revert "Share libkv store handles across datastore handles" 2015-10-08 15:29:07 -07:00
Madhu Venugopal
9c2541b774 Removing boltdb timeout
Now that libkv supports concurrent access to boltdb, there is no point
in depending on timeout mechanism

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-08 15:02:03 -07:00
Madhu Venugopal
87f5a70f0a Godep update to libkv 1.9.0-integ branch
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-08 15:01:17 -07:00
Madhu Venugopal
f2f536032b Phase-1 bridge driver changes to support IPAM
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-08 14:26:58 -07:00
Madhu Venugopal
831e3401f3 Merge pull request #606 from mrjana/model
Cleanup dangling sandboxes on boot up
2015-10-08 01:03:32 -07:00
Jana Radhakrishnan
e41b4765bd Cleanup dangling sandboxes on boot up
Currently when docker exits ungracefully it may leave
dangling sandboxes which may hold onto precious network
resources. Added checkpoint state for sandboxes which
on boot up will be used to clean up the sandboxes and
network resources.

On bootup the remaining dangling state in the checkpoint
are read and cleaned up before accepting any new
network allocation requests.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-07 20:08:47 -07:00
Daniel Hiltgen
50098e5c7b Add support for configuring TLS
This adds a new options configuration routine that the engine
can call in order to configure TLS for libnetworks KV store.

Signed-off-by: Daniel Hiltgen <daniel.hiltgen@docker.com>
2015-10-07 17:49:49 -07:00
Madhu Venugopal
2a392e5a98 Any newly added data to an existing marshalled object must nil check
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-07 14:51:46 -07:00
Madhu Venugopal
e5ee4ada8b Removing the endpoint name restriction
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-07 14:51:40 -07:00