blob: 1b5b1062b793d049480f80f8f6481b7866766f5c [file] [log] [blame]
#!/bin/bash
set -euo pipefail
. "$(dirname "$0")/functions.sh"
cd /artifacts
. env.sh
. envs/mgmtrc
. /opt/cfg-checker/.checkervenv/bin/activate
if [[ $# -lt 1 ]]; then
echo -e "\nError: No cluster name provided."
echo "Usage: $0 <cluster-name>" && echo ""
exit 1
fi
CLUSTER_NAME="$1"
if ! check_cluster_deployment_exists "$CLUSTER_NAME"; then
exit 1
fi
KUBECONFIG_PATH="$MY_PROJFOLDER/envs/kubeconfigs/${CLUSTER_NAME}-kubeconfig.yaml"
CHECKER_ENV_PATH="$MY_PROJFOLDER/envs/checkers/${CLUSTER_NAME}-checker.env"
check_file_exists "$KUBECONFIG_PATH" "kubeconfig file" || exit 1
check_file_exists "$CHECKER_ENV_PATH" "checker.env file" || exit 1
echo -e "Cluster configuration files found\n"
fname="/artifacts/reports/$MY_CLIENTSHORTNAME-${CLUSTER_NAME}-networks-ping-$(get_timestamp)"
nets=$(mos-checker --env-name $MY_CLIENTSHORTNAME-child --env-config $CHECKER_ENV_PATH --kube-config $KUBECONFIG_PATH network list 2>&1 | grep -A20 "# Runtime networks list" | grep "\:" | grep -v 'o-hm0' | awk '{print $1}')
nets=$(echo "$nets" | tr ' ' '\n' | grep -v '/32' | grep -v '10.99.')
echo "The following CIRDs will be pinged:"
printf "%s\n\n" "$nets"
cidr_options=""
for net in $nets; do
cidr_options+="--cidr $net " # Append each network to the list
done
summary=$(mos-checker --env-name $MY_CLIENTSHORTNAME-child --env-config $CHECKER_ENV_PATH --kube-config $KUBECONFIG_PATH network ping --detailed $cidr_options 2>&1 | awk '/Summary/ {flag=1} flag')
printf "%s\n" "$summary"
printf "%s\n" "$summary" > $fname.txt
txt2html_net_ping_report $fname.txt $CLUSTER_NAME $fname.html
echo ""
echo "The raw txt output is saved to $fname.txt"
echo "The HTML report is saved to $fname.html"
deactivate