patdev/k3-a40-bootstrap
01.3k
1#!/usr/bin/env bash2# Controle Ada sous `vllm/vllm-openai:v0.27.1` -- LA MEME image que les jobs3# Blackwell et H200. C'etait la variable de trop : le pod tournait auparavant4# sous l'image du Space, et un controle ne vaut que si tout le reste est egal.5#6# Cette image n'a ni /opt/venv, ni /start.sh, ni sshd. Le seul interpreteur est7# `python3`, et `vllm` est sur le PATH.8set -u9POD="${RUNPOD_POD_ID:-inconnu}"10OUT=/tmp/controle.log11DEPOT=patdev/k3-a40-bootstrap12CIBLE="etat/controle-${POD}.log"13: > "$OUT"14 15echo "[CTRL] $(date -u +%H:%M:%S) image publique vllm/vllm-openai, pod=$POD" | tee -a "$OUT"16python3 -c "import vllm,torch;print('[CTRL] vllm',vllm.__version__,'torch',torch.__version__)" 2>&1 | tee -a "$OUT"17 18publier() {19 python3 -c "20import os21from huggingface_hub import HfApi22try:23 HfApi().upload_file(path_or_fileobj='$OUT', path_in_repo='$CIBLE',24 repo_id='$DEPOT', token=os.environ.get('HF_TOKEN'))25except Exception as e:26 print('publication:', e)27" >/dev/null 2>&128}29 30# Sans publication periodique, un echec de demarrage serait invisible : il n'y31# a pas de shell sur ce pod.32( while true; do sleep 45; publier; done ) &33PUB=$!34 35for i in 1 2 3 4 5; do36 curl -sL "https://huggingface.co/$DEPOT/resolve/main/banc_ada_controle.py" \37 -o /tmp/banc.py && [ -s /tmp/banc.py ] && break38 sleep 539done40 41python3 /tmp/banc.py 2>&1 | tee -a "$OUT"42echo "[CTRL] $(date -u +%H:%M:%S) TERMINE" | tee -a "$OUT"43 44kill "$PUB" 2>/dev/null45publier46sleep infinity47 