Add Helm chart and chart-release workflow

charts/terdut-server/ — Helm chart for Kubernetes deployment:
  - Deployment (replicas=1, /healthz probes, TERDUT_DB_PATH=/data/terdut.db)
  - Service (ClusterIP :8080)
  - PVC (1Gi, synology-iscsi) mounted at /data
  - HTTPRoute via envoy-main gateway

.github/workflows/chart-release.yml — packages and publishes the chart to
gh-pages branch on any push to main that touches charts/; repo URL will be
https://yeniklas.github.io/terdut-server once the repo is made public
This commit is contained in:
Niklas Ye
2026-05-21 15:26:11 +02:00
parent 17f09558cb
commit 591290e4ee
9 changed files with 198 additions and 0 deletions
@@ -0,0 +1,48 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "terdut-server.fullname" . }}
labels:
{{- include "terdut-server.labels" . | nindent 4 }}
spec:
replicas: 1
selector:
matchLabels:
{{- include "terdut-server.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "terdut-server.selectorLabels" . | nindent 8 }}
spec:
enableServiceLinks: false
containers:
- name: terdut-server
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
env:
- name: TERDUT_ADDR
value: ":{{ .Values.service.port }}"
- name: TERDUT_DB_PATH
value: "/data/terdut.db"
volumeMounts:
- name: data
mountPath: /data
livenessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 5
readinessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 5
volumes:
- name: data
persistentVolumeClaim:
claimName: {{ .Release.Name }}-data