From 6ceb3816fbec8281fc8b64ab4c942a423f196d54 Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Sat, 23 Mar 2024 11:45:11 +0100 Subject: [PATCH] cleanup with regards to upcoming migration --- apps/media/ingress.yaml | 63 ------------------- apps/media/jellyfin.servicemonitor.yaml | 17 ----- apps/media/kustomization.yaml | 21 ------- apps/media/namespace.yaml | 4 -- apps/media/pvc.yaml | 58 ----------------- apps/media/server.deployment.yaml | 45 ------------- apps/media/server.service.yaml | 14 ----- apps/media/web.deployment.yaml | 27 -------- apps/media/web.service.yaml | 12 ---- infrastructure/nfs-provisioner/README.md | 20 ++++++ .../kustomization.yaml | 0 .../{nfs => nfs-provisioner}/namespace.yaml | 0 .../{nfs => nfs-provisioner}/nfs_values.yaml | 0 .../storageclass_values.yaml | 3 +- infrastructure/nfs/USAGE.md | 13 ---- kluster-deployments/kustomization.yaml | 28 ++++----- .../{nfs => nfs-provisioner}/application.yaml | 2 +- .../kustomization.yaml | 0 18 files changed, 37 insertions(+), 290 deletions(-) delete mode 100644 apps/media/ingress.yaml delete mode 100644 apps/media/jellyfin.servicemonitor.yaml delete mode 100644 apps/media/kustomization.yaml delete mode 100644 apps/media/namespace.yaml delete mode 100644 apps/media/pvc.yaml delete mode 100644 apps/media/server.deployment.yaml delete mode 100644 apps/media/server.service.yaml delete mode 100644 apps/media/web.deployment.yaml delete mode 100644 apps/media/web.service.yaml create mode 100644 infrastructure/nfs-provisioner/README.md rename infrastructure/{nfs => nfs-provisioner}/kustomization.yaml (100%) rename infrastructure/{nfs => nfs-provisioner}/namespace.yaml (100%) rename infrastructure/{nfs => nfs-provisioner}/nfs_values.yaml (100%) rename infrastructure/{nfs => nfs-provisioner}/storageclass_values.yaml (54%) delete mode 100644 infrastructure/nfs/USAGE.md rename kluster-deployments/{nfs => nfs-provisioner}/application.yaml (90%) rename kluster-deployments/{nfs => nfs-provisioner}/kustomization.yaml (100%) diff --git a/apps/media/ingress.yaml b/apps/media/ingress.yaml deleted file mode 100644 index 8243c43..0000000 --- a/apps/media/ingress.yaml +++ /dev/null @@ -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 diff --git a/apps/media/jellyfin.servicemonitor.yaml b/apps/media/jellyfin.servicemonitor.yaml deleted file mode 100644 index d71f230..0000000 --- a/apps/media/jellyfin.servicemonitor.yaml +++ /dev/null @@ -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 diff --git a/apps/media/kustomization.yaml b/apps/media/kustomization.yaml deleted file mode 100644 index b8fe589..0000000 --- a/apps/media/kustomization.yaml +++ /dev/null @@ -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 diff --git a/apps/media/namespace.yaml b/apps/media/namespace.yaml deleted file mode 100644 index 3900a62..0000000 --- a/apps/media/namespace.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: placeholder \ No newline at end of file diff --git a/apps/media/pvc.yaml b/apps/media/pvc.yaml deleted file mode 100644 index c78e585..0000000 --- a/apps/media/pvc.yaml +++ /dev/null @@ -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 diff --git a/apps/media/server.deployment.yaml b/apps/media/server.deployment.yaml deleted file mode 100644 index 0168fa7..0000000 --- a/apps/media/server.deployment.yaml +++ /dev/null @@ -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 - diff --git a/apps/media/server.service.yaml b/apps/media/server.service.yaml deleted file mode 100644 index 23a942c..0000000 --- a/apps/media/server.service.yaml +++ /dev/null @@ -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 diff --git a/apps/media/web.deployment.yaml b/apps/media/web.deployment.yaml deleted file mode 100644 index 42ea177..0000000 --- a/apps/media/web.deployment.yaml +++ /dev/null @@ -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" diff --git a/apps/media/web.service.yaml b/apps/media/web.service.yaml deleted file mode 100644 index e15c8ca..0000000 --- a/apps/media/web.service.yaml +++ /dev/null @@ -1,12 +0,0 @@ - -apiVersion: v1 -kind: Service -metadata: - name: jellyfin-web -spec: - selector: - app: jellyfin-web - ports: - - protocol: TCP - port: 80 - targetPort: 80 diff --git a/infrastructure/nfs-provisioner/README.md b/infrastructure/nfs-provisioner/README.md new file mode 100644 index 0000000..a1e40d2 --- /dev/null +++ b/infrastructure/nfs-provisioner/README.md @@ -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 `/test-namespace-test-claim` and mount it. diff --git a/infrastructure/nfs/kustomization.yaml b/infrastructure/nfs-provisioner/kustomization.yaml similarity index 100% rename from infrastructure/nfs/kustomization.yaml rename to infrastructure/nfs-provisioner/kustomization.yaml diff --git a/infrastructure/nfs/namespace.yaml b/infrastructure/nfs-provisioner/namespace.yaml similarity index 100% rename from infrastructure/nfs/namespace.yaml rename to infrastructure/nfs-provisioner/namespace.yaml diff --git a/infrastructure/nfs/nfs_values.yaml b/infrastructure/nfs-provisioner/nfs_values.yaml similarity index 100% rename from infrastructure/nfs/nfs_values.yaml rename to infrastructure/nfs-provisioner/nfs_values.yaml diff --git a/infrastructure/nfs/storageclass_values.yaml b/infrastructure/nfs-provisioner/storageclass_values.yaml similarity index 54% rename from infrastructure/nfs/storageclass_values.yaml rename to infrastructure/nfs-provisioner/storageclass_values.yaml index 50ea8bc..1f14f81 100644 --- a/infrastructure/nfs/storageclass_values.yaml +++ b/infrastructure/nfs-provisioner/storageclass_values.yaml @@ -3,4 +3,5 @@ kind: StorageClass metadata: name: nfs-client parameters: - onDelete: "retain" + archiveOnDelete: "true" + pathPattern: "${.PVC.namespace}-${.PVC.name}" diff --git a/infrastructure/nfs/USAGE.md b/infrastructure/nfs/USAGE.md deleted file mode 100644 index 0a7eb4a..0000000 --- a/infrastructure/nfs/USAGE.md +++ /dev/null @@ -1,13 +0,0 @@ -``` -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: test-claim -spec: - storageClassName: nfs-client - accessModes: - - ReadWriteMany - resources: - requests: - storage: 1Mi -``` \ No newline at end of file diff --git a/kluster-deployments/kustomization.yaml b/kluster-deployments/kustomization.yaml index d640d01..2618610 100644 --- a/kluster-deployments/kustomization.yaml +++ b/kluster-deployments/kustomization.yaml @@ -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/ diff --git a/kluster-deployments/nfs/application.yaml b/kluster-deployments/nfs-provisioner/application.yaml similarity index 90% rename from kluster-deployments/nfs/application.yaml rename to kluster-deployments/nfs-provisioner/application.yaml index 6ff9e4f..9cef01d 100644 --- a/kluster-deployments/nfs/application.yaml +++ b/kluster-deployments/nfs-provisioner/application.yaml @@ -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 diff --git a/kluster-deployments/nfs/kustomization.yaml b/kluster-deployments/nfs-provisioner/kustomization.yaml similarity index 100% rename from kluster-deployments/nfs/kustomization.yaml rename to kluster-deployments/nfs-provisioner/kustomization.yaml