test: Add host pod ping test
We create a pod with host networking and we try to ping it from the host. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
5273bef5d2
commit
b6455253c2
3 changed files with 102 additions and 0 deletions
|
@ -245,6 +245,14 @@ function parse_pod_ip() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ping_host_pod() {
|
||||||
|
pod_ip=`ocic pod status --id $1 | grep "IP Address" | cut -d ' ' -f 3`
|
||||||
|
|
||||||
|
ping -W 1 -c 5 $pod_ip
|
||||||
|
|
||||||
|
echo $?
|
||||||
|
}
|
||||||
|
|
||||||
function ping_pod() {
|
function ping_pod() {
|
||||||
netns=`ocic pod status --id $1 | grep namespace | cut -d ' ' -f 3`
|
netns=`ocic pod status --id $1 | grep namespace | cut -d ' ' -f 3`
|
||||||
inet=`ip netns exec \`basename $netns\` ip addr show dev eth0 scope global | grep inet`
|
inet=`ip netns exec \`basename $netns\` ip addr show dev eth0 scope global | grep inet`
|
||||||
|
|
|
@ -60,6 +60,37 @@ load helpers
|
||||||
stop_ocid
|
stop_ocid
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "Ping host pod from the host" {
|
||||||
|
# this test requires docker, thus it can't yet be run in a container
|
||||||
|
if [ "$TRAVIS" = "true" ]; then # instead of $TRAVIS, add a function is_containerized to skip here
|
||||||
|
skip "cannot yet run this test in a container, use sudo make localintegration"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$OCID_CNI_PLUGIN/bridge" ]; then
|
||||||
|
skip "missing CNI bridge plugin, please install it"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "$OCID_CNI_PLUGIN/host-local" ]; then
|
||||||
|
skip "missing CNI host-local IPAM, please install it"
|
||||||
|
fi
|
||||||
|
|
||||||
|
prepare_network_conf $POD_CIDR
|
||||||
|
|
||||||
|
start_ocid
|
||||||
|
run ocic pod run --config "$TESTDATA"/sandbox_config_hostnet.json
|
||||||
|
echo "$output"
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
pod_id="$output"
|
||||||
|
|
||||||
|
ping_host_pod $pod_id
|
||||||
|
|
||||||
|
cleanup_pods
|
||||||
|
cleanup_network_conf
|
||||||
|
|
||||||
|
stop_ocid
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@test "Ping pod from another pod" {
|
@test "Ping pod from another pod" {
|
||||||
# this test requires docker, thus it can't yet be run in a container
|
# this test requires docker, thus it can't yet be run in a container
|
||||||
if [ "$TRAVIS" = "true" ]; then # instead of $TRAVIS, add a function is_containerized to skip here
|
if [ "$TRAVIS" = "true" ]; then # instead of $TRAVIS, add a function is_containerized to skip here
|
||||||
|
|
63
test/testdata/sandbox_config_hostnet.json
vendored
Normal file
63
test/testdata/sandbox_config_hostnet.json
vendored
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"name": "podsandbox1",
|
||||||
|
"uid": "redhat-test-ocid",
|
||||||
|
"namespace": "redhat.test.ocid",
|
||||||
|
"attempt": 1
|
||||||
|
},
|
||||||
|
"hostname": "ocic_host",
|
||||||
|
"log_directory": ".",
|
||||||
|
"dns_options": {
|
||||||
|
"servers": [
|
||||||
|
"server1.redhat.com",
|
||||||
|
"server2.redhat.com"
|
||||||
|
],
|
||||||
|
"searches": [
|
||||||
|
"8.8.8.8"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"port_mappings": [
|
||||||
|
{
|
||||||
|
"name": "port_map1",
|
||||||
|
"protocol": 1,
|
||||||
|
"container_port": 80,
|
||||||
|
"host_port": 4888,
|
||||||
|
"host_ip": "192.168.0.33"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "port_map2",
|
||||||
|
"protocol": 2,
|
||||||
|
"container_port": 81,
|
||||||
|
"host_port": 4889,
|
||||||
|
"host_ip": "192.168.0.33"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"resources": {
|
||||||
|
"cpu": {
|
||||||
|
"limits": 3,
|
||||||
|
"requests": 2
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"limits": 50000000,
|
||||||
|
"requests": 2000000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"labels": {
|
||||||
|
"group": "test"
|
||||||
|
},
|
||||||
|
"annotations": {
|
||||||
|
"owner": "hmeng",
|
||||||
|
"security.alpha.kubernetes.io/unsafe-sysctls": "kernel.msgmax=8192" ,
|
||||||
|
"security.alpha.kubernetes.io/seccomp/pod": "unconfined"
|
||||||
|
},
|
||||||
|
"linux": {
|
||||||
|
"cgroup_parent": "/ocid-podsandbox1",
|
||||||
|
"security_context": {
|
||||||
|
"namespace_options": {
|
||||||
|
"host_network": true,
|
||||||
|
"host_pid": false,
|
||||||
|
"host_ipc": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue