Adding k8s cluster for the CD
[icn.git] / deploy / kud / kud_bm_launch.sh
1 #!/bin/bash
2 LIBDIR="$(dirname "$(dirname "$PWD")")"
3
4 source $LIBDIR/env/lib/common.sh
5
6 function get_kud_repo {
7     if [ -d $DOWNLOAD_PATH/multicloud-k8s ]; then
8         rm -rf $DOWNLOAD_PATH/multicloud-k8s
9     fi
10
11     mkdir -p $DOWNLOAD_PATH
12     pushd $DOWNLOAD_PATH
13     git clone https://github.com/onap/multicloud-k8s.git
14     popd
15 }
16
17 function set_ssh_key {
18     if ! [ -f ~/.ssh/id_rsa ]; then
19         echo "Generating rsa key for this host"
20         ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa <&-
21     fi
22
23     if ! grep -qF "$(ssh-keygen -y -f ~/.ssh/id_rsa)" ~/.ssh/authorized_keys; then
24         ssh-keygen -y -f ~/.ssh/id_rsa >> ~/.ssh/authorized_keys
25     fi
26
27     chmod og-wx ~/.ssh/authorized_keys
28 }
29
30 function set_bm_kud {
31     pushd $DOWNLOAD_PATH/multicloud-k8s/kud/hosting_providers/vagrant/inventory
32     HOST_IP=${HOST_IP:-$(hostname -I | cut -d ' ' -f 1)}
33     cat <<EOL > hosts.ini
34 [all]
35 $HOSTNAME ansible_ssh_host=${HOST_IP} ansible_ssh_port=22
36
37 [kube-master]
38 $HOSTNAME
39
40 [kube-node]
41 $HOSTNAME
42
43 [etcd]
44 $HOSTNAME
45
46 [virtlet]
47 $HOSTNAME
48
49 [k8s-cluster:children]
50 kube-node
51 kube-master
52 EOL
53     popd
54 }
55
56 function kud_install {
57     pushd $DOWNLOAD_PATH/multicloud-k8s/kud/hosting_providers/vagrant/
58     ./installer.sh | tee kud_minial_deploy.log
59     popd
60 }
61
62 function verifier {
63     APISERVER=$(kubectl config view --minify -o \
64                     jsonpath='{.clusters[0].cluster.server}')
65     TOKEN=$(kubectl get secret \
66         $(kubectl get serviceaccount default -o \
67         jsonpath='{.secrets[0].name}') -o jsonpath='{.data.token}' | \
68         base64 --decode )
69   call_api $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure
70 }
71
72
73 get_kud_repo
74 set_ssh_key
75 set_bm_kud
76 kud_install
77 verifier
78
79 exit 0