From 5ad43ba5697f81e101d3365457962d8a41f2ffd9 Mon Sep 17 00:00:00 2001 From: Etienne <elanglois@takima.fr> Date: Wed, 14 Aug 2024 16:17:03 +0200 Subject: [PATCH] feat: front, back, db operationels --- .../day-3/step-1/templates/api-config.yaml | 8 +++ .../step-1/templates/api-deployment.yaml | 65 +++++++++++++++++++ .../day-3/step-1/templates/api-ingress.yaml | 26 ++++++++ .../day-3/step-1/templates/api-service.yaml | 13 ++++ .../day-3/step-1/templates/pg-config.yaml | 9 +++ .../step-1/templates/pg-credentials.yaml | 10 +++ .../day-3/step-1/templates/pg-deployment.yaml | 58 +++++++++++++++++ .../day-3/step-1/templates/pg-service.yaml | 13 ++++ .../boilerplate/day-3/step-1/values.yaml | 20 ++++-- 9 files changed, 218 insertions(+), 4 deletions(-) create mode 100644 k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-config.yaml create mode 100644 k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-deployment.yaml create mode 100644 k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-ingress.yaml create mode 100644 k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-service.yaml create mode 100644 k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-config.yaml create mode 100644 k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-credentials.yaml create mode 100644 k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-deployment.yaml create mode 100644 k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-service.yaml diff --git a/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-config.yaml b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-config.yaml new file mode 100644 index 0000000..57073b5 --- /dev/null +++ b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-config.yaml @@ -0,0 +1,8 @@ +{{- if .Values.api.enabled }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Values.name}}-api +data: + dbEndpoint: {{ .Values.name}}-db:5432 +{{- end }} \ No newline at end of file diff --git a/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-deployment.yaml b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-deployment.yaml new file mode 100644 index 0000000..806dd20 --- /dev/null +++ b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-deployment.yaml @@ -0,0 +1,65 @@ +{{- if .Values.api.enabled }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.name }}-api + labels: + app: api +spec: + replicas: {{ .Values.api.replicaCount }} + selector: + matchLabels: + app: api + template: + metadata: + labels: + app: api + spec: + containers: + - name: api + image: {{ .Values.api.image.repository }}:{{ .Values.api.image.tag }} + resources: + limits: + memory: "256Mi" + cpu: "2" + requests: + memory: "192Mi" + cpu: "100m" + ports: + - containerPort: 8080 + livenessProbe: + httpGet: + path: /actuator/health/liveness + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 15 + readinessProbe: + httpGet: + path: /actuator/health/readiness + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 15 + env: + - name: DB_ENDPOINT + valueFrom: + configMapKeyRef: + key: dbEndpoint + name: {{ .Values.name }}-api + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: pg-credentials + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + key: username + name: pg-credentials + - name: POSTGRES_DB + valueFrom: + configMapKeyRef: + key: dataBaseName + name: {{ .Values.name }}-db + imagePullSecrets: + - name: takima-school-registry +{{- end }} \ No newline at end of file diff --git a/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-ingress.yaml b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-ingress.yaml new file mode 100644 index 0000000..9399d06 --- /dev/null +++ b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-ingress.yaml @@ -0,0 +1,26 @@ +{{- if .Values.api.enabled }} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ .Values.name }}-api + labels: + name: api +spec: + rules: + - host: {{ .Values.api.ingress.host }} + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: {{ .Values.name }}-api + port: + number: 80 + {{- if .Values.api.ingress.tlsEnabled }} + tls: + - hosts: + - {{ .Values.api.ingress.host }} + secretName: app-wildcard + {{- end }} +{{- end }} \ No newline at end of file diff --git a/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-service.yaml b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-service.yaml new file mode 100644 index 0000000..ca86170 --- /dev/null +++ b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/api-service.yaml @@ -0,0 +1,13 @@ +{{- if .Values.api.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.name }}-api +spec: + selector: + app: api + ports: + - protocol: TCP + port: 80 + targetPort: 8080 +{{- end }} \ No newline at end of file diff --git a/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-config.yaml b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-config.yaml new file mode 100644 index 0000000..d5f0f59 --- /dev/null +++ b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-config.yaml @@ -0,0 +1,9 @@ +{{- if .Values.db.enabled }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Values.name }}-db +data: + dataBaseName: "cdb-db" + db_path: "/var/lib/postgresql/data/pgdata" +{{- end }} \ No newline at end of file diff --git a/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-credentials.yaml b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-credentials.yaml new file mode 100644 index 0000000..6a4e540 --- /dev/null +++ b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-credentials.yaml @@ -0,0 +1,10 @@ +{{- if .Values.db.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Values.name }}-db +type: Opaque +data: + username: 'dXNlcg==' + password: 'cGFzc3dvcmQ=' +{{- end }} \ No newline at end of file diff --git a/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-deployment.yaml b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-deployment.yaml new file mode 100644 index 0000000..b43bc77 --- /dev/null +++ b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-deployment.yaml @@ -0,0 +1,58 @@ +{{- if .Values.db.enabled }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.name }}-db + labels: + app: db +spec: + replicas: {{ .Values.api.replicaCount}} + selector: + matchLabels: + app: db + template: + metadata: + labels: + app: db + spec: + volumes: + - name: pg-data + persistentVolumeClaim: + claimName: pg-db + containers: + - name: cdb-db + image: {{ .Values.db.image.repository }}:{{ .Values.db.image.tag }} + volumeMounts: + - mountPath: /var/lib/postgresql/data + name: pg-data + resources: + limits: + memory: "256Mi" + cpu: "1" + requests: + memory: "192Mi" + cpu: "100m" + ports: + - containerPort: 5432 + env: + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: {{ .Values.name}}-db + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + key: username + name: {{ .Values.name}}-db + - name: POSTGRES_DB + valueFrom: + configMapKeyRef: + key: dataBaseName + name: {{ .Values.name}}-db + - name: PGDATA + valueFrom: + configMapKeyRef: + name: {{ .Values.name}}-db # Nom du configmap + key: db_path # nom de la clef dans le configMap contenant path ou installer la db dans le volume persistant +{{- end }} \ No newline at end of file diff --git a/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-service.yaml b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-service.yaml new file mode 100644 index 0000000..330780b --- /dev/null +++ b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/templates/pg-service.yaml @@ -0,0 +1,13 @@ +{{- if .Values.db.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: {{ .Values.name}}-db +spec: + selector: + app: db + ports: + - protocol: TCP + port: 5432 + targetPort: 5432 +{{- end }} \ No newline at end of file diff --git a/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/values.yaml b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/values.yaml index 9ab42ef..a0de553 100644 --- a/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/values.yaml +++ b/k8s-trainees-main-boilerplate-day-3-step-1/boilerplate/day-3/step-1/values.yaml @@ -5,9 +5,14 @@ name: cdb api: + enabled: true ingress: - tlsEnabled: false - host: api.to-replace.takima.school + tlsEnabled: true + host: api.elanglois.takima.school + replicaCount: 1 + image: + repository: registry.gitlab.com/takima-school/images/cdb/api + tag: latest front: enabled: true @@ -16,5 +21,12 @@ front: tag: latest replicaCount: 1 ingress: - tlsEnabled: false - host: www.to-replace.takima.school \ No newline at end of file + tlsEnabled: true + host: www.elanglois.takima.school + +db: + enabled: true + replicaCount: 1 + image: + tag: latest + repository: registry.takima.io/school/proxy/postgres -- GitLab