36 lines
1,007 B
Bash
Executable file
36 lines
1,007 B
Bash
Executable file
#!/bin/bash
|
||
set -uo pipefail
|
||
ZARYA_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||
source "${ZARYA_DIR}/lib/common.sh"
|
||
|
||
query="${1:-}"
|
||
if [[ -z "${query}" ]]; then
|
||
log_err "Использование: z logs <сервис> [-f] [-t <строки>]"
|
||
exit 1
|
||
fi
|
||
shift
|
||
|
||
follow_arg=""
|
||
tail_val="50"
|
||
|
||
while [[ $# -gt 0 ]]; do
|
||
case "$1" in
|
||
-f|--follow) follow_arg="-f"; shift ;;
|
||
-t|--tail) tail_val="$2"; shift 2 ;;
|
||
*) shift ;;
|
||
esac
|
||
done
|
||
|
||
pod_info=$(kubectl get pods -A --no-headers 2>/dev/null | awk -v q="${query}" 'tolower($1) ~ tolower(q) || tolower($2) ~ tolower(q) {print $1, $2; exit}')
|
||
|
||
if [[ -z "${pod_info}" ]]; then
|
||
log_err "Под с именем '${query}' не найден ни в одном namespace."
|
||
exit 1
|
||
fi
|
||
|
||
ns=$(echo "${pod_info}" | awk '{print $1}')
|
||
pod=$(echo "${pod_info}" | awk '{print $2}')
|
||
|
||
log_info "Логи ${ns}/${pod} (tail: ${tail_val}):"
|
||
exec kubectl logs -n "${ns}" "${pod}" --tail="${tail_val}" ${follow_arg}
|