Break self-heal recursion when proxy unregistered
This commit is contained in:
parent
94a0c82439
commit
3ca2bf308e
1 changed files with 20 additions and 15 deletions
|
|
@ -555,6 +555,7 @@ LOG_DIR="/var/log/pulse/sensor-proxy"
|
||||||
SELFHEAL_SERVICE_UNIT="/etc/systemd/system/pulse-sensor-proxy-selfheal.service"
|
SELFHEAL_SERVICE_UNIT="/etc/systemd/system/pulse-sensor-proxy-selfheal.service"
|
||||||
SELFHEAL_TIMER_UNIT="/etc/systemd/system/pulse-sensor-proxy-selfheal.timer"
|
SELFHEAL_TIMER_UNIT="/etc/systemd/system/pulse-sensor-proxy-selfheal.timer"
|
||||||
SCRIPT_SOURCE="$(readlink -f "${BASH_SOURCE[0]:-$0}" 2>/dev/null || printf '%s' "${BASH_SOURCE[0]:-$0}")"
|
SCRIPT_SOURCE="$(readlink -f "${BASH_SOURCE[0]:-$0}" 2>/dev/null || printf '%s' "${BASH_SOURCE[0]:-$0}")"
|
||||||
|
SKIP_SELF_HEAL_SETUP="${PULSE_SENSOR_PROXY_SELFHEAL:-false}"
|
||||||
GITHUB_REPO="rcourtman/Pulse"
|
GITHUB_REPO="rcourtman/Pulse"
|
||||||
LATEST_RELEASE_TAG=""
|
LATEST_RELEASE_TAG=""
|
||||||
REQUESTED_VERSION=""
|
REQUESTED_VERSION=""
|
||||||
|
|
@ -2862,17 +2863,20 @@ if [ "$LEGACY_KEYS_FOUND" = true ] && [ "$QUIET" != true ]; then
|
||||||
fi
|
fi
|
||||||
fi # End of container-specific configuration
|
fi # End of container-specific configuration
|
||||||
|
|
||||||
# Install self-heal safeguards to keep proxy available
|
if [[ "$SKIP_SELF_HEAL_SETUP" == "true" ]]; then
|
||||||
print_info "Configuring self-heal safeguards..."
|
print_info "Skipping self-heal safeguards during self-heal run"
|
||||||
if ! cache_installer_for_self_heal; then
|
else
|
||||||
if [[ -n "$INSTALLER_CACHE_REASON" ]]; then
|
# Install self-heal safeguards to keep proxy available
|
||||||
print_warn "Unable to cache installer script for self-heal (${INSTALLER_CACHE_REASON})"
|
print_info "Configuring self-heal safeguards..."
|
||||||
else
|
if ! cache_installer_for_self_heal; then
|
||||||
print_warn "Unable to cache installer script for self-heal"
|
if [[ -n "$INSTALLER_CACHE_REASON" ]]; then
|
||||||
|
print_warn "Unable to cache installer script for self-heal (${INSTALLER_CACHE_REASON})"
|
||||||
|
else
|
||||||
|
print_warn "Unable to cache installer script for self-heal"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
cat > "$SELFHEAL_SCRIPT" <<'EOF'
|
cat > "$SELFHEAL_SCRIPT" <<'EOF'
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
|
|
@ -2922,7 +2926,7 @@ attempt_control_plane_reconcile() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if bash "$INSTALLER" "${cmd[@]}"; then
|
if PULSE_SENSOR_PROXY_SELFHEAL=1 bash "$INSTALLER" "${cmd[@]}"; then
|
||||||
rm -f "$PENDING_FILE"
|
rm -f "$PENDING_FILE"
|
||||||
else
|
else
|
||||||
log "Control-plane reconciliation failed"
|
log "Control-plane reconciliation failed"
|
||||||
|
|
@ -2936,7 +2940,7 @@ fi
|
||||||
if ! systemctl list-unit-files 2>/dev/null | grep -q "^${SERVICE}\\.service"; then
|
if ! systemctl list-unit-files 2>/dev/null | grep -q "^${SERVICE}\\.service"; then
|
||||||
if [[ -x "$INSTALLER" && -f "$CTID_FILE" ]]; then
|
if [[ -x "$INSTALLER" && -f "$CTID_FILE" ]]; then
|
||||||
log "Service unit missing; attempting reinstall"
|
log "Service unit missing; attempting reinstall"
|
||||||
bash "$INSTALLER" --ctid "$(cat "$CTID_FILE")" --skip-restart --quiet || log "Reinstall attempt failed"
|
PULSE_SENSOR_PROXY_SELFHEAL=1 bash "$INSTALLER" --ctid "$(cat "$CTID_FILE")" --skip-restart --quiet || log "Reinstall attempt failed"
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
@ -2949,7 +2953,7 @@ fi
|
||||||
if ! systemctl is-active --quiet "${SERVICE}.service"; then
|
if ! systemctl is-active --quiet "${SERVICE}.service"; then
|
||||||
if [[ -x "$INSTALLER" && -f "$CTID_FILE" ]]; then
|
if [[ -x "$INSTALLER" && -f "$CTID_FILE" ]]; then
|
||||||
log "Service failed to start; attempting reinstall"
|
log "Service failed to start; attempting reinstall"
|
||||||
bash "$INSTALLER" --ctid "$(cat "$CTID_FILE")" --skip-restart --quiet || log "Reinstall attempt failed"
|
PULSE_SENSOR_PROXY_SELFHEAL=1 bash "$INSTALLER" --ctid "$(cat "$CTID_FILE")" --skip-restart --quiet || log "Reinstall attempt failed"
|
||||||
systemctl start "${SERVICE}.service" || true
|
systemctl start "${SERVICE}.service" || true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
@ -2987,9 +2991,10 @@ Unit=pulse-sensor-proxy-selfheal.service
|
||||||
WantedBy=timers.target
|
WantedBy=timers.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl enable --now pulse-sensor-proxy-selfheal.timer >/dev/null 2>&1 || true
|
systemctl enable --now pulse-sensor-proxy-selfheal.timer >/dev/null 2>&1 || true
|
||||||
systemctl start pulse-sensor-proxy-selfheal.service >/dev/null 2>&1 || true
|
systemctl start pulse-sensor-proxy-selfheal.service >/dev/null 2>&1 || true
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$QUIET" = true ]; then
|
if [ "$QUIET" = true ]; then
|
||||||
print_success "pulse-sensor-proxy installed and running"
|
print_success "pulse-sensor-proxy installed and running"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue