diff --git a/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml b/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml index b2bb7583b..7ec2c3a1e 100644 --- a/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml +++ b/clusters/cl01tl/manifests/blocky/ConfigMap-blocky.yaml @@ -1,6 +1,3 @@ ---- -# Source: blocky/charts/blocky/templates/common.yaml ---- apiVersion: v1 kind: ConfigMap metadata: @@ -146,6 +143,7 @@ data: radarr-anime IN CNAME traefik-cl01tl radarr-standup IN CNAME traefik-cl01tl searxng IN CNAME traefik-cl01tl + seerr IN CNAME traefik-cl01tl slskd IN CNAME traefik-cl01tl sonarr IN CNAME traefik-cl01tl sonarr-4k IN CNAME traefik-cl01tl diff --git a/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml b/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml index e8ff22615..e9c7a5fb3 100644 --- a/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml +++ b/clusters/cl01tl/manifests/blocky/Deployment-blocky.yaml @@ -1,5 +1,4 @@ --- -# Source: blocky/charts/blocky/templates/common.yaml apiVersion: apps/v1 kind: Deployment metadata: @@ -24,7 +23,7 @@ spec: template: metadata: annotations: - checksum/configMaps: 8a197f81daed9048c4565ecafc0c7ca534383a898e709a13c3441bc00bd12652 + checksum/configMaps: 0e833e54799f5b97aed8f29e4ab15bcaec039a2bbfb88bdb0b45ad1b97c1148e labels: app.kubernetes.io/controller: main app.kubernetes.io/instance: blocky diff --git a/clusters/cl01tl/manifests/blocky/RedisReplication-redis-replication-blocky.yaml b/clusters/cl01tl/manifests/blocky/RedisReplication-redis-replication-blocky.yaml index 8e97c209a..5e653634c 100644 --- a/clusters/cl01tl/manifests/blocky/RedisReplication-redis-replication-blocky.yaml +++ b/clusters/cl01tl/manifests/blocky/RedisReplication-redis-replication-blocky.yaml @@ -1,5 +1,4 @@ --- -# Source: blocky/templates/redis-replication.yaml apiVersion: redis.redis.opstreelabs.in/v1beta2 kind: RedisReplication metadata: diff --git a/clusters/cl01tl/manifests/blocky/Service-blocky-dns-external.yaml b/clusters/cl01tl/manifests/blocky/Service-blocky-dns-external.yaml index 2a7698e3d..39c96e8e9 100644 --- a/clusters/cl01tl/manifests/blocky/Service-blocky-dns-external.yaml +++ b/clusters/cl01tl/manifests/blocky/Service-blocky-dns-external.yaml @@ -1,5 +1,4 @@ --- -# Source: blocky/charts/blocky/templates/common.yaml apiVersion: v1 kind: Service metadata: diff --git a/clusters/cl01tl/manifests/blocky/Service-blocky-metrics.yaml b/clusters/cl01tl/manifests/blocky/Service-blocky-metrics.yaml index abe28b824..b6eadf533 100644 --- a/clusters/cl01tl/manifests/blocky/Service-blocky-metrics.yaml +++ b/clusters/cl01tl/manifests/blocky/Service-blocky-metrics.yaml @@ -1,5 +1,4 @@ --- -# Source: blocky/charts/blocky/templates/common.yaml apiVersion: v1 kind: Service metadata: diff --git a/clusters/cl01tl/manifests/blocky/ServiceMonitor-blocky.yaml b/clusters/cl01tl/manifests/blocky/ServiceMonitor-blocky.yaml index 4f11796ab..895071b91 100644 --- a/clusters/cl01tl/manifests/blocky/ServiceMonitor-blocky.yaml +++ b/clusters/cl01tl/manifests/blocky/ServiceMonitor-blocky.yaml @@ -1,5 +1,4 @@ --- -# Source: blocky/templates/service-monitor.yaml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: diff --git a/clusters/cl01tl/manifests/blocky/ServiceMonitor-redis-replication-blocky.yaml b/clusters/cl01tl/manifests/blocky/ServiceMonitor-redis-replication-blocky.yaml index e6e7f708a..f51cb33d3 100644 --- a/clusters/cl01tl/manifests/blocky/ServiceMonitor-redis-replication-blocky.yaml +++ b/clusters/cl01tl/manifests/blocky/ServiceMonitor-redis-replication-blocky.yaml @@ -1,5 +1,4 @@ --- -# Source: blocky/templates/service-monitor.yaml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: diff --git a/clusters/cl01tl/manifests/homepage/ClusterRole-homepage.yaml b/clusters/cl01tl/manifests/homepage/ClusterRole-homepage.yaml index 988310d62..017be691b 100644 --- a/clusters/cl01tl/manifests/homepage/ClusterRole-homepage.yaml +++ b/clusters/cl01tl/manifests/homepage/ClusterRole-homepage.yaml @@ -1,5 +1,4 @@ --- -# Source: homepage/templates/cluster-role.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: diff --git a/clusters/cl01tl/manifests/homepage/ClusterRoleBinding-homepage.yaml b/clusters/cl01tl/manifests/homepage/ClusterRoleBinding-homepage.yaml index b06e66454..ff9da7fe1 100644 --- a/clusters/cl01tl/manifests/homepage/ClusterRoleBinding-homepage.yaml +++ b/clusters/cl01tl/manifests/homepage/ClusterRoleBinding-homepage.yaml @@ -1,5 +1,4 @@ --- -# Source: homepage/templates/cluster-role-binding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: diff --git a/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml b/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml index 67dd19c8e..2079ec61e 100644 --- a/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml +++ b/clusters/cl01tl/manifests/homepage/ConfigMap-homepage.yaml @@ -1,5 +1,4 @@ --- -# Source: homepage/charts/homepage/templates/common.yaml apiVersion: v1 kind: ConfigMap metadata: @@ -78,10 +77,16 @@ data: statusStyle: dot - Media Requests: icon: sh-overseerr.webp - description: Overseer + description: Overseerr href: https://overseerr.alexlebens.net siteMonitor: http://overseerr.overseerr:80 statusStyle: dot + - Media Requests (New): + icon: sh-overseerr.webp + description: Seerr + href: https://seerr.alexlebens.net + siteMonitor: http://seerr.seerr:80 + statusStyle: dot - Media Tracking: icon: sh-yamtrack.webp description: Yamtrack diff --git a/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml b/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml index 9ea78669d..700ec8e42 100644 --- a/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml +++ b/clusters/cl01tl/manifests/homepage/Deployment-homepage.yaml @@ -1,5 +1,4 @@ --- -# Source: homepage/charts/homepage/templates/common.yaml apiVersion: apps/v1 kind: Deployment metadata: @@ -26,7 +25,7 @@ spec: template: metadata: annotations: - checksum/configMaps: 5b025903635dfc4abfcdb07fac7674f70d46a2d7bbeeeb1c7cd95e68e03f53ea + checksum/configMaps: 9b82fff1b67740d93f1ff952e435999385bd26027b66bee4c2854c2aea62db80 checksum/secrets: d3ba83f111cd32f92c909268c55ad8bbd4f9e299b74b35b33c1a011180d8b378 labels: app.kubernetes.io/controller: main diff --git a/clusters/cl01tl/manifests/homepage/ExternalSecret-homepage-keys-secret.yaml b/clusters/cl01tl/manifests/homepage/ExternalSecret-homepage-keys-secret.yaml index 76eea957d..3e66f61d3 100644 --- a/clusters/cl01tl/manifests/homepage/ExternalSecret-homepage-keys-secret.yaml +++ b/clusters/cl01tl/manifests/homepage/ExternalSecret-homepage-keys-secret.yaml @@ -1,5 +1,4 @@ --- -# Source: homepage/templates/external-secret.yaml apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: diff --git a/clusters/cl01tl/manifests/homepage/HTTPRoute-http-route-homepage.yaml b/clusters/cl01tl/manifests/homepage/HTTPRoute-http-route-homepage.yaml index 3d1d2dcde..24bc35e82 100644 --- a/clusters/cl01tl/manifests/homepage/HTTPRoute-http-route-homepage.yaml +++ b/clusters/cl01tl/manifests/homepage/HTTPRoute-http-route-homepage.yaml @@ -1,5 +1,4 @@ --- -# Source: homepage/templates/http-route.yaml apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: diff --git a/clusters/cl01tl/manifests/homepage/Secret-homepage-homepage-sa-token.yaml b/clusters/cl01tl/manifests/homepage/Secret-homepage-homepage-sa-token.yaml index 26e40ea95..5b3d2e2df 100644 --- a/clusters/cl01tl/manifests/homepage/Secret-homepage-homepage-sa-token.yaml +++ b/clusters/cl01tl/manifests/homepage/Secret-homepage-homepage-sa-token.yaml @@ -1,5 +1,4 @@ --- -# Source: homepage/charts/homepage/templates/common.yaml apiVersion: v1 kind: Secret type: kubernetes.io/service-account-token diff --git a/clusters/cl01tl/manifests/homepage/Service-garage-ui-ps10rp.yaml b/clusters/cl01tl/manifests/homepage/Service-garage-ui-ps10rp.yaml index 87a4ad8b6..5cbff2278 100644 --- a/clusters/cl01tl/manifests/homepage/Service-garage-ui-ps10rp.yaml +++ b/clusters/cl01tl/manifests/homepage/Service-garage-ui-ps10rp.yaml @@ -1,5 +1,4 @@ --- -# Source: homepage/templates/service.yaml apiVersion: v1 kind: Service metadata: diff --git a/clusters/cl01tl/manifests/homepage/Service-gitea-ps10rp.yaml b/clusters/cl01tl/manifests/homepage/Service-gitea-ps10rp.yaml index e1903d0a3..cdb9732bd 100644 --- a/clusters/cl01tl/manifests/homepage/Service-gitea-ps10rp.yaml +++ b/clusters/cl01tl/manifests/homepage/Service-gitea-ps10rp.yaml @@ -1,5 +1,4 @@ --- -# Source: homepage/templates/service.yaml apiVersion: v1 kind: Service metadata: diff --git a/clusters/cl01tl/manifests/homepage/Service-home-ps10rp.yaml b/clusters/cl01tl/manifests/homepage/Service-home-ps10rp.yaml index b65cc436b..19b941a7a 100644 --- a/clusters/cl01tl/manifests/homepage/Service-home-ps10rp.yaml +++ b/clusters/cl01tl/manifests/homepage/Service-home-ps10rp.yaml @@ -1,5 +1,4 @@ --- -# Source: homepage/templates/service.yaml apiVersion: v1 kind: Service metadata: diff --git a/clusters/cl01tl/manifests/homepage/Service-homepage.yaml b/clusters/cl01tl/manifests/homepage/Service-homepage.yaml index ecc70b720..2803deeea 100644 --- a/clusters/cl01tl/manifests/homepage/Service-homepage.yaml +++ b/clusters/cl01tl/manifests/homepage/Service-homepage.yaml @@ -1,5 +1,4 @@ --- -# Source: homepage/charts/homepage/templates/common.yaml apiVersion: v1 kind: Service metadata: diff --git a/clusters/cl01tl/manifests/homepage/ServiceAccount-homepage.yaml b/clusters/cl01tl/manifests/homepage/ServiceAccount-homepage.yaml index 2a7175765..e0c3406f8 100644 --- a/clusters/cl01tl/manifests/homepage/ServiceAccount-homepage.yaml +++ b/clusters/cl01tl/manifests/homepage/ServiceAccount-homepage.yaml @@ -1,6 +1,3 @@ ---- -# Source: homepage/charts/homepage/templates/common.yaml ---- apiVersion: v1 kind: ServiceAccount metadata: diff --git a/clusters/cl01tl/manifests/seerr/ExternalSecret-seerr-config-backup-secret.yaml b/clusters/cl01tl/manifests/seerr/ExternalSecret-seerr-config-backup-secret.yaml new file mode 100644 index 000000000..192795905 --- /dev/null +++ b/clusters/cl01tl/manifests/seerr/ExternalSecret-seerr-config-backup-secret.yaml @@ -0,0 +1,56 @@ +--- +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: seerr-config-backup-secret + namespace: seerr + labels: + app.kubernetes.io/name: seerr-config-backup-secret + app.kubernetes.io/instance: seerr + app.kubernetes.io/part-of: seerr +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + target: + template: + mergePolicy: Merge + engineVersion: v2 + data: + RESTIC_REPOSITORY: "{{ .BUCKET_ENDPOINT }}/seerr/seerr-config" + data: + - secretKey: BUCKET_ENDPOINT + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /cl01tl/volsync/restic/config + metadataPolicy: None + property: S3_BUCKET_ENDPOINT + - secretKey: RESTIC_PASSWORD + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /cl01tl/volsync/restic/config + metadataPolicy: None + property: RESTIC_PASSWORD + - secretKey: AWS_DEFAULT_REGION + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /cl01tl/volsync/restic/config + 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: access_key + - secretKey: AWS_SECRET_ACCESS_KEY + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /digital-ocean/home-infra/volsync-backups + metadataPolicy: None + property: secret_key diff --git a/clusters/cl01tl/manifests/seerr/HTTPRoute-http-route-seerr.yaml b/clusters/cl01tl/manifests/seerr/HTTPRoute-http-route-seerr.yaml new file mode 100644 index 000000000..15c131965 --- /dev/null +++ b/clusters/cl01tl/manifests/seerr/HTTPRoute-http-route-seerr.yaml @@ -0,0 +1,29 @@ +--- +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: http-route-seerr + namespace: seerr + labels: + app.kubernetes.io/name: http-route-seerr + app.kubernetes.io/instance: seerr + app.kubernetes.io/part-of: seerr +spec: + parentRefs: + - group: gateway.networking.k8s.io + kind: Gateway + name: traefik-gateway + namespace: traefik + hostnames: + - seerr.alexlebens.net + rules: + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - group: '' + kind: Service + name: seerr + port: 80 + weight: 100 diff --git a/clusters/cl01tl/manifests/seerr/PersistentVolumeClaim-seerr-seerr-chart-config.yaml b/clusters/cl01tl/manifests/seerr/PersistentVolumeClaim-seerr-seerr-chart-config.yaml new file mode 100644 index 000000000..26397bab8 --- /dev/null +++ b/clusters/cl01tl/manifests/seerr/PersistentVolumeClaim-seerr-seerr-chart-config.yaml @@ -0,0 +1,18 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: seerr-seerr-chart-config + labels: + helm.sh/chart: seerr-chart-3.0.0 + app.kubernetes.io/name: seerr-chart + app.kubernetes.io/instance: seerr + app.kubernetes.io/version: "3.0.0" + app.kubernetes.io/part-of: seerr-chart + app.kubernetes.io/managed-by: Helm +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "5Gi" diff --git a/clusters/cl01tl/manifests/seerr/Pod-seerr-seerr-chart-test-connection.yaml b/clusters/cl01tl/manifests/seerr/Pod-seerr-seerr-chart-test-connection.yaml new file mode 100644 index 000000000..7517449f2 --- /dev/null +++ b/clusters/cl01tl/manifests/seerr/Pod-seerr-seerr-chart-test-connection.yaml @@ -0,0 +1,21 @@ +--- +apiVersion: v1 +kind: Pod +metadata: + name: "seerr-seerr-chart-test-connection" + labels: + helm.sh/chart: seerr-chart-3.0.0 + app.kubernetes.io/name: seerr-chart + app.kubernetes.io/instance: seerr + app.kubernetes.io/version: "3.0.0" + app.kubernetes.io/part-of: seerr-chart + app.kubernetes.io/managed-by: Helm + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['seerr-seerr-chart:80'] + restartPolicy: Never diff --git a/clusters/cl01tl/manifests/seerr/ReplicationSource-seerr-config-backup-source.yaml b/clusters/cl01tl/manifests/seerr/ReplicationSource-seerr-config-backup-source.yaml new file mode 100644 index 000000000..c654f2e9d --- /dev/null +++ b/clusters/cl01tl/manifests/seerr/ReplicationSource-seerr-config-backup-source.yaml @@ -0,0 +1,27 @@ +--- +apiVersion: volsync.backube/v1alpha1 +kind: ReplicationSource +metadata: + name: seerr-config-backup-source + namespace: seerr + labels: + app.kubernetes.io/name: seerr-config-backup-source + app.kubernetes.io/instance: seerr + app.kubernetes.io/part-of: seerr +spec: + sourcePVC: seerr-config + trigger: + schedule: 0 4 * * * + restic: + pruneIntervalDays: 7 + repository: seerr-config-backup-secret + retain: + hourly: 1 + daily: 3 + weekly: 2 + monthly: 2 + yearly: 4 + copyMethod: Snapshot + storageClassName: ceph-block + volumeSnapshotClassName: ceph-blockpool-snapshot + cacheCapacity: 10Gi diff --git a/clusters/cl01tl/manifests/seerr/Service-seerr-seerr-chart.yaml b/clusters/cl01tl/manifests/seerr/Service-seerr-seerr-chart.yaml new file mode 100644 index 000000000..ab10953ea --- /dev/null +++ b/clusters/cl01tl/manifests/seerr/Service-seerr-seerr-chart.yaml @@ -0,0 +1,23 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: seerr-seerr-chart + labels: + helm.sh/chart: seerr-chart-3.0.0 + app.kubernetes.io/name: seerr-chart + app.kubernetes.io/instance: seerr + app.kubernetes.io/version: "3.0.0" + app.kubernetes.io/part-of: seerr-chart + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: seerr-chart + app.kubernetes.io/instance: seerr + ipFamilyPolicy: PreferDualStack diff --git a/clusters/cl01tl/manifests/seerr/ServiceAccount-seerr-seerr-chart.yaml b/clusters/cl01tl/manifests/seerr/ServiceAccount-seerr-seerr-chart.yaml new file mode 100644 index 000000000..2446ee889 --- /dev/null +++ b/clusters/cl01tl/manifests/seerr/ServiceAccount-seerr-seerr-chart.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: seerr-seerr-chart + labels: + helm.sh/chart: seerr-chart-3.0.0 + app.kubernetes.io/name: seerr-chart + app.kubernetes.io/instance: seerr + app.kubernetes.io/version: "3.0.0" + app.kubernetes.io/part-of: seerr-chart + app.kubernetes.io/managed-by: Helm +automountServiceAccountToken: true diff --git a/clusters/cl01tl/manifests/seerr/StatefulSet-seerr-seerr-chart.yaml b/clusters/cl01tl/manifests/seerr/StatefulSet-seerr-seerr-chart.yaml new file mode 100644 index 000000000..d3f5f67c5 --- /dev/null +++ b/clusters/cl01tl/manifests/seerr/StatefulSet-seerr-seerr-chart.yaml @@ -0,0 +1,68 @@ +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: seerr-seerr-chart + labels: + helm.sh/chart: seerr-chart-3.0.0 + app.kubernetes.io/name: seerr-chart + app.kubernetes.io/instance: seerr + app.kubernetes.io/version: "3.0.0" + app.kubernetes.io/part-of: seerr-chart + app.kubernetes.io/managed-by: Helm +spec: + serviceName: seerr-seerr-chart + selector: + matchLabels: + app.kubernetes.io/name: seerr-chart + app.kubernetes.io/instance: seerr + template: + metadata: + labels: + helm.sh/chart: seerr-chart-3.0.0 + app.kubernetes.io/name: seerr-chart + app.kubernetes.io/instance: seerr + app.kubernetes.io/version: "3.0.0" + app.kubernetes.io/part-of: seerr-chart + app.kubernetes.io/managed-by: Helm + spec: + serviceAccountName: seerr-seerr-chart + securityContext: + fsGroup: 1000 + fsGroupChangePolicy: OnRootMismatch + containers: + - name: seerr-chart + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + readOnlyRootFilesystem: false + runAsGroup: 1000 + runAsNonRoot: true + runAsUser: 1000 + seccompProfile: + type: RuntimeDefault + image: "ghcr.io/seerr-team/seerr:3.0.0" + imagePullPolicy: IfNotPresent + ports: + - name: http + containerPort: 5055 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + resources: {} + volumeMounts: + - name: config + mountPath: /app/config + volumes: + - name: config + persistentVolumeClaim: + claimName: seerr-seerr-chart-config