infra/old/cluster/aprs/deploy.sh

44 lines
1.4 KiB
Bash
Executable file

#!/bin/bash
set -e
echo "Deploying APRS.me to cluster at 204.110.191.2"
# Use homelab context
kubectl config use-context admin@home
# Create namespace
echo "Creating namespace..."
kubectl apply -f namespace.yaml --validate=false
# Deploy PostgreSQL with PostGIS
echo "Deploying PostgreSQL 17 with PostGIS..."
kubectl apply -f postgres-secret-secure.yaml --validate=false
kubectl apply -f postgres-deployment.yaml --validate=false
# Wait for PostgreSQL to be ready
echo "Waiting for PostgreSQL to be ready..."
kubectl wait --for=condition=ready pod -l app=postgres-aprs -n aprs --timeout=300s
# Deploy APRS.me
echo "Deploying APRS.me application..."
kubectl apply -f aprs-secret-secure.yaml --validate=false
kubectl apply -f aprs-configmap.yaml --validate=false
kubectl apply -f aprs-rbac.yaml --validate=false
kubectl apply -f aprs-statefulset-with-pullsecret.yaml --validate=false
# Deploy Traefik ingress
echo "Deploying Traefik ingress..."
kubectl apply -f aprs-ingressroute.yaml --validate=false
echo "Deployment complete!"
echo ""
echo "To check status:"
echo "kubectl get pods -n aprs"
echo ""
echo "To get the LoadBalancer IP:"
echo "kubectl get svc aprs -n aprs"
echo ""
echo "Remember to:"
echo "1. Create GitHub image pull secret: ./create-image-pull-secret.sh <username> <token>"
echo "2. Access the application at: https://aprs.me"
echo "3. DNS points to 204.110.191.2 (Traefik ingress)"