cluster

Infrastructure files for Nordgedanken and Midnightthoughts.
git clone git://archive.git.mtrnord.blog/MTRNord/cluster.git
Log | Files | Refs | README

commit c1a8b9319ebbcae45b64e5160f896b9f57660f43
parent 08fe0b1d8fc41320364d445b11301bed81b948d7
Author: MTRNord <mtrnord1@gmail.com>
Date:   Mon,  6 May 2024 13:06:57 +0200

Deploy new mastodon

Diffstat:
Mapps/2024_cluster/kustomization.yaml | 1+
Aapps/base/mastodon/keydb.yaml | 44++++++++++++++++++++++++++++++++++++++++++++
Aapps/base/mastodon/kustomization.yaml | 7+++++++
Aapps/base/mastodon/release.yaml | 101+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aapps/base/mastodon/repository.yaml | 11+++++++++++
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