From 3821bf2d1e8899f1178618f9d785e27b31bde7b3 Mon Sep 17 00:00:00 2001 From: Nitheesh kumar subramanian Date: Wed, 29 Apr 2026 09:47:09 +0200 Subject: [PATCH] Second Assignment --- thesis.pdf | Bin 0 -> 167179 bytes z2/README.md | 249 +++++++++++++++++++++++++++++ z2/app/Dockerfile | 22 +++ z2/app/app.py | 102 ++++++++++++ z2/app/requirements.txt | 3 + z2/app/templates/index.html | 205 ++++++++++++++++++++++++ z2/k8s-todo-app-documentation.docx | Bin 0 -> 19992 bytes z2/k8s/configmap.yaml | 27 ++++ z2/k8s/deployment.yaml | 82 ++++++++++ z2/k8s/namespace.yaml | 7 + z2/k8s/service.yaml | 59 +++++++ z2/k8s/statefulset.yaml | 139 ++++++++++++++++ z2/prepare-app.sh | 55 +++++++ z2/sql/init.sql | 19 +++ z2/start-app.sh | 64 ++++++++ z2/stop-app.sh | 47 ++++++ 16 files changed, 1080 insertions(+) create mode 100644 thesis.pdf create mode 100644 z2/README.md create mode 100644 z2/app/Dockerfile create mode 100644 z2/app/app.py create mode 100644 z2/app/requirements.txt create mode 100644 z2/app/templates/index.html create mode 100644 z2/k8s-todo-app-documentation.docx create mode 100644 z2/k8s/configmap.yaml create mode 100644 z2/k8s/deployment.yaml create mode 100644 z2/k8s/namespace.yaml create mode 100644 z2/k8s/service.yaml create mode 100644 z2/k8s/statefulset.yaml create mode 100644 z2/prepare-app.sh create mode 100644 z2/sql/init.sql create mode 100644 z2/start-app.sh create mode 100644 z2/stop-app.sh diff --git a/thesis.pdf b/thesis.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fca143b7e0abb4d9fe218e91b5e427a77ffee14c GIT binary patch literal 167179 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

oRUZlqk3nKpZk9KS6=2wRuu=_lydD7^0 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:30080`. +- **`postgres-service`** — `ClusterIP` type. Only reachable inside the cluster at `postgres-service.todo-app.svc.cluster.local:5432`. +- **`postgres-headless`** — `ClusterIP: None`. A DNS-only headless service required by the StatefulSet so each pod gets a stable DNS entry (`postgres-0.postgres-headless.todo-app.svc.cluster.local`). + +### Persistent Volumes + +- **`postgres-pv`** — `hostPath` pointing to `/mnt/data/postgres` inside the minikube VM. Survives pod restarts and redeployments. +- **`postgres-pvc`** — Claims 2Gi from `postgres-pv`. Mounted at `/var/lib/postgresql/data` inside the PostgreSQL container. + +--- + +## Container Configuration + +### Flask App (`todo-app`) +- `DB_HOST` — hostname of the PostgreSQL service (`postgres-service.todo-app.svc.cluster.local`) +- `DB_NAME` — database name (`tododb`) +- `DB_USER` / `DB_PASS` — injected from the `postgres-secret` Kubernetes Secret +- **Liveness probe**: `GET /health` every 10s — restarts the pod if it hangs +- **Readiness probe**: `GET /health` every 5s — holds traffic until the app is truly ready +- **Init container**: `busybox` runs `nc -z postgres-service 5432` in a loop until PostgreSQL accepts connections before the main container starts + +### PostgreSQL (`postgres`) +- `POSTGRES_USER`, `POSTGRES_PASSWORD`, `POSTGRES_DB` — injected from `postgres-secret` +- `PGDATA=/var/lib/postgresql/data/pgdata` — prevents permission errors on mounted volumes +- SQL init script from ConfigMap is placed at `/docker-entrypoint-initdb.d/init.sql` and runs automatically on first start +- **Liveness probe**: `pg_isready -U postgres` +- **Readiness probe**: `pg_isready -U postgres` + +--- + +## Step-by-Step Instructions + +### Prerequisites — Install Everything on Ubuntu + +Run the following commands in sequence in your terminal: + +```bash +# 1. Update system +sudo apt-get update && sudo apt-get upgrade -y + +# 2. Install Docker +sudo apt-get install -y ca-certificates curl gnupg +sudo install -m 0755 -d /etc/apt/keyrings +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ + sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg +sudo chmod a+r /etc/apt/keyrings/docker.gpg +echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ + https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +sudo apt-get update +sudo apt-get install -y docker-ce docker-ce-cli containerd.io +sudo usermod -aG docker $USER +newgrp docker + +# 3. Install kubectl +curl -LO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" +sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl +kubectl version --client + +# 4. Install minikube +curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 +sudo install minikube-linux-amd64 /usr/local/bin/minikube +minikube version +``` + +### Prepare the Application (run once) + +```bash +# Navigate to the project directory +cd k8s-todo-app + +# Make all scripts executable +chmod +x prepare-app.sh start-app.sh stop-app.sh + +# Run the preparation script (starts minikube, builds Docker image, creates host dir) +bash prepare-app.sh +``` + +### Start the Application + +```bash +bash start-app.sh +``` + +This script creates all Kubernetes objects in order: +1. Namespace +2. ConfigMap +3. PersistentVolume, PVC, Secret, StatefulSet (PostgreSQL) +4. Services +5. Deployment (Flask app) + +### View the Application in a Browser + +```bash +# Option A — get the URL automatically +minikube service todo-app-service -n todo-app + +# Option B — open directly +minikube service todo-app-service -n todo-app --url +# Copy the URL and open it in your browser +# e.g. http://192.168.49.2:30080 +``` + +### Useful Commands While Running + +```bash +# See all running pods +kubectl get pods -n todo-app + +# See all objects +kubectl get all -n todo-app + +# Watch pods in real time +kubectl get pods -n todo-app -w + +# View Flask app logs +kubectl logs -l app=todo-app -n todo-app --tail=50 + +# View PostgreSQL logs +kubectl logs postgres-0 -n todo-app --tail=50 + +# Connect to PostgreSQL shell +kubectl exec -it postgres-0 -n todo-app -- psql -U postgres -d tododb + +# Scale up/down the web app +kubectl scale deployment todo-app -n todo-app --replicas=3 +``` + +### Pause / Delete the Application + +```bash +# Delete all Kubernetes objects (data on PV is preserved) +bash stop-app.sh + +# To also remove all stored database data +minikube ssh -- "sudo rm -rf /mnt/data/postgres" + +# To stop minikube entirely +minikube stop + +# To delete the minikube cluster completely +minikube delete +``` + +### Re-deploy After Stop + +```bash +bash start-app.sh # no need to run prepare-app.sh again unless minikube was deleted +``` + +--- + +## Troubleshooting + +| Problem | Fix | +|---------|-----| +| `ImagePullBackOff` on todo-app | Re-run `bash prepare-app.sh` to rebuild image inside minikube | +| Postgres pod in `Pending` | Run `kubectl describe pv postgres-pv` — check hostPath exists | +| App shows "Cannot connect to database" | Wait 30s, postgres is still initialising; check `kubectl logs postgres-0 -n todo-app` | +| Can't reach browser URL | Run `minikube service todo-app-service -n todo-app` to get the correct URL | +| Permission error on PV | Run `minikube ssh -- 'sudo chmod 777 /mnt/data/postgres'` | diff --git a/z2/app/Dockerfile b/z2/app/Dockerfile new file mode 100644 index 0000000..daf63d2 --- /dev/null +++ b/z2/app/Dockerfile @@ -0,0 +1,22 @@ +FROM python:3.12-slim + +# Set working directory +WORKDIR /app + +# Install dependencies first (layer caching) +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +# Copy application code +COPY app.py . +COPY templates/ templates/ + +# Create non-root user for security +RUN useradd -m -r appuser && chown -R appuser /app +USER appuser + +# Expose port +EXPOSE 5000 + +# Entrypoint: initialise DB then launch with gunicorn +CMD ["sh", "-c", "python -c 'import app; app.init_db()' && gunicorn --bind 0.0.0.0:5000 --workers 2 --timeout 60 app:app"] diff --git a/z2/app/app.py b/z2/app/app.py new file mode 100644 index 0000000..1da072d --- /dev/null +++ b/z2/app/app.py @@ -0,0 +1,102 @@ +import os +import time +import psycopg2 +from flask import Flask, render_template, request, redirect, url_for + +app = Flask(__name__) + +DB_HOST = os.environ.get("DB_HOST", "postgres-service.todo-app.svc.cluster.local") +DB_NAME = os.environ.get("DB_NAME", "tododb") +DB_USER = os.environ.get("DB_USER", "postgres") +DB_PASS = os.environ.get("DB_PASS", "postgres123") + + +def get_db(): + for attempt in range(10): + try: + conn = psycopg2.connect( + host=DB_HOST, database=DB_NAME, user=DB_USER, password=DB_PASS + ) + return conn + except psycopg2.OperationalError: + time.sleep(2) + raise Exception("Cannot connect to database after 10 attempts") + + +def init_db(): + conn = get_db() + cur = conn.cursor() + cur.execute(""" + CREATE TABLE IF NOT EXISTS todos ( + id SERIAL PRIMARY KEY, + title TEXT NOT NULL, + done BOOLEAN NOT NULL DEFAULT FALSE, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) + """) + conn.commit() + cur.close() + conn.close() + + +@app.before_request +def setup(): + # Only run once + pass + + +@app.route("/") +def index(): + conn = get_db() + cur = conn.cursor() + cur.execute("SELECT id, title, done, created_at FROM todos ORDER BY id DESC") + todos = cur.fetchall() + cur.close() + conn.close() + done_count = sum(1 for t in todos if t[2]) + return render_template("index.html", todos=todos, done_count=done_count, total=len(todos)) + + +@app.route("/add", methods=["POST"]) +def add(): + title = request.form.get("title", "").strip() + if title: + conn = get_db() + cur = conn.cursor() + cur.execute("INSERT INTO todos (title, done) VALUES (%s, FALSE)", (title,)) + conn.commit() + cur.close() + conn.close() + return redirect(url_for("index")) + + +@app.route("/toggle/") +def toggle(todo_id): + conn = get_db() + cur = conn.cursor() + cur.execute("UPDATE todos SET done = NOT done WHERE id = %s", (todo_id,)) + conn.commit() + cur.close() + conn.close() + return redirect(url_for("index")) + + +@app.route("/delete/") +def delete(todo_id): + conn = get_db() + cur = conn.cursor() + cur.execute("DELETE FROM todos WHERE id = %s", (todo_id,)) + conn.commit() + cur.close() + conn.close() + return redirect(url_for("index")) + + +@app.route("/health") +def health(): + return {"status": "ok"}, 200 + + +if __name__ == "__main__": + init_db() + app.run(host="0.0.0.0", port=5000, debug=False) diff --git a/z2/app/requirements.txt b/z2/app/requirements.txt new file mode 100644 index 0000000..8bed5ac --- /dev/null +++ b/z2/app/requirements.txt @@ -0,0 +1,3 @@ +flask==3.0.3 +psycopg2-binary==2.9.9 +gunicorn==22.0.0 diff --git a/z2/app/templates/index.html b/z2/app/templates/index.html new file mode 100644 index 0000000..6fa444e --- /dev/null +++ b/z2/app/templates/index.html @@ -0,0 +1,205 @@ + + + + + + K8s Todo App + + + + +

+
+
+
+ +
+
{{ done_count }}/{{ total }} done
+
+
+ +
+ + +
+ +
+ {% if todos %} + {% for todo in todos %} +
+ +
+
+ {{ todo[1] }} + {{ todo[3].strftime('%b %d') if todo[3] else '' }} + + + +
+ {% endfor %} + {% else %} +
+
📋
+

No tasks yet. Add one above!

+
+ {% endif %} +
+ + +
+ + diff --git a/z2/k8s-todo-app-documentation.docx b/z2/k8s-todo-app-documentation.docx new file mode 100644 index 0000000000000000000000000000000000000000..3267a00e8806cb3e9c02a7ee08999d165b6ad854 GIT binary patch literal 19992 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:30080 + +--- +############################################################### +# Service – PostgreSQL (ClusterIP, internal only) +############################################################### +apiVersion: v1 +kind: Service +metadata: + name: postgres-service + namespace: todo-app + labels: + app: postgres +spec: + type: ClusterIP + selector: + app: postgres + ports: + - name: postgres + port: 5432 + targetPort: 5432 + +--- +############################################################### +# Headless Service – required by StatefulSet for stable DNS +############################################################### +apiVersion: v1 +kind: Service +metadata: + name: postgres-headless + namespace: todo-app + labels: + app: postgres +spec: + clusterIP: None + selector: + app: postgres + ports: + - name: postgres + port: 5432 + targetPort: 5432 diff --git a/z2/k8s/statefulset.yaml b/z2/k8s/statefulset.yaml new file mode 100644 index 0000000..1cad181 --- /dev/null +++ b/z2/k8s/statefulset.yaml @@ -0,0 +1,139 @@ +############################################################### +# PersistentVolume – host-path storage (works on minikube) +############################################################### +apiVersion: v1 +kind: PersistentVolume +metadata: + name: postgres-pv + labels: + type: local + app: postgres +spec: + capacity: + storage: 2Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: standard + hostPath: + path: /mnt/data/postgres + type: DirectoryOrCreate + +--- +############################################################### +# PersistentVolumeClaim +############################################################### +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: postgres-pvc + namespace: todo-app + labels: + app: postgres +spec: + accessModes: + - ReadWriteOnce + storageClassName: standard + resources: + requests: + storage: 2Gi + +--- +############################################################### +# Secret – credentials for PostgreSQL +############################################################### +apiVersion: v1 +kind: Secret +metadata: + name: postgres-secret + namespace: todo-app +type: Opaque +stringData: + POSTGRES_USER: "postgres" + POSTGRES_PASSWORD: "postgres123" + POSTGRES_DB: "tododb" + +--- +############################################################### +# StatefulSet – PostgreSQL database +############################################################### +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: postgres + namespace: todo-app + labels: + app: postgres + tier: database +spec: + serviceName: "postgres-headless" + replicas: 1 + selector: + matchLabels: + app: postgres + template: + metadata: + labels: + app: postgres + tier: database + spec: + containers: + - name: postgres + image: postgres:16-alpine + imagePullPolicy: IfNotPresent + ports: + - containerPort: 5432 + name: postgres + env: + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_USER + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_PASSWORD + - name: POSTGRES_DB + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_DB + - name: PGDATA + value: /var/lib/postgresql/data/pgdata + resources: + requests: + cpu: "100m" + memory: "256Mi" + limits: + cpu: "500m" + memory: "512Mi" + volumeMounts: + - name: postgres-storage + mountPath: /var/lib/postgresql/data + - name: init-sql + mountPath: /docker-entrypoint-initdb.d + livenessProbe: + exec: + command: + - pg_isready + - -U + - postgres + initialDelaySeconds: 30 + periodSeconds: 10 + readinessProbe: + exec: + command: + - pg_isready + - -U + - postgres + initialDelaySeconds: 5 + periodSeconds: 5 + volumes: + - name: postgres-storage + persistentVolumeClaim: + claimName: postgres-pvc + - name: init-sql + configMap: + name: postgres-init-sql diff --git a/z2/prepare-app.sh b/z2/prepare-app.sh new file mode 100644 index 0000000..168c460 --- /dev/null +++ b/z2/prepare-app.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash +# ============================================================================= +# prepare-app.sh +# Prepares the application: builds Docker image into minikube, +# creates the host-path directory for the PersistentVolume. +# Run this ONCE before start-app.sh. +# ============================================================================= +set -euo pipefail + +echo "======================================================" +echo " Preparing K8s Todo App" +echo "======================================================" + +# ── 1. Verify tools are available ───────────────────────── +echo "" +echo "[1/4] Checking required tools..." +for tool in minikube kubectl docker; do + if ! command -v "$tool" &>/dev/null; then + echo " ERROR: '$tool' is not installed or not in PATH." + exit 1 + fi + echo " ✓ $tool found" +done + +# ── 2. Ensure minikube is running ───────────────────────── +echo "" +echo "[2/4] Checking minikube status..." +STATUS=$(minikube status --format='{{.Host}}' 2>/dev/null || echo "Stopped") +if [ "$STATUS" != "Running" ]; then + echo " minikube is not running. Starting minikube..." + minikube start --driver=docker --memory=2048 --cpus=2 + echo " ✓ minikube started" +else + echo " ✓ minikube is already running" +fi + +# ── 3. Create host directory for PersistentVolume ───────── +echo "" +echo "[3/4] Creating PersistentVolume host directory inside minikube..." +minikube ssh -- "sudo mkdir -p /mnt/data/postgres && sudo chmod 777 /mnt/data/postgres" +echo " ✓ /mnt/data/postgres created inside minikube node" + +# ── 4. Build Docker image inside minikube's Docker daemon ─ +echo "" +echo "[4/4] Building Docker image 'todo-app:latest' inside minikube..." +# Point Docker CLI to minikube's daemon so image is available to k8s pods +eval "$(minikube docker-env)" +docker build -t todo-app:latest ./app +echo " ✓ Image 'todo-app:latest' built successfully" + +echo "" +echo "======================================================" +echo " Preparation complete!" +echo " Now run: bash start-app.sh" +echo "======================================================" diff --git a/z2/sql/init.sql b/z2/sql/init.sql new file mode 100644 index 0000000..59973f6 --- /dev/null +++ b/z2/sql/init.sql @@ -0,0 +1,19 @@ +-- Initialize the Todo database +CREATE DATABASE IF NOT EXISTS tododb; + +\c tododb; + +CREATE TABLE IF NOT EXISTS todos ( + id SERIAL PRIMARY KEY, + title TEXT NOT NULL, + done BOOLEAN NOT NULL DEFAULT FALSE, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +-- Seed some sample data +INSERT INTO todos (title, done) VALUES + ('Deploy app to Kubernetes', TRUE), + ('Set up PostgreSQL StatefulSet', TRUE), + ('Configure PersistentVolume', FALSE), + ('Write README documentation', FALSE), + ('Test the web application', FALSE); diff --git a/z2/start-app.sh b/z2/start-app.sh new file mode 100644 index 0000000..d4d2ab6 --- /dev/null +++ b/z2/start-app.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash +# ============================================================================= +# start-app.sh +# Creates all Kubernetes objects for the Todo application. +# Assumes: kubectl configured, minikube running, prepare-app.sh already run. +# ============================================================================= +set -euo pipefail + +K8S_DIR="$(dirname "$0")/k8s" + +echo "======================================================" +echo " Starting K8s Todo App" +echo "======================================================" + +# ── 1. Namespace ─────────────────────────────────────────── +echo "" +echo "[1/6] Creating Namespace..." +kubectl apply -f "$K8S_DIR/namespace.yaml" +echo " ✓ Namespace 'todo-app' ready" + +# ── 2. ConfigMap (init SQL) ──────────────────────────────── +echo "" +echo "[2/6] Creating ConfigMap for database init SQL..." +kubectl apply -f "$K8S_DIR/configmap.yaml" +echo " ✓ ConfigMap 'postgres-init-sql' ready" + +# ── 3. PersistentVolume + PVC + Secret + StatefulSet ────── +echo "" +echo "[3/6] Creating PersistentVolume, PVC, Secret and StatefulSet (PostgreSQL)..." +kubectl apply -f "$K8S_DIR/statefulset.yaml" +echo " ✓ PersistentVolume, PVC, Secret and StatefulSet applied" + +# ── 4. Services ──────────────────────────────────────────── +echo "" +echo "[4/6] Creating Services..." +kubectl apply -f "$K8S_DIR/service.yaml" +echo " ✓ Services created" + +# ── 5. Wait for PostgreSQL to be ready ──────────────────── +echo "" +echo "[5/6] Waiting for PostgreSQL StatefulSet to become ready (up to 3 min)..." +kubectl rollout status statefulset/postgres -n todo-app --timeout=180s +echo " ✓ PostgreSQL is ready" + +# ── 6. Deployment (Flask app) ────────────────────────────── +echo "" +echo "[6/6] Creating Deployment (Flask Todo App)..." +kubectl apply -f "$K8S_DIR/deployment.yaml" +kubectl rollout status deployment/todo-app -n todo-app --timeout=120s +echo " ✓ Deployment is ready" + +# ── Summary ──────────────────────────────────────────────── +echo "" +echo "======================================================" +echo " Application is UP!" +echo "" +MINIKUBE_IP=$(minikube ip 2>/dev/null || echo "") +echo " Open in browser: http://${MINIKUBE_IP}:30080" +echo "" +echo " Or run: minikube service todo-app-service -n todo-app" +echo "" +echo " All pods:" +kubectl get pods -n todo-app +echo "======================================================" diff --git a/z2/stop-app.sh b/z2/stop-app.sh new file mode 100644 index 0000000..822ec9b --- /dev/null +++ b/z2/stop-app.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +# ============================================================================= +# stop-app.sh +# Deletes all Kubernetes objects created for the Todo application. +# The PersistentVolume host directory is preserved (data survives restart). +# ============================================================================= +set -euo pipefail + +K8S_DIR="$(dirname "$0")/k8s" + +echo "======================================================" +echo " Stopping K8s Todo App" +echo "======================================================" + +# Delete in reverse creation order to avoid dependency issues + +echo "" +echo "[1/5] Deleting Deployment..." +kubectl delete -f "$K8S_DIR/deployment.yaml" --ignore-not-found=true +echo " ✓ Deployment deleted" + +echo "" +echo "[2/5] Deleting Services..." +kubectl delete -f "$K8S_DIR/service.yaml" --ignore-not-found=true +echo " ✓ Services deleted" + +echo "" +echo "[3/5] Deleting StatefulSet, PVC, Secret and PV..." +kubectl delete -f "$K8S_DIR/statefulset.yaml" --ignore-not-found=true +echo " ✓ StatefulSet, PVC, Secret and PV deleted" + +echo "" +echo "[4/5] Deleting ConfigMap..." +kubectl delete -f "$K8S_DIR/configmap.yaml" --ignore-not-found=true +echo " ✓ ConfigMap deleted" + +echo "" +echo "[5/5] Deleting Namespace (this removes any remaining objects)..." +kubectl delete -f "$K8S_DIR/namespace.yaml" --ignore-not-found=true +echo " ✓ Namespace deleted" + +echo "" +echo "======================================================" +echo " Application stopped and all objects removed." +echo " Database files remain at /mnt/data/postgres inside minikube." +echo " To fully reset: minikube ssh -- 'sudo rm -rf /mnt/data/postgres'" +echo "======================================================"