Commit Graph
200 Commits
Author SHA1 Message Date
Adam Harrison e9081c6607 Allow specification of initial IPAM ring via --ipam-seed 2016-03-21 09:49:54 +00:00
Bryan Boreham 09a6c2eda0 Get the owned ranges for test purposes via the actor loop, so we don't set off the race detector 2016-03-19 15:29:34 +00:00
Matthias Radestock 9f10b21c9c use Space.NumFreeAddresses for calculating transferred ip count
...rather than Space.NumFreeAddressesInRange; we don't care about the
universe.

Alternatively we could make Space.AddRanges return the count. But
AddRanges doesn't know whether the ranges overlap with existing free
space - that is only guaranteed by the context - so would have to do
much the same before/after calculation.

Another alternative would be to add the range sizes in
AdminTakeoverRanges. But that is more code and less clear.
2016-03-19 14:41:36 +00:00
Matthias Radestock 62d823850c make rmpeer report on size of transferred space, and not fail
Closes #2058.
2016-03-19 14:40:26 +00:00
Matthias Radestock c48eefa82d refactor(ish): extract allocator logging commonality
and add warnf
2016-03-19 14:32:54 +00:00
Matthias Radestock 65eff683dd Merge branch '1.4' 2016-03-19 14:30:38 +00:00
Matthias Radestock f42e275884 broadcast ipam ring update after rmpeer
So that other peers notice the change more promptly.

Fixes #2068.
2016-03-19 13:57:20 +00:00
Bryan Boreham f11314ed3e Introduce 'Count' type to avoid abusing 'Offset' 2016-03-19 11:47:34 +00:00
Matthias Radestock bc7539c4ad cosmetic: consistency 2016-03-18 11:56:10 +00:00
Matthias Radestock 9c2e9bab14 cosmetic(ish) refactor 2016-03-18 02:42:53 +00:00
Adam Harrison 2eeb754454 refactor: Introduce IPAM config object 2016-03-14 17:41:20 +00:00
Bryan Boreham a57335738d Don't do unnecessary clock skew check in IPAM 2016-03-10 11:41:47 +00:00
Adam Harrison 6584df274e Implement weave consense 2016-03-03 18:52:09 +00:00
Adam Harrison b84ef98de8 Support non-electing peers via --observer 2016-03-03 17:48:50 +00:00
Martynas Pumputis 9cfc104fc7 Add TestSpaceRequest test for allocator
Checks whether a donating peer does not leave one ip address
behind a block it donates (#2009).
2016-03-03 08:36:14 -08:00
Bryan Boreham 824329d4c9 Fix up unit tests to look at CIDRs instead of addresses. 2016-03-02 17:21:52 -08:00
Bryan Boreham 604309fb53 Parse CIDR strings without separating into subnet and address 2016-03-02 17:21:52 -08:00
Bryan Boreham 73f1a04d5f Deal in subnets, not ranges, when requesting address allocation 2016-03-02 17:21:51 -08:00
Bryan Boreham b76e2a87cf Store address+subnet prefix for 'owned' addresses 2016-03-02 17:21:24 -08:00
Bryan Boreham b6eec08247 Return all applicable results from Lookup
and stop erroring on Lookup not found; just return a blank result
2016-03-02 17:01:12 -08:00
Bryan Boreham 03563e847e Remember addresses outside of the allocation range 2016-03-02 17:01:12 -08:00
Bryan Boreham 95cbc8940e Sync 'owned' data with existing containers at startup 2016-03-02 11:35:24 -08:00
Bryan Boreham f29716387f Persist the 'owned' address set 2016-03-02 11:35:24 -08:00
Bryan Boreham 7453c7a5dd Merge branch '1.4' 2016-02-29 08:22:22 -08:00
Adam Harrison bceabe32a2 Try all pending allocations
We can have outstanding allocations for different ranges owned by
different peers, so we should not short circuit after the first space
request.
2016-02-25 14:56:33 +00:00
Bryan Boreham 546f9592f9 Hard-fail on persistence errors, otherwise the network can get confused on a restart.
Create `Allocator.fatalf()`, for consistency
2016-02-12 18:12:26 +00:00
Bryan Boreham 06f3793f05 Remove persisted IPAM ring data on peerName change 2016-02-12 18:12:26 +00:00
Bryan Boreham f396c60402 Persist the Ring 2016-02-12 18:12:26 +00:00
Bryan Boreham ad036499eb Add db infra to IPAM 2016-02-12 18:12:26 +00:00
Adam Harrison 6d1e33b558 Merge pull request #1957 from weaveworks/issues/1949-ring-errors
Make error messages on ring merge clearer
2016-02-08 13:52:59 +00:00
Bryan Boreham 034da376c4 Make error messages on ring merge clearer 2016-02-08 10:13:41 +00:00
Matthias Radestock 10fbc75997 Merge pull request #1922 from weaveworks/issues/1179-its-alive
In IPAM, resurrect apparently-dead containers on ContainerStarted event
2016-02-05 16:36:28 +00:00
Bryan Boreham f9f6649f90 Check some ring entries via AllRangeInfo, to improve coverage 2016-02-04 15:12:13 +00:00
Bryan Boreham a5c9898884 Checking for existing entries is pointless when the Ring starts empty 2016-02-04 15:12:13 +00:00
Bryan Boreham 839eb28310 Unit test for ring.ClaimForPeers 2016-02-04 15:11:46 +00:00
Bryan Boreham 07b79568dd Resurrect apparently-dead containers on ContainerStarted event 2016-02-04 13:49:43 +00:00
Matthias Radestock 6bebce0b5a tiny refactor 2016-02-02 14:03:01 +00:00
Bryan Boreham 71da517e88 Refactor to collect all code that touches alloc.owned 2016-02-02 13:57:12 +00:00
Adam Harrison 4f97b3ac85 Merge pull request #1916 from weaveworks/issues/1734-fixed-ip
Support requesting a specific IP from the plugin
2016-01-29 14:22:23 +00:00
Matthias Radestock cab4e37ef8 Merge pull request #1924 from weaveworks/update-mesh
Update mesh
2016-01-28 10:04:40 +00:00
Peter Bourgon 0dff2e66c6 vendor: update mesh
Now, broadcast operations cannot fail. So, update various broadcast-y
methods to no longer return errors.
2016-01-28 10:43:32 +01:00
Bryan Boreham 610a90c727 Claim address requested by caller 2016-01-27 12:11:01 +00:00
Matthias Radestock 31f736b37e fix errors spotted by usage analysis 2016-01-26 18:13:29 +00:00
Bryan Boreham 952e9de265 Remove superfluous line and fix comment typo 2016-01-25 18:05:43 +00:00
Peter Bourgon e27b320ede Update import location for mesh 2016-01-15 15:57:01 +01:00
Bryan Boreham e468399616 Extend the timeout for dead containers to 30 seconds,
but remove them if they are destroyed, to reduce starvation
when users are creating and destroying containers quickly.
2016-01-12 14:38:44 +00:00
Bryan Boreham b2b293a8ee Added 'ContainerDestroyed()' callback from docker client 2016-01-12 14:38:44 +00:00
Bryan Boreham 2f885a7906 Reclaim all addresses on restart 2016-01-12 14:38:44 +00:00
Bryan Boreham f84b933d7c Leave container allocations for a time after death
so they will be reclaimed if the container is restarted.
Still cancel pending operations immediately a container dies
2016-01-12 14:38:44 +00:00
Bryan Boreham 4672e9ec1f Generalise ticker so we can use it for more than paxos,
and call tryPendingOps() from it so we eventually re-try operations
2016-01-12 14:38:44 +00:00