kubernetes-sigs / blixt

Layer 4 Kubernetes load-balancer
Apache License 2.0
324 stars 46 forks source link

Integration with bpfman #77

Open shaneutt opened 1 year ago

shaneutt commented 1 year ago

BPFD is a system daemon for managing BPF programs. Using BPFD for Blixt would allow us to more easily and declaratively manage our eBPF programs (using Kubernetes CRDs) and has several other benefits such as helping us avoid conflicts with other eBPF programs already running on the system.

The purpose of this task is to replace our current Aya based eBPF program loader with BPFD using the BPFD Operator.

### Tasks
- [ ] Deploy bpfman in the integration test cluster to make it available to those tests
- [ ] Add an `EbpfProgram` sample that can deploy our TC programs to the cluster with bpfman
- [ ] Replace the loader method of deploying our program using the `EbpfProgram` instead in our integration tests
- [ ] Ensure we have documentation for both the bpfman, and non-bpfman deployment methods
shaneutt commented 1 year ago

At this point it looks like we should wait for BPFD to release v0.2.0:

https://github.com/bpfd-dev/bpfd/issues/393

As this is meant to be an important milestone which will add a little bit more stability. As soon as that's done, I think we should open this right up and get started.

mlavacca commented 1 year ago

At this point it looks like we should wait for BPFD to release v0.2.0:

It looks like BPFD 0.2 has been released 🎉 Does it mean we can unblock this one, correct?

astoycos commented 1 year ago

Yep! I want to try and start spec-ing helping this one move forward this week!!!

astoycos commented 1 year ago

Ok So I've started this in https://github.com/astoycos/blixt/tree/bpfd-integration

Otherwise we're blocked on having BTF support in AYA for rust programs.

shaneutt commented 8 months ago

From @astoycos in #152:

Bpfd recently changed it's name to bpfman which has broken our platform integration tests in order to fix them we'll need to pin to a version of bpfman AFTER the name change and fix a few other things. For now the tests are temporarily disabled.

k8s-triage-robot commented 5 months ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

astoycos commented 5 months ago

/remove-lifecycle stale

Actively working on this :)

shaneutt commented 1 month ago

Putting this back into triage as further discussion will be needed.

/triage needs-information