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: | ||||
|   name: nfs-client | ||||
| 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 | ||||
|   - projects.yaml | ||||
|   - nfs/ | ||||
|   - nfs-provisioner/ | ||||
|   - backup/ | ||||
|   - pg-ha/ | ||||
|   - gitea/ | ||||
| @@ -19,21 +19,21 @@ resources: | ||||
|   - metallb-system/ | ||||
|   - traefik/ | ||||
|   - external-dns/ | ||||
|  | ||||
|   - external-services/ | ||||
|  | ||||
|   # simple apps | ||||
|   - monitoring/ | ||||
|   - whoami/ | ||||
|   - journal/ | ||||
|   - immich/ | ||||
|   - homeassistant/ | ||||
|   - ntfy/ | ||||
|   - rss/ | ||||
|   - adguard/ | ||||
|   - media/ | ||||
|   - nextcloud/ | ||||
|   - syncthing/ | ||||
|   - ocis/  | ||||
|   - finance/ | ||||
|   - eth-physics/ | ||||
|   - finance/ | ||||
|   - homeassistant/ | ||||
|   - immich/ | ||||
|   - journal/ | ||||
|   - media/ | ||||
|   - monitoring/ | ||||
|   - nextcloud/ | ||||
|   - ntfy/ | ||||
|   - ocis/ | ||||
|   - recipes/ | ||||
|   - rss/ | ||||
|   - syncthing/ | ||||
|   - whoami/ | ||||
|   | ||||
| @@ -8,7 +8,7 @@ spec: | ||||
|   source: | ||||
|     repoURL: git@github.com:moll-re/bootstrap-k3s-infra.git | ||||
|     targetRevision: main | ||||
|     path: infrastructure/nfs/ | ||||
|     path: infrastructure/nfs-provisioner/ | ||||
|   destination: | ||||
|     server: https://kubernetes.default.svc | ||||
|     namespace: nfs-provisioner | ||||
		Reference in New Issue
	
	Block a user