https://github.com/cilium/cilium

sort by:
Revision Author Date Message Commit Date
78e2cf4 Prepare for v1.5.1 Signed-off by: Ian Vernon <ian@cilium.io> 09 May 2019, 16:31:47 UTC
85d5fa6 docs: Improve configmap documentation [ upstream commit 2a79e2059383ddcf0e227f3bb92565b048f40e3c ] The existing documentation makes it super easy to accidentally flush out all cilium state and break your cluster. Document that better. While we're at it, adapt some of the configmap descriptions for other options to provide more detail. Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 09 May 2019, 01:02:35 UTC
6fb026b cilium/cmd: dump bpf lb list if map exists [ upstream commit 60862e752712ed403d88d8eb4a204d80c917f275 ] Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 09 May 2019, 01:02:35 UTC
24d0dd9 test/provision: update k8s testing versions to v1.11.10 and v1.12.8 [ upstream commit fdf5191739015e63fd8378d75246268ed46f7090 ] Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 09 May 2019, 01:02:35 UTC
67d1ffd maps/ctmap: add ctmap benchmark [ upstream commit dc4a3028618efa814781b7fd5513ee136666ad8c ] ``` sudo go test -tags=privileged_tests --check.vv --check.b --check.bmem --check.f="Benchmark_MapUpdate" START: ctmap_privileged_test.go:40: CTMapTestSuite.Benchmark_MapUpdate PASS: ctmap_privileged_test.go:40: CTMapTestSuite.Benchmark_MapUpdate 500000 5415 ns/op 0 B/op 0 allocs/op OK: 1 passed PASS ok github.com/cilium/cilium/pkg/maps/ctmap 3.481s ``` Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 09 May 2019, 01:02:35 UTC
3995a84 pkg/bpf: use own binary which does not require to create buffers [ upstream commit 0b99c841811f0fc9766f887fd5745a6ccdb58ed9 ] Golang library in the binary.read function allocates buffers. As we provide the memory already pre-allocated to the binary.read we don't actually need those buffers from being allocated. For this reason we will fork the golang library and read the slice of bytes directly to the given interface. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 09 May 2019, 01:02:35 UTC
b2f4fe5 pkg/bpf: add newer LookupElement, GetNextKey and UpdateElement functions [ upstream commit 55276eea4f629a8c4080cc1a30d1386b9fbb4f54 ] We should reuse the same bpfAttrMapOpElem element for each iteration instead of creating a new structure of type `bpfAttrMapOpElem`. This avoids memory from being allocated every time we want to perform an operation in a BPF map. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 09 May 2019, 01:02:35 UTC
389cd5a pkg/{bpf,datapath,maps}: use same MapKey and MapValue in map iterations [ upstream commit 79c247a955f8c3e02f05dc172fce67e2dd268b2b ] As allocating a new MapKey and MapValue is proven to be expensive we can reuse the same MapKey and MapValue, avoiding re-allocating memory for each map iteration. The caller only needs to guarantee the Key and Value will be DeepCopies during the call back to avoid data override. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 09 May 2019, 01:02:35 UTC
043f5dd pkg/bpf: add DeepCopyMapKey and DeepCopyMapValue [ upstream commit 6483724330b59947dce0c400660561f410031830 ] As we will re use the same Key and Value over userspace map iterations we will need to have DeepCopy methods in order to DeepCopy those values when doing DumpWithCallback. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 09 May 2019, 01:02:35 UTC
0889d19 daemon: Use all labels to restore endpoint identity [ upstream commit dd7c78d67a0ea4dfcc018942814c668afea15b5d ] It was previously assumed that upon restart, Cilium would attempt to adjust the labels for existing endpoints based upon the `--labels` option of the current run of the daemon. The logic was there to resolve the new identity, wait if necessary, and so on; However, it was only filtering the previous set of security relevant labels using the new filter, rather than starting from scratch. As a result, if one only ever narrowed the set of labels, then the new identity would be calculated correctly. However, if a user ever removed labels from the filtering set, thereby expanding the set of labels that would be considered security-relevant, then the resolution logic would never take this into account. Fix it by using the total set of known labels from a previous run to calculate the new version of security-relevant labels for determining the identity of an endpoint. While we're at it, ensure that the endpoint's orchestration labels are updated to reflect the new set of security-relevant labels. Fixes: #7914 Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 09 May 2019, 01:02:35 UTC
c873f5c datapath/iptables: Warn when ipv6 modules not available [ upstream commit d3ec0ed2f9b5af5d3eb028d3a46d83ed21c77d0b ] Reduce the severity of this log from Fatal to Warning, so that if a distribution doesn't provide this functionality or builds it into their base kernel image, Cilium will complain but still run. This is similar to the fix a058705f5e9a ("datapath/iptables: Warn when iptables modules are not available"). Fixes: 5b17c993e579 ("datapath/iptables: Check iptables kernel modules") Fixes: #7928 Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 09 May 2019, 01:02:35 UTC
bbbcaf6 ipcache: print tunnel endpoint for RemoteEndpointInfo [ upstream commit a66d045d67d1357edb83767105fa4b8b67406f48 ] Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 09 May 2019, 01:02:35 UTC
11596e2 docs,examples: Fix up custom CNI for microk8s [ upstream commit 44018adc91e2e67ad1c57a200a784dddec16f512 ] Microk8s is typically installed via snap, which commonly has readonly filesystems that cause interesting problems with the standard cni-install scripts. To work around such issues, extend the microk8s examples and documentations to use a custom CNI configuration file. Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
edf8fda Docs: minor fixes to AWS EKS and AWS Metadata filtering GSGs [ upstream commit ec6a5d1410f9400cf2448052b63876fb93a47ef7 ] Signed-off-by: Dan Wendlandt <dan@covalent.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
1ed24a4 test: Do not set enable-legacy-services in v1.4 ConfigMap [ upstream commit cdb5546983101e0eed933abfe94ca933e31dd12b ] v1.4 does not support the flag. Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
d0ba534 pkg/kvstore: disable metric collection if KVStore metrics are not enabled [ upstream commit 035c36b92075918e2215c2d8eddbd6ec2e79b42d ] Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
1d9c9e3 pkg/bpf: only account for bpf syscalls if syscall metric is enabled [ upstream commit 603df325f21b545021e434263cd891332766617c ] This will make bpf syscalls to not be accounted by default as they consume lots of memory allocations. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
efa49e5 pkg/metrics: set all metrics as a no-op unless they are enabled [ upstream commit 0fec218c33ffc87d204a64e146e427b1bafdaf8f ] When initializing Cilium, all metrics will be set as a no-op. Registration as well as the real implementation of those metrics will only be enforced made once CreateConfiguration function is called with the given metric names. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
5c426ca common: add MapStringStructToSlice function [ upstream commit 2ab1496a0cb207a52c2d17037d701e99abbe3246 ] This allows to convert a map[string]struct{} into a slice of string which contains all keys from the given map. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
10f0689 pkg/metrics: set subsystems and labels as constants [ upstream commit 50332b9e3bc762d9b77b8300ec0b8fd27e22fc66 ] Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
8f87e30 pkg/option: add metrics option to enable or disable from default metrics [ upstream commit feb42877c1030f199724a15d642b3dfd0563fc5e ] This gives the ability to enable or disable metrics in cilium from the given default list of metrics in Cilium. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
93fdd78 pkg/metrics: add no-op implementations for disabled metrics [ upstream commit 0e1049b96bc09718a836e894fbe1f9166a4e24c8 ] Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
3a528df daemon: use constant SubsystemAgent from pkg/metrics [ upstream commit 1fdebd4723e36d7f46a10092bf96cd84ba4ef84f ] Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
b4f426b pkg/metrics: use interfaces for all metrics [ upstream commit d0504eea7d981973b2c2fac7af7cc774bdaf2809 ] Having interfaces will allow the ability to use different implementations for the same metric. For example, in case a user wants to disable a particular metric, that metric will have a no-op implementation of the given interface. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
3deb313 pkg/metrics: add CounterVec and GaugeVec interfaces [ upstream commit e03b20029520d67d402fa9cd04d199e18a2591bf ] As prometheus golang_library does not offer those interfaces we need to add our own specification of those interfaces. This will allow to have no-op implementations of those interfaces where they will be used when a metric is disabled. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
c18acc1 pkg/buildqueue: remove unused package [ upstream commit 43cc0d39940bd4036530f29a8c3850f16ec12503 ] It seems this package is not being used anywhere and so we can remove it. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
f07e7ab bpf: Set BPF_F_NO_PREALLOC before comparing maps [ upstream commit 6c4f620679dca4676a68be2e007b030275daa94f ] Previously, the `bpf.Map.CheckAndUpgrade` method didn't take into consideration the `--preallocate-bpf-maps` flag of the cilium-agent. Therefore, in the case of the map with `type=BPF_MAP_TYPE_HASH` and `flags=BPF_F_NO_PREALLOC(0x1)`, it was wrongly detecting that the map needs to be updated (= removed and recreated). This led to the CT maps w/o prealloc on older kernels to be destroyed each time cilium-agent has restarted. Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
2193237 examples/kubernetes: add node to cilium RBAC [ upstream commit 9ae14a903ac9b9bac94b333b7f1d81134a26b7dc ] Add node patch permissions to Cilium RBAC so that we can perform Patch operations to update the annotations in the Node structure of k8s. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
32528c0 pkg/k8s: patch node annotations [ upstream commit 76900b5baf152ff3868355db75108c0081f60ab8 ] Instead of using Update, which requires to have a copy of node identity locally we can use the patch directly to update Cilium annotations to k8s. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
acf58fc pkg/metrics: add namespace to fqdn_gc_deletions_total [ upstream commit 160f77b64618f7f9f24529e2a3d09625957d1590 ] The fqdn_gc_deletions_total misses the Cilium namespace and it's currently exporter without it. This commit fixes that omission. Fixes: 5a68e1f11dc3 ("FQDN: Add metrics for Garbage collector cleanup.") Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
fb03ccd examples/kubernetes: add node/status to cilium RBAC [ upstream commit 76d6a4a65cb3262dfa218ac9172633149ddca1ff ] This allows to patch the node status of a particular node. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
60de83f pkg/k8s: patch node status with NetworkUnavailable as false [ upstream commit 0e5e9b56d81fc2d55978d6757b8ef4543cf9e175 ] When Cilium is installed in the node we can signalize the node has its network available as Cilium is manage the connectivity between nodes. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
5d0d09e pkg/k8s: switch AnnotateNode as a controller [ upstream commit 850ff6601ac1bbfbae0ec41363da8ccbdafb8bf8 ] To make sure the node is annotated with the Cilium annotations we should run it behind a controller which will run until the update call returns successful Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ray Bejjani <ray@covalent.io> 08 May 2019, 13:40:06 UTC
3a8e2ed Typo in encryption algorithm: GMC -> GCM 07 May 2019, 21:44:54 UTC
f423031 daemon: Do not init config when running with --cmdref [ upstream commit da0bd7f87397dd9c8f75ab3ac4cb677673d60a40 ] Previously, `cilium-agent --cmdref <..>` was logging to stderr: level=info msg="Skipped reading configuration file" reason="Config File \"ciliumd\" Not Found in \"[/home/brb]\"" subsys=daemon Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ian Vernon <ian@cilium.io> 03 May 2019, 17:33:55 UTC
53b186a daemon: Set $HOME as dir to look for default config ciliumd.yaml [ upstream commit c7efbba9300cafcadb44abc17e835ec72ce514bc ] Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ian Vernon <ian@cilium.io> 03 May 2019, 17:33:55 UTC
221ae35 cli: Do not cli init when running cilium-agent [ upstream commit 00a064330031e2a3cf1e7fe9248511be5186c37f ] Previously, the cli init (`cilium/cmd/root.go:func init()`) was called regardless a process was running as cilium-agent. One side-effect of this was that config parsing params of cli were set for cilium-agent. Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ian Vernon <ian@cilium.io> 03 May 2019, 17:33:55 UTC
4255fed components: Fix cilium-agent process detection [ upstream commit 83c8e76ceb5ba525bdc657b53be4bb07a90f839d ] Previously, the `components.IsCiliumAgent()` function was not able to detect when cilium-agent was started from not the same dir as the binary, e.g. `../daemon/cilium-agent`. Fixes: b9064c5e8 ("cmd: Detect BPF map root properly") Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ian Vernon <ian@cilium.io> 03 May 2019, 17:33:55 UTC
608f30f bpf: Force preallocation for SNAT maps of LRU type [ upstream commit ef96dbd91d8028512ef9fe5680332c737b0e0ed5 ] As reported by a user and tgraf, the bpf/hashtab.c in the kernel has the following precondition when creating maps: if (lru && !prealloc) return -ENOTSUPP; Previously, the SNAT related maps set `CONDITIONAL_PREALLOC` regardless of the maps type. Thus, when `HAVE_LRU_MAP_TYPE` was detected and `--preallocate-bpf-maps=false` was passed to cilium-agent, the kernel was failing to load the map with the following error: Map object 'cilium_snat_v4_external' rejected: Unknown error 524 (524)! Fixes: 0e785f9675 ("bpf: initial bpf-based masquerading support") Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ian Vernon <ian@cilium.io> 03 May 2019, 17:33:55 UTC
39a9e07 docs: Add k8s 1.14 to supported versions for testing [ upstream commit fb25ed369e63e68ed04b0c6515cb49323279bc13 ] Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ian Vernon <ian@cilium.io> 03 May 2019, 17:33:55 UTC
216cb78 CI: Wait on create/delete in helpers.SampleContainersAction [ upstream commit 8abfb186ed93beabd5ee1d769981675ea9c918b3 ] We use this utility function in a number of test suites, cleaning up when they end. We don't wait for the deletes (or creates) to complete and this may cause a race with later tests. We now enforce a wait when creating or deleting endpoints. Signed-off-by: Ray Bejjani <ray@covalent.io> Signed-off-by: Ian Vernon <ian@cilium.io> 02 May 2019, 03:27:33 UTC
48e1ea2 endpoint: Fix bug with endpoint state metrics [ upstream commit 63cac3aaa30b1237bc3324ef799d11c2d4c17464 ] Endpoint 'state' field is not stored/restored from the filesystem across Cilium restart. However, the metrics decrement/increment code during `SetStateLocked()` attempted to ensure that the metrics are not decremented for old states during restore by checking the destination state. When commit 69b90d33381d ("endpointmanager: Avoid regenerating restoring endpoints") attempted to provide stronger guarantees about the state of an endpoint's datapath during restore, it tripped this check because it transitions from 'Restoring' state to 'Restoring' state. As a result, in normal operation after a Cilium restart the metrics for endpoints in the restoring state would get stuck at a value above zero, even after the endpoint transitions into 'Ready' state. Fixes: 69b90d33381d ("endpointmanager: Avoid regenerating restoring endpoints") Reported-by: Luan Guimarães <luang@protonmail.ch> Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 02 May 2019, 03:27:33 UTC
8b4052c datapath/iptables: Warn when iptables modules are not available [ upstream commit a058705f5e9a980fe31177a80dc7974adf391aa0 ] Before this change, lack of iptables modules made Cilium fail with a fatal error. However, it seems that some Linux distibutions (i.e. CoreOS Container Linux) do not ship all netfilter modules we look for. Fixes: 5b17c993e579 ("datapath/iptables: Check iptables kernel modules") Ref: #7892 Signed-off-by: Michal Rostecki <mrostecki@opensuse.org> Signed-off-by: Ian Vernon <ian@cilium.io> 02 May 2019, 03:27:33 UTC
f02018e kubernetes/node-init: delete cilium running before kubelet restart [ upstream commit 86357c38423f070293bd377797ef5c96628cecb7 ] We still need to delete Cilium in case it started before we have changed kubelet configuration. This prevents Cilium from pre-allocating all IP addresses managed by cbr0. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
f6fe733 kubernetes/node-init: add more aggressive node-init script [ upstream commit 5bb5b90971c74beb98b0f700cfa2949f122c7d36 ] As node-init script is set with an env variable we can not use another environment variable to enable or disable the automatic deletion of pods managed by kubenet. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
db57c56 kubernetes/node-init: Install cilium cni config before restart kubelet [ upstream commit c24e9d520b62c3639caef4b69bac8a6f7932ea01 ] If the CNI configuration is installed afterwards there might be a race where scheduled pods might be managed by kubenet instead of Cilium. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
067ebc5 kubernetes/node-init: do not run script on an already setup node [ upstream commit e6ad6169dc4cdef24f093a4706d002613d8f5473 ] If the DaemonSet is accidentally removed it can be re-added without fearing the script will be executed again. However, if the node is restarted, or upgraded, the node-init script might need to be ran again which node-init will detected based on the existence of a file stored in the `/tmp` directory. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
de0caa9 kubernetes/node-init: run cilium-node-init in hostNetwork [ upstream commit 493723f25d024d7cd1bcc488eaa34862b8e3dbeb ] cilium-node-init does not depend on any CNI plugin to be setup so we can run it on hostNetwork. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
5cde8e1 kubernetes/node-init: run cilium-node-init on any tainted node [ upstream commit 5540c5b5bb6c5f124f29faf75aa1cf5500117c11 ] the node-init script is essential for the cluster to run with cilium therefore it should run on any tainted node. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
e1a4d8e daemon: Replace viper.BindEnv with option.BindEnvWithLegacyEnvFallback [ upstream commit ae233a9412a7203aa1e16a7b1daf041840196f67 ] As mentioned in the previous commit, the `viper.BindEnv` does not support multiple ENV bounds for the same option, so we work around this limitation with `option.BindEnvWithLegacyEnvFallback`. The ENV binding order is the following: 1. Bind the ENV param derived from the option name if it's non-empty. 2. Bind the legacy ENV param otherwise. Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
4e4d426 option: Add BindEnvWithLegacyEnvFallback function [ upstream commit 0250ccc12913178a9572bd64ac833cda4c819b48 ] This commit introduces `BindEnvWithLegacyEnvFallback` function which is used to work around the `viper.BindEnv` limitation: only one ENV param can be bound for a given option. This limitation prevents from some ENV params introduced for the backward compatibility in `daemon/deamon_main.go` being usable. E.g. A value of `CILIUM_GLOBAL_CT_MAX_TCP` is actually never used. Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
7d4606f policy: add debug log when error from `updateEndpointsCaches` is non-nil [ upstream commit d545ecccfe29b94a4ca57444eb2380b2c2ae5936 ] This error is harmless for the most part, but means that an endpoint has been deleted or has a nil identity while we are still trying to update the caches in the rules for it, which is not optimal functionality. Signed-off by: Ian Vernon <ian@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
fbc15d6 policy: ensure Endpoint lock held while accessing identity [ upstream commit b72f8b46c47e9063a1795093a0f7abe8aba55750 ] Because the endpoint identity is mutable, we need to hold the lock for the endpoint while we are updating the caches in the rules which specify what identities are selected by that rule. The endpoint's identity may change while we are updating the caches, which could result in an identity being left behind in said caches. Also, the endpoint's identity may be set to a nil value, which would result in a panic, since fields within the identity are dereferenced to access the identity's labels when the caches within the rules are updated. The locks which check liveness with the endpoint are used here because if the endpoint is being deleted, we don't need to update the caches within the rules anymore for it. Also, when an endpoint is deleted, its security identity is set to `nil` in `pkg/endpoint.go:LeaveLocked`. Read-locking is needed because no updating of the security identity is performed here. There is still a possibility that the endpoint's identity could be nil while it is 'alive', as the endpoint is inserted into the endpointmanager before its identity is allocated in `daemon/endpoint.go:createEndpoint`. This is OK, as once an endpoint's identity is changed, another regeneration will occur for it, which will populate the caches within the rules with its new identity. This case, while possible, is not probable. Signed-off by: Ian Vernon <ian@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
bedb382 policy: add RLockAlive, RUnlock to Endpoint interface [ upstream commit 2449ab6a47128f01fd052adb6c7d59a7d56ea283 ] This is done to ensure that the Endpoint's security identity is not concurrently accessed by threads which update the caches in the rules and threads which change the identity of the endpoint itself. Signed-off by: Ian Vernon <ian@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
f7b4116 endpoint: fix comment for GetSecurityIdentity [ upstream commit e6e5133c6a06bd50f80ae5f7ec4fb19fd83e4ef4 ] Signed-off by: Ian Vernon <ian@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 30 April 2019, 17:04:39 UTC
e453771 examples/kubernetes: fix generated files Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
45933ad ginko: adjust timeout to something more appropriate [ upstream commit b540ac6dc2788d6e9d65043a2ce9419141aa1a34 ] Looking at the Cilium 1.5 main CI runs under ... https://jenkins.cilium.io/view/Cilium-v1.5/job/cilium-v1.5-standard/ ... the timeout of 1h 15 min is way too short. Runs did finish successfully in the range of 1h 10min, 1h 13min, for example, but others got aborted at 1h 16min. Increase it to 110 min so that we hit aborts less frequent, only if something is really off. Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
a8fed0b test: make function provided to WithTimeout run asynchronously [ upstream commit 149998951b493fea232dbe24d57c38f4998c9b54 ] The provided function was previously ran in the same goroutine as that which would fail upon timeout. If the function itself took longer than the amount of time in the timeout, or got stuck, the timeout would never get hit because it was running in the same goroutine as the function itself. So, run the function in a goroutine and return the result via a channel, which we can select upon. If the timeout is hit before the function exits, `WithTimeout` will now return an error as expected instead of waiting forever. Signed-off by: Ian Vernon <ian@cilium.io> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
cd6827e docs: Add upgrade guide from >=1.4.0 to 1.5 [ upstream commit 2dcd58c504b20ed3c96e34502b2a82d2bc2ae35c ] Mention about possible breakage of established connections due to the change in the CT TCP maps and how to avoid it. Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
5f8afbb nodediscovery: Try to register node forever [ upstream commit 40fb2b59814fb2267102547e0c2dd2123554fd91 ] Restarting the agent is very unlikely to help succeed so just keep on restarting. Signed-off-by: Thomas Graf <thomas@cilium.io> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
9b7b48f docs: Mention enable-legacy-services flag in upgrade docs [ upstream commit 85011f5284b111abf900badb1e1382ba1640e3bf ] Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
1650e9f operator: Add more logging to see where the operator blocks on startup [ upstream commit 7881196da7be4d8b90458098f9cdcdbc5f3d0296 ] Signed-off-by: Thomas Graf <thomas@cilium.io> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
7e12c74 operator: Start health API earlier [ upstream commit cc66f0a90324de7ef2085359babf57da57c7e792 ] This avoids getting the operator killed while waiting on k8s apiserver connectivity Signed-off-by: Thomas Graf <thomas@cilium.io> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
803a323 doc: fix up Ubuntu apt-get install command [ upstream commit c60d1100d3240aaffe489db3770de6d6254ad711 ] The libmnl package in Ubuntu/Debian packaging system is named as `libmnl0`, not `libmnl`. We should install `libmnl-dev` or `libmnl0` instead: ``` $ sudo apt install libmnl-dev libmnl0 Reading package lists... Done Building dependency tree Reading state information... Done libmnl0 is already the newest version (1.0.3-5). The following NEW packages will be installed: libmnl-dev 0 upgraded, 1 newly installed, 0 to remove and 68 not upgraded. Need to get 11.0 kB of archives. After this operation, 88.1 kB of additional disk space will be used. Do you want to continue? [Y/n] ``` Otherwise apt reports error message `E: Unable to locate package libmnl`. Signed-off-by: Liu Qun <517067180@qq.com> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
caf637c endpoint: do not serialize JSON for EventQueue field [ upstream commit 3d21702b31a0e5c32f589a8af39dca7c0c0b9736 ] This field's lifecycle should be managed by the agent, and should not persist across cilium-agent restarts. Signed-off by: Ian Vernon <ian@cilium.io>: Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
d79682f contrib: fix up check-fmt.sh [ upstream commit fe14d1d35349cf63549adee4cd20755eaa11a768 ] * Set the pipefail option so that the script fails when a piped command fails. This fixes the issue where `gofmt` was not actually run in the `make jenkins-precheck` target, as the commad to get all files to run `gofmt` failed when `./daemon/bindata.go` was not found, but the script itself did not exit with a non-zero return code. Said file was not able to be found in said target because `make` had not been ran yet. As a result, the `find` command silently failed, which resulted in the contents of the `diff` variable being empty, which the script assumed meant that there were no violations of `gofmt`. * Use bash as the shell for the script to be able to use the pipefail option. With these changes, the `jenkins-precheck` target should correctly catch `gofmt` violations on Jenkins. Signed-off by: Ian Vernon <ian@cilium.io> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
6da61f7 operator: add ca-certificates to operator [ upstream commit 16bc8409d0309afba297b83cf62581c1a8344a5d ] As the operator is running based on a scratch image it does not contain any ca-certificates installed which prevents cilium-operator from verifying if a TLS connection is secure. We will use the ca-certificates available from the alpine:3.9.3 and use those ones in production. Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
ae861bd docs: Document how to get started with MicroK8s [ upstream commit 3b7d8bf831349e556087ec65ff98ed6de521bb2c ] Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
666d967 examples: Generate microk8s YAMLs [ upstream commit d00be86f87119fb9f21bf8dd831c7126c3a7d01a ] Generate the microk8s YAMLs for each kubernetes version. Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
830701d examples: Add YAML generation for microk8s [ upstream commit 70c6332a88dd5f557a7df1d692b6e502f0766d0a ] Introduce YAMLs generation for microk8s[0], which uses containerd as the runtime by default, but with socket paths determined via the snap filesystem rather than directly under /var/run. [0] https://microk8s.io/ Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
acb34db contrib: Simplify microk8s prepull YAML [ upstream commit 38511bf6998d0531db17fd9f6076a16077e98404 ] This YAML depended upon docker being the runtime for microk8s, which is no longer the case in newer (>=v1.14) versions. Adjust it to just pull via the standard mechanism rather than invoking docker. Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: André Martins <andre@cilium.io> 30 April 2019, 12:25:04 UTC
e47b37c Prepare for v1.5.0 Signed-off by: Ian Vernon <ian@cilium.io> 26 April 2019, 03:21:47 UTC
9e1b804 Prepare v1.5.0-rc6 Signed-off by: Ian Vernon <ian@cilium.io> 24 April 2019, 20:53:54 UTC
11f2de8 iptables: Correctly remove Cilium chains when IPv6 is disabled [ upstream commit e4849ea9046093751bb9fdf311f93d85d91386b8 ] The Cilium chain removal in RemoveRules() was made dependent on IPv6 being enabled, this is incorrect and leads to the following error when Ipv6 is disabled: ``` level=warning msg="iptables: Chain already exists." subsys=iptables level=error msg="Error while initializing daemon" error="cannot add custom chain CILIUM_OUTPUT: exit status 1" subsys=daemon ``` Fixes: 5b17c993e57 ("datapath/iptables: Check iptables kernel modules") Signed-off-by: Thomas Graf <thomas@cilium.io> Signed-off-by: Joe Stringer <joe@cilium.io> 24 April 2019, 15:09:00 UTC
1cf8902 k8s: Fix unformatted go source code [ upstream commit c6548df941b48462441c653c3531fdff6f49dd56 ] make complains: ``` Unformatted Go source code: ./pkg/k8s/json_patch.go Signed-off-by: Joe Stringer <joe@cilium.io> 24 April 2019, 15:09:00 UTC
ffc84af examples: Do not bind mount /sbin/modprobe [ upstream commit e2b3db3bc33fcffa70fc4c5e1a7955d56f664cc9 ] The host's modprobe might be dynamically linked which running from a container might not work as expected. E.g.: [ 1112.449703] modprobe[10018]: segfault at 1a010 ip 00007f31ba4598b8 sp 00007fff6848d1d8 error 4 in libc-2.27.so[7f31ba2ef000+1e7000] (Experienced on GKE) Fixes: 464978c0 ("k8s: Add SYS_MODULE capability, module paths") Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Joe Stringer <joe@cilium.io> 24 April 2019, 15:09:00 UTC
fa09137 Update cilium-runtime image [ upstream commit a12e489d125e390b2f133ef9ca418b64168f5435 ] The updated image includes `modprobe`. Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Joe Stringer <joe@cilium.io> 24 April 2019, 15:09:00 UTC
047d7b0 contrib: Install modprobe to cilium-runtime image [ upstream commit 03414984883ee94c796b80971b72fd9f4708e7fd ] Currently, the cilium-agent relies on `modprobe` to install missing kernel modules. The `kmod` package for Ubuntu installs the `modprobe` executable and we currently do not ship it with the Cilium container image which can lead to the following error (reported by a user): ``` IPv6 is enabled and ip6tables modules could not be initialized" error="could not load module ip6_tables: exec: \"modprobe\": executable file not found in $PATH" subsys=iptables ``` Fixes: e45c4b2 ("datapath/iptables: Check iptables kernel modules") Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Joe Stringer <joe@cilium.io> 24 April 2019, 15:09:00 UTC
f0330a9 k8s: fix panic of closed channel [ upstream commit 218f4dc5ff9019d78b896e452a93c2491854ee6a ] The channel was previously closed and it does not need to be re-closed again. Fixes: a63342e75944 ("k8s: Fix leak of k8s controller on kvstore connect & disconnect") Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Joe Stringer <joe@cilium.io> 24 April 2019, 15:09:00 UTC
8257ba7 operator: GC nodes from existing CNPs [ upstream commit 0cd1be0e64dc848ea9db83a90e6e2564a4a22f9f ] As nodes can be removed from the cluster their status in the CNP can be left behind. The operator will be checking if nodes are still running and if not, they will be removed from the CNP Node Status. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 23 April 2019, 07:01:38 UTC
371ae43 contrib: Fix cherry-pick script [ upstream commit d1c258aa45ecd28920102193e7d42ed1c4dceec8 ] This script doesn't work currently because it invokes bash-only features (BASH_SOURCE) when the top of the script states it's supposed to be a generic 'sh' script. Fix it by relying on bash. Fixes: 65b001f43779 ("contrib: Exit early if no git remote is found") Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 23 April 2019, 07:01:38 UTC
8c0ddf5 daemon: Log duration of service restoration and migration [ upstream commit b2f70aaf6fc28789d62fa5674f7f5053c351380b ] Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ian Vernon <ian@cilium.io> 23 April 2019, 07:01:38 UTC
4785644 operator: GC leftover nodes in the kvstore [ upstream commit cc11f4d97ed51a9ef2046366487e7ddacdb98dde ] If the operator stops running and at the same time nodes are evicted from the cluster, those nodes will never be removed from the kvstore as the operator is the entity that handles the synchronization of nodes from k8s to the kvstore. With this change the operator will remove the nodes from the KVStore that are no longer running in a k8s cluster. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 23 April 2019, 07:01:38 UTC
00c9339 kvstore/store: add SharedKeysMap() method [ upstream commit 24309166d9b7b89e01a3d79b64f46df603577f1d ] SharedKeysMap will be used to access the SharedKeys map without holding the lock of the shared map. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 23 April 2019, 07:01:38 UTC
3263d8b pkg/kvstore: refactored GetKeyName() to own interface [ upstream commit a3b8f7d50d4366ad42fd0ee8efd933b0d95e8a32 ] As DeleteLocalKey only requires the name of the Key it does not actually need a structure to implement the LocalKey interface. This allows to delete LocalKeys based on the name. Signed-off-by: André Martins <andre@cilium.io> Signed-off-by: Ian Vernon <ian@cilium.io> 23 April 2019, 07:01:38 UTC
839b826 test: Add test for service migration between legacy and v2 [ upstream commit 0581293e7a4176258e196a724a027b6bdd60799a ] The test is based on a dummy TCP listener and sender [1] which panic if recv or send fails. Running those in containers make a container to restart if there were any failures. So, by inspecting restart count we can see whether there were any interruptions in established connections after we migrate between legacy and v2 services. We set bpf-ct-global-tcp-max=1000000 and preallocate-bpf-maps=true to make sure that CT does not get recreated due to different size to avoid losing connections. [1]: https://github.com/cilium/migrate-svc-test Signed-off-by: Martynas Pumputis <m@lambda.lt> Signed-off-by: Ian Vernon <ian@cilium.io> 23 April 2019, 07:01:38 UTC
48c9930 istio: Update to release 1.1.3 [ upstream commit 08d1cfd851070e22a2b9d3c52a192653a06cba34 ] Update the CI and the getting started guide to Istio 1.1.3. Signed-off-by: Jarno Rajahalme <jarno@covalent.io> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
c4f761c Check for dup container id before ep creation [ upstream commit 3c71bc7b029899ad2c88ac82c55632e6c0d876e9 ] Endpoint creation fails if there already exists endpoint with the same ContainerID. Signed-off-by: Maciej Kwiek <maciej@covalent.io> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
00512c3 examples: do not specify "type: Directory" for mounting `/lib/modules` [ upstream commit f417f31e15501f7130fdb4db8c8ebd80cc42270d ] On some distributions, the path to `/lib/modules` is a symlink, not a directory. In such cases, deploying the Cilium DaemonSet with "type: Directory" for the volumeMount for mounting `/lib/modules` will fail because a symlink is not a directory. Such cases will result in the following errors when deploying the Cilium DaemonSet: ``` Warning FailedMount 1m (x9 over 3m) kubelet,<IP redacted> MountVolume.SetUp failed for volume "lib-modules" : hostPath type check failed: /lib/modules is not a directory ``` To resolve this issue, do not specify the type of the volumeMount. If `/lib/modules` is a symlink, the actual path will be resolved and the volume will be mounted correctly. This was tested manually. Fixes: #7785 Signed-off by: Ian Vernon <ian@cilium.io> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
409ff03 docs: Update kubernetes compatibility list [ upstream commit 9cfd5303cfc60c45fffd4a823709ef1309e9046b ] Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
3753ed3 docs: Update urllib3 dependency to address CVE-2019-11324 [ upstream commit 27483b9277fd41b06735c558eff7eb8508e2c39f ] Update urllib3 dependency to 1.24.2 to address CVE-2019-11324 (https://nvd.nist.gov/vuln/detail/CVE-2019-11324). Note that this only affects the documentation build process, which requires the manual steps for installing the required Python dependencies as documented in Documentation/contributing.rst. We do not depend on urllib3 otherwise. Signed-off-by: Jarno Rajahalme <jarno@covalent.io> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
ae9ef6a bugtool: Add tests for filepath walk [ upstream commit e92cf2f2155153ba6472e12d61fe8abcde6336c6 ] Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
92d78b5 bugtool: Copy symlinks as-is [ upstream commit 0797609dfd95b84cd98892a803ffa9c4fe2247b9 ] If a symlink can't be followed, then just copy the symlink itself rather than the underlying file. Fixes: #7774 Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
0f7927a bugtool: Be more resilient to file errors [ upstream commit bd194665adf17c9be2bb5ea5323b6caa7de54dc9 ] When walking paths, if there are any problems while attempting to open or read the file, skip that file and continue; only fail out on creation of the archive if there is an error after writing the header, ie specifically when copying the content of the file into the tar. Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
9353ec3 bugtool: Factor out path walk function [ upstream commit 5a9d6b514932f8787647acf63b1c13511eef944f ] By factoring out the walk function into a receiver function on an object, we can mock it out and unit test. Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
b1b6a9b bugtool: Fix up newline characters in error messages [ upstream commit 4011e5af7e90fc20b3f163dee281cc1c6ca41ec2 ] Prior to this commit, multiple error messages would often get concatenated together rather than printed once per line. Fix this up by ensuring that the `Fprintf()` calls end with a newline character. Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
f560bab docs: clarify kernel version for BPF based masquerading [ upstream commit 20a824066380335b2fb398bbfcdbd5f53e4ebd1c ] Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
858eb7b loader: Improve logging of template build failures [ upstream commit 6465c2aac3efc2e49349578836e2917812fc4350 ] Signed-off-by: Joe Stringer <joe@cilium.io> Signed-off-by: Joe Stringer <joe@wand.net.nz> 22 April 2019, 21:19:22 UTC
826d75a Prepare for v1.5.0-rc5 Signed-off by: Ian Vernon <ian@cilium.io> 19 April 2019, 00:18:12 UTC
9c4b907 test: Allow Cilium 1.4 to be run with K8s 1.14 [ upstream commit 2cdda25c5d1cd6239f0427f98e8fffaa4fa675ea ] This commit makes it possible to run upgrade tests on k8s 1.14 with Cilium 1.4. Signed-off-by: Martynas Pumputis <m@lambda.lt> 19 April 2019, 00:02:12 UTC
back to top