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

PR - Merge latest to aws-support #695

Closed
wants to merge 134 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
38a894e
sctp multihoming cicd added
nik-netlox Apr 10, 2024
c30d395
chore: Update README
TrekkieCoder Apr 14, 2024
2046aa1
add apt install lksctp-tools
backguynn Apr 15, 2024
1c32a4e
Merge branch 'loxilb-io:main' into main
backguynn Apr 15, 2024
434cde6
Merge pull request #639 from backguynn/main
UltraInstinct14 Apr 15, 2024
5ce0f5f
Update README.md
TrekkieCoder Apr 15, 2024
22e3ff4
cicd:updated test container image
TrekkieCoder Apr 15, 2024
ac952c4
Merge branch 'loxilb-io:main' into main
TrekkieCoder Apr 15, 2024
ba06e9d
Merge pull request #640 from TrekkieCoder/main
UltraInstinct14 Apr 15, 2024
c3e38e2
Merge branch 'loxilb-io:main' into main
nik-netlox Apr 17, 2024
06aecc6
LB-VIP maintenance reworked
TrekkieCoder Apr 17, 2024
338757d
Merge branch 'main' of https://github.com/TrekkieCoder/loxilb into main
TrekkieCoder Apr 17, 2024
fc5b5a4
Merge pull request #641 from TrekkieCoder/main
UltraInstinct14 Apr 17, 2024
93f3438
Merge branch 'loxilb-io:main' into main
nik-netlox Apr 17, 2024
8d9c984
Multiple sourceIP bind support added
nik-netlox Apr 17, 2024
3cd3bbf
bfd params validation check fixed
nik-netlox Apr 17, 2024
aaba9a3
k3s install in ipvs mode
nik-netlox Apr 17, 2024
0ed02d5
Host VM cleanup in rmconfig.sh
nik-netlox Apr 17, 2024
b8279c6
Added missing files for k3s-flannel-multus
nik-netlox Apr 17, 2024
c754e90
LB-VIP maintenance reworked # 2
TrekkieCoder Apr 17, 2024
7d9fb77
Merge pull request #642 from TrekkieCoder/main
UltraInstinct14 Apr 17, 2024
6092e11
Merge branch 'loxilb-io:main' into main
nik-netlox Apr 18, 2024
ef38a03
Merge pull request #643 from nik-netlox/main
UltraInstinct14 Apr 18, 2024
220ac79
chore: bumped up the version
UltraInstinct14 Apr 18, 2024
9706c3b
chore: bumped version
UltraInstinct14 Apr 18, 2024
d235450
Support for LB end-point selection persistence with timeout
TrekkieCoder Apr 19, 2024
95eaa93
Merge pull request #644 from TrekkieCoder/main
UltraInstinct14 Apr 19, 2024
2adef7e
Support for LB end-point selection persistence with timeout - patch2
TrekkieCoder Apr 19, 2024
da0e34e
Support for LB end-point selection persistence with timeout - patch3
TrekkieCoder Apr 20, 2024
e3c3ff0
Merge branch 'loxilb-io:main' into main
TrekkieCoder Apr 21, 2024
b6fa16c
Support for LB end-point selection persistence with timeout - patch3
TrekkieCoder Apr 21, 2024
82eac5e
Merge pull request #645 from TrekkieCoder/main
UltraInstinct14 Apr 21, 2024
5a1c157
CVE-2023-45288 - Resolved vulnerability
TrekkieCoder Apr 21, 2024
a6504e8
Merge branch 'loxilb-io:main' into main
TrekkieCoder Apr 21, 2024
b10a47c
Merge pull request #646 from TrekkieCoder/main
UltraInstinct14 Apr 21, 2024
09c16bb
Fixed size issue related to ct-map sync
TrekkieCoder Apr 22, 2024
bb4e956
Merge branch 'main' of https://github.com/TrekkieCoder/loxilb into main
TrekkieCoder Apr 22, 2024
a6e18ab
Merge pull request #647 from TrekkieCoder/main
UltraInstinct14 Apr 22, 2024
d4a9c38
Updated Vagrantfile - Do not install guest additions
UltraInstinct14 Apr 22, 2024
b9b084f
sctp MH with HA test added
nik-netlox Apr 23, 2024
bf13a57
Create sctpmh-sanity.yml
nik-netlox Apr 23, 2024
eadc7c9
Merge pull request #649 from nik-netlox/main
UltraInstinct14 Apr 23, 2024
404f73a
loxilb restart arguments fixed
nik-netlox Apr 24, 2024
73b9398
Make Https to run as an option.
inhogog2 Apr 24, 2024
d6c3a31
Remove default key and cert file for security.
inhogog2 Apr 24, 2024
5060a3f
cicd: k3s-flannel-incluster scenario to support multi-master
TrekkieCoder Apr 24, 2024
7b996fb
chore: Updated README to include new how-to guides
TrekkieCoder Apr 24, 2024
b8ea862
chore: Update README.md
TrekkieCoder Apr 24, 2024
ea83b40
Merge pull request #651 from inhogog2/main
TrekkieCoder Apr 24, 2024
a8a9443
Merge branch 'main' into main
UltraInstinct14 Apr 24, 2024
b86d8d4
Merge pull request #650 from TrekkieCoder/main
UltraInstinct14 Apr 24, 2024
55d99f2
security: Changed related to CVE-2020-8559, removed unwanted token files
TrekkieCoder Apr 25, 2024
c63359a
Merge pull request #652 from TrekkieCoder/main
UltraInstinct14 Apr 25, 2024
34d2313
Merge branch 'loxilb-io:main' into main
nik-netlox Apr 25, 2024
36702d3
Update sctpmh-sanity.yml
nik-netlox Apr 25, 2024
b8113c6
scripts tuned for github actions
nik-netlox Apr 25, 2024
32636ea
Update sctpmh-sanity.yml
nik-netlox Apr 25, 2024
b4eb7ca
Merge pull request #653 from nik-netlox/main
UltraInstinct14 Apr 25, 2024
9e2c8bd
Versioning changes for release v0.9.3
TrekkieCoder Apr 26, 2024
45bfcea
in-cluster: fix to support when pod and loxilb are in same node
TrekkieCoder Apr 26, 2024
5340215
Merge branch 'loxilb-io:main' into main
TrekkieCoder Apr 26, 2024
417e009
Merge pull request #655 from TrekkieCoder/main
UltraInstinct14 Apr 26, 2024
6d73171
gh-656 - Build and parser fixes with clang-14
TrekkieCoder Apr 29, 2024
ef180ed
Merge branch 'main' of https://github.com/TrekkieCoder/loxilb into main
TrekkieCoder Apr 29, 2024
4be7d43
Merge branch 'loxilb-io:main' into main
TrekkieCoder Apr 29, 2024
145c68d
Merge pull request #657 from TrekkieCoder/main
UltraInstinct14 Apr 29, 2024
cc9a811
cicd: added k3s-multi-master scenario with service LB and proxy support
TrekkieCoder Apr 29, 2024
0879bb5
Merge pull request #658 from TrekkieCoder/main
UltraInstinct14 Apr 29, 2024
965bc77
version - updated latest to 0.9.4
UltraInstinct14 Apr 29, 2024
93282f7
Update k3s-calico.yml
TrekkieCoder Apr 29, 2024
472d417
support for kernel 6.8.x ebpf verifier
TrekkieCoder Apr 29, 2024
4abff62
Merge pull request #659 from TrekkieCoder/main
UltraInstinct14 Apr 29, 2024
cc928ee
gh-656 - Build tweaked to include static libbpf to avoid conflicts wi…
TrekkieCoder May 1, 2024
66fa8f9
Merge branch 'loxilb-io:main' into main
TrekkieCoder May 1, 2024
5ca698a
Merge pull request #660 from TrekkieCoder/main
UltraInstinct14 May 1, 2024
b08d2fe
cicd : ubuntu22.04 build to run with (default) clang-14
TrekkieCoder May 1, 2024
eeaac51
chore: Update README
UltraInstinct14 May 2, 2024
6ff5ad5
service-proxy: ipvs-compat fixes
TrekkieCoder May 2, 2024
aacb399
Merge branch 'main' of https://github.com/TrekkieCoder/loxilb into main
TrekkieCoder May 2, 2024
a56c6aa
Merge branch 'loxilb-io:main' into main
TrekkieCoder May 2, 2024
f3770c6
Merge pull request #662 from TrekkieCoder/main
UltraInstinct14 May 2, 2024
416fd00
cicd: updated k3s-multi-master scenario
TrekkieCoder May 3, 2024
8366e2f
Merge pull request #663 from TrekkieCoder/main
UltraInstinct14 May 3, 2024
5db7e4e
cicd: updated k3s-multi-master scenario
TrekkieCoder May 4, 2024
7b774a2
Merge pull request #664 from TrekkieCoder/main
UltraInstinct14 May 4, 2024
03a3821
cicd: changed opensuse mirror to a working one
TrekkieCoder May 5, 2024
1eabbd6
Merge pull request #665 from TrekkieCoder/main
UltraInstinct14 May 5, 2024
826caae
cicd:update opensuse mirrors
TrekkieCoder May 5, 2024
027c98c
gh-666 basic support for ipfireOS
TrekkieCoder May 7, 2024
528bc9e
Merge branch 'loxilb-io:main' into main
TrekkieCoder May 7, 2024
7d61325
Merge pull request #668 from TrekkieCoder/main
UltraInstinct14 May 7, 2024
93efcd4
scripts to run sctpmh with seagull
nik-netlox May 8, 2024
3add60b
Removed unnecessary file
nik-netlox May 8, 2024
8418465
Added LB annotations to skip adding local VIP
TrekkieCoder May 9, 2024
1eda892
Merge branch 'loxilb-io:main' into main
TrekkieCoder May 9, 2024
67599f6
Merge pull request #671 from TrekkieCoder/main
UltraInstinct14 May 9, 2024
82e8bd7
chore:improvements to the build process
TrekkieCoder May 9, 2024
2018254
Merge branch 'main' of https://github.com/TrekkieCoder/loxilb into main
TrekkieCoder May 9, 2024
812cf75
chore:improvements to build
TrekkieCoder May 9, 2024
6c8ab7b
Merge pull request #672 from TrekkieCoder/main
UltraInstinct14 May 9, 2024
32586e5
cicd:k3s-multi-master kube-proxy replacement with calico
TrekkieCoder May 9, 2024
a82eefe
Merge pull request #673 from TrekkieCoder/main
UltraInstinct14 May 9, 2024
09fdd5a
chore:Update README
UltraInstinct14 May 9, 2024
8390f42
chore:Update README
UltraInstinct14 May 9, 2024
f57b5c5
Update README.md
UltraInstinct14 May 10, 2024
bace148
kube-proxy: better conformance for flannel
TrekkieCoder May 14, 2024
42d90f3
Merge pull request #676 from TrekkieCoder/main
UltraInstinct14 May 14, 2024
c9b775e
cicd:k3s-multi-master scenario with flannel updated
TrekkieCoder May 14, 2024
0d472b0
Merge pull request #677 from TrekkieCoder/main
UltraInstinct14 May 14, 2024
19ea58c
gh-654 loxilb non-privileged mode support for k8s
TrekkieCoder May 14, 2024
d241544
Merge pull request #678 from TrekkieCoder/main
UltraInstinct14 May 14, 2024
241581a
Merge branch 'loxilb-io:main' into main
nik-netlox May 20, 2024
3dd0cf1
Merge pull request #680 from nik-netlox/main
UltraInstinct14 May 20, 2024
360059a
sockmap: basic support for testing
TrekkieCoder May 23, 2024
3afe313
Added BGP Policy API
inhogog2 May 24, 2024
ffd258c
Added BGP Policy API
inhogog2 May 24, 2024
2b57ba5
Merge pull request #682 from inhogog2/main
UltraInstinct14 May 24, 2024
7f077c4
gh-48 Initial support for L7 proxy w/wo sockmap
TrekkieCoder Jun 1, 2024
ea8a9cf
Merge pull request #1 from TrekkieCoder/sockmap
TrekkieCoder Jun 1, 2024
5637be3
gh-48 Initial support for L7 proxy w/wo sockmap
TrekkieCoder Jun 1, 2024
d4a6054
gh-48 Initial support for L7 proxy w/wo sockmap
TrekkieCoder Jun 1, 2024
90e789d
gh-48 Initial support for L7 proxy w/wo sockmap
TrekkieCoder Jun 1, 2024
d95b2b2
Merge pull request #687 from TrekkieCoder/main
UltraInstinct14 Jun 1, 2024
0d98370
Allow LB rule mode and select param modification
TrekkieCoder Jun 4, 2024
c9e6c59
Merge pull request #688 from TrekkieCoder/main
UltraInstinct14 Jun 4, 2024
17642b8
api:support for delete Lb rule with name
TrekkieCoder Jun 4, 2024
316ad57
Merge pull request #691 from TrekkieCoder/main
UltraInstinct14 Jun 4, 2024
e620e1b
gh-690 Fix for arguments too long error during load on docker desktop…
TrekkieCoder Jun 8, 2024
305c792
Version: Bumped dev branch v0.9.5
UltraInstinct14 Jun 10, 2024
c255dad
gh-692 Do not consider SCTP abort as a shutdown complete marker and l…
TrekkieCoder Jun 10, 2024
ff57a31
Merge branch 'main' into gh-692
UltraInstinct14 Jun 10, 2024
a6fb185
Merge pull request #693 from loxilb-io/gh-692
UltraInstinct14 Jun 10, 2024
baccbb3
support for any host onearm LB rule
TrekkieCoder Jun 12, 2024
6918184
Merge pull request #694 from loxilb-io/awz-local-zone
UltraInstinct14 Jun 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/__k3s-base-sanity-module.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
go-version: '>=1.18.0'
- run: |
sudo apt-get update
sudo apt-get -y install bridge-utils net-tools iperf curl wget clang-10 llvm libelf-dev gcc-multilib libpcap-dev linux-tools-$(uname -r) elfutils dwarves git libbsd-dev bridge-utils unzip build-essential bison flex iperf iproute2 nodejs socat ethtool
sudo apt-get -y install bridge-utils net-tools iperf curl lksctp-tools wget clang-10 llvm libelf-dev gcc-multilib libpcap-dev linux-tools-$(uname -r) elfutils dwarves git libbsd-dev bridge-utils unzip build-essential bison flex iperf iproute2 nodejs socat ethtool
git clone --recursive https://github.com/loxilb-io/loxilb
- working-directory: ./loxilb
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/basic-sanity-ubuntu-22.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
with:
go-version: '>=1.18.0'
- run: sudo apt-get update
- run: sudo apt-get -y install clang-13 llvm libelf-dev gcc-multilib libpcap-dev linux-tools-$(uname -r) elfutils dwarves git libbsd-dev bridge-utils unzip build-essential bison flex iproute2
- run: sudo apt-get -y install clang llvm libelf-dev gcc-multilib libpcap-dev linux-tools-$(uname -r) elfutils dwarves git libbsd-dev bridge-utils unzip build-essential bison flex iproute2
- run: |
sudo ip netns add test
sudo ip netns del test
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/k3s-calico.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ jobs:
- run: curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.22.9+k3s1 INSTALL_K3S_EXEC="server --disable traefik --disable servicelb --disable-cloud-controller --kubelet-arg cloud-provider=external --flannel-backend=none --cluster-cidr=10.42.0.0/16" K3S_KUBECONFIG_MODE="644" sh -
- run: |
sleep 10
kubectl "${{ env.KUBECONFIG }}" create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/tigera-operator.yaml
kubectl "${{ env.KUBECONFIG }}" create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml
- run: |
sleep 10
kubectl "${{ env.KUBECONFIG }}" create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/custom-resources.yaml
kubectl "${{ env.KUBECONFIG }}" create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml
- run: |
sleep 10
kubectl "${{ env.KUBECONFIG }}" taint nodes --all node.cloudprovider.kubernetes.io/uninitialized=false:NoSchedule-
Expand Down
55 changes: 55 additions & 0 deletions .github/workflows/sctpmh-sanity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: SCTP-MH-LB-Sanity-CI

on:
#push:
# branches:
# - main
#pull_request:
# branches: [ "main" ]
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
tags:
description: 'SCTP MH LB Sanity'

jobs:
build:
name: sctpmh-lb-sanity
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: actions/setup-python@v2
- uses: actions/setup-go@v3
with:
go-version: '>=1.18.0'
- run: sudo apt-get update
- run: sudo apt-get -y install clang-10 llvm libelf-dev gcc-multilib libpcap-dev linux-tools-$(uname -r) elfutils dwarves git libbsd-dev bridge-utils unzip build-essential bison flex iperf iproute2 nodejs socat ethtool curl lksctp-tools
- run: |
git clone --recurse-submodules https://github.com/loxilb-io/iproute2 iproute2-main
cd iproute2-main/libbpf/src/
sudo make install
mkdir build
DESTDIR=build OBJDIR=build make install
cd -
cd iproute2-main/
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:`pwd`/libbpf/src/ && LIBBPF_FORCE=on LIBBPF_DIR=`pwd`/libbpf/src/build ./configure && make && sudo cp -f tc/tc /usr/local/sbin/ntc && cd -
- run: loxilb-ebpf/utils/mkllb_bpffs.sh
- run: sudo -E env "PATH=$PATH" make
- run: sudo -E env "PATH=$PATH" make test
- run: docker pull ghcr.io/loxilb-io/loxilb:latest
- run: docker run -u root --cap-add SYS_ADMIN --restart unless-stopped --privileged -dit -v /dev/log:/dev/log --name loxilb ghcr.io/loxilb-io/loxilb:latest
- run: pwd && ls && sudo -E env "PATH=$PATH" make docker-cp
- run: docker exec -dit loxilb mkllb_bpffs
- run: id=`docker ps -f name=loxilb | cut -d " " -f 1 | grep -iv "CONTAINER"` && docker commit $id ghcr.io/loxilb-io/loxilb:latest
- run: docker stop loxilb && docker rm loxilb
- run: |
cd cicd/sctpmh/
./config.sh
./validation.sh
./rmconfig.sh
cd -
3 changes: 1 addition & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib64/"

# Install loxilb related packages
RUN mkdir -p /opt/loxilb && \
mkdir -p /opt/loxilb/cert/ && \
mkdir -p /root/loxilb-io/loxilb/ && \
mkdir -p /opt/loxilb/cert/ && \
mkdir -p /etc/bash_completion.d/ && \
# Update Ubuntu Software repository
apt-get update && apt-get install -y wget && \
Expand Down Expand Up @@ -44,7 +44,6 @@ RUN mkdir -p /opt/loxilb && \
cd /root/loxilb-io/loxilb/ && go get . && if [ "$arch" = "arm64" ] ; then DOCKER_BUILDX_ARM64=true make; \
else make ;fi && cp loxilb-ebpf/utils/mkllb_bpffs.sh /usr/local/sbin/mkllb_bpffs && \
cp loxilb-ebpf/utils/mkllb_cgroup.sh /usr/local/sbin/mkllb_cgroup && \
cp api/certification/* /opt/loxilb/cert/ && cd - && \
cp /root/loxilb-io/loxilb/loxilb-ebpf/kernel/loxilb_dp_debug /usr/local/sbin/loxilb_dp_debug && \
cp /root/loxilb-io/loxilb/loxilb /usr/local/sbin/loxilb && \
rm -fr /root/loxilb-io/loxilb/* && rm -fr /root/loxilb-io/loxilb/.git && \
Expand Down
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ docker-cp: build
docker cp /opt/loxilb/llb_ebpf_emain.o $(loxilbid):/opt/loxilb/llb_ebpf_emain.o
docker cp /opt/loxilb/llb_xdp_main.o $(loxilbid):/opt/loxilb/llb_xdp_main.o
docker cp /opt/loxilb/llb_kern_sock.o $(loxilbid):/opt/loxilb/llb_kern_sock.o
docker cp /opt/loxilb/llb_kern_sockmap.o $(loxilbid):/opt/loxilb/llb_kern_sockmap.o
docker cp /opt/loxilb/llb_kern_sockstream.o $(loxilbid):/opt/loxilb/llb_kern_sockstream.o
docker cp /opt/loxilb/llb_kern_sockdirect.o $(loxilbid):/opt/loxilb/llb_kern_sockdirect.o
docker cp loxilb-ebpf/kernel/loxilb_dp_debug $(loxilbid):/usr/local/sbin/
docker cp loxilb-ebpf/libbpf/src/libbpf.so.0.8.1 $(loxilbid):/usr/lib64/
docker cp loxilb-ebpf/utils/loxilb_dp_tool $(loxilbid):/usr/local/sbin/
Expand Down
18 changes: 13 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ All these services are provided by load-balancers/proxies operating at Layer4/La

Service type load-balancer is usually provided by public cloud-provider(s) as a managed entity. But for on-prem and self-managed clusters, there are only a few good options available. Even for provider-managed K8s like EKS, there are many who would want to bring their own LB to clusters running anywhere. <b>loxilb provides service type load-balancer as its main use-case</b>. loxilb can be run in-cluster or ext-to-cluster as per user need.

Additionally, loxilb can also support cluster-ip and node-port services, thereby providing end-to-end connectivity for Kubernetes.
Additionally, loxilb can also support cluster-ip and node-port services, thereby providing full cluster-mesh implementation for Kubernetes (replacment of kube-proxy).

## Why choose loxilb?

Expand All @@ -30,6 +30,7 @@ Additionally, loxilb can also support cluster-ip and node-port services, thereby
- Utitlizes ebpf which makes it ```flexible``` as well as ```customizable```
- Advanced ```quality of service``` for workloads (per LB, per end-point or per client)
- Works with ```any``` Kubernetes distribution/CNI - k8s/k3s/k0s/kind/OpenShift + Calico/Flannel/Cilium/Weave/Multus etc
- Kube-proxy replacement with loxilb allows ```simple plug-in``` with any existing/deployed pod-networking software
- Extensive support for ```SCTP workloads``` (with multi-homing) on K8s
- Dual stack with ```NAT66, NAT64``` support for K8s
- K8s ```multi-cluster``` support (planned 🚧)
Expand All @@ -53,16 +54,17 @@ Additionally, loxilb can also support cluster-ip and node-port services, thereby
- A kubernetes agent [kube-loxilb](https://github.com/loxilb-io/kube-loxilb) written in Go

## Layer4 Vs Layer7
loxilb works as a L4 load-balancer/service-mesh by default. Although it provides great performance, at times, L7 load-balancing might become necessary in K8s. There are many good L7 proxies already available for K8s. Still, we are working on providing a great L7 solution natively in eBPF. It is a tough endeavor one which should reap great benefits once completed. Please keep an eye for updates on this.
loxilb works as a L4 load-balancer/service-proxy by default. Although it provides great performance, at times, L7 load-balancing might become necessary in K8s. There are many good L7 proxies already available for K8s. Still, we are working on providing a great L7 solution natively in eBPF. It is a tough endeavor one which should reap great benefits once completed. Please keep an eye for updates on this.

## Telco-Cloud with loxilb
For deploying telco-cloud with cloud-native functions, loxilb can be used as a SCP(service communication proxy). SCP is nothing but a glorified term for Kubernetes load-balancing/proxy. But telco-cloud requires load-balancing across various interfaces/standards like N2, N4, E2(ORAN), S6x, 5GLAN, GTP etc. Each of these interfaces present its own unique challenges(and DPI) for load-balancing which loxilb aims to solve e.g.
For deploying telco-cloud with cloud-native functions, loxilb can be used as a SCP(service communication proxy). SCP is nothing but a communication hub for telco micro-services running in Kubernetes. But telco-cloud requires load-balancing and communication across various interfaces/standards like N2, N4, E2(ORAN), S6x, 5GLAN, GTP etc. Each of these present its own unique challenges which loxilb aims to solve e.g.
- N4 requires PFCP level session-intelligence
- N2 requires NGAP parsing capability
- S6x requires Diameter/SCTP multi-homing LB support
- MEC use-cases might require UL-CL understanding
- Hitless failover support might be essential for mission-critical applications
- E2 might require SCTP-LB with OpenVPN bundled together
- SIP support is needed to enable cloud-native VOIP

## How-To Guides
- [How-To : Deploy loxilb in K8s with kube-loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/kube-loxilb.md)
Expand All @@ -71,7 +73,9 @@ For deploying telco-cloud with cloud-native functions, loxilb can be used as a S
- [How-To : Run loxilb in standalone mode](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/standalone.md)
- [How-To : Manual build/run](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/run.md)
- [How-To : Standalone configuration](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/cmd.md)
- [How-To : debug](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/debugging.md)
- [How-To : Debug loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/debugging.md)
- [How-To : Access end-points outside K8s](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/ext-ep.md)
- [How-To : Deploy multi-server K3s HA with loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/k3s-multi-master.md)

## Getting started with different K8s distributions/tools

Expand All @@ -86,6 +90,10 @@ For deploying telco-cloud with cloud-native functions, loxilb can be used as a S
- [K0s : loxilb in-cluster mode](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/k0s_quick_start_incluster.md)
- [MicroK8s : loxilb in-cluster mode](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/microk8s_quick_start_incluster.md)

#### loxilb as service-proxy (kube-proxy replacement)
- [K3s : loxilb service-proxy with flannel](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/service-proxy-flannel.md)
- [K3s : loxilb service-proxy with calico](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/service-proxy-calico.md)

## Knowledge-Base
- [What is eBPF](ebpf.md)
- [What is k8s service - load-balancer](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/lb.md)
Expand Down Expand Up @@ -122,7 +130,7 @@ Feel free to post your queries in github [discussion](https://github.com/loxilb-
| [![udp-lb-sanity-CI](https://github.com/loxilb-io/loxilb/actions/workflows/udp-sanity.yml/badge.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/udp-sanity.yml) | [![udp-lb-sanity-CI](https://github.com/loxilb-io/loxilb/actions/workflows/udp-sanity-ubuntu-22.yml/badge.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/udp-sanity-ubuntu-22.yml) | [![UDP-LB-Sanity-CI-RH9](https://github.com/loxilb-io/loxilb/actions/workflows/udp-sanity-rh9.yml/badge.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/udp-sanity-rh9.yml) |
| [![sctp-lb-sanity-CI](https://github.com/loxilb-io/loxilb/actions/workflows/sctp-sanity.yml/badge.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/sctp-sanity.yml) | ![ipsec-sanity-CI](https://github.com/loxilb-io/loxilb/actions/workflows/ipsec-sanity-ubuntu-22.yml/badge.svg) | [![IPsec-Sanity-CI-RH9](https://github.com/loxilb-io/loxilb/actions/workflows/ipsec-sanity-rh9.yml/badge.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/ipsec-sanity-rh9.yml) |
| ![extlb workflow](https://github.com/loxilb-io/loxilb/actions/workflows/advanced-lb-sanity.yml/badge.svg) | ![nat66-sanity-CI](https://github.com/loxilb-io/loxilb/actions/workflows/nat66-sanity-ubuntu-22.yml/badge.svg) | [![NAT66-LB-Sanity-CI-RH9](https://github.com/loxilb-io/loxilb/actions/workflows/nat66-sanity-rh9.yml/badge.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/nat66-sanity-rh9.yml) |
| ![ipsec-sanity-CI](https://github.com/loxilb-io/loxilb/actions/workflows/ipsec-sanity.yml/badge.svg) | [![Scale-Sanity-CI-Ubuntu-22](https://github.com/loxilb-io/loxilb/actions/workflows/scale-sanity-ubuntu-22.yml/badge.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/scale-sanity-ubuntu-22.yml) | |
| ![ipsec-sanity-CI](https://github.com/loxilb-io/loxilb/actions/workflows/ipsec-sanity.yml/badge.svg) | [![Scale-Sanity-CI-Ubuntu-22](https://github.com/loxilb-io/loxilb/actions/workflows/scale-sanity-ubuntu-22.yml/badge.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/scale-sanity-ubuntu-22.yml) | [![Adv-LB-Sanity-CI-RH9](https://github.com/loxilb-io/loxilb/actions/workflows/advanced-lb-sanity-rh9.yml/badge.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/advanced-lb-sanity-rh9.yml) |
| ![scale-sanity-CI](https://github.com/loxilb-io/loxilb/actions/workflows/scale-sanity.yml/badge.svg) | [![perf-CI](https://github.com/loxilb-io/loxilb/actions/workflows/perf.yml/badge.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/perf.yml) | |
| [![liveness-sanity-CI](https://github.com/loxilb-io/loxilb/actions/workflows/liveness-sanity.yml/badge.svg)](https://github.com/loxilb-io/loxilb/actions/workflows/liveness-sanity.yml) | | |
| ![nat66-sanity-CI](https://github.com/loxilb-io/loxilb/actions/workflows/nat66-sanity.yml/badge.svg) | | |
Expand Down
23 changes: 15 additions & 8 deletions api/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@
package api

import (
"log"
"os"
"runtime/debug"
"time"

"github.com/go-openapi/loads"
flags "github.com/jessevdk/go-flags"
"github.com/loxilb-io/loxilb/api/restapi"
Expand All @@ -25,10 +30,6 @@ import (
cmn "github.com/loxilb-io/loxilb/common"
"github.com/loxilb-io/loxilb/options"
tk "github.com/loxilb-io/loxilib"
"log"
"os"
"runtime/debug"
"time"
)

var (
Expand Down Expand Up @@ -117,11 +118,17 @@ func RunAPIServer() {
server.ConfigureAPI()
// API server host list
server.Host = options.Opts.Host
server.TLSHost = options.Opts.TLSHost
server.TLSCertificateKey = options.Opts.TLSCertificateKey
server.TLSCertificate = options.Opts.TLSCertificate
server.Port = options.Opts.Port
server.TLSPort = options.Opts.TLSPort

// HTTPs List
if options.Opts.TLS {
server.TLSHost = options.Opts.TLSHost
server.TLSPort = options.Opts.TLSPort

server.TLSCertificateKey = options.Opts.TLSCertificateKey
server.TLSCertificate = options.Opts.TLSCertificate
}

api.ServerShutdown = func() {
waitApiServerShutOk()
os.Exit(0)
Expand Down
3 changes: 3 additions & 0 deletions api/build_api.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
sudo docker run --rm -it --user $(id -u):$(id -g) -e GOPATH=$(go env GOPATH):/go -v $HOME:$HOME -w $(pwd) quay.io/goswagger/swagger:0.30.3 generate server
sed -i 's/s\.hasScheme(schemeHTTPS)/s\.hasScheme(schemeHTTPS) \&\& options\.Opts\.TLS/gi' restapi/server.go
sed -i'' -r -e '/import/a\\t\"github.com/loxilb-io/loxilb/options\"' restapi/server.go
21 changes: 0 additions & 21 deletions api/certification/server.crt

This file was deleted.

27 changes: 0 additions & 27 deletions api/certification/server.key

This file was deleted.

Loading
Loading