diff --git a/clusters/cl01tl/helm/bazarr/Chart.yaml b/clusters/cl01tl/helm/bazarr/Chart.yaml index 558873d51..6e9727cb9 100644 --- a/clusters/cl01tl/helm/bazarr/Chart.yaml +++ b/clusters/cl01tl/helm/bazarr/Chart.yaml @@ -10,7 +10,9 @@ home: https://docs.alexlebens.dev/applications/bazarr/ sources: - https://github.com/morpheus65535/bazarr - https://github.com/linuxserver/docker-bazarr + - https://github.com/onedr0p/exportarr - https://github.com/linuxserver/docker-bazarr/pkgs/container/bazarr + - https://github.com/onedr0p/exportarr/pkgs/container/exportarr - https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/volsync-target maintainers: diff --git a/clusters/cl01tl/helm/bazarr/templates/external-secret.yaml b/clusters/cl01tl/helm/bazarr/templates/external-secret.yaml new file mode 100644 index 000000000..2e9d8f285 --- /dev/null +++ b/clusters/cl01tl/helm/bazarr/templates/external-secret.yaml @@ -0,0 +1,18 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: bazarr-key-secret + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: bazarr-key-secret + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + data: + - secretKey: key + remoteRef: + key: /cl01tl/bazarr/key + property: key diff --git a/clusters/cl01tl/helm/bazarr/values.yaml b/clusters/cl01tl/helm/bazarr/values.yaml index 9638f004d..eeb0b5add 100644 --- a/clusters/cl01tl/helm/bazarr/values.yaml +++ b/clusters/cl01tl/helm/bazarr/values.yaml @@ -28,6 +28,25 @@ bazarr: requests: cpu: 1m memory: 250Mi + metrics: + image: + repository: ghcr.io/onedr0p/exportarr + tag: v2.3.0@sha256:af535d94061cf97a52e1661945ffba78c03f9443eae7c0da1a80a5a4be56b520 + args: ["bazarr"] + env: + - name: URL + value: http://localhost + - name: PORT + value: 9792 + - name: APIKEY + valueFrom: + secretKeyRef: + name: bazarr-key-secret + key: key + - name: ENABLE_ADDITIONAL_METRICS + value: false + - name: ENABLE_UNKNOWN_QUEUE_ITEMS + value: false service: main: controller: main @@ -35,6 +54,21 @@ bazarr: http: port: 80 targetPort: 6767 + metrics: + port: 9792 + targetPort: 9792 + serviceMonitor: + main: + selector: + matchLabels: + app.kubernetes.io/name: bazarr + app.kubernetes.io/instance: bazarr + serviceName: '{{ include "bjw-s.common.lib.chart.names.fullname" $ }}' + endpoints: + - port: metrics + interval: 3m + scrapeTimeout: 1m + path: /metrics route: main: kind: HTTPRoute diff --git a/clusters/cl01tl/helm/grafana-operator/templates/grafana-dashboard.yaml b/clusters/cl01tl/helm/grafana-operator/templates/grafana-dashboard.yaml index 146e4a3cb..960d8045b 100644 --- a/clusters/cl01tl/helm/grafana-operator/templates/grafana-dashboard.yaml +++ b/clusters/cl01tl/helm/grafana-operator/templates/grafana-dashboard.yaml @@ -244,6 +244,44 @@ spec: resyncPeriod: 6h url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/descheduler.json +--- +apiVersion: grafana.integreatly.org/v1beta1 +kind: GrafanaDashboard +metadata: + name: grafana-dashboard-external-dns + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: grafana-dashboard-external-dns + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + instanceSelector: + matchLabels: + app: grafana-main + contentCacheDuration: 6h + folderUID: grafana-folder-service + resyncPeriod: 6h + url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/external-dns.json + +--- +apiVersion: grafana.integreatly.org/v1beta1 +kind: GrafanaDashboard +metadata: + name: grafana-dashboard-external-secrets + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: grafana-dashboard-external-secrets + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + instanceSelector: + matchLabels: + app: grafana-main + contentCacheDuration: 6h + folderUID: grafana-folder-service + resyncPeriod: 6h + url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/service/external-secrets.json + --- apiVersion: grafana.integreatly.org/v1beta1 kind: GrafanaDashboard @@ -567,6 +605,25 @@ spec: resyncPeriod: 6h url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/vault.json +--- +apiVersion: grafana.integreatly.org/v1beta1 +kind: GrafanaDashboard +metadata: + name: grafana-dashboard-unpackerr + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: grafana-dashboard-unpackerr + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + instanceSelector: + matchLabels: + app: grafana-main + contentCacheDuration: 6h + folderUID: grafana-folder-platform + resyncPeriod: 6h + url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/platform/unpackerr.json + --- apiVersion: grafana.integreatly.org/v1beta1 kind: GrafanaDashboard @@ -643,6 +700,25 @@ spec: resyncPeriod: 6h url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/application/jellyfin.json +--- +apiVersion: grafana.integreatly.org/v1beta1 +kind: GrafanaDashboard +metadata: + name: grafana-dashboard-navidrome + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: grafana-dashboard-navidrome + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + instanceSelector: + matchLabels: + app: grafana-main + contentCacheDuration: 6h + folderUID: grafana-folder-application + resyncPeriod: 6h + url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/application/navidrome.json + --- apiVersion: grafana.integreatly.org/v1beta1 kind: GrafanaDashboard @@ -662,6 +738,25 @@ spec: resyncPeriod: 6h url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/application/radarr.json +--- +apiVersion: grafana.integreatly.org/v1beta1 +kind: GrafanaDashboard +metadata: + name: grafana-dashboard-servarr + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: grafana-dashboard-servarr + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + instanceSelector: + matchLabels: + app: grafana-main + contentCacheDuration: 6h + folderUID: grafana-folder-application + resyncPeriod: 6h + url: http://gitea-http.gitea:3000/alexlebens/grafana-dashboards/raw/branch/main/dashboards/application/servarr.json + --- apiVersion: grafana.integreatly.org/v1beta1 kind: GrafanaDashboard diff --git a/clusters/cl01tl/helm/kubelet-serving-cert-approver/values.yaml b/clusters/cl01tl/helm/kubelet-serving-cert-approver/values.yaml index 5f33337c0..3455595fb 100644 --- a/clusters/cl01tl/helm/kubelet-serving-cert-approver/values.yaml +++ b/clusters/cl01tl/helm/kubelet-serving-cert-approver/values.yaml @@ -71,3 +71,15 @@ kubelet-serving-cert-approver: metrics: port: 9090 targetPort: 9090 + serviceMonitor: + main: + selector: + matchLabels: + app.kubernetes.io/name: kubelet-serving-cert-approver + app.kubernetes.io/instance: kubelet-serving-cert-approver + serviceName: '{{ include "bjw-s.common.lib.chart.names.fullname" $ }}' + endpoints: + - port: metrics + interval: 30s + scrapeTimeout: 15s + path: /metrics diff --git a/clusters/cl01tl/helm/prowlarr/Chart.yaml b/clusters/cl01tl/helm/prowlarr/Chart.yaml index e4b4ead4d..0720fe830 100644 --- a/clusters/cl01tl/helm/prowlarr/Chart.yaml +++ b/clusters/cl01tl/helm/prowlarr/Chart.yaml @@ -10,7 +10,9 @@ home: https://docs.alexlebens.dev/applications/prowlarr/ sources: - https://github.com/Prowlarr/Prowlarr - https://github.com/linuxserver/docker-prowlarr + - https://github.com/onedr0p/exportarr - https://github.com/linuxserver/docker-prowlarr/pkgs/container/prowlarr + - https://github.com/onedr0p/exportarr/pkgs/container/exportarr - https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/volsync-target maintainers: diff --git a/clusters/cl01tl/helm/prowlarr/templates/external-secret.yaml b/clusters/cl01tl/helm/prowlarr/templates/external-secret.yaml new file mode 100644 index 000000000..f6822c768 --- /dev/null +++ b/clusters/cl01tl/helm/prowlarr/templates/external-secret.yaml @@ -0,0 +1,18 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: prowlarr-key-secret + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: prowlarr-key-secret + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + secretStoreRef: + kind: ClusterSecretStore + name: vault + data: + - secretKey: key + remoteRef: + key: /cl01tl/prowlarr/key + property: key diff --git a/clusters/cl01tl/helm/prowlarr/values.yaml b/clusters/cl01tl/helm/prowlarr/values.yaml index 8ee4194f0..1dabea824 100644 --- a/clusters/cl01tl/helm/prowlarr/values.yaml +++ b/clusters/cl01tl/helm/prowlarr/values.yaml @@ -20,6 +20,27 @@ prowlarr: requests: cpu: 10m memory: 200Mi + metrics: + image: + repository: ghcr.io/onedr0p/exportarr + tag: v2.3.0@sha256:af535d94061cf97a52e1661945ffba78c03f9443eae7c0da1a80a5a4be56b520 + args: ["prowlarr"] + env: + - name: URL + value: http://localhost + - name: PORT + value: 9792 + - name: APIKEY + valueFrom: + secretKeyRef: + name: prowlarr-key-secret + key: key + - name: ENABLE_ADDITIONAL_METRICS + value: false + - name: ENABLE_UNKNOWN_QUEUE_ITEMS + value: false + - name: PROWLARR__BACKFILL + value: true service: main: controller: main @@ -27,6 +48,21 @@ prowlarr: http: port: 80 targetPort: 9696 + metrics: + port: 9792 + targetPort: 9792 + serviceMonitor: + main: + selector: + matchLabels: + app.kubernetes.io/name: prowlarr + app.kubernetes.io/instance: prowlarr + serviceName: '{{ include "bjw-s.common.lib.chart.names.fullname" $ }}' + endpoints: + - port: metrics + interval: 1m + scrapeTimeout: 30s + path: /metrics route: main: kind: HTTPRoute diff --git a/clusters/cl01tl/helm/unpackerr/values.yaml b/clusters/cl01tl/helm/unpackerr/values.yaml index 378b9bca0..89eed5252 100644 --- a/clusters/cl01tl/helm/unpackerr/values.yaml +++ b/clusters/cl01tl/helm/unpackerr/values.yaml @@ -57,6 +57,25 @@ unpackerr: requests: cpu: 10m memory: 10Mi + service: + main: + controller: main + ports: + metrics: + port: 5656 + targetPort: 5656 + serviceMonitor: + main: + selector: + matchLabels: + app.kubernetes.io/name: unpackerr + app.kubernetes.io/instance: unpackerr + serviceName: '{{ include "bjw-s.common.lib.chart.names.fullname" $ }}' + endpoints: + - port: metrics + interval: 1m + scrapeTimeout: 30s + path: /metrics persistence: storage: existingClaim: unpackerr-nfs-storage