From 3f1fd188050c4f3e16073021f3f66582c097b26d Mon Sep 17 00:00:00 2001
From: Sheogorath <sheogorath@shivering-isles.com>
Date: Mon, 18 Sep 2023 02:03:24 +0200
Subject: [PATCH] feat(mastodon): Use operator-based redis cluster

This patch adjust the base deployment of mastodon to use a
redis-operator based setup of redis, which should reduce potential
Single-Points-Of-Failure keeping all redis-based operations nice and HA.
---
 apps/base/mastodon/kustomization.yaml |  2 ++
 apps/base/mastodon/redis.yaml         | 24 ++++++++++++++++++++++++
 apps/base/mastodon/release.yaml       | 21 ++++-----------------
 3 files changed, 30 insertions(+), 17 deletions(-)
 create mode 100644 apps/base/mastodon/redis.yaml

diff --git a/apps/base/mastodon/kustomization.yaml b/apps/base/mastodon/kustomization.yaml
index ae6924aff..f699144dc 100644
--- a/apps/base/mastodon/kustomization.yaml
+++ b/apps/base/mastodon/kustomization.yaml
@@ -6,9 +6,11 @@ resources:
   - ca.yaml
   - release.yaml
   - database.yaml
+  - redis.yaml
   - ../../../shared/networkpolicies/allow-from-same-namespace.yaml
   - ../../../shared/networkpolicies/allow-from-ingress.yaml
   - ../../../shared/networkpolicies/allow-from-database.yaml
   - ../../../shared/networkpolicies/allow-from-monitoring.yaml
+  - ../../../shared/networkpolicies/allow-from-redis.yaml
 patchesStrategicMerge:
   - networkpolicy.yaml
diff --git a/apps/base/mastodon/redis.yaml b/apps/base/mastodon/redis.yaml
new file mode 100644
index 000000000..8d62949f0
--- /dev/null
+++ b/apps/base/mastodon/redis.yaml
@@ -0,0 +1,24 @@
+apiVersion: databases.spotahome.com/v1
+kind: RedisFailover
+metadata:
+  name: mastodon-redis
+  namespace: mastodon
+spec:
+  sentinel:
+    replicas: 3
+    resources:
+      requests:
+        cpu: 100m
+        memory: 128Mi
+      limits:
+        cpu: 200m
+        memory: 256Mi
+  redis:
+    replicas: 3
+    resources:
+      requests:
+        memory: 128Mi
+        cpu: 100m
+      limits:
+        memory: 256Mi
+        cpu: 200m
diff --git a/apps/base/mastodon/release.yaml b/apps/base/mastodon/release.yaml
index cd36cddb6..f704faa2b 100644
--- a/apps/base/mastodon/release.yaml
+++ b/apps/base/mastodon/release.yaml
@@ -160,20 +160,7 @@ data:
     ingress:
       enabled: false
     redis:
-      master:
-        resources:
-          limits:
-            cpu: 100m
-            memory: 128Mi
-          requests:
-            cpu: 100m
-            memory: 128Mi
-      replica:
-        replicaCount: 1
-        resources:
-          limits:
-            cpu: 100m
-            memory: 128Mi
-          requests:
-            cpu: 100m
-            memory: 128Mi
+      enabled: false
+      redisUrl: redis+sentianal://rfs-mastodon-redis:26379/mymaster
+      auth:
+        enabled: false
-- 
GitLab