Modification script files for deployment of the webapp with Kubernetes

This commit is contained in:
Charles Mendiburu 2026-04-29 01:08:35 +02:00
parent 823b9df176
commit 3444a94c5f
4 changed files with 76 additions and 9 deletions

View File

@ -1,4 +1,20 @@
#!/bin/bash #!/bin/bash
# Prepare the app: create the storage directory and build the Docker images
set -e
echo "╔══════════════════════════════════════════╗"
echo "║ Vigimétéo Prepare App ║"
echo "╚══════════════════════════════════════════╝"
echo "Preparing app..." echo "Preparing app..."
docker compose build
echo "App is prepared." # 1 - Create the directory used by the PersistentVolume
mkdir -p ~/vigimeteo-db-data
# 2 - Build Docker images
docker build -t vigimeteo-backend:latest ./Back-end
docker build -t vigimeteo-frontend:latest ./Front-end
echo ""
echo "════════════════════════════════════════════"
echo " Preparation complete! Run ./start-app.sh"
echo "════════════════════════════════════════════"

View File

@ -1,3 +0,0 @@
#!/bin/bash
echo "Removed app."
docker compose down -v --rmi local

View File

@ -1,4 +1,39 @@
#!/bin/bash #!/bin/bash
echo "Running app ..." # Deploy all Kubernetes objects for Vigimeteo
docker compose up -d set -e
echo "The app is available at http://localhost:5000"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
NS="vigimeteo"
echo "╔══════════════════════════════════════════╗"
echo "║ Vigimétéo Start App ║"
echo "╚══════════════════════════════════════════╝"
echo "Starting app..."
# 1. Create the namespace
kubectl apply -f namespace.yaml
# 2. Create the ConfigMap from the SQL init script, then apply storage and database
kubectl create configmap vigimeteo-db-init \
--from-file=init.sql=sql/init_db.sql \
-n vigimeteo \
--dry-run=client -o yaml | kubectl apply -f -
kubectl apply -f statefulset.yaml
# 3. Wait for the database to be ready before starting the backend
echo "Waiting for PostgreSQL to be ready..."
kubectl rollout status statefulset/vigimeteo-db -n vigimeteo --timeout=120s
# 4. Deploy the backend and frontend
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
# ── Summary ───────────────────────────────────────────────────────────────────
echo ""
echo "════════════════════════════════════════════"
echo " All objects deployed in namespace: $NS"
echo ""
kubectl get all -n "$NS"
echo ""
echo "App deployed! Available at http://localhost:30500"

View File

@ -1,3 +1,22 @@
#!/bin/bash #!/bin/bash
# Remove all Kubernetes objects for Vigimeteo
set -e
echo "╔══════════════════════════════════════════╗"
echo "║ Vigimétéo Stop App ║"
echo "╚══════════════════════════════════════════╝"
echo "Stopping app..." echo "Stopping app..."
docker compose stop
# 1- Deleting the namespace removes everything inside it automatically
kubectl delete namespace vigimeteo --ignore-not-found
# 2 - The PersistentVolume is cluster-scoped so it must be deleted separately
kubectl delete pv vigimeteo-db-pv --ignore-not-found
echo ""
echo "════════════════════════════════════════════"
echo " All Vigimeteo Kubernetes objects removed."
echo " Note: ~/vigimeteo-db-data was NOT deleted."
echo " Run: rm -rf ~/vigimeteo-db-data to clean up."
echo "════════════════════════════════════════════"
echo "App stopped."