22
33# Blixt
44
5- An experimental [ layer 4] [ osi ] load-balancer for [ Kubernetes] [ k8s ] with a
6- control-plane built on [ Gateway API] [ gwapi ] in [ Golang] [ go ] with
7- [ Operator SDK] [ osdk ] /[ Controller Runtime] [ crn ] , and an [ eBPF] [ ebpf ] -based
8- data-plane built in [ Rust] [ rust ] using [ Aya] [ aya ] .
5+ An experimental [ layer 4] [ osi ] load-balancer for [ Kubernetes] [ k8s ] .
6+
7+ The control-plane is built using [ Gateway API] [ gwapi ] and written in
8+ [ Golang] [ go ] with [ Operator SDK] [ osdk ] /[ Controller Runtime] [ crn ] . The
9+ data-plane is built using [ eBPF] [ ebpf ] and is written in [ Rust] [ rust ] using
10+ [ Aya] [ aya ] .
911
1012> ** Note** : The word "blixt" means "lightning" in Swedish.
1113
@@ -21,28 +23,22 @@ data-plane built in [Rust][rust] using [Aya][aya].
2123
2224## Current Status
2325
24- This is presently a work-in-progress. The project goals are currently :
26+ Current project goals are the following :
2527
2628- [ ] support [ Gateway] [ gw ] /[ GatewayClass] [ gwc ]
2729- [ ] support [ UDPRoute] [ udproute ]
2830- [ ] support [ TCPRoute] [ tcproute ]
2931- [ ] use this as a basis for adding/improving [ Gateway API Conformance Tests] [ gwcnf ]
3032- [ ] plug this into [ Gateway API] [ gwapi ] CI to run conformance tests on PRs
3133
32- After these goals are achieved, further goals will be decided.
34+ After these goals are achieved, further goals may be decided.
3335
3436> ** Note** : [ TLSRoute] [ tlsroute ] support may be on the table, but we're looking
3537> for someone from the community to champion this.
3638
3739> ** Note** : The initial proof of concept was written as an XDP program, but
3840> with more features (including access to ip conntrack in newer kernels)
39- > available in TC, the maintainers are most likely going to be converting
40- > this to a TC program soon.
41-
42- > ** Note** : There is an open question as to whether the data-plane should be
43- > implemented standalone behind the ` Gateway ` resources, or if it might make
44- > any sense or be advantageous to implement it as a backend for [ KPNG] [ kpng ] .
45- > This is something the maintainers intend to determine before a ` v1 ` release.
41+ > available in TC, we made a switch to TC.
4642
4743[ gw ] :https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.Gateway
4844[ gwc ] :https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.GatewayClass
@@ -51,7 +47,6 @@ After these goals are achieved, further goals will be decided.
5147[ gwcnf ] :https://github.com/kubernetes-sigs/gateway-api/tree/main/conformance
5248[ gwapi ] :https://gateway-api.sigs.k8s.io
5349[ tlsroute ] :https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1alpha2.TLSRoute
54- [ kpng ] :https://github.com/kubernetes-sigs/kpng
5550
5651## Usage
5752
@@ -84,6 +79,12 @@ blixt-dataplane-brsl9 1/1 Running 0 83s
8479Check the ` config/samples ` directory for ` Gateway ` and ` *Route ` examples you
8580can now deploy.
8681
82+ > ** Note** : When developing the dataplane you can make changes in your local
83+ > ` dataplane/ ` directory, and within there quickly build an image and load it
84+ > into the cluster created in the above steps with ` make load.image ` . This will
85+ > build the eBPF loader and eBPF bytecode in a container image, load that image
86+ > into the cluster, and then restart the dataplane pods to use the new build.
87+
8788[ kind ] :https://github.com/kubernetes-sigs/kind
8889[ gwapi ] :https://github.com/kubernetes-sigs/gateway-api
8990[ crds ] :https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
@@ -93,13 +94,14 @@ can now deploy.
9394This project originally started at [ Kong] [ kong ] but is being [ donated to
9495Kubernetes SIG Network] [ donation ] . It is becoming a part of the [ Gateway
9596API] [ gwapi ] project and as such is discussed in the [ Gateway API weekly
96- meetings] [ gwapi-meet ] .In particular, we do some discussion and paired
97+ meetings] [ gwapi-meet ] . In particular, we do some discussion and paired
9798programming of this project on the ` Gateway API Code Jam ` meeting which
9899is on the [ calendar] [ gwapi-meet ] for every Friday.
99100
100101You can also reach out with problems or questions by creating an
101102[ issue] [ issues ] , or a [ discussion] [ disc ] on this repo. You can also reach out
102- on [ Kubernetes Slack] [ kslack ] on the ` #sig-network-gateway-api ` channel.
103+ on [ Kubernetes Slack] [ kslack ] on the ` #sig-network-gateway-api ` channel. There
104+ is also a ` #ebpf ` channel on Kubernetes Slack for general eBPF related help.
103105
104106[ kong ] :https://github.com/kong
105107[ donation ] :https://github.com/kong/blixt/discussions/42
0 commit comments