Skip to content

Commit ba2d708

Browse files
Merge pull request #519 from loxilb-io/bfd-fix1
PR : BFD Implementation - changes for cicd scripts
2 parents 97f4e41 + 6ec3366 commit ba2d708

File tree

9 files changed

+74
-36
lines changed

9 files changed

+74
-36
lines changed

cicd/common.sh

+4-16
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ hns="sudo ip netns "
1313
hexist="$vrn$hn"
1414
lxdocker="ghcr.io/loxilb-io/loxilb:latest"
1515
cluster_opts=""
16+
ka_opts=""
1617
var=$(lsb_release -r | cut -f2)
1718
if [[ $var == *"22.04"* ]];then
1819
lxdocker="ghcr.io/loxilb-io/loxilb:latestu22"
@@ -104,24 +105,9 @@ spawn_docker_host() {
104105
fi
105106
if [[ ! -z ${ka+x} ]]; then
106107
sudo mkdir -p /etc/shared/$dname/
107-
if [[ "$ka" == "in" ]];then
108-
ka_opts="-k in"
109-
if [[ ! -z "$kpath" ]]; then
110-
ka_conf="-v $kpath:/etc/keepalived/"
111-
fi
112-
fi
113-
docker run -u root --cap-add SYS_ADMIN --restart unless-stopped --privileged -dt --entrypoint /bin/bash $bgp_conf -v /dev/log:/dev/log -v /etc/shared/$dname:/etc/shared $loxilb_config $ka_conf --name $dname $lxdocker
108+
docker run -u root --cap-add SYS_ADMIN --restart unless-stopped --privileged -dt --entrypoint /bin/bash $bgp_conf -v /dev/log:/dev/log -v /etc/shared/$dname:/etc/shared $loxilb_config --name $dname $lxdocker
114109
get_llb_peerIP $dname
115110
docker exec -dt $dname /root/loxilb-io/loxilb/loxilb $bgp_opts $cluster_opts $ka_opts
116-
117-
if [[ "$ka" == "out" ]];then
118-
ka_opts="-k out"
119-
if [[ ! -z "$kpath" ]]; then
120-
ka_conf="-v $kpath:/container/service/keepalived/assets/"
121-
fi
122-
123-
docker run -u root --cap-add SYS_ADMIN --restart unless-stopped --privileged -dit --network=container:$dname $ka_conf -v /etc/shared/$dname:/etc/shared --name ka_$dname osixia/keepalived:2.0.20
124-
fi
125111
else
126112
docker run -u root --cap-add SYS_ADMIN --restart unless-stopped --privileged -dt --entrypoint /bin/bash $bgp_conf -v /dev/log:/dev/log $loxilb_config --name $dname $lxdocker $bgp_opts
127113
docker exec -dt $dname /root/loxilb-io/loxilb/loxilb $bgp_opts $cluster_opts
@@ -170,6 +156,7 @@ get_llb_peerIP() {
170156
llb2IP="$A.$B.$C.$((D+1))"
171157
fi
172158
cluster_opts=" --cluster=$llb2IP --self=0"
159+
ka_opts=" --ka=$llb2IP"
173160
elif [[ "$1" == "llb2" ]]; then
174161
llb2IP=$(docker inspect --format='{{.NetworkSettings.IPAddress}}' llb2)
175162
if [[ "lb$llb2IP" == "lb" ]];then
@@ -179,6 +166,7 @@ get_llb_peerIP() {
179166
llb1IP="$A.$B.$C.$((D-1))"
180167
fi
181168
cluster_opts=" --cluster=$llb1IP --self=1"
169+
ka_opts=" --ka=$llb1IP"
182170
fi
183171
}
184172

cicd/k3s-calico/config.sh

+1-5
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,6 @@ sleep 10
159159
# Wait for cluster to be ready
160160
wait_cluster_ready_full
161161

162-
# Start nginx pods and services for test
163-
kubectl $KUBECONFIG apply -f nginx.yml
164-
kubectl $KUBECONFIG apply -f nginx-svc-lb.yml
165-
166162
sleep 5
167163

168164
# Start nginx pods and services for test(using kube-loxilb)
@@ -179,7 +175,7 @@ sleep 30
179175
kubectl $KUBECONFIG get svc
180176

181177
# Route back to user
182-
sudo ip route add 1.1.1.1/32 via 12.12.12.1
178+
sudo ip route add 1.1.1.1/32 via 14.14.14.1
183179

184180
# Wait for cluster to be ready
185181
wait_cluster_ready_full

cicd/k3s-calico/nginx-svc-lb1.yml

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ apiVersion: v1
22
kind: Service
33
metadata:
44
name: nginx-lb1
5+
annotations:
6+
loxilb.io/staticIP : "11.11.11.11"
57
spec:
68
externalTrafficPolicy: Local
79
loadBalancerClass: loxilb.io/loxilb

cicd/k3s-calico/validation.sh

+37-9
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ IFS=' '
1111

1212
for((i=0; i<120; i++))
1313
do
14-
extLB=$(sudo kubectl $KUBECONFIG get svc | grep "nginx-lb")
14+
extLB=$(sudo kubectl $KUBECONFIG get svc | grep "nginx-lb1")
1515
read -a strarr <<< "$extLB"
1616
len=${#strarr[*]}
1717
if [[ $((len)) -lt 6 ]]; then
@@ -60,14 +60,6 @@ print_debug_info() {
6060
code=0
6161
print_debug_info
6262

63-
out=$($hexec user curl -s --connect-timeout 10 http://$extIP:80)
64-
if [[ ${out} == *"Welcome to nginx"* ]]; then
65-
echo "calico-k3s (ccm) [OK]"
66-
else
67-
echo "calico-k3s (ccm) [FAILED]"
68-
code=1
69-
fi
70-
7163
out=$($hexec user curl -s --connect-timeout 10 http://$extIP:55002)
7264

7365
if [[ ${out} == *"Welcome to nginx"* ]]; then
@@ -77,6 +69,24 @@ else
7769
code=1
7870
fi
7971

72+
for((i=0; i<120; i++))
73+
do
74+
extLB=$(sudo kubectl $KUBECONFIG get svc | grep "udp-lb1")
75+
read -a strarr <<< "$extLB"
76+
len=${#strarr[*]}
77+
if [[ $((len)) -lt 6 ]]; then
78+
echo "Can't find nginx-lb service"
79+
sleep 1
80+
continue
81+
fi
82+
if [[ ${strarr[3]} != *"none"* ]]; then
83+
extIP="$(cut -d'-' -f2 <<<${strarr[3]})"
84+
break
85+
fi
86+
echo "No external LB allocated"
87+
sleep 1
88+
done
89+
8090
out=$($hexec user timeout 30 ../common/udp_client $extIP 55003)
8191
if [[ ${out} == *"Client"* ]]; then
8292
echo "calico-k3s (kube-loxillb) udp [OK]"
@@ -85,6 +95,24 @@ else
8595
code=1
8696
fi
8797

98+
for((i=0; i<120; i++))
99+
do
100+
extLB=$(sudo kubectl $KUBECONFIG get svc | grep "sctp-lb1")
101+
read -a strarr <<< "$extLB"
102+
len=${#strarr[*]}
103+
if [[ $((len)) -lt 6 ]]; then
104+
echo "Can't find nginx-lb service"
105+
sleep 1
106+
continue
107+
fi
108+
if [[ ${strarr[3]} != *"none"* ]]; then
109+
extIP="$(cut -d'-' -f2 <<<${strarr[3]})"
110+
break
111+
fi
112+
echo "No external LB allocated"
113+
sleep 1
114+
done
115+
88116
out=$($hexec user timeout 30 ../common/sctp_socat_client 1.1.1.1 41291 $extIP 55004)
89117
if [[ ${out} == *"server1"* ]]; then
90118
echo "calico-k3s (kube-loxillb) sctp [OK]"

cicd/k3s-sctpmh/config.sh

+4-5
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ echo "#########################################"
77
echo "Spawning all hosts"
88
echo "#########################################"
99

10-
spawn_docker_host --dock-type loxilb --dock-name llb1 --with-bgp yes --bgp-config $(pwd)/llb1_gobgp_config --with-ka in --ka-config $(pwd)/keepalived_config1
11-
spawn_docker_host --dock-type loxilb --dock-name llb2 --with-bgp yes --bgp-config $(pwd)/llb2_gobgp_config --with-ka in --ka-config $(pwd)/keepalived_config2
10+
spawn_docker_host --dock-type loxilb --dock-name llb1 --with-bgp yes --bgp-config $(pwd)/llb1_gobgp_config --with-ka in
11+
spawn_docker_host --dock-type loxilb --dock-name llb2 --with-bgp yes --bgp-config $(pwd)/llb2_gobgp_config --with-ka in
1212
spawn_docker_host --dock-type host --dock-name ep1
1313
spawn_docker_host --dock-type host --dock-name ep2
1414
spawn_docker_host --dock-type host --dock-name ep3
@@ -99,7 +99,8 @@ $hexec r1 ip route add 20.20.20.1/32 via 11.11.11.11
9999
#add_route llb2 1.1.1.0/24 11.11.11.254
100100

101101
# Route back to user
102-
sudo ip route add 11.11.11.0/24 via 12.12.12.1
102+
sudo ip route add 11.11.11.0/24 via 14.14.14.1
103+
sudo ip route add 123.123.123.0/24 via 14.14.14.1
103104

104105
# Change default route in llb1
105106
$hexec llb1 ip route del default
@@ -195,11 +196,9 @@ $dexec llb1 loxicmd get lb -o wide
195196
echo "llb1: loxicmd get ep -o wide"
196197
echo "****************************"
197198
$dexec llb1 loxicmd get ep -o wide
198-
$dexec llb1 cat /etc/shared/keepalive.state
199199
echo "llb2: loxicmd get lb -o wide"
200200
echo "****************************"
201201
$dexec llb2 loxicmd get lb -o wide
202202
echo "llb2: loxicmd get ep -o wide"
203203
echo "****************************"
204204
$dexec llb2 loxicmd get ep -o wide
205-
$dexec llb2 cat /etc/shared/keepalive.state

cicd/k3s-sctpmh/nginx-svc-lb1.yml

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ apiVersion: v1
22
kind: Service
33
metadata:
44
name: nginx-lb1
5+
annotations:
6+
loxilb.io/lbmode: "fullnat"
7+
loxilb.io/staticIP : "11.11.11.11"
58
spec:
69
externalTrafficPolicy: Local
710
loadBalancerClass: loxilb.io/loxilb

cicd/k3s-sctpmh/nginx.yml

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ apiVersion: v1
22
kind: Pod
33
metadata:
44
name: nginx
5+
annotations:
6+
loxilb.io/lbmode: "fullnat"
7+
loxilb.io/staticIP : "11.11.11.11"
58
labels:
69
app.kubernetes.io/name: proxy
710
spec:

cicd/k3s-sctpmh/validation.sh

+19
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,25 @@ sleep 10
125125
# Wait for cluster to be ready
126126
wait_cluster_ready_full
127127

128+
for((i=0; i<120; i++))
129+
do
130+
extLB=$(sudo kubectl $KUBECONFIG get svc | grep "nginx-lb1")
131+
read -a strarr <<< "$extLB"
132+
len=${#strarr[*]}
133+
if [[ $((len)) -lt 6 ]]; then
134+
echo "Can't find nginx-lb service"
135+
sleep 1
136+
continue
137+
fi
138+
if [[ ${strarr[3]} != *"none"* ]]; then
139+
extIP="$(cut -d'-' -f2 <<<${strarr[3]})"
140+
port=${strarr[4]}
141+
break
142+
fi
143+
echo "No external LB allocated"
144+
sleep 1
145+
done
146+
128147
out=$($hexec user curl -s --connect-timeout 10 http://$extIP:55002)
129148
if [[ ${out} == *"Welcome to nginx"* ]]; then
130149
echo "cluster-k3s TCP service nginx-lb del+add (kube-loxilb) [OK]"

loxinet/cluster.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func (ci *CIStateH) startBFDProto() {
9090
time.Sleep(KAInitTiVal * time.Second)
9191

9292
bs := bfd.StructNew(3784)
93-
err := bs.BFDAddRemote(ci.RemoteIP.String(), 3784, bfd.BFDMinSysTXIntervalUs, 3, "Default", ci)
93+
err := bs.BFDAddRemote(ci.RemoteIP.String(), 3784, bfd.BFDMinSysTXIntervalUs, 3, cmn.CIDefault, ci)
9494
if err != nil {
9595
tk.LogIt(tk.LogCritical, "KA - Cant add BFD remote\n")
9696
}

0 commit comments

Comments
 (0)