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
Bryan Boreham
f91d7bb7e4
Rewrite TestHTTPCancel to avoid fiddling inside Allocator
2016-01-08 13:37:15 +00:00
Matthias Radestock
274265f001
typo
2015-12-21 17:03:03 +00:00
Matthias Radestock
1374e4c4de
ditch RunWithTimeout test helper
...
It breaks stack traces on failure.
We can just rely on running `go test -timeout ...` instead, which we
already do in tools/test.
2015-12-09 13:20:57 +00:00
Bryan Boreham
f87876c1c3
Fetch the default subnet from weave to use as the ipam driver 'pool'
2015-12-08 16:59:34 +00:00
Bryan Boreham
ec3de1a072
Introduce ipam plugin
2015-12-08 16:59:32 +00:00
Bryan Boreham
8bbf8231d2
Show which range is being allocated in weave report
2015-11-26 17:24:41 +00:00
Bryan Boreham
2fbbb802bd
Don't assert invariants when printing status
...
- if it's broken you might appreciate being able to print it out
2015-11-26 17:24:41 +00:00
Bryan Boreham
3a9bcbcf6b
Remove specialised knowledge of IPAM from weave status formatter
...
and unnecessary info from `weave report` output
2015-11-26 17:24:40 +00:00
Alvaro Saurin
34e7996f2f
Show some IPAM status at /status/ipam
2015-11-26 17:23:47 +00:00
Matthias Radestock
3cd199e852
make GossipData immutable
...
The same piece of GossipData can be shared and subject to different
Merge operations. We either need to copy the data when we share it, or
create copies on modification, i.e. copy-on-write.
We choose the latter, since it is more efficient and there is just one
mutating operation.
Fixes #1697 .
2015-11-17 20:13:46 +00:00