diff --git a/alaskarTV/alaskarfin/deployment-worker.yaml b/alaskarTV/alaskarfin/deployment-worker.yaml index 3597ab5..0086ee9 100644 --- a/alaskarTV/alaskarfin/deployment-worker.yaml +++ b/alaskarTV/alaskarfin/deployment-worker.yaml @@ -71,8 +71,6 @@ spec: - mountPath: /mnt/zurg/__all__ subPath: __all__ name: rclone-data - - mountPath: mnt/torbox - name: rclone-torbox - name: render-d128 mountPath: /dev/dri/renderD128 restartPolicy: Always @@ -86,9 +84,6 @@ spec: - name: rclone-data persistentVolumeClaim: claimName: rclone-data-pvc - - name: rclone-torbox - hostPath: - path: /mnt/torbox - name: render-d128 hostPath: path: /dev/dri/renderD128 diff --git a/alaskarTV/ingress.yaml b/alaskarTV/ingress.yaml index 095dfb1..c659543 100644 --- a/alaskarTV/ingress.yaml +++ b/alaskarTV/ingress.yaml @@ -17,6 +17,8 @@ spec: services: - name: jellyfin-worker port: 8096 + # - name: jellyfin-lb + # kind: TraefikService - match: Host(`gpu.askar.tv`) kind: Rule middlewares: diff --git a/alaskarTV/jellyfin-lb.yaml b/alaskarTV/jellyfin-lb.yaml new file mode 100644 index 0000000..b2d8333 --- /dev/null +++ b/alaskarTV/jellyfin-lb.yaml @@ -0,0 +1,18 @@ +apiVersion: traefik.io/v1alpha1 +kind: TraefikService +metadata: + name: jellyfin-lb + namespace: default +spec: + weighted: + sticky: + cookie: + name: jellyfin-session + services: + - name: jellyfin-worker + port: 8096 + weight: 1 + - name: jellyfin-master + port: 8096 + weight: 1 + diff --git a/alaskarTV/pv.yaml b/alaskarTV/pv.yaml index faf1f37..7b94300 100644 --- a/alaskarTV/pv.yaml +++ b/alaskarTV/pv.yaml @@ -35,10 +35,11 @@ metadata: name: rclone-data spec: capacity: - storage: 6Ti + storage: 10Ti accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain + storageClassName: "rclone" csi: driver: csi-rclone volumeHandle: rclone-data @@ -51,6 +52,7 @@ spec: async-read: "true" buffer-size: "48M" dir-cache-time: "15s" + cache-dir: "/mnt/rclone-cache" dir-permissions: "0775" file-permissions: "0664" gid: "1000" @@ -89,14 +91,18 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: rclone-data-pvc + annotations: + csi-rclone/storage-path: "/" + csi-rclone/remote: "webdav" + csi-rclone/umask: "022" spec: accessModes: - ReadWriteMany resources: requests: storage: 6Ti - volumeName: rclone-data - storageClassName: "" + # volumeName: rclone-data + storageClassName: "rclone" --- apiVersion: v1 diff --git a/csi-plugin/csi-rclone-storageclass.yaml b/csi-plugin/csi-rclone-storageclass.yaml index 8b0a0f3..2514728 100644 --- a/csi-plugin/csi-rclone-storageclass.yaml +++ b/csi-plugin/csi-rclone-storageclass.yaml @@ -2,7 +2,32 @@ apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: rclone -# You will need to delete storageclass to update this field provisioner: csi-rclone -# parameters: -# pathPattern: "${.PVC.namespace}/${.PVC.annotations.csi-rclone/storage-path}" \ No newline at end of file +parameters: + remote: "webdav" + remotePath: "/" + webdav-url: "http://192.168.0.200:30999/dav/" + allow-other: "true" + allow-non-empty: "true" + async-read: "true" + buffer-size: "48M" + dir-cache-time: "15s" + cache-dir: "/mnt/rclone-cache" + dir-permissions: "0775" + file-permissions: "0664" + gid: "1000" + log-level: "INFO" + poll-interval: "15s" + timeout: "10m" + uid: "1000" + use-mmap: "true" + vfs-cache-max-age: "672h" + vfs-cache-max-size: "5G" + vfs-cache-mode: "full" + vfs-cache-poll-interval: "15s" + vfs-fast-fingerprint: "true" + vfs-read-ahead: "96M" + vfs-read-chunk-size: "32M" + vfs-read-chunk-size-limit: "32M" + vfs-refresh: "true" +#pathPattern: "${.PVC.namespace}/${.PVC.annotations.csi-rclone/storage-path}" diff --git a/loadBalancer/middlewares/stickySession/middleware.yml b/loadBalancer/middlewares/stickySession/middleware.yml new file mode 100644 index 0000000..c180f49 --- /dev/null +++ b/loadBalancer/middlewares/stickySession/middleware.yml @@ -0,0 +1,12 @@ +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: sticky-session + namespace: default +spec: + loadBalancer: + sticky: + cookie: + name: jellyfin_sticky + secure: true + sameSite: lax