github.phpd.cn/cilium/cilium@v1.6.12/tests/k8s/run-tests.bash (about) 1 #!/usr/bin/env bash 2 3 set -ex 4 5 dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 6 source "${dir}/../helpers.bash" 7 # dir might have been overwritten by helpers.bash 8 dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 9 10 builder=$(get_k8s_vm_name builder) 11 node1=$(get_k8s_vm_name k8s1) 12 node2=$(get_k8s_vm_name k8s2) 13 14 function vmssh(){ 15 k8s_version="${k8s_version}" vagrant ssh ${1} -- -o SendEnv=k8s_version -t ${2} 16 } 17 18 # reinstall_kubeadmn re-installs kubeadm in the given VM without clearing up 19 # etcd 20 function reinstall_kubeadmn(){ 21 vm="${1}" 22 k8s_version="${2}" 23 vmssh ${vm} '/home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/cluster/cluster-manager.bash reinstall --yes-delete-all-data --reinstall-kubeadm' 24 vmssh ${vm} 'sudo cp -R /root/.kube /home/vagrant' 25 vmssh ${vm} 'sudo chown vagrant.vagrant -R /home/vagrant/.kube' 26 } 27 28 function reinstall_ipv4(){ 29 vm="${1}" 30 k8s_version="${2}" 31 vmssh ${vm} '/home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/cluster/cluster-manager.bash reinstall --yes-delete-all-data' 32 vmssh ${vm} 'sudo cp -R /root/.kube /home/vagrant' 33 vmssh ${vm} 'sudo chown vagrant.vagrant -R /home/vagrant/.kube' 34 } 35 36 function reinstall_ipv6(){ 37 vm="${1}" 38 k8s_version="${2}" 39 vmssh ${vm} '/home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/cluster/cluster-manager.bash reinstall --ipv6 --yes-delete-all-data' 40 vmssh ${vm} 'sudo cp -R /root/.kube /home/vagrant' 41 vmssh ${vm} 'sudo chown vagrant.vagrant -R /home/vagrant/.kube' 42 } 43 44 function deploy_cilium(){ 45 k8s_version="${1}" 46 vmssh ${node2} '/home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/cluster/cluster-manager.bash deploy_cilium' 47 } 48 49 function deploy_cilium_lb(){ 50 k8s_version="${1}" 51 vmssh ${node2} '/home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/cluster/cluster-manager.bash deploy_cilium --lb-mode' 52 } 53 54 function run_tests(){ 55 k8s_version="${1}" 56 echo "====================== K8S VERSION ======================" 57 echo "Node 1" 58 vagrant ssh ${node1} -- -t 'kubectl version' 59 echo "Node 2" 60 vagrant ssh ${node2} -- -t 'kubectl version' 61 62 echo "================== Running in IPv4 mode ==================" 63 64 reinstall_ipv4 ${node1} ${k8s_version} 65 reinstall_ipv4 ${node2} ${k8s_version} 66 # Set up cilium-lb-ds and cilium-ds 67 deploy_cilium ${k8s_version} 68 69 70 # Run non IP version specific tests 71 vmssh ${node2} 'set -e; set -o pipefail; for test in /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/*.sh; do file=$(basename $test); filename="${file%.*}"; mkdir -p /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/cilium-files/$filename; $test | tee /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/cilium-files/"${filename}"/output.txt; done' 72 # Run ipv4 tests 73 vmssh ${node2} 'set -e; set -o pipefail; for test in /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/ipv4/*.sh; do file=$(basename $test); filename="${file%.*}"; mkdir -p /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/cilium-files/$filename; $test | tee /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/cilium-files/"${filename}"/output.txt; done' 74 75 # Check for deadlocks on node1 cilium pods 76 vmssh ${node1} 'set -e; set -o pipefail; for test in /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/999*.sh; do file=$(basename $test); filename="${file%.*}"; mkdir -p /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/cilium-files/$filename; $test | tee /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/cilium-files/"${filename}"/output.txt; done' 77 # Run IPv6 tests 78 79 # Reinstall everything with IPv6 addresses 80 # FIXME Kubeadm doesn't quite support IPv6 yet 81 #reinstall_ipv6 ${node1} ${k8s_version} 82 #reinstall_ipv6 ${node2} ${k8s_version} 83 84 echo "================== Running in IPv6 mode ==================" 85 86 echo "IPv6 tests are currently disabled" 87 # Run the GSG first and then restart the cluster to run the remaining tests 88 #vmssh ${node1} 'set -e; /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/00-gsg-test.bash' 89 # 90 # Set up cilium-lb-ds and cilium-ds 91 #deploy_cilium ${k8s_version} 92 93 # Run non IP version specific tests 94 #vmssh ${node2} 'set -e; for test in /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/*.sh; do $test; done' 95 # Run ipv6 tests 96 #vmssh ${node2} 'set -e; for test in /home/vagrant/go/src/github.com/cilium/cilium/tests/k8s/tests/ipv6/*.sh; do $test; done' 97 } 98 99 # Docker registry not needed after provisioning. 100 VAGRANT_DEFAULT_PROVIDER=virtualbox vagrant destroy -f ${builder} || echo "Nothing to destroy" 101 102 # Run tests in k8s 1.6.6 (which is installed by default in Vagrantfile) 103 run_tests "1.6.6-00" 104 # Run tests in k8s 1.7.4 (where we need to reinstall it) 105 reinstall_kubeadmn ${node1} "1.7.4-00" 106 reinstall_kubeadmn ${node2} "1.7.4-00" 107 run_tests "1.7.4-00"