4 SCRIPTDIR="$(readlink -f $(dirname ${BASH_SOURCE[0]}))"
5 LIBDIR="$(dirname $(dirname ${SCRIPTDIR}))/env/lib"
7 source $LIBDIR/common.sh
9 export KUBESPRAY_VERSION=2.16.0
11 function get_kud_repo {
13 export KUD_ADDONS=multus
16 function set_ssh_key {
17 if ! [ -f ~/.ssh/id_rsa ]; then
18 echo "Generating rsa key for this host"
19 ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa <&-
22 if ! grep -qF "$(ssh-keygen -y -f ~/.ssh/id_rsa)" ~/.ssh/authorized_keys; then
23 ssh-keygen -y -f ~/.ssh/id_rsa >> ~/.ssh/authorized_keys
26 chmod og-wx ~/.ssh/authorized_keys
30 pushd ${KUDPATH}/kud/hosting_providers/vagrant/inventory
31 HOST_IP=${HOST_IP:-$(hostname -I | cut -d ' ' -f 1)}
33 if [[ ! -z "${DOCKER_REGISTRY_MIRRORS+x}" ]]; then
35 for mirror in ${DOCKER_REGISTRY_MIRRORS}; do
36 OPTIONS="${OPTIONS} --registry-mirror=${mirror}"
38 DOCKER_OPTIONS="docker_options=\"${OPTIONS# }\""
42 $HOSTNAME ansible_ssh_host=${HOST_IP} ansible_ssh_port=22 ${DOCKER_OPTIONS}
53 [k8s-cluster:children]
60 function kud_install {
61 pushd ${KUDPATH}/kud/hosting_providers/vagrant/
62 ./installer.sh | tee kud_deploy.log
67 # Pick up the kubespray ANSIBLE_CONFIG from /etc/environment
68 source /etc/environment
69 pushd ${KUDPATH}/kud/hosting_providers/vagrant/
70 ansible-playbook -i inventory/hosts.ini /opt/kubespray-${KUBESPRAY_VERSION}/reset.yml \
71 --become --become-user=root -e reset_confirmation=yes
76 APISERVER=$(kubectl config view --minify -o \
77 jsonpath='{.clusters[0].cluster.server}')
78 TOKEN=$(kubectl get secret \
79 $(kubectl get serviceaccount default -o \
80 jsonpath='{.secrets[0].name}') -o jsonpath='{.data.token}' | \
82 call_api $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure
85 if [ "$1" == "reset" ] ; then