Commit Graph
100 Commits
Author SHA1 Message Date
Bryan Boreham a0ac81b3b4 Stop running in host PID namespace
We shouldn't need this
2020-12-17 12:49:27 +00:00
Bryan Boreham c6d0d140a4 Use newest manifest in k8s tests 2020-12-17 12:49:27 +00:00
Bryan Boreham 9bb14662e5 Add security policy 2020-12-17 11:52:07 +00:00
Bryan Boreham 414cbfb838 Simplify Kubernetes externalTrafficPolicy:local test
There's no point stopping and starting the daemons now "no-masq-local"
is the default.
2020-08-27 15:20:04 +00:00
Bryan Boreham 8c52698222 Move egress logging rule beside drop rule
Otherwise we might log a blocked connection even though the packet
was not dropped.
2020-08-26 10:02:32 +00:00
Bryan Boreham 30ce219794 Add release v2.7.0 2020-08-05 10:38:13 +00:00
Bryan Boreham 4795ba5807 Show stack-trace from panic in weave-npc
Rather than exiting silently, fetch the stack trace and print that
for the user to understand what happened.

Exit via existing fatal-error code.
2020-08-05 09:45:20 +00:00
Bryan Boreham 23a827088b Remove unused stopChan 2020-08-05 09:44:19 +00:00
Bryan Boreham 0ab2d08f0c Update docs now NO_MASQ_LOCAL is the default 2020-08-04 16:21:30 +00:00
Bryan Boreham 4d7e9931f9 Remove NO_MASQ_LOCAL setting from test 840
now it's the default
2020-08-04 16:21:30 +00:00
Bryan Boreham 2864d1ebc5 Use Go 1.14.4 in CI build 2020-08-04 10:11:30 +00:00
Bryan Boreham b3d387fb86 Update Kubernetes client packages to 0.18.6
Lots of functions need Context parameters added
2020-08-04 10:11:30 +00:00
Bryan Boreham d14502e071 Update Prometheus client to latest version
Also let Prometheus export process and Go metrics
2020-08-04 10:11:28 +00:00
Bryan Boreham 9439606c57 Update vendor files 2020-08-04 10:11:27 +00:00
Bryan Boreham feb05c0904 Move to Go modules: initial go.mod 2020-08-04 10:11:27 +00:00
Bryan Boreham 514695e127 Update Go version to 1.14.6 2020-08-04 10:11:27 +00:00
Bryan Boreham f9e27f76d6 Merge remote-tracking branch 'gobomb/fix-nil-ns-pointer'
Needed a few modifications to resolve conflicts due to changed
datatype of UID.
2020-08-03 12:32:31 +00:00
Bryan Boreham c50b3380ea Fix tests where newer Docker returns hex ID of container as network ID 2020-07-31 16:29:41 +00:00
Bryan Boreham aa9caab1b0 Fix incompatibility in Docker Python test
Using code from https://github.com/bboreham/docker-py/tree/v1.9.0-prime

Also change to using Python 3 since 2.x is EOL.
2020-07-31 16:29:41 +00:00
Bryan Boreham fab09693b9 Bump Docker to 19.03.1 for smoke tests 2020-07-31 14:52:46 +00:00
Bryan Boreham 9ffd0e3450 Fix up tests for DNS changes
Now that `weave dns-args` doesn't parse any flags we need to
call it or not call it, which `start_container` will do for us.

Also add back the part of the test where we run weaver with and
without DNS, which had become lost in 8b061fd555

Also change a couple of tests to use proxy to start containers,
again to avoid needing `dns-args` to parse flags.
2020-07-31 11:59:20 +00:00
Bryan Boreham 5b2311bb45 Remove obsolete args parsing from dns-args
It was used as part of 'weave run'; does not make sense to support
--name, -h, etc., on 'weave dns-args'.
2020-07-31 11:59:20 +00:00
Bryan Boreham b0274e11be Fetch DNS listen address from daemon
instead of assuming it's on the Docker bridge

Also move DNS address validation into NewDNSServer(),
so we only do it once.
2020-07-31 11:58:56 +00:00
Bryan Boreham 34dc4dabce Clean up some lint warnings
I ran golangci-lint and it pointed out a few things to clean up.
2020-07-31 10:28:55 +00:00
Bryan Boreham 28e482af14 Avoid some deprecated APIs 2020-07-31 10:28:55 +00:00
Bryan Boreham c197624689 Fix up incorrect output formatting 2020-07-31 09:03:27 +00:00
Bryan Boreham 00bc020498 Use Context instead of deprecated http.CloseNotifier interface 2020-07-31 09:03:27 +00:00
Bryan Boreham df52117bfa Remove unused code 2020-07-31 09:03:27 +00:00
Bryan Boreham 2cc5c635c9 Add 'encrypted' label to connections metric
Extend tests to check it shows up.
Tests assume that metrics are published with metrics in alphabetical
order, which appears to be the case for now.
2020-07-30 11:07:33 +00:00
Bryan Boreham 865e2b726f Ensure maps for connection counts are created before use
We know all the expected states, so can pre-create maps
2020-07-30 10:25:14 +00:00
Bryan Boreham f6a3af4a10 Add a check for correct metrics in smoke-test 2020-07-30 10:25:14 +00:00
Bryan Boreham 6bc656d66c Move address range helpers into address package
This means that users don't drag in a dependency on aws-sdk.
2020-07-29 13:08:35 +00:00
Bryan Boreham ca4f93d0d7 Remove the dependency of 'ipset' package on Kubernetes
We don't want everyone that uses the `net` package to get a transitive
dependency on the Kubernetes APIs, so have it define the `UID` type.

Conceptually this is a simple change because `UID` is a `string`, but
unfortunately it is used in a lot of places.
2020-07-29 13:08:35 +00:00
Bryan Boreham a3c76e141b Move name constants to separate 'chains' package, to reduce dependencies
We don't want everyone that uses the `net` package to get a transitive
dependency on the Kubernetes APIs required by `npc`.
2020-07-29 12:55:46 +00:00
Bryan Boreham 9928ddb401 Merge branch '2.6' 2020-07-27 17:44:11 +00:00
Bryan Boreham a90c0075c8 Typo 2020-06-17 17:03:13 +00:00
Bryan Boreham 1ff09fd4d1 Merge branch '2.6' 2020-06-10 17:15:14 +00:00
Bryan Boreham e0348233af Add release v2.6.5 2020-06-10 13:41:13 +00:00
Bryan Boreham 88799b36b2 Merge branch '2.6' 2020-06-04 17:53:53 +00:00
Bryan Boreham 27f8f9092f router: tell goroutine to exit when forwarder is stopped
Otherwise a goroutine is leaked each time a connection is closed.
2020-06-04 17:46:18 +00:00
Bryan Boreham 7174738d9d Don't exit if machine has no ipv6 installed
We are trying to turn off `accept_ra`, so if we get an error that the
option doesn't exist we can just ignore it.
2020-06-04 16:12:38 +00:00
Bryan Boreham 11d75b27a6 Merge branch '2.6' 2020-05-30 12:13:46 +00:00
Bryan Boreham c7a235a54a Add release v2.6.4 2020-05-30 10:11:08 +00:00
Bryan Boreham 9d669c3312 Merge branch '2.6' 2020-05-29 19:59:33 +00:00
Bryan Boreham d45579bf82 Allow time for network policy changes to take effect
Also change from waiting longer to polling until connections are
established after restarting Weave Net.
2020-05-29 19:59:13 +00:00
Bryan Boreham a46d18da0c Use a more targeted iptables rule to block access to control port
Only block the specific port Weave Net is listening on.
Add a comment so users know what the rule is for.

Remove the rule added in v2.6.3 because it was too coarse.
2020-05-29 19:58:41 +00:00
Bryan Boreham 7c2084b9af Move ansible install out from every CI run
to only where we create images.
2020-05-29 13:33:30 +00:00
Bryan Boreham ac54cfb753 Merge branch '2.6' 2020-05-29 09:02:12 +00:00
Bryan Boreham f78c4dacc5 Add release v2.6.3 2020-05-28 10:12:54 +00:00
Bryan Boreham 6ee961b068 Block non-local traffic to the Weave control port
We expect the loopback address 127.0.0.1 to be accessible only from
the local host.

We need to allow RELATED,ESTABLISHED traffic which may be the return
path of a Kubernetes HostPort.
2020-05-27 16:43:50 +00:00
Bryan Boreham 0d4099bba5 Clarify the purpose of the net-dev Slack channel 2020-05-27 10:58:59 +00:00
Bryan Boreham 21c7bb3ff6 Merge branch '2.6' 2020-05-26 08:31:53 +00:00
Bryan Boreham 09a204b978 NPC: increment metric each time an error is logged 2020-05-22 09:55:07 +00:00
Bryan Boreham 6ad3e69faf Plumb through /proc path config to Docker plugin 2020-05-18 14:47:26 +00:00
Bryan Boreham e2088ef401 Disable accept_ra setting on interfaces we create 2020-05-14 10:21:41 +00:00
Bryan Boreham 0f3864968e refactor: supply /proc path to CreateAndAttachVeth()
Move the assumptions about where we're running up towards the caller.
2020-05-14 10:21:09 +00:00
Bryan Boreham ff9bcdf561 Merge branch '2.6' 2020-05-08 10:30:27 +00:00
Bryan Boreham 06b0a82465 Merge branch '2.6' 2020-03-12 10:38:59 +00:00
Bryan Boreham 0ca831f50b Reduce pcap timeout to avoid overflow
The value is passed by google/gopacket into a signed 32-bit int, so we
must pick a timeout which is less than 2^31 microseconds.

See https://github.com/google/gopacket/issues/708
2020-03-11 12:21:07 +00:00
Bryan Boreham 9f00f78d3b Merge branch '2.6' 2020-02-26 14:44:51 +00:00
Bryan Boreham 6e7a469a62 Note different ways to ask for static IPs 2020-02-05 09:57:12 +00:00
Bryan Boreham ca0498b860 Fix warning log to use formatted variant 2020-01-28 15:15:28 +00:00
Bryan Boreham bbfa682083 Move send of ipsec message outside lock
The send may block, so do all changes to the forwarder object and
release the lock before attempting to send.
2020-01-28 15:13:33 +00:00
Bryan Boreham f763c40c10 Update connection limit in docs 2020-01-28 12:53:14 +00:00
Bryan Boreham 6a458d0712 Merge branch '2.6' 2020-01-27 17:51:32 +00:00
Bryan Boreham 861395011c Update Ruby version for the benefit of Netlify build
Picked 2.6.2 based on message from Netlify build:
"Included versions: 2.3.6 2.5.4 2.4.5 2.4.3 2.2.9 2.6.2"
2020-01-27 17:05:46 +00:00
Bryan Boreham 526538d9d1 Merge branch 'master' into 2.6 2019-12-07 11:55:16 +00:00
Bryan Boreham 7c1b615c98 Add a note about dropping CAP_NET_RAW in Kubernetes 2019-12-04 21:04:55 +00:00
Bryan Boreham 390a4099d0 Merge branch '2.6' 2019-11-28 20:47:39 +00:00
Bryan Boreham 01237446eb Update docs to match new memory requests 2019-11-22 23:23:55 +00:00
Bryan Boreham 18deb42df1 Raise Kubernetes CPU requests from 10m to 50m
This setting is passed by Kubelet to the Linux scheduler to ask for a share of
available CPU, so we should ask for a bit more than 1% of 1 CPU. Otherwise if a
CPU is contended Weave Net will get throttled frequently.

Weave Net in fastdp mode shouldn't need a lot of CPU most of the time, but at
startup there is quite a lot to do.

The setting is also used by the Kubernetes scheduler to decide how much will fit
on a node, so setting it much higher will reserve CPU that we shouldn't need most
of the time.
2019-11-22 22:30:03 +00:00
Bryan Boreham 5c508f837e Add manifest for Kubernetes 1.11 and above 2019-11-11 10:15:53 +00:00
Bryan Boreham e000472af7 Release 2.6 2019-11-05 19:40:45 +00:00
Bryan Boreham 6d70284c21 Increase default connection limit to 200
Improvements in resource consumption in larger clusters mean we can
raise this limit.
2019-11-05 19:40:45 +00:00
Bryan Boreham 4529d1587c Release 2.6 2019-11-05 16:12:30 +00:00
Bryan Boreham b0d05f5e37 Increase default connection limit to 200
Improvements in resource consumption in larger clusters mean we can
raise this limit.
2019-11-05 14:21:24 +00:00
Bryan Boreham 3780ce4dfb Update Weave Mesh library to 0.4 2019-11-05 12:26:14 +00:00
Bryan Boreham b871c1eecb Delete test binary committed in error 2019-11-05 12:16:45 +00:00
Bryan Boreham 9a6d0c9cf5 Remove the need for a third host in test 320
This was necessary when we didn't have ipam persistence, as the
comment said "to remember the IPAM CRDT when we stop host2".
But we have persistence to hold the CRDT so we don't need host3.

Rename the test so the test runner only gives it 2 hosts.
2019-11-04 16:13:46 +00:00
Bryan Boreham d2c78d3196 Tell 'timeout' to use signal 9, so command dies immediately
We were seeing flakes in test 320, seemingly because the 'docker run'
command would sometimes send a delete request for the container it had
started, before dying.

We need the container to carry on running so we can check it does get
attached when the cluster reaches quorum. Sending signal 9 means the
command dies immediately and does not get a chance to delete the
container.
2019-11-01 16:39:34 +00:00
Bryan Boreham a43bd88ddd Add the error message why an IP claim is denied 2019-10-25 17:13:59 +00:00
Bryan Boreham e8fcd21baa Retry IP allocator claims
It may be that we cannot talk to a peer straight away, so allow claims
to be retried a few times before giving up.
2019-10-25 17:13:11 +00:00
Bryan Boreham 80e9dee9b2 Update CI image again 2019-10-22 11:19:51 +00:00
Bryan Boreham 5110a604f8 Bump to Go 1.13.3 2019-10-22 09:31:31 +00:00
Bryan Boreham 404f1bbef3 Bump image used in CI to Go 1.13.1 2019-10-15 09:29:38 +00:00
Bryan Boreham 56491b35f1 Go 1.13 needs different static linking flags
We don't need to pre-build the Go standard library or use -i flag
either - Go sorts that all out for us now.
2019-10-15 09:29:38 +00:00
Bryan Boreham dd70668b89 Update tools submodule to latest commit f041a74ffbf2 2019-10-15 09:29:38 +00:00
Bryan Boreham e5441b44e9 Bump Go version in build container to 1.13.1 2019-10-15 09:27:45 +00:00
Bryan Boreham 4da2501d7a Add sleeps in tests for topology gossip to propagate
The new weaveworks/mesh version defers topology updates by up to 1
second, so we can't expect to connect two nodes and immediately ping
between them.
2019-10-15 09:01:00 +00:00
Bryan Boreham 04680fc52c Update weaveworks/mesh to v0.3 2019-10-15 09:01:00 +00:00
Bryan Boreham 88cd86a5f2 Add checksum file for s390x qemu binary 2019-10-12 12:45:17 +00:00
Bryan Boreham b18c88524d Merge branch '2.5' 2019-10-12 11:10:09 +00:00
Bryan Boreham 90e0c43bf2 Add a note on how to secure the Kubernetes Addon configuration.
Original author Vladimir Pouzanov <farcaller@google.com>
2019-10-12 11:08:57 +00:00
Bryan Boreham 79e032c984 Reduce time test script waits for IPs to be reclaimed
Now we have a callback when a node is removed, there should be no
reason to wait 90 seconds.

The reclaim does wait up to 5 seconds before starting, so allowing 10
seconds in the script should be sufficient.
2019-10-11 20:29:58 +00:00
Bryan Boreham 821b787774 Move printing of node addresses after reclaim loop
Otherwise we see all the node addresses in the middle of the log.
2019-10-11 20:29:58 +00:00
Bryan Boreham 3ed7894e39 Debug log the node-deletion event
So we know when it came in, also which node.
2019-10-11 20:29:58 +00:00
Bryan Boreham 30ed34bd2c Shut down Kubernetes in test of deleted node 2019-10-11 20:29:58 +00:00
Bryan Boreham f5c2f51964 Use a different seed for random numbers each run
Without this, each run gets the same random numbers so all nodes are
racing to remove the deleted node.
2019-10-11 20:29:58 +00:00
Bryan Boreham d1ed6c5747 Exclude myself when building a list of peers that may need deleted
We already avoid actually doing the delete, but adding this check
stops the program logging that it was thinking about it.
2019-10-10 13:22:20 +00:00
Bryan Boreham 44f91950cb Improve logging of ring merge
Turn some Sprint() calls into `%v` in the outer format string.
Remove one debug log line on duplicate token, since that info is already logged.

Add an Info log line when we accept another peer's token, since that
should be a rare event, and it's important if we've made a mistake.
2019-10-10 11:14:41 +00:00