3 # Get MAC and IP addresses of VMs provisioned by metal3
4 master0=$(virsh net-dhcp-leases baremetal |grep master-0)
5 masterMAC=$(echo $master0 | cut -d " " -f 3)
6 masterIP=$(echo $master0 | cut -d " " -f 5)
7 masterIP="${masterIP%%/*}"
9 worker0=$(virsh net-dhcp-leases baremetal |grep worker-0)
10 workerMAC=$(echo $worker0 | cut -d " " -f 3)
11 workerIP=$(echo $worker0 | cut -d " " -f 5)
12 workerIP="${workerIP%%/*}"
14 # Create Fake DHCP File
15 mkdir -p /opt/icn/dhcp
16 cat <<EOF > /opt/icn/dhcp/dhcpd.leases
17 # The format of this file is documented in the dhcpd.leases(5) manual page.
18 # This lease file was written by isc-dhcp-4.3.5
20 # authoring-byte-order entry is generated, DO NOT DELETE
21 authoring-byte-order little-endian;
24 starts 4 2019/08/08 22:32:49;
25 ends 4 2019/08/08 23:52:49;
26 cltt 4 2019/08/08 22:32:49;
28 next binding state free;
29 rewind binding state free;
30 hardware ethernet ${masterMAC};
31 client-hostname "master-0";
34 starts 4 2019/08/08 22:32:49;
35 ends 4 2019/08/08 23:52:49;
36 cltt 4 2019/08/08 22:32:49;
38 next binding state free;
39 rewind binding state free;
40 hardware ethernet ${workerMAC};
41 client-hostname "worker-0";
45 # Create ssh-key-secret required for job
46 kubectl create secret generic ssh-key-secret --from-file=id_rsa=/root/.ssh/id_rsa --from-file=id_rsa.pub=/root/.ssh/id_rsa.pub
48 # Create provisioning CR file for testing
49 cat <<EOF > e2e_test_provisioning_cr.yaml
50 apiVersion: bpa.akraino.org/v1alpha1
53 name: e2e-test-provisioning
60 mac-address: ${masterMAC}
63 mac-address: ${workerMAC}
65 kubectl apply -f e2e_test_provisioning_cr.yaml
68 #Check Status of kud job pod
71 while [[ $status == "Running" ]]
73 echo "KUD install job still running"
75 stats=$(kubectl get pods |grep -i kud-cluster-test)
76 status=$(echo $stats | cut -d " " -f 3)
79 if [[ $status == "Completed" ]];
81 printf "KUD Install Job completed\n"
83 printf "KUD Install Job failed\n"
86 printf "Checking cluster status\n"
88 source ../../env/lib/common.sh
89 CLUSTER_NAME=cluster-test
90 KUBECONFIG=--kubeconfig=/opt/kud/multi-cluster/${CLUSTER_NAME}/artifacts/admin.conf
91 APISERVER=$(kubectl ${KUBECONFIG} config view --minify -o jsonpath='{.clusters[0].cluster.server}')
92 TOKEN=$(kubectl ${KUBECONFIG} get secret $(kubectl ${KUBECONFIG} get serviceaccount default -o jsonpath='{.secrets[0].name}') -o jsonpath='{.data.token}' | base64 --decode )
93 call_api $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure
97 printf "\nKubernetes Cluster Install did not complete successfully\n"
99 printf "\nKubernetes Cluster Install was successful\n"
103 printf "\n\nBeginning E2E Test Teardown\n\n"
104 kubectl delete -f e2e_test_provisioning_cr.yaml
105 kubectl delete job kud-cluster-test
106 kubectl delete secret ssh-key-secret
107 rm e2e_test_provisioning_cr.yaml
108 rm -rf /multi-cluster/cluster-test
109 rm /opt/icn/dhcp/dhcpd.leases