blob: 1b5b1062b793d049480f80f8f6481b7866766f5c [file] [log] [blame]
Ievgeniia Zadorozhnabed5b402025-09-04 13:36:16 +02001#!/bin/bash
2
3set -euo pipefail
4. "$(dirname "$0")/functions.sh"
5cd /artifacts
6. env.sh
7. envs/mgmtrc
8. /opt/cfg-checker/.checkervenv/bin/activate
9
10if [[ $# -lt 1 ]]; then
11 echo -e "\nError: No cluster name provided."
12 echo "Usage: $0 <cluster-name>" && echo ""
13 exit 1
14fi
15
16CLUSTER_NAME="$1"
17if ! check_cluster_deployment_exists "$CLUSTER_NAME"; then
18 exit 1
19fi
20
21
22KUBECONFIG_PATH="$MY_PROJFOLDER/envs/kubeconfigs/${CLUSTER_NAME}-kubeconfig.yaml"
23CHECKER_ENV_PATH="$MY_PROJFOLDER/envs/checkers/${CLUSTER_NAME}-checker.env"
24check_file_exists "$KUBECONFIG_PATH" "kubeconfig file" || exit 1
25check_file_exists "$CHECKER_ENV_PATH" "checker.env file" || exit 1
26echo -e "Cluster configuration files found\n"
27
28
29fname="/artifacts/reports/$MY_CLIENTSHORTNAME-${CLUSTER_NAME}-networks-ping-$(get_timestamp)"
30nets=$(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}')
31nets=$(echo "$nets" | tr ' ' '\n' | grep -v '/32' | grep -v '10.99.')
32
33echo "The following CIRDs will be pinged:"
34printf "%s\n\n" "$nets"
35
36cidr_options=""
37for net in $nets; do
38 cidr_options+="--cidr $net " # Append each network to the list
39done
40
41summary=$(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')
42
43
44printf "%s\n" "$summary"
45printf "%s\n" "$summary" > $fname.txt
46
47txt2html_net_ping_report $fname.txt $CLUSTER_NAME $fname.html
48
49echo ""
50echo "The raw txt output is saved to $fname.txt"
51echo "The HTML report is saved to $fname.html"
52deactivate