Closed
Conversation
48a2d05 to
abaf0cb
Compare
This commit adds a new flag `--enable-per-node-identity` which enables cilium to allocate a custom identity to each remote node object instead of `remote-node` ID. Previously during node discovery agents learned about all remote nodes and upserted their IPs with `remote-node` ID into their ipcaches. During policy enforcement the ipcache was then checked for the correct entry in both direct-routing and tunneling mode. With this change each node will assign or get global ID of each remote-node from identity backend and insert that into its own ipcache independently so that each node can do its own decision and upgrade of cluster nodes can be done one by one. Signed-off-by: Ondrej Blazek <ondrej.blazek@firma.seznam.cz>
Signed-off-by: Ondrej Blazek <ondrej.blazek@firma.seznam.cz>
abaf0cb to
e081e98
Compare
When per-node identities are enabled this means that entity 'remote-node' does not work anymore as each node has custom identity based on its labels. In this case user has to allow/block each node using fromNodes/toNodes section in CNPs/CCNPs. Signed-off-by: Ondrej Blazek <ondrej.blazek@firma.seznam.cz>
e081e98 to
d0dc2f0
Compare
Member
|
/test |
Member
|
@oblazek 👋 are you still working on the PR? |
Contributor
Author
yeah kind of, I am trying to figure out how to convince Paul that it is unnecessary to change anything in BPF code related to Also I will try to run the net-next e2e test locally, as something went wrong :/ |
|
This pull request has been automatically marked as stale because it |
|
This pull request has not seen any activity since it was marked stale. |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
With this one can specify this CNP and allow access only from/to specific nodes:
instead of
where all remote-nodes (as well as nodes from all remote clusters) are allowed.
This feature reuses existing global way to allocate identity just like how endpoint identities work, i.e. each cilium-agent waits for global identity allocator to be initialized and then allocates inside nodeDiscovery identity for each remote-node and saves it to a local ipcache.
When packets are sent out they still have ID 6 (remote-node), but corresponding cilium-agent knows better and checks ipcache (here for tunneling mode) where it finds the right identity. This way continuous upgrade is possible -- old nodes will find an ID == 6 and upgraded nodes might find something like
211584.During upgrade user might have to specify both:
so that old nodes as well as upgraded nodes correctly allow/block packets.
Fixes: #21615
Signed-off-by: Ondrej Blazek ondrej.blazek@firma.seznam.cz