Un veilleur HORS de Prometheus — le silence de trois jours devient du bruit en ≤ 8 min #39
@@ -35,6 +35,23 @@ concurrency:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
.helm_install_dependencies_sh: &helm_install_dependencies_sh |-
|
.helm_install_dependencies_sh: &helm_install_dependencies_sh |-
|
||||||
|
# ⚠⚠ MESURÉ le 2026-09-07 (run 6728, étape « RELEVÉ ») : ce runner NE RÉSOUT
|
||||||
|
# PAS `gitea.arcodange.lab` — `getent` code 2, `curl` code 6 — alors qu'il
|
||||||
|
# résout parfaitement les registres publics. SEPT charts sur dix déclarent le
|
||||||
|
# registre Helm interne en dépendance (crowdsec, grafana, hashicorp-vault,
|
||||||
|
# pgbouncer, pgcat, prometheus, redis) : depuis que #32 a énuméré les charts,
|
||||||
|
# leurs jobs mouraient TOUS ici, en 7 s, avant la moindre étape utile — et le
|
||||||
|
# premier à en faire les frais est le premier à avoir été construit.
|
||||||
|
#
|
||||||
|
# Gitea donne au job sa PROPRE adresse joignable dans `GITHUB_SERVER_URL`
|
||||||
|
# (mesuré : http://192.168.65.254:43000). On ne s'en sert qu'en REPLI, et
|
||||||
|
# seulement après avoir constaté que le nom d'origine ne répond pas : rien ne
|
||||||
|
# change sur un runner qui, lui, sait le résoudre. Lecture anonyme du registre
|
||||||
|
# vérifiée (HTTP 200), donc aucun jeton n'entre ici.
|
||||||
|
FORGE_INTERNE='https://gitea.arcodange.lab'
|
||||||
|
|
||||||
|
joignable() { curl -sf -o /dev/null -m 15 "$1"; }
|
||||||
|
|
||||||
helm_install_dependencies() {
|
helm_install_dependencies() {
|
||||||
chart_file="$1/Chart.yaml"
|
chart_file="$1/Chart.yaml"
|
||||||
[[ ! -f "$chart_file" ]] && echo "Chart.yaml not found in $1" && return 1
|
[[ ! -f "$chart_file" ]] && echo "Chart.yaml not found in $1" && return 1
|
||||||
@@ -43,7 +60,27 @@ concurrency:
|
|||||||
name=$(jq -r '.name' <<< "$dep")
|
name=$(jq -r '.name' <<< "$dep")
|
||||||
version=$(jq -r '.version' <<< "$dep")
|
version=$(jq -r '.version' <<< "$dep")
|
||||||
repo=$(jq -r '.repository' <<< "$dep")
|
repo=$(jq -r '.repository' <<< "$dep")
|
||||||
|
|
||||||
|
en_repli=non
|
||||||
|
if ! joignable "${repo}/index.yaml"; then
|
||||||
|
repli="${repo/$FORGE_INTERNE/${GITHUB_SERVER_URL:-$FORGE_INTERNE}}"
|
||||||
|
if [[ "$repli" != "$repo" ]] && joignable "${repli}/index.yaml"; then
|
||||||
|
echo " ⚠ ${repo} injoignable depuis ce runner — repli sur ${repli}"
|
||||||
|
repo="$repli"
|
||||||
|
en_repli=oui
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
url=$(curl -s "${repo}/index.yaml" | yq eval ".entries.${name}[] | select(.version == \"${version}\") | .urls[0]" -)
|
url=$(curl -s "${repo}/index.yaml" | yq eval ".entries.${name}[] | select(.version == \"${version}\") | .urls[0]" -)
|
||||||
|
# L'index du registre interne publie des URLs ABSOLUES vers le même nom
|
||||||
|
# d'hôte : le repli doit les suivre, sinon on retombe dans le code 6.
|
||||||
|
# ⚠ On ne réécrit QUE si l'on est effectivement en repli — sur un runner
|
||||||
|
# sain, le chemin d'origine reste le chemin d'origine.
|
||||||
|
# ⚠ Un `[[ … ]] && …` ici serait un piège : sous `set -e`, la liste rend
|
||||||
|
# non nul quand la condition est fausse, et le script AVORTE.
|
||||||
|
if [[ "$en_repli" = oui ]]; then
|
||||||
|
url="${url/$FORGE_INTERNE/$GITHUB_SERVER_URL}"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Dependency: $name, Version: $version, URL: $url"
|
echo "Dependency: $name, Version: $version, URL: $url"
|
||||||
mkdir -p "$1/charts" && curl -sL "$url" -o "$1/charts/${name}-${version}.tgz"
|
mkdir -p "$1/charts" && curl -sL "$url" -o "$1/charts/${name}-${version}.tgz"
|
||||||
|
|||||||
Reference in New Issue
Block a user