From 5862ad22c1419be4bb5520e6d012fad0bec34473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20S=C3=A9journ=C3=A9?= <asejourne@takima.fr> Date: Wed, 2 Aug 2023 15:43:21 +0200 Subject: [PATCH] templating du nom avec la version --- templates/api-config.yml | 6 ++++ templates/api-deployment.yml | 50 ++++++++++++++++++++++++++++ templates/api-ingress.yml | 18 ++++++++++ templates/api-service.yml | 11 +++++++ templates/front-config.yml | 18 +++++----- templates/front-deployment.yml | 8 ++--- templates/front-ingress.yml | 12 +++---- templates/front-service.yml | 6 ++-- templates/helper.tpl | 4 +++ templates/pg-config.yml | 7 ++++ templates/pg-credentials.yml | 8 +++++ templates/pg-service.yml | 11 +++++++ templates/pg-statefulSet.yml | 60 ++++++++++++++++++++++++++++++++++ 13 files changed, 197 insertions(+), 22 deletions(-) create mode 100644 templates/api-config.yml create mode 100644 templates/api-deployment.yml create mode 100644 templates/api-ingress.yml create mode 100644 templates/api-service.yml create mode 100644 templates/helper.tpl create mode 100644 templates/pg-config.yml create mode 100644 templates/pg-credentials.yml create mode 100644 templates/pg-service.yml create mode 100644 templates/pg-statefulSet.yml diff --git a/templates/api-config.yml b/templates/api-config.yml new file mode 100644 index 0000000..73808c7 --- /dev/null +++ b/templates/api-config.yml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{include "name" .}}-api-config +data: + endpoint: {{include "name" .}}-pg-service:5432 diff --git a/templates/api-deployment.yml b/templates/api-deployment.yml new file mode 100644 index 0000000..b93bded --- /dev/null +++ b/templates/api-deployment.yml @@ -0,0 +1,50 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: {{include "name" .}}-api-deployment + name: {{include "name" .}}-api-deployment +spec: + replicas: 3 + selector: + matchLabels: + app: {{include "name" .}}-api-deployment + strategy: {} + template: + metadata: + labels: + app: {{include "name" .}}-api-deployment + spec: + containers: + - image: registry.gitlab.com/takima-school/images/cdb/api:latest + name: simple-app + resources: + limits: + memory: "720Mi" + cpu: "390m" + ports: + - containerPort: 8080 + env: + - name: POSTGRES_DB + valueFrom: + configMapKeyRef: + name: pg-config + key: name + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + name: db-secret + key: user + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: db-secret + key: password + - name: DB_ENDPOINT + valueFrom: + configMapKeyRef: + name: api-config + key: endpoint + imagePullSecrets: + - name: takima-school-registry +status: {} diff --git a/templates/api-ingress.yml b/templates/api-ingress.yml new file mode 100644 index 0000000..bee2217 --- /dev/null +++ b/templates/api-ingress.yml @@ -0,0 +1,18 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + kubernetes.io/ingress.class: nginx + name: {{include "name" .}}-api-ingress +spec: + rules: + - host: api.asejourne.takima.school + http: + paths: + - backend: + service: + name: {{include "name" .}}-api-service + port: + number: 80 + path: / + pathType: Prefix diff --git a/templates/api-service.yml b/templates/api-service.yml new file mode 100644 index 0000000..c1bb768 --- /dev/null +++ b/templates/api-service.yml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{include "name" .}}-api-service +spec: + selector: + app: {{include "name" .}}-api-deployment + ports: + - protocol: TCP + port: 80 + targetPort: 8080 diff --git a/templates/front-config.yml b/templates/front-config.yml index da89df7..a4f9906 100644 --- a/templates/front-config.yml +++ b/templates/front-config.yml @@ -1,14 +1,14 @@ -{{- if .Values.front.enabled }} - {{- $apiUrl := "" }} - {{- if .Values.api.ingress.tlsEnabled }} - {{- $apiUrl = printf "https://%s" .Values.api.ingress.host | quote }} - {{- else }} - {{- $apiUrl = printf "http://%s" .Values.api.ingress.host | quote }} - {{- end }} +{{- if .Values.front.enabled -}} + {{- $apiUrl := "" -}} + {{- if .Values.api.ingress.tlsEnabled -}} + {{- $apiUrl = printf "https://%s" .Values.api.ingress.host | quote -}} + {{- else -}} + {{- $apiUrl = printf "http://%s" .Values.api.ingress.host | quote -}} + {{- end -}} apiVersion: v1 kind: ConfigMap metadata: - name: {{ .Values.name }}-front + name: {{ include "name" . }}-front data: API_URL: {{ $apiUrl }} -{{- end }} \ No newline at end of file +{{- end -}} \ No newline at end of file diff --git a/templates/front-deployment.yml b/templates/front-deployment.yml index fa7c697..6774818 100644 --- a/templates/front-deployment.yml +++ b/templates/front-deployment.yml @@ -1,8 +1,8 @@ -{{- if .Values.front.enabled }} +{{- if .Values.front.enabled -}} apiVersion: apps/v1 kind: Deployment metadata: - name: {{ .Values.name }}-front + name: {{ include "name" . }}-front labels: app: front spec: @@ -63,6 +63,6 @@ spec: - name: API_URL valueFrom: configMapKeyRef: - name: {{ .Values.name }}-front + name: {{ include "name" . }}-front key: API_URL -{{- end }} \ No newline at end of file +{{- end -}} \ No newline at end of file diff --git a/templates/front-ingress.yml b/templates/front-ingress.yml index 8513bb5..c081063 100644 --- a/templates/front-ingress.yml +++ b/templates/front-ingress.yml @@ -1,10 +1,10 @@ -{{- if .Values.front.enabled }} +{{- if .Values.front.enabled -}} apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx - name: {{ .Values.name }}-front + name: {{ include "name" . }}-front spec: rules: - host: {{ .Values.front.ingress.host }} @@ -12,15 +12,15 @@ spec: paths: - backend: service: - name: {{ .Values.name }}-front + name: {{ include "name" . }}-front port: number: 80 path: / pathType: Prefix - {{- if .Values.front.ingress.tlsEnabled }} + {{- if .Values.front.ingress.tlsEnabled -}} tls: - hosts: - {{ .Values.front.ingress.host }} secretName: app-wildcard - {{- end }} -{{- end }} \ No newline at end of file + {{- end -}} +{{- end -}} \ No newline at end of file diff --git a/templates/front-service.yml b/templates/front-service.yml index 8031d1a..50a46db 100644 --- a/templates/front-service.yml +++ b/templates/front-service.yml @@ -1,8 +1,8 @@ -{{- if .Values.front.enabled }} +{{- if .Values.front.enabled -}} apiVersion: v1 kind: Service metadata: - name: {{ .Values.name }}-front + name: {{ include "name" . }}-front spec: selector: app: front @@ -10,4 +10,4 @@ spec: - protocol: TCP port: 80 targetPort: 8080 -{{- end }} \ No newline at end of file +{{- end -}} \ No newline at end of file diff --git a/templates/helper.tpl b/templates/helper.tpl new file mode 100644 index 0000000..3665e79 --- /dev/null +++ b/templates/helper.tpl @@ -0,0 +1,4 @@ +{{- define "name" -}} +{{- $name := default .Chart.Name .Values.name -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} \ No newline at end of file diff --git a/templates/pg-config.yml b/templates/pg-config.yml new file mode 100644 index 0000000..d759247 --- /dev/null +++ b/templates/pg-config.yml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: pg-config +data: + name: "db" + db_path: "/var/lib/postgresql/data/pgdata" diff --git a/templates/pg-credentials.yml b/templates/pg-credentials.yml new file mode 100644 index 0000000..642c1b0 --- /dev/null +++ b/templates/pg-credentials.yml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: db-secret +type: Opaque +data: + user: ZGItdXNlcg== + password: ZGItcGFzc3dvcmQ= \ No newline at end of file diff --git a/templates/pg-service.yml b/templates/pg-service.yml new file mode 100644 index 0000000..ec145da --- /dev/null +++ b/templates/pg-service.yml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{include "name" .}}-pg-service +spec: + selector: + app: {{include "name" .}}-pg-deployment + ports: + - protocol: TCP + port: 5432 + targetPort: 5432 diff --git a/templates/pg-statefulSet.yml b/templates/pg-statefulSet.yml new file mode 100644 index 0000000..e332e7b --- /dev/null +++ b/templates/pg-statefulSet.yml @@ -0,0 +1,60 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app: {{include "name" .}}-pg-deployment + name: {{include "name" .}}-pg-deployment +spec: + replicas: 1 + selector: + matchLabels: + app: {{include "name" .}}-pg-deployment + serviceName: {{include "name" .}}-pg-service + template: + metadata: + labels: + app: {{include "name" .}}-pg-deployment + spec: + containers: + - image: registry.takima.io/school/proxy/postgres:latest + volumeMounts: + - mountPath: /var/lib/postgresql/data + name: {{include "name" .}}-pg-data + name: {{include "name" .}}-pg + resources: + limits: + memory: "512Mi" + cpu: "390m" + ports: + - containerPort: 5432 + env: + - name: POSTGRES_DB + valueFrom: + configMapKeyRef: + name: pg-config + key: name + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + name: db-secret + key: user + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: db-secret + key: password + - name: PGDATA + valueFrom: + configMapKeyRef: + name: pg-config + key: db_path + imagePullSecrets: + - name: takima-school-registry + volumeClaimTemplates: + - metadata: + name: {{include "name" .}}-pg-data + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 1Gi -- GitLab