16430: add Minikube integration test
[arvados-k8s.git] / tests / minikube.sh
1 #!/bin/bash
2
3 set -e
4
5 testReady() {
6   set +e
7   ready=0
8   apiReady=0
9   keepProxyReady=0
10   curl -k -s -H "Authorization: Bearer $MANAGEMENTTOKEN" https://`minikube ip`:444/rails/_health/ping |grep -q OK
11   if [[ $? -eq 0 ]]; then
12     apiReady=1
13   fi
14   curl -k -s -H "Authorization: Bearer $MANAGEMENTTOKEN" https://`minikube ip`:25107/_health/ping |grep -q OK
15   if [[ $? -eq 0 ]]; then
16     keepProxyReady=1
17   fi
18   if [[ $apiReady -eq 1 ]] && [[ $keepProxyReady -eq 1 ]]; then
19     ready=1
20   fi
21   set -e
22 }
23
24 stopCluster() {
25   echo "Stopping Arvados cluster..."
26   cd $MY_PATH/../charts/arvados
27   helm delete arvados
28
29   echo "Stopping Minikube"
30   minikube stop
31 }
32
33 startCluster() {
34   echo "Starting Minikube"
35   minikube start
36
37   echo "Starting Arvados cluster..."
38   cd $MY_PATH/../charts/arvados
39   ./cert-gen.sh `minikube ip`
40
41   helm install arvados . --set externalIP=`minikube ip`
42
43   ./minikube-external-ip.sh
44
45   echo "Waiting for cluster health OK..."
46   while [ $ready -ne 1 ]; do
47     testReady
48     sleep 1
49   done
50 }
51
52 main() {
53   MY_PATH=`pwd`
54   MANAGEMENTTOKEN=`cat $MY_PATH/../charts/arvados/config/config.yml |grep Management |cut -f2 -d ':' |sed -e 's/ //'`
55   date
56   testReady
57
58   if [[ $ready -ne 1 ]]; then
59     startCluster
60   fi
61   date
62   echo "cluster health OK"
63  
64   export ARVADOS_API_HOST=`minikube ip`:444
65   export ARVADOS_API_HOST_INSECURE=true
66   export ARVADOS_API_TOKEN=`grep superUserSecret $MY_PATH/../charts/arvados/values.yaml |cut -f2 -d\"`
67
68   cd $MY_PATH/cwl-diagnostics-hasher/
69
70   echo "uploading requirements for CWL hasher"
71   arv-put 4xphq-8i9sb-fmwod1qn74cemdp.log.txt  --no-resume
72   echo "uploading Arvados jobs image for CWL hasher"
73   # just in case, clear the arv-put cache first, arv-keepdocker doesn't pass through --no-resume
74   rm -rf ~/.cache/arvados/arv-put
75   echo "running CWL hasher"
76   cwl-runner hasher-workflow.cwl hasher-workflow-job.yml
77   if [[ $? -eq 0 ]]; then
78     echo "Success!"
79   else
80     echo "Test failed!"
81   fi
82
83   stopCluster
84 }
85
86 main