fix(k8s): setup-k8s.sh — fail phase 3 on build errors, fix non-root crash
- Phase 3 now exits with error if any image builds fail, preventing mark_phase_done from running. Previously it just warned and continued, which could lead to phase 5 deploying with missing images. - Moved mkdir from top-level scope into mark_phase_done(). The old top-level mkdir -p /opt/bytelyst/.setup-state-k8s crashed non-root invocations (--status, --help) due to set -e + permission denied. - Fixed header comment: 'containerd' → 'Docker runtime' (we use --docker). - Added --resume to header usage block (was supported but undocumented).
This commit is contained in:
parent
a25d6f7847
commit
32522b218a
@ -11,13 +11,14 @@
|
|||||||
# What this script does:
|
# What this script does:
|
||||||
# Phase 1: Pre-flight checks (verify docker phases ran)
|
# Phase 1: Pre-flight checks (verify docker phases ran)
|
||||||
# Phase 2: Install k3s (lightweight K8s)
|
# Phase 2: Install k3s (lightweight K8s)
|
||||||
# Phase 3: Build Docker images + import into k3s containerd
|
# Phase 3: Build Docker images (reused by k3s via --docker runtime)
|
||||||
# Phase 4: Generate K8s secrets (JWT, etc.)
|
# Phase 4: Generate K8s secrets (JWT, etc.)
|
||||||
# Phase 5: Apply K8s manifests (namespaces → config → infra → platform → products)
|
# Phase 5: Apply K8s manifests (namespaces → config → infra → platform → products)
|
||||||
# Phase 6: Health check
|
# Phase 6: Health check
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# sudo ./setup-k8s.sh # Full install
|
# sudo ./setup-k8s.sh # Full install
|
||||||
|
# sudo ./setup-k8s.sh --resume # Auto-resume from last completed phase
|
||||||
# sudo ./setup-k8s.sh --phase=N # Run single phase (1-6)
|
# sudo ./setup-k8s.sh --phase=N # Run single phase (1-6)
|
||||||
# sudo ./setup-k8s.sh --status # Show phase status
|
# sudo ./setup-k8s.sh --status # Show phase status
|
||||||
# sudo ./setup-k8s.sh --reset # Clear markers, start fresh
|
# sudo ./setup-k8s.sh --reset # Clear markers, start fresh
|
||||||
@ -58,10 +59,9 @@ ok() { echo -e "${GREEN} ✓ $*${NC}"; }
|
|||||||
warn() { echo -e "${YELLOW} ⚠ $*${NC}"; }
|
warn() { echo -e "${YELLOW} ⚠ $*${NC}"; }
|
||||||
fail() { echo -e "${RED} ✗ $*${NC}" >&2; exit 1; }
|
fail() { echo -e "${RED} ✗ $*${NC}" >&2; exit 1; }
|
||||||
|
|
||||||
mkdir -p "$STATE_DIR"
|
mark_phase_done() { mkdir -p "$STATE_DIR"; date -Iseconds > "${STATE_DIR}/phase${1}.done"; }
|
||||||
mark_phase_done() { date -Iseconds > "${STATE_DIR}/phase${1}.done"; }
|
|
||||||
is_phase_done() { [ -f "${STATE_DIR}/phase${1}.done" ]; }
|
is_phase_done() { [ -f "${STATE_DIR}/phase${1}.done" ]; }
|
||||||
reset_markers() { rm -f "${STATE_DIR}"/phase*.done; log "Phase markers cleared."; }
|
reset_markers() { rm -f "${STATE_DIR}"/phase*.done 2>/dev/null; log "Phase markers cleared."; }
|
||||||
|
|
||||||
last_completed_phase() {
|
last_completed_phase() {
|
||||||
local last=0
|
local last=0
|
||||||
@ -233,6 +233,10 @@ phase3_images() {
|
|||||||
log " Built: ${build_ok}, Failed: ${build_fail}"
|
log " Built: ${build_ok}, Failed: ${build_fail}"
|
||||||
[ "$build_fail" -eq 0 ] || warn " ${build_fail} images failed to build. Fix and re-run: sudo ./setup-k8s.sh --phase=3"
|
[ "$build_fail" -eq 0 ] || warn " ${build_fail} images failed to build. Fix and re-run: sudo ./setup-k8s.sh --phase=3"
|
||||||
|
|
||||||
|
if [ "$build_fail" -gt 0 ]; then
|
||||||
|
fail "Phase 3 incomplete: ${build_fail}/${total} images failed. Fix and re-run: sudo ./setup-k8s.sh --phase=3"
|
||||||
|
fi
|
||||||
|
|
||||||
ok "Phase 3 complete. ${build_ok}/${total} images ready."
|
ok "Phase 3 complete. ${build_ok}/${total} images ready."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user