First, thanks a LOT @rouja for your help along the way. This commit propose a first draft of Helm chart to prepare deployment. It follows Plane's Helm Chart, hosted on the shared team repo, please https://github.com/numerique-gouv/helm-charts, PR #11 It offers advanced templating function under _helpers.tpl, an auto-generated README file when running ./generate-readme.sh, and a clear files structure. The chart itself is quite simple. We have two deployments, one for the frontend and one for the backend. Both need a dedicated service, which are exposed using a common ingress. Frontend is accessible from the / path and backend's from /api path. Please note, we added a backend job to migrate the database when deploying backend's pods. This job should be auto-cleaning itself 100s after it completes to avoid any error when syncing helm. values.yaml file is quite pristine, all common env variables will be set in helmfile configuration. Deploying frontend static files through kubernetes is temporary, we plan to either remplace it by an external CDN or use minio to host static output in a S3 bucket within the cluster.
21 lines
685 B
YAML
21 lines
685 B
YAML
{{- $envVars := include "desk.common.env" (list . .Values.frontend) -}}
|
|
{{- $fullName := include "desk.frontend.fullname" . -}}
|
|
{{- $component := "frontend" -}}
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: {{ $fullName }}
|
|
labels:
|
|
{{- include "desk.common.labels" (list . $component) | nindent 4 }}
|
|
annotations:
|
|
{{- toYaml $.Values.frontend.service.annotations | nindent 4 }}
|
|
spec:
|
|
type: {{ .Values.frontend.service.type }}
|
|
ports:
|
|
- port: {{ .Values.frontend.service.port }}
|
|
targetPort: {{ .Values.frontend.service.targetPort }}
|
|
protocol: TCP
|
|
name: http
|
|
selector:
|
|
{{- include "desk.common.selectorLabels" (list . $component) | nindent 4 }}
|