From d858f886814ca610702e9930e476a1c6b2089541 Mon Sep 17 00:00:00 2001 From: Pim Kunis Date: Wed, 3 Apr 2024 22:16:21 +0200 Subject: [PATCH] split paperless-ngx into multiple deployments fix forgotten paperless data mount --- nix/flake/kubenix/paperless-ngx.nix | 129 +++++++++++++++++++++------- 1 file changed, 97 insertions(+), 32 deletions(-) diff --git a/nix/flake/kubenix/paperless-ngx.nix b/nix/flake/kubenix/paperless-ngx.nix index a92eab4..9ff29b3 100644 --- a/nix/flake/kubenix/paperless-ngx.nix +++ b/nix/flake/kubenix/paperless-ngx.nix @@ -1,7 +1,7 @@ { kubernetes.resources = { configMaps.paperless-ngx.data = { - PAPERLESS_REDIS = "redis://localhost:6379"; + PAPERLESS_REDIS = "redis://paperless-ngx-redis.default.svc.cluster.local:6379"; PAPERLESS_DBENGINE = "postgresql"; PAPERLESS_DBHOST = "lewis.dmz"; PAPERLESS_DBNAME = "paperless"; @@ -21,27 +21,27 @@ secretKey = "ref+file:///home/pim/.config/home/vals.yaml#/paperless-ngx/secretKey"; }; - deployments.paperless-ngx = { - metadata.labels.app = "paperless-ngx"; + deployments = { + paperless-ngx-web = { + metadata.labels = { + app = "paperless-ngx"; + component = "web"; + }; - spec = { - selector.matchLabels.app = "paperless-ngx"; + spec = { + selector.matchLabels = { + app = "paperless-ngx"; + component = "web"; + }; - template = { - metadata.labels.app = "paperless-ngx"; + template = { + metadata.labels = { + app = "paperless-ngx"; + component = "web"; + }; - spec = { - containers = { - redis = { - image = "docker.io/library/redis:7"; - - volumeMounts = [{ - name = "redisdata"; - mountPath = "/data"; - }]; - }; - - paperless-ngx = { + spec = { + containers.paperless-ngx = { image = "ghcr.io/paperless-ngx/paperless-ngx:2.3"; envFrom = [{ configMapRef.name = "paperless-ngx"; }]; @@ -68,13 +68,60 @@ }; } ]; + + volumeMounts = [{ + name = "data"; + mountPath = "/data"; + }]; }; + + volumes = [{ + name = "data"; + persistentVolumeClaim.claimName = "paperless-ngx-data"; + }]; + }; + }; + }; + }; + + paperless-ngx-redis = { + metadata.labels = { + app = "paperless-ngx"; + component = "redis"; + }; + + spec = { + selector.matchLabels = { + app = "paperless-ngx"; + component = "redis"; + }; + + template = { + metadata.labels = { + app = "paperless-ngx"; + component = "redis"; }; - volumes = [{ - name = "redisdata"; - persistentVolumeClaim.claimName = "paperless-ngx-redisdata"; - }]; + spec = { + containers.redis = { + image = "docker.io/library/redis:7"; + + ports = [{ + containerPort = 6379; + protocol = "TCP"; + }]; + + volumeMounts = [{ + name = "data"; + mountPath = "/data"; + }]; + }; + + volumes = [{ + name = "data"; + persistentVolumeClaim.claimName = "paperless-ngx-redisdata"; + }]; + }; }; }; }; @@ -110,7 +157,7 @@ volumeName = "paperless-ngx-redisdata"; }; - paperless-data.spec = { + paperless-ngx-data.spec = { accessModes = [ "ReadWriteMany" ]; storageClassName = ""; resources.requests.storage = "1Mi"; @@ -118,14 +165,32 @@ }; }; - services.paperless-ngx.spec = { - selector.app = "paperless-ngx"; + services = { + paperless-ngx-web.spec = { + selector = { + app = "paperless-ngx"; + component = "web"; + }; - ports = [{ - protocol = "TCP"; - port = 80; - targetPort = 8000; - }]; + ports = [{ + protocol = "TCP"; + port = 80; + targetPort = 8000; + }]; + }; + + paperless-ngx-redis.spec = { + selector = { + app = "paperless-ngx"; + component = "redis"; + }; + + ports = [{ + protocol = "TCP"; + port = 6379; + targetPort = 6379; + }]; + }; }; ingresses.paperless-ngx.spec = { @@ -139,7 +204,7 @@ pathType = "Prefix"; backend.service = { - name = "paperless-ngx"; + name = "paperless-ngx-web"; port.number = 80; }; }];