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

feat(vm-route-forge): add ebpf route watcher #292

Merged
merged 15 commits into from
Aug 30, 2024

Conversation

yaroslavborbat
Copy link
Member

@yaroslavborbat yaroslavborbat commented Aug 15, 2024

Description

Add the ebpf route watcher.

Insert ebpf hooks to run in kernel space before executing the fib_table_insert and fib_table_delete system calls and generate a route change event and save it on the FIFO map.

Our watcher in the user space will read and delete events from the bpf map. Thanks to these events, he will be able to identify the virtual machines that need to be queued for route synchronization.

Why do we need it, and what problem does it solve?

The netlink.RouteSubscribe consumes too much processor resources. We need an alternative way to receive route change events.

What is the expected result?

Checklist

  • The code is covered by unit tests.
  • e2e tests passed.
  • Documentation updated according to the changes.
  • Changes were tested in the Kubernetes cluster manually.

Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
LopatinDmitr
LopatinDmitr previously approved these changes Aug 26, 2024
Signed-off-by: yaroslavborbat <[email protected]>
Signed-off-by: yaroslavborbat <[email protected]>
@yaroslavborbat yaroslavborbat merged commit ca67190 into main Aug 30, 2024
1 check passed
@yaroslavborbat yaroslavborbat deleted the feat/vm-route-forge/ebpf branch August 30, 2024 08:27
universal-itengineer pushed a commit that referenced this pull request Sep 11, 2024
Features
api: adjust image size (cbb37c1)
api: set tag for dvcr images (cf71a98)
cdi: remove service-monitor (#328) (621baf2)
controllelr: add gc for resources (#303) (a14f2e8)
controller: add tasks with dlv (#321) (83fa3c6)
cvi: create from vd (#352) (e42e28c)
module: add base control-plane alerts (#345) (c66c4fd)
vd: deny iso source (77bcad1)
vd: override virtualdisk's pvc parameters via StorageClass annotations (#351) (fa37881)
vdsnapshot: add the new controller for the virtual disk snapshot (e813124)
vd: support filesystem mode (#300) (4b147f7)
vd: support filesystem mode (#327) (754c4a7)
vi: add new storage type - kubernetes (#298) (51e2a40)
vi: create from vd (#354) (f4d4b6d)
vm-route-forge: add ebpf route watcher (#292) (ca67190)
vm: add metrics (#333) (c28df0a)
vmclass: size policies vaidation hook (#344) (5f585c4)
vmop: implement conditions, use new reconciler style (#258) (13f6a9d)

Bug Fixes
cvi: fix cleanup for resources (#363) (1f13148)
templates: add missed symbol (#318) (f30cd69)
vd: ensure last transition time for conditions (b39487a)
vd: fix panic if pvc not found (#349) (fd4b0af)
vd: remove pv protection (aa489c4)
vd: set validator warnings instead of errors (b173b08)
vm-route-forge: add check to ensure VM host node is identified (#356) (4077584)
vmbda: fix sa rules (9367162)
vmclass: revert last transition time to condition builder (db3f272)
vm: fix panic with nil labelselector (#355) (8df6c59)
vm: impl delete method for subresource virtualmachine on apiserver (#334) (39c7d65)
vm: sync labels and annos with empty value (#322) (0353618)
eofff pushed a commit that referenced this pull request Sep 18, 2024
Features
api: adjust image size (cbb37c1)
api: set tag for dvcr images (cf71a98)
cdi: remove service-monitor (#328) (621baf2)
controllelr: add gc for resources (#303) (a14f2e8)
controller: add tasks with dlv (#321) (83fa3c6)
cvi: create from vd (#352) (e42e28c)
module: add base control-plane alerts (#345) (c66c4fd)
vd: deny iso source (77bcad1)
vd: override virtualdisk's pvc parameters via StorageClass annotations (#351) (fa37881)
vdsnapshot: add the new controller for the virtual disk snapshot (e813124)
vd: support filesystem mode (#300) (4b147f7)
vd: support filesystem mode (#327) (754c4a7)
vi: add new storage type - kubernetes (#298) (51e2a40)
vi: create from vd (#354) (f4d4b6d)
vm-route-forge: add ebpf route watcher (#292) (ca67190)
vm: add metrics (#333) (c28df0a)
vmclass: size policies vaidation hook (#344) (5f585c4)
vmop: implement conditions, use new reconciler style (#258) (13f6a9d)

Bug Fixes
cvi: fix cleanup for resources (#363) (1f13148)
templates: add missed symbol (#318) (f30cd69)
vd: ensure last transition time for conditions (b39487a)
vd: fix panic if pvc not found (#349) (fd4b0af)
vd: remove pv protection (aa489c4)
vd: set validator warnings instead of errors (b173b08)
vm-route-forge: add check to ensure VM host node is identified (#356) (4077584)
vmbda: fix sa rules (9367162)
vmclass: revert last transition time to condition builder (db3f272)
vm: fix panic with nil labelselector (#355) (8df6c59)
vm: impl delete method for subresource virtualmachine on apiserver (#334) (39c7d65)
vm: sync labels and annos with empty value (#322) (0353618)

Signed-off-by: Valeriy Khorunzhin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants