Files

49 lines
1.7 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
echo "=============================================="
echo " Ced's K3s HomeLab Bootstrap"
echo "=============================================="
echo
echo "This script assumes:"
echo " - K3s control-plane is already up (k3s-django-1/2/3)"
echo " - Worker nodes are joined (k3s-node-1..9)"
echo " - KUBECONFIG is set to point to the cluster"
echo
read -p "Press ENTER to continue or Ctrl+C to abort... " _
echo "[1/6] Labeling nodes into ingress/data/monitoring groups..."
./scripts/03_label_nodes.sh
echo "[2/6] Installing MetalLB (IP pool 10.10.30.251-254)..."
./scripts/10_install_metallb.sh
echo "[3/6] Installing ingress-nginx (LoadBalancer via MetalLB)..."
./scripts/20_install_ingress_nginx.sh
echo "[4/6] Installing Ced's NOC (kube-prometheus-stack)..."
./scripts/30_install_ceds_noc.sh
echo "[5/6] Deploying demo nginx app + ingress..."
kubectl apply -f manifests/demo-app/demo-nginx.yaml
echo "[6/6] Applying ingress for Grafana and Prometheus..."
kubectl apply -f manifests/ingress/grafana-ingress.yaml
kubectl apply -f manifests/ingress/prometheus-ingress.yaml
echo
echo "=============================================="
echo " Done!"
echo " - Demo app: http://demo.local"
echo " - Grafana: http://grafana.local"
echo " - Prometheus: http://prometheus.local"
echo
echo "Remember to add these to your desktop hosts file pointing to the"
echo "MetalLB ingress IP (e.g. 10.10.30.251):"
echo
echo " 10.10.30.251 demo.local grafana.local prometheus.local"
echo
echo "You can now log into Grafana and import dashboards from the"
echo "dashboards/ folder in this repo."
echo "=============================================="