feat: 失敗セッションの調査性を改善(終了Pod保持 + ログAPI + UI)(v2.1.263-d)
セッション Pod がブート失敗で Failed になると reaper が即削除し kubectl logs で 死因を追えなかった。「開く」で 502 になるだけで原因不明だった。 - session.reaper.terminatedRetentionSeconds(既定 900): 終了済み Pod を finishedAt からこの秒数は回収しない。manager 回収ループと reaper CronJob 両方が尊重 - GET /api/sessions/<id>/log: セッション Pod のログを text で返す(pods/log get のみ、追加権限なし) - UI: 「ログ」ボタン、状態の色分け、Failed 行に reason/exitCode/message 併記、 Running 以外は「開く」非表示 - session-entrypoint.sh: URL スキームと identity 型の不一致を警告。 git clone を --progress ... 2>&1 にして git/ssh の出力を Pod ログへ - helm lint / template 検証済み
This commit is contained in:
@@ -86,13 +86,30 @@ esac
|
||||
# --------------------------------------------------------------------------
|
||||
# 2. clone
|
||||
# --------------------------------------------------------------------------
|
||||
# URL のスキームと identity の型が食い違っていないか確認(よくある詰まり)
|
||||
case "$REPO_URL" in
|
||||
https://*)
|
||||
if [ "${GIT_IDENTITY_TYPE:-}" = "ssh" ]; then
|
||||
err "HTTPS の URL ($REPO_URL) に SSH identity が選ばれています。"
|
||||
err "→ プライベートリポジトリなら https-token の identity を選ぶか、URL を ssh://git@<host>/<org>/<repo>.git 形式にしてください。"
|
||||
fi ;;
|
||||
git@*|ssh://*)
|
||||
if [ "${GIT_IDENTITY_TYPE:-}" != "ssh" ]; then
|
||||
err "SSH の URL ($REPO_URL) に SSH identity が選ばれていません(identity=${GIT_IDENTITY_TYPE:-none})。"
|
||||
err "→ ssh 型の identity(秘密鍵 + known_hosts)を選んでください。"
|
||||
fi ;;
|
||||
esac
|
||||
|
||||
REPO_DIR="$WORKSPACE_DIR/$(basename "${REPO_URL%.git}")"
|
||||
if [ -d "$REPO_DIR/.git" ]; then
|
||||
log "既存チェックアウトを再利用: $REPO_DIR"
|
||||
else
|
||||
log "clone 中: $REPO_URL ($REPO_REF)"
|
||||
if ! git clone --filter=blob:none --no-tags "$REPO_URL" "$REPO_DIR"; then
|
||||
err "clone に失敗しました"; exit 1
|
||||
# 進捗と失敗理由をそのまま Pod ログに出す(git のメッセージが死因の手がかり)
|
||||
if ! GIT_SSH_COMMAND="${GIT_SSH_COMMAND:-ssh} -v" git clone --progress --filter=blob:none --no-tags "$REPO_URL" "$REPO_DIR" 2>&1; then
|
||||
err "clone に失敗しました(上の git / ssh の出力を参照)。"
|
||||
err "よくある原因: 認証情報の不足・権限なし / known_hosts 不一致 / NetworkPolicy による egress 遮断(接続タイムアウト)。"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
cd "$REPO_DIR"
|
||||
|
||||
Reference in New Issue
Block a user