#!/bin/bash # # Health checking DLS store, and install cluster's addons source .common prereqs_addons() { for com in curl kubectl ; do command -v $com 1>/dev/null || perror "Command $com is not installed, aborting..." done cluster=$(basename $ctxdir/clusters/*.yaml|sed 's/.yaml//') } install_addons() { body='{"Kind":"cluster","Name":"'$cluster'","Assets":["addons"]}' download_id=$(dls /authorize-download -d "$body"|tr -d \") dls /public/downloads/${download_id}/addons |\ kubectl --kubeconfig kubeconfig apply -f - } approve_kubelet_certificates() { tries=5 nodes_num=$(kctl get node -oname|wc -l) while [ "$nodes_num" != "${#hosts[*]}" ] ; do pinfo "Waiting for certificates requests to be created by Kubelet when it's ready..." sleep 60s csrs="$(kctl get csr -oname)" if [ "$csrs" != "" ]; then kctl certificate approve $csr fi ((tries--)) if [ $tries < 1 ]; then pinfo "Timeout waiting for kubelet certificates creation, please investigate why all nodes are not up by now" break fi done pinfo "All kubelets ($nodes_num) are up, enjoy !" } prereqs prereqs_addons check_conf unlock_store install_addons declare -A hosts get_hosts # get hosts list approve_kubelet_certificates # clients and serving certs