cleanup with regards to upcoming migration
This commit is contained in:
		| @@ -1,63 +0,0 @@ | |||||||
| apiVersion: traefik.containo.us/v1alpha1 |  | ||||||
| kind: IngressRoute |  | ||||||
| metadata: |  | ||||||
|   name: jellyfin-vue-ingress |  | ||||||
|   namespace: media |  | ||||||
| spec: |  | ||||||
|   entryPoints: |  | ||||||
|     - websecure |  | ||||||
|   routes: |  | ||||||
|     - match: Host(`media.kluster.moll.re`) |  | ||||||
|       middlewares: |  | ||||||
|         - name: jellyfin-websocket |  | ||||||
|       kind: Rule |  | ||||||
|       services: |  | ||||||
|         - name: jellyfin-web |  | ||||||
|           port: 80 |  | ||||||
|   tls: |  | ||||||
|     certResolver: default-tls |  | ||||||
| --- |  | ||||||
| apiVersion: traefik.containo.us/v1alpha1 |  | ||||||
| kind: IngressRoute |  | ||||||
| metadata: |  | ||||||
|   name: jellyfin-backend-ingress |  | ||||||
|   namespace: media |  | ||||||
| spec: |  | ||||||
|   entryPoints: |  | ||||||
|     - websecure |  | ||||||
|   routes: |  | ||||||
|     - match: Host(`media-backend.kluster.moll.re`) && !Path(`/metrics`) |  | ||||||
|       middlewares: |  | ||||||
|         - name: jellyfin-websocket |  | ||||||
|         - name: jellyfin-server-headers |  | ||||||
|       kind: Rule |  | ||||||
|       services: |  | ||||||
|         - name: jellyfin-server |  | ||||||
|           port: 8096 |  | ||||||
|   tls: |  | ||||||
|     certResolver: default-tls |  | ||||||
| --- |  | ||||||
| apiVersion: traefik.containo.us/v1alpha1 |  | ||||||
| kind: Middleware |  | ||||||
| metadata: |  | ||||||
|   name: jellyfin-websocket |  | ||||||
|   namespace: media |  | ||||||
| spec: |  | ||||||
|   headers: |  | ||||||
|     customRequestHeaders: |  | ||||||
|       Connection: keep-alive, Upgrade |  | ||||||
|       Upgrade: WebSocket |  | ||||||
| --- |  | ||||||
| apiVersion: traefik.containo.us/v1alpha1 |  | ||||||
| kind: Middleware |  | ||||||
| metadata: |  | ||||||
|   name: jellyfin-server-headers |  | ||||||
|   namespace: media |  | ||||||
| spec: |  | ||||||
|   headers: |  | ||||||
|     accessControlAllowCredentials: true |  | ||||||
|     accessControlAllowHeaders: [ "Authorization","Content-Type" ] # "Accept","Origin" |  | ||||||
|     accessControlAllowMethods: [ "GET","HEAD","OPTIONS" ] # "POST","PUT" |  | ||||||
|     accessControlAllowOriginList: |  | ||||||
|       - "*" |  | ||||||
|     accessControlMaxAge: 100 |  | ||||||
| @@ -1,17 +0,0 @@ | |||||||
| apiVersion: monitoring.coreos.com/v1 |  | ||||||
| kind: ServiceMonitor |  | ||||||
| metadata: |  | ||||||
|   name: jellyfin |  | ||||||
|   labels: |  | ||||||
|     metrics: prometheus |  | ||||||
| spec: |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: jellyfin-server-service |  | ||||||
|   endpoints: |  | ||||||
|   - path: /metrics |  | ||||||
|     targetPort: jellyfin |  | ||||||
|  |  | ||||||
| # this exposes metrics on port 8096 as enabled in the jellyfin config |  | ||||||
| # https://jellyfin.org/docs/general/networking/monitoring/ |  | ||||||
| # the metrics are available at /metrics but blocked by the ingress |  | ||||||
| @@ -1,21 +0,0 @@ | |||||||
| apiVersion: kustomize.config.k8s.io/v1beta1 |  | ||||||
| kind: Kustomization |  | ||||||
| namespace: media |  | ||||||
|  |  | ||||||
| resources:  |  | ||||||
|   - namespace.yaml |  | ||||||
|   - pvc.yaml |  | ||||||
|   - server.deployment.yaml |  | ||||||
|   - server.service.yaml |  | ||||||
|   - web.deployment.yaml |  | ||||||
|   - web.service.yaml |  | ||||||
|   - ingress.yaml |  | ||||||
|   - jellyfin.servicemonitor.yaml |  | ||||||
|  |  | ||||||
| images: |  | ||||||
|   - name: jellyfin/jellyfin |  | ||||||
|     newName: jellyfin/jellyfin |  | ||||||
|     newTag: 10.8.13 |  | ||||||
|   - name: ghcr.io/jellyfin/jellyfin-vue |  | ||||||
|     newName: ghcr.io/jellyfin/jellyfin-vue |  | ||||||
|     newTag: stable-rc.0.3.1 |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: Namespace |  | ||||||
| metadata: |  | ||||||
|   name: placeholder |  | ||||||
| @@ -1,58 +0,0 @@ | |||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolume |  | ||||||
| metadata: |  | ||||||
|   namespace: media |  | ||||||
|   name: jellyfin-config-nfs |  | ||||||
| spec: |  | ||||||
|   capacity: |  | ||||||
|     storage: "1Gi" |  | ||||||
|   accessModes: |  | ||||||
|     - ReadWriteOnce |  | ||||||
|   nfs: |  | ||||||
|     path: /export/kluster/jellyfin-config |  | ||||||
|     server: 192.168.1.157 |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolumeClaim |  | ||||||
| metadata: |  | ||||||
|   namespace: media |  | ||||||
|   name: jellyfin-config-nfs |  | ||||||
| spec: |  | ||||||
|   storageClassName: "" |  | ||||||
|   accessModes: |  | ||||||
|     - ReadWriteOnce |  | ||||||
|   resources: |  | ||||||
|     requests: |  | ||||||
|       storage: "1Gi" |  | ||||||
|   volumeName: jellyfin-config-nfs |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolume |  | ||||||
| metadata: |  | ||||||
|   namespace: media |  | ||||||
|   name: jellyfin-data-nfs |  | ||||||
| spec: |  | ||||||
|   capacity: |  | ||||||
|     storage: "1Ti" |  | ||||||
|   accessModes: |  | ||||||
|     - ReadWriteOnce |  | ||||||
|   nfs: |  | ||||||
|     path: /export/jellyfin-media |  | ||||||
|     server: 192.168.1.157 |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolumeClaim |  | ||||||
| metadata: |  | ||||||
|   namespace: media |  | ||||||
|   name: jellyfin-data-nfs |  | ||||||
| spec: |  | ||||||
|   storageClassName: "" |  | ||||||
|   accessModes: |  | ||||||
|     - ReadWriteOnce |  | ||||||
|   resources: |  | ||||||
|     requests: |  | ||||||
|       storage: "1Ti" |  | ||||||
|   volumeName: jellyfin-data-nfs |  | ||||||
| @@ -1,45 +0,0 @@ | |||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: jellyfin-server |  | ||||||
| spec: |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: jellyfin-server |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: jellyfin-server |  | ||||||
|     spec: |  | ||||||
|       containers: |  | ||||||
|       - name: jellyfin-server |  | ||||||
|         image: jellyfin/jellyfin |  | ||||||
|         resources: |  | ||||||
|           limits: |  | ||||||
|             memory: "2Gi" |  | ||||||
|             cpu: "2" |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 8096 |  | ||||||
|           name: jellyfin |  | ||||||
|         env: |  | ||||||
|         - name: TZ |  | ||||||
|           value: Europe/Berlin |  | ||||||
|         volumeMounts: |  | ||||||
|         - name: jellyfin-config |  | ||||||
|           mountPath: /config |  | ||||||
|         - name: jellyfin-data |  | ||||||
|           mountPath: /media |  | ||||||
|         livenessProbe: |  | ||||||
|           httpGet: |  | ||||||
|             path: /health |  | ||||||
|             port: 8096 |  | ||||||
|           initialDelaySeconds: 100 |  | ||||||
|           periodSeconds: 15 |  | ||||||
|       volumes: |  | ||||||
|       - name: jellyfin-config |  | ||||||
|         persistentVolumeClaim: |  | ||||||
|           claimName: jellyfin-config-nfs |  | ||||||
|       - name: jellyfin-data |  | ||||||
|         persistentVolumeClaim: |  | ||||||
|           claimName: jellyfin-data-nfs |  | ||||||
|  |  | ||||||
| @@ -1,14 +0,0 @@ | |||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: jellyfin-server |  | ||||||
|   labels: |  | ||||||
|     app: jellyfin-server-service |  | ||||||
| spec: |  | ||||||
|   selector: |  | ||||||
|     app: jellyfin-server |  | ||||||
|   ports: |  | ||||||
|     - protocol: TCP |  | ||||||
|       port: 8096 |  | ||||||
|       targetPort: 8096 |  | ||||||
| @@ -1,27 +0,0 @@ | |||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: jellyfin-web |  | ||||||
| spec: |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: jellyfin-web |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: jellyfin-web |  | ||||||
|     spec: |  | ||||||
|       containers: |  | ||||||
|       - name: jellyfin-web |  | ||||||
|         image: ghcr.io/jellyfin/jellyfin-vue |  | ||||||
|         resources: |  | ||||||
|           limits: |  | ||||||
|             memory: "128Mi" |  | ||||||
|             cpu: "30m" |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 80 |  | ||||||
|         env: |  | ||||||
|         - name: TZ |  | ||||||
|           value: Europe/Berlin |  | ||||||
|         - name: DEFAULT_SERVERS |  | ||||||
|           value: "https://media-backend.kluster.moll.re" |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: jellyfin-web |  | ||||||
| spec: |  | ||||||
|   selector: |  | ||||||
|     app: jellyfin-web |  | ||||||
|   ports: |  | ||||||
|     - protocol: TCP |  | ||||||
|       port: 80 |  | ||||||
|       targetPort: 80 |  | ||||||
							
								
								
									
										20
									
								
								infrastructure/nfs-provisioner/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								infrastructure/nfs-provisioner/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | ## How to use | ||||||
|  | This deployment exposes a `StorageClass` named `nfs-client` that can be used to create `PersistentVolumeClaim` resources: | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | kind: PersistentVolumeClaim | ||||||
|  | apiVersion: v1 | ||||||
|  | metadata: | ||||||
|  |   name: test-claim | ||||||
|  |   namespace: test-namespace | ||||||
|  | spec: | ||||||
|  |   storageClassName: nfs-client | ||||||
|  |   accessModes: | ||||||
|  |     - ReadWriteMany | ||||||
|  |   resources: | ||||||
|  |     requests: | ||||||
|  |       storage: 1Mi | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | This will create a new folder in the NFS server under `<base-path>/test-namespace-test-claim` and mount it. | ||||||
| @@ -3,4 +3,5 @@ kind: StorageClass | |||||||
| metadata: | metadata: | ||||||
|   name: nfs-client |   name: nfs-client | ||||||
| parameters: | parameters: | ||||||
|   onDelete: "retain" |   archiveOnDelete: "true" | ||||||
|  |   pathPattern: "${.PVC.namespace}-${.PVC.name}" | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| ``` |  | ||||||
| kind: PersistentVolumeClaim |  | ||||||
| apiVersion: v1 |  | ||||||
| metadata: |  | ||||||
|   name: test-claim |  | ||||||
| spec: |  | ||||||
|   storageClassName: nfs-client |  | ||||||
|   accessModes: |  | ||||||
|     - ReadWriteMany |  | ||||||
|   resources: |  | ||||||
|     requests: |  | ||||||
|       storage: 1Mi |  | ||||||
| ``` |  | ||||||
| @@ -11,7 +11,7 @@ resources: | |||||||
|  |  | ||||||
|   # infrastructure apps |   # infrastructure apps | ||||||
|   - projects.yaml |   - projects.yaml | ||||||
|   - nfs/ |   - nfs-provisioner/ | ||||||
|   - backup/ |   - backup/ | ||||||
|   - pg-ha/ |   - pg-ha/ | ||||||
|   - gitea/ |   - gitea/ | ||||||
| @@ -19,21 +19,21 @@ resources: | |||||||
|   - metallb-system/ |   - metallb-system/ | ||||||
|   - traefik/ |   - traefik/ | ||||||
|   - external-dns/ |   - external-dns/ | ||||||
|  |   - external-services/ | ||||||
|  |  | ||||||
|   # simple apps |   # simple apps | ||||||
|   - monitoring/ |  | ||||||
|   - whoami/ |  | ||||||
|   - journal/ |  | ||||||
|   - immich/ |  | ||||||
|   - homeassistant/ |  | ||||||
|   - ntfy/ |  | ||||||
|   - rss/ |  | ||||||
|   - adguard/ |   - adguard/ | ||||||
|   - media/ |  | ||||||
|   - nextcloud/ |  | ||||||
|   - syncthing/ |  | ||||||
|   - ocis/  |  | ||||||
|   - finance/ |  | ||||||
|   - eth-physics/ |   - eth-physics/ | ||||||
|  |   - finance/ | ||||||
|  |   - homeassistant/ | ||||||
|  |   - immich/ | ||||||
|  |   - journal/ | ||||||
|  |   - media/ | ||||||
|  |   - monitoring/ | ||||||
|  |   - nextcloud/ | ||||||
|  |   - ntfy/ | ||||||
|  |   - ocis/ | ||||||
|   - recipes/ |   - recipes/ | ||||||
|  |   - rss/ | ||||||
|  |   - syncthing/ | ||||||
|  |   - whoami/ | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ spec: | |||||||
|   source: |   source: | ||||||
|     repoURL: git@github.com:moll-re/bootstrap-k3s-infra.git |     repoURL: git@github.com:moll-re/bootstrap-k3s-infra.git | ||||||
|     targetRevision: main |     targetRevision: main | ||||||
|     path: infrastructure/nfs/ |     path: infrastructure/nfs-provisioner/ | ||||||
|   destination: |   destination: | ||||||
|     server: https://kubernetes.default.svc |     server: https://kubernetes.default.svc | ||||||
|     namespace: nfs-provisioner |     namespace: nfs-provisioner | ||||||
		Reference in New Issue
	
	Block a user