-
Notifications
You must be signed in to change notification settings - Fork 3.4k
v1.11 backports 2022-11-09 #22073
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v1.11 backports 2022-11-09 #22073
Conversation
[ upstream commit 34127e6 ] The KPR guide contains the autoDirectNodeRoutes option in most Helm commands, but that option isn't a requirement for KPR subfeatures and may even fail if Kubernetes nodes are not L2-connected. Signed-off-by: Paul Chaignon <paul@cilium.io>
[ upstream commit e121b5d ] Over time we've been accumulating some knowledge about particular Linux distributions and groups of distributions that has gone largely unnoted in our documentation. A good understanding and implementation of these considerations are extremely important to ensure that Cilium runs properly, so this commit attempts at adding a subsection containing this information. Signed-off-by: Bruno M. Custódio <brunomcustodio@gmail.com> Signed-off-by: Paul Chaignon <paul@cilium.io>
34a8a05
to
a791ad5
Compare
The unit test included in #21526 somehow triggers a nil pointer deference in |
[ upstream commit 4c9c1d3 ] This commit fixes an edge case in the `NodesPodCIDRManager`. If there were any nodes on operator startup which have no PodCIDRs, the operator would sometimes assign PodCIDRs to these nodes which have already been allocated to other nodes. The operator assumed that when `k8sCiliumNodesCacheSynced` closes, all node events have been processed. And it proceeds to call `Resync` on the `nodeManager`. The `NodesPodCIDRManager` will queue any nodes without PodCIDRs to be allocated once the `canAllocatePodCIDRs` variable is set. This variable is set by the `Resync`. So, the assumption/expected behavior is that the `NodesPodCIDRManager.Update` function has been called for all nodes in the cache before `Resync` is called. However, this wasn't the case. The `startSynchronizingCiliumNodes` function starts the informer and connects the nodeManager to it. But instead of handling the events at once, the callbacks enqueue the events, to be handled by a separate go routine. This means that `k8sCiliumNodesCacheSynced` is closed once all of the node events are enqueued, not when they have been processed by the `nodeManager`. This commit fixes this behavior by processing all events at once in the informer callbacks until the full sync is complete, at which point we will switch over to using the workqueue. Fixes: cilium#21482 Signed-off-by: Dylan Reimerink <dylan.reimerink@isovalent.com> Signed-off-by: Paul Chaignon <paul@cilium.io>
[ upstream commit b3cd077 ] Clarify that Azure CNI chaining is different than Azure CNI Powered by Cilium. Signed-off-by: Will Daly <widaly@microsoft.com> Signed-off-by: Paul Chaignon <paul@cilium.io>
a791ad5
to
a136494
Compare
/test-backport-1.11 Job 'Cilium-PR-K8s-GKE' failed: Click to show.Test Name
Failure Output
If it is a flake and a GitHub issue doesn't already exist to track it, comment |
autoDirectNodeRoutes
where not needed #21831 -- docs: RemoveautoDirectNodeRoutes
where not needed (@pchaigno)Documentation/operations/system_requirements.rst
.Once this PR is merged, you can update the PR labels via: