|
2 | 2 |
|
3 | 3 | set -e # Exit script if any error
|
4 | 4 |
|
| 5 | + |
5 | 6 | echo "Installing Docker ..."
|
6 | 7 | # c.f. https://dockr.ly/3cExcay
|
7 | 8 | if which docker > /dev/null; then
|
|
10 | 11 | curl -fsSL https://get.docker.com | sh -
|
11 | 12 | usermod -aG docker vagrant
|
12 | 13 | fi
|
| 14 | +echo "Done." |
| 15 | + |
| 16 | + |
| 17 | +echo "Docker pull SQLFlow images ..." |
| 18 | +# c.f. https://github.com/sql-machine-learning/sqlflow/blob/develop/.travis.yml |
| 19 | +docker pull --quiet sqlflow/sqlflow:latest |
| 20 | +echo "Done." |
| 21 | + |
| 22 | + |
| 23 | +echo "Set Kubernetes environment variables ..." |
| 24 | +cat >> /home/vagrant/.bashrc <<EOF |
| 25 | +export MINIKUBE_WANTUPDATENOTIFICATION=false |
| 26 | +export MINIKUBE_WANTREPORTERRORPROMPT=false |
| 27 | +export MINIKUBE_HOME=/home/vagrant |
| 28 | +export CHANGE_MINIKUBE_NONE_USER=true |
| 29 | +export KUBECONFIG=/home/vagrant/.kube/config |
| 30 | +export K8S_VERSION=v1.18.2 |
| 31 | +export MINIKUBE_VERSION=1.1.1 |
| 32 | +EOF |
| 33 | +export K8S_VERSION=v1.18.2 |
| 34 | +echo "Done." |
| 35 | + |
| 36 | + |
| 37 | +echo "Installing kubectl ..." |
| 38 | +if which kubectl > /dev/null; then |
| 39 | + echo "kubectl installed. Skip." |
| 40 | +else |
| 41 | + SITE="https://storage.googleapis.com/kubernetes-release/release" |
| 42 | + curl -sLo /usr/local/bin/kubectl \ |
| 43 | + "$SITE/$K8S_VERSION/bin/linux/amd64/kubectl" |
| 44 | + chmod +x /usr/local/bin/kubectl |
| 45 | +fi |
| 46 | +echo "Done." |
| 47 | + |
13 | 48 |
|
14 | 49 | echo "Installing minikube ..."
|
15 | 50 | # c.f. https://kubernetes.io/docs/tasks/tools/install-minikube/
|
|
20 | 55 | curl -sLo /usr/local/bin/minikube "$SITE/latest/minikube-linux-amd64"
|
21 | 56 | chmod +x /usr/local/bin/minikube
|
22 | 57 | fi
|
| 58 | +echo "Done." |
23 | 59 |
|
24 |
| -echo "Installing kubectl ..." |
25 |
| -if which kubectl > /dev/null; then |
26 |
| - echo "kubectl installed. Skip." |
| 60 | + |
| 61 | +echo "Configure minikube ..." |
| 62 | +mkdir -p /home/vagrant/.kube /home/vagrant/.minikube |
| 63 | +touch /home/vagrant/.kube/config |
| 64 | +chown -R vagrant /home/vagrant/.bashrc |
| 65 | +echo "Done." |
| 66 | + |
| 67 | + |
| 68 | +echo "Start minikube cluster ..." |
| 69 | +if which conntrack > /dev/null; then |
| 70 | + echo "Skip installing contrack because it has been installed." |
27 | 71 | else
|
28 |
| - SITE="https://storage.googleapis.com/kubernetes-release/release" |
29 |
| - curl -sLo /usr/local/bin/kubectl \ |
30 |
| - "$SITE"/$(curl -s "$SITE/stable.txt")"/bin/linux/amd64/kubectl" |
31 |
| - chmod +x /usr/local/bin/kubectl |
| 72 | + # Kubernetes 1.18.2 requires conntrack. |
| 73 | + sudo apt-get -qq install -y conntrack |
32 | 74 | fi
|
| 75 | +echo "Done." |
| 76 | + |
| 77 | + |
| 78 | +echo "Write /home/vagrant/start_minikube.sh ..." |
| 79 | +cat > /home/vagrant/start_minikube.sh <<EOF |
| 80 | +echo "Start minikube ..." |
| 81 | +sudo minikube start \ |
| 82 | + --vm-driver=none \ |
| 83 | + --kubernetes-version=$K8S_VERSION |
| 84 | +sudo chown -R vagrant: $HOME/.minikube/ |
| 85 | +kubectl cluster-info |
| 86 | +
|
| 87 | +echo "Install Argo on minikube cluster ..." |
| 88 | +kubectl create namespace argo |
| 89 | +kubectl apply -n argo -f \ |
| 90 | + https://raw.githubusercontent.com/argoproj/argo/v2.7.7/manifests/install.yaml |
| 91 | +kubectl create rolebinding default-admin \ |
| 92 | + --clusterrole=admin \ |
| 93 | + --serviceaccount=default:default |
| 94 | +echo "Done." |
| 95 | +EOF |
| 96 | +chmod +x /home/vagrant/start_minikube.sh |
| 97 | +chown -R vagrant /home/vagrant/start_minikube.sh |
0 commit comments