github.com/dmaizel/tests@v0.0.0-20210728163746-cae6a2d9cee8/integration/kubernetes/k8s-nginx-connectivity.bats (about) 1 #!/usr/bin/env bats 2 # 3 # Copyright (c) 2018 Intel Corporation 4 # 5 # SPDX-License-Identifier: Apache-2.0 6 # 7 8 load "${BATS_TEST_DIRNAME}/../../.ci/lib.sh" 9 load "${BATS_TEST_DIRNAME}/tests_common.sh" 10 11 setup() { 12 nginx_version=$(get_test_version "docker_images.nginx.version") 13 nginx_image="nginx:$nginx_version" 14 busybox_image="busybox" 15 deployment="nginx-deployment" 16 export KUBECONFIG="${KUBECONFIG:-$HOME/.kube/config}" 17 # Pull the images before launching workload. 18 crictl_pull "$busybox_image" 19 crictl_pull "$nginx_image" 20 21 get_pod_config_dir 22 } 23 24 @test "Verify nginx connectivity between pods" { 25 26 # Create test .yaml 27 sed -e "s/\${nginx_version}/${nginx_image}/" \ 28 "${pod_config_dir}/${deployment}.yaml" > "${pod_config_dir}/test-${deployment}.yaml" 29 30 kubectl create -f "${pod_config_dir}/test-${deployment}.yaml" 31 kubectl wait --for=condition=Available --timeout=$timeout deployment/${deployment} 32 kubectl expose deployment/${deployment} 33 34 busybox_pod="test-nginx" 35 kubectl run $busybox_pod --restart=Never -it --image="$busybox_image" \ 36 -- sh -c 'i=1; while [ $i -le '"$wait_time"' ]; do wget --timeout=5 '"$deployment"' && break; sleep 1; i=$(expr $i + 1); done' 37 38 # check pod's status, it should be Succeeded. 39 # or {.status.containerStatuses[0].state.terminated.reason} = "Completed" 40 [ $(kubectl get pods/$busybox_pod -o jsonpath="{.status.phase}") = "Succeeded" ] 41 kubectl logs "$busybox_pod" | grep "index.html" 42 } 43 44 teardown() { 45 # Debugging information 46 kubectl describe "pod/$busybox_pod" 47 kubectl get "pod/$busybox_pod" -o yaml 48 kubectl logs "$busybox_pod" 49 kubectl get deployment/${deployment} -o yaml 50 kubectl get service/${deployment} -o yaml 51 kubectl get endpoints/${deployment} -o yaml 52 53 rm -f "${pod_config_dir}/test-${deployment}.yaml" 54 kubectl delete deployment "$deployment" 55 kubectl delete service "$deployment" 56 kubectl delete pod "$busybox_pod" 57 }