From 20888e900a7902279932f2b63b72562139e378be Mon Sep 17 00:00:00 2001
From: Abelangel <abelange.burgosdi@hes-so.ch>
Date: Sat, 5 Apr 2025 17:53:52 +0200
Subject: [PATCH] premiere version deploiement

---
 microservices/buildMK.sh                      |   9 +
 minikube/cors.conf                            |  14 --
 ...oiement(2).yml => deploiement-complet.yml} | 149 +++++++++--
 minikube/deploiement.yml                      | 148 -----------
 minikube/k8s-auth.yaml                        |  31 ---
 minikube/k8s-postgres.yaml                    |  55 ----
 minikube/nginx-configmap.yml                  |  47 ++++
 minikube/nginx.conf                           | 235 ------------------
 8 files changed, 182 insertions(+), 506 deletions(-)
 create mode 100755 microservices/buildMK.sh
 delete mode 100644 minikube/cors.conf
 rename minikube/{deploiement(2).yml => deploiement-complet.yml} (58%)
 delete mode 100644 minikube/deploiement.yml
 delete mode 100644 minikube/k8s-auth.yaml
 delete mode 100644 minikube/k8s-postgres.yaml
 create mode 100644 minikube/nginx-configmap.yml
 delete mode 100644 minikube/nginx.conf

diff --git a/microservices/buildMK.sh b/microservices/buildMK.sh
new file mode 100755
index 0000000..dcdcab5
--- /dev/null
+++ b/microservices/buildMK.sh
@@ -0,0 +1,9 @@
+eval $(minikube docker-env)
+docker images  
+
+docker build -t service-frontend ./frontend
+docker build -t service-auth ./auth
+docker build -t service-correction-qcm ./correction_qcm
+docker build -t service-realise-qcm ./realise_qcm
+docker build -t service-search-qcm ./search_qcm
+docker build -t service-creation-qcm ./creation_qcm
diff --git a/minikube/cors.conf b/minikube/cors.conf
deleted file mode 100644
index b0c36cc..0000000
--- a/minikube/cors.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-add_header 'Access-Control-Allow-Origin' '*' always;
-add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always;
-add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type' always;
-add_header 'Access-Control-Max-Age' 1728000 always;
-
-if ($request_method = 'OPTIONS') {
-    add_header 'Access-Control-Allow-Origin' '*' always;
-    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE' always;
-    add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type' always;
-    add_header 'Access-Control-Max-Age' 1728000 always;
-    add_header 'Content-Length' 0;
-    add_header 'Content-Type' 'text/plain charset=UTF-8';
-    return 204;
-}
diff --git a/minikube/deploiement(2).yml b/minikube/deploiement-complet.yml
similarity index 58%
rename from minikube/deploiement(2).yml
rename to minikube/deploiement-complet.yml
index fc2b789..63538a2 100644
--- a/minikube/deploiement(2).yml
+++ b/minikube/deploiement-complet.yml
@@ -1,4 +1,4 @@
-# PVC pour PostgreSQL
+# PostgreSQL
 apiVersion: v1
 kind: PersistentVolumeClaim
 metadata:
@@ -10,7 +10,6 @@ spec:
     requests:
       storage: 1Gi
 ---
-# Service PostgreSQL
 apiVersion: v1
 kind: Service
 metadata:
@@ -22,7 +21,6 @@ spec:
     - port: 5432
       targetPort: 5432
 ---
-# Déploiement PostgreSQL
 apiVersion: apps/v1
 kind: Deployment
 metadata:
@@ -56,8 +54,8 @@ spec:
         - name: postgres-storage
           persistentVolumeClaim:
             claimName: postgres-pvc
+
 ---
-# Déploiement service-auth
 apiVersion: apps/v1
 kind: Deployment
 metadata:
@@ -74,26 +72,10 @@ spec:
     spec:
       containers:
         - name: service-auth
+          imagePullPolicy: Never
           image: service-auth
           ports:
             - containerPort: 8002
-          env:
-            - name: POSTGRES_USER
-              value: "user"
-            - name: POSTGRES_PASSWORD
-              value: "super"
-            - name: POSTGRES_DB
-              value: "dbqcm"
-            - name: DATABASE_URL
-              value: "postgresql://user:super@postgres:5432/dbqcm"
-            - name: API_PORT
-              value: "30992"
-            - name: SECRET_JWT
-              value: "JECROISQUECEMESSAGEESTSECRET"
-            - name: CLIENTID
-              value: "f8b0e14f7eee1a718ad0b3f32c52fe34813d56e9052976f076e039d006e24000"
-            - name: CLIENTSECRET
-              value: "gloas-1451c5f206cb04b6b300e6dcbf19a01f1a44bff5e8562741a7efd0ec27eb0855"
 ---
 apiVersion: v1
 kind: Service
@@ -106,8 +88,29 @@ spec:
     - port: 8002
       targetPort: 8002
   type: ClusterIP
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-correction-qcm
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: service-correction-qcm
+  template:
+    metadata:
+      labels:
+        app: service-correction-qcm
+    spec:
+      containers:
+        - name: service-correction-qcm
+          imagePullPolicy: Never
+          image: service-correction-qcm
+          ports:
+            - containerPort: 8003
 ---
-# Services restants (sans déploiements)
 apiVersion: v1
 kind: Service
 metadata:
@@ -119,6 +122,28 @@ spec:
     - port: 8003
       targetPort: 8003
   type: ClusterIP
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-creation-qcm
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: service-creation-qcm
+  template:
+    metadata:
+      labels:
+        app: service-creation-qcm
+    spec:
+      containers:
+        - name: service-creation-qcm
+          imagePullPolicy: Never
+          image: service-creation-qcm
+          ports:
+            - containerPort: 8004
 ---
 apiVersion: v1
 kind: Service
@@ -131,6 +156,28 @@ spec:
     - port: 8004
       targetPort: 8004
   type: ClusterIP
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-realise-qcm
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: service-realise-qcm
+  template:
+    metadata:
+      labels:
+        app: service-realise-qcm
+    spec:
+      containers:
+        - name: service-realise-qcm
+          imagePullPolicy: Never
+          image: service-realise-qcm
+          ports:
+            - containerPort: 8005
 ---
 apiVersion: v1
 kind: Service
@@ -143,6 +190,28 @@ spec:
     - port: 8005
       targetPort: 8005
   type: ClusterIP
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-search-qcm
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: service-search-qcm
+  template:
+    metadata:
+      labels:
+        app: service-search-qcm
+    spec:
+      containers:
+        - name: service-search-qcm
+          imagePullPolicy: Never
+          image: service-search-qcm
+          ports:
+            - containerPort: 8006
 ---
 apiVersion: v1
 kind: Service
@@ -155,8 +224,42 @@ spec:
     - port: 8006
       targetPort: 8006
   type: ClusterIP
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-frontend
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: service-frontend
+  template:
+    metadata:
+      labels:
+        app: service-frontend
+    spec:
+      containers:
+        - name: service-frontend
+          imagePullPolicy: Never
+          image: service-frontend
+          ports:
+            - containerPort: 4200
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: service-frontend
+spec:
+  selector:
+    app: service-frontend
+  ports:
+    - port: 4200
+      targetPort: 4200
+  type: ClusterIP
+
 ---
-# Déploiement nginx
 apiVersion: apps/v1
 kind: Deployment
 metadata:
diff --git a/minikube/deploiement.yml b/minikube/deploiement.yml
deleted file mode 100644
index 7afb3c0..0000000
--- a/minikube/deploiement.yml
+++ /dev/null
@@ -1,148 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  name: postgres-pvc
-spec:
-  accessModes:
-    - ReadWriteOnce
-  resources:
-    requests:
-      storage: 1Gi
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: postgres
-spec:
-  selector:
-    app: postgres
-  ports:
-    - port: 5432
-      targetPort: 5432
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: postgres
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: postgres
-  template:
-    metadata:
-      labels:
-        app: postgres
-    spec:
-      containers:
-        - name: postgres
-          image: postgres:latest
-          ports:
-            - containerPort: 5432
-          env:
-            - name: POSTGRES_USER
-              value: "user"
-            - name: POSTGRES_PASSWORD
-              value: "super"
-            - name: POSTGRES_DB
-              value: "dbqcm"
-          volumeMounts:
-            - mountPath: /var/lib/postgresql/data
-              name: postgres-storage
-      volumes:
-        - name: postgres-storage
-          persistentVolumeClaim:
-            claimName: postgres-pvc
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: service-auth
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: service-auth
-  template:
-    metadata:
-      labels:
-        app: service-auth
-    spec:
-      containers:
-        - name: service-auth
-          image: service-auth
-          ports:
-            - containerPort: 8002
-          env:
-            - name: POSTGRES_USER
-              value: "user"
-            - name: POSTGRES_PASSWORD
-              value: "super"
-            - name: POSTGRES_DB
-              value: "dbqcm"
-            - name: DATABASE_URL
-              value: "postgresql://user:super@postgres:5432/dbqcm"
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: service-auth
-spec:
-  selector:
-    app: service-auth
-  ports:
-    - port: 8002
-      targetPort: 8002
-  type: ClusterIP
-
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: service-correction-qcm
-spec:
-  selector:
-    app: service-correction-qcm
-  ports:
-    - port: 8003
-      targetPort: 8003
-  type: ClusterIP
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: service-creation-qcm
-spec:
-  selector:
-    app: service-creation-qcm
-  ports:
-    - port: 8004
-      targetPort: 8004
-  type: ClusterIP
-
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: service-realise-qcm
-spec:
-  selector:
-    app: service-realise-qcm
-  ports:
-    - port: 8005
-      targetPort: 8005
-  type: ClusterIP
-
-
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: service-search-qcm
-spec:
-  selector:
-    app: service-search-qcm
-  ports:
-    - port: 8006
-      targetPort: 8006
-  type: ClusterIP
diff --git a/minikube/k8s-auth.yaml b/minikube/k8s-auth.yaml
deleted file mode 100644
index 14eaec5..0000000
--- a/minikube/k8s-auth.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: auth
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: auth
-  template:
-    metadata:
-      labels:
-        app: auth
-    spec:
-      containers:
-        - name: auth
-          image: service-auth
-          ports:
-            - containerPort: 8002
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: auth
-spec:
-  selector:
-    app: auth
-  ports:
-    - port: 8002
-      targetPort: 8002
-  type: ClusterIP
\ No newline at end of file
diff --git a/minikube/k8s-postgres.yaml b/minikube/k8s-postgres.yaml
deleted file mode 100644
index 172b726..0000000
--- a/minikube/k8s-postgres.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  name: postgres-pvc
-spec:
-  accessModes:
-    - ReadWriteOnce
-  resources:
-    requests:
-      storage: 1Gi
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: postgres
-spec:
-  selector:
-    app: postgres
-  ports:
-    - port: 5432
-      targetPort: 5432
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: postgres
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: postgres
-  template:
-    metadata:
-      labels:
-        app: postgres
-    spec:
-      containers:
-        - name: postgres
-          image: postgres:latest
-          ports:
-            - containerPort: 5432
-          env:
-            - name: POSTGRES_USER
-              value: "user"
-            - name: POSTGRES_PASSWORD
-              value: "super"
-            - name: POSTGRES_DB
-              value: "dbqcm"
-          volumeMounts:
-            - mountPath: /var/lib/postgresql/data
-              name: postgres-storage
-      volumes:
-        - name: postgres-storage
-          persistentVolumeClaim:
-            claimName: postgres-pvc
\ No newline at end of file
diff --git a/minikube/nginx-configmap.yml b/minikube/nginx-configmap.yml
new file mode 100644
index 0000000..407871f
--- /dev/null
+++ b/minikube/nginx-configmap.yml
@@ -0,0 +1,47 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: nginx-conf
+data:
+  nginx.conf: |
+    events {
+        worker_connections 1024;
+    }
+    http {
+        include       mime.types;
+        default_type  application/octet-stream;
+        sendfile        on;
+        keepalive_timeout  65;
+        server {
+            listen 80;
+            location /auth {
+                proxy_pass http://service-auth:8002;
+                proxy_set_header Host $host;
+                proxy_set_header X-Real-IP $remote_addr;
+                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+                proxy_set_header X-Forwarded-Proto $scheme;
+            }
+            location /correction {
+                proxy_pass http://service-correction-qcm:8003;
+            }
+            location /creation {
+                proxy_pass http://service-creation-qcm:8004;
+            }
+            location /realise {
+                proxy_pass http://service-realise-qcm:8005;
+            }
+            location /search {
+                proxy_pass http://service-search-qcm:8006;
+            }
+        }
+    }
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: cors-conf
+data:
+  cors.conf: |
+    add_header 'Access-Control-Allow-Origin' '*';
+    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
+    add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type';
\ No newline at end of file
diff --git a/minikube/nginx.conf b/minikube/nginx.conf
deleted file mode 100644
index 4689b48..0000000
--- a/minikube/nginx.conf
+++ /dev/null
@@ -1,235 +0,0 @@
-events {
-    worker_connections 1024;
-}
-
-http {
-    include       mime.types;
-    default_type  application/octet-stream;
-
-    sendfile        on;
-    keepalive_timeout  65;
-
-    server {
-        listen 30992;  
-
-        location /auth/jwt {
-            proxy_pass http://service-auth:30992;
-            
-        }
-
-     
-
-        location /reponseCorrect/ {
-            proxy_pass http://service-correction-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /responses_QCM/ {
-            proxy_pass http://service-correction-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /feedback {
-            proxy_pass http://service-correction-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /results {
-            proxy_pass http://service-correction-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /QCM {
-            proxy_pass http://service-creation-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /QCM/ {
-            proxy_pass http://service-creation-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /numeric_question {
-            proxy_pass http://service-creation-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        
-
-        location /numeric_response {
-            proxy_pass http://service-realise-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /response {
-            proxy_pass http://service-realise-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /terminer {
-            proxy_pass http://service-realise-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /question {
-            proxy_pass http://service-realise-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /realised_QCMs {
-            proxy_pass http://service-search-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-        
-
-         location /examen_QCM {
-            proxy_pass http://service-search-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /created_QCMs {
-            proxy_pass http://service-search-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /infos_QCM/ {
-    proxy_pass http://service-search-qcm:30992;
-    proxy_pass_request_headers on;
-    proxy_set_header Authorization $http_authorization;
-    proxy_set_header Host $host;
-    proxy_set_header X-Real-IP $remote_addr;
-    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-    proxy_set_header X-Forwarded-Proto $scheme;
-    include cors.conf;
-}
-
-
-        location /true_false_question {
-            proxy_pass http://service-creation-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-        location /join {
-            proxy_pass http://service-realise-qcm:30992;
-            proxy_set_header Host $host;
-            proxy_set_header X-Real-IP $remote_addr;
-            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header X-Forwarded-Proto $scheme;
-            proxy_pass_request_headers on;
-proxy_set_header Authorization $http_authorization;
-
-            include cors.conf;
-        }
-
-
-
-       
-    }
-
-    
-}
-- 
GitLab