Skip to content
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

Fix propagation of namespace labels to CEP labels #27831

Merged
merged 4 commits into from Aug 31, 2023

Conversation

tklauser
Copy link
Member

@tklauser tklauser commented Aug 30, 2023

Currently (*namespaceUpdater).oldLabels is never updated with the namespace's labels after they have been synced to endpoints. This can e.g. lead to updates mistakenly being skipped. This in turn can lead to situations as described in #27626 where namespace derived labels are not removed from CEPs when the corresponding label is removed from the namespace.

Fix this by always updating (*namespaceUpdater).oldLabels on successful endpoint label update.

Review by commit: The first two commits are preparatory cleanups. The third commit is the actual bug fix. The fourth commit is a small optimization.

Fixes: #27626

@tklauser tklauser added kind/bug This is a bug in the Cilium logic. sig/k8s Impacts the kubernetes API, or kubernetes -> cilium internals translation layers. release-note/bug This PR fixes an issue in a previous release of Cilium. needs-backport/1.11 needs-backport/1.13 This PR / issue needs backporting to the v1.13 branch needs-backport/1.14 This PR / issue needs backporting to the v1.14 branch labels Aug 30, 2023
@tklauser tklauser requested a review from aanm August 30, 2023 15:54
@tklauser tklauser requested a review from a team as a code owner August 30, 2023 15:54
@tklauser
Copy link
Member Author

/test

@maintainer-s-little-helper maintainer-s-little-helper bot added this to Needs backport from main in 1.12.14 Aug 30, 2023
@maintainer-s-little-helper maintainer-s-little-helper bot added this to Needs backport from main in 1.14.2 Aug 30, 2023
@maintainer-s-little-helper maintainer-s-little-helper bot added this to Needs backport from main in 1.13.7 Aug 30, 2023
@tklauser tklauser force-pushed the pr/tklauser/cep-namespace-labels-sync branch from c2c5901 to dd2a6d4 Compare August 30, 2023 15:58
…esInit

The default value of an atomic.Bool is already false.

Signed-off-by: Tobias Klauser <tobias@cilium.io>
Avoid under- or overallocating the map and thus increasing memory
pressure.

Signed-off-by: Tobias Klauser <tobias@cilium.io>
@tklauser tklauser force-pushed the pr/tklauser/cep-namespace-labels-sync branch from dd2a6d4 to ff76eb8 Compare August 30, 2023 15:58
@tklauser
Copy link
Member Author

/test

Currently (*namespaceUpdater).oldLabels is never updated with the
namespace's labels after they have been synced to endpoints. This can
e.g. lead to updates mistakenly being skipped. This in turn can lead to
situations as described in #27626
where namespace derived labels are not removed from CEPs when the
corresponding label is removed from the namespace.

Fix this by always updating (*namespaceUpdater).oldLabels on successful
endpoint label update.

Fixes: 83391b4 ("pkg/k8s: ignore namespace events that do not change labels")

Signed-off-by: Tobias Klauser <tobias@cilium.io>
This avoids unnecessarily filtering old labels on successive calls to
(*namespaceUpdater).update.

Signed-off-by: Tobias Klauser <tobias@cilium.io>
@tklauser tklauser force-pushed the pr/tklauser/cep-namespace-labels-sync branch from ff76eb8 to 45f13a1 Compare August 30, 2023 16:13
@tklauser
Copy link
Member Author

Force pushed to fix a linter warning about unnecessary assignment to _.

@tklauser
Copy link
Member Author

/test

@tklauser tklauser removed the request for review from aanm August 31, 2023 16:23
@tklauser tklauser added the ready-to-merge This PR has passed all tests and received consensus from code owners to merge. label Aug 31, 2023
@tklauser tklauser merged commit e7ca5da into main Aug 31, 2023
245 of 344 checks passed
@tklauser tklauser deleted the pr/tklauser/cep-namespace-labels-sync branch August 31, 2023 16:24
@jibi jibi mentioned this pull request Sep 4, 2023
16 tasks
@jibi jibi added backport-pending/1.14 The backport for Cilium 1.14.x for this PR is in progress. and removed needs-backport/1.14 This PR / issue needs backporting to the v1.14 branch labels Sep 4, 2023
@tklauser tklauser removed needs-backport/1.11 needs-backport/1.13 This PR / issue needs backporting to the v1.13 branch labels Sep 5, 2023
@maintainer-s-little-helper maintainer-s-little-helper bot removed this from Needs backport from main in 1.12.14 Sep 5, 2023
@maintainer-s-little-helper maintainer-s-little-helper bot moved this from Needs backport from main to Backport pending to v1.14 in 1.14.2 Sep 5, 2023
@maintainer-s-little-helper maintainer-s-little-helper bot moved this from Needs backport from main to Backport pending to v1.14 in 1.14.2 Sep 5, 2023
@maintainer-s-little-helper maintainer-s-little-helper bot removed this from Needs backport from main in 1.13.7 Sep 5, 2023
@jibi jibi added backport-done/1.14 The backport for Cilium 1.14.x for this PR is done. and removed backport-pending/1.14 The backport for Cilium 1.14.x for this PR is in progress. labels Sep 7, 2023
@michi-covalent michi-covalent moved this from Backport pending to v1.14 to Backport done to v1.14 in 1.14.2 Sep 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport-done/1.14 The backport for Cilium 1.14.x for this PR is done. kind/bug This is a bug in the Cilium logic. ready-to-merge This PR has passed all tests and received consensus from code owners to merge. release-note/bug This PR fixes an issue in a previous release of Cilium. sig/k8s Impacts the kubernetes API, or kubernetes -> cilium internals translation layers.
Projects
No open projects
1.14.2
Backport done to v1.14
Development

Successfully merging this pull request may close these issues.

k8s:io.cilium.k8s.namespace.labels.* are not removed from CEP when the label is removed from NS
3 participants