github.com/looshlee/cilium@v1.6.12/examples/kubernetes-ingress/scripts/04-install-kubectl.sh (about)

     1  #!/usr/bin/env bash
     2  #
     3  # Installs and configures kubernetes kubect, it will use default values from
     4  # ./helpers.bash
     5  # Globals:
     6  #   INSTALL, if set installs k8s binaries, otherwise it will only configure k8s
     7  #######################################
     8  
     9  dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
    10  
    11  source "${dir}/helpers.bash"
    12  
    13  cache_dir="${dir}/../../../hack/cache/k8s/${k8s_version}"
    14  
    15  log "Installing kubernetes kubectl..."
    16  
    17  set -e
    18  
    19  if [ -n "${INSTALL}" ]; then
    20      download_to "${cache_dir}" "kubectl" \
    21          "https://dl.k8s.io/release/${k8s_version}/bin/linux/amd64/kubectl"
    22  
    23      cp "${cache_dir}/kubectl" .
    24  
    25      chmod +x kubectl
    26      sudo mv kubectl /usr/local/bin
    27  fi
    28  
    29  certs_dir="${dir}/certs"
    30  
    31  mkdir -p /home/vagrant/.kube/certs
    32  
    33  cp "${certs_dir}/k8s-admin.pem" \
    34     "${certs_dir}/k8s-admin-key.pem" \
    35     "${certs_dir}/ca-k8s.pem" \
    36     /home/vagrant/.kube/certs
    37  
    38  kubectl config set-cluster kubernetes-cilium \
    39      --certificate-authority=/home/vagrant/.kube/certs/ca-k8s.pem \
    40      --embed-certs=true \
    41      --server=https://${kubernetes_master}:6443
    42  
    43  kubectl config set-credentials admin \
    44      --client-certificate=/home/vagrant/.kube/certs/k8s-admin.pem \
    45      --client-key=/home/vagrant/.kube/certs/k8s-admin-key.pem \
    46      --embed-certs=true
    47  
    48  kubectl config set-context kubernetes-cilium \
    49      --cluster=kubernetes-cilium \
    50      --user=admin
    51  
    52  kubectl config use-context kubernetes-cilium
    53  
    54  sudo cp /root/.kube/config /home/vagrant/.kube/config
    55  
    56  sudo chmod 755 /home/vagrant/.kube/config
    57  
    58  sudo chown vagrant.vagrant -R /home/vagrant/.kube
    59  
    60  until kubectl get componentstatuses
    61  do
    62  log "Waiting for kubectl to connect to api-server"
    63  sleep 1s
    64  done
    65  
    66  kubectl get nodes
    67  
    68  log "Installing kubernetes kubectl... DONE!"