feat: playnite

This commit is contained in:
auricom
2025-08-30 21:59:20 +02:00
parent a2164db200
commit 53333aa685
6 changed files with 159 additions and 0 deletions

View File

@@ -92,6 +92,10 @@ spec:
databases: databases:
- paperless - paperless
password: *password password: *password
- name: playnite
databases:
- playnite
password: *password
- name: prowlarr - name: prowlarr
databases: databases:
- prowlarr_main - prowlarr_main

View File

@@ -32,6 +32,7 @@ resources:
- ./opengist/ks.yaml - ./opengist/ks.yaml
- ./outline/ks.yaml - ./outline/ks.yaml
- ./paperless/ks.yaml - ./paperless/ks.yaml
- ./playnite/ks.yaml
- ./prowlarr/ks.yaml - ./prowlarr/ks.yaml
- ./qbittorrent/ks.yaml - ./qbittorrent/ks.yaml
- ./radarr/ks.yaml - ./radarr/ks.yaml

View File

@@ -0,0 +1,22 @@
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: playnite-db
spec:
secretStoreRef:
kind: ClusterSecretStore
name: crunchy-pgo-secrets
target:
name: playnite-db-secret
template:
engineVersion: v2
data:
SYNC_SERVER_DB_NAME: '{{ index . "dbname" }}'
SYNC_SERVER_DB_HOST: '{{ index . "host" }}'
SYNC_SERVER_DB_USER: '{{ index . "user" }}'
SYNC_SERVER_DB_PASSWORD: '{{ index . "password" }}'
SYNC_SERVER_DB_PORT: '{{ index . "port" }}'
dataFrom:
- extract:
key: postgres-pguser-playnite

View File

@@ -0,0 +1,86 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app playnite
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: app-template
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
controllers:
playnite:
annotations:
reloader.stakater.com/auto: "true"
secret.reloader.stakater.com/reload: playnite-db-secret
containers:
app:
image:
repository: yalgrin/playnite-simple-sync-server
tag: 0.1.3
env:
SYNC_SERVER_PORT: &port 8093
SYNC_SERVER_LOG_DIR: /app/logs
SYNC_SERVER_METADATA_FOLDER: /app/metadata
SYNC_SERVER_MAX_FILE_SIZE: 100MB
envFrom:
- secretRef:
name: playnite-db-secret
probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /api/health
port: *port
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
readiness: *probes
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: [ALL] }
resources:
requests:
cpu: 100m
limits:
memory: 500Mi
service:
app:
controller: *app
ports:
http:
port: *port
route:
app:
hostnames: ["{{ .Release.Name }}.${SECRET_EXTERNAL_DOMAIN}"]
parentRefs:
- name: internal
namespace: network
sectionName: https
rules:
- backendRefs:
- name: *app
port: *port
persistence:
metadata:
existingClaim: *app
globalMounts:
- path: /app/metadata
logs:
type: emptyDir
globalMounts:
- path: /app/logs

View File

@@ -0,0 +1,8 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml

View File

@@ -0,0 +1,38 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app playnite
namespace: &namespace default
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: crunchy-postgres-operator-cluster
namespace: database
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
namespace: rook-ceph
- name: volsync
namespace: volsync
components:
- ../../../../components/gatus/guarded
- ../../../../components/volsync
interval: 1h
path: ./kubernetes/apps/default/playnite/app
postBuild:
substitute:
APP: *app
VOLSYNC_CAPACITY: 20Gi
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
wait: false