blob: 6b889c22f6d5d78c38221c6f248353af3f97f9a0 [file] [log] [blame]
Alexe67127e2022-10-03 14:42:30 -05001### initial folders
2function ewriteln() {
3 echo ${1} | tee -a $MY_PROJFOLDER/env.sh
4}
Alexa0053b92022-10-14 16:38:28 -05005function qkeystone() {
6 keystone_pod=$(kubectl --kubeconfig $MY_PROJFOLDER/envs/mos-kubeconfig.yaml get pod -n openstack -o=custom-columns=NAME:.metadata.name | grep keystone-client)
7 # echo "# Running 'kubectl --kubeconfig $MY_PROJFOLDER/envs/mos-kubeconfig.yaml -n openstack exec {} -c keystone-client --stdin -- "${1}"'"
8 kubectl --kubeconfig $MY_PROJFOLDER/envs/mos-kubeconfig.yaml -n openstack exec ${keystone_pod} -c keystone-client --stdin -- '${1}'
9}
Alexe67127e2022-10-03 14:42:30 -050010
11export MY_PROJFOLDER=/artifacts
12echo "# Using folder '$MY_PROJFOLDER'"
13cd $MY_PROJFOLDER
14[ -f envs ] && mkdir envs
15[ -f yamls ] && mkdir yamls
16[ -f reports ] && mkdir reports
17[ -f tmp ] && mkdir tmp
18
19# move mcc konfig to default place
20if [ -f $MY_PROJFOLDER/mcc-kubeconfig.yaml ]; then
21 mv $MY_PROJFOLDER/mcc-kubeconfig.yaml $MY_PROJFOLDER/envs/mcc-kubeconfig.yaml
22fi
23if [ ! -f $MY_PROJFOLDER/envs/mcc-kubeconfig.yaml ]; then
24 echo "ERROR: MCC kubeconfig not found either at '$MY_PROJFOLDER/mcc-kubeconfig.yaml' or '$MY_PROJFOLDER/envs/mcc-kubeconfig.yaml'"
25fi
26echo " "
27
28### prepare needed variables
29echo "# Updating '$MY_PROJFOLDER/env.sh'"
Alexf7f0a152022-10-10 16:17:32 -050030
Alexe67127e2022-10-03 14:42:30 -050031export KUBECONFIG=$MY_PROJFOLDER/envs/mcc-kubeconfig.yaml
32if [ ! -f $MY_PROJFOLDER/env.sh ]; then
33 touch $MY_PROJFOLDER/env.sh
34else
35 truncate -s 0 $MY_PROJFOLDER/env.sh
36 echo "$MY_PROJFOLDER/env.sh has been truncated"
37fi
Alexf7f0a152022-10-10 16:17:32 -050038ewriteln "export MY_CLIENTNAME='ClientName'"
39ewriteln "export MY_CLIENTSHORTNAME='clname'"
40ewriteln "export MY_PROJNAME='MOS_DEPLOY'"
Alexe67127e2022-10-03 14:42:30 -050041ewriteln "export MY_PROJFOLDER=/artifacts"
Alexf7f0a152022-10-10 16:17:32 -050042
Alexe67127e2022-10-03 14:42:30 -050043# NS & CLUSTER
Alexa0053b92022-10-14 16:38:28 -050044printf "\n\n# Getting namespace and cluster"
45nn=( $(kubectl get cluster -A --no-headers -o=custom-columns=NAME:.metadata.name,NAMESPACE:.metadata.namespace | grep -v default) )
46echo "# Extracted data: '${nn[@]}'"
47vNS="${nn[0]}"
48vCLUSTER="${nn[1]}"
49ewriteln "export MOS_NS=${vNS}"
50ewriteln "export MOS_CLUSTER=${vCLUSTER}"
51echo "# Extracted NS: '${vNS}'"
52echo "# Extracted CLUSTER: '${vCLUSTER}'"
53
54printf "\n\n# Writing additional options"
Alexe67127e2022-10-03 14:42:30 -050055ewriteln "export SI_BINARIES_DIR=$(which helm | rev | cut -d'/' -f2- | rev)"
56ewriteln "export HELM_BINARY_PATH=$(which helm)"
Alexe67127e2022-10-03 14:42:30 -050057
58# extract MOS kubeconfig
59echo " "
Alexa0053b92022-10-14 16:38:28 -050060printf "\n\nExtracting mos-kubeconfig.yaml"
61if [[ ! -z ${vCLUSTER+x} ]]; then
62 kubectl --kubeconfig $MY_PROJFOLDER/envs/mcc-kubeconfig.yaml -n ${vNS} get secrets ${vCLUSTER}-kubeconfig -o jsonpath='{.data.admin\.conf}' | base64 -d | sed 's/:5443/:443/g' | tee $MY_PROJFOLDER/envs/mos-kubeconfig.yaml
Alexe67127e2022-10-03 14:42:30 -050063else
Alexa0053b92022-10-14 16:38:28 -050064 echo "MOS_CLUSTER variable empty/invalid: '${vCLUSTER}'"
Alexe67127e2022-10-03 14:42:30 -050065fi
66
67# generate additional files
Alexa0053b92022-10-14 16:38:28 -050068printf "\n\nPreparing additional files"
Alexe67127e2022-10-03 14:42:30 -050069# copy files
70cp -v /opt/res-files/k8s/workspace/* $MY_PROJFOLDER/envs/
Alexa0053b92022-10-14 16:38:28 -050071[ ! -d $MY_PROJFOLDER/scripts ] && mkdir $MY_PROJFOLDER/scripts
72mv -v $MY_PROJFOLDER/envs/*.sh $MY_PROJFOLDER/scripts/
73# remove duplicate init
74rm -v $MY_PROJFOLDER/scripts/init-workspace.sh
Alexf7f0a152022-10-10 16:17:32 -050075# update IP Addresses
76mccip=$(cat $MY_PROJFOLDER/envs/mcc-kubeconfig.yaml | grep server | cut -d':' -f3 | cut -d'/' -f3)
77echo "-> MCC Server IP is: ${mccip}"
78sed -i "s/ip_address/$mccip/g" $MY_PROJFOLDER/envs/mcc-checker.env
79
80if [ -f $MY_PROJFOLDER/envs/mos-kubeconfig.yaml ]; then
81 mosip=$(cat $MY_PROJFOLDER/envs/mos-kubeconfig.yaml | grep server | cut -d':' -f3 | cut -d'/' -f3)
82 echo "-> MOS Server IP is: ${mosip}"
83 sed -i "s/ip_address/$mosip/g" $MY_PROJFOLDER/envs/mos-checker.env
Alexa0053b92022-10-14 16:38:28 -050084
85 vSC="$(kubectl --kubeconfig $MY_PROJFOLDER/envs/mos-kubeconfig.yaml get sc | grep default | cut -d' ' -f1)"
86 echo "-> Storage class is ${vSC}"
87 echo "# Updating resources yaml "
88 sed -i "s/storage_class/${vSC}/g" $MY_PROJFOLDER/yamls/qa-res.yaml
89 echo " "
90 ewriteln "export MOS_SC=${vSC}"
91
92 ewriteln "export OSH_DEPLOYMENT_NAME=$(kubectl --kubeconfig $MY_PROJFOLDER/envs/mos-kubeconfig.yaml -n openstack get openstackdeployment --no-headers | cut -d' ' -f1)"
93 ewriteln "export SI_BINARIES_DIR=$(which helm | rev | cut -d'/' -f2- | rev)"
94 ewriteln "export HELM_BINARY_PATH=$(which helm)"
95
96 echo " "
97 echo "# Extracting network"
98 keystone_pod=$(kubectl --kubeconfig $MY_PROJFOLDER/envs/mos-kubeconfig.yaml get pod -n openstack -o=custom-columns=NAME:.metadata.name | grep keystone-client)
99 cmd="openstack network list --external -c Name -f value"
100 echo "# Running 'kubectl --kubeconfig $MY_PROJFOLDER/envs/mos-kubeconfig.yaml -n openstack exec ${keystone_pod} -c keystone-client --stdin -- "${cmd}"'"
101 vPUBNET=$(kubectl --kubeconfig $MY_PROJFOLDER/envs/mos-kubeconfig.yaml -n openstack exec ${keystone_pod} -c keystone-client --stdin -- ${cmd})
102 echo "-> 'openstack network list --external -c Name -f value': '${vPUBNET}'"
103 ewriteln "export TEMPEST_CUSTOM_PUBLIC_NET=${vPUBNET}"
104
105 ewriteln "export TEMPEST_CUSTOM_IMAGE=cvp.cirros.51"
106 ewriteln "export TEMPEST_CUSTOM_IMAGE_ALT=cvp.cirros.52"
Alexf7f0a152022-10-10 16:17:32 -0500107 #prepare tempest custom yaml
108 cp /opt/res-files/k8s/yamls/tempest_custom.yaml.clean $MY_PROJFOLDER/yamls/tempest_custom.yaml
109 ewriteln 'export TEMPEST_CUSTOM_PARAMETERS=$(cat $MY_PROJFOLDER/yamls/tempest_custom.yaml)'
110fi
Alexe67127e2022-10-03 14:42:30 -0500111
Alexa0053b92022-10-14 16:38:28 -0500112# Aliases
113ewriteln 'alias k=kubectl'
114
Alexe67127e2022-10-03 14:42:30 -0500115# end
116echo " "
117echo "# Done!"