diff --git a/pods/backend.yml b/pods/backend.yml new file mode 100644 index 0000000000000000000000000000000000000000..d043c6d6b7bb7d1b00b668928519564793e62598 --- /dev/null +++ b/pods/backend.yml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backend +spec: + selector: + matchLabels: + app: backend + template: + metadata: + labels: + app: backend + spec: + containers: + - name: backend + image: git.ajou.ac.kr:5050/meanspec/meanspec-backend:latest + resources: + limits: + memory: "128Mi" + cpu: "500m" + ports: + - containerPort: 8000 + env: + - name: JWT_SECRET + value: jwtsecret + - name: DB_HOST + value: postgres + - name: DB_USER + value: meanspec + - name: DB_PASSWORD + value: foopassword123 + - name: REDIS_URL + value: redis://redis +--- +apiVersion: v1 +kind: Service +metadata: + name: backend +spec: + selector: + app: backend + ports: + - port: 8000 + targetPort: 8000 diff --git a/pods/entrypoint.yml b/pods/entrypoint.yml new file mode 100644 index 0000000000000000000000000000000000000000..b5ff67dd7f5e179b80529bb81828d12b1516f8ee --- /dev/null +++ b/pods/entrypoint.yml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Pod +metadata: + name: entry + labels: + name: entry +spec: + containers: + - name: entry + image: ubuntu:latest + command: ["/bin/bash", "-c", "--"] + args: ["while true; do sleep 30; done;"] + resources: + limits: + memory: "128Mi" + cpu: "500m" diff --git a/pods/frontend-dropper.yml b/pods/frontend-dropper.yml new file mode 100644 index 0000000000000000000000000000000000000000..33951941b7e43ad1d8b086cfb7b568882173b213 --- /dev/null +++ b/pods/frontend-dropper.yml @@ -0,0 +1,25 @@ +apiVersion: v1 +kind: Pod +metadata: + name: frontend-dropper + labels: + name: frontend-dropper +spec: + restartPolicy: Never + containers: + - name: frontend-dropper + image: git.ajou.ac.kr:5050/meanspec/meanspec-frontend:latest + command: ["sh", "-c"] + args: ["/bin/echo \"cp -r /app/* /workdir\" > /entrypoint.sh ; chmod +x /entrypoint.sh ; /entrypoint.sh"] + resources: + limits: + memory: "128Mi" + cpu: "500m" + volumeMounts: + - name: frontend + mountPath: /workdir + volumes: + - name: frontend + hostPath: + path: /home/enak/meanspec/frontend + type: DirectoryOrCreate diff --git a/pods/hwinfo.yml b/pods/hwinfo.yml new file mode 100644 index 0000000000000000000000000000000000000000..f0e95040cf6833d3567c3146d8d938c273c0087e --- /dev/null +++ b/pods/hwinfo.yml @@ -0,0 +1,28 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: hwinfo +spec: + replicas: 8 + selector: + matchLabels: + app: hwinfo + template: + metadata: + labels: + app: hwinfo + spec: + containers: + - name: hwinfo + image: git.ajou.ac.kr:5050/meanspec/meanspec-hwinfo-daemon:latest + env: + - name: REDIS_URL + value: redis://redis + - name: DB_HOST + value: postgres + - name: PARSE_DAEMON_REFRESH_INTERVAL + value: "1" + resources: + limits: + memory: "64Mi" + cpu: "100m" diff --git a/pods/mailing.yml b/pods/mailing.yml new file mode 100644 index 0000000000000000000000000000000000000000..5046fba94d81749f3677e1f5d7d59553fdba8fd9 --- /dev/null +++ b/pods/mailing.yml @@ -0,0 +1,32 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mailing +spec: + replicas: 8 + selector: + matchLabels: + app: mailing + template: + metadata: + labels: + app: mailing + spec: + containers: + - name: mailing + image: git.ajou.ac.kr:5050/meanspec/meanspec-mailing-daemon:latest + env: + - name: REDIS_URL + value: redis://redis + - name: SMTP_USER + value: bc1916@ajou.ac.kr + - name: SMTP_PASS + value: <erased> + - name: SENDER_MAIL + value: bc1916@ajou.ac.kr + - name: CODE_TTL_SECONDS + value: "60" + resources: + limits: + memory: "64Mi" + cpu: "100m" diff --git a/pods/nginx.yml b/pods/nginx.yml new file mode 100644 index 0000000000000000000000000000000000000000..edca642de7bfa9f41cbc6da114e1aea406130fd6 --- /dev/null +++ b/pods/nginx.yml @@ -0,0 +1,88 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nginx-config-pv +spec: + capacity: + storage: 1G + accessModes: + - ReadOnlyMany + storageClassName: manual + hostPath: + path: /home/enak/meanspec/nginx + type: DirectoryOrCreate +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nginx-config-pvc +spec: + resources: + requests: + storage: 100Mi + volumeMode: Filesystem + accessModes: + - ReadOnlyMany + volumeName: nginx-config-pv + storageClassName: manual +--- +apiVersion: v1 +kind: Pod +metadata: + name: nginx + labels: + name: nginx +spec: + containers: + - name: nginx + image: return0927/nginx:1.19.3-hakase + resources: + limits: + memory: "128Mi" + cpu: "500m" + ports: + - containerPort: 80 + volumeMounts: + - name: nginx-config + mountPath: /etc/nginx + - name: frontend + mountPath: /var/www/html + volumes: + - name: frontend + hostPath: + path: /home/enak/meanspec/frontend + type: DirectoryOrCreate + - name: nginx-config + persistentVolumeClaim: + claimName: nginx-config-pvc + +--- +apiVersion: v1 +kind: Service +metadata: + name: meanspec +spec: + selector: + name: nginx + ports: + - port: 80 + targetPort: 80 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: path + annotations: + nginx.ingress.kubernetes.io/rewrite-target: / +spec: + ingressClassName: nginx + rules: + - http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: meanspec + port: + name: http diff --git a/pods/postgres.yml b/pods/postgres.yml new file mode 100644 index 0000000000000000000000000000000000000000..49bc85d4d37ac71bb4694a1192f9512f5b42968a --- /dev/null +++ b/pods/postgres.yml @@ -0,0 +1,62 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: postgres-db-pvc +spec: + resources: + requests: + storage: 16G + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + volumeName: postgres-db-pv + storageClassName: manual +--- +apiVersion: v1 +kind: Pod +metadata: + name: postgres + labels: + name: postgres +spec: + containers: + - name: postgres + image: docker.io/library/postgres:17-alpine + resources: + limits: + memory: "4G" + cpu: "2" + ports: + - containerPort: 5432 + protocol: TCP + env: + - name: POSTGRES_DB + value: meanspec + - name: POSTGRES_USER + value: meanspec + - name: POSTGRES_PASSWORD + value: foopassword123 + volumeMounts: + - name: postgres-init-scripts + mountPath: /docker-entrypoint-initdb.d + - name: postgres-data + mountPath: /var/lib/postgres/data + volumes: + - name: postgres-init-scripts + hostPath: + path: /home/enak/meanspec/init/sql + type: Directory + - name: postgres-data + persistentVolumeClaim: + claimName: postgres-db-pvc +--- +apiVersion: v1 +kind: Service +metadata: + name: postgres +spec: + selector: + name: postgres + ports: + - port: 5432 + targetPort: 5432 diff --git a/pods/redis.yml b/pods/redis.yml new file mode 100644 index 0000000000000000000000000000000000000000..ba66e39c17a9f6f21de225e4fccc25ab41de37df --- /dev/null +++ b/pods/redis.yml @@ -0,0 +1,31 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis-cluster +spec: + selector: + matchLabels: + app: redis-cluster + template: + metadata: + labels: + app: redis-cluster + spec: + containers: + - name: redis-cluster + image: redis:7.4.1-alpine + resources: + limits: + memory: "128Mi" + cpu: "500m" +--- +apiVersion: v1 +kind: Service +metadata: + name: redis +spec: + selector: + app: redis-cluster + ports: + - port: 6379 + targetPort: 6379 diff --git a/pods/volumes.yml b/pods/volumes.yml new file mode 100644 index 0000000000000000000000000000000000000000..dbed290d0683d4de83ee585a2c85777754cae4bf --- /dev/null +++ b/pods/volumes.yml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: postgres-db-pv +spec: + capacity: + storage: 16G + accessModes: + - ReadWriteOnce + storageClassName: manual + volumeMode: Filesystem + persistentVolumeReclaimPolicy: Retain + hostPath: + path: /home/enak/meanspec/database + type: DirectoryOrCreate