From 8c89d039c4b5461ae2d043971d29619eaf31d149 Mon Sep 17 00:00:00 2001 From: John Kenyon Date: Fri, 20 Jun 2025 18:06:47 -0700 Subject: [PATCH] Start two simple projects --- simple-nginx/nginx-deployment.yaml | 33 ++++++++++++++++++++++++ simple-proj/Dockerfile | 6 +++++ simple-proj/app.py | 21 +++++++++++++++ simple-proj/frontend-deployment.yaml | 0 simple-proj/frontend-service.yaml | 0 simple-proj/k8s/frontend-deployment.yaml | 25 ++++++++++++++++++ simple-proj/k8s/frontend-service.yaml | 12 +++++++++ simple-proj/k8s/redis-deployment.yaml | 20 ++++++++++++++ simple-proj/k8s/redis-service.yaml | 12 +++++++++ simple-proj/redis-deployment.yaml | 0 simple-proj/redis-service.yaml | 0 11 files changed, 129 insertions(+) create mode 100644 simple-nginx/nginx-deployment.yaml create mode 100644 simple-proj/Dockerfile create mode 100644 simple-proj/app.py create mode 100644 simple-proj/frontend-deployment.yaml create mode 100644 simple-proj/frontend-service.yaml create mode 100644 simple-proj/k8s/frontend-deployment.yaml create mode 100644 simple-proj/k8s/frontend-service.yaml create mode 100644 simple-proj/k8s/redis-deployment.yaml create mode 100644 simple-proj/k8s/redis-service.yaml create mode 100644 simple-proj/redis-deployment.yaml create mode 100644 simple-proj/redis-service.yaml diff --git a/simple-nginx/nginx-deployment.yaml b/simple-nginx/nginx-deployment.yaml new file mode 100644 index 0000000..d7f810a --- /dev/null +++ b/simple-nginx/nginx-deployment.yaml @@ -0,0 +1,33 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx +spec: + replicas: 2 + selector: + matchLabels: + app: nginx + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:latest + ports: + - containerPort: 80 +--- +apiVersion: v1 +kind: Service +metadata: + name: nginx +spec: + type: NodePort + selector: + app: nginx + ports: + - port: 80 + targetPort: 80 + nodePort: 30125 # Optional: fixed NodePort + diff --git a/simple-proj/Dockerfile b/simple-proj/Dockerfile new file mode 100644 index 0000000..cb538da --- /dev/null +++ b/simple-proj/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.11-slim +WORKDIR /app +COPY app.py . +RUN pip install flask redis +CMD ["python", "app.py"] + diff --git a/simple-proj/app.py b/simple-proj/app.py new file mode 100644 index 0000000..28695f2 --- /dev/null +++ b/simple-proj/app.py @@ -0,0 +1,21 @@ +# app.py +from flask import Flask, request, jsonify +import redis + +r = redis.Redis(host='redis', port=6379) +app = Flask(__name__) + +@app.route("/items", methods=["GET", "POST"]) +def items(): + if request.method == "POST": + item = request.json.get("item") + if item: + r.rpush("shopping_list", item) + return '', 204 + else: + items = r.lrange("shopping_list", 0, -1) + return jsonify([i.decode() for i in items]) + +if __name__ == "__main__": + app.run(host="0.0.0.0", port=5000) + diff --git a/simple-proj/frontend-deployment.yaml b/simple-proj/frontend-deployment.yaml new file mode 100644 index 0000000..e69de29 diff --git a/simple-proj/frontend-service.yaml b/simple-proj/frontend-service.yaml new file mode 100644 index 0000000..e69de29 diff --git a/simple-proj/k8s/frontend-deployment.yaml b/simple-proj/k8s/frontend-deployment.yaml new file mode 100644 index 0000000..36b6ae3 --- /dev/null +++ b/simple-proj/k8s/frontend-deployment.yaml @@ -0,0 +1,25 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: shoppinglist-frontend +spec: + replicas: 1 + selector: + matchLabels: + app: shoppinglist-frontend + template: + metadata: + labels: + app: shoppinglist-frontend + spec: + containers: + - name: frontend + image: shoppinglist-frontend:latest + ports: + - containerPort: 5000 + env: + - name: REDIS_HOST + value: redis + - name: REDIS_PORT + value: "6379" + diff --git a/simple-proj/k8s/frontend-service.yaml b/simple-proj/k8s/frontend-service.yaml new file mode 100644 index 0000000..e43069d --- /dev/null +++ b/simple-proj/k8s/frontend-service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: shoppinglist-frontend +spec: + selector: + app: shoppinglist-frontend + ports: + - port: 80 + targetPort: 5000 + type: NodePort + diff --git a/simple-proj/k8s/redis-deployment.yaml b/simple-proj/k8s/redis-deployment.yaml new file mode 100644 index 0000000..0c0a3e5 --- /dev/null +++ b/simple-proj/k8s/redis-deployment.yaml @@ -0,0 +1,20 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis +spec: + replicas: 1 + selector: + matchLabels: + app: redis + template: + metadata: + labels: + app: redis + spec: + containers: + - name: redis + image: redis:7-alpine + ports: + - containerPort: 6379 + diff --git a/simple-proj/k8s/redis-service.yaml b/simple-proj/k8s/redis-service.yaml new file mode 100644 index 0000000..91542d0 --- /dev/null +++ b/simple-proj/k8s/redis-service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: redis +spec: + selector: + app: redis + ports: + - port: 6379 + targetPort: 6379 + type: ClusterIP + diff --git a/simple-proj/redis-deployment.yaml b/simple-proj/redis-deployment.yaml new file mode 100644 index 0000000..e69de29 diff --git a/simple-proj/redis-service.yaml b/simple-proj/redis-service.yaml new file mode 100644 index 0000000..e69de29