feat: tp5, pas fini (7.4 commencé)

This commit is contained in:
Emi BOUCLY 2025-11-12 16:51:07 +01:00
parent 1fef95a37f
commit 83775e9dc0
18 changed files with 466 additions and 0 deletions

View file

@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: database-secret
namespace: {{ .Values.namespace }}
data:
DB_USER: {{ .Values.database.user | b64enc }}
DB_PASSWORD: {{ .Values.database.user | b64enc }}

View file

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: database
namespace: {{ .Values.namespace }}
labels:
app: database
spec:
ports:
- name: tcp-postgresql
port: 5432
protocol: TCP
targetPort: 5432
type: ClusterIP
selector:
app: database

View file

@ -0,0 +1,36 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: database
namespace: {{ .Values.namespace }}
spec:
selector:
matchLabels:
app: database
serviceName: database
template:
metadata:
labels:
app: database
spec:
containers:
- name: database
image: "{{.Values.images.registry}}/missions-db:{{ .Values.db.tag }}"
imagePullPolicy: {{ .Values.images.pullPolicy }}
ports:
- containerPort: 5432
name: postgres
env:
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
key: DB_USER
name: database-secret
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
key: DB_PASSWORD
name: database-secret
- name: POSTGRES_DB
value: {{ .Values.database.name }}
restartPolicy: Always

View file

@ -0,0 +1,34 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: enseignants
namespace: {{ .Values.namespace }}
labels:
app: enseignants
spec:
replicas: {{ .Values.enseignants.replicas }}
selector:
matchLabels:
app: enseignants
template:
metadata:
name: enseignants
labels:
app: enseignants
version: "1.0"
spec:
containers:
- name: enseignants
image: "{{.Values.images.registry}}/missions-enseignants:{{ .Values.enseignants.tag }}"
imagePullPolicy: {{ .Values.images.pullPolicy }}
env:
- name: DB_HOST
value: database
- name: DB_NAME
value: {{ .Values.database.name }}
envFrom:
- secretRef:
name: database-secret
ports:
- containerPort: 5000
restartPolicy: Always

View file

@ -0,0 +1,14 @@
apiVersion: v1
kind: Service
metadata:
name: enseignants
namespace: {{ .Values.namespace }}
spec:
selector:
app: enseignants
ports:
- name: http-enseignants
protocol: TCP
port: {{ .Values.enseignants.port }}
targetPort: 5000
type: ClusterIP

View file

@ -0,0 +1,38 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: missions
namespace: {{ .Values.namespace }}
labels:
app: missions
spec:
replicas: {{ .Values.missions.replicas }}
selector:
matchLabels:
app: missions
template:
metadata:
name: missions
labels:
app: missions
version: "1.0"
spec:
containers:
- name: missions
image: "{{.Values.images.registry}}/missions-missions:{{ .Values.missions.tag }}"
imagePullPolicy: {{ .Values.images.pullPolicy }}
env:
- name: DB_HOST
value: database
- name: DB_NAME
value: {{ .Values.database.name }}
- name: SERVICE_VILLES_URL
value: http://villes:{{ .Values.villes.port }}
- name: SERVICE_ENSEIGNANTS_URL
value: http://enseignants:{{ .Values.enseignants.port }}
envFrom:
- secretRef:
name: database-secret
ports:
- containerPort: 5000
restartPolicy: Always

View file

@ -0,0 +1,14 @@
apiVersion: v1
kind: Service
metadata:
name: missions
namespace: {{ .Values.namespace }}
spec:
selector:
app: missions
ports:
- name: http-missions
protocol: TCP
port: {{ .Values.missions.port }}
targetPort: 5000
type: ClusterIP

View file

@ -0,0 +1,34 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: villes
namespace: {{ .Values.namespace }}
labels:
app: villes
spec:
replicas: {{ .Values.villes.replicas }}
selector:
matchLabels:
app: villes
template:
metadata:
name: villes
labels:
app: villes
version: "1.0"
spec:
containers:
- name: villes
image: "{{.Values.images.registry}}/missions-villes:{{ .Values.villes.tag }}"
imagePullPolicy: {{ .Values.images.pullPolicy }}
env:
- name: DB_HOST
value: database
- name: DB_NAME
value: {{ .Values.database.name }}
envFrom:
- secretRef:
name: database-secret
ports:
- containerPort: 5000
restartPolicy: Always

View file

@ -0,0 +1,14 @@
apiVersion: v1
kind: Service
metadata:
name: villes
namespace: {{ .Values.namespace }}
spec:
selector:
app: villes
ports:
- name: http-villes
protocol: TCP
port: {{ .Values.villes.port }}
targetPort: 5000
type: ClusterIP

View file

@ -0,0 +1,35 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
namespace: {{ .Values.namespace }}
labels:
app: web
spec:
replicas: {{ .Values.web.replicas }}
selector:
matchLabels:
app: web
template:
metadata:
name: web
labels:
app: web
version: "1.0"
spec:
containers:
- name: web
image: "{{.Values.images.registry}}/missions-web:{{ .Values.web.tag }}"
imagePullPolicy: {{ .Values.images.pullPolicy }}
env:
- name: DB_HOST
value: database
- name: DB_NAME
value: {{ .Values.database.name }}
- name: SERVICE_MISSIONS_URL
value: http://missions:{{ .Values.missions.port }}
- name: SERVICE_ENSEIGNANTS_URL
value: http://enseignants:{{ .Values.enseignants.port }}
ports:
- containerPort: 8080
restartPolicy: Always

View file

@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: app
namespace: {{ .Values.namespace }}
spec:
selector:
app: web
ports:
- name: http-app
protocol: TCP
port: {{ .Values.web.port }}
targetPort: 5000
nodePort: {{ .Values.web.nodePort }}
type: {{ .Values.web.serviceType | default "ClusterIP" }}