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