Skip to content

Commit 0ae421c

Browse files
committed
Make provision.sh generates start_minikube.sh
1 parent de91305 commit 0ae421c

File tree

1 file changed

+72
-7
lines changed

1 file changed

+72
-7
lines changed

provision.sh

Lines changed: 72 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
set -e # Exit script if any error
44

5+
56
echo "Installing Docker ..."
67
# c.f. https://dockr.ly/3cExcay
78
if which docker > /dev/null; then
@@ -10,6 +11,40 @@ else
1011
curl -fsSL https://get.docker.com | sh -
1112
usermod -aG docker vagrant
1213
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+
1348

1449
echo "Installing minikube ..."
1550
# c.f. https://kubernetes.io/docs/tasks/tools/install-minikube/
@@ -20,13 +55,43 @@ else
2055
curl -sLo /usr/local/bin/minikube "$SITE/latest/minikube-linux-amd64"
2156
chmod +x /usr/local/bin/minikube
2257
fi
58+
echo "Done."
2359

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."
2771
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
3274
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

Comments
 (0)