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"