From 337d20d04106c2d833ca418311de6e359fac5a35 Mon Sep 17 00:00:00 2001 From: Clement FERRERE Date: Mon, 28 Mar 2022 11:53:17 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20des=20fichiers=20Kubernetes=20correspon?= =?UTF-8?q?dant=20=C3=A0=20ce=20qui=20a=20=C3=A9t=C3=A9=20envoy=C3=A9=20?= =?UTF-8?q?=C3=A0=20la=20DSI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api-deployment.yaml | 63 +++++++++------- api-ingress-route.yaml | 13 ++++ api-service.yaml | 12 +-- data-volume-persistentvolumeclaim.yaml | 14 ---- db-config.yaml | 8 ++ db-deployment.yaml | 75 ++++++++++--------- db-secret.yaml | 9 +++ db-service.yaml | 14 ++++ ...rsistentvolumeclaim.yaml => db-volume.yaml | 8 +- docker-compose.yml | 6 +- front-deployment.yaml | 33 ++++---- front-ingress-route.yaml | 13 ++++ front-service.yaml | 15 +--- 13 files changed, 166 insertions(+), 117 deletions(-) create mode 100644 api-ingress-route.yaml delete mode 100644 data-volume-persistentvolumeclaim.yaml create mode 100644 db-config.yaml create mode 100644 db-secret.yaml create mode 100644 db-service.yaml rename db-claim1-persistentvolumeclaim.yaml => db-volume.yaml (54%) create mode 100644 front-ingress-route.yaml diff --git a/api-deployment.yaml b/api-deployment.yaml index 6c56ea7..acea930 100644 --- a/api-deployment.yaml +++ b/api-deployment.yaml @@ -1,42 +1,55 @@ apiVersion: apps/v1 kind: Deployment metadata: - annotations: - kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe convert - kompose.version: 1.26.1 (a9d05d509) - creationTimestamp: null - labels: - io.kompose.service: api name: api spec: replicas: 1 + revisionHistoryLimit: 3 selector: matchLabels: - io.kompose.service: api - strategy: {} + app: api template: metadata: - annotations: - kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe convert - kompose.version: 1.26.1 (a9d05d509) - creationTimestamp: null labels: - io.kompose.service: api + app: api spec: containers: - - env: - - name: DATABASE_HOSTNAME - value: db - - name: DATABASE_NAME - - name: DATABASE_PASSWORD - - name: DATABASE_PORT - value: "3306" - - name: DATABASE_USERNAME + - name: api image: espacecollabbackendapi - name: api + imagePullPolicy: Always + tty: true + resources: + limits: + memory: "512Mi" + cpu: "500m" ports: - containerPort: 80 - containerPort: 443 - resources: {} - restartPolicy: Always -status: {} + env: + - name: DATABASE_HOSTNAME + valueFrom: + configMapKeyRef: + name: db-config + key: hostname + - name: DATABASE_PORT + valueFrom: + configMapKeyRef: + name: db-config + key: port + - name: DATABASE_NAME + valueFrom: + configMapKeyRef: + name: db-config + key: name + - name: DATABASE_USERNAME + valueFrom: + secretKeyRef: + name: db-secret + key: username + - name: DATABASE_PASSWORD + valueFrom: + secretKeyRef: + name: db-secret + key: password + + diff --git a/api-ingress-route.yaml b/api-ingress-route.yaml new file mode 100644 index 0000000..88d5561 --- /dev/null +++ b/api-ingress-route.yaml @@ -0,0 +1,13 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: api-http +spec: + entryPoints: + - web + routes: + - match: Host(`localhost`) && PathPrefix(`/api`) + kind: Rule + services: + - name: back + port: 80 diff --git a/api-service.yaml b/api-service.yaml index 98ea109..4820dee 100644 --- a/api-service.yaml +++ b/api-service.yaml @@ -1,22 +1,16 @@ apiVersion: v1 kind: Service metadata: - annotations: - kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe convert - kompose.version: 1.26.1 (a9d05d509) - creationTimestamp: null - labels: - io.kompose.service: api name: api spec: ports: - - name: "5000" + - name: api1 port: 5000 targetPort: 80 - - name: "5001" + - name: api2 port: 5001 targetPort: 443 selector: - io.kompose.service: api + app: api status: loadBalancer: {} diff --git a/data-volume-persistentvolumeclaim.yaml b/data-volume-persistentvolumeclaim.yaml deleted file mode 100644 index 2b0629e..0000000 --- a/data-volume-persistentvolumeclaim.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - creationTimestamp: null - labels: - io.kompose.service: data-volume - name: data-volume -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 100Mi -status: {} diff --git a/db-config.yaml b/db-config.yaml new file mode 100644 index 0000000..a301bf9 --- /dev/null +++ b/db-config.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: database-config +data: + hostname: db + port: "3306" + name: collaborateur_epa diff --git a/db-deployment.yaml b/db-deployment.yaml index 214a24d..9ffc7ff 100644 --- a/db-deployment.yaml +++ b/db-deployment.yaml @@ -1,49 +1,56 @@ apiVersion: apps/v1 kind: Deployment metadata: - annotations: - kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe convert - kompose.version: 1.26.1 (a9d05d509) - creationTimestamp: null - labels: - io.kompose.service: db name: db spec: replicas: 1 + revisionHistoryLimit: 3 selector: matchLabels: - io.kompose.service: db - strategy: - type: Recreate + app: db template: metadata: - annotations: - kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe convert - kompose.version: 1.26.1 (a9d05d509) - creationTimestamp: null labels: - io.kompose.service: db + app: db spec: + volumes: + - name: db + persistentVolumeClaim: + claimName: mysql-pv-claim containers: - - env: - - name: MYSQL_DATABASE - - name: MYSQL_PASSWORD - - name: MYSQL_ROOT_PASSWORD - - name: MYSQL_USERNAME + - name: db image: mariadb:10.7.1 - name: db - resources: {} + imagePullPolicy: Always + tty: true + resources: + limits: + memory: "512Mi" + cpu: "500m" + ports: + - name: mariadb + containerPort: 3306 volumeMounts: - - mountPath: /var/lib/mysql - name: data-volume - - mountPath: /docker-entrypoint-initdb.d/init.sql - name: db-claim1 - restartPolicy: Always - volumes: - - name: data-volume - persistentVolumeClaim: - claimName: data-volume - - name: db-claim1 - persistentVolumeClaim: - claimName: db-claim1 -status: {} + - name: db + mountPath: /var/lib/mysql + + env: + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: database-secret + key: root-password + - name: MYSQL_DATABASE + valueFrom: + configMapKeyRef: + name: db-config + key: name + - name: MYSQL_USER + valueFrom: + secretKeyRef: + name: db-secret + key: username + - name: MYSQL_PASSWORD + valueFrom: + secretKeyRef: + name: db-secret + key: password diff --git a/db-secret.yaml b/db-secret.yaml new file mode 100644 index 0000000..bf18351 --- /dev/null +++ b/db-secret.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Secret +metadata: + name: database-secret +type: Opaque +stringData: + username: epa-dev + password: dev-epa + root-password: root \ No newline at end of file diff --git a/db-service.yaml b/db-service.yaml new file mode 100644 index 0000000..93838d2 --- /dev/null +++ b/db-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: db + name: db +spec: + ports: + - name: mariadb + port: 3307 + targetPort: 3306 + selector: + app: db + type: ClusterIP diff --git a/db-claim1-persistentvolumeclaim.yaml b/db-volume.yaml similarity index 54% rename from db-claim1-persistentvolumeclaim.yaml rename to db-volume.yaml index c5cc1ca..c84850c 100644 --- a/db-claim1-persistentvolumeclaim.yaml +++ b/db-volume.yaml @@ -1,14 +1,12 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: - creationTimestamp: null + name: mysql-pv-claim labels: - io.kompose.service: db-claim1 - name: db-claim1 + app: db spec: accessModes: - ReadWriteOnce resources: requests: - storage: 100Mi -status: {} + storage: 1Gi \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 53bc060..dfd4da8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,8 @@ services: db: image: "mariadb:10.7.1" restart: always + ports: + - "3307:3306" environment: - MYSQL_DATABASE=${DATABASE_NAME} - MYSQL_USERNAME=${APP_DB_USERNAME} @@ -29,12 +31,12 @@ services: - db environment: - DATABASE_HOSTNAME=db - - DATABASE_PORT=3306 + - DATABASE_PORT=3307 - DATABASE_NAME=${DATABASE_NAME} - DATABASE_USERNAME=${APP_DB_USERNAME} - DATABASE_PASSWORD=${APP_DB_PASSWORD} - + front: image: ${DOCKER_REGISTRY-}collab-front build: diff --git a/front-deployment.yaml b/front-deployment.yaml index 945b5ff..68e54bb 100644 --- a/front-deployment.yaml +++ b/front-deployment.yaml @@ -1,33 +1,32 @@ apiVersion: apps/v1 kind: Deployment metadata: - annotations: - kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe convert - kompose.version: 1.26.1 (a9d05d509) - creationTimestamp: null - labels: - io.kompose.service: front name: front spec: replicas: 1 + revisionHistoryLimit: 3 selector: matchLabels: - io.kompose.service: front - strategy: {} + app: front template: metadata: - annotations: - kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe convert - kompose.version: 1.26.1 (a9d05d509) - creationTimestamp: null labels: - io.kompose.service: front + app: front spec: containers: - image: collab-front name: front + imagePullPolicy: Always + tty: true + resources: + limits: + memory: "256Mi" + cpu: "500m" ports: - - containerPort: 80 - resources: {} - restartPolicy: Always -status: {} + - name: web + containerPort: 80 + env: + - name: BASE_URL + value: http://localhost/api/ + - name: LOGOUT_URL + value: http://localhost diff --git a/front-ingress-route.yaml b/front-ingress-route.yaml new file mode 100644 index 0000000..d7c0e39 --- /dev/null +++ b/front-ingress-route.yaml @@ -0,0 +1,13 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: front-http +spec: + entryPoints: + - web + routes: + - match: Host(`localhost`) + kind: Rule + services: + - name: front + port: 80 diff --git a/front-service.yaml b/front-service.yaml index f9578aa..8986a79 100644 --- a/front-service.yaml +++ b/front-service.yaml @@ -1,19 +1,12 @@ apiVersion: v1 kind: Service metadata: - annotations: - kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe convert - kompose.version: 1.26.1 (a9d05d509) - creationTimestamp: null - labels: - io.kompose.service: front name: front spec: + selector: + app: front ports: - - name: "8083" + - name: web port: 8083 targetPort: 80 - selector: - io.kompose.service: front -status: - loadBalancer: {} + type: ClusterIP