commit c1a8b9319ebbcae45b64e5160f896b9f57660f43
parent 08fe0b1d8fc41320364d445b11301bed81b948d7
Author: MTRNord <mtrnord1@gmail.com>
Date: Mon, 6 May 2024 13:06:57 +0200
Deploy new mastodon
Diffstat:
5 files changed, 164 insertions(+), 0 deletions(-)
diff --git a/apps/2024_cluster/kustomization.yaml b/apps/2024_cluster/kustomization.yaml
@@ -12,6 +12,7 @@ resources:
- ../base/matrix/synapse
- ../base/matrix/draupnir-fluffy
- ../base/matrix/draupnir-freifunk
+ - ../base/matrix/mastodon
# https://gitlab.com/mb-saces/synatainer/-/merge_requests/7
#- ../base/matrix/syntainer_main_synapse
patchesStrategicMerge:
diff --git a/apps/base/mastodon/keydb.yaml b/apps/base/mastodon/keydb.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: keydb
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: keydb
+ template:
+ metadata:
+ labels:
+ app: keydb
+ spec:
+ containers:
+ - name: keydb
+ image: eqalpha/keydb:latest
+ imagePullPolicy: Always
+ command: ["keydb-server"]
+ args: [ "/etc/keydb/keydb.conf", "--protected-mode", "no"]
+ ports:
+ - containerPort: 6379
+ livenessProbe:
+ exec:
+ command:
+ - sh
+ - -c
+ - keydb-cli ping
+ initialDelaySeconds: 10
+ timeoutSeconds: 5
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: keydb
+spec:
+ selector:
+ app: keydb
+ ports:
+ - name: redis
+ protocol: TCP
+ port: 6379
+ targetPort: 6379
diff --git a/apps/base/mastodon/kustomization.yaml b/apps/base/mastodon/kustomization.yaml
@@ -0,0 +1,7 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+namespace: mastodon
+resources:
+ - repository.yaml
+ - keydb.yaml
+ - release.yaml
diff --git a/apps/base/mastodon/release.yaml b/apps/base/mastodon/release.yaml
@@ -0,0 +1,101 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta2
+kind: HelmRelease
+metadata:
+ name: mastodon
+ namespace: mastodon
+spec:
+ interval: 1h
+ releaseName: mastodon
+ chart:
+ spec:
+ chart: .
+ sourceRef:
+ kind: GitRepository
+ name: mastodon
+ namespace: mastodon
+ values:
+ podAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ - labelSelector:
+ matchExpressions:
+ - key: app.kubernetes.io/part-of
+ operator: In
+ values:
+ - rails
+ topologyKey: kubernetes.io/hostname
+ elasticsearch:
+ enabled: false
+ ingress:
+ annotations:
+ cert-manager.io/cluster-issuer: letsencrypt-dns
+ hosts:
+ - host: mastodon.mtrnord.blog
+ paths:
+ - path: /
+ tls:
+ - hosts:
+ - mastodon.mtrnord.blog
+ secretName: mastodon.mtrnord.blog-tls
+ mastodon:
+ local_domain: mtrnord.blog
+ persistence:
+ assets:
+ accessMode: ReadWriteOnce
+ system:
+ accessMode: ReadWriteOnce
+ resources:
+ requests:
+ storage: 10Gi
+ secrets:
+ secret_key_base: ""
+ otp_secret: ""
+ vapid:
+ private_key: ""
+ public_key: ""
+ activeRecordEncryption:
+ primaryKey: ""
+ deterministicKey: ""
+ keyDerivationSalt: ""
+ singleUserMode: true
+ smtp:
+ domain: smtp.fastmail.com
+ port: 465
+ from_address: Mastodon <ops@nordgedanken.dev>
+ reply_to: noreply@nordgedanken.dev
+ server: smtp.fastmail.com
+ login: mtrnor@nordgedanken.dev
+ tls: true
+ password: ENC[AES256_GCM,data:MS+dQ9nrQGWJ,iv:TuGCuoxWL9ZtH5a/jnWQz16tchUF8nMm/V28ybRzOOg=,tag:4eWxHMrPY7VIhDnGcHDrOQ==,type:str]
+ web_domain: mastodon.mtrnord.blog
+ postgresql:
+ auth:
+ database: mastodon
+ username: mastodon
+ password: ENC[AES256_GCM,data:usl2oYm7WRxk5MX5wiGubXfqkQJalIAMyMLEMfObjW9v1HUa0vdGYaNn3UQpk8QMkQxXcNS5Bx0Em2ME/+Z22g==,iv:GNLLAM4Do39d5Su8zOaSz3QzIHW4X1RzR3dF+OsIbNY=,tag:4daZTFThXhlSTZFJKSV4HA==,type:str]
+ enabled: false
+ postgresqlHostname: main-ctrlc.postgres.svc
+ postgresqlReplicaHostname: main-ctrlc-repl.postgres.svc
+ redis:
+ enabled: false
+ hostname: keydb
+ replicaCount: 1
+sops:
+ kms: []
+ gcp_kms: []
+ azure_kv: []
+ hc_vault: []
+ age:
+ - recipient: age1esjyg2qfy49awv0ptkzvpk425adczjr38m37w2mmcahzc4p8n54sll2nzh
+ enc: |
+ -----BEGIN AGE ENCRYPTED FILE-----
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXWHJMSEs2VzQ1QUsxSXZX
+ bWRQM0YwUFpjalF4WHdpUStKUkpXajlXM1N3CmhqU3M2eXcyNWhoTXplYkRTT2Fm
+ Uy9lS1paREpvZEpCVkU2VVJxVnl2a3cKLS0tIExnOFEzbzF4NC9SRFZxeWxvRjhV
+ VlMyM0s0bWFQRFNXcmhRbEQwZ29nL0EKNlCrwnfmYcRv8z+Cl7vP/FTMNP2mECX+
+ Qv+0qNpLiiKsGBzZi6ZkGiEE6QnZMJ3l7XauuxbwJ1SYH5zN2DMvLQ==
+ -----END AGE ENCRYPTED FILE-----
+ lastmodified: "2024-05-06T11:06:24Z"
+ mac: ENC[AES256_GCM,data:dAe/AXyGoYgFVDLQr14DQM9Afecf1z0Ots1DFjwsJl4YOrYBn98YDTLSHd+MoeuANSzSoKu8iuRUdeiEOabO24gjsmpphgu6ek2JFQ18LmIs8f95rG1qwk1R3O8OSeFWgEBQtHFvb/t407fOAkO+t/SKlLMv2T75lHXBzI6KMhY=,iv:xGmGqXU7O0/F3S+xJiKi+C/vAU/aegEmP3/kHOWzxNs=,tag:QqLUYI5lY9YS2ILxreDGTQ==,type:str]
+ pgp: []
+ encrypted_regex: ^(token|clientId|secretKey|installationId|installationKey|uriOverride|adminToken.value|password.value|sql_password|erlangCookie|PASSWD|AUTHENTICATION_PASSWORD|ROOM_API_SECRET_KEY|adminPassword|configPassword|adminUser|configUser|APP_KEY|api_key|api_secret|keys|livekit_key|livekit_secret|secret_key|adminPassword|admin_pass|admin_email|mariadbPassword|mariadbRootPassword|privateKey|data|stringData|PASSWD|password|pass|postgresPassword|postgresqlPassword|redminePassword|smtpPassword|registration_shared_secret|shared_secret|secret)$
+ version: 3.8.1
diff --git a/apps/base/mastodon/repository.yaml b/apps/base/mastodon/repository.yaml
@@ -0,0 +1,11 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1beta2
+kind: GitRepository
+metadata:
+ name: mastodon
+ namespace: mastodon
+spec:
+ interval: 8h
+ url: https://github.com/mastodon/chart
+ ref:
+ branch: main