From fde8a208f2451311846d19cfaca2f2443a94150a Mon Sep 17 00:00:00 2001 From: Serge Hallyn Date: Mon, 22 Apr 2019 20:02:53 -0500 Subject: [PATCH] test: fix the basic test They now pass. Changes: Copy in cni hooks from user. can't create a pod without them. Set a default cni hook. Fix check for running container Signed-off-by: Serge Hallyn --- README.md | 7 ++++++- test/basic.bats | 2 +- test/crio.conf.in | 4 ++-- test/helpers.bash | 23 +++++++++++++++++++---- 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 7aaaa5d2..4e4e7d67 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ OpenSUSE tumbleweed should be uptodate. ## Tests -To run the 'basic' test, you'll need to build cri-o. +To run the 'basic' test, you'll need to build cri-o and CNI. ``` mkdir ~/packages @@ -30,6 +30,11 @@ cd packages git clone https://github.com/kubernetes-sigs/cri-o cd cri-o make +cd .. +git clone https://github.com/containernetworking/cni +git clone https://github.com/containernetworking/plugins cni-plugins +cd cni-plugins +./build_linux.sh ``` You'll also need crictl. Download the tarball, extract it, and diff --git a/test/basic.bats b/test/basic.bats index 3f728486..b9a8c6d4 100644 --- a/test/basic.bats +++ b/test/basic.bats @@ -14,5 +14,5 @@ function teardown() { crictl images podid=$(crictl pods | grep nginx-sandbox | awk '{ print $1 }') crictl create $podid test/basic-container-config.json test/basic-pod-config.json - [ "$(crictl ps -a)" | grep busybox ] + crictl ps -a | grep busybox } diff --git a/test/crio.conf.in b/test/crio.conf.in index 3fd7428c..26c69630 100644 --- a/test/crio.conf.in +++ b/test/crio.conf.in @@ -264,9 +264,9 @@ registries = [ [crio.network] # Path to the directory where CNI configuration files are located. -network_dir = "CRIOLXC_TEST_DIR/cni" +network_dir = "CRIOLXC_TEST_DIR/cni/net.d" # Paths to directories where CNI plugin binaries are located. plugin_dir = [ - "CRIOLXC_TEST_DIR/cni-plugins", + "CRIOLXC_TEST_DIR/cni-plugins/bin", ] diff --git a/test/helpers.bash b/test/helpers.bash index db5319f1..9b906db5 100644 --- a/test/helpers.bash +++ b/test/helpers.bash @@ -16,9 +16,22 @@ function setup_crio { "$ROOT_DIR/test/crio.conf.in" > "$TEMP_DIR/crio.conf" # it doesn't like seccomp_profile = "", so let's make a bogus one echo "{}" > "$TEMP_DIR/seccomp.json" - # it doesn't like if these dirs don't exist, so make them - mkdir -p "$TEMP_DIR/cni" - mkdir -p "$TEMP_DIR/cni-plugins" + # It doesn't like if these dirs don't exist, so always them + # You can't start a pod without them, so if you're going to test + # basic.bats, then + # cd ~/packages; git clone https://github.com/containernetworking/cni + # git clone https://github.com/containernetworking/plugins cni-plugins + # cd cni-plugins; ./build_linux.sh + mkdir -p "$TEMP_DIR/cni/net.d" + mkdir -p /tmp/busybox # for the logfile as per log_directory in test/basic-pod-config.json + if [ -d ~/packages/cni-plugins ]; then + rsync -a ~/packages/cni-plugins $TEMP_DIR/ + cat > $TEMP_DIR/cni/net.d/10-myptp.conf << EOF +{"cniVersion":"0.3.1","name":"myptp","type":"ptp","ipMasq":true,"ipam":{"type":"host-local","subnet":"172.16.29.0/24","routes":[{"dst":"0.0.0.0/0"}]}} +EOF + else + mkdir -p "$TEMP_DIR/cni-plugins" + fi # set up an insecure policy echo '{"default": [{"type": "insecureAcceptAnything"}]}' > "$TEMP_DIR/policy.json" "$CRIO_REPO/bin/crio" --config "$TEMP_DIR/crio.conf" & @@ -39,7 +52,9 @@ function cleanup_tempdir { function crictl { # watch out for: https://github.com/kubernetes-sigs/cri-tools/issues/460 - $(which crictl) --runtime-endpoint "$TEMP_DIR/crio.sock" $@ + # If you need more debug output, set CRICTLDEBUG to -D + CRICTLDEBUG="" + $(which crictl) $(CRICTLDEBUG) --runtime-endpoint "$TEMP_DIR/crio.sock" $@ echo "$output" }