Compare commits
42 Commits
53938fdfae
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 2c5df6cd11 | |||
| 6e4fabdfa3 | |||
| 732286fab2 | |||
| a5800aa1cb | |||
| 7f00e1b235 | |||
| 2a2c9b7a08 | |||
| 31deca61f1 | |||
| 70b8b8e037 | |||
| d1d7fa5f62 | |||
| fbe4d7c72d | |||
| ff1c5e557e | |||
| 618aecb676 | |||
| 3bd5707b62 | |||
| 1c1fd7877b | |||
| f5a1490c44 | |||
| 9986bbb958 | |||
| e3eee74690 | |||
| dd460f87f3 | |||
| f71ca5b8c7 | |||
| 11fa03c933 | |||
| 5d86ac411e | |||
| 60b73c4c75 | |||
| 8933422e12 | |||
| 3eda30bae0 | |||
| eae4f059ba | |||
| 008845d653 | |||
| 0a9643ec37 | |||
| 175e6cc9d8 | |||
| bd5ace752c | |||
| c4faf51bea | |||
| 377f21fb35 | |||
| ccea0dc542 | |||
| 183c74dd9d | |||
| d0fe1c6845 | |||
| 5d7ad35f72 | |||
| 0710a053e0 | |||
| 9946df8c2d | |||
| 29701a90bd | |||
| b0ded3bcc1 | |||
| a817f93059 | |||
| 6d86a014c1 | |||
| c04c83ce03 |
@@ -157,13 +157,14 @@ blocky:
|
|||||||
sonarr IN CNAME traefik-cl01tl
|
sonarr IN CNAME traefik-cl01tl
|
||||||
sonarr-4k IN CNAME traefik-cl01tl
|
sonarr-4k IN CNAME traefik-cl01tl
|
||||||
sonarr-anime IN CNAME traefik-cl01tl
|
sonarr-anime IN CNAME traefik-cl01tl
|
||||||
|
spotisub IN CNAME traefik-cl01tl
|
||||||
stalwart IN CNAME traefik-cl01tl
|
stalwart IN CNAME traefik-cl01tl
|
||||||
tdarr IN CNAME traefik-cl01tl
|
tdarr IN CNAME traefik-cl01tl
|
||||||
tubearchivist IN CNAME traefik-cl01tl
|
tubearchivist IN CNAME traefik-cl01tl
|
||||||
vault IN CNAME traefik-cl01tl
|
vault IN CNAME traefik-cl01tl
|
||||||
whodb IN CNAME traefik-cl01tl
|
whodb IN CNAME traefik-cl01tl
|
||||||
yamtrack IN CNAME traefik-cl01tl
|
yamtrack IN CNAME traefik-cl01tl
|
||||||
yubal-playlist IN CNAME traefik-cl01tl
|
yubal IN CNAME traefik-cl01tl
|
||||||
|
|
||||||
blocking:
|
blocking:
|
||||||
denylists:
|
denylists:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: cilium
|
- name: cilium
|
||||||
repository: https://helm.cilium.io/
|
repository: https://helm.cilium.io/
|
||||||
version: 1.19.0
|
version: 1.18.6
|
||||||
digest: sha256:d2319facc93cab2a0a137588d8bd93315b52025b3ec86bc89edb0e236a74c814
|
digest: sha256:8ea328ac238524b5b423e6289f5e25d05ef64e6aa19cfd5de238f1d5dd533e9b
|
||||||
generated: "2026-02-05T20:56:22.821154013Z"
|
generated: "2026-02-05T12:00:20.15778-06:00"
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ maintainers:
|
|||||||
- name: alexlebens
|
- name: alexlebens
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: cilium
|
- name: cilium
|
||||||
version: 1.19.0
|
version: 1.18.6
|
||||||
repository: https://helm.cilium.io/
|
repository: https://helm.cilium.io/
|
||||||
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/cilium.png
|
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/cilium.png
|
||||||
# renovate: datasource=github-releases depName=cilium/cilium
|
# renovate: datasource=github-releases depName=cilium/cilium
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: external-secrets
|
- name: external-secrets
|
||||||
repository: https://charts.external-secrets.io
|
repository: https://charts.external-secrets.io
|
||||||
version: 1.3.2
|
version: 2.0.0
|
||||||
digest: sha256:7b7c6dee59f2ea630f0e7a1124aeeda52cdff23769136300384b28210e03945a
|
digest: sha256:3833a9f099d80f50e8a7c9874138b9eba42c18fe5f5f5dc605031f7c44bd3971
|
||||||
generated: "2026-02-03T21:41:32.061135319Z"
|
generated: "2026-02-06T15:40:39.917039721Z"
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ sources:
|
|||||||
- https://github.com/external-secrets/external-secrets/tree/main/deploy/charts/external-secrets
|
- https://github.com/external-secrets/external-secrets/tree/main/deploy/charts/external-secrets
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: external-secrets
|
- name: external-secrets
|
||||||
version: 1.3.2
|
version: 2.0.0
|
||||||
repository: https://charts.external-secrets.io
|
repository: https://charts.external-secrets.io
|
||||||
icon: https://avatars.githubusercontent.com/u/68335991?s=48&v=4
|
icon: https://avatars.githubusercontent.com/u/68335991?s=48&v=4
|
||||||
# renovate: datasource=github-releases depName=external-secrets/external-secrets
|
# renovate: datasource=github-releases depName=external-secrets/external-secrets
|
||||||
appVersion: v1.3.2
|
appVersion: v2.0.0
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ freshrss:
|
|||||||
- name: PUID
|
- name: PUID
|
||||||
value: "568"
|
value: "568"
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: US/Central
|
value: America/Chicago
|
||||||
- name: FRESHRSS_ENV
|
- name: FRESHRSS_ENV
|
||||||
value: production
|
value: production
|
||||||
- name: CRON_MIN
|
- name: CRON_MIN
|
||||||
|
|||||||
@@ -310,8 +310,11 @@ gatus:
|
|||||||
- name: lidarr
|
- name: lidarr
|
||||||
url: https://lidarr.alexlebens.net
|
url: https://lidarr.alexlebens.net
|
||||||
<<: *defaults
|
<<: *defaults
|
||||||
- name: yubal-playlist
|
- name: spotisub
|
||||||
url: https://yubal-playlist.alexlebens.net
|
url: https://spotisub.alexlebens.net
|
||||||
|
<<: *defaults
|
||||||
|
- name: yubal
|
||||||
|
url: https://yubal.alexlebens.net
|
||||||
<<: *defaults
|
<<: *defaults
|
||||||
- name: slskd
|
- name: slskd
|
||||||
url: https://slskd.alexlebens.net
|
url: https://slskd.alexlebens.net
|
||||||
|
|||||||
@@ -655,11 +655,17 @@ homepage:
|
|||||||
url: http://lidarr.lidarr:80
|
url: http://lidarr.lidarr:80
|
||||||
key: {{ "{{HOMEPAGE_VAR_LIDARR_KEY}}" }}
|
key: {{ "{{HOMEPAGE_VAR_LIDARR_KEY}}" }}
|
||||||
fields: ["wanted", "queued", "artists"]
|
fields: ["wanted", "queued", "artists"]
|
||||||
- Yubal Playlist:
|
- Yubal:
|
||||||
icon: sh-yubal.webp
|
icon: sh-yubal.webp
|
||||||
description: Replicate Youtube playlist
|
description: Replicate Youtube playlist
|
||||||
href: https://yubal-playlist.alexlebens.net
|
href: https://yubal.alexlebens.net
|
||||||
siteMonitor: http://yubal-playlist.yubal-playlist:80
|
siteMonitor: http://yubal.yubal:80
|
||||||
|
statusStyle: dot
|
||||||
|
- Spotisub:
|
||||||
|
icon: sh-spotify.webp
|
||||||
|
description: Replicate Spotify playlist
|
||||||
|
href: https://spotisub.alexlebens.net
|
||||||
|
siteMonitor: http://spotisub.spotisub:80
|
||||||
statusStyle: dot
|
statusStyle: dot
|
||||||
- slskd:
|
- slskd:
|
||||||
icon: sh-slskd.webp
|
icon: sh-slskd.webp
|
||||||
|
|||||||
@@ -47,3 +47,33 @@ spec:
|
|||||||
key: /authentik/oidc/komodo
|
key: /authentik/oidc/komodo
|
||||||
metadataPolicy: None
|
metadataPolicy: None
|
||||||
property: secret
|
property: secret
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: komodo-postgresql-17-fdb-cluster-ferret
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: komodo-postgresql-17-fdb-cluster-ferret
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
secretStoreRef:
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
name: vault
|
||||||
|
data:
|
||||||
|
- secretKey: uri
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /cl01tl/komodo/ferret
|
||||||
|
metadataPolicy: None
|
||||||
|
property: uri
|
||||||
|
- secretKey: password
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /cl01tl/komodo/ferret
|
||||||
|
metadataPolicy: None
|
||||||
|
property: password
|
||||||
|
|||||||
@@ -53,14 +53,11 @@ komodo:
|
|||||||
- name: PERIPHERY_SSL_ENABLED
|
- name: PERIPHERY_SSL_ENABLED
|
||||||
value: false
|
value: false
|
||||||
- name: DB_USERNAME
|
- name: DB_USERNAME
|
||||||
valueFrom:
|
value: ferret
|
||||||
secretKeyRef:
|
|
||||||
name: komodo-postgresql-17-fdb-cluster-app
|
|
||||||
key: user
|
|
||||||
- name: DB_PASSWORD
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: komodo-postgresql-17-fdb-cluster-app
|
name: komodo-postgresql-17-fdb-cluster-ferret
|
||||||
key: password
|
key: password
|
||||||
- name: KOMODO_DATABASE_URI
|
- name: KOMODO_DATABASE_URI
|
||||||
value: mongodb://$(DB_USERNAME):$(DB_PASSWORD)@komodo-ferretdb-2.komodo:27017/komodo
|
value: mongodb://$(DB_USERNAME):$(DB_PASSWORD)@komodo-ferretdb-2.komodo:27017/komodo
|
||||||
@@ -98,11 +95,15 @@ komodo:
|
|||||||
tag: 2.7.0
|
tag: 2.7.0
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: FERRETDB_POSTGRESQL_URL
|
- name: DB_USERNAME
|
||||||
|
value: ferret
|
||||||
|
- name: DB_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: komodo-postgresql-17-fdb-cluster-app
|
name: komodo-postgresql-17-fdb-cluster-ferret
|
||||||
key: uri
|
key: password
|
||||||
|
- name: FERRETDB_POSTGRESQL_URL
|
||||||
|
value: postgresql://$(DB_USERNAME):$(DB_PASSWORD)@komodo-postgresql-17-fdb-cluster-rw.komodo.svc.cluster.local:5432/ferretDB
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 10m
|
cpu: 10m
|
||||||
@@ -198,9 +199,9 @@ postgresql-17-fdb-cluster:
|
|||||||
database: ferretDB
|
database: ferretDB
|
||||||
owner: ferret
|
owner: ferret
|
||||||
postInitApplicationSQL:
|
postInitApplicationSQL:
|
||||||
- create extension if not exists pg_cron;
|
- CREATE EXTENSION IF NOT EXISTS pg_cron;
|
||||||
- create extension if not exists documentdb cascade;
|
- CREATE EXTENSION IF NOT EXISTS documentdb CASCADE;
|
||||||
- grant documentdb_admin_role to ferret;
|
- GRANT documentdb_admin_role TO ferret;
|
||||||
recovery:
|
recovery:
|
||||||
method: objectStore
|
method: objectStore
|
||||||
objectStore:
|
objectStore:
|
||||||
|
|||||||
@@ -31,4 +31,4 @@ dependencies:
|
|||||||
repository: oci://harbor.alexlebens.net/helm-charts
|
repository: oci://harbor.alexlebens.net/helm-charts
|
||||||
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/prometheus.png
|
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/prometheus.png
|
||||||
# renovate: datasource=github-releases depName=prometheus-operator/prometheus-operator
|
# renovate: datasource=github-releases depName=prometheus-operator/prometheus-operator
|
||||||
appVersion: v0.88.1
|
appVersion: v0.89.0
|
||||||
|
|||||||
@@ -4,6 +4,6 @@ dependencies:
|
|||||||
version: 6.52.0
|
version: 6.52.0
|
||||||
- name: alloy
|
- name: alloy
|
||||||
repository: https://grafana.github.io/helm-charts
|
repository: https://grafana.github.io/helm-charts
|
||||||
version: 1.5.3
|
version: 1.6.0
|
||||||
digest: sha256:00eded04cb4b364633fe922cef88cd07aa2508336f0f07890990d00c5d985c4e
|
digest: sha256:097f893b362b3ba6a1498d6df00dc57030c4d1321cf3301268adb9e30d5043ed
|
||||||
generated: "2026-02-05T20:44:56.218205891Z"
|
generated: "2026-02-05T22:01:50.699662067Z"
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ dependencies:
|
|||||||
version: 6.52.0
|
version: 6.52.0
|
||||||
repository: https://grafana.github.io/helm-charts
|
repository: https://grafana.github.io/helm-charts
|
||||||
- name: alloy
|
- name: alloy
|
||||||
version: 1.5.3
|
version: 1.6.0
|
||||||
repository: https://grafana.github.io/helm-charts
|
repository: https://grafana.github.io/helm-charts
|
||||||
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/loki.png
|
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/loki.png
|
||||||
# renovate: datasource=github-releases depName=grafana/loki
|
# renovate: datasource=github-releases depName=grafana/loki
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ navidrome:
|
|||||||
value: false
|
value: false
|
||||||
- name: ND_PROMETHEUS_ENABLED
|
- name: ND_PROMETHEUS_ENABLED
|
||||||
value: true
|
value: true
|
||||||
|
- name: ND_AUTOIMPORTPLAYLISTS
|
||||||
|
value: true
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
gpu.intel.com/i915: 1
|
gpu.intel.com/i915: 1
|
||||||
|
|||||||
@@ -31,4 +31,4 @@ dependencies:
|
|||||||
repository: oci://harbor.alexlebens.net/helm-charts
|
repository: oci://harbor.alexlebens.net/helm-charts
|
||||||
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/ollama.png
|
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/ollama.png
|
||||||
# renovate: datasource=github-releases depName=ollama/ollama
|
# renovate: datasource=github-releases depName=ollama/ollama
|
||||||
appVersion: 0.15.4
|
appVersion: 0.15.5
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ ollama:
|
|||||||
main:
|
main:
|
||||||
image:
|
image:
|
||||||
repository: ollama/ollama
|
repository: ollama/ollama
|
||||||
tag: 0.15.4
|
tag: 0.15.5
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: OLLAMA_KEEP_ALIVE
|
- name: OLLAMA_KEEP_ALIVE
|
||||||
@@ -58,7 +58,7 @@ ollama:
|
|||||||
main:
|
main:
|
||||||
image:
|
image:
|
||||||
repository: ollama/ollama
|
repository: ollama/ollama
|
||||||
tag: 0.15.4
|
tag: 0.15.5
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: OLLAMA_KEEP_ALIVE
|
- name: OLLAMA_KEEP_ALIVE
|
||||||
@@ -94,7 +94,7 @@ ollama:
|
|||||||
main:
|
main:
|
||||||
image:
|
image:
|
||||||
repository: ollama/ollama
|
repository: ollama/ollama
|
||||||
tag: 0.15.4
|
tag: 0.15.5
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: OLLAMA_KEEP_ALIVE
|
- name: OLLAMA_KEEP_ALIVE
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: prometheus-operator-crds
|
- name: prometheus-operator-crds
|
||||||
repository: oci://ghcr.io/prometheus-community/charts
|
repository: oci://ghcr.io/prometheus-community/charts
|
||||||
version: 26.0.0
|
version: 27.0.0
|
||||||
digest: sha256:fb73bc68bbf8ab128ff7fc641413ce3f004677d351038517ed68f5b39eeafb08
|
digest: sha256:ab76a45fb53268d4afdad507277c244af11c50344e50a24799182bbd9757258d
|
||||||
generated: "2026-01-09T20:11:58.398634666Z"
|
generated: "2026-02-06T14:05:22.069162277Z"
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ maintainers:
|
|||||||
- name: alexlebens
|
- name: alexlebens
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: prometheus-operator-crds
|
- name: prometheus-operator-crds
|
||||||
version: 26.0.0
|
version: 27.0.0
|
||||||
repository: oci://ghcr.io/prometheus-community/charts
|
repository: oci://ghcr.io/prometheus-community/charts
|
||||||
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/prometheus.png
|
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/prometheus.png
|
||||||
# renovate: datasource=github-releases depName=prometheus-operator/prometheus-operator
|
# renovate: datasource=github-releases depName=prometheus-operator/prometheus-operator
|
||||||
appVersion: v0.88.1
|
appVersion: v0.89.0
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: rook-ceph
|
- name: rook-ceph
|
||||||
repository: https://charts.rook.io/release
|
repository: https://charts.rook.io/release
|
||||||
version: v1.19.0
|
version: v1.19.1
|
||||||
- name: rook-ceph-cluster
|
- name: rook-ceph-cluster
|
||||||
repository: https://charts.rook.io/release
|
repository: https://charts.rook.io/release
|
||||||
version: v1.19.0
|
version: v1.19.1
|
||||||
- name: cloudflared
|
- name: cloudflared
|
||||||
repository: oci://harbor.alexlebens.net/helm-charts
|
repository: oci://harbor.alexlebens.net/helm-charts
|
||||||
version: 2.2.2
|
version: 2.2.2
|
||||||
digest: sha256:edc2a4064d509365e371418609b4068674429526c0198ca1793867124bb5dcdb
|
digest: sha256:fbb82644c29122639312301d76b2f2300f2a86eeb17159e9f368b2d46e4e6a7c
|
||||||
generated: "2026-02-03T03:44:06.685680039Z"
|
generated: "2026-02-06T03:39:57.898917443Z"
|
||||||
|
|||||||
@@ -16,10 +16,10 @@ maintainers:
|
|||||||
- name: alexlebens
|
- name: alexlebens
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: rook-ceph
|
- name: rook-ceph
|
||||||
version: v1.19.0
|
version: v1.19.1
|
||||||
repository: https://charts.rook.io/release
|
repository: https://charts.rook.io/release
|
||||||
- name: rook-ceph-cluster
|
- name: rook-ceph-cluster
|
||||||
version: v1.19.0
|
version: v1.19.1
|
||||||
repository: https://charts.rook.io/release
|
repository: https://charts.rook.io/release
|
||||||
- name: cloudflared
|
- name: cloudflared
|
||||||
alias: cloudflared-rgw
|
alias: cloudflared-rgw
|
||||||
@@ -27,4 +27,4 @@ dependencies:
|
|||||||
version: 2.2.2
|
version: 2.2.2
|
||||||
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/ceph.png
|
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/ceph.png
|
||||||
# renovate: datasource=github-releases depName=rook/rook
|
# renovate: datasource=github-releases depName=rook/rook
|
||||||
appVersion: v1.19.0
|
appVersion: v1.19.1
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ searxng:
|
|||||||
main:
|
main:
|
||||||
image:
|
image:
|
||||||
repository: searxng/searxng
|
repository: searxng/searxng
|
||||||
tag: latest@sha256:8d77102a0d2c615e88c5184868dc2c32cd361413dbc104abc301f54079fd40a2
|
tag: latest@sha256:670bd1076097640fc25221bf92a8af7d344503ce17ba3305abedf28e3634e807
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: SEARXNG_BASE_URL
|
- name: SEARXNG_BASE_URL
|
||||||
@@ -39,7 +39,7 @@ searxng:
|
|||||||
main:
|
main:
|
||||||
image:
|
image:
|
||||||
repository: searxng/searxng
|
repository: searxng/searxng
|
||||||
tag: latest@sha256:8d77102a0d2c615e88c5184868dc2c32cd361413dbc104abc301f54079fd40a2
|
tag: latest@sha256:670bd1076097640fc25221bf92a8af7d344503ce17ba3305abedf28e3634e807
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: SEARXNG_BASE_URL
|
- name: SEARXNG_BASE_URL
|
||||||
|
|||||||
@@ -23,4 +23,4 @@ dependencies:
|
|||||||
repository: oci://harbor.alexlebens.net/helm-charts
|
repository: oci://harbor.alexlebens.net/helm-charts
|
||||||
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/shelfmark.webp
|
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/shelfmark.webp
|
||||||
# renovate: datasource=github-releases depName=calibrain/shelfmark
|
# renovate: datasource=github-releases depName=calibrain/shelfmark
|
||||||
appVersion: v1.0.3
|
appVersion: v1.0.4
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ shelfmark:
|
|||||||
main:
|
main:
|
||||||
image:
|
image:
|
||||||
repository: ghcr.io/calibrain/shelfmark
|
repository: ghcr.io/calibrain/shelfmark
|
||||||
tag: v1.0.3
|
tag: v1.0.4
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: FLASK_PORT
|
- name: FLASK_PORT
|
||||||
|
|||||||
6
clusters/cl01tl/helm/spotisub/Chart.lock
Normal file
6
clusters/cl01tl/helm/spotisub/Chart.lock
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
dependencies:
|
||||||
|
- name: app-template
|
||||||
|
repository: https://bjw-s-labs.github.io/helm-charts/
|
||||||
|
version: 4.6.2
|
||||||
|
digest: sha256:3b63381e4968f95ce2d99fae620f3d1ae6af295b1bacc4ed0fbe9f1ccb0e9405
|
||||||
|
generated: "2026-02-06T11:04:57.311195-06:00"
|
||||||
21
clusters/cl01tl/helm/spotisub/Chart.yaml
Normal file
21
clusters/cl01tl/helm/spotisub/Chart.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
name: spotisub
|
||||||
|
version: 1.0.0
|
||||||
|
description: Spotisub
|
||||||
|
keywords:
|
||||||
|
- spotisub
|
||||||
|
- music
|
||||||
|
- spotify
|
||||||
|
home: https://wiki.alexlebens.dev/s/
|
||||||
|
sources:
|
||||||
|
- https://github.com/blastbeng/spotisub
|
||||||
|
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
|
||||||
|
maintainers:
|
||||||
|
- name: alexlebens
|
||||||
|
dependencies:
|
||||||
|
- name: app-template
|
||||||
|
alias: spotisub
|
||||||
|
repository: https://bjw-s-labs.github.io/helm-charts/
|
||||||
|
version: 4.6.2
|
||||||
|
# renovate: datasource=github-releases depName=blastbeng/spotisub
|
||||||
|
appVersion: v0.3.6
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
apiVersion: external-secrets.io/v1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: yubal-playlist-config-secret
|
name: spotisub-config-secret
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: yubal-playlist-config-secret
|
app.kubernetes.io/name: spotisub-config-secret
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
spec:
|
spec:
|
||||||
@@ -12,6 +12,41 @@ spec:
|
|||||||
kind: ClusterSecretStore
|
kind: ClusterSecretStore
|
||||||
name: vault
|
name: vault
|
||||||
data:
|
data:
|
||||||
|
- secretKey: spotify-client-id
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /spotify/andrew
|
||||||
|
metadataPolicy: None
|
||||||
|
property: client-id
|
||||||
|
- secretKey: spotify-client-secret
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /spotify/andrew
|
||||||
|
metadataPolicy: None
|
||||||
|
property: client-secret
|
||||||
|
- secretKey: spotify-redirect-uri
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /spotify/andrew
|
||||||
|
metadataPolicy: None
|
||||||
|
property: redirect-uri
|
||||||
|
- secretKey: subsonic-user
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /cl01tl/navidrome/andrew
|
||||||
|
metadataPolicy: None
|
||||||
|
property: user
|
||||||
|
- secretKey: subsonic-password
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /cl01tl/navidrome/andrew
|
||||||
|
metadataPolicy: None
|
||||||
|
property: password
|
||||||
- secretKey: lidarr-key
|
- secretKey: lidarr-key
|
||||||
remoteRef:
|
remoteRef:
|
||||||
conversionStrategy: Default
|
conversionStrategy: Default
|
||||||
@@ -19,52 +54,15 @@ spec:
|
|||||||
key: /cl01tl/lidarr2/key
|
key: /cl01tl/lidarr2/key
|
||||||
metadataPolicy: None
|
metadataPolicy: None
|
||||||
property: key
|
property: key
|
||||||
- secretKey: subsonic-user
|
|
||||||
remoteRef:
|
|
||||||
conversionStrategy: Default
|
|
||||||
decodingStrategy: None
|
|
||||||
key: /cl01tl/navidrome/admin
|
|
||||||
metadataPolicy: None
|
|
||||||
property: user
|
|
||||||
- secretKey: subsonic-password
|
|
||||||
remoteRef:
|
|
||||||
conversionStrategy: Default
|
|
||||||
decodingStrategy: None
|
|
||||||
key: /cl01tl/navidrome/admin
|
|
||||||
metadataPolicy: None
|
|
||||||
property: password
|
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: external-secrets.io/v1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: yubal-playlist-cookie
|
name: spotisub-wireguard-conf
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: yubal-playlist-cookie
|
app.kubernetes.io/name: spotisub-wireguard-conf
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
||||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
|
||||||
spec:
|
|
||||||
secretStoreRef:
|
|
||||||
kind: ClusterSecretStore
|
|
||||||
name: vault
|
|
||||||
data:
|
|
||||||
- secretKey: cookies.txt
|
|
||||||
remoteRef:
|
|
||||||
conversionStrategy: Default
|
|
||||||
decodingStrategy: None
|
|
||||||
key: /youtube/cookie
|
|
||||||
metadataPolicy: None
|
|
||||||
property: cookies
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: external-secrets.io/v1
|
|
||||||
kind: ExternalSecret
|
|
||||||
metadata:
|
|
||||||
name: yubal-playlist-wireguard-conf
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: yubal-playlist-wireguard-conf
|
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
spec:
|
spec:
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
||||||
metadata:
|
metadata:
|
||||||
name: yubal-playlist
|
name: spotisub
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: yubal-playlist
|
app.kubernetes.io/name: spotisub
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
pod-security.kubernetes.io/audit: privileged
|
pod-security.kubernetes.io/audit: privileged
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
metadata:
|
metadata:
|
||||||
name: yubal-playlist-nfs-storage
|
name: spotisub-nfs-storage
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: yubal-playlist-nfs-storage
|
app.kubernetes.io/name: spotisub-nfs-storage
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
spec:
|
spec:
|
||||||
volumeName: yubal-playlist-nfs-storage
|
volumeName: spotisub-nfs-storage
|
||||||
storageClassName: nfs-client
|
storageClassName: nfs-client
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteMany
|
- ReadWriteMany
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolume
|
kind: PersistentVolume
|
||||||
metadata:
|
metadata:
|
||||||
name: yubal-playlist-nfs-storage
|
name: spotisub-nfs-storage
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: yubal-playlist-nfs-storage
|
app.kubernetes.io/name: spotisub-nfs-storage
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
app.kubernetes.io/part-of: {{ .Release.Name }}
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
spec:
|
spec:
|
||||||
@@ -1,65 +1,84 @@
|
|||||||
yubal-playlist:
|
spotisub:
|
||||||
controllers:
|
controllers:
|
||||||
main:
|
main:
|
||||||
type: deployment
|
type: deployment
|
||||||
replicas: 1
|
replicas: 0
|
||||||
strategy: Recreate
|
strategy: Recreate
|
||||||
revisionHistoryLimit: 3
|
revisionHistoryLimit: 3
|
||||||
initContainers:
|
|
||||||
init-copy-cookie:
|
|
||||||
image:
|
|
||||||
repository: busybox
|
|
||||||
tag: 1.37.0
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
command:
|
|
||||||
- /bin/sh
|
|
||||||
- -ec
|
|
||||||
- |
|
|
||||||
if [ ! -f "/app/ytdlp/cookies.txt" ]; then
|
|
||||||
echo ">> Coping files ..."
|
|
||||||
ls /app/ytdlp
|
|
||||||
cp -fv /app/ytdlp/cookies-ro.txt /app/ytdlp/cookies.txt
|
|
||||||
echo ">> Files in ytdlp:"
|
|
||||||
ls /app/ytdlp
|
|
||||||
fi
|
|
||||||
containers:
|
containers:
|
||||||
main:
|
main:
|
||||||
image:
|
image:
|
||||||
repository: harbor.alexlebens.net/images/yubal-playlist
|
repository: blastbeng/spotisub
|
||||||
tag: 0.1.10
|
tag: v0.3.7
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: YUBAL_TZ
|
- name: SPOTIPY_CLIENT_ID
|
||||||
value: America/Chicago
|
|
||||||
- name: YUBAL_HOST
|
|
||||||
value: 0.0.0.0
|
|
||||||
- name: YUBAL_PORT
|
|
||||||
value: 8080
|
|
||||||
- name: YUBAL_DEBUG
|
|
||||||
value: true
|
|
||||||
- name: YUBAL_MB_USER_AGENT
|
|
||||||
value: alexanderlebens@gmail.com
|
|
||||||
- name: YUBAL_LIDARR_ENDPOINT
|
|
||||||
value: http://lidarr.lidarr:80
|
|
||||||
- name: YUBAL_LIDARR_API_KEY
|
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: yubal-playlist-config-secret
|
name: spotisub-config-secret
|
||||||
key: lidarr-key
|
key: spotify-client-id
|
||||||
- name: YUBAL_SUBSONIC_ENDPOINT
|
- name: SPOTIPY_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: spotisub-config-secret
|
||||||
|
key: spotify-client-secret
|
||||||
|
- name: SPOTIPY_REDIRECT_URI
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: spotisub-config-secret
|
||||||
|
key: spotify-redirect-uri
|
||||||
|
- name: SUBSONIC_API_HOST
|
||||||
value: http://navidrome-main.navidrome
|
value: http://navidrome-main.navidrome
|
||||||
- name: YUBAL_SUBSONIC_PORT
|
- name: SUBSONIC_API_PORT
|
||||||
value: 80
|
value: 80
|
||||||
- name: YUBAL_SUBSONIC_USER
|
- name: SUBSONIC_API_USER
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: yubal-playlist-config-secret
|
name: spotisub-config-secret
|
||||||
key: subsonic-user
|
key: subsonic-user
|
||||||
- name: YUBAL_SUBSONIC_PASSWORD
|
- name: SUBSONIC_API_PASS
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: yubal-playlist-config-secret
|
name: spotisub-config-secret
|
||||||
key: subsonic-password
|
key: subsonic-password
|
||||||
|
- name: PLAYLIST_PREFIX
|
||||||
|
value: "Spotify - "
|
||||||
|
- name: NUM_USER_PLAYLISTS
|
||||||
|
value: 0
|
||||||
|
- name: ARTIST_GEN_SCHED
|
||||||
|
value: 0
|
||||||
|
- name: RECOMEND_GEN_SCHED
|
||||||
|
value: 0
|
||||||
|
- name: SPOTDL_ENABLED
|
||||||
|
value: 1
|
||||||
|
- name: SPOTDL_OUT_FORMAT
|
||||||
|
value: "/mnt/store/Music Youtube/Andrew Lebens/{artist}/{album} ({year})/{artists} - {album} - {track-number} - {title}.{output-ext}"
|
||||||
|
- name: LIDARR_ENABLED
|
||||||
|
value: 1
|
||||||
|
- name: LIDARR_IP
|
||||||
|
value: http://lidarr.lidarr
|
||||||
|
- name: LIDARR_PORT
|
||||||
|
value: 80
|
||||||
|
- name: LIDARR_TOKEN
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: spotisub-config-secret
|
||||||
|
key: lidarr-key
|
||||||
|
probes:
|
||||||
|
liveness:
|
||||||
|
enabled: true
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- "curl -s http://127.0.0.1:5183/api/v1/utils/healthcheck | grep -q 'Ok!'"
|
||||||
|
failureThreshold: 5
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 30
|
||||||
|
successThreshold: 1
|
||||||
|
timeoutSeconds: 15
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 10m
|
cpu: 10m
|
||||||
@@ -81,22 +100,22 @@ yubal-playlist:
|
|||||||
- name: WIREGUARD_PRIVATE_KEY
|
- name: WIREGUARD_PRIVATE_KEY
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: yubal-playlist-wireguard-conf
|
name: spotisub-wireguard-conf
|
||||||
key: private-key
|
key: private-key
|
||||||
- name: UPDATER_PROTONVPN_EMAIL
|
- name: UPDATER_PROTONVPN_EMAIL
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: yubal-playlist-wireguard-conf
|
name: spotisub-wireguard-conf
|
||||||
key: proton-email
|
key: proton-email
|
||||||
- name: UPDATER_PROTONVPN_PASSWORD
|
- name: UPDATER_PROTONVPN_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: yubal-playlist-wireguard-conf
|
name: spotisub-wireguard-conf
|
||||||
key: proton-password
|
key: proton-password
|
||||||
- name: FIREWALL_OUTBOUND_SUBNETS
|
- name: FIREWALL_OUTBOUND_SUBNETS
|
||||||
value: 10.0.0.0/8
|
value: 10.0.0.0/8
|
||||||
- name: FIREWALL_INPUT_PORTS
|
- name: FIREWALL_INPUT_PORTS
|
||||||
value: 8080
|
value: 5183
|
||||||
- name: DNS_UPSTREAM_RESOLVER_TYPE
|
- name: DNS_UPSTREAM_RESOLVER_TYPE
|
||||||
value: dot
|
value: dot
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -132,7 +151,7 @@ yubal-playlist:
|
|||||||
ports:
|
ports:
|
||||||
http:
|
http:
|
||||||
port: 80
|
port: 80
|
||||||
targetPort: 8080
|
targetPort: 5183
|
||||||
protocol: HTTP
|
protocol: HTTP
|
||||||
route:
|
route:
|
||||||
main:
|
main:
|
||||||
@@ -143,12 +162,12 @@ yubal-playlist:
|
|||||||
name: traefik-gateway
|
name: traefik-gateway
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
hostnames:
|
hostnames:
|
||||||
- yubal-playlist.alexlebens.net
|
- spotisub.alexlebens.net
|
||||||
rules:
|
rules:
|
||||||
- backendRefs:
|
- backendRefs:
|
||||||
- group: ''
|
- group: ''
|
||||||
kind: Service
|
kind: Service
|
||||||
name: yubal-playlist
|
name: spotisub
|
||||||
port: 80
|
port: 80
|
||||||
weight: 100
|
weight: 100
|
||||||
matches:
|
matches:
|
||||||
@@ -156,34 +175,20 @@ yubal-playlist:
|
|||||||
type: PathPrefix
|
type: PathPrefix
|
||||||
value: /
|
value: /
|
||||||
persistence:
|
persistence:
|
||||||
cookie:
|
cache:
|
||||||
enabled: true
|
|
||||||
type: secret
|
|
||||||
name: yubal-playlist-cookie
|
|
||||||
advancedMounts:
|
|
||||||
main:
|
|
||||||
init-copy-cookie:
|
|
||||||
- path: /app/ytdlp/cookies-ro.txt
|
|
||||||
readOnly: true
|
|
||||||
mountPropagation: None
|
|
||||||
subPath: cookies.txt
|
|
||||||
config:
|
|
||||||
storageClass: ceph-block
|
storageClass: ceph-block
|
||||||
accessMode: ReadWriteOnce
|
accessMode: ReadWriteOnce
|
||||||
size: 1Gi
|
size: 1Gi
|
||||||
retain: true
|
retain: true
|
||||||
advancedMounts:
|
advancedMounts:
|
||||||
main:
|
main:
|
||||||
init-copy-cookie:
|
|
||||||
- path: /app/ytdlp
|
|
||||||
readOnly: false
|
|
||||||
main:
|
main:
|
||||||
- path: /app/ytdlp
|
- path: /home/user/spotisub/cache
|
||||||
readOnly: false
|
readOnly: false
|
||||||
music:
|
music:
|
||||||
existingClaim: yubal-playlist-nfs-storage
|
existingClaim: spotisub-nfs-storage
|
||||||
advancedMounts:
|
advancedMounts:
|
||||||
main:
|
main:
|
||||||
main:
|
main:
|
||||||
- path: /app/data
|
- path: /mnt/store/Music Youtube/
|
||||||
readOnly: false
|
readOnly: false
|
||||||
@@ -1,22 +1,21 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: yubal-playlist
|
name: yubal
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
description: yubal-playlist
|
description: yubal
|
||||||
keywords:
|
keywords:
|
||||||
- yubal-playlist
|
- yubal
|
||||||
- music
|
- music
|
||||||
- youtube
|
- youtube
|
||||||
home: https://wiki.alexlebens.dev/s/
|
home: https://wiki.alexlebens.dev/s/
|
||||||
sources:
|
sources:
|
||||||
- https://gitea.alexlebens.dev/alexlebens/yubal-playlist
|
|
||||||
- https://github.com/guillevc/yubal
|
- https://github.com/guillevc/yubal
|
||||||
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
|
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
|
||||||
maintainers:
|
maintainers:
|
||||||
- name: alexlebens
|
- name: alexlebens
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: app-template
|
- name: app-template
|
||||||
alias: yubal-playlist
|
alias: yubal
|
||||||
repository: https://bjw-s-labs.github.io/helm-charts/
|
repository: https://bjw-s-labs.github.io/helm-charts/
|
||||||
version: 4.6.2
|
version: 4.6.2
|
||||||
# renovate: datasource=github-releases depName=alexlebens/yubal-playlist
|
# renovate: datasource=github-releases depName=guillevc/yubal
|
||||||
appVersion: 0.0.7
|
appVersion: v4.0.0
|
||||||
35
clusters/cl01tl/helm/yubal/templates/external-secret.yaml
Normal file
35
clusters/cl01tl/helm/yubal/templates/external-secret.yaml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: yubal-wireguard-conf
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: yubal-wireguard-conf
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
secretStoreRef:
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
name: vault
|
||||||
|
data:
|
||||||
|
- secretKey: private-key
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /protonvpn/conf/cl01tl
|
||||||
|
metadataPolicy: None
|
||||||
|
property: private-key
|
||||||
|
- secretKey: proton-email
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /protonvpn/conf/cl01tl
|
||||||
|
metadataPolicy: None
|
||||||
|
property: email
|
||||||
|
- secretKey: proton-password
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /protonvpn/conf/cl01tl
|
||||||
|
metadataPolicy: None
|
||||||
|
property: password
|
||||||
11
clusters/cl01tl/helm/yubal/templates/namespace.yaml
Normal file
11
clusters/cl01tl/helm/yubal/templates/namespace.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: yubal
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: yubal
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
pod-security.kubernetes.io/audit: privileged
|
||||||
|
pod-security.kubernetes.io/enforce: privileged
|
||||||
|
pod-security.kubernetes.io/warn: privileged
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: yubal-nfs-storage
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: yubal-nfs-storage
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
volumeName: yubal-nfs-storage
|
||||||
|
storageClassName: nfs-client
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
23
clusters/cl01tl/helm/yubal/templates/persistent-volume.yaml
Normal file
23
clusters/cl01tl/helm/yubal/templates/persistent-volume.yaml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: yubal-nfs-storage
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: yubal-nfs-storage
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
storageClassName: nfs-client
|
||||||
|
capacity:
|
||||||
|
storage: 1Gi
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
nfs:
|
||||||
|
path: /volume2/Storage/Music Youtube/
|
||||||
|
server: synologybond.alexlebens.net
|
||||||
|
mountOptions:
|
||||||
|
- vers=4
|
||||||
|
- minorversion=1
|
||||||
|
- noac
|
||||||
144
clusters/cl01tl/helm/yubal/values.yaml
Normal file
144
clusters/cl01tl/helm/yubal/values.yaml
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
yubal:
|
||||||
|
controllers:
|
||||||
|
main:
|
||||||
|
type: deployment
|
||||||
|
replicas: 1
|
||||||
|
strategy: Recreate
|
||||||
|
revisionHistoryLimit: 3
|
||||||
|
pod:
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 1000
|
||||||
|
runAsGroup: 1000
|
||||||
|
fsGroup: 1000
|
||||||
|
containers:
|
||||||
|
main:
|
||||||
|
image:
|
||||||
|
repository: ghcr.io/guillevc/yubal
|
||||||
|
tag: 4.0.0
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
env:
|
||||||
|
- name: YUBAL_TZ
|
||||||
|
value: America/Chicago
|
||||||
|
- name: YUBAL_HOST
|
||||||
|
value: 0.0.0.0
|
||||||
|
- name: YUBAL_PORT
|
||||||
|
value: 8000
|
||||||
|
- name: YUBAL_LOG_LEVEL
|
||||||
|
value: INFO
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
memory: 128Mi
|
||||||
|
# gluetun:
|
||||||
|
# image:
|
||||||
|
# repository: ghcr.io/qdm12/gluetun
|
||||||
|
# tag: v3.41.0@sha256:6b54856716d0de56e5bb00a77029b0adea57284cf5a466f23aad5979257d3045
|
||||||
|
# pullPolicy: IfNotPresent
|
||||||
|
# lifecycle:
|
||||||
|
# postStart:
|
||||||
|
# exec:
|
||||||
|
# command: ["/bin/sh", "-c", "(ip rule del table 51820; ip -6 rule del table 51820) || true"]
|
||||||
|
# env:
|
||||||
|
# - name: VPN_SERVICE_PROVIDER
|
||||||
|
# value: protonvpn
|
||||||
|
# - name: PUID
|
||||||
|
# value: "1000"
|
||||||
|
# - name: PGID
|
||||||
|
# value: "1000"
|
||||||
|
# - name: VPN_TYPE
|
||||||
|
# value: wireguard
|
||||||
|
# - name: WIREGUARD_PRIVATE_KEY
|
||||||
|
# valueFrom:
|
||||||
|
# secretKeyRef:
|
||||||
|
# name: yubal-wireguard-conf
|
||||||
|
# key: private-key
|
||||||
|
# - name: UPDATER_PROTONVPN_EMAIL
|
||||||
|
# valueFrom:
|
||||||
|
# secretKeyRef:
|
||||||
|
# name: yubal-wireguard-conf
|
||||||
|
# key: proton-email
|
||||||
|
# - name: UPDATER_PROTONVPN_PASSWORD
|
||||||
|
# valueFrom:
|
||||||
|
# secretKeyRef:
|
||||||
|
# name: yubal-wireguard-conf
|
||||||
|
# key: proton-password
|
||||||
|
# - name: FIREWALL_OUTBOUND_SUBNETS
|
||||||
|
# value: 10.0.0.0/8
|
||||||
|
# - name: FIREWALL_INPUT_PORTS
|
||||||
|
# value: 8000
|
||||||
|
# - name: DNS_UPSTREAM_RESOLVER_TYPE
|
||||||
|
# value: dot
|
||||||
|
# securityContext:
|
||||||
|
# privileged: True
|
||||||
|
# capabilities:
|
||||||
|
# add:
|
||||||
|
# - NET_ADMIN
|
||||||
|
# - SYS_MODULE
|
||||||
|
# probes:
|
||||||
|
# liveness:
|
||||||
|
# enabled: true
|
||||||
|
# custom: true
|
||||||
|
# spec:
|
||||||
|
# exec:
|
||||||
|
# command:
|
||||||
|
# - /gluetun-entrypoint
|
||||||
|
# - healthcheck
|
||||||
|
# failureThreshold: 5
|
||||||
|
# initialDelaySeconds: 30
|
||||||
|
# periodSeconds: 30
|
||||||
|
# successThreshold: 1
|
||||||
|
# timeoutSeconds: 15
|
||||||
|
# resources:
|
||||||
|
# limits:
|
||||||
|
# devic.es/tun: "1"
|
||||||
|
# requests:
|
||||||
|
# devic.es/tun: "1"
|
||||||
|
# cpu: 10m
|
||||||
|
# memory: 128Mi
|
||||||
|
service:
|
||||||
|
main:
|
||||||
|
controller: main
|
||||||
|
ports:
|
||||||
|
http:
|
||||||
|
port: 80
|
||||||
|
targetPort: 8000
|
||||||
|
protocol: HTTP
|
||||||
|
route:
|
||||||
|
main:
|
||||||
|
kind: HTTPRoute
|
||||||
|
parentRefs:
|
||||||
|
- group: gateway.networking.k8s.io
|
||||||
|
kind: Gateway
|
||||||
|
name: traefik-gateway
|
||||||
|
namespace: traefik
|
||||||
|
hostnames:
|
||||||
|
- yubal.alexlebens.net
|
||||||
|
rules:
|
||||||
|
- backendRefs:
|
||||||
|
- group: ''
|
||||||
|
kind: Service
|
||||||
|
name: yubal
|
||||||
|
port: 80
|
||||||
|
weight: 100
|
||||||
|
matches:
|
||||||
|
- path:
|
||||||
|
type: PathPrefix
|
||||||
|
value: /
|
||||||
|
persistence:
|
||||||
|
config:
|
||||||
|
storageClass: ceph-block
|
||||||
|
accessMode: ReadWriteOnce
|
||||||
|
size: 1Gi
|
||||||
|
retain: true
|
||||||
|
advancedMounts:
|
||||||
|
main:
|
||||||
|
main:
|
||||||
|
- path: /app/config
|
||||||
|
readOnly: false
|
||||||
|
music:
|
||||||
|
existingClaim: yubal-nfs-storage
|
||||||
|
advancedMounts:
|
||||||
|
main:
|
||||||
|
main:
|
||||||
|
- path: /app/data
|
||||||
|
readOnly: false
|
||||||
@@ -132,13 +132,14 @@ customDNS:
|
|||||||
sonarr IN CNAME traefik-cl01tl
|
sonarr IN CNAME traefik-cl01tl
|
||||||
sonarr-4k IN CNAME traefik-cl01tl
|
sonarr-4k IN CNAME traefik-cl01tl
|
||||||
sonarr-anime IN CNAME traefik-cl01tl
|
sonarr-anime IN CNAME traefik-cl01tl
|
||||||
|
spotisub IN CNAME traefik-cl01tl
|
||||||
stalwart IN CNAME traefik-cl01tl
|
stalwart IN CNAME traefik-cl01tl
|
||||||
tdarr IN CNAME traefik-cl01tl
|
tdarr IN CNAME traefik-cl01tl
|
||||||
tubearchivist IN CNAME traefik-cl01tl
|
tubearchivist IN CNAME traefik-cl01tl
|
||||||
vault IN CNAME traefik-cl01tl
|
vault IN CNAME traefik-cl01tl
|
||||||
whodb IN CNAME traefik-cl01tl
|
whodb IN CNAME traefik-cl01tl
|
||||||
yamtrack IN CNAME traefik-cl01tl
|
yamtrack IN CNAME traefik-cl01tl
|
||||||
yubal-playlist IN CNAME traefik-cl01tl
|
yubal IN CNAME traefik-cl01tl
|
||||||
|
|
||||||
blocking:
|
blocking:
|
||||||
denylists:
|
denylists:
|
||||||
|
|||||||
@@ -153,13 +153,14 @@ customDNS:
|
|||||||
sonarr IN CNAME traefik-cl01tl
|
sonarr IN CNAME traefik-cl01tl
|
||||||
sonarr-4k IN CNAME traefik-cl01tl
|
sonarr-4k IN CNAME traefik-cl01tl
|
||||||
sonarr-anime IN CNAME traefik-cl01tl
|
sonarr-anime IN CNAME traefik-cl01tl
|
||||||
|
spotisub IN CNAME traefik-cl01tl
|
||||||
stalwart IN CNAME traefik-cl01tl
|
stalwart IN CNAME traefik-cl01tl
|
||||||
tdarr IN CNAME traefik-cl01tl
|
tdarr IN CNAME traefik-cl01tl
|
||||||
tubearchivist IN CNAME traefik-cl01tl
|
tubearchivist IN CNAME traefik-cl01tl
|
||||||
vault IN CNAME traefik-cl01tl
|
vault IN CNAME traefik-cl01tl
|
||||||
whodb IN CNAME traefik-cl01tl
|
whodb IN CNAME traefik-cl01tl
|
||||||
yamtrack IN CNAME traefik-cl01tl
|
yamtrack IN CNAME traefik-cl01tl
|
||||||
yubal-playlist IN CNAME traefik-cl01tl
|
yubal IN CNAME traefik-cl01tl
|
||||||
|
|
||||||
blocking:
|
blocking:
|
||||||
denylists:
|
denylists:
|
||||||
|
|||||||
Reference in New Issue
Block a user