jellyfin
This commit is contained in:
7
jellyfin/kustomization.yaml
Normal file
7
jellyfin/kustomization.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
# argocd/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- main.yaml
|
||||
- pvc.yaml
|
||||
126
jellyfin/main.yaml
Normal file
126
jellyfin/main.yaml
Normal file
@@ -0,0 +1,126 @@
|
||||
apiVersion: v1
|
||||
automountServiceAccountToken: true
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: jellyfin
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: jellyfin
|
||||
app.kubernetes.io/version: 10.10.6
|
||||
helm.sh/chart: jellyfin-2.3.0
|
||||
name: jellyfin
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: jellyfin
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: jellyfin
|
||||
app.kubernetes.io/version: 10.10.6
|
||||
helm.sh/chart: jellyfin-2.3.0
|
||||
name: jellyfin
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
port: 8096
|
||||
protocol: TCP
|
||||
targetPort: http
|
||||
selector:
|
||||
app.kubernetes.io/instance: jellyfin
|
||||
app.kubernetes.io/name: jellyfin
|
||||
type: ClusterIP
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: jellyfin
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: jellyfin
|
||||
app.kubernetes.io/version: 10.10.6
|
||||
helm.sh/chart: jellyfin-2.3.0
|
||||
name: jellyfin-config
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: jellyfin
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: jellyfin
|
||||
app.kubernetes.io/version: 10.10.6
|
||||
helm.sh/chart: jellyfin-2.3.0
|
||||
name: jellyfin-media
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 25Gi
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: jellyfin
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: jellyfin
|
||||
app.kubernetes.io/version: 10.10.6
|
||||
helm.sh/chart: jellyfin-2.3.0
|
||||
name: jellyfin
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/instance: jellyfin
|
||||
app.kubernetes.io/name: jellyfin
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: jellyfin
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: jellyfin
|
||||
app.kubernetes.io/version: 10.10.6
|
||||
helm.sh/chart: jellyfin-2.3.0
|
||||
spec:
|
||||
containers:
|
||||
- image: docker.io/jellyfin/jellyfin:10.10.6
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 10
|
||||
tcpSocket:
|
||||
port: http
|
||||
name: jellyfin
|
||||
ports:
|
||||
- containerPort: 8096
|
||||
name: http
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
initialDelaySeconds: 10
|
||||
tcpSocket:
|
||||
port: http
|
||||
resources: {}
|
||||
securityContext: {}
|
||||
volumeMounts:
|
||||
- mountPath: /config
|
||||
name: config
|
||||
- mountPath: /media
|
||||
name: media
|
||||
securityContext: {}
|
||||
serviceAccountName: jellyfin
|
||||
volumes:
|
||||
- name: config
|
||||
persistentVolumeClaim:
|
||||
claimName: jellyfin-config
|
||||
- name: media
|
||||
persistentVolumeClaim:
|
||||
claimName: jellyfin-media
|
||||
11
jellyfin/pvc.yaml
Normal file
11
jellyfin/pvc.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: nfs-media
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi # Muss kleiner oder gleich der PV-Größe sein
|
||||
volumeName: nfs-media
|
||||
12
jellyfin/src/kustomization.yaml
Normal file
12
jellyfin/src/kustomization.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
# kubernetes/cilium/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
helmCharts:
|
||||
- name: jellyfin
|
||||
repo: https://jellyfin.github.io/jellyfin-helm
|
||||
version: 2.3.0
|
||||
releaseName: jellyfin
|
||||
includeCRDs: true
|
||||
namespace: jellyfin
|
||||
valuesFile: values.yaml
|
||||
238
jellyfin/src/values.yaml
Normal file
238
jellyfin/src/values.yaml
Normal file
@@ -0,0 +1,238 @@
|
||||
# Default values for Jellyfin.
|
||||
# This is a YAML-formatted file.
|
||||
|
||||
# -- Number of Jellyfin replicas to start. Should be left at 1.
|
||||
replicaCount: 1
|
||||
|
||||
# -- Image pull secrets to authenticate with private repositories.
|
||||
# See: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
imagePullSecrets: []
|
||||
|
||||
image:
|
||||
# -- Container image repository for Jellyfin.
|
||||
repository: docker.io/jellyfin/jellyfin
|
||||
# -- Jellyfin container image tag. Leave empty to automatically use the Chart's app version.
|
||||
tag: ""
|
||||
# -- Image pull policy (Always, IfNotPresent, or Never).
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# -- Override the default name of the chart.
|
||||
nameOverride: ""
|
||||
# -- Override the default full name of the chart.
|
||||
fullnameOverride: ""
|
||||
|
||||
# -- Service account configuration. See: https://kubernetes.io/docs/concepts/security/service-accounts/
|
||||
serviceAccount:
|
||||
# -- Specifies whether to create a service account.
|
||||
create: true
|
||||
# -- Automatically mount API credentials for the service account.
|
||||
automount: true
|
||||
# -- Annotations for the service account.
|
||||
annotations: {}
|
||||
# -- Custom name for the service account. If left empty, the name will be autogenerated.
|
||||
name: ""
|
||||
|
||||
# -- Annotations to add to the pod.
|
||||
podAnnotations: {}
|
||||
# -- Additional labels to add to the pod.
|
||||
podLabels: {}
|
||||
|
||||
# -- Security context for the pod.
|
||||
podSecurityContext: {}
|
||||
# fsGroup: 2000
|
||||
|
||||
# -- Security context for the container.
|
||||
securityContext: {}
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# readOnlyRootFilesystem: true
|
||||
# runAsNonRoot: true
|
||||
# runAsUser: 1000
|
||||
|
||||
# -- Define a custom runtimeClassName for the pod.
|
||||
runtimeClassName: ''
|
||||
|
||||
# -- Define a priorityClassName for the pod.
|
||||
priorityClassName: ""
|
||||
|
||||
# -- Deployment strategy configuration. See `kubectl explain deployment.spec.strategy`.
|
||||
deploymentStrategy:
|
||||
type: RollingUpdate
|
||||
|
||||
# -- Annotations to add to the deployment.
|
||||
deploymentAnnotations: {}
|
||||
|
||||
service:
|
||||
# # -- Custom name for the service port
|
||||
# name: http
|
||||
# -- Service type (ClusterIP, NodePort, or LoadBalancer).
|
||||
type: ClusterIP
|
||||
# -- Configure dual-stack IP family policy. See: https://kubernetes.io/docs/concepts/services-networking/dual-stack/
|
||||
ipFamilyPolicy: ""
|
||||
# -- Supported IP families (IPv4, IPv6).
|
||||
ipFamilies: []
|
||||
# -- Specific IP address for the LoadBalancer.
|
||||
loadBalancerIP: ""
|
||||
# -- Class of the LoadBalancer.
|
||||
loadBalancerClass: ""
|
||||
# -- Source ranges allowed to access the LoadBalancer.
|
||||
loadBalancerSourceRanges: []
|
||||
# -- Port for the Jellyfin service.
|
||||
port: 8096
|
||||
# -- Name of the port in the service.
|
||||
portName: service
|
||||
# -- Annotations for the service.
|
||||
annotations: {}
|
||||
# -- Labels for the service.
|
||||
labels: {}
|
||||
# -- External traffic policy (Cluster or Local).
|
||||
# externalTrafficPolicy: Cluster
|
||||
# -- NodePort for the service (if applicable).
|
||||
# nodePort:
|
||||
|
||||
# -- Ingress configuration. See: https://kubernetes.io/docs/concepts/services-networking/ingress/
|
||||
ingress:
|
||||
enabled: false
|
||||
className: ""
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
hosts:
|
||||
- host: chart-example.local
|
||||
paths:
|
||||
- path: /
|
||||
pathType: ImplementationSpecific
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - chart-example.local
|
||||
|
||||
# -- Resource requests and limits for the Jellyfin container.
|
||||
resources: {}
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
# -- Configure liveness probe for Jellyfin.
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 10
|
||||
tcpSocket:
|
||||
port: http
|
||||
# successThreshold: 1
|
||||
# failureThreshold: 3
|
||||
# timeoutSeconds: 1
|
||||
# periodSeconds: 10
|
||||
|
||||
# -- Configure readiness probe for Jellyfin.
|
||||
readinessProbe:
|
||||
initialDelaySeconds: 10
|
||||
tcpSocket:
|
||||
port: http
|
||||
# successThreshold: 1
|
||||
# failureThreshold: 3
|
||||
# timeoutSeconds: 1
|
||||
# periodSeconds: 10
|
||||
|
||||
# -- Additional volumes to mount in the Jellyfin pod.
|
||||
volumes: []
|
||||
# - name: foo
|
||||
# secret:
|
||||
# secretName: mysecret
|
||||
# optional: false
|
||||
|
||||
# -- Additional volume mounts for the Jellyfin container.
|
||||
volumeMounts: []
|
||||
# - name: foo
|
||||
# mountPath: "/etc/foo"
|
||||
# readOnly: true
|
||||
|
||||
# -- Node selector for pod scheduling.
|
||||
nodeSelector: {}
|
||||
|
||||
# -- Tolerations for pod scheduling.
|
||||
tolerations: []
|
||||
|
||||
# -- Affinity rules for pod scheduling.
|
||||
affinity: {}
|
||||
|
||||
jellyfin:
|
||||
# -- Enable DLNA. Requires host network. See: https://jellyfin.org/docs/general/networking/dlna.html
|
||||
enableDLNA: false
|
||||
# -- Custom command to use as container entrypoint.
|
||||
command: []
|
||||
# -- Additional arguments for the entrypoint command.
|
||||
args: []
|
||||
# -- Additional environment variables for the container.
|
||||
env: []
|
||||
|
||||
persistence:
|
||||
config:
|
||||
# -- set to false to use emptyDir
|
||||
enabled: true
|
||||
accessMode: ReadWriteOnce
|
||||
size: 5Gi
|
||||
# -- Custom annotations to be added to the PVC
|
||||
annotations: {}
|
||||
# -- If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner.
|
||||
storageClass: ''
|
||||
## -- Use an existing PVC for this mount
|
||||
# existingClaim: ''
|
||||
media:
|
||||
# -- set to false to use emptyDir
|
||||
enabled: true
|
||||
accessMode: ReadWriteOnce
|
||||
size: 25Gi
|
||||
# -- Custom annotations to be added to the PVC
|
||||
annotations: {}
|
||||
# -- If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner.
|
||||
storageClass: ''
|
||||
## -- Use an existing PVC for this mount
|
||||
# existingClaim: ''
|
||||
|
||||
# -- Configuration for metrics collection and monitoring
|
||||
metrics:
|
||||
# -- Enable or disable metrics collection - Ensure you have started and configured your Jellyfin instance first as this will fail if system.xml does not exist yet.
|
||||
enabled: false
|
||||
command:
|
||||
- bash
|
||||
- '-c'
|
||||
- >-
|
||||
sed 's,<EnableMetrics>false</EnableMetrics>,<EnableMetrics>true</EnableMetrics>,' -i /config/config/system.xml &&
|
||||
/jellyfin/jellyfin
|
||||
# -- Configuration for the Prometheus ServiceMonitor
|
||||
serviceMonitor:
|
||||
# -- Enable or disable the creation of a ServiceMonitor resource
|
||||
enabled: false
|
||||
# -- Namespace where the ServiceMonitor resource should be created. Defaults to Release.Namespace
|
||||
namespace: ''
|
||||
# -- Labels to add to the ServiceMonitor resource
|
||||
labels: {}
|
||||
# -- Interval at which metrics should be scraped
|
||||
interval: 30s
|
||||
# -- Timeout for scraping metrics
|
||||
scrapeTimeout: 30s
|
||||
# -- Path to scrape for metrics
|
||||
path: /metrics
|
||||
# -- Port to scrape for metrics
|
||||
port: 8096
|
||||
# -- Scheme to use for scraping metrics (http or https)
|
||||
scheme: http
|
||||
# -- TLS configuration for scraping metrics
|
||||
tlsConfig: {}
|
||||
# -- Relabeling rules for the scraped metrics
|
||||
relabelings: []
|
||||
# -- Relabeling rules for the metrics before ingestion
|
||||
metricRelabelings: []
|
||||
# -- Target labels to add to the scraped metrics
|
||||
targetLabels: []
|
||||
|
||||
# -- additional init containers to run inside the pod.
|
||||
extraInitContainers: []
|
||||
|
||||
# -- additional sidecar containers to run inside the pod.
|
||||
extraContainers: []
|
||||
|
||||
Reference in New Issue
Block a user