From 9e68fc91a2abe8412e57722c1c599ef74ab440e3 Mon Sep 17 00:00:00 2001 From: AB-UK Date: Wed, 18 Mar 2026 03:13:41 +0000 Subject: [PATCH] Update furumi --- k8s/apps/furumi-server/external-secrets.yaml | 10 +++ k8s/apps/furumi-server/ingress.yaml | 9 ++- k8s/apps/furumi-server/kustomization.yaml | 2 + k8s/apps/furumi-server/metadata-agent.yaml | 59 +++++++++++++++++ k8s/apps/furumi-server/service.yaml | 22 +++++- k8s/apps/furumi-server/web-player.yaml | 70 ++++++++++++++++++++ 6 files changed, 168 insertions(+), 4 deletions(-) create mode 100644 k8s/apps/furumi-server/metadata-agent.yaml create mode 100644 k8s/apps/furumi-server/web-player.yaml diff --git a/k8s/apps/furumi-server/external-secrets.yaml b/k8s/apps/furumi-server/external-secrets.yaml index bcf8ca7..717807b 100644 --- a/k8s/apps/furumi-server/external-secrets.yaml +++ b/k8s/apps/furumi-server/external-secrets.yaml @@ -20,6 +20,8 @@ spec: OIDC_REDIRECT_URL: https://music.hexor.cy/auth/callback OIDC_SESSION_SECRET: |- {{ .session_secret }} + PG_STRING: |- + postgres://furumi:{{ .pg_pass }}@psql.psql.svc:5432/furumi data: - secretKey: token sourceRef: @@ -53,3 +55,11 @@ spec: remoteRef: key: b8b8c3a2-c3fe-42d3-9402-0ae305e1455f property: fields[3].value + - secretKey: pg_pass + sourceRef: + storeRef: + name: vaultwarden-login + kind: ClusterSecretStore + remoteRef: + key: 2a9deb39-ef22-433e-a1be-df1555625e22 + property: fields[16].value diff --git a/k8s/apps/furumi-server/ingress.yaml b/k8s/apps/furumi-server/ingress.yaml index 36d8c53..ae94940 100644 --- a/k8s/apps/furumi-server/ingress.yaml +++ b/k8s/apps/furumi-server/ingress.yaml @@ -17,9 +17,16 @@ spec: pathType: Prefix backend: service: - name: furumi-server-web + name: furumi-web-player port: number: 8080 + - path: /admin + pathType: Prefix + backend: + service: + name: furumi-metadata-agent + port: + number: 8090 tls: - secretName: furumi-tls hosts: diff --git a/k8s/apps/furumi-server/kustomization.yaml b/k8s/apps/furumi-server/kustomization.yaml index 0116618..6cffc53 100644 --- a/k8s/apps/furumi-server/kustomization.yaml +++ b/k8s/apps/furumi-server/kustomization.yaml @@ -8,3 +8,5 @@ resources: - servicemonitor.yaml - external-secrets.yaml - ingress.yaml + - web-player.yaml + - metadata-agent.yaml diff --git a/k8s/apps/furumi-server/metadata-agent.yaml b/k8s/apps/furumi-server/metadata-agent.yaml new file mode 100644 index 0000000..72fe476 --- /dev/null +++ b/k8s/apps/furumi-server/metadata-agent.yaml @@ -0,0 +1,59 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: furumi-metadata-agent + labels: + app: furumi-metadata-agent +spec: + replicas: 1 + selector: + matchLabels: + app: furumi-metadata-agent + template: + metadata: + labels: + app: furumi-metadata-agent + spec: + nodeSelector: + kubernetes.io/hostname: master.tail2fe2d.ts.net + containers: + - name: furumi-metadata-agent + image: ultradesu/furumi-metadata-agent:trunk + imagePullPolicy: Always + env: + - name: FURUMI_PLAYER_DATABASE_URL + valueFrom: + secretKeyRef: + name: furumi-ng-creds + key: PG_STRING + - name: FURUMI_AGENT_INBOX_DIR + value: "/inbox" + - name: FURUMI_AGENT_STORAGE_DIR + value: "/media" + - name: FURUMI_AGENT_OLLAMA_URL + value: "http://ollama.ollama.svc:11434" + - name: FURUMI_AGENT_OLLAMA_MODEL + value: "qwen3:14b" + - name: FURUMI_AGENT_POLL_INTERVAL_SECS + value: "10" + - name: RUST_LOG + value: "info" + ports: + - name: admin-ui + containerPort: 8090 + protocol: TCP + volumeMounts: + - name: library + mountPath: /media + - name: inbox + mountPath: /inbox + volumes: + - name: library + hostPath: + path: /k8s/furumi/library + type: DirectoryOrCreate + - name: inbox + hostPath: + path: /k8s/furumi/inbox + type: DirectoryOrCreate + diff --git a/k8s/apps/furumi-server/service.yaml b/k8s/apps/furumi-server/service.yaml index a04690e..5166d5c 100644 --- a/k8s/apps/furumi-server/service.yaml +++ b/k8s/apps/furumi-server/service.yaml @@ -32,13 +32,29 @@ spec: apiVersion: v1 kind: Service metadata: - name: furumi-server-web + name: furumi-metadata-agent labels: - app: furumi-server + app: furumi-metadata-agent spec: type: ClusterIP selector: - app: furumi-server + app: furumi-metadata-agent + ports: + - name: admin-ui + protocol: TCP + port: 8090 + targetPort: 8090 +--- +apiVersion: v1 +kind: Service +metadata: + name: furumi-web-player + labels: + app: furumi-web-player +spec: + type: ClusterIP + selector: + app: furumi-web-player ports: - name: web-ui protocol: TCP diff --git a/k8s/apps/furumi-server/web-player.yaml b/k8s/apps/furumi-server/web-player.yaml new file mode 100644 index 0000000..70f485a --- /dev/null +++ b/k8s/apps/furumi-server/web-player.yaml @@ -0,0 +1,70 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: furumi-web-player + labels: + app: furumi-web-player +spec: + replicas: 1 + selector: + matchLabels: + app: furumi-web-player + template: + metadata: + labels: + app: furumi-web-player + spec: + nodeSelector: + kubernetes.io/hostname: master.tail2fe2d.ts.net + containers: + - name: furumi-web-player + image: ultradesu/furumi-web-player:trunk + imagePullPolicy: Always + env: + - name: FURUMI_OIDC_CLIENT_ID + valueFrom: + secretKeyRef: + name: furumi-ng-creds + key: OIDC_CLIENT_ID + - name: FURUMI_OIDC_CLIENT_SECRET + valueFrom: + secretKeyRef: + name: furumi-ng-creds + key: OIDC_CLIENT_SECRET + - name: FURUMI_OIDC_ISSUER_URL + valueFrom: + secretKeyRef: + name: furumi-ng-creds + key: OIDC_ISSUER_URL + - name: FURUMI_OIDC_REDIRECT_URL + valueFrom: + secretKeyRef: + name: furumi-ng-creds + key: OIDC_REDIRECT_URL + - name: FURUMI_OIDC_SESSION_SECRET + valueFrom: + secretKeyRef: + name: furumi-ng-creds + key: OIDC_SESSION_SECRET + - name: FURUMI_PLAYER_DATABASE_URL + valueFrom: + secretKeyRef: + name: furumi-ng-creds + key: PG_STRING + - name: FURUMI_PLAYER_STORAGE_DIR + value: "/media" + - name: RUST_LOG + value: "info" + ports: + - name: web-ui + containerPort: 8080 + protocol: TCP + volumeMounts: + - name: music + mountPath: /media + volumes: + - name: music + hostPath: + path: /k8s/furumi/library + type: DirectoryOrCreate +