diff --git a/k8s/deploy.backend.yaml b/k8s/deploy.backend.yaml new file mode 100644 index 0000000..9d3a896 --- /dev/null +++ b/k8s/deploy.backend.yaml @@ -0,0 +1,30 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: cnd2025-backend + labels: + app: cnd2025-backend +spec: + replicas: 1 + selector: + matchLabels: + app: cnd2025-backend + template: + metadata: + labels: + app: cnd2025-backend + spec: + containers: + - name: backend + image: gitea.konchin.com/ytshih/cnd2025-hw3/backend:latest + ports: + - name: http + containerPort: 8888 + env: + - name: PORT + value: '8888' + - name: HOST + value: '0.0.0.0' + - name: MONGO_CONNECTION_STRING + value: 'mongodb://cnd2025-mongo.cnd2025.svc.cluster.local:27017/todo' diff --git a/k8s/deploy.frontend.yaml b/k8s/deploy.frontend.yaml new file mode 100644 index 0000000..dc09270 --- /dev/null +++ b/k8s/deploy.frontend.yaml @@ -0,0 +1,23 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: cnd2025-frontend + labels: + app: cnd2025-frontend +spec: + replicas: 1 + selector: + matchLabels: + app: cnd2025-frontend + template: + metadata: + labels: + app: cnd2025-frontend + spec: + containers: + - name: frontend + image: gitea.konchin.com/ytshih/cnd2025-hw3/frontend:latest + ports: + - name: http + containerPort: 80 diff --git a/k8s/deploy.mongo.yaml b/k8s/deploy.mongo.yaml new file mode 100644 index 0000000..efd5181 --- /dev/null +++ b/k8s/deploy.mongo.yaml @@ -0,0 +1,23 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: cnd2025-mongo + labels: + app: cnd2025-mongo +spec: + replicas: 1 + selector: + matchLabels: + app: cnd2025-mongo + template: + metadata: + labels: + app: cnd2025-mongo + spec: + containers: + - name: mongo + image: docker.io/library/mongo:8.0 + ports: + - name: mongo + containerPort: 27017 diff --git a/k8s/ingress.yaml b/k8s/ingress.yaml new file mode 100644 index 0000000..63f3e4e --- /dev/null +++ b/k8s/ingress.yaml @@ -0,0 +1,24 @@ +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + namespace: cnd2025 + name: cnd2025 +spec: + rules: + - http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: cnd2025-frontend + port: + number: 80 + - path: /api + pathType: Prefix + backend: + service: + name: cnd2025-backend + port: + number: 80 diff --git a/k8s/kustomization.yaml b/k8s/kustomization.yaml new file mode 100644 index 0000000..b006498 --- /dev/null +++ b/k8s/kustomization.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: cnd2025 +generatorOptions: + disableNameSuffixHash: true +resources: + - namespace.yaml + - deploy.frontend.yaml + - deploy.backend.yaml + - deploy.mongo.yaml + - svc.frontend.yaml + - svc.backend.yaml + - svc.mongo.yaml + - ingress.yaml diff --git a/k8s/namespace.yaml b/k8s/namespace.yaml new file mode 100644 index 0000000..67c5739 --- /dev/null +++ b/k8s/namespace.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: cnd2025 diff --git a/k8s/svc.backend.yaml b/k8s/svc.backend.yaml new file mode 100644 index 0000000..0b76f69 --- /dev/null +++ b/k8s/svc.backend.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: cnd2025-backend + labels: + app: cnd2025-backend +spec: + type: ClusterIP + selector: + app: cnd2025-backend + ports: + - name: http + port: 80 + targetPort: 8888 diff --git a/k8s/svc.frontend.yaml b/k8s/svc.frontend.yaml new file mode 100644 index 0000000..5157732 --- /dev/null +++ b/k8s/svc.frontend.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: cnd2025-frontend + labels: + app: cnd2025-frontend +spec: + type: ClusterIP + selector: + app: cnd2025-frontend + ports: + - name: http + port: 80 + targetPort: 80 diff --git a/k8s/svc.mongo.yaml b/k8s/svc.mongo.yaml new file mode 100644 index 0000000..6a2c67c --- /dev/null +++ b/k8s/svc.mongo.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: cnd2025-mongo + labels: + app: cnd2025-mongo +spec: + type: ClusterIP + selector: + app: cnd2025-mongo + ports: + - name: mongo + port: 27017 + targetPort: 27017