feat(matrix-synapse): added initial chart

This commit is contained in:
jklein committed 2026-03-17 22:07:42 +01:00
1 parent 8495540551
commit 9aa049b0dc
7 files changed
+135

No files matched your search

@@ -0,0 +1,23 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress
annotations:
cert-manager.io/cluster-issuer: {{ required "A Cluster-Issuer must be provided" .Values.ingress.clusterIssuer }}
spec:
ingressClassName: nginx
rules:
- host: {{ required "A Domain/Host must be provided" .Values.ingress.domain }}
http:
paths:
- backend:
service:
name: {{ .Release.Name }}-{{ .Chart.Name }}-service
port:
name: http
path: /
pathType: Prefix
tls:
- hosts:
- {{ required "A Domain/Host must be provided" .Values.ingress.domain }}
secretName: tls-{{ .Release.Name }}-{{ .Chart.Name }}-ingress
@@ -0,0 +1,11 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Release.Name }}-{{ .Chart.Name }}-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.storage.amount }}
storageClassName: {{ .Values.storage.storageClass }}
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: "{{ .Release.Name }}-{{ .Chart.Name }}-service"
labels:
app: "{{ .Release.Name }}-{{ .Chart.Name }}"
spec:
type: NodePort
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
selector:
app: "{{ .Release.Name }}-{{ .Chart.Name }}"
@@ -0,0 +1,44 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: "{{ .Release.Name }}-{{ .Chart.Name }}-sfs"
spec:
selector:
matchLabels:
app: "{{ .Release.Name }}-{{ .Chart.Name }}"
serviceName: "{{ .Release.Name }}-{{ .Chart.Name }}-service"
replicas: 1
template:
metadata:
labels:
app: "{{ .Release.Name }}-{{ .Chart.Name }}"
spec:
automountServiceAccountToken: false
containers:
- name: "{{ .Release.Name }}-{{ .Chart.Name }}-container"
image: "matrixdotorg/synapse:{{ .Chart.AppVersion }}"
env:
- name: SYNAPSE_SERVER_NAME
value: "{{ required "You must provide a Server-Name" .Values.matrix.serverName }}"
- name: SYNAPSE_REPORT_STATS
value: "no"
- name: UID
value: "1000"
- name: GID
value: "1000"
- name: TZ
value: "{{ .Values.matrix.timezone }}"
ports:
- name: http
containerPort: 8008
protocol: TCP
# TODO: Add liveness and readiness probes
# TODO: Add resource requests and limits
volumeMounts:
- name: matrix-synapse-volume
mountPath: /data
subPath: matrix-synapse-data/
volumes:
- name: matrix-synapse-volume
persistentVolumeClaim:
claimName: {{ .Release.Name }}-{{ .Chart.Name }}-pvc