Kyoo/chart/values.yaml
2024-10-26 05:08:35 +00:00

460 lines
13 KiB
YAML

# Kyoo consists of multiple services, please view diagrams for additional context
# https://github.com/zoriya/Kyoo/blob/master/DIAGRAMS.md
# global configures shared microservices and subcharts settings
global:
image:
repositoryBase: "ghcr.io/zoriya"
tag: ""
imagePullPolicy: IfNotPresent
imagePullSecrets: []
deploymentAnnotations: {}
podAnnotations: {}
podLabels: {}
extraEnv: []
# kyoo connectivity & subchart settings for meilisearch
# subchart configuration can be found at .meilisearch
meilisearch:
proto: http
host: kyoo-meilisearch
port: 7700
# subchart specific settings
infra:
# subchart does not support specifying keyname.
# key must be named `MEILI_MASTER_KEY`
existingSecret: bigsecret
# kyoo_back workload specific settings
kyoo_back:
masterkeyKey: MEILI_MASTER_KEY
existingSecret: bigsecret
# kyoo connectivity & subchart settings for postgres
# subchart configuration can be found at .postgresql
postgres:
# subchart specific settings
infra:
# subchart does not accept this global value in one place
# if updating be sure to also update .postgresql.auth.username
user: kyoo_all
passwordKey: postgres_password
existingSecret: bigsecret
# kyoo settings for connecting to kyoo_back database
kyoo_back:
host: kyoo-postgresql
port: 5432
database: kyoo_back
# kyoo_migrations workload specific settings
kyoo_migrations:
userKey: postgres_user
passwordKey: postgres_password
existingSecret: bigsecret
# kyoo_back workload specific settings
kyoo_back:
userKey: postgres_user
passwordKey: postgres_password
existingSecret: bigsecret
# kyoo settings for connecting to kyoo_transcoder database
kyoo_transcoder:
host: kyoo-postgresql
port: 5432
database: kyoo_transcoder
# POSTGRES_SCHEMA disabled means application will not create the schema
# and will instead use the user's search path
schema: disabled
# kyoo_transcoder workload specific settings
kyoo_transcoder:
userKey: postgres_user
passwordKey: postgres_password
existingSecret: bigsecret
# kyoo connectivity & subchart settings for rabbitmq
# subchart configuration can be found at .rabbitmq
rabbitmq:
host: kyoo-rabbitmq
port: 5672
# vhost is not used yet https://github.com/zoriya/Kyoo/issues/537
# vhost: ""
# subchart specific settings
infra:
# user must be manually aligned via rabbitmq.auth.user
passwordKey: rabbitmq_password
keyErlangCookie: rabbitmq_cookie
existingSecret: bigsecret
# kyoo_autosync workload specific settings
kyoo_autosync:
userKey: rabbitmq_user
passwordKey: rabbitmq_password
existingSecret: bigsecret
# kyoo_back workload specific settings
kyoo_back:
userKey: rabbitmq_user
passwordKey: rabbitmq_password
existingSecret: bigsecret
# kyoo_matcher workload specific settings
kyoo_matcher:
userKey: rabbitmq_user
passwordKey: rabbitmq_password
existingSecret: bigsecret
# kyoo_scanner workload specific settings
kyoo_scanner:
userKey: rabbitmq_user
passwordKey: rabbitmq_password
existingSecret: bigsecret
# kyoo application settings
kyoo:
# The url you can use to reach your kyoo instance. This is used during oidc to redirect users to your instance.
address: "https://kyoo.mydomain.com"
# If this is true, new accounts wont have any permissions before you approve them in your admin dashboard.
requireAccountVerification: true
# Specify permissions of new accounts.
defaultPermissions: "overall.read,overall.play"
# Specify permissions of guest accounts, default is no permissions.
unloggedPermissions: ""
# A pattern (regex) to ignore video files.
libraryIgnorePattern: ".*/[dD]ownloads?/.*"
languages: "en"
# hardware acceleration profile (valid values: disabled, vaapi, qsv, nvidia)
transcoderAcceleration: disabled
# the preset used during transcode. faster means worst quality, you can probably use a slower preset with hwaccels
# warning: using vaapi hwaccel disable presets (they are not supported).
transcoderPreset: fast
apikey:
existingSecret: bigsecret
apikeyKey: kyoo_apikeys
oidc:
enabled: false
existingSecret: bigsecret
clientIdKey: clientId
clientSecretKey: clientSecret
name: YourPrettyName
logo: https://url-of-your-logo.com
authorizationAddress: https://url-of-the-authorization-endpoint-of-the-oidc-service.com/auth
tokenAddress: https://url-of-the-token-endpoint-of-the-oidc-service.com/token
profileAddress: https://url-of-the-profile-endpoint-of-the-oidc-service.com/userinfo
scope: "email openid profile"
authMethod: ClientSecretBasic
# configures workloads that require access to media
media:
# specifies the volumes to use
volumes:
- name: media
persistentVolumeClaim:
claimName: media
# specifies where to mount the volumes
# note that this should align with .media.baseMountPath
volumeMounts:
- mountPath: /data
name: media
# configures kyoo workloads to search
# note that this should align with .media.volumeMounts[].mountPath
baseMountPath: "/data"
# configures workloads that require access to contentdatabase
contentdatabase:
# TheMovieDB
tmdb:
apikeyKey: tmdb_apikey
existingSecret: bigsecret
# TVDatabase
tvdb:
apikeyKey: tvdb_apikey
pinKey: tvdb_pin
existingSecret: bigsecret
# autosync deployment configuration
autosync:
name: autosync
# kyoo_autosync container configuration
kyoo_autosync:
livenessProbe: {}
readinessProbe: {}
resources: {}
containerSecurityContext: {}
extraVolumeMounts: []
extraArgs: []
extraEnv: []
image:
repository: ~
tag: ~
replicaCount: 1
podLabels: {}
deploymentAnnotations: {}
podAnnotations: {}
imagePullSecrets: []
serviceAccount:
create: true
automount: true
annotations: {}
name: ~
extraContainers: []
extraInitContainers: []
extraVolumes: []
# back deployment configuration
back:
name: back
# kyoo_migrations init container configuration
kyoo_migrations:
livenessProbe: {}
readinessProbe: {}
resources: {}
containerSecurityContext: {}
extraVolumeMounts: []
extraArgs: []
extraEnv: []
image:
repository: ~
tag: ~
# kyoo_back container configuration
kyoo_back:
livenessProbe: {}
readinessProbe: {}
resources: {}
containerSecurityContext: {}
extraVolumeMounts: []
extraArgs: []
extraEnv: []
image:
repository: ~
tag: ~
volumeMounts:
- mountPath: /metadata
name: back-storage
volumes:
- name: back-storage
persistentVolumeClaim:
claimName: back-storage
replicaCount: 1
podLabels: {}
deploymentAnnotations: {}
podAnnotations: {}
imagePullSecrets: []
service:
annotations: {}
labels: {}
type: ClusterIP
serviceAccount:
create: true
automount: true
annotations: {}
name: ~
extraContainers: []
extraInitContainers: []
extraVolumes: []
# front deployment configuration
front:
name: front
# kyoo_front container configuration
kyoo_front:
livenessProbe: {}
readinessProbe: {}
resources: {}
containerSecurityContext: {}
extraVolumeMounts: []
extraArgs: []
extraEnv: []
image:
repository: ~
tag: ~
replicaCount: 1
podLabels: {}
deploymentAnnotations: {}
podAnnotations: {}
imagePullSecrets: []
service:
annotations: {}
labels: {}
type: ClusterIP
serviceAccount:
create: true
automount: true
annotations: {}
name: ~
extraContainers: []
extraInitContainers: []
extraVolumes: []
# matcher deployment configuration
matcher:
name: matcher
# kyoo_matcher container configuration
kyoo_matcher:
livenessProbe: {}
readinessProbe: {}
resources: {}
containerSecurityContext: {}
extraVolumeMounts: []
# kyoo_matcher uses the same image as kyoo_scanner
# requires an additional argument to function as matcher
extraArgs:
- matcher
extraEnv: []
image:
# kyoo_matcher uses the same image as kyoo_scanner
repository: ghcr.io/zoriya/kyoo_scanner
tag: ~
# matcher does not support multiple replicas
replicaCount: 1
podLabels: {}
deploymentAnnotations: {}
podAnnotations: {}
imagePullSecrets: []
serviceAccount:
create: true
automount: true
annotations: {}
name: ~
extraContainers: []
extraInitContainers: []
extraVolumes: []
# scanner deployment configuration
scanner:
name: scanner
# kyoo_scanner container configuration
kyoo_scanner:
livenessProbe: {}
readinessProbe: {}
resources: {}
containerSecurityContext: {}
extraVolumeMounts: []
extraArgs: []
extraEnv: []
image:
repository: ~
tag: ~
# scanner does not support multiple replicas
replicaCount: 1
podLabels: {}
deploymentAnnotations: {}
podAnnotations: {}
imagePullSecrets: []
serviceAccount:
create: true
automount: true
annotations: {}
name: ~
extraContainers: []
extraInitContainers: []
extraVolumes: []
# scanner deployment configuration
transcoder:
name: transcoder
# kyoo_transcoder container configuration
kyoo_transcoder:
livenessProbe: {}
readinessProbe: {}
resources: {}
containerSecurityContext: {}
extraVolumeMounts: []
extraArgs: []
extraEnv: []
image:
repository: ~
tag: ~
volumeMounts:
- mountPath: /metadata
name: transcoder-storage
- mountPath: /cache
name: cache
volumes:
- name: transcoder-storage
persistentVolumeClaim:
claimName: transcoder-storage
- name: cache
emptyDir: {}
replicaCount: 1
podLabels: {}
deploymentAnnotations: {}
podAnnotations: {}
imagePullSecrets: []
service:
annotations: {}
labels: {}
type: ClusterIP
serviceAccount:
create: true
automount: true
annotations: {}
name: ~
extraContainers: []
extraInitContainers: []
extraVolumes: []
ingress:
enabled: false
ingressClassName: ~
annotations: {}
extraAnnotations: {}
host: kyoo.mydomain.com
tls: false
tlsSecret: ~
# subchart settings
meilisearch:
enabled: false
environment:
MEILI_ENV: production
auth:
# subchart does not support specifying keyname.
# key must be named `MEILI_MASTER_KEY`
existingMasterKeySecret: "{{ .Values.global.meilisearch.infra.existingSecret }}"
persistence:
enabled: true
size: 3Gi
# subchart settings
postgresql:
enabled: false
auth:
# default user to be created by postgres subchart
# subchart is unable to consume a secret for specifying user
username: kyoo_all
existingSecret: "{{ .Values.global.postgres.infra.existingSecret }}"
secretKeys:
# set the postgres user password to the same as our user
adminPasswordKey: "{{ .Values.global.postgres.infra.passwordKey }}"
userPasswordKey: "{{ .Values.global.postgres.infra.passwordKey }}"
primary:
# create databases, schemas, and set search_path
initdb:
scripts:
# kyoo_back still requires public schema
# https://github.com/zoriya/Kyoo/issues/536
kyoo_back.sql: |
CREATE DATABASE {{ .Values.global.postgres.kyoo_back.database }} WITH OWNER {{ .Values.global.postgres.infra.user }};
\connect {{ .Values.global.postgres.kyoo_back.database }};
CREATE SCHEMA IF NOT EXISTS data AUTHORIZATION {{ .Values.global.postgres.infra.user }};
kyoo_transcoder.sql: |
CREATE DATABASE {{ .Values.global.postgres.kyoo_transcoder.database }} WITH OWNER {{ .Values.global.postgres.infra.user }};
\connect {{ .Values.global.postgres.kyoo_transcoder.database }};
REVOKE ALL ON SCHEMA public FROM PUBLIC;
CREATE SCHEMA IF NOT EXISTS data AUTHORIZATION {{ .Values.global.postgres.infra.user }};
user.sql: |
ALTER ROLE {{ .Values.global.postgres.infra.user }}
IN DATABASE {{ .Values.global.postgres.kyoo_back.database }} SET search_path TO "$user", public;
ALTER ROLE {{ .Values.global.postgres.infra.user }}
IN DATABASE {{ .Values.global.postgres.kyoo_transcoder.database }} SET search_path TO "$user", data;
persistence:
size: 3Gi
# subchart settings
rabbitmq:
enabled: false
auth:
# default user to be created by rabbitmq subchart
# subchart is unable to consume a secret for specifying user
username: kyoo_all
existingPasswordSecret: "{{ .Values.global.rabbitmq.infra.existingSecret }}"
existingSecretPasswordKey: "{{ .Values.global.rabbitmq.infra.passwordKey }}"
existingErlangSecret: "{{ .Values.global.rabbitmq.infra.existingSecret }}"
existingSecretErlangKey: "{{ .Values.global.rabbitmq.infra.keyErlangCookie }}"
# create extraObjects
# create secret bigsecret
# create pvc for each object
extraObjects: []