ops-demo/scripts/host/bootstrap-from-host.sh

41 lines
1.3 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
cd "${REPO_ROOT}"
command -v vagrant >/dev/null 2>&1 || {
echo "ERROR: required command not found: vagrant" >&2
exit 1
}
echo "[ops-demo] Checking VM status..."
if ! vagrant status --machine-readable | rg -q ',state,running'; then
echo "[ops-demo] VM is not running; starting with vagrant up..."
vagrant up
fi
log_file="$(mktemp)"
trap 'rm -f "${log_file}"' EXIT
echo "[ops-demo] Running bootstrap in VM..."
vagrant ssh -c "cd /vagrant && ./scripts/vm/bootstrap.sh" | tee "${log_file}"
password="$(sed -n 's/.*ArgoCD admin-wachtwoord: //p' "${log_file}" | tail -n 1 | tr -d '\r')"
if [[ -z "${password}" ]]; then
password="$(vagrant ssh -c "export KUBECONFIG=/home/vagrant/.kube/config; kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d" 2>/dev/null | tr -d '\r')"
fi
echo ""
echo "[ops-demo] Bootstrap complete."
if [[ -n "${password}" ]]; then
echo "[ops-demo] ArgoCD admin password: ${password}"
else
echo "[ops-demo] Could not extract ArgoCD admin password automatically."
fi
echo ""
echo "Next step to open ArgoCD UI from host:"
echo " ./scripts/host/argocd-ui-tunnel.sh"
echo "Then browse: http://localhost:8080"