k3s-cluster/kubernetes/main/apps/default/ganymede/app/helm-release.yaml

119 lines
3.5 KiB
YAML

# 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: ganymede
spec:
interval: 5m
chart:
spec:
chart: app-template
version: 3.5.1
sourceRef:
kind: HelmRepository
name: bjws-charts
namespace: flux-system
values:
controllers:
main:
containers:
ganymede:
image:
repository: ghcr.io/zibbp/ganymede
tag: 4.0.1
envFrom:
- secretRef:
name: ganymede-env
env:
PUID: 10555
PGID: 10555
TZ: "America/New_York" # Set to your timezone
DB_HOST: "postgres16-rw.database.svc"
DB_PORT: "5432"
DB_USER: "ganymede"
DB_NAME: "ganymede"
DB_SSL: "disable"
# OAUTH
OAUTH_PROVIDER_URL: "https://auth.${SECRET_NEW_DOMAIN}/application/o/ganymede/.well-known/openid-configuration"
OAUTH_REDIRECT_URL: "https://twvods.${SECRET_NEW_DOMAIN}/api/v1/auth/oauth/callback"
# WORKER
MAX_CHAT_DOWNLOAD_EXECUTIONS: "5"
MAX_CHAT_RENDER_EXECUTIONS: "3"
MAX_VIDEO_DOWNLOAD_EXECUTIONS: "5"
MAX_VIDEO_CONVERT_EXECUTIONS: "3"
# FRONTEND
SHOW_SSO_LOGIN_BUTTON: "true" # show/hide SSO login button on login page
FORCE_SSO_AUTH: "false" # force SSO auth for all users (bypasses login page and redirects to SSO)
REQUIRE_LOGIN: "false" # require login to view videos
service:
app:
controller: main
ports:
http:
port: 4000
serviceMonitor:
app:
labels:
release: kube-prometheus-stack
serviceName: ganymede
endpoints:
- port: http
interval: 1m
scrapeTimeout: 5s
path: /metrics
metricRelabelings:
# add `ganymede_` prefix to all label metrics
- sourceLabels: ["__name__"]
targetLabel: "__name__"
regex: "(.*)"
replacement: "ganymede_$${1}"
action: replace
ingress:
main:
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
traefik.ingress.kubernetes.io/router.entrypoints: websecure
hosts:
- host: twvods.${SECRET_NEW_DOMAIN}
paths:
- path: /
service:
identifier: app
port: http
persistence:
vods:
type: persistentVolumeClaim
size: 50Gi
retain: true
storageClass: mainpool-hostpath
accessMode: ReadWriteOnce
globalMounts:
- path: /data/videos
ganymede-data:
type: persistentVolumeClaim
size: 5Gi
retain: true
storageClass: mainpool-hostpath
accessMode: ReadWriteOnce
globalMounts:
- path: /data/temp
ganymede-logs:
type: persistentVolumeClaim
size: 5Gi
retain: true
storageClass: mainpool-hostpath
accessMode: ReadWriteOnce
globalMounts:
- path: /data/logs
ganymede-conf:
name: ganymede-conf
type: configMap
defaultMode: 0777
globalMounts:
- path: /data/config/config.json
subPath: config.json