mirror of
https://github.com/k8snetworkplumbingwg/multus-cni.git
synced 2025-06-28 00:26:52 +00:00
Merge pull request #556 from s1061123/add-default-route-e2e
Add e2e tests for default-route annotation
This commit is contained in:
commit
d13e06a5df
4
.github/workflows/kind-e2e.yml
vendored
4
.github/workflows/kind-e2e.yml
vendored
@ -33,6 +33,10 @@ jobs:
|
|||||||
working-directory: ./e2e
|
working-directory: ./e2e
|
||||||
run: ./test-simple-macvlan1.sh
|
run: ./test-simple-macvlan1.sh
|
||||||
|
|
||||||
|
- name: Test default route1
|
||||||
|
working-directory: ./e2e
|
||||||
|
run: ./test-default-route1.sh
|
||||||
|
|
||||||
- name: cleanup cluster and registry
|
- name: cleanup cluster and registry
|
||||||
run: |
|
run: |
|
||||||
kind delete cluster
|
kind delete cluster
|
||||||
|
57
e2e/default-route1.yml
Normal file
57
e2e/default-route1.yml
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
---
|
||||||
|
apiVersion: "k8s.cni.cncf.io/v1"
|
||||||
|
kind: NetworkAttachmentDefinition
|
||||||
|
metadata:
|
||||||
|
name: default-route-config
|
||||||
|
spec:
|
||||||
|
config: '{
|
||||||
|
"cniVersion": "0.3.1",
|
||||||
|
"plugins": [
|
||||||
|
{
|
||||||
|
"type": "macvlan",
|
||||||
|
"master": "eth1",
|
||||||
|
"mode": "bridge",
|
||||||
|
"ipam": {
|
||||||
|
"type": "static"
|
||||||
|
}
|
||||||
|
} ]
|
||||||
|
}'
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: default-route-worker1
|
||||||
|
annotations:
|
||||||
|
k8s.v1.cni.cncf.io/networks: '[
|
||||||
|
{ "name": "default-route-config",
|
||||||
|
"ips": [ "10.1.1.21/24" ] ,
|
||||||
|
"default-route": [ "10.1.1.254" ] }
|
||||||
|
]'
|
||||||
|
labels:
|
||||||
|
app: default-route1
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: default-route-worker1
|
||||||
|
image: centos:8
|
||||||
|
command: ["/bin/sleep", "10000"]
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: default-route-worker2
|
||||||
|
annotations:
|
||||||
|
k8s.v1.cni.cncf.io/networks: '[
|
||||||
|
{ "name": "default-route-config",
|
||||||
|
"ips": [ "10.1.1.22/24" ] }
|
||||||
|
]'
|
||||||
|
labels:
|
||||||
|
app: default-route1
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: default-route-worker2
|
||||||
|
image: centos:8
|
||||||
|
command: ["/bin/sleep", "10000"]
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
44
e2e/test-default-route1.sh
Executable file
44
e2e/test-default-route1.sh
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
|
export PATH=${PATH}:./bin
|
||||||
|
|
||||||
|
kubectl create -f default-route1.yml
|
||||||
|
kubectl wait --for=condition=ready -l app=default-route1 --timeout=300s pod
|
||||||
|
|
||||||
|
echo "check default-route-worker1 interface: net1"
|
||||||
|
kubectl exec default-route-worker1 -- ip a show dev net1
|
||||||
|
|
||||||
|
echo "check default-route-worker1 interface address: net1"
|
||||||
|
ipaddr=$(kubectl exec default-route-worker1 -- ip -j a show | jq -r \
|
||||||
|
'.[]|select(.ifname =="net1")|.addr_info[]|select(.family=="inet").local')
|
||||||
|
if [ $ipaddr != "10.1.1.21" ]; then
|
||||||
|
echo "default-route-worker1 IP address is different: ${ipaddr}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "check default-route-worker1 default route"
|
||||||
|
ipaddr=$(kubectl exec default-route-worker1 -- ip -j route | jq -r \
|
||||||
|
'.[]|select(.dst=="default")|.gateway')
|
||||||
|
if [ $ipaddr != "10.1.1.254" ]; then
|
||||||
|
echo "default-route-worker1 default route is different: ${ipaddr}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "check default-route-worker2 interface: net1"
|
||||||
|
kubectl exec default-route-worker2 -- ip a show dev net1
|
||||||
|
|
||||||
|
echo "check default-route-worker2 interface address: net1"
|
||||||
|
ipaddr=$(kubectl exec default-route-worker2 -- ip -j a show | jq -r \
|
||||||
|
'.[]|select(.ifname =="net1")|.addr_info[]|select(.family=="inet").local')
|
||||||
|
if [ $ipaddr != "10.1.1.22" ]; then
|
||||||
|
echo "default-route-worker2 IP address is different: ${ipaddr}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "check default-route-worker2 default route"
|
||||||
|
ipaddr=$(kubectl exec default-route-worker2 -- ip -j route | jq -r \
|
||||||
|
'.[]|select(.dst=="default")|.gateway')
|
||||||
|
if [ $ipaddr != "10.244.1.1" ]; then
|
||||||
|
echo "default-route-worker2 default route is different: ${ipaddr}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "cleanup resources"
|
||||||
|
kubectl delete -f default-route1.yml
|
@ -3,7 +3,7 @@ set -o errexit
|
|||||||
|
|
||||||
export PATH=${PATH}:./bin
|
export PATH=${PATH}:./bin
|
||||||
|
|
||||||
kubectl create -f macvlan1.yml
|
kubectl create -f simple-macvlan1.yml
|
||||||
kubectl wait --for=condition=ready -l app=macvlan --timeout=300s pod
|
kubectl wait --for=condition=ready -l app=macvlan --timeout=300s pod
|
||||||
|
|
||||||
echo "check macvlan1-worker1 interface: net1"
|
echo "check macvlan1-worker1 interface: net1"
|
||||||
@ -25,3 +25,6 @@ ipaddr=$(kubectl exec macvlan1-worker2 -- ip -j a show | jq -r \
|
|||||||
if [ $ipaddr != "10.1.1.12" ]; then
|
if [ $ipaddr != "10.1.1.12" ]; then
|
||||||
echo "macvlan1-worker2 IP address is different: ${ipaddr}"
|
echo "macvlan1-worker2 IP address is different: ${ipaddr}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "cleanup resources"
|
||||||
|
kubectl delete -f simple-macvlan1.yml
|
||||||
|
Loading…
Reference in New Issue
Block a user