{ kubernetes.resources = { configMaps.jellyfin-env.data.JELLYFIN_PublishedServerUrl = "https://media.kun.is"; deployments.jellyfin = { metadata.labels = { app = "media"; component = "jellyfin"; }; spec = { selector.matchLabels = { app = "media"; component = "jellyfin"; }; template = { metadata.labels = { app = "media"; component = "jellyfin"; }; spec = { containers.jellyfin = { image = "jellyfin/jellyfin:10.8.13-1"; envFrom = [{ configMapRef.name = "jellyfin-env"; }]; ports = [{ containerPort = 8096; protocol = "TCP"; }]; volumeMounts = [ { name = "config"; mountPath = "/config"; } { name = "media"; mountPath = "/media"; } ]; }; volumes = [ { name = "config"; persistentVolumeClaim.claimName = "jellyfin-config"; } { name = "media"; persistentVolumeClaim.claimName = "media"; } ]; }; }; }; }; persistentVolumes = { jellyfin-config.spec = { capacity.storage = "1Mi"; accessModes = [ "ReadWriteMany" ]; nfs = { server = "lewis.hyp"; path = "/mnt/data/nfs/jellyfin/config"; }; }; media.spec = { capacity.storage = "1Mi"; accessModes = [ "ReadWriteMany" ]; nfs = { server = "lewis.hyp"; path = "/mnt/data/nfs/media"; }; }; }; persistentVolumeClaims = { jellyfin-config.spec = { accessModes = [ "ReadWriteMany" ]; storageClassName = ""; resources.requests.storage = "1Mi"; volumeName = "jellyfin-config"; }; media.spec = { accessModes = [ "ReadWriteMany" ]; storageClassName = ""; resources.requests.storage = "1Mi"; volumeName = "media"; }; }; services.jellyfin.spec = { selector = { app = "media"; component = "jellyfin"; }; ports = [{ protocol = "TCP"; port = 80; targetPort = 8096; }]; }; ingresses.jellyfin.spec = { ingressClassName = "traefik"; rules = [{ host = "media.kun.is"; http.paths = [{ path = "/"; pathType = "Prefix"; backend.service = { name = "jellyfin"; port.number = 80; }; }]; }]; }; }; }