diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-16 15:23:33 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-16 15:23:33 +0300 |
| commit | dcda17ded1d4580077f04ffb61767d3671c71b30 (patch) | |
| tree | aa0924c7af9bf83d421ba4b6ce83e1341067ac19 /f3s/xplayer/helm-chart | |
| parent | 80259c162cdf5faca71815a396af29fe5e5aea77 (diff) | |
Deploy xplayer and update player image
Diffstat (limited to 'f3s/xplayer/helm-chart')
| -rw-r--r-- | f3s/xplayer/helm-chart/Chart.yaml | 6 | ||||
| -rw-r--r-- | f3s/xplayer/helm-chart/templates/deployment.yaml | 81 | ||||
| -rw-r--r-- | f3s/xplayer/helm-chart/templates/ingress.yaml | 20 | ||||
| -rw-r--r-- | f3s/xplayer/helm-chart/templates/persistent-volume.yaml | 55 | ||||
| -rw-r--r-- | f3s/xplayer/helm-chart/templates/service.yaml | 15 |
5 files changed, 177 insertions, 0 deletions
diff --git a/f3s/xplayer/helm-chart/Chart.yaml b/f3s/xplayer/helm-chart/Chart.yaml new file mode 100644 index 0000000..c946ab6 --- /dev/null +++ b/f3s/xplayer/helm-chart/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: xplayer +description: Extra Player media app instance for f3s +type: application +version: 0.1.0 +appVersion: "df224ef" diff --git a/f3s/xplayer/helm-chart/templates/deployment.yaml b/f3s/xplayer/helm-chart/templates/deployment.yaml new file mode 100644 index 0000000..fb7dd28 --- /dev/null +++ b/f3s/xplayer/helm-chart/templates/deployment.yaml @@ -0,0 +1,81 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: xplayer + namespace: services +spec: + replicas: 1 + # Recreate so the old pod fully terminates before the new one starts — + # avoids NFS-lock races on the hostPath-backed PVC during rolling updates. + strategy: + type: Recreate + selector: + matchLabels: + app: xplayer + template: + metadata: + labels: + app: xplayer + spec: + securityContext: + runAsNonRoot: true + runAsUser: 65534 + runAsGroup: 65534 + fsGroup: 65534 + containers: + - name: xplayer + image: registry.lan.buetow.org:30001/player:df224ef + imagePullPolicy: IfNotPresent + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsNonRoot: true + runAsUser: 65534 + runAsGroup: 65534 + ports: + - containerPort: 8080 + name: http + env: + - name: PORT + value: "8080" + - name: DB_PATH + value: "/data/media.db" + - name: MEDIA_ROOT + value: "/media" + - name: SECURE_COOKIES + value: "true" + livenessProbe: + httpGet: + path: /healthz + port: http + initialDelaySeconds: 5 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /readyz + port: http + initialDelaySeconds: 3 + periodSeconds: 5 + resources: + requests: + memory: 128Mi + cpu: 100m + limits: + memory: 512Mi + cpu: "1" + volumeMounts: + - name: xplayer-data + mountPath: /data + - name: xplayer-media + mountPath: /media + - name: tmp + mountPath: /tmp + volumes: + - name: xplayer-data + persistentVolumeClaim: + claimName: xplayer-data-pvc + - name: xplayer-media + persistentVolumeClaim: + claimName: xplayer-media-pvc + - name: tmp + emptyDir: {} diff --git a/f3s/xplayer/helm-chart/templates/ingress.yaml b/f3s/xplayer/helm-chart/templates/ingress.yaml new file mode 100644 index 0000000..df8420d --- /dev/null +++ b/f3s/xplayer/helm-chart/templates/ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: xplayer-ingress + namespace: services + annotations: + spec.ingressClassName: traefik + traefik.ingress.kubernetes.io/router.entrypoints: web +spec: + rules: + - host: xplayer.f3s.buetow.org + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: xplayer-service + port: + number: 8080 diff --git a/f3s/xplayer/helm-chart/templates/persistent-volume.yaml b/f3s/xplayer/helm-chart/templates/persistent-volume.yaml new file mode 100644 index 0000000..c2e09f2 --- /dev/null +++ b/f3s/xplayer/helm-chart/templates/persistent-volume.yaml @@ -0,0 +1,55 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: xplayer-data-pv +spec: + capacity: + storage: 1Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + hostPath: + path: /data/nfs/k3svolumes/xplayer/data + type: Directory +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: xplayer-data-pvc + namespace: services +spec: + storageClassName: "" + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: xplayer-media-pv +spec: + capacity: + storage: 10Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + hostPath: + path: /data/nfs/k3svolumes/xplayer/media + type: Directory +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: xplayer-media-pvc + namespace: services +spec: + storageClassName: "" + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi diff --git a/f3s/xplayer/helm-chart/templates/service.yaml b/f3s/xplayer/helm-chart/templates/service.yaml new file mode 100644 index 0000000..0be2875 --- /dev/null +++ b/f3s/xplayer/helm-chart/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: xplayer + name: xplayer-service + namespace: services +spec: + ports: + - name: web + port: 8080 + protocol: TCP + targetPort: http + selector: + app: xplayer |
