github.com/pachyderm/pachyderm@v1.13.4/etc/deploy/kubeadm.sh (about) 1 #! /bin/bash 2 3 # set kubectl config locations 4 echo "export KUBECONFIG=/$USER/admin.conf" >> "/$USER/.bashrc" 5 6 # start kubernetes 7 kubeadm init 8 9 # connect kubectl 10 sudo cp /etc/kubernetes/admin.conf "/$USER/" 11 sudo chown "$USER" "/$USER/admin.conf" 12 export KUBECONFIG=/$USER/admin.conf 13 14 # master isolation 15 kubectl taint nodes --all node-role.kubernetes.io/master- 16 17 # install networking 18 kubever=$(kubectl version | base64 | tr -d '\n') 19 export kubever 20 kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever" 21 22 echo "Waiting for networking to come up" 23 start_time=$(date +%s) 24 while true; do 25 kube_dns_running="$(kubectl get pods --all-namespaces | grep kube-dns | grep Running)" 26 if [[ -n "$kube_dns_running" ]]; then 27 break; 28 fi 29 printf "." 30 sleep 1 31 runtime=$(($(date +%s)-$start_time)) 32 if [ $runtime -ge 120 ]; then 33 (>&2 echo "Timed out waiting for kube-dns (120s)") 34 exit 1; 35 fi 36 done 37 38 # allow services to act as admin (not great in general, but an easy way 39 # to make sure pachyderm has access to what it needs in the k8s api) 40 kubectl create clusterrolebinding serviceaccounts-cluster-admin \ 41 --clusterrole=cluster-admin \ 42 --group=system:serviceaccounts 43 44 # deploy pachyderm 45 pachctl deploy local