From 9ea00e4eb8bb79ebcb4e950a296368af668ab593 Mon Sep 17 00:00:00 2001
From: Sheogorath <sheogorath@shivering-isles.com>
Date: Wed, 13 Sep 2023 01:11:18 +0200
Subject: [PATCH] feat(redis): Add basic operator deployment

---
 infrastructure/kustomization.yaml       |  1 +
 infrastructure/redis/kustomization.yaml |  7 +++++
 infrastructure/redis/namespace.yaml     | 12 ++++++++
 infrastructure/redis/release.yaml       | 37 +++++++++++++++++++++++++
 infrastructure/redis/repository.yaml    |  8 ++++++
 5 files changed, 65 insertions(+)
 create mode 100644 infrastructure/redis/kustomization.yaml
 create mode 100644 infrastructure/redis/namespace.yaml
 create mode 100644 infrastructure/redis/release.yaml
 create mode 100644 infrastructure/redis/repository.yaml

diff --git a/infrastructure/kustomization.yaml b/infrastructure/kustomization.yaml
index 133fa8535..ab286c4d6 100644
--- a/infrastructure/kustomization.yaml
+++ b/infrastructure/kustomization.yaml
@@ -14,4 +14,5 @@ resources:
   - flux-system
   - k8up
   - postgres
+  - redis
   - kubenav
diff --git a/infrastructure/redis/kustomization.yaml b/infrastructure/redis/kustomization.yaml
new file mode 100644
index 000000000..6b9a77742
--- /dev/null
+++ b/infrastructure/redis/kustomization.yaml
@@ -0,0 +1,7 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+namespace: redis-system
+resources:
+  - namespace.yaml
+  - repository.yaml
+  - release.yaml
diff --git a/infrastructure/redis/namespace.yaml b/infrastructure/redis/namespace.yaml
new file mode 100644
index 000000000..cd9751187
--- /dev/null
+++ b/infrastructure/redis/namespace.yaml
@@ -0,0 +1,12 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: redis-system
+  labels:
+    pod-security.kubernetes.io/audit: restricted
+    pod-security.kubernetes.io/enforce: baseline
+    pod-security.kubernetes.io/warn: restricted
+    pod-security.kubernetes.io/audit-version: v1.26
+    pod-security.kubernetes.io/enforce-version: v1.23
+    pod-security.kubernetes.io/warn-version: v1.26
+    redis.shivering-isles.com/network-access-required: "true"
diff --git a/infrastructure/redis/release.yaml b/infrastructure/redis/release.yaml
new file mode 100644
index 000000000..2cc083ef6
--- /dev/null
+++ b/infrastructure/redis/release.yaml
@@ -0,0 +1,37 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+  name: redis-operator
+  namespace: redis-system
+spec:
+  releaseName: redis-operator
+  chart:
+    spec:
+      chart: redis-operator
+      sourceRef:
+        kind: HelmRepository
+        name: redis-operator
+        namespace: redis-system
+      version: 3.3.0
+  interval: 1h
+  install:
+    crds: CreateReplace
+  upgrade:
+    crds: CreateReplace
+  valuesFrom:
+  - kind: ConfigMap
+    name: redis-base-values
+    valuesKey: values.yaml
+  - kind: Secret
+    name: redis-override-values
+    valuesKey: values-overrides.yaml
+    optional: true
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: redis-base-values
+  namespace: redis-system
+data:
+  values.yaml: |
+    
\ No newline at end of file
diff --git a/infrastructure/redis/repository.yaml b/infrastructure/redis/repository.yaml
new file mode 100644
index 000000000..9e2021928
--- /dev/null
+++ b/infrastructure/redis/repository.yaml
@@ -0,0 +1,8 @@
+apiVersion: source.toolkit.fluxcd.io/v1beta1
+kind: HelmRepository
+metadata:
+  name: redis-operator
+  namespace: redis-system
+spec:
+  interval: 30m
+  url:  https://spotahome.github.io/redis-operator
-- 
GitLab