blob: e03223f1266e01be70cd560256b3fcf49e6d3d74 [file] [log] [blame]
giolekva95340e82021-11-08 21:36:55 +04001---
2apiVersion: rbac.authorization.k8s.io/v1
3kind: Role
4metadata:
5 name: CreateConfigMaps
6 namespace: {{ .Release.Namespace }}
giolekva30850462021-12-01 16:23:50 +04007 annotations:
8 helm.sh/hook: pre-install
9 helm.sh/hook-weight: "-10"
giolekva95340e82021-11-08 21:36:55 +040010rules:
11- apiGroups:
12 - ""
13 resources:
14 - configmaps
15 verbs:
16 - get
17 - create
18---
19apiVersion: rbac.authorization.k8s.io/v1
20kind: RoleBinding
21metadata:
22 name: default-CreateConfigMaps
23 namespace: {{ .Release.Namespace }}
giolekva30850462021-12-01 16:23:50 +040024 annotations:
25 helm.sh/hook: pre-install
26 helm.sh/hook-weight: "-10"
giolekva95340e82021-11-08 21:36:55 +040027roleRef:
28 apiGroup: rbac.authorization.k8s.io
29 kind: Role
30 name: CreateConfigMaps
31subjects:
32- kind: ServiceAccount
33 name: default
34 namespace: {{ .Release.Namespace }}
35---
36apiVersion: v1
37kind: Service
38metadata:
39 name: matrix
40 namespace: {{ .Release.Namespace }}
41spec:
42 type: ClusterIP
43 selector:
44 app: matrix
45 ports:
46 - name: http
47 port: 80
48 targetPort: http
49 protocol: TCP
50---
giolekva30850462021-12-01 16:23:50 +040051apiVersion: cert-manager.io/v1
52kind: Certificate
53metadata:
54 name: matrix.{{ .Values.domain }}
55 namespace: {{ .Release.Namespace }}
56 annotations:
57 helm.sh/resource-policy: keep
58spec:
59 dnsNames:
60 - 'matrix.{{ .Values.domain }}'
61 issuerRef:
62 name: {{ .Values.certificateIssuer }}
63 kind: ClusterIssuer
64 secretName: cert-matrix.{{ .Values.domain }}
65---
giolekva95340e82021-11-08 21:36:55 +040066apiVersion: networking.k8s.io/v1
67kind: Ingress
68metadata:
69 name: ingress
70 namespace: {{ .Release.Namespace }}
giolekva95340e82021-11-08 21:36:55 +040071spec:
72 ingressClassName: {{ .Values.ingressClassName }}
73 tls:
74 - hosts:
75 - matrix.{{ .Values.domain }}
giolekva11881b52021-11-27 16:51:58 +040076 secretName: cert-matrix.{{ .Values.domain }}
giolekva95340e82021-11-08 21:36:55 +040077 rules:
78 - host: matrix.{{ .Values.domain }}
79 http:
80 paths:
81 - path: /
82 pathType: Prefix
83 backend:
84 service:
85 name: matrix
86 port:
87 name: http
88---
89apiVersion: batch/v1
90kind: Job
91metadata:
92 name: generate-config
93 namespace: {{ .Release.Namespace }}
giolekva30850462021-12-01 16:23:50 +040094 annotations:
95 helm.sh/hook: pre-install
96 helm.sh/hook-weight: "-5"
giolekva95340e82021-11-08 21:36:55 +040097spec:
98 template:
99 metadata:
100 labels:
101 app: generate-config
102 spec:
103 restartPolicy: OnFailure
104 volumes:
105 - name: data
106 persistentVolumeClaim:
107 claimName: data
108 initContainers:
109 - name: matrix
110 image: matrixdotorg/synapse:v1.43.0
111 imagePullPolicy: IfNotPresent
112 ports:
113 - name: http
114 containerPort: 8008
115 protocol: TCP
116 env:
117 - name: SYNAPSE_SERVER_NAME
118 value: "{{ .Values.domain }}"
119 - name: SYNAPSE_REPORT_STATS
120 value: "no"
121 - name: SYNAPSE_CONFIG_DIR
122 value: "/data"
123 - name: SYNAPSE_CONFIG_PATH
124 value: "/data/homeserver.yaml"
125 - name: SYNAPSE_DATA_DIR
126 value: "/data"
127 command:
128 - /start.py
129 - generate
130 volumeMounts:
131 - name: data
132 mountPath: /data
133 containers:
134 - name: capture-config
135 image: giolekva/capture-config:latest
136 imagePullPolicy: Always
137 command:
138 - capture-config
139 - --config=/data/homeserver.yaml
140 - --namespace={{ .Release.Namespace }}
141 - --config-map-name=config
142 - --config-to-merge={{ .Values.configMerge.configName }}
143 - --to-merge-filename={{ .Values.configMerge.fileName }}
144 volumeMounts:
145 - name: data
146 mountPath: /data
147---
148apiVersion: apps/v1
149kind: Deployment
150metadata:
151 name: matrix
152 namespace: {{ .Release.Namespace }}
153spec:
154 selector:
155 matchLabels:
156 app: matrix
157 replicas: 1
158 template:
159 metadata:
160 labels:
161 app: matrix
162 spec:
163 volumes:
164 - name: data
165 persistentVolumeClaim:
166 claimName: data
167 - name: homeserver-config
168 configMap:
169 name: config
170 containers:
171 - name: matrix
172 image: matrixdotorg/synapse:v1.43.0
173 imagePullPolicy: IfNotPresent
174 ports:
175 - name: http
176 containerPort: 8008
177 protocol: TCP
178 env:
179 - name: SYNAPSE_SERVER_NAME
180 value: "{{ .Values.domain }}"
181 - name: SYNAPSE_REPORT_STATS
182 value: "no"
183 - name: SYNAPSE_CONFIG_DIR
184 value: "/data"
185 - name: SYNAPSE_CONFIG_PATH
186 value: "/homeserver-config/homeserver.yaml"
187 - name: SYNAPSE_DATA_DIR
188 value: "/data"
189 command: ["/start.py"]
190 volumeMounts:
191 - name: data
192 mountPath: /data
193 - name: homeserver-config
194 mountPath: /homeserver-config
195 readOnly: true
196---
197apiVersion: v1
198kind: PersistentVolumeClaim
199metadata:
200 name: data
201 namespace: {{ .Release.Namespace }}
giolekva30850462021-12-01 16:23:50 +0400202 annotations:
203 helm.sh/hook: pre-install
204 helm.sh/hook-weight: "-10"
giolekva95340e82021-11-08 21:36:55 +0400205spec:
206 accessModes:
207 - ReadWriteOnce
208 resources:
209 requests:
210 storage: 10Gi