diff --git a/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml b/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml index 37d692c20..97ec8b77e 100644 --- a/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml +++ b/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml @@ -147,7 +147,6 @@ data: sonarr-4k IN CNAME traefik-cl01tl sonarr-anime IN CNAME traefik-cl01tl stalwart IN CNAME traefik-cl01tl - tautulli IN CNAME traefik-cl01tl tdarr IN CNAME traefik-cl01tl tubearchivist IN CNAME traefik-cl01tl vault IN CNAME traefik-cl01tl diff --git a/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml b/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml index b2061c949..429fadb51 100644 --- a/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml +++ b/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml @@ -22,7 +22,7 @@ spec: template: metadata: annotations: - checksum/configMaps: 52a955ba0d9a55b4c6ea643629fbbf47da7ef8ad950c24eb1282a48cdbeedfb7 + checksum/configMaps: d6cc78ced259fae8b8136c7ce8d7d5323cce9faf79378e8ecc27b52f9fc54be0 labels: app.kubernetes.io/controller: main app.kubernetes.io/instance: blocky diff --git a/clusters/cl01tl/manifests/gatus/ConfigMap-gatus.yaml b/clusters/cl01tl/manifests/gatus/ConfigMap-gatus.yaml index d0d896092..94fd33bdf 100644 --- a/clusters/cl01tl/manifests/gatus/ConfigMap-gatus.yaml +++ b/clusters/cl01tl/manifests/gatus/ConfigMap-gatus.yaml @@ -303,15 +303,6 @@ data: interval: 30s name: alertmanager url: https://alertmanager.alexlebens.net - - alerts: - - type: ntfy - conditions: - - '[STATUS] == 200' - - '[CERTIFICATE_EXPIRATION] > 240h' - group: core - interval: 30s - name: tautulli - url: https://tautulli.alexlebens.net - alerts: - type: ntfy conditions: diff --git a/clusters/cl01tl/manifests/gatus/Deployment-gatus.yaml b/clusters/cl01tl/manifests/gatus/Deployment-gatus.yaml index 4217b6b12..0529fc3ce 100644 --- a/clusters/cl01tl/manifests/gatus/Deployment-gatus.yaml +++ b/clusters/cl01tl/manifests/gatus/Deployment-gatus.yaml @@ -26,7 +26,7 @@ spec: app.kubernetes.io/name: gatus app.kubernetes.io/instance: gatus annotations: - checksum/config: d73530efb371feb891b322499224692bd8b49031ff2b7837fa3d89df58ca5224 + checksum/config: 7e7393ccf42ec02e41c1415c12189d238392f76863a5e1afedf73bbe2ae81184 spec: serviceAccountName: default automountServiceAccountToken: false diff --git a/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml b/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml index 193b9c490..1df3ad050 100644 --- a/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml +++ b/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml @@ -327,12 +327,6 @@ data: query: prometheus_tsdb_storage_blocks_bytes format: type: bytes - - Tautulli: - icon: sh-tautulli.webp - description: Plex Monitoring - href: https://tautulli.alexlebens.net - siteMonitor: http://tautulli.tautulli:80 - statusStyle: dot - Jellystat: icon: sh-jellystat.webp description: Jellyfin Monitoring diff --git a/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml b/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml index 9c27519ed..1fbc07575 100644 --- a/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml +++ b/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml @@ -24,7 +24,7 @@ spec: template: metadata: annotations: - checksum/configMaps: 21f0cb7dde907f06b1b02c655d2bf1aaaa7e808dbf830a772ceb8f80ec284c2b + checksum/configMaps: 51ff1a97029803ae7967aa1bd13cfbacbe6f24e44c16514203c7993a69b46704 checksum/secrets: d3ba83f111cd32f92c909268c55ad8bbd4f9e299b74b35b33c1a011180d8b378 labels: app.kubernetes.io/controller: main diff --git a/clusters/cl01tl/manifests/tautulli/ConfigMap-tautulli.yaml b/clusters/cl01tl/manifests/tautulli/ConfigMap-tautulli.yaml deleted file mode 100644 index 241127e31..000000000 --- a/clusters/cl01tl/manifests/tautulli/ConfigMap-tautulli.yaml +++ /dev/null @@ -1,98 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: tautulli - labels: - app.kubernetes.io/instance: tautulli - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: tautulli - helm.sh/chart: tautulli-4.6.2 - namespace: tautulli -data: - select_tmdb_poster.py: | - #!/usr/bin/env python - # -*- coding: utf-8 -*- - - ''' - Description: Selects the default TMDB poster if no poster is selected - or the current poster is from Gracenote. - Author: /u/SwiftPanda16 - Requires: plexapi - Usage: - * Change the posters for an entire library: - python select_tmdb_poster.py --library "Movies" - - * Change the poster for a specific item: - python select_tmdb_poster.py --rating_key 1234 - - * By default locked posters are skipped. To update locked posters: - python select_tmdb_poster.py --library "Movies" --include_locked - - Tautulli script trigger: - * Notify on recently added - Tautulli script conditions: - * Filter which media to select the poster. Examples: - [ Media Type | is | movie ] - Tautulli script arguments: - * Recently Added: - --rating_key {rating_key} - ''' - - import argparse - import os - import plexapi.base - from plexapi.server import PlexServer - plexapi.base.USER_DONT_RELOAD_FOR_KEYS.add('fields') - - - # Environmental Variables - PLEX_URL = os.getenv('PLEX_URL') - PLEX_TOKEN = os.getenv('PLEX_TOKEN') - - - def select_tmdb_poster_library(library, include_locked=False): - for item in library.all(includeGuids=False): - # Only reload for fields - item.reload(**{k: 0 for k, v in item._INCLUDES.items()}) - select_tmdb_poster_item(item, include_locked=include_locked) - - - def select_tmdb_poster_item(item, include_locked=False): - if item.isLocked('thumb') and not include_locked: # PlexAPI 4.5.10 - print(f"Locked poster for {item.title}. Skipping.") - return - - posters = item.posters() - selected_poster = next((p for p in posters if p.selected), None) - - if selected_poster is None: - print(f"WARNING: No poster selected for {item.title}.") - else: - skipping = ' Skipping.' if selected_poster.provider != 'gracenote' else '' - print(f"Poster provider is '{selected_poster.provider}' for {item.title}.{skipping}") - - if posters and (selected_poster is None or selected_poster.provider == 'gracenote'): - # Fallback to first poster if no TMDB posters are available - tmdb_poster = next((p for p in posters if p.provider == 'tmdb'), posters[0]) - # Selecting the poster automatically locks it - tmdb_poster.select() - print(f"Selected {tmdb_poster.provider} poster for {item.title}.") - - - if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument('--rating_key', type=int) - parser.add_argument('--library') - parser.add_argument('--include_locked', action='store_true') - opts = parser.parse_args() - - plex = PlexServer(PLEX_URL, PLEX_TOKEN) - - if opts.rating_key: - item = plex.fetchItem(opts.rating_key) - select_tmdb_poster_item(item, opts.include_locked) - elif opts.library: - library = plex.library.section(opts.library) - select_tmdb_poster_library(library, opts.include_locked) - else: - print("No --rating_key or --library specified. Exiting.") diff --git a/clusters/cl01tl/manifests/tautulli/Deployment-tautulli.yaml b/clusters/cl01tl/manifests/tautulli/Deployment-tautulli.yaml deleted file mode 100644 index 6ae5c62f5..000000000 --- a/clusters/cl01tl/manifests/tautulli/Deployment-tautulli.yaml +++ /dev/null @@ -1,69 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: tautulli - labels: - app.kubernetes.io/controller: main - app.kubernetes.io/instance: tautulli - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: tautulli - helm.sh/chart: tautulli-4.6.2 - annotations: - reloader.stakater.com/auto: "true" - namespace: tautulli -spec: - revisionHistoryLimit: 3 - replicas: 1 - strategy: - type: Recreate - selector: - matchLabels: - app.kubernetes.io/controller: main - app.kubernetes.io/name: tautulli - app.kubernetes.io/instance: tautulli - template: - metadata: - annotations: - checksum/configMaps: 8f779aaa6f9bccc9e07f526b05d4f9d81e7e55a443819d526312ff297ac88ba5 - labels: - app.kubernetes.io/controller: main - app.kubernetes.io/instance: tautulli - app.kubernetes.io/name: tautulli - spec: - enableServiceLinks: false - serviceAccountName: default - automountServiceAccountToken: true - hostIPC: false - hostNetwork: false - hostPID: false - dnsPolicy: ClusterFirst - containers: - - env: - - name: PUID - value: "1001" - - name: GUID - value: "1001" - - name: TZ - value: US/Central - image: ghcr.io/tautulli/tautulli:v2.16.0 - imagePullPolicy: IfNotPresent - name: main - resources: - requests: - cpu: 10m - memory: 128Mi - volumeMounts: - - mountPath: /config - name: config - - mountPath: /config/scripts/select_tmdb_poster.py - mountPropagation: None - name: scripts - readOnly: true - subPath: select_tmdb_poster.py - volumes: - - name: config - persistentVolumeClaim: - claimName: tautulli-config - - configMap: - name: tautulli-scripts - name: scripts diff --git a/clusters/cl01tl/manifests/tautulli/ExternalSecret-tautulli-config-backup-secret-external.yaml b/clusters/cl01tl/manifests/tautulli/ExternalSecret-tautulli-config-backup-secret-external.yaml deleted file mode 100644 index 365306c98..000000000 --- a/clusters/cl01tl/manifests/tautulli/ExternalSecret-tautulli-config-backup-secret-external.yaml +++ /dev/null @@ -1,58 +0,0 @@ -apiVersion: external-secrets.io/v1 -kind: ExternalSecret -metadata: - name: tautulli-config-backup-secret-external - namespace: tautulli - labels: - helm.sh/chart: volsync-target-config-0.7.0 - app.kubernetes.io/instance: tautulli - app.kubernetes.io/part-of: tautulli - app.kubernetes.io/version: "0.7.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: tautulli-config-backup-secret-external -spec: - secretStoreRef: - kind: ClusterSecretStore - name: vault - target: - template: - mergePolicy: Merge - engineVersion: v2 - data: - RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/tautulli/tautulli-config" - data: - - secretKey: BUCKET_ENDPOINT - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /volsync/restic/digital-ocean - metadataPolicy: None - property: BUCKET_ENDPOINT - - secretKey: RESTIC_PASSWORD - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /volsync/restic/digital-ocean - metadataPolicy: None - property: RESTIC_PASSWORD - - secretKey: AWS_DEFAULT_REGION - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /digital-ocean/home-infra/volsync-backups - metadataPolicy: None - property: AWS_DEFAULT_REGION - - secretKey: AWS_ACCESS_KEY_ID - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /digital-ocean/home-infra/volsync-backups - metadataPolicy: None - property: AWS_ACCESS_KEY_ID - - secretKey: AWS_SECRET_ACCESS_KEY - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /digital-ocean/home-infra/volsync-backups - metadataPolicy: None - property: AWS_SECRET_ACCESS_KEY diff --git a/clusters/cl01tl/manifests/tautulli/ExternalSecret-tautulli-config-backup-secret-local.yaml b/clusters/cl01tl/manifests/tautulli/ExternalSecret-tautulli-config-backup-secret-local.yaml deleted file mode 100644 index 2be6431cd..000000000 --- a/clusters/cl01tl/manifests/tautulli/ExternalSecret-tautulli-config-backup-secret-local.yaml +++ /dev/null @@ -1,58 +0,0 @@ -apiVersion: external-secrets.io/v1 -kind: ExternalSecret -metadata: - name: tautulli-config-backup-secret-local - namespace: tautulli - labels: - helm.sh/chart: volsync-target-config-0.7.0 - app.kubernetes.io/instance: tautulli - app.kubernetes.io/part-of: tautulli - app.kubernetes.io/version: "0.7.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: tautulli-config-backup-secret-local -spec: - secretStoreRef: - kind: ClusterSecretStore - name: vault - target: - template: - mergePolicy: Merge - engineVersion: v2 - data: - RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/tautulli/tautulli-config" - data: - - secretKey: BUCKET_ENDPOINT - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /volsync/restic/garage-local - metadataPolicy: None - property: BUCKET_ENDPOINT - - secretKey: RESTIC_PASSWORD - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /volsync/restic/garage-local - metadataPolicy: None - property: RESTIC_PASSWORD - - secretKey: AWS_DEFAULT_REGION - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /garage/home-infra/volsync-backups - metadataPolicy: None - property: ACCESS_REGION - - secretKey: AWS_ACCESS_KEY_ID - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /garage/home-infra/volsync-backups - metadataPolicy: None - property: ACCESS_KEY_ID - - secretKey: AWS_SECRET_ACCESS_KEY - remoteRef: - conversionStrategy: Default - decodingStrategy: None - key: /garage/home-infra/volsync-backups - metadataPolicy: None - property: ACCESS_SECRET_KEY diff --git a/clusters/cl01tl/manifests/tautulli/HTTPRoute-tautulli.yaml b/clusters/cl01tl/manifests/tautulli/HTTPRoute-tautulli.yaml deleted file mode 100644 index 4907ebd6c..000000000 --- a/clusters/cl01tl/manifests/tautulli/HTTPRoute-tautulli.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: gateway.networking.k8s.io/v1 -kind: HTTPRoute -metadata: - name: tautulli - labels: - app.kubernetes.io/instance: tautulli - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: tautulli - helm.sh/chart: tautulli-4.6.2 - namespace: tautulli -spec: - parentRefs: - - group: gateway.networking.k8s.io - kind: Gateway - name: traefik-gateway - namespace: traefik - hostnames: - - "tautulli.alexlebens.net" - rules: - - backendRefs: - - group: "" - kind: Service - name: tautulli - namespace: tautulli - port: 80 - weight: 100 - matches: - - path: - type: PathPrefix - value: / diff --git a/clusters/cl01tl/manifests/tautulli/PersistentVolumeClaim-tautulli-config.yaml b/clusters/cl01tl/manifests/tautulli/PersistentVolumeClaim-tautulli-config.yaml deleted file mode 100644 index f668d8d15..000000000 --- a/clusters/cl01tl/manifests/tautulli/PersistentVolumeClaim-tautulli-config.yaml +++ /dev/null @@ -1,19 +0,0 @@ -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: tautulli-config - labels: - app.kubernetes.io/instance: tautulli - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: tautulli - helm.sh/chart: tautulli-4.6.2 - annotations: - helm.sh/resource-policy: keep - namespace: tautulli -spec: - accessModes: - - "ReadWriteOnce" - resources: - requests: - storage: "5Gi" - storageClassName: "ceph-block" diff --git a/clusters/cl01tl/manifests/tautulli/ReplicationSource-tautulli-config-backup-source-external.yaml b/clusters/cl01tl/manifests/tautulli/ReplicationSource-tautulli-config-backup-source-external.yaml deleted file mode 100644 index 1e64ca8fb..000000000 --- a/clusters/cl01tl/manifests/tautulli/ReplicationSource-tautulli-config-backup-source-external.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: volsync.backube/v1alpha1 -kind: ReplicationSource -metadata: - name: tautulli-config-backup-source-external - namespace: tautulli - labels: - helm.sh/chart: volsync-target-config-0.7.0 - app.kubernetes.io/instance: tautulli - app.kubernetes.io/part-of: tautulli - app.kubernetes.io/version: "0.7.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: tautulli-config-backup -spec: - sourcePVC: tautulli-config - trigger: - schedule: 34 12 * * * - restic: - pruneIntervalDays: 7 - repository: tautulli-config-backup-secret-external - retain: - daily: 7 - hourly: 0 - monthly: 3 - weekly: 4 - yearly: 1 - copyMethod: Snapshot - storageClassName: ceph-block - volumeSnapshotClassName: ceph-blockpool-snapshot - cacheCapacity: 1Gi diff --git a/clusters/cl01tl/manifests/tautulli/ReplicationSource-tautulli-config-backup-source-local.yaml b/clusters/cl01tl/manifests/tautulli/ReplicationSource-tautulli-config-backup-source-local.yaml deleted file mode 100644 index d3fef7d5d..000000000 --- a/clusters/cl01tl/manifests/tautulli/ReplicationSource-tautulli-config-backup-source-local.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: volsync.backube/v1alpha1 -kind: ReplicationSource -metadata: - name: tautulli-config-backup-source-local - namespace: tautulli - labels: - helm.sh/chart: volsync-target-config-0.7.0 - app.kubernetes.io/instance: tautulli - app.kubernetes.io/part-of: tautulli - app.kubernetes.io/version: "0.7.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: tautulli-config-backup -spec: - sourcePVC: tautulli-config - trigger: - schedule: 34 11 * * * - restic: - pruneIntervalDays: 7 - repository: tautulli-config-backup-secret-local - retain: - daily: 7 - hourly: 0 - monthly: 3 - weekly: 4 - yearly: 1 - copyMethod: Snapshot - storageClassName: ceph-block - volumeSnapshotClassName: ceph-blockpool-snapshot - cacheCapacity: 1Gi diff --git a/clusters/cl01tl/manifests/tautulli/Service-tautulli.yaml b/clusters/cl01tl/manifests/tautulli/Service-tautulli.yaml deleted file mode 100644 index 40fc4972b..000000000 --- a/clusters/cl01tl/manifests/tautulli/Service-tautulli.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: tautulli - labels: - app.kubernetes.io/instance: tautulli - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/name: tautulli - app.kubernetes.io/service: tautulli - helm.sh/chart: tautulli-4.6.2 - namespace: tautulli -spec: - type: ClusterIP - ports: - - port: 80 - targetPort: 8181 - protocol: TCP - name: http - selector: - app.kubernetes.io/controller: main - app.kubernetes.io/instance: tautulli - app.kubernetes.io/name: tautulli