diff --git a/cso2/k8s/argocd/application.yaml b/cso2/k8s/argocd/application.yaml new file mode 100644 index 0000000..2e047c1 --- /dev/null +++ b/cso2/k8s/argocd/application.yaml @@ -0,0 +1,24 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: cs02-project + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + source: + repoURL: https://github.com/CSO2/cs02-computer-store.git + targetRevision: HEAD + path: k8s/services + directory: + recurse: true + destination: + server: https://kubernetes.default.svc + namespace: default + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/cso2/k8s/services/ai-service.yaml b/cso2/k8s/services/ai-service.yaml new file mode 100644 index 0000000..46b42b5 --- /dev/null +++ b/cso2/k8s/services/ai-service.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ai-service + labels: + app: ai-service +spec: + replicas: 1 + selector: + matchLabels: + app: ai-service + template: + metadata: + labels: + app: ai-service + spec: + containers: + - name: ai-service + image: cso2/ai-service:latest + ports: + - containerPort: 8089 + env: + - name: DB_HOST + value: "postgres" +--- +apiVersion: v1 +kind: Service +metadata: + name: ai-service +spec: + selector: + app: ai-service + ports: + - protocol: TCP + port: 8089 + targetPort: 8089 diff --git a/cso2/k8s/services/api-gateway.yaml b/cso2/k8s/services/api-gateway.yaml new file mode 100644 index 0000000..0910405 --- /dev/null +++ b/cso2/k8s/services/api-gateway.yaml @@ -0,0 +1,53 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: api-gateway + labels: + app: api-gateway +spec: + replicas: 1 + selector: + matchLabels: + app: api-gateway + template: + metadata: + labels: + app: api-gateway + spec: + containers: + - name: api-gateway + image: cso2/api-gateway:latest + ports: + - containerPort: 8080 + env: + - name: AUTH_SERVICE_URL + value: "http://auth-service:8081" + - name: PRODUCT_CATALOGUE_SERVICE_URL + value: "http://product-catalogue-service:8082" + - name: SHOPPING_CART_SERVICE_URL + value: "http://shoppingcart-wishlist-service:8084" + - name: ORDER_SERVICE_URL + value: "http://order-service:8083" + - name: NOTIFICATIONS_SERVICE_URL + value: "http://notifications-service:8087" + - name: CONTENT_SERVICE_URL + value: "http://content-service:8086" + - name: SUPPORT_SERVICE_URL + value: "http://support-service:8085" + - name: REPORTING_SERVICE_URL + value: "http://reporting-and-analysis-service:8088" + - name: AI_SERVICE_URL + value: "http://ai-service:8089" +--- +apiVersion: v1 +kind: Service +metadata: + name: api-gateway +spec: + selector: + app: api-gateway + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 + type: NodePort # Or LoadBalancer diff --git a/cso2/k8s/services/auth-service.yaml b/cso2/k8s/services/auth-service.yaml new file mode 100644 index 0000000..36a04e6 --- /dev/null +++ b/cso2/k8s/services/auth-service.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: auth-service + labels: + app: auth-service +spec: + replicas: 1 + selector: + matchLabels: + app: auth-service + template: + metadata: + labels: + app: auth-service + spec: + containers: + - name: auth-service + image: cso2/auth-service:latest + ports: + - containerPort: 8081 + env: + - name: DB_HOST + value: "postgres" # Update this to your DB host +--- +apiVersion: v1 +kind: Service +metadata: + name: auth-service +spec: + selector: + app: auth-service + ports: + - protocol: TCP + port: 8081 + targetPort: 8081 diff --git a/cso2/k8s/services/content-service.yaml b/cso2/k8s/services/content-service.yaml new file mode 100644 index 0000000..833a505 --- /dev/null +++ b/cso2/k8s/services/content-service.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: content-service + labels: + app: content-service +spec: + replicas: 1 + selector: + matchLabels: + app: content-service + template: + metadata: + labels: + app: content-service + spec: + containers: + - name: content-service + image: cso2/content-service:latest + ports: + - containerPort: 8086 + env: + - name: DB_HOST + value: "postgres" +--- +apiVersion: v1 +kind: Service +metadata: + name: content-service +spec: + selector: + app: content-service + ports: + - protocol: TCP + port: 8086 + targetPort: 8086 diff --git a/cso2/k8s/services/frontend.yaml b/cso2/k8s/services/frontend.yaml new file mode 100644 index 0000000..9e9a290 --- /dev/null +++ b/cso2/k8s/services/frontend.yaml @@ -0,0 +1,37 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend + labels: + app: frontend +spec: + replicas: 1 + selector: + matchLabels: + app: frontend + template: + metadata: + labels: + app: frontend + spec: + containers: + - name: frontend + image: cso2/frontend:latest + ports: + - containerPort: 3000 + env: + - name: NEXT_PUBLIC_API_URL + value: "http://api-gateway:8080" # Assuming internal or external access, might need adjustment if accessed from browser +--- +apiVersion: v1 +kind: Service +metadata: + name: frontend +spec: + selector: + app: frontend + ports: + - protocol: TCP + port: 3000 + targetPort: 3000 + type: NodePort # Or LoadBalancer/ClusterIP depending on needs diff --git a/cso2/k8s/services/notifications-service.yaml b/cso2/k8s/services/notifications-service.yaml new file mode 100644 index 0000000..09d696b --- /dev/null +++ b/cso2/k8s/services/notifications-service.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: notifications-service + labels: + app: notifications-service +spec: + replicas: 1 + selector: + matchLabels: + app: notifications-service + template: + metadata: + labels: + app: notifications-service + spec: + containers: + - name: notifications-service + image: cso2/notifications-service:latest + ports: + - containerPort: 8087 + env: + - name: DB_HOST + value: "postgres" +--- +apiVersion: v1 +kind: Service +metadata: + name: notifications-service +spec: + selector: + app: notifications-service + ports: + - protocol: TCP + port: 8087 + targetPort: 8087 diff --git a/cso2/k8s/services/order-service.yaml b/cso2/k8s/services/order-service.yaml new file mode 100644 index 0000000..512dee4 --- /dev/null +++ b/cso2/k8s/services/order-service.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: order-service + labels: + app: order-service +spec: + replicas: 1 + selector: + matchLabels: + app: order-service + template: + metadata: + labels: + app: order-service + spec: + containers: + - name: order-service + image: cso2/order-service:latest + ports: + - containerPort: 8083 + env: + - name: DB_HOST + value: "postgres" +--- +apiVersion: v1 +kind: Service +metadata: + name: order-service +spec: + selector: + app: order-service + ports: + - protocol: TCP + port: 8083 + targetPort: 8083 diff --git a/cso2/k8s/services/product-catalogue-service.yaml b/cso2/k8s/services/product-catalogue-service.yaml new file mode 100644 index 0000000..3454631 --- /dev/null +++ b/cso2/k8s/services/product-catalogue-service.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: product-catalogue-service + labels: + app: product-catalogue-service +spec: + replicas: 1 + selector: + matchLabels: + app: product-catalogue-service + template: + metadata: + labels: + app: product-catalogue-service + spec: + containers: + - name: product-catalogue-service + image: cso2/product-catalogue-service:latest + ports: + - containerPort: 8082 + env: + - name: MONGODB_URI + value: "mongodb://mongodb:27017/CSO2_product_catalogue_service" # Update host +--- +apiVersion: v1 +kind: Service +metadata: + name: product-catalogue-service +spec: + selector: + app: product-catalogue-service + ports: + - protocol: TCP + port: 8082 + targetPort: 8082 diff --git a/cso2/k8s/services/reporting-and-analysis-service.yaml b/cso2/k8s/services/reporting-and-analysis-service.yaml new file mode 100644 index 0000000..e28af7c --- /dev/null +++ b/cso2/k8s/services/reporting-and-analysis-service.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: reporting-and-analysis-service + labels: + app: reporting-service +spec: + replicas: 1 + selector: + matchLabels: + app: reporting-service + template: + metadata: + labels: + app: reporting-service + spec: + containers: + - name: reporting-service + image: cso2/reporting-and-analysis-service:latest + ports: + - containerPort: 8088 + env: + - name: DB_HOST + value: "postgres" +--- +apiVersion: v1 +kind: Service +metadata: + name: reporting-and-analysis-service +spec: + selector: + app: reporting-service + ports: + - protocol: TCP + port: 8088 + targetPort: 8088 diff --git a/cso2/k8s/services/shoppingcart-wishlist-service.yaml b/cso2/k8s/services/shoppingcart-wishlist-service.yaml new file mode 100644 index 0000000..f5caba3 --- /dev/null +++ b/cso2/k8s/services/shoppingcart-wishlist-service.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: shoppingcart-wishlist-service + labels: + app: shoppingcart-service +spec: + replicas: 1 + selector: + matchLabels: + app: shoppingcart-service + template: + metadata: + labels: + app: shoppingcart-service + spec: + containers: + - name: shoppingcart-service + image: cso2/shoppingcart-wishlist-service:latest + ports: + - containerPort: 8084 + env: + - name: DB_HOST + value: "postgres" +--- +apiVersion: v1 +kind: Service +metadata: + name: shoppingcart-wishlist-service +spec: + selector: + app: shoppingcart-service + ports: + - protocol: TCP + port: 8084 + targetPort: 8084 diff --git a/cso2/k8s/services/support-service.yaml b/cso2/k8s/services/support-service.yaml new file mode 100644 index 0000000..76b7756 --- /dev/null +++ b/cso2/k8s/services/support-service.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: support-service + labels: + app: support-service +spec: + replicas: 1 + selector: + matchLabels: + app: support-service + template: + metadata: + labels: + app: support-service + spec: + containers: + - name: support-service + image: cso2/support-service:latest + ports: + - containerPort: 8085 + env: + - name: DB_HOST + value: "postgres" +--- +apiVersion: v1 +kind: Service +metadata: + name: support-service +spec: + selector: + app: support-service + ports: + - protocol: TCP + port: 8085 + targetPort: 8085