-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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.14: k8s: Restrict configuring reserved:init policy via CNP #28038
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ upstream commit f48a4d7 ] Change the expected test for policies that apply to reserved:init pod to assume that CCNP is used to configure this type of policy. Signed-off-by: Joe Stringer <joe@cilium.io>
[ upstream commit c45b084 ] Typically if the policy target EndpointSelector does not include a namespace, parsing will inject the namespace to ensure that only Pods within the same namespace can be selected. Furthermore, for peer EndpointSelectors there is a similar behaviour where ingress or egress is allowed only to the current namespace unless the user specifies which namespace the peer exists in. However, these defaults did not previously apply to policies that select the reserved:init Identity, since this Identity is not inherently namespaced, and hence automatically injecting the namespace would cause the policy to no longer match this Identity. The reserved:init Identity was introduced in order to allow a different policy to apply to Pods as they start up, iff the full Identity of those workloads cannot be determined when they are first connecting to the Cilium network (CNI ADD). In order to support this special reserved:init Identity, various exceptions were introduced into CiliumNetworkPolicy parser that removed the automatic insertion of namespace into the policies when there were label matches for the reserved:init namespace. The awkward part about this abstraction early on was that there was no way to directly associate the reserved:init Identity to any specific Kubernetes namespace, and yet CiliumNetworkPolicy was always inherently tied to a specific namespace. Since the introduction of the reserved:init Identity, CiliumClusterwideNetworkPolicy was also introduced, which is a much better fit for the ability to select endpoints that are not inherently namespaced. This patch deprecates support for applying network policies for the reserved:init Identity via CiliumNetworkPolicy in favour of CiliumClusterwideNetworkPolicy. As a benefit, this allows us to simplify the logic that applies the namespaces into the policies and reduce the likelihood of misconfigurations. Signed-off-by: Joe Stringer <joe@cilium.io>
[ upstream commit 642768d ] Extend the CNP validation (including preflight checks) to warn users that they are using a policy configuration that is no longer supported. Signed-off-by: Joe Stringer <joe@cilium.io>
maintainer-s-little-helper
bot
added
backport/1.14
This PR represents a backport for Cilium 1.14.x of a PR that was merged to main.
kind/backports
This PR provides functionality previously merged into master.
labels
Sep 8, 2023
/test-backport-1.14 |
michi-covalent
approved these changes
Sep 8, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎩
maintainer-s-little-helper
bot
added
the
ready-to-merge
This PR has passed all tests and received consensus from code owners to merge.
label
Sep 8, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
backport/1.14
This PR represents a backport for Cilium 1.14.x of a PR that was merged to main.
kind/backports
This PR provides functionality previously merged into master.
ready-to-merge
This PR has passed all tests and received consensus from code owners to merge.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Once this PR is merged, you can update the PR labels via:
or with