Skip to content

Commit e79c59b

Browse files
committed
adding colors configuration of alertmanager and adding new rss bot
1 parent 4cd2925 commit e79c59b

7 files changed

Lines changed: 394 additions & 6 deletions

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{{- define "rss_config.yml" }}
2+
homeserver: {{ .Values.bridges.rss.registration.url | default (include "matrix.baseUrl" .) | quote }}
3+
access_token: {{ include "matrix.rss.as_token" . }}
4+
5+
bot:
6+
user: {{ .Values.bridges.rss.config.bot.user }}
7+
display_name: {{ .Values.bridges.rss.config.bot.display_name }}
8+
{{- with .Values.bridges.rss.config.bot.display_name }}
9+
avatar: {{ . }}
10+
{{- end }}
11+
default_room: {{ .Values.bridges.rss.config.bot.default_room }}
12+
interval: {{ .Values.bridges.rss.config.bot.interval }}
13+
{{- end }}{{/* end define template rss_config.yml */}}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{{- define "matrix.rss.as_token" -}}
2+
{{- randAlphaNum 64 -}}
3+
{{- end -}}
4+
5+
{{- define "matrix.rss.hs_token" -}}
6+
{{- randAlphaNum 64 -}}
7+
{{- end -}}
8+
9+
{{/* registration secret name */}}
10+
{{- define "matrix.rss.registrationSecret" -}}
11+
{{- if .Values.bridges.rss.existingSecret.registration -}}
12+
{{ .Values.bridges.rss.existingSecret.registration }}
13+
{{- else -}}
14+
{{ template "matrix.fullname" . }}-rss-registration
15+
{{- end -}}
16+
{{- end -}}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{{- if and (not .Values.bridges.rss.existingSecret.config ) .Values.bridges.rss.enabled }}
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: {{ include "matrix.fullname" . }}-bridge-rss
6+
labels:
7+
{{ include "matrix.labels" . | nindent 4}}
8+
data:
9+
config.yml: |-
10+
{{ include "rss_config.yml" . | nindent 4 }}
11+
{{- end }}
Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
{{- if .Values.bridges.rss.enabled }}
2+
apiVersion: apps/v1
3+
kind: Deployment
4+
metadata:
5+
name: {{ include "matrix.fullname" . }}-bridge-rss
6+
labels:
7+
{{ include "matrix.labels" . | indent 4 }}
8+
spec:
9+
revisionHistoryLimit: {{ .Values.bridges.rss.revisionHistoryLimit }}
10+
replicas: 1
11+
strategy:
12+
type: Recreate
13+
selector:
14+
matchLabels:
15+
app.kubernetes.io/name: {{ include "matrix.name" . }}-bridge-rss
16+
app.kubernetes.io/instance: {{ .Release.Name }}
17+
matrix-chart/allow-synapse-access: allow
18+
template:
19+
metadata:
20+
annotations:
21+
# re-roll deployment on config change
22+
checksum/rss-registration: {{ include (print $.Template.BasePath "/bridge-rss/secret-registration.yaml") . | sha256sum }}
23+
labels:
24+
app.kubernetes.io/name: {{ include "matrix.name" . }}-bridge-rss
25+
app.kubernetes.io/instance: {{ .Release.Name }}
26+
matrix-chart/allow-synapse-access: allow
27+
spec:
28+
{{- if .Values.bridges.affinity }}
29+
affinity:
30+
podAffinity:
31+
requiredDuringSchedulingIgnoredDuringExecution:
32+
- labelSelector:
33+
matchExpressions:
34+
- key: app.kubernetes.io/name
35+
operator: In
36+
values:
37+
- {{ include "matrix.name" . }}-synapse
38+
- key: app.kubernetes.io/instance
39+
operator: In
40+
values:
41+
- {{ .Release.Name }}
42+
topologyKey: kubernetes.io/hostname
43+
{{- end }}
44+
{{- with .Values.imagePullSecrets }}
45+
imagePullSecrets:
46+
{{- toYaml . | nindent 8 }}
47+
{{- end }}
48+
{{- with .Values.bridges.rss.podSecurityContext }}
49+
securityContext:
50+
{{- toYaml . | nindent 8 }}
51+
{{- end }}
52+
initContainers:
53+
- name: load-config
54+
{{- if .Values.bridges.rss.registration.existingSecret }}
55+
image: "mikefarah/yq:latest"
56+
{{- else }}
57+
image: "alpine:latest"
58+
{{- end }}
59+
imagePullPolicy: {{ .Values.bridges.rss.image.pullPolicy }}
60+
command:
61+
- /bin/sh
62+
- -ec
63+
- |
64+
cp /data/registration.yaml /tmp/registration.yaml && \
65+
{{- if .Values.bridges.rss.registration.existingSecret }}
66+
echo "Starting yq of registration.yaml" && \
67+
yq eval -i '.as_token = env(AS_TOKEN)' /tmp/registration.yaml && \
68+
{{- if .Values.bridges.rss.registration.existingSecretKeys.hs_token }}
69+
yq eval -i '.hs_token = env(HS_TOKEN)' /tmp/registration.yaml && \
70+
{{- end }}
71+
{{- end }}
72+
cp /tmp/registration.yaml /bridges/rss.yaml
73+
{{- if .Values.bridges.rss.registration.existingSecret }}
74+
env:
75+
- name: AS_TOKEN
76+
valueFrom:
77+
secretKeyRef:
78+
name: {{ .Values.bridges.rss.registration.existingSecret }}
79+
key: {{ .Values.bridges.rss.registration.existingSecretKeys.as_token }}
80+
{{- if .Values.bridges.rss.registration.existingSecretKeys.hs_token }}
81+
- name: HS_TOKEN
82+
valueFrom:
83+
secretKeyRef:
84+
name: {{ .Values.bridges.rss.registration.existingSecret }}
85+
key: {{ .Values.bridges.rss.registration.existingSecretKeys.hs_token }}
86+
{{- end }}
87+
{{- end }}
88+
volumeMounts:
89+
- name: data
90+
mountPath: /data
91+
- name: bridges
92+
mountPath: /bridges
93+
{{- with .Values.bridges.rss.securityContext }}
94+
securityContext:
95+
{{- toYaml . | nindent 12 }}
96+
{{- end }}
97+
containers:
98+
- name: "bridge-rss"
99+
image: "{{ .Values.bridges.rss.image.repository }}:{{ .Values.bridges.rss.image.tag }}"
100+
imagePullPolicy: {{ .Values.bridges.rss.image.pullPolicy }}
101+
env:
102+
- name: APP_PORT
103+
value: {{ .Values.bridges.rss.config.app_port | quote }}
104+
105+
- name: APP_rss_SECRET
106+
value: {{ .Values.bridges.rss.config.app_rss_secret | default "matrix.rss.webhook_secret" }}
107+
108+
- name: MATRIX_HOMESERVER_URL
109+
value: {{ .Values.bridges.rss.config.homeserver_url | default (include "matrix.baseUrl" .) }}
110+
111+
- name: MATRIX_ROOMS
112+
value: {{ .Values.bridges.rss.config.bot.rooms }}
113+
114+
{{- if .Values.bridges.rss.registration.existingSecret }}
115+
- name: MATRIX_TOKEN
116+
valueFrom:
117+
secretKeyRef:
118+
name: {{ .Values.bridges.rss.registration.existingSecret }}
119+
key: {{ .Values.bridges.rss.registration.existingSecretKeys.as_token }}
120+
{{- else }}
121+
- name: MATRIX_TOKEN
122+
value: {{ .Values.bridges.rss.registration.as_token }}
123+
{{- end }}
124+
125+
- name: MATRIX_USER
126+
value: "@{{ .Values.bridges.rss.config.bot.user }}:{{ .Values.matrix.serverName }}"
127+
128+
{{- with .Values.bridges.rss.config.bot.display_name }}
129+
- name: MATRIX_DISPLAY_NAME
130+
value: {{ . }}
131+
{{- end }}
132+
133+
{{- with .Values.bridges.rss.config.bot.avatar_url }}
134+
- name: MATRIX_AVATAR_URL
135+
value: {{ . }}
136+
{{- end }}
137+
138+
{{- with .Values.bridges.rss.config.bot.mention_room }}
139+
- name: MENTION_ROOM
140+
value: {{ . | quote }}
141+
{{- end }}
142+
143+
{{- if .Values.bridges.rss.config.grafana_url }}
144+
- name: GRAFANA_URL
145+
value: {{ .Values.bridges.rss.config.grafana_url }}
146+
147+
- name: GRAFANA_DATASOURCE
148+
value: {{ .Values.bridges.rss.config.grafana_datasource }}
149+
{{- end }}
150+
151+
{{- if .Values.bridges.rss.config.rss_url }}
152+
- name: rss_URL
153+
value: {{ .Values.bridges.rss.config.rss_url }}
154+
{{- end }}
155+
ports:
156+
- name: appservice
157+
containerPort: {{ .Values.bridges.rss.config.app_port }}
158+
protocol: TCP
159+
{{- with .Values.bridges.rss.extraVolumeMounts }}
160+
{{- toYaml . | nindent 12 }}
161+
{{- end }}
162+
{{- with .Values.bridges.rss.securityContext }}
163+
securityContext:
164+
{{- toYaml . | nindent 12 }}
165+
{{- end }}
166+
{{- with .Values.bridges.rss.resources }}
167+
resources:
168+
{{- toYaml . | nindent 12 }}
169+
{{- end }}
170+
volumes:
171+
- name: data
172+
projected:
173+
sources:
174+
- secret:
175+
name: {{ include "matrix.rss.registrationSecret" . }}
176+
- name: bridges
177+
persistentVolumeClaim:
178+
{{- if not .Values.bridges.volume.existingClaim }}
179+
claimName: "{{ include "matrix.fullname" . }}-bridges"
180+
{{- else -}}
181+
claimName: {{ .Values.bridges.volume.existingClaim }}
182+
{{- end }}
183+
{{- with .Values.bridges.rss.extraVolumes }}
184+
{{- toYaml . | nindent 8 }}
185+
{{- end }}
186+
{{- end }}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{{- if and (not .Values.bridges.rss.existingSecret.registration) .Values.bridges.rss.enabled }}
2+
---
3+
apiVersion: v1
4+
kind: Secret
5+
metadata:
6+
name: {{ include "matrix.rss.registrationSecret" . }}
7+
labels:
8+
{{ include "matrix.labels" . | nindent 4}}
9+
stringData:
10+
registration.yaml: |
11+
id: {{ .Values.bridges.rss.registration.id }}
12+
{{ if .Values.bridges.rss.registration.url }}
13+
url: {{ .Values.bridges.rss.registration.url }}
14+
{{- else -}}
15+
url: http://{{ include "matrix.fullname" .}}-bridge-rss:{{ .Values.bridges.rss.config.app_port }}
16+
{{- end }}
17+
rate_limited: false
18+
sender_localpart: {{ .Values.bridges.rss.registration.sender_localpart }}
19+
as_token: "{{ include "matrix.rss.as_token" . }}"
20+
hs_token: "{{ include "matrix.rss.hs_token" . }}"
21+
namespaces:
22+
users:
23+
- exclusive: true
24+
regex: "^@rss.*:{{ .Values.matrix.serverName }}$"
25+
- exclusive: true
26+
regex: "^@{{ .Values.bridges.rss.config.matrix_user }}:{{ .Values.matrix.serverName }}$"
27+
{{- if .Values.bridges.rss.encryption }}
28+
de.sorunome.msc2409.push_ephemeral: true
29+
push_ephemeral: true
30+
{{- end }}
31+
{{- end }}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{{- if .Values.bridges.rss.enabled }}
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: {{ include "matrix.fullname" . }}-bridge-rss
6+
labels:
7+
{{ include "matrix.labels" . | indent 4 }}
8+
spec:
9+
type: {{ .Values.bridges.rss.service.type }}
10+
ports:
11+
- port: {{ .Values.bridges.rss.config.app_port }}
12+
targetPort: appservice
13+
protocol: TCP
14+
name: bridge
15+
- port: 80
16+
targetPort: appservice
17+
protocol: TCP
18+
name: http
19+
selector:
20+
app.kubernetes.io/name: {{ include "matrix.name" . }}-bridge-rss
21+
app.kubernetes.io/instance: {{ .Release.Name }}
22+
{{- end }}

0 commit comments

Comments
 (0)