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

+23
View File
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
+8
View File
@@ -0,0 +1,8 @@
apiVersion: v2
name: matrix-synapse
description: A Helm chart to deploy a Matrix Synapse server on Kubernetes
type: application
version: 0.1.0+upv1.149.1
appVersion: "v1.149.1"
maintainers:
- name: jklein
@@ -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
+11
View File
@@ -0,0 +1,11 @@
matrix:
serverName: null
timezone: UTC
storage:
amount: 10Gi
storageClass: longhorn-encrypted
ingress:
domain: null
clusterIssuer: null