Add a release pipeline including tests for Bird2 and VPP
This commit is contained in:
57
tests/01-vpp-bird/01-e2e-lab.robot
Normal file
57
tests/01-vpp-bird/01-e2e-lab.robot
Normal file
@@ -0,0 +1,57 @@
|
||||
*** Settings ***
|
||||
Library OperatingSystem
|
||||
Resource ../ssh.robot
|
||||
Resource ../common.robot
|
||||
|
||||
Suite Teardown Run Keyword Cleanup
|
||||
|
||||
|
||||
*** Variables ***
|
||||
${lab-name} e2e-vpp
|
||||
${lab-file-name} e2e-lab/vpp.clab.yml
|
||||
${runtime} docker
|
||||
|
||||
|
||||
*** Test Cases ***
|
||||
Deploy ${lab-name} lab
|
||||
Log ${CURDIR}
|
||||
${rc} ${output} = Run And Return Rc And Output
|
||||
... ${CLAB_BIN} --runtime ${runtime} deploy -t ${CURDIR}/${lab-file-name}
|
||||
Log ${output}
|
||||
Should Be Equal As Integers ${rc} 0
|
||||
|
||||
Pause to let OSPF converge
|
||||
Sleep 20s
|
||||
|
||||
Check BFD Adjacencies
|
||||
${rc} ${output} = Run And Return Rc And Output
|
||||
... ${CLAB_BIN} --runtime ${runtime} exec -t ${CURDIR}/${lab-file-name} --label clab-node-name\=vpp2 --cmd "birdc show bfd ses"
|
||||
Log ${output}
|
||||
Should Be Equal As Integers ${rc} 0
|
||||
Should Match Regexp ${output} (?m)fe80::.*eth2.*Up
|
||||
Should Match Regexp ${output} (?m)10\.82\.98\..*eth2.*Up
|
||||
|
||||
Check OSPF IPv4 Adjacency
|
||||
${rc} ${output} = Run And Return Rc And Output
|
||||
... ${CLAB_BIN} --runtime ${runtime} exec -t ${CURDIR}/${lab-file-name} --label clab-node-name\=vpp1 --cmd "birdc show ospf nei ospf4"
|
||||
Log ${output}
|
||||
Should Be Equal As Integers ${rc} 0
|
||||
Should Match Regexp ${output} (?m)Full/PtP.*eth2
|
||||
|
||||
Check OSPF IPv6 Adjacency
|
||||
${rc} ${output} = Run And Return Rc And Output
|
||||
... ${CLAB_BIN} --runtime ${runtime} exec -t ${CURDIR}/${lab-file-name} --label clab-node-name\=vpp2 --cmd "birdc show ospf nei ospf6"
|
||||
Log ${output}
|
||||
Should Be Equal As Integers ${rc} 0
|
||||
Should Match Regexp ${output} (?m)Full/PtP.*eth2
|
||||
|
||||
Ensure client1 can ping client2
|
||||
${rc} ${output} = Run And Return Rc And Output
|
||||
... ${CLAB_BIN} --runtime ${runtime} exec -t ${CURDIR}/${lab-file-name} --label clab-node-name\=client1 --cmd "ping -c 5 10.82.98.82"
|
||||
Log ${output}
|
||||
Should Be Equal As Integers ${rc} 0
|
||||
Should Contain ${output} 5 packets transmitted, 4 packets received, 20% packet loss
|
||||
|
||||
*** Keywords ***
|
||||
Cleanup
|
||||
Run ${CLAB_BIN} --runtime ${runtime} destroy -t ${CURDIR}/${lab-file-name} --cleanup
|
||||
19
tests/01-vpp-bird/e2e-lab/config/vpp1/bird-local.conf
Normal file
19
tests/01-vpp-bird/e2e-lab/config/vpp1/bird-local.conf
Normal file
@@ -0,0 +1,19 @@
|
||||
protocol bfd bfd1 {
|
||||
interface "eth2" { interval 100 ms; multiplier 30; };
|
||||
}
|
||||
|
||||
protocol ospf v2 ospf4 {
|
||||
ipv4 { import all; export all; };
|
||||
area 0 {
|
||||
interface "loop0" { stub yes; };
|
||||
interface "eth2" { type pointopoint; cost 10; bfd on; };
|
||||
};
|
||||
}
|
||||
|
||||
protocol ospf v3 ospf6 {
|
||||
ipv6 { import all; export all; };
|
||||
area 0 {
|
||||
interface "loop0" { stub yes; };
|
||||
interface "eth2" { type pointopoint; cost 10; bfd on; };
|
||||
};
|
||||
}
|
||||
16
tests/01-vpp-bird/e2e-lab/config/vpp1/vppcfg.yaml
Normal file
16
tests/01-vpp-bird/e2e-lab/config/vpp1/vppcfg.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
interfaces:
|
||||
eth1:
|
||||
description: "To client1"
|
||||
mtu: 1500
|
||||
lcp: eth1
|
||||
addresses: [10.82.98.65/28, 2001:db8:8298:101::1/64]
|
||||
eth2:
|
||||
description: "To vpp2"
|
||||
mtu: 9216
|
||||
lcp: eth2
|
||||
addresses: [10.82.98.16/31, 2001:db8:8298:1::1/64]
|
||||
loopbacks:
|
||||
loop0:
|
||||
description: "vpp1"
|
||||
lcp: loop0
|
||||
addresses: [10.82.98.0/32, 2001:db8:8298::/128]
|
||||
19
tests/01-vpp-bird/e2e-lab/config/vpp2/bird-local.conf
Normal file
19
tests/01-vpp-bird/e2e-lab/config/vpp2/bird-local.conf
Normal file
@@ -0,0 +1,19 @@
|
||||
protocol bfd bfd1 {
|
||||
interface "eth2" { interval 100 ms; multiplier 30; };
|
||||
}
|
||||
|
||||
protocol ospf v2 ospf4 {
|
||||
ipv4 { import all; export all; };
|
||||
area 0 {
|
||||
interface "loop0" { stub yes; };
|
||||
interface "eth2" { type pointopoint; cost 10; bfd on; };
|
||||
};
|
||||
}
|
||||
|
||||
protocol ospf v3 ospf6 {
|
||||
ipv6 { import all; export all; };
|
||||
area 0 {
|
||||
interface "loop0" { stub yes; };
|
||||
interface "eth2" { type pointopoint; cost 10; bfd on; };
|
||||
};
|
||||
}
|
||||
16
tests/01-vpp-bird/e2e-lab/config/vpp2/vppcfg.yaml
Normal file
16
tests/01-vpp-bird/e2e-lab/config/vpp2/vppcfg.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
interfaces:
|
||||
eth1:
|
||||
description: "To client2"
|
||||
mtu: 1500
|
||||
lcp: eth1
|
||||
addresses: [10.82.98.81/28, 2001:db8:8298:102::1/64]
|
||||
eth2:
|
||||
description: "To vpp1"
|
||||
mtu: 9216
|
||||
lcp: eth2
|
||||
addresses: [10.82.98.17/31, 2001:db8:8298:1::2/64]
|
||||
loopbacks:
|
||||
loop0:
|
||||
description: "vpp2"
|
||||
lcp: loop0
|
||||
addresses: [10.82.98.1/32, 2001:db8:8298::1/128]
|
||||
38
tests/01-vpp-bird/e2e-lab/vpp.clab.yml
Normal file
38
tests/01-vpp-bird/e2e-lab/vpp.clab.yml
Normal file
@@ -0,0 +1,38 @@
|
||||
name: e2e-vpp
|
||||
|
||||
topology:
|
||||
kinds:
|
||||
fdio_vpp:
|
||||
image: ${IMAGE}
|
||||
startup-config: config/__clabNodeName__/vppcfg.yaml
|
||||
binds:
|
||||
- config/__clabNodeName__/bird-local.conf:/config/bird/bird-local.conf:ro
|
||||
linux:
|
||||
image: alpine:latest
|
||||
|
||||
nodes:
|
||||
vpp1:
|
||||
kind: fdio_vpp
|
||||
vpp2:
|
||||
kind: fdio_vpp
|
||||
client1:
|
||||
kind: linux
|
||||
exec:
|
||||
- ip link set address 00:c1:ab:00:00:01 dev eth1
|
||||
- ip addr add 10.82.98.66/28 dev eth1
|
||||
- ip route add 10.82.98.0/24 via 10.82.98.65
|
||||
- ip addr add 2001:db8:8298:101::2/64 dev eth1
|
||||
- ip route add 2001:db8:8298::/48 via 2001:db8:8298:101::1
|
||||
client2:
|
||||
kind: linux
|
||||
exec:
|
||||
- ip link set address 00:c1:ab:00:00:02 dev eth1
|
||||
- ip addr add 10.82.98.82/28 dev eth1
|
||||
- ip route add 10.82.98.0/24 via 10.82.98.81
|
||||
- ip addr add 2001:db8:8298:102::2/64 dev eth1
|
||||
- ip route add 2001:db8:8298::/48 via 2001:db8:8298:102::1
|
||||
|
||||
links:
|
||||
- endpoints: ["vpp1:eth2", "vpp2:eth2"]
|
||||
- endpoints: ["client1:eth1", "vpp1:eth1"]
|
||||
- endpoints: ["client2:eth1", "vpp2:eth1"]
|
||||
Reference in New Issue
Block a user