https://github.com/cilium/cilium

sort by:
Revision Author Date Message Commit Date
ce58524 Prepare for release v1.8.0-rc2 Signed-off-by: André Martins <andre@cilium.io> 29 May 2020, 20:41:53 UTC
f097920 preparing v1.8 branch Signed-off-by: André Martins <andre@cilium.io> 29 May 2020, 20:34:01 UTC
15be0ee azure: fix excess/off-by-one addresses allocation Azure's `AssignPrivateIpAddresses` allocated one more address than asked for. Signed-off-by: Benjamin Pineau <benjamin.pineau@datadoghq.com> 29 May 2020, 18:51:59 UTC
2a61989 proxy: Do not decrement proxy port reference count when reverting. Proxy port reference count is incremented only when an ACK has been received from all proxies in a specific policy update. If any of the proxies fail to ACK in time, the revert function is called. Proxy port reference counts must not be decremented at this time, as they have not been incremented yet. Fixes: #11637 Fixes: #6921 Signed-off-by: Jarno Rajahalme <jarno@covalent.io> 29 May 2020, 18:28:41 UTC
e884eae test: retry fqdn requests, increase curl timeout Signed-off-by: Maciej Kwiek <maciej@isovalent.com> 29 May 2020, 16:10:09 UTC
c9c77a2 Retry on ciliumnode update/create Currently, we don't retry on updates/creates for the CiliumNode when the agent starts up. This is suboptimal because the operator and the agent can end up "fighting" each other since both of them create/update the CiliumNode resource. This can cause the agent to continually fail to start and prolong the time before a node is ready for use. Signed-off-by: Ashray Jain <ashrayj@palantir.com> 29 May 2020, 16:06:39 UTC
0fa2bc7 addons/prometheus: update grafana dashboard It contains the recently added `bpf_maps_virtual_memory_max_bytes` and `bpf_progs_virtual_memory_max_bytes` metrics. Signed-off-by: André Martins <andre@cilium.io> 29 May 2020, 15:35:58 UTC
1e35692 test: Retry 5 times when validating access to 1.1.1.1 Due to temporary connectivity issues to external destination, retry 5 times to improve chances that the test succeeds. Signed-off-by: Thomas Graf <thomas@cilium.io> 29 May 2020, 15:34:59 UTC
b2a73c4 test: Increase ping timeout from 2s to 5s Fixes: #11741 Signed-off-by: Thomas Graf <thomas@cilium.io> 29 May 2020, 15:34:59 UTC
9735010 Add a new subchart for Prometheus CRD Signed-off-by: Ilya Shaisultanov <ilya.shaisultanov@gmail.com> 29 May 2020, 14:59:19 UTC
e7b4bca Add ServiceMonitor CRD to the helm chart This allows installing Cilium with service monitor enabled even if Prometheus hasn't been installed yet. By including the ServiceMonitor CRD under `crds/` directory we ensure that Helm will install it first iff the cluster has no existing ServiceMonitor CRD. This behavior is documented at https://helm.sh/docs/topics/charts/#custom-resource-definitions-crds This requires Helm 3; Helm 2 will ignore the crds/ directory. Signed-off-by: Ilya Shaisultanov <ilya.shaisultanov@gmail.com> 29 May 2020, 14:59:19 UTC
fffe33c helpers: Remove hubble-relay service in cleanup This is a follow-up to #11687. Commit 5aee704 removed the cleanup of Cilium via the Helm generated yaml manifests. This requires us to manually remove all objects created by DeployCiliumOptionsAndDNS which are not going to be replaced by a subsequent test suite. This commits makes sure to also remove the hubble-relay service when hubble-relay is cleaned up. In addition, the clean-up calls in K8sHubble are moved to the correct AfterAll section. Fixes: 6e3cdc8fe181 ("test/k8sHubble: Clean up hubble-cli and hubble-relay pods") Signed-off-by: Sebastian Wicki <sebastian@isovalent.com> 29 May 2020, 14:54:39 UTC
db2a180 test/k8s: Clean up hubble pods after test Signed-off-by: Glib Smaga <code@gsmaga.com> 29 May 2020, 14:53:26 UTC
e264f30 test/k8s: Migrate L7 visibility tests to hubble Remove usage of monitor in the L7 visibility tests and replace them with hubble using jsonpath filter to validate concrete items. Fixes #11396 Signed-off-by: Glib Smaga <code@gsmaga.com> 29 May 2020, 14:53:26 UTC
1481378 we recently added support for "named ports", removing that item in the table The `known missing features of k8s netpolicy` table references `Use of named ports` however this feature has been added (Issue 2942) so I'm removing the table Signed-off-by: Jed Salazar jed@isovalent.com 29 May 2020, 14:27:23 UTC
c1a0025 doc: Fix require-ipv4-pod-cidr value for ENI and Azure mode The helm chart was incorrectly setting require-ipv4-pod-cidr for ENI and Azure IPAM modes. The commit moves the ipam value into the config chart and adjusts all guides to set it to the correct value instead of setting it indirectly via a meta value. Fixes: 934053ced7b ("install/kubernetes: enable Cilium-based podCIDR allocation by default") Signed-off-by: Thomas Graf <thomas@cilium.io> 29 May 2020, 14:25:53 UTC
345a1ab Remove non-functional commands from cilium-bugtool This PR removes all the non-functional commands from cilium-bugtool configuration. Fixes: #11648 Signed-off-by: Swaminathan Vasudevan <svasudevan@suse.com> 29 May 2020, 14:24:46 UTC
3dc573e test: increase timeout for getting pod list for logs Also added explicit error check to this kubectl Signed-off-by: Maciej Kwiek <maciej@isovalent.com> 29 May 2020, 13:42:59 UTC
7756db0 docs: add table for test-focus Signed-off-by: Maciej Kwiek <maciej@isovalent.com> 29 May 2020, 13:40:35 UTC
9ea244f test: parallelize log gathering We are running multiple kubectl commands to gather logs. This change makes the gathering commands run in parallel. Signed-off-by: Maciej Kwiek <maciej@isovalent.com> 29 May 2020, 13:40:14 UTC
31a622e ci: outer vm boot timeout was smaller than inner Signed-off-by: Maciej Kwiek <maciej@isovalent.com> 29 May 2020, 13:36:34 UTC
f6a645f datapath: Remove duplicated IsHost from Endpoint IsHost is also defined in CompileTimeConfiguration which is embeded in Endpoint. Remove it to reduce confusion. Signed-off-by: Yongkun Gui <ygui@google.com> 29 May 2020, 13:36:09 UTC
de52d06 Makefile: Fix double '-mod=vendor' in go flags Previously, -mod=vendor was appended in go flags when GO111MODULE is on, and when go version is newer or equal to 1.13. When both conditions are true it will be appended twice, but go is upset about it. Signed-off-by: Yongkun Gui <ygui@google.com> 29 May 2020, 13:36:09 UTC
62b6483 datapath: Fix panic on direct routing config If a device is given through options but NodePort is not enabled, Cilium panics when trying to set the direct routing configuration for the datapath. This panic happens because we use node.GetNodePortIPv{4,6}AddrsWithDevices() to retrieve the IP addresses, but since NodePort is disabled, the IP addresses weren't collected and that function returns an empty map. Fixes: 056fec2b ("loader: Move direct routing config. to node_config.h") Signed-off-by: Paul Chaignon <paul@cilium.io> 29 May 2020, 13:34:27 UTC
9f97606 hubble/api: move Endpoint struct from api to testutils package The `Endpoint` struct implements the `v1.EndpointInfo` interface and is actually only used in the context of unit tests. This commit thus moves it to the testutils package and renames it to `FakeEndpointInfo` for consistency. Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net> 29 May 2020, 13:31:44 UTC
7bf2d79 hubble/parser: delete endpoint package This package only contains 2 functions that are actually unused. Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net> 29 May 2020, 13:31:44 UTC
9accb13 test: Wait for IPCache entries in testSessionAffinity We need to wait for an IPCache entry of the restarted pod. Otherwise, a next testSessionAffinity test (with fromOutside = true) might fail, as it could take up to 10s for the entry to appear. See [1] for more details. This is a temporary fix to get rid of the session affinity flakes. [1]: https://github.com/cilium/cilium/issues/11751 Signed-off-by: Martynas Pumputis <m@lambda.lt> 29 May 2020, 13:31:00 UTC
210d558 test: Disable flaky etcd test Disable on all pipelines except for K8s 1.11/Linux net-next, since the test never flaked on that one so far. Signed-off-by: Paul Chaignon <paul@cilium.io> 29 May 2020, 13:30:46 UTC
20a6237 test: Helpers to check if running on net-next kernel Signed-off-by: Paul Chaignon <paul@cilium.io> 29 May 2020, 13:30:46 UTC
3430980 etcd: Increase status check timeout to 10 seconds If the node is under heavy CPU load, the status check may take longer than 5 seconds. Increase it to 10 seconds and also make it configurable with an environment variable. Signed-off-by: Thomas Graf <thomas@cilium.io> 29 May 2020, 13:16:48 UTC
64e102f travis: fix arm64 build After PR #11740, a complete build is run on Travis CI. This currently breaks the ARM64 build which is missing some dependencies. Fixes: a6ca5d539168 ("travis: run build checks and complete build") Reported-by: Paul Chaignon <paul@cilium.io> Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 29 May 2020, 13:16:02 UTC
d909b14 ipcache: Add unit tests for IP shadowing These unit tests validate the bug fixed by the prior commit where entries dumped from the ipcache may not consistently map IPs to the correct Identity. Note that there is a potential Golang map dump ordering aspect to these tests so depending on the Go version used they may/may not consistently fail. They consistently fail for me prior to the fix (eg v1.8.0-rc1), and consistently pass with the fix, but YMMV. Signed-off-by: Joe Stringer <joe@cilium.io> 29 May 2020, 12:32:29 UTC
a899305 ipcache: Fix Dump precedence for overlapping IPs Cilium defines a precedence ordering between sources for mappings from IP to Identity, defined in pkg/source/source.go. These are used to determine which Identity should be used for an IP when multiple sources provide conflicting reports of the Identity to be associated with an IP. This ordering was handled in the case of source.Generated CIDR/FQDN -sourced identities by inserting potentially two overlapping entries into the ipcache.IPIdentityCache when an endpoint's IP is the same as a CIDR mapping: * An endpoint Identity would be inserted with the key 'w.x.y.z', and * A CIDR Identity would be inserted with the key 'w.x.y.z/32'. (IPv6: /128) During Upsert() and Delete(), when overlapping entries existed in the map, this overlap would be resolved by directly checking whether another entry exists with/without the `/32` suffix (IPv6: /128) and either hiding the update from listeners (when a shadowed mapping is upserted), or converting the delete to an update (when a shadowing entry is deleted, revealing the underlying shadowed entry). During DumpToListenerLocked() however, this shadowing would not be resolved and instead both entries would be dumped to the caller in an arbitrary order. This is particularly notable on Linux 4.11 to 4.15 where LPM support is available but deletion is not supported. In these cases, Cilium periodically dumps the ipcache to a listener using this function, and populates the BPF ipcache map using this dump. Any time this dump occurs (default 5 minutes), it would be possible for the ipcache mapping to be modified to map the IP to either of the cached identities. Depending on the Go runtime in use by the version of Cilium, this may or may not consistently provide particular dump ordering. Resolve this issue by keeping track of shadowed entries with an explicit boolean field in the value of the map, and avoiding dumping such entries in the DumpToListenerLocked() function. Fixes: #11517 Reported-by: Will Deuschle <wdeuschle@palantir.com> Suggested-by: Jarno Rajahalme <jarno@cilium.io> Signed-off-by: Joe Stringer <joe@cilium.io> 29 May 2020, 12:32:29 UTC
05daeef build: Place operator binaries in separate images Signed-off-by: Ilya Dmitrichenko <errordeveloper@gmail.com> 29 May 2020, 09:05:49 UTC
053fc86 operator: Build 3 new slimmer binaries - add per-provider binaries - handle --ipam flag - avoid adding deprecated flags in new binaries - continue building fat binary and maintain the same name for compatibility Signed-off-by: Ilya Dmitrichenko <errordeveloper@gmail.com> 29 May 2020, 09:05:49 UTC
9978fbd ipcache: Better logging for conflicting named ports Fixes: #11423 Signed-off-by: Jarno Rajahalme <jarno@covalent.io> 29 May 2020, 08:58:24 UTC
a6ca5d5 travis: run build checks and complete build This will allow various issues before actually running the tests in our CI. Use `-j 2` since Travis CI usually runs on 2 cores and some parts of the build benefit from that. Updates #11730 Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 29 May 2020, 08:55:35 UTC
a462fc0 travis: remove unused CGO_CFLAGS env var The CI_BUILD define is no longer needed since commit 9886f71ad128 ("pkg/bpf: remove #define depending on CI_BUILD") Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 29 May 2020, 08:55:35 UTC
610a501 make: move lock and rand checks to precheck target There's no reason to wait with running contrib/scripts/lock-check.sh and contrib/scripts/rand-check.sh until after the build (i.e. the postcheck target) as they are using only `grep` to check. Move them to the precheck target so these errors are caught earlier. Updates #11730 Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 29 May 2020, 08:55:35 UTC
af9fd59 proxy: Never release proxy port for non-dynamic listeners Due to an apparent reference counting problem, where DNS redirect count reaches zero even though the reference count is set to one by SetProxyPort(), is is possible for the DNS proxy listening port to be reallocated and the corresponding datapath redirection rules changed to a new port, while the DNS proxy is incapable of changing it's listening port. Fix this by marking a proxy post set via SetProxyPort() as static and adding corresponding conditions that prevent the release and reallocation of the proxy port even if the reference count reaches zero. Fixes: 11637 Signed-off-by: Jarno Rajahalme <jarno@covalent.io> 29 May 2020, 08:33:35 UTC
da022e8 proxy: Make proxy port changes visible in info logs. Make proxy port changes visible in logs at info level. This should not add too much logging as proxy ports are supposedly relatively static over time. Signed-off-by: Jarno Rajahalme <jarno@covalent.io> 29 May 2020, 08:33:35 UTC
1841a44 proxy: Only mark the port as allocated if not already configured. Check if proxy port has already been configured in reservePort(). This is a cleanup only, should not change existing behavior. Signed-off-by: Jarno Rajahalme <jarno@covalent.io> 29 May 2020, 08:33:35 UTC
3c61404 pkg/metrics: add BPF memory usage This commit introduces a new metric that will return the memory usage if available by bpftool. It sums all `bytes_memlock` for the BPF maps and programs installed in the system. Signed-off-by: André Martins <andre@cilium.io> 29 May 2020, 08:25:57 UTC
33cb7a5 monitor: Fix ipcache lookup debug msg The ipcache lookup debug messages state: Failed to map daddr and Successfully mapped daddr but the ipcache lookups aren't necessarily specific to the *destination* IP address. Signed-off-by: Paul Chaignon <paul@cilium.io> 29 May 2020, 07:39:27 UTC
83f491e pkg/k8s: add missing ResourceVersion field when parsing k8s structures Fixes: d7cbb6a823bc ("slim/k8s: add missing resourceVersion field") Signed-off-by: André Martins <andre@cilium.io> 29 May 2020, 07:27:09 UTC
89654fd endpointsynchronizer: do not create CEP until NamedPorts are set NamedPorts are set at a later stage on a creation of an endpoint. If we don't wait for NamedPorts to be set Cilium, might send 2 updates to Kubernetes, one without and another with the NamedPorts field. Waiting for this field to be initialized will decreased the number of updates to Kubernetes to 1 because the update will always container the NamedPorts set. Signed-off-by: André Martins <andre@cilium.io> 29 May 2020, 07:27:09 UTC
b5581b4 endpointsynchronizer: to not set Status for CEP on create When creating a resource, the status subresource is ignored by Kube-apiserver so setting it is useless. Signed-off-by: André Martins <andre@cilium.io> 29 May 2020, 07:27:09 UTC
8068f1a endpointsynchronizer: do not delete CEP when endpoint is deleted Deleting a CEP upon the deletion of an endpoint can be harmful in certain conditions. When a pod specifies a container image that does not exist kubelet might send a CNI ADD, a CNI DEL followed by another CNI ADD, this causes Cilium to create a CEP, delete it and then re-create it. Since the CEP has an owner for itself (the created Pod) and the Cilium Operator is doing the GC of dangling CEPs, removing the CEP after an endpoint is removed should no longer be required as well as decreases the k8s interactions Cilium does to Kubernetes. Signed-off-by: André Martins <andre@cilium.io> 29 May 2020, 07:27:09 UTC
3533fd3 pkg/node: give priority to nodeName from K8S_NODE_NAME env variable If Cilium is running in k8s mode, K8S_NODE_NAME is available so we can set the node name directly upon node initialization. This prevents Cilium from setting the node name with a different name at a later stage as the os.Hostname() can be return a different value than K8S_NODE_NAME. Fixes: dbfc2c3cb15e ("k8s: remove waiting for node spec on k8s client init") Signed-off-by: André Martins <andre@cilium.io> 29 May 2020, 07:23:42 UTC
93ab013 pkg/k8s: refactor constants to a dedicated package This will allow to import constant names from other packages without worrying on importing k8s dependencies. Signed-off-by: André Martins <andre@cilium.io> 29 May 2020, 07:23:42 UTC
1439b27 operator: fix panic for non existing CEPs ``` panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x118 pc=0x1dcb219] goroutine 161 [running]: main.enableUnmanagedKubeDNSController.func1(0x28aa1a0, 0xc00069e880, 0x3d3d0a0, 0xd9fc43ebeec50347) /go/src/github.com/cilium/cilium/operator/k8s_pod_controller.go:67 +0xa69 github.com/cilium/cilium/pkg/controller.(*Controller).runController(0xc000789a00) /go/src/github.com/cilium/cilium/pkg/controller/controller.go:205 +0xa2a created by github.com/cilium/cilium/pkg/controller.(*Manager).updateController /go/src/github.com/cilium/cilium/pkg/controller/manager.go:120 +0xb09 ``` Fixes: 26e74511a8dc ("operator: use watcher to track unmanaged pods") Reported-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: André Martins <andre@cilium.io> 28 May 2020, 22:37:16 UTC
2e55195 docs: add missing dependency to use docs live-preview Fixes: 38abe893dfa4 ("doc: Add make render-docs-live-preview target") Signed-off-by: André Martins <andre@cilium.io> 28 May 2020, 22:35:30 UTC
b87a855 docker: update cilium-{runtime,builder} images Pull in updated LLVM into cilium-{runtime,builder} images. On top of the base 10.0.0, they include the cherry-picked commits from John's work: - https://github.com/llvm/llvm-project/commit/29bc5dd19407c4d7cad1c059dea26ee216ddc7ca - https://github.com/llvm/llvm-project/commit/13f6c81c5d9a7a34a684363bcaad8eb7c65356fd Given we build https://github.com/cilium/image-tools via GH actions, move all the tools from there to the docker.io auto-built repos. Also add ss tool to the runtime image for diagnostics via bugtool (e.g. for the L7 proxy). Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> 28 May 2020, 22:16:03 UTC
9b0ae85 k8s: Fix CCNP for host policies This commit fixes the CCNP parsing to accept NodeSelectors, used to define host policies. NodeSelectors are only accepted in CCNP resources. Because host policies are never limited to a namespace, it would be misleading to accept NodeSelectors in CNP resources. This commit also adds a new CCNP example of host policies in the same directory as the existing JSON example. Fixes: f9c205d ("pkg/policy: Host network policies") Signed-off-by: Paul Chaignon <paul@cilium.io> 28 May 2020, 20:10:50 UTC
7561dec fix(lint): Use coalesce CIDRs for linux routing in cni Currently, the coalesce cidrs was derived from ipam.CIDRs with the intention of minimizing routing rules, however original full ipam.cidrs are passed to routing rules instead. This PR is to correct such discrepancy Closes #11562 Fixes: b58dd147ed44 ("Refactor enirouting pkg to use interfaces") Signed-off-by: Tam Mach <sayboras@yahoo.com> 28 May 2020, 18:39:24 UTC
b514a1c ci: ensure Cilium pods are restarting in fqdn test This change ensures that Cilium pods are being restarted in "Restart Cilium validate that FQDN is still working" test. By repeatedly calling `kill 1` in all Cilium pods, which was fastest way of restarting a pod I found. This test has been flaking a lot lately and the theory is that it was a race between connectivity test and restarting the pod. Signed-off-by: Maciej Kwiek <maciej@isovalent.com> 28 May 2020, 13:20:47 UTC
c3b2caf examples, test: consistently use busybox:1.31.1 image This version is already pre-pulled in the dev VM, so use it consistently in all examples and tests. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 28 May 2020, 13:02:50 UTC
be601ec test: use alpine-curl 0.1.8 for policygen tests This version is already pre-pulled in the dev VM and is also used for the connectivity checks. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 28 May 2020, 13:02:50 UTC
0e33167 loader: Fix missing dot in assembly output files Signed-off-by: Paul Chaignon <paul@cilium.io> 28 May 2020, 12:49:50 UTC
26e7451 operator: use watcher to track unmanaged pods Listing all pods, even if with a filter will load the etcd kvstore as the filtering is done in kube-apiserver. To avoid doing this operation every 10 seconds we can have a single watcher that keeps track of all unmanaged kube-dns pods locally. Signed-off-by: André Martins <andre@cilium.io> 28 May 2020, 12:04:33 UTC
02024ba plugins/cilium-cni: start gops in debug mode Fixes: def2c9e06e91 ("Add gops to cilium-cni") Signed-off-by: André Martins <andre@cilium.io> 28 May 2020, 11:57:56 UTC
3d57190 hubble/parser/threefour: handle IPv6 CIDR labels The IP address in IPv6 CIDR labels is represented with '-' instead of ':' as labels cannot contain a ':'. This commit fixes IPv6 CIDR labels parsing by converting '-' characters back to ':' before attempting to parse the CIDR string. Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net> 28 May 2020, 11:09:09 UTC
5dc78d9 daemon: fully implement hubble parser's IPGetter interface This commit updates hubble parser's IPGetter interface in 2 ways: - Change the ip paramter type from string back to net.IP (as it was until recently). - Change the method name of LookupByIP to LookupSecIDByIP. This name is a bit more explicit and, more importantly, it matches the corresponding method name in cilium's daemon. To implement these changes, cilium's daemon now includes a new method, GetK8sMetadata, that wraps ipcache.GetK8sMetadata and takes a net.IP as argument instead of a string as in the ipcache package variant. With these changes, cilium's daemon now implements all of hubble parser's getters interfaces. To make this more explicit, the LookupSecIDByIP method has been moved to the hubble.go file along with the other implementations. Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net> 28 May 2020, 11:07:26 UTC
1c0a105 daemon: optimize LookupSecIDByIP and make it public LookupSecIDByIP returns the security ID for a given IP. This commit makes the method public as it is planned to be used by hubble's parser as well. The signature is also slightly updated to not include an error as it is totally possible to perform a lookup without generating potential errors. LookupSecIDByIP is also optimized in the following ways: - Handle the case where an IP could be <nil> (it *will* be the case when used by hubble). - Instead of immediately performing a search by CIDR, try looking up for the IP directly as the underlying ipcache lookup is more efficient (it's a straightforward hashmap access). - Use existing GetCIDRPrefixLengths method to get the prefixes. - Avoid IP+prefix --> string --> CIDR --> string conversion by directly creating the CIDR based on the IP and creating the appropriate mask. Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net> 28 May 2020, 11:07:26 UTC
68ef5b0 daemon: move hubble related methods to hubble.go Let's keep everything hubble related in the same file. This commit does not bring any functional changes. Signed-off-by: Robin Hahling <robin.hahling@gw-computing.net> 28 May 2020, 11:07:26 UTC
87f0905 CODEOWNERS: add helm as codeowner of install/kubernetes Signed-off-by: André Martins <andre@cilium.io> 28 May 2020, 08:13:02 UTC
1b95d35 datapath: Fix back-edge in bpf_sock for older kernels The commit 4fa26a4105eb2 ("datapath: Enable sessionAffinity for older kernels") enabled the session affinity feature in bpf_sock when running on older kernels (e.g. 4.19.57). However, the feature was broken on such kernels due to the back-edge detected by the BPF verifier: msg="+ tc exec bpf pin /sys/fs/bpf/tc/globals/cilium_cgroups_connect6 obj bpf_sock.o type sockaddr attach_type connect6 sec connect6" subsys=datapath-loader subsys=datapath-loader msg="Prog section 'connect6' rejected: Invalid argument (22)!" subsys=datapath-loader msg=" - Type: 18" subsys=datapath-loader msg=" - Attach Type: 11" subsys=datapath-loader msg=" - Instructions: 740 (0 over limit)" subsys=datapath-loader msg=" - License: GPL" subsys=datapath-loader subsys=datapath-loader msg="Verifier analysis:" subsys=datapath-loader subsys=datapath-loader msg="back-edge from insn 624 to 570" subsys=datapath-loader subsys=datapath-loader msg="Error fetching program/map!" subsys=datapath-loader This was happening, as in the backend reselection case (when a backend from affinity cannot be found) we goto to previous lines in the code. Fix it by immediately checking whether the backend from affinity exists. Fixes: 4fa26a4105eb2 ("datapath: Enable sessionAffinity for older kernels") Reported-by: Paul Chaignon <paul@cilium.io> Signed-off-by: Martynas Pumputis <m@lambda.lt> 28 May 2020, 08:09:09 UTC
222ed5a bpf: fix test/bpf/unit-test segfault due to memcmp looping Jarno and Paul reported a segfault in the memcmp() test case for older clang: test/bpf/unit-test Makefile:216: recipe for target 'unit-tests' failed make[1]: *** [unit-tests] Segmentation fault make[1]: Leaving directory '/home/vagrant/go/src/github.com/cilium/cilium' Makefile:201: recipe for target 'tests' failed make: *** [tests] Error 2 It appears that we'll end up generating a loop, that is, (*) -> __bpf_memcmp() -> __bpf_memcmp_builtin() -> __builtin_memcmp() -> memcmp() -> (*), meaning it will end up selecting our memcmp() implementation from the same header. It seems clang ends up generating calls between the two and then trashing the stack. Given the way we implemented and use the optimized memcmp(), we can simply switch to the __builtin_bcmp() instead, which also fixes the segfault. The man-page says 'The bcmp() function returns 0 if the byte sequences are equal, otherwise a nonzero result is returned.' This equals what we do here anyway. Fixes: #11255 Reported-by: Jarno Rajahalme <jarno@covalent.io> Reported-by: Paul Chaignon <paul@cilium.io> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> 28 May 2020, 06:49:49 UTC
3cf91ac Makefile: Fix build when RACE is provided Previously, when compiling Cilium like so: ``` $ make RACE=1 ``` was broken as the CGO_ENABLED variable was not being set properly. This commit fixes that, allowing users to compile Cilium with race detection in an automated manner. Fixes: e605439 ("Makefile: Build maptool with CGO enabled if RACE") Signed-off-by: Chris Tarazi <chris@isovalent.com> 28 May 2020, 04:48:53 UTC
e871f28 test: use pkg/lock instead of stdlib sync Currently the contrib/scripts/lock-check.sh script fails in the CI runtime tests with: 20:33:58 runtime: contrib/scripts/lock-check.sh 20:33:58 runtime: ./test/ginkgo-ext/scopes.go: mutex *sync.Mutex 20:33:58 runtime: ./test/ginkgo-ext/scopes.go: mutex: &sync.Mutex{}, 20:33:58 runtime: ./test/ginkgo-ext/scopes.go: mutex: &sync.Mutex{}, 20:33:58 runtime: Found sync.Mutex usage. Please use pkg/lock instead to improve deadlock detection 20:33:58 runtime: Makefile:508: recipe for target 'postcheck' failed 20:33:58 runtime: make: *** [postcheck] Error Fixes: 9d97e52914de ("test: Mend gingko-ext") Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 27 May 2020, 19:00:04 UTC
40320d6 ci/K8sHubble: Retry failed requests on hubble-relay The current version of hubble-relay is intentionally not very aggressive when reconnecting to failed nodes. It will only try to reconnect once it receives a new request. In CI, this behavior causes flakes. The first request to hubble-relay may fail in case cilium-agent was not yet ready when hubble-relay was deployed. This commit introduces a retry mechanism for CI: We retry the request to hubble-relay after 5 seconds, this allows it to re-establish the connection to each node for subsequent requests. Fixes: #11707 Signed-off-by: Sebastian Wicki <sebastian@isovalent.com> 27 May 2020, 17:58:18 UTC
e868f36 Doc: Update the unit test section for privileged tests This PR adds instructions to the cilium documentation on how to run the 'privileged' unit tests. Fixes: #11431 Signed-off-by: Swaminathan Vasudevan <svasudevan@suse.com> 27 May 2020, 17:33:45 UTC
9168268 eni/node_manager_test: Add set up and tear down In this test suite, the `metricsapi` is global variable which is shared among all the `Test*` functions. It is possible that it becomes polluted over time during test execution. This is an attempt to resolve the following: ``` FAIL: node_manager_test.go:563: ENISuite.TestNodeManagerManyNodes node_manager_test.go:602: c.Errorf("Node %s allocation mismatch. expected: %d allocated: %d", s.name, minAllocate, node.Stats().AvailableIPs) ... Error: Node node53 allocation mismatch. expected: 10 allocated: 18 node_manager_test.go:602: c.Errorf("Node %s allocation mismatch. expected: %d allocated: %d", s.name, minAllocate, node.Stats().AvailableIPs) ... Error: Node node59 allocation mismatch. expected: 10 allocated: 18 node_manager_test.go:617: c.Assert(metricsapi.AllocatedIPs("available"), check.Equals, numNodes*minAllocate) ... obtained int = 1016 ... expected int = 1000 ... OOPS: 17 passed, 1 FAILED --- FAIL: Test (2.60s) FAIL coverage: 4.3% of statements in ./... FAIL github.com/cilium/cilium/pkg/aws/eni 2.684s FAIL Makefile:204: recipe for target 'unit-tests' failed make: *** [unit-tests] Error 1 The command "./.travis/build.sh" exited with 2. ``` Signed-off-by: Chris Tarazi <chris@isovalent.com> 27 May 2020, 17:07:03 UTC
9ded76e eni: Fix data race This commit creates a locked version of `eni.(*Node).getLimits()` because `eni.(*Node).GetMaximumAllocatableIPv4()` locked the mutex at the start of the function. This prevents a recursive lock and a potential deadlock. This fixes a data race found when running the unit-tests with `-race`. ``` RNING: DATA RACE Write at 0x00c00075c180 by goroutine 33: github.com/cilium/cilium/pkg/aws/eni.(*Node).UpdatedNode() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:71 +0x85 github.com/cilium/cilium/pkg/ipam.(*Node).UpdatedResource() /home/chris/code/cilium/cilium/pkg/ipam/node.go:319 +0x81 github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:278 +0x149 github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerDefaultAllocation() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:271 +0xff1 runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 Previous read at 0x00c00075c180 by goroutine 77: github.com/cilium/cilium/pkg/aws/eni.(*Node).GetMaximumAllocatableIPv4() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:499 +0x7e8 github.com/cilium/cilium/pkg/ipam.(*Node).getMaxAllocate() /home/chris/code/cilium/cilium/pkg/ipam/node.go:213 +0x79 github.com/cilium/cilium/pkg/ipam.(*Node).recalculate() /home/chris/code/cilium/cilium/pkg/ipam/node.go:368 +0x42a github.com/cilium/cilium/pkg/ipam.(*NodeManager).resyncNode() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:347 +0x7a github.com/cilium/cilium/pkg/ipam.(*NodeManager).Resync.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:394 +0x88 Goroutine 33 (running) created at: gopkg.in/check%2ev1.(*suiteRunner).forkCall() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:672 +0x44d gopkg.in/check%2ev1.(*suiteRunner).forkTest() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:763 +0x1b9 gopkg.in/check%2ev1.(*suiteRunner).runTest() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:818 +0x228 gopkg.in/check%2ev1.(*suiteRunner).run() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:624 +0x1c7 gopkg.in/check%2ev1.Run() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:92 +0x5a gopkg.in/check%2ev1.RunAll() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:84 +0x127 gopkg.in/check%2ev1.TestingT() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:72 +0x5f6 github.com/cilium/cilium/pkg/aws/eni.Test() /home/chris/code/cilium/cilium/pkg/aws/eni/eni_test.go:26 +0x38 testing.tRunner() /usr/lib/go/src/testing/testing.go:991 +0x1eb Goroutine 77 (running) created at: github.com/cilium/cilium/pkg/ipam.(*NodeManager).Resync() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:393 +0x2cf github.com/cilium/cilium/pkg/ipam.NewNodeManager.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:168 +0x101 github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4d1 ``` Signed-off-by: Chris Tarazi <chris@isovalent.com> 27 May 2020, 17:07:03 UTC
7427e22 eni: Fix data race in node_manager_test.go This fixes a data race found when running the unit-tests with `-race`. ``` WARNING: DATA RACE Write at 0x00c00288e358 by goroutine 256: github.com/cilium/cilium/pkg/aws/eni.(*Node).ResyncInterfacesAndIPs() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:448 +0x8e github.com/cilium/cilium/pkg/ipam.(*Node).recalculate() /home/chris/code/cilium/cilium/pkg/ipam/node.go:352 +0xfb github.com/cilium/cilium/pkg/ipam.(*NodeManager).resyncNode() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:347 +0x7a github.com/cilium/cilium/pkg/ipam.(*NodeManager).Resync.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:394 +0x88 Previous read at 0x00c00288e358 by goroutine 416: github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerReleaseAddress() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:498 +0x1d71 runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 Goroutine 256 (running) created at: github.com/cilium/cilium/pkg/ipam.(*NodeManager).Resync() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:393 +0x2cf github.com/cilium/cilium/pkg/ipam.NewNodeManager.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:168 +0x101 github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4d1 Goroutine 416 (running) created at: gopkg.in/check%2ev1.(*suiteRunner).forkCall() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:672 +0x44d gopkg.in/check%2ev1.(*suiteRunner).forkTest() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:763 +0x1b9 gopkg.in/check%2ev1.(*suiteRunner).runTest() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:818 +0x228 gopkg.in/check%2ev1.(*suiteRunner).run() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:624 +0x1c7 gopkg.in/check%2ev1.Run() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:92 +0x5a gopkg.in/check%2ev1.RunAll() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:84 +0x127 gopkg.in/check%2ev1.TestingT() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:72 +0x5f6 github.com/cilium/cilium/pkg/aws/eni.Test() /home/chris/code/cilium/cilium/pkg/aws/eni/eni_test.go:26 +0x38 testing.tRunner() /usr/lib/go/src/testing/testing.go:991 +0x1eb ``` Signed-off-by: Chris Tarazi <chris@isovalent.com> 27 May 2020, 17:07:03 UTC
ab1b7e2 eni: Fix data race around Node.k8sObj This fixes a data race found when running the unit-tests with `-race`. ``` WARNING: DATA RACE Write at 0x00c000067168 by goroutine 118: github.com/cilium/cilium/pkg/aws/eni.(*Node).UpdatedNode() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:69 +0x5f github.com/cilium/cilium/pkg/ipam.(*Node).UpdatedResource() /home/chris/code/cilium/cilium/pkg/ipam/node.go:319 +0x81 github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:273 +0x14a github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerReleaseAddress() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:467 +0x101d runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 Previous read at 0x00c000067168 by goroutine 324: github.com/cilium/cilium/pkg/aws/eni.(*Node).getLimits() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:101 +0x5a github.com/cilium/cilium/pkg/aws/eni.(*Node).GetMaximumAllocatableIPv4() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:488 +0x2e2 github.com/cilium/cilium/pkg/ipam.(*Node).getMaxAllocate() /home/chris/code/cilium/cilium/pkg/ipam/node.go:213 +0x79 github.com/cilium/cilium/pkg/ipam.(*Node).recalculate() /home/chris/code/cilium/cilium/pkg/ipam/node.go:368 +0x42a github.com/cilium/cilium/pkg/ipam.(*NodeManager).resyncNode() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:342 +0x7a github.com/cilium/cilium/pkg/ipam.(*NodeManager).Resync.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:389 +0x88 Goroutine 118 (running) created at: gopkg.in/check%2ev1.(*suiteRunner).forkCall() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:672 +0x44d gopkg.in/check%2ev1.(*suiteRunner).forkTest() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:763 +0x1b9 gopkg.in/check%2ev1.(*suiteRunner).runTest() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:818 +0x228 gopkg.in/check%2ev1.(*suiteRunner).run() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:624 +0x1c7 gopkg.in/check%2ev1.Run() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:92 +0x5a gopkg.in/check%2ev1.RunAll() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:84 +0x127 gopkg.in/check%2ev1.TestingT() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:72 +0x5f6 github.com/cilium/cilium/pkg/aws/eni.Test() /home/chris/code/cilium/cilium/pkg/aws/eni/eni_test.go:26 +0x38 testing.tRunner() /usr/lib/go/src/testing/testing.go:991 +0x1eb Goroutine 324 (finished) created at: github.com/cilium/cilium/pkg/ipam.(*NodeManager).Resync() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:388 +0x2c5 github.com/cilium/cilium/pkg/ipam.NewNodeManager.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:168 +0x101 github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4b9 ``` Signed-off-by: Chris Tarazi <chris@isovalent.com> 27 May 2020, 17:07:03 UTC
20055e4 eni: Fix data race caused by incorrect assumption This data race occurs in SetRunningLocked() which has a comment stating that it assumes that `Node` has been locked. That is not the case, and this PR fixes that incorrect assumption by renaming the function to SetRunning() and locking the mutex when writing to the shared resource. This fixes a data race found when running the unit-tests with `-race`. ``` WARNING: DATA RACE Write at 0x00c0002d1030 by goroutine 79: github.com/cilium/cilium/pkg/ipam.(*Node).SetRunningLocked() /home/chris/code/cilium/cilium/pkg/ipam/node.go:133 +0xc7 github.com/cilium/cilium/pkg/aws/eni.(*Node).errorInstanceNotRunning() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:274 +0xfe github.com/cilium/cilium/pkg/aws/eni.(*Node).CreateInterface() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:385 +0xe9f github.com/cilium/cilium/pkg/ipam.(*Node).createInterface() /home/chris/code/cilium/cilium/pkg/ipam/node.go:435 +0x290 github.com/cilium/cilium/pkg/ipam.(*Node).maintainIPPool() /home/chris/code/cilium/cilium/pkg/ipam/node.go:628 +0x85d github.com/cilium/cilium/pkg/ipam.(*Node).MaintainIPPool() /home/chris/code/cilium/cilium/pkg/ipam/node.go:663 +0x82 github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:241 +0x8b github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4b9 Previous read at 0x00c0002d1030 by goroutine 77: github.com/cilium/cilium/pkg/ipam.(*Node).IsRunning() /home/chris/code/cilium/cilium/pkg/ipam/node.go:125 +0x85 github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerInstanceNotRunning.func1() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:655 +0x6d github.com/cilium/cilium/pkg/testutils.WaitUntil() /home/chris/code/cilium/cilium/pkg/testutils/condition.go:36 +0x97 github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerInstanceNotRunning() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:653 +0xf22 runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 Goroutine 79 (running) created at: github.com/cilium/cilium/pkg/trigger.NewTrigger() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:129 +0x23d github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:236 +0x523 github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerInstanceNotRunning() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:650 +0xed8 runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 Goroutine 77 (running) created at: gopkg.in/check%2ev1.(*suiteRunner).forkCall() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:672 +0x44d gopkg.in/check%2ev1.(*suiteRunner).forkTest() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:763 +0x1b9 gopkg.in/check%2ev1.(*suiteRunner).runTest() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:818 +0x228 gopkg.in/check%2ev1.(*suiteRunner).run() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:624 +0x1c7 gopkg.in/check%2ev1.Run() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:92 +0x5a gopkg.in/check%2ev1.RunAll() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:84 +0x127 gopkg.in/check%2ev1.TestingT() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/run.go:72 +0x5f6 github.com/cilium/cilium/pkg/aws/eni.Test() /home/chris/code/cilium/cilium/pkg/aws/eni/eni_test.go:26 +0x38 testing.tRunner() /usr/lib/go/src/testing/testing.go:991 +0x1eb ``` Signed-off-by: Chris Tarazi <chris@isovalent.com> 27 May 2020, 17:07:03 UTC
ef77a98 eni: Fix data races and potential deadlock This commit mostly reworks `eni.(*Node).ResyncInterfacesAndIPs()` as it makes many unprotected accesses to shared resources. This change is to reduce the scope of the mutexes to only when a shared resource is accessed. It also refactors that code such that only the immediate structure is responsible for locking / unlocking its mutex. This allows a mixtures of read and write locks intended to minimize the impact on performance as much as possible. This change also attempts to minimize the nesting of mutex locks as much as possible, which can lead to deadlocking or long hanging periods. Not all the data race output from Golang is provided in this commit body as there were many small, nested data races that were fixed along the way. The main, important data race outputs are provided below. All data races were found by running `-race` when running `make unit-tests`. ``` WARNING: DATA RACE Read at 0x00c00017c388 by goroutine 86: github.com/cilium/cilium/pkg/aws/eni.(*Node).ResyncInterfacesAndIPs() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:433 +0x1ca github.com/cilium/cilium/pkg/ipam.(*Node).recalculate() /home/chris/code/cilium/cilium/pkg/ipam/node.go:352 +0xfb github.com/cilium/cilium/pkg/ipam.(*Node).MaintainIPPool() /home/chris/code/cilium/cilium/pkg/ipam/node.go:669 +0xc1 github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:241 +0x8b github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4b9 Previous write at 0x00c00017c388 by goroutine 82: github.com/cilium/cilium/pkg/aws/eni.(*InstancesManager).Resync() /home/chris/code/cilium/cilium/pkg/aws/eni/instances.go:185 +0xf24 github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerManyNodes() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:589 +0xb98 runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 Goroutine 86 (running) created at: github.com/cilium/cilium/pkg/trigger.NewTrigger() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:129 +0x23d github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:236 +0x523 github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerManyNodes() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:593 +0x80a runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 ``` ``` WARNING: DATA RACE Write at 0x00c0001f3738 by goroutine 35: github.com/cilium/cilium/pkg/aws/eni.(*InstancesManager).Resync() /home/chris/code/cilium/cilium/pkg/aws/eni/instances.go:185 +0xf24 github.com/cilium/cilium/pkg/ipam.NewNodeManager.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:167 +0x8f github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4b9 Previous read at 0x00c0001f3738 by goroutine 39: github.com/cilium/cilium/pkg/aws/eni.(*Node).PopulateStatusFields() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:84 +0x11e github.com/cilium/cilium/pkg/ipam.(*Node).syncToAPIServer() /home/chris/code/cilium/cilium/pkg/ipam/node.go:701 +0x1ce github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update.func2() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:256 +0x41 github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4b9 Goroutine 35 (running) created at: github.com/cilium/cilium/pkg/trigger.NewTrigger() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:129 +0x23d github.com/cilium/cilium/pkg/ipam.NewNodeManager() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:162 +0x34f github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestGetNodeNames() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:71 +0x42f runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 Goroutine 39 (running) created at: github.com/cilium/cilium/pkg/trigger.NewTrigger() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:129 +0x23d github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:251 +0x938 github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestGetNodeNames() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:91 +0x1411 runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 ``` ``` WARNING: DATA RACE Write at 0x00c0007981f8 by goroutine 81: github.com/cilium/cilium/pkg/aws/eni.(*InstancesManager).Resync() /home/chris/code/cilium/cilium/pkg/aws/eni/instances.go:185 +0xf24 github.com/cilium/cilium/pkg/ipam.NewNodeManager.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:167 +0x8f github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4b9 Previous read at 0x00c0007981f8 by goroutine 152: github.com/cilium/cilium/pkg/aws/eni.(*Node).getSecurityGroupIDs() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:248 +0x1f2 github.com/cilium/cilium/pkg/aws/eni.(*Node).CreateInterface() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:332 +0x275 github.com/cilium/cilium/pkg/ipam.(*Node).createInterface() /home/chris/code/cilium/cilium/pkg/ipam/node.go:435 +0x290 github.com/cilium/cilium/pkg/ipam.(*Node).maintainIPPool() /home/chris/code/cilium/cilium/pkg/ipam/node.go:628 +0x85d github.com/cilium/cilium/pkg/ipam.(*Node).MaintainIPPool() /home/chris/code/cilium/cilium/pkg/ipam/node.go:663 +0x82 github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:241 +0x8b github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4b9 Goroutine 81 (running) created at: github.com/cilium/cilium/pkg/trigger.NewTrigger() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:129 +0x23d github.com/cilium/cilium/pkg/ipam.NewNodeManager() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:162 +0x34f github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerManyNodes() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:578 +0x62d runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 Goroutine 152 (running) created at: github.com/cilium/cilium/pkg/trigger.NewTrigger() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:129 +0x23d github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:236 +0x523 github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerManyNodes() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:593 +0x80a runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 ``` Signed-off-by: Chris Tarazi <chris@isovalent.com> 27 May 2020, 17:07:03 UTC
699a8a5 eni: Fix data races around `Node.enis` This fixes data races found when running the unit-tests with `-race`. The mutex is to protect access to `n.enis`. ``` WARNING: DATA RACE Write at 0x00c0007b40e0 by goroutine 135: github.com/cilium/cilium/pkg/aws/eni.(*Node).ResyncInterfacesAndIPs() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:430 +0xfa github.com/cilium/cilium/pkg/ipam.(*Node).recalculate() /home/chris/code/cilium/cilium/pkg/ipam/node.go:352 +0xfb github.com/cilium/cilium/pkg/ipam.(*NodeManager).resyncNode() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:342 +0x7a github.com/cilium/cilium/pkg/ipam.(*NodeManager).Resync.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:389 +0x88 Previous read at 0x00c0007b40e0 by goroutine 46: github.com/cilium/cilium/pkg/aws/eni.(*Node).findNextIndex() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:292 +0x86 github.com/cilium/cilium/pkg/aws/eni.(*Node).CreateInterface() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:339 +0x584 github.com/cilium/cilium/pkg/ipam.(*Node).createInterface() /home/chris/code/cilium/cilium/pkg/ipam/node.go:435 +0x290 github.com/cilium/cilium/pkg/ipam.(*Node).maintainIPPool() /home/chris/code/cilium/cilium/pkg/ipam/node.go:628 +0x85d github.com/cilium/cilium/pkg/ipam.(*Node).MaintainIPPool() /home/chris/code/cilium/cilium/pkg/ipam/node.go:663 +0x82 github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:241 +0x8b github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4b9 Goroutine 135 (running) created at: github.com/cilium/cilium/pkg/ipam.(*NodeManager).Resync() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:388 +0x2c5 github.com/cilium/cilium/pkg/ipam.NewNodeManager.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:168 +0x101 github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4b9 Goroutine 46 (running) created at: github.com/cilium/cilium/pkg/trigger.NewTrigger() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:129 +0x23d github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:236 +0x523 github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerManyNodes() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:593 +0x80a runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 ``` ``` WARNING: DATA RACE Write at 0x00c000110060 by goroutine 94: github.com/cilium/cilium/pkg/aws/eni.(*Node).ResyncInterfacesAndIPs() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:439 +0xfa github.com/cilium/cilium/pkg/ipam.(*Node).recalculate() /home/chris/code/cilium/cilium/pkg/ipam/node.go:352 +0xfb github.com/cilium/cilium/pkg/ipam.(*NodeManager).resyncNode() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:342 +0x7a github.com/cilium/cilium/pkg/ipam.(*NodeManager).Resync.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:389 +0x88 Previous read at 0x00c000110060 by goroutine 92: github.com/cilium/cilium/pkg/aws/eni.(*Node).PrepareIPAllocation() /home/chris/code/cilium/cilium/pkg/aws/eni/node.go:211 +0xefc github.com/cilium/cilium/pkg/ipam.(*Node).determineMaintenanceAction() /home/chris/code/cilium/cilium/pkg/ipam/node.go:542 +0x184 github.com/cilium/cilium/pkg/ipam.(*Node).maintainIPPool() /home/chris/code/cilium/cilium/pkg/ipam/node.go:578 +0x53 github.com/cilium/cilium/pkg/ipam.(*Node).MaintainIPPool() /home/chris/code/cilium/cilium/pkg/ipam/node.go:663 +0x82 github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:241 +0x8b github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4b9 Goroutine 94 (running) created at: github.com/cilium/cilium/pkg/ipam.(*NodeManager).Resync() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:388 +0x2c5 github.com/cilium/cilium/pkg/ipam.NewNodeManager.func1() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:168 +0x101 github.com/cilium/cilium/pkg/trigger.(*Trigger).waiter() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:206 +0x4b9 Goroutine 92 (running) created at: github.com/cilium/cilium/pkg/trigger.NewTrigger() /home/chris/code/cilium/cilium/pkg/trigger/trigger.go:129 +0x23d github.com/cilium/cilium/pkg/ipam.(*NodeManager).Update() /home/chris/code/cilium/cilium/pkg/ipam/node_manager.go:236 +0x523 github.com/cilium/cilium/pkg/aws/eni.(*ENISuite).TestNodeManagerManyNodes() /home/chris/code/cilium/cilium/pkg/aws/eni/node_manager_test.go:593 +0x80a runtime.call32() /usr/lib/go/src/runtime/asm_amd64.s:539 +0x3a reflect.Value.Call() /usr/lib/go/src/reflect/value.go:321 +0xd3 gopkg.in/check%2ev1.(*suiteRunner).forkTest.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:781 +0xa0a gopkg.in/check%2ev1.(*suiteRunner).forkCall.func1() /home/chris/code/cilium/cilium/vendor/gopkg.in/check.v1/check.go:675 +0xd9 ``` Signed-off-by: Chris Tarazi <chris@isovalent.com> 27 May 2020, 17:07:03 UTC
9d97e52 test: Mend gingko-ext - fix source of flakieness in scope counter - shouldn't set global counter inside of recursive function (`calculateCounters`) and set it explicitly upon return; this fixes #11497 and potentially other flakes where the `AfterAll` gets misscheduled and causes premature deletions - add mutex around the scope counter for extra safety (doesn't appear to aid the original issue, but signifies the brittle nature of the counter variable to a reader) - remove unnecessary closure of `cs` variable that was also hard to read due to shadowing of `after` function inside the loop Signed-off-by: Ilya Dmitrichenko <errordeveloper@gmail.com> 27 May 2020, 16:59:15 UTC
e09d991 test: Disable K8sKubeProxyFreeMatrix The suite does not provide much value because of the following reasons: - It does not test the kube-proxy replacement from outside, so only bpf_sock is tested. - K8sServicesTest should provide the same coverage. - It takes 20min to run the suite. Signed-off-by: Martynas Pumputis <m@lambda.lt> 27 May 2020, 16:16:40 UTC
e015b0b test: Rename failRequest to testCurlFailFromPodInHostNetNS The new name describes better what the function supposed to test. Signed-off-by: Martynas Pumputis <m@lambda.lt> 27 May 2020, 16:16:40 UTC
1f9413c test: Add tests for externalIPs to K8sServicesTest It covers both - bpf_host and bpf_sock. Signed-off-by: Martynas Pumputis <m@lambda.lt> 27 May 2020, 16:16:40 UTC
bb21aee test: disable "Tests NodePort with L7 Policy" Test is flaky, disabling until we have a fix Signed-off-by: Maciej Kwiek <maciej@isovalent.com> 27 May 2020, 15:32:35 UTC
b5c5ca9 eni/azure: Don't perform mutating operations while instances API is unstable It is possible for the cloud APIs being used by the operator to get into a state where POST and PATCH operations are still succeeding while GET operations are failing. This can result in the operator to continously creating resources while being unable to ever synchronize the state successfully. Require a successful synchronization of all resources in order to continue performing mutating operations. Signed-off-by: Thomas Graf <thomas@cilium.io> 27 May 2020, 14:53:38 UTC
7947ac9 eni/azure: Fail if initial cloud API synchronization fails The initial synchronization is blocking but did not return the error so far. Treat the initial synchronization as critical. If that can't succeed, restart the operator to indicate the problem. IP allocation will not succeed anyway. Signed-off-by: Thomas Graf <thomas@cilium.io> 27 May 2020, 14:53:38 UTC
e2cd4b7 eni/azure: Only sync IPAM state to CiliumNode resource if cloud API sync was successful Cloud APIs can get into a bad state. This could result in the operator being restarted. If that happens and the Cloud API synchronization then failed the CiliumNode resource would have its status overwritten. This is not desirable. Require a sucessful Cloud API sync before updating the CiliumNode resource. Fixes: #11052 Signed-off-by: Thomas Graf <thomas@cilium.io> 27 May 2020, 14:53:38 UTC
60bffa4 ci: fix gke cluster lock Signed-off-by: Maciej Kwiek <maciej@isovalent.com> 27 May 2020, 13:49:51 UTC
caf1641 policy/api: Rework Rule.MarshalJSON() to ease maintainability Instead of listing all fields of Rule manually, use type embedding. Co-authored-by: André Martins <andre@cilium.io> Signed-off-by: Paul Chaignon <paul@cilium.io> 27 May 2020, 13:26:35 UTC
4fa26a4 datapath: Enable sessionAffinity for older kernels Instead of disabling sessionAffinity for E-W traffic (via bpf_sock) when running on < 5.7 kernel, enable it with a non-ideal functionality: the same service (annotated with "sessionAffinity") endpoint will be selected from all network namespaces on the host, because the same netns cookie (="0") will be returned for all namespaces. Signed-off-by: Martynas Pumputis <m@lambda.lt> 27 May 2020, 13:24:47 UTC
e225a2b contrib: bump etcd to v3.4.9 Signed-off-by: André Martins <andre@cilium.io> 27 May 2020, 13:23:58 UTC
c6e18f9 bump k8s dependencies and test to v1.18.3 Signed-off-by: André Martins <andre@cilium.io> 27 May 2020, 13:23:58 UTC
6e3cdc8 test/k8sHubble: Clean up hubble-cli and hubble-relay pods Commit 5aee7040 removed the cleanup of Cilium via the Helm generated yaml manifests, assuming the cleanup would only remove cilium agent which will be replaced by a subsequent test. However, tests which are using `global.hubble.cli.enabled` or `global.hubble.relay.enabled` in their helm options will deploy addional Hubble pods alongside cilium-agent. These additional pods have to be cleaned up, as they are not likely going to be replaced in subsequent tests. This commit introduces helpers to do the removal of hubble-cli and hubble-relay pods and invokes them in `AfterAll` in the Hubble tests. Fixes: 5aee7040b077 ("test: Don't delete and redeploy Cilium at end of each test context") Signed-off-by: Sebastian Wicki <sebastian@isovalent.com> 27 May 2020, 13:06:07 UTC
d3b8980 make: add rules to create docker images with unstripped binaries Use target-specific variable values [0] to override $NOSTRIP when building the images. [0] https://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 27 May 2020, 13:05:48 UTC
94aaf5f make: always silence echo command for container push message There's no point showing the echo command and its output, even in verbose mode.t Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 27 May 2020, 13:05:48 UTC
2b460d7 make: move docker specific targets into own file Preparatory cleanup, no functional changes. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 27 May 2020, 13:05:48 UTC
f3ab5ec vagrant: bump all vagrant box versions These include new tags for the pre-pulled images and Go is updated to 1.14.3. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> 27 May 2020, 13:02:48 UTC
4a607fb docs: Update debugging section for races/deadlocks This commit adds a debugging section for detecting data races and deadlocks in the Golang codebase. Signed-off-by: Chris Tarazi <chris@isovalent.com> 27 May 2020, 12:56:55 UTC
91a396e test(helm): Correct invalid input in kind-action There is warning message in github action as per below. ##[warning]Unexpected input 'install_local_path_provisioner' This option was removed as part of https://github.com/helm/kind-action/pull/16. Underlying kind 0.7.0+ is shipped with better local storage. I take this change to upgrade kind version to latest as well Signed-off-by: Tam Mach <sayboras@yahoo.com> 27 May 2020, 12:36:20 UTC
9ba07e3 test: Fix issue with unmanaged pod deletions hitting the timeout Fixes: #11653 Signed-off-by: Ilya Dmitrichenko <errordeveloper@gmail.com> 27 May 2020, 09:48:26 UTC
back to top