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