diff --git a/kubernetes/apps/database/influx/app/kustomization.yaml b/kubernetes/apps/database/influx/app/kustomization.yaml
index e230adf20..09bc749a9 100644
--- a/kubernetes/apps/database/influx/app/kustomization.yaml
+++ b/kubernetes/apps/database/influx/app/kustomization.yaml
@@ -4,4 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/volsync
diff --git a/kubernetes/apps/database/influx/ks.yaml b/kubernetes/apps/database/influx/ks.yaml
index faab3dc11..0d5010991 100644
--- a/kubernetes/apps/database/influx/ks.yaml
+++ b/kubernetes/apps/database/influx/ks.yaml
@@ -10,6 +10,8 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/volsync
path: ./kubernetes/apps/database/influx/app
prune: true
sourceRef:
diff --git a/kubernetes/apps/default/atuin/app/kustomization.yaml b/kubernetes/apps/default/atuin/app/kustomization.yaml
index adcaf40fc..5b48b4e26 100644
--- a/kubernetes/apps/default/atuin/app/kustomization.yaml
+++ b/kubernetes/apps/default/atuin/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/atuin/ks.yaml b/kubernetes/apps/default/atuin/ks.yaml
index f1381cdfe..3d4a4d87c 100644
--- a/kubernetes/apps/default/atuin/ks.yaml
+++ b/kubernetes/apps/default/atuin/ks.yaml
@@ -10,11 +10,15 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/atuin/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/authelia/app/kustomization.yaml b/kubernetes/apps/default/authelia/app/kustomization.yaml
index 059e16abb..7b2c604f2 100644
--- a/kubernetes/apps/default/authelia/app/kustomization.yaml
+++ b/kubernetes/apps/default/authelia/app/kustomization.yaml
@@ -5,7 +5,6 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/external
configMapGenerator:
- name: authelia-configmap
files:
diff --git a/kubernetes/apps/default/authelia/ks.yaml b/kubernetes/apps/default/authelia/ks.yaml
index e2164dd8d..d70976de3 100644
--- a/kubernetes/apps/default/authelia/ks.yaml
+++ b/kubernetes/apps/default/authelia/ks.yaml
@@ -12,14 +12,19 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: dragonfly-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
+ components:
+ - ../../../../components/gatus/external
path: ./kubernetes/apps/default/authelia/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/bazarr/app/kustomization.yaml b/kubernetes/apps/default/bazarr/app/kustomization.yaml
index b1d0b6b73..7f0970297 100644
--- a/kubernetes/apps/default/bazarr/app/kustomization.yaml
+++ b/kubernetes/apps/default/bazarr/app/kustomization.yaml
@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
configMapGenerator:
- name: bazarr-scripts
files:
diff --git a/kubernetes/apps/default/bazarr/ks.yaml b/kubernetes/apps/default/bazarr/ks.yaml
index 4aad6e616..d86df63e4 100644
--- a/kubernetes/apps/default/bazarr/ks.yaml
+++ b/kubernetes/apps/default/bazarr/ks.yaml
@@ -12,15 +12,22 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/bazarr/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/calibre/app/kustomization.yaml b/kubernetes/apps/default/calibre/app/kustomization.yaml
index afadd96bd..4aa74b27c 100644
--- a/kubernetes/apps/default/calibre/app/kustomization.yaml
+++ b/kubernetes/apps/default/calibre/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/calibre/ks.yaml b/kubernetes/apps/default/calibre/ks.yaml
index 205e733d7..988a2306d 100644
--- a/kubernetes/apps/default/calibre/ks.yaml
+++ b/kubernetes/apps/default/calibre/ks.yaml
@@ -14,12 +14,18 @@ spec:
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/calibre/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/exercisediary/app/kustomization.yaml b/kubernetes/apps/default/exercisediary/app/kustomization.yaml
index 68984b3ba..4aa74b27c 100644
--- a/kubernetes/apps/default/exercisediary/app/kustomization.yaml
+++ b/kubernetes/apps/default/exercisediary/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/external
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/exercisediary/ks.yaml b/kubernetes/apps/default/exercisediary/ks.yaml
index 5091d6af5..df6b9e9f2 100644
--- a/kubernetes/apps/default/exercisediary/ks.yaml
+++ b/kubernetes/apps/default/exercisediary/ks.yaml
@@ -10,14 +10,20 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/external
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/exercisediary/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/flaresolverr/ks.yaml b/kubernetes/apps/default/flaresolverr/ks.yaml
index f4d67f64b..8db7a7c28 100644
--- a/kubernetes/apps/default/flaresolverr/ks.yaml
+++ b/kubernetes/apps/default/flaresolverr/ks.yaml
@@ -15,6 +15,7 @@ spec:
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/flood/app/kustomization.yaml b/kubernetes/apps/default/flood/app/kustomization.yaml
index 44d709772..d6adbe135 100644
--- a/kubernetes/apps/default/flood/app/kustomization.yaml
+++ b/kubernetes/apps/default/flood/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/flood/ks.yaml b/kubernetes/apps/default/flood/ks.yaml
index 8e2e26d8e..a5d244d50 100644
--- a/kubernetes/apps/default/flood/ks.yaml
+++ b/kubernetes/apps/default/flood/ks.yaml
@@ -15,11 +15,16 @@ spec:
namespace: external-secrets
- name: qbittorrent
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/flood/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/freshrss/app/kustomization.yaml b/kubernetes/apps/default/freshrss/app/kustomization.yaml
index 44d709772..d6adbe135 100644
--- a/kubernetes/apps/default/freshrss/app/kustomization.yaml
+++ b/kubernetes/apps/default/freshrss/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/freshrss/ks.yaml b/kubernetes/apps/default/freshrss/ks.yaml
index b26cee199..8a04a9b51 100644
--- a/kubernetes/apps/default/freshrss/ks.yaml
+++ b/kubernetes/apps/default/freshrss/ks.yaml
@@ -10,15 +10,20 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/freshrss/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: external-secrets-stores
namespace: external-secrets
- name: volsync
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/frigate/app/kustomization.yaml b/kubernetes/apps/default/frigate/app/kustomization.yaml
index b55fd838d..d1d7e42d9 100644
--- a/kubernetes/apps/default/frigate/app/kustomization.yaml
+++ b/kubernetes/apps/default/frigate/app/kustomization.yaml
@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
configMapGenerator:
- name: frigate-configmap
files:
diff --git a/kubernetes/apps/default/frigate/ks.yaml b/kubernetes/apps/default/frigate/ks.yaml
index 587161b38..7d3a39501 100644
--- a/kubernetes/apps/default/frigate/ks.yaml
+++ b/kubernetes/apps/default/frigate/ks.yaml
@@ -14,11 +14,16 @@ spec:
- name: external-secrets-stores
namespace: external-secrets
- name: node-feature-discovery-rules
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/frigate/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/ghostfolio/app/kustomization.yaml b/kubernetes/apps/default/ghostfolio/app/kustomization.yaml
index 2740e00c8..d6adbe135 100644
--- a/kubernetes/apps/default/ghostfolio/app/kustomization.yaml
+++ b/kubernetes/apps/default/ghostfolio/app/kustomization.yaml
@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
diff --git a/kubernetes/apps/default/ghostfolio/ks.yaml b/kubernetes/apps/default/ghostfolio/ks.yaml
index 30ed5b913..fdc2bfc42 100644
--- a/kubernetes/apps/default/ghostfolio/ks.yaml
+++ b/kubernetes/apps/default/ghostfolio/ks.yaml
@@ -10,16 +10,21 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
path: ./kubernetes/apps/default/ghostfolio/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: dragonfly-cluster
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/hajimari/app/kustomization.yaml b/kubernetes/apps/default/hajimari/app/kustomization.yaml
index db575b725..09bc749a9 100644
--- a/kubernetes/apps/default/hajimari/app/kustomization.yaml
+++ b/kubernetes/apps/default/hajimari/app/kustomization.yaml
@@ -4,4 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
diff --git a/kubernetes/apps/default/hajimari/ks.yaml b/kubernetes/apps/default/hajimari/ks.yaml
index b9a5db6ad..89f7acce6 100644
--- a/kubernetes/apps/default/hajimari/ks.yaml
+++ b/kubernetes/apps/default/hajimari/ks.yaml
@@ -10,11 +10,14 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
path: ./kubernetes/apps/default/hajimari/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/home-assistant/app/kustomization.yaml b/kubernetes/apps/default/home-assistant/app/kustomization.yaml
index 876d58a8e..0736b1247 100644
--- a/kubernetes/apps/default/home-assistant/app/kustomization.yaml
+++ b/kubernetes/apps/default/home-assistant/app/kustomization.yaml
@@ -5,5 +5,3 @@ resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ./podmonitor.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/home-assistant/code/kustomization.yaml b/kubernetes/apps/default/home-assistant/code/kustomization.yaml
index bd3d4e9c7..5b48b4e26 100644
--- a/kubernetes/apps/default/home-assistant/code/kustomization.yaml
+++ b/kubernetes/apps/default/home-assistant/code/kustomization.yaml
@@ -5,4 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
diff --git a/kubernetes/apps/default/home-assistant/ks.yaml b/kubernetes/apps/default/home-assistant/ks.yaml
index 097ddc348..6eed093cc 100644
--- a/kubernetes/apps/default/home-assistant/ks.yaml
+++ b/kubernetes/apps/default/home-assistant/ks.yaml
@@ -12,14 +12,20 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/home-assistant/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
@@ -43,11 +49,14 @@ spec:
app.kubernetes.io/name: &app home-assistant
dependsOn:
- name: home-assistant
+ components:
+ - ../../../../components/gatus/guarded
path: ./kubernetes/apps/default/home-assistant/code
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/homebox/app/kustomization.yaml b/kubernetes/apps/default/homebox/app/kustomization.yaml
index a102b1c1a..09bc749a9 100644
--- a/kubernetes/apps/default/homebox/app/kustomization.yaml
+++ b/kubernetes/apps/default/homebox/app/kustomization.yaml
@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/homebox/ks.yaml b/kubernetes/apps/default/homebox/ks.yaml
index 77d14e8fe..fa73dd7fb 100644
--- a/kubernetes/apps/default/homebox/ks.yaml
+++ b/kubernetes/apps/default/homebox/ks.yaml
@@ -10,11 +10,15 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/homebox/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/homelab/ks.yaml b/kubernetes/apps/default/homelab/ks.yaml
index bdd86a132..cdf3d6141 100644
--- a/kubernetes/apps/default/homelab/ks.yaml
+++ b/kubernetes/apps/default/homelab/ks.yaml
@@ -15,6 +15,7 @@ spec:
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
@@ -39,6 +40,7 @@ spec:
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
@@ -63,6 +65,7 @@ spec:
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
@@ -87,6 +90,7 @@ spec:
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/homepage/app/kustomization.yaml b/kubernetes/apps/default/homepage/app/kustomization.yaml
index e1825ebc1..741d66326 100644
--- a/kubernetes/apps/default/homepage/app/kustomization.yaml
+++ b/kubernetes/apps/default/homepage/app/kustomization.yaml
@@ -6,7 +6,6 @@ resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ./rbac.yaml
- - ../../../../components/gatus/guarded
configMapGenerator:
- name: homepage-config
files:
diff --git a/kubernetes/apps/default/homepage/ks.yaml b/kubernetes/apps/default/homepage/ks.yaml
index 1086bc87c..7a3509ee1 100644
--- a/kubernetes/apps/default/homepage/ks.yaml
+++ b/kubernetes/apps/default/homepage/ks.yaml
@@ -10,11 +10,14 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
path: ./kubernetes/apps/default/homepage/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/jellyfin/app/kustomization.yaml b/kubernetes/apps/default/jellyfin/app/kustomization.yaml
index 68984b3ba..4aa74b27c 100644
--- a/kubernetes/apps/default/jellyfin/app/kustomization.yaml
+++ b/kubernetes/apps/default/jellyfin/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/external
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/jellyfin/ks.yaml b/kubernetes/apps/default/jellyfin/ks.yaml
index a9540505f..94ee73e7d 100644
--- a/kubernetes/apps/default/jellyfin/ks.yaml
+++ b/kubernetes/apps/default/jellyfin/ks.yaml
@@ -12,14 +12,20 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: rook-ceph-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/external
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/jellyfin/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/jellyseerr/app/kustomization.yaml b/kubernetes/apps/default/jellyseerr/app/kustomization.yaml
index 293b99756..f7b65fc38 100644
--- a/kubernetes/apps/default/jellyseerr/app/kustomization.yaml
+++ b/kubernetes/apps/default/jellyseerr/app/kustomization.yaml
@@ -6,6 +6,4 @@ namespace: default
resources:
# - ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/external
- - ../../../../components/volsync
- ./pvc.yaml
diff --git a/kubernetes/apps/default/jellyseerr/ks.yaml b/kubernetes/apps/default/jellyseerr/ks.yaml
index fdef7b83a..dfe7df04d 100644
--- a/kubernetes/apps/default/jellyseerr/ks.yaml
+++ b/kubernetes/apps/default/jellyseerr/ks.yaml
@@ -12,14 +12,20 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: rook-ceph-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/jellyseerr/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/joplin/app/kustomization.yaml b/kubernetes/apps/default/joplin/app/kustomization.yaml
index b09ca642e..d6adbe135 100644
--- a/kubernetes/apps/default/joplin/app/kustomization.yaml
+++ b/kubernetes/apps/default/joplin/app/kustomization.yaml
@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/external
diff --git a/kubernetes/apps/default/joplin/ks.yaml b/kubernetes/apps/default/joplin/ks.yaml
index 49ab7dccf..dbf09d70e 100644
--- a/kubernetes/apps/default/joplin/ks.yaml
+++ b/kubernetes/apps/default/joplin/ks.yaml
@@ -10,13 +10,17 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/external
path: ./kubernetes/apps/default/joplin/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
wait: false
diff --git a/kubernetes/apps/default/komf/app/kustomization.yaml b/kubernetes/apps/default/komf/app/kustomization.yaml
index 46ea563dc..239f74391 100644
--- a/kubernetes/apps/default/komf/app/kustomization.yaml
+++ b/kubernetes/apps/default/komf/app/kustomization.yaml
@@ -6,7 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/volsync
configMapGenerator:
- name: komf-configmap
files:
diff --git a/kubernetes/apps/default/komf/ks.yaml b/kubernetes/apps/default/komf/ks.yaml
index 9efb722e4..0a5ef37ee 100644
--- a/kubernetes/apps/default/komf/ks.yaml
+++ b/kubernetes/apps/default/komf/ks.yaml
@@ -14,12 +14,17 @@ spec:
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/komf/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/komga/app/kustomization.yaml b/kubernetes/apps/default/komga/app/kustomization.yaml
index afadd96bd..4aa74b27c 100644
--- a/kubernetes/apps/default/komga/app/kustomization.yaml
+++ b/kubernetes/apps/default/komga/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/komga/ks.yaml b/kubernetes/apps/default/komga/ks.yaml
index b93ec27c9..1f109a8c0 100644
--- a/kubernetes/apps/default/komga/ks.yaml
+++ b/kubernetes/apps/default/komga/ks.yaml
@@ -14,12 +14,18 @@ spec:
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/komga/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/kustomization.yaml b/kubernetes/apps/default/kustomization.yaml
index e0a2140cf..20940cc1b 100644
--- a/kubernetes/apps/default/kustomization.yaml
+++ b/kubernetes/apps/default/kustomization.yaml
@@ -2,10 +2,10 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
+namespace: default
+components:
+ - ../../components/common
resources:
- # Pre Flux-Kustomizations
- - ./namespace.yaml
- # Flux-Kustomizations
- ./atuin/ks.yaml
- ./authelia/ks.yaml
- ./bazarr/ks.yaml
@@ -50,6 +50,7 @@ resources:
- ./unifi/ks.yaml
- ./vaultwarden/ks.yaml
- ./vikunja/ks.yaml
+ - ./webhook/ks.yaml
- ./zigbee2mqtt/ks.yaml
- ./zwave-js-ui/ks.yaml
# Default resources
diff --git a/kubernetes/apps/default/libmedium/app/kustomization.yaml b/kubernetes/apps/default/libmedium/app/kustomization.yaml
index b1ba7d5c4..c2ec1a871 100644
--- a/kubernetes/apps/default/libmedium/app/kustomization.yaml
+++ b/kubernetes/apps/default/libmedium/app/kustomization.yaml
@@ -4,7 +4,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/external
configMapGenerator:
- name: libmedium-configmap
files:
diff --git a/kubernetes/apps/default/libmedium/ks.yaml b/kubernetes/apps/default/libmedium/ks.yaml
index d5e940763..80c969deb 100644
--- a/kubernetes/apps/default/libmedium/ks.yaml
+++ b/kubernetes/apps/default/libmedium/ks.yaml
@@ -10,7 +10,8 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
-
+ components:
+ - ../../../../components/gatus/external
path: ./kubernetes/apps/default/libmedium/app
dependsOn:
- name: external-secrets-stores
@@ -19,6 +20,7 @@ spec:
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/lidarr/app/externalsecret.yaml b/kubernetes/apps/default/lidarr/app/externalsecret.yaml
index 068f2b134..e3d3db7b2 100644
--- a/kubernetes/apps/default/lidarr/app/externalsecret.yaml
+++ b/kubernetes/apps/default/lidarr/app/externalsecret.yaml
@@ -15,7 +15,7 @@ spec:
engineVersion: v2
data:
LIDARR__API_KEY: "{{ .LIDARR__API_KEY }}"
- PUSHOVER_API_TOKEN: "{{ .PUSHOVER_API_TOKEN }}"
+ PUSHOVER_API_TOKEN: "{{ .LIDARR_PUSHOVER_TOKEN }}"
PUSHOVER_USER_KEY: "{{ .PUSHOVER_USER_KEY }}"
dataFrom:
- extract:
diff --git a/kubernetes/apps/default/lidarr/app/kustomization.yaml b/kubernetes/apps/default/lidarr/app/kustomization.yaml
index 7ce718111..0ba97d235 100644
--- a/kubernetes/apps/default/lidarr/app/kustomization.yaml
+++ b/kubernetes/apps/default/lidarr/app/kustomization.yaml
@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
configMapGenerator:
- name: lidarr-pushover
files:
diff --git a/kubernetes/apps/default/lidarr/ks.yaml b/kubernetes/apps/default/lidarr/ks.yaml
index 581e703f9..ebeeaf615 100644
--- a/kubernetes/apps/default/lidarr/ks.yaml
+++ b/kubernetes/apps/default/lidarr/ks.yaml
@@ -10,18 +10,24 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
-
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/lidarr/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/linkding/app/kustomization.yaml b/kubernetes/apps/default/linkding/app/kustomization.yaml
index 44d709772..d6adbe135 100644
--- a/kubernetes/apps/default/linkding/app/kustomization.yaml
+++ b/kubernetes/apps/default/linkding/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/linkding/ks.yaml b/kubernetes/apps/default/linkding/ks.yaml
index e6f164905..1f65b9494 100644
--- a/kubernetes/apps/default/linkding/ks.yaml
+++ b/kubernetes/apps/default/linkding/ks.yaml
@@ -10,11 +10,15 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/linkding/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: external-secrets-stores
namespace: external-secrets
diff --git a/kubernetes/apps/default/lldap/app/kustomization.yaml b/kubernetes/apps/default/lldap/app/kustomization.yaml
index 2740e00c8..d6adbe135 100644
--- a/kubernetes/apps/default/lldap/app/kustomization.yaml
+++ b/kubernetes/apps/default/lldap/app/kustomization.yaml
@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
diff --git a/kubernetes/apps/default/lldap/ks.yaml b/kubernetes/apps/default/lldap/ks.yaml
index fe1066c3f..2ee98cd9c 100644
--- a/kubernetes/apps/default/lldap/ks.yaml
+++ b/kubernetes/apps/default/lldap/ks.yaml
@@ -10,13 +10,17 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
path: ./kubernetes/apps/default/lldap/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/lms/app/kustomization.yaml b/kubernetes/apps/default/lms/app/kustomization.yaml
index a102b1c1a..09bc749a9 100644
--- a/kubernetes/apps/default/lms/app/kustomization.yaml
+++ b/kubernetes/apps/default/lms/app/kustomization.yaml
@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/lms/ks.yaml b/kubernetes/apps/default/lms/ks.yaml
index 5a804e4c9..46539ad98 100644
--- a/kubernetes/apps/default/lms/ks.yaml
+++ b/kubernetes/apps/default/lms/ks.yaml
@@ -12,11 +12,16 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/lms/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/lychee/app/kustomization.yaml b/kubernetes/apps/default/lychee/app/kustomization.yaml
index fe1cab0c3..8bdcc99a0 100644
--- a/kubernetes/apps/default/lychee/app/kustomization.yaml
+++ b/kubernetes/apps/default/lychee/app/kustomization.yaml
@@ -6,5 +6,3 @@ resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ./sync
- - ../../../../components/gatus/external
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/lychee/ks.yaml b/kubernetes/apps/default/lychee/ks.yaml
index f4c0d590e..b631203b8 100644
--- a/kubernetes/apps/default/lychee/ks.yaml
+++ b/kubernetes/apps/default/lychee/ks.yaml
@@ -10,18 +10,26 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/external
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/lychee/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: dragonfly-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/namespace.yaml b/kubernetes/apps/default/namespace.yaml
deleted file mode 100644
index 01c3e5f0f..000000000
--- a/kubernetes/apps/default/namespace.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
----
-apiVersion: v1
-kind: Namespace
-metadata:
- name: default
- labels:
- kustomize.toolkit.fluxcd.io/prune: disabled
- volsync.backube/privileged-movers: "true"
----
-# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/notification.toolkit.fluxcd.io/provider_v1beta3.json
-apiVersion: notification.toolkit.fluxcd.io/v1beta3
-kind: Provider
-metadata:
- name: alert-manager
- namespace: default
-spec:
- type: alertmanager
- address: http://kube-prometheus-stack-alertmanager.observability:9093/api/v2/alerts/
----
-# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/notification.toolkit.fluxcd.io/alert_v1beta3.json
-apiVersion: notification.toolkit.fluxcd.io/v1beta3
-kind: Alert
-metadata:
- name: alert-manager
- namespace: default
-spec:
- providerRef:
- name: alert-manager
- eventSeverity: error
- eventSources:
- - kind: HelmRelease
- name: "*"
- exclusionList:
- - "error.*lookup github\\.com"
- - "error.*lookup raw\\.githubusercontent\\.com"
- - "dial.*tcp.*timeout"
- - "waiting.*socket"
- suspend: false
diff --git a/kubernetes/apps/default/navidrome/app/kustomization.yaml b/kubernetes/apps/default/navidrome/app/kustomization.yaml
index 68984b3ba..4aa74b27c 100644
--- a/kubernetes/apps/default/navidrome/app/kustomization.yaml
+++ b/kubernetes/apps/default/navidrome/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/external
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/navidrome/ks.yaml b/kubernetes/apps/default/navidrome/ks.yaml
index e304acdb5..3f8da9c5b 100644
--- a/kubernetes/apps/default/navidrome/ks.yaml
+++ b/kubernetes/apps/default/navidrome/ks.yaml
@@ -14,12 +14,18 @@ spec:
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/external
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/navidrome/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/outline/app/kustomization.yaml b/kubernetes/apps/default/outline/app/kustomization.yaml
index 2740e00c8..d6adbe135 100644
--- a/kubernetes/apps/default/outline/app/kustomization.yaml
+++ b/kubernetes/apps/default/outline/app/kustomization.yaml
@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
diff --git a/kubernetes/apps/default/outline/ks.yaml b/kubernetes/apps/default/outline/ks.yaml
index c0ec21774..59ee78161 100644
--- a/kubernetes/apps/default/outline/ks.yaml
+++ b/kubernetes/apps/default/outline/ks.yaml
@@ -10,14 +10,19 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
path: ./kubernetes/apps/default/outline/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: dragonfly-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
wait: false
diff --git a/kubernetes/apps/default/paperless/app/kustomization.yaml b/kubernetes/apps/default/paperless/app/kustomization.yaml
index 2740e00c8..d6adbe135 100644
--- a/kubernetes/apps/default/paperless/app/kustomization.yaml
+++ b/kubernetes/apps/default/paperless/app/kustomization.yaml
@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
diff --git a/kubernetes/apps/default/paperless/ks.yaml b/kubernetes/apps/default/paperless/ks.yaml
index 699f5e487..431cf60da 100644
--- a/kubernetes/apps/default/paperless/ks.yaml
+++ b/kubernetes/apps/default/paperless/ks.yaml
@@ -10,14 +10,19 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
path: ./kubernetes/apps/default/paperless/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: dragonfly-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
wait: false
diff --git a/kubernetes/apps/default/prowlarr/app/externalsecret.yaml b/kubernetes/apps/default/prowlarr/app/externalsecret.yaml
index 96a6242aa..9adb8e5c9 100644
--- a/kubernetes/apps/default/prowlarr/app/externalsecret.yaml
+++ b/kubernetes/apps/default/prowlarr/app/externalsecret.yaml
@@ -13,7 +13,7 @@ spec:
template:
data:
PROWLARR__AUTH__APIKEY: "{{ .PROWLARR__API_KEY }}"
- PUSHOVER_API_TOKEN: "{{ .PUSHOVER_API_TOKEN }}"
+ PUSHOVER_API_TOKEN: "{{ .PROWLARR_PUSHOVER_TOKEN }}"
PUSHOVER_USER_KEY: "{{ .PUSHOVER_USER_KEY }}"
dataFrom:
- extract:
diff --git a/kubernetes/apps/default/prowlarr/app/kustomization.yaml b/kubernetes/apps/default/prowlarr/app/kustomization.yaml
index 2740e00c8..d6adbe135 100644
--- a/kubernetes/apps/default/prowlarr/app/kustomization.yaml
+++ b/kubernetes/apps/default/prowlarr/app/kustomization.yaml
@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
diff --git a/kubernetes/apps/default/prowlarr/ks.yaml b/kubernetes/apps/default/prowlarr/ks.yaml
index b99f89d53..017ec751f 100644
--- a/kubernetes/apps/default/prowlarr/ks.yaml
+++ b/kubernetes/apps/default/prowlarr/ks.yaml
@@ -12,13 +12,17 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
+ components:
+ - ../../../../components/gatus/guarded
path: ./kubernetes/apps/default/prowlarr/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/qbittorrent/app/kustomization.yaml b/kubernetes/apps/default/qbittorrent/app/kustomization.yaml
index deca5380c..d275ad833 100644
--- a/kubernetes/apps/default/qbittorrent/app/kustomization.yaml
+++ b/kubernetes/apps/default/qbittorrent/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./helmrelease.yaml
- ./upgrade-p2pblocklist
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/qbittorrent/ks.yaml b/kubernetes/apps/default/qbittorrent/ks.yaml
index 809defc15..f4235d049 100644
--- a/kubernetes/apps/default/qbittorrent/ks.yaml
+++ b/kubernetes/apps/default/qbittorrent/ks.yaml
@@ -12,12 +12,18 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/qbittorrent/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/radarr/app/externalsecret.yaml b/kubernetes/apps/default/radarr/app/externalsecret.yaml
index d645ba056..ab4bd011e 100644
--- a/kubernetes/apps/default/radarr/app/externalsecret.yaml
+++ b/kubernetes/apps/default/radarr/app/externalsecret.yaml
@@ -14,7 +14,7 @@ spec:
template:
data:
RADARR__AUTH__APIKEY: "{{ .RADARR__API_KEY }}"
- PUSHOVER_API_TOKEN: "{{ .PUSHOVER_API_TOKEN }}"
+ PUSHOVER_API_TOKEN: "{{ .RADARR_PUSHOVER_TOKEN }}"
PUSHOVER_USER_KEY: "{{ .PUSHOVER_USER_KEY }}"
dataFrom:
- extract:
diff --git a/kubernetes/apps/default/radarr/app/kustomization.yaml b/kubernetes/apps/default/radarr/app/kustomization.yaml
index 4783298dc..04e8fa80c 100644
--- a/kubernetes/apps/default/radarr/app/kustomization.yaml
+++ b/kubernetes/apps/default/radarr/app/kustomization.yaml
@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
configMapGenerator:
- name: radarr-pushover
files:
diff --git a/kubernetes/apps/default/radarr/ks.yaml b/kubernetes/apps/default/radarr/ks.yaml
index 201924752..49534be36 100644
--- a/kubernetes/apps/default/radarr/ks.yaml
+++ b/kubernetes/apps/default/radarr/ks.yaml
@@ -12,15 +12,22 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/radarr/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/readeck/app/kustomization.yaml b/kubernetes/apps/default/readeck/app/kustomization.yaml
index a102b1c1a..09bc749a9 100644
--- a/kubernetes/apps/default/readeck/app/kustomization.yaml
+++ b/kubernetes/apps/default/readeck/app/kustomization.yaml
@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/readeck/ks.yaml b/kubernetes/apps/default/readeck/ks.yaml
index a06c1270f..5088ef83a 100644
--- a/kubernetes/apps/default/readeck/ks.yaml
+++ b/kubernetes/apps/default/readeck/ks.yaml
@@ -12,12 +12,18 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/readeck/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/recyclarr/app/externalsecret.yaml b/kubernetes/apps/default/recyclarr/app/externalsecret.yaml
index cfbec49e6..7a70d7dde 100644
--- a/kubernetes/apps/default/recyclarr/app/externalsecret.yaml
+++ b/kubernetes/apps/default/recyclarr/app/externalsecret.yaml
@@ -13,7 +13,7 @@ spec:
template:
engineVersion: v2
data:
- PUSHOVER_URL: pover://{{ .PUSHOVER_USER_KEY }}@{{ .PUSHOVER_API_TOKEN }}
+ PUSHOVER_URL: pover://{{ .PUSHOVER_USER_KEY }}@{{ .RECYCLARR_PUSHOVER_TOKEN }}
RADARR_API_KEY: "{{ .RADARR__API_KEY }}"
SONARR_API_KEY: "{{ .SONARR__API_KEY }}"
dataFrom:
@@ -25,7 +25,7 @@ spec:
property: SONARR__API_KEY
- extract:
key: recyclarr
- property: PUSHOVER_API_TOKEN
+ property: RECYCLARR_PUSHOVER_TOKEN
- extract:
key: pushover
property: PUSHOVER_USER_KEY
diff --git a/kubernetes/apps/default/recyclarr/app/kustomization.yaml b/kubernetes/apps/default/recyclarr/app/kustomization.yaml
index 0ecfcb95f..4b74d94f8 100644
--- a/kubernetes/apps/default/recyclarr/app/kustomization.yaml
+++ b/kubernetes/apps/default/recyclarr/app/kustomization.yaml
@@ -5,7 +5,6 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/volsync
configMapGenerator:
- name: recyclarr-configmap
files:
diff --git a/kubernetes/apps/default/recyclarr/ks.yaml b/kubernetes/apps/default/recyclarr/ks.yaml
index 085a1640b..3d5512a15 100644
--- a/kubernetes/apps/default/recyclarr/ks.yaml
+++ b/kubernetes/apps/default/recyclarr/ks.yaml
@@ -13,11 +13,14 @@ spec:
dependsOn:
- name: radarr
- name: sonarr
+ components:
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/recyclarr/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/redlib/app/kustomization.yaml b/kubernetes/apps/default/redlib/app/kustomization.yaml
index 197a01a14..4aa74b27c 100644
--- a/kubernetes/apps/default/redlib/app/kustomization.yaml
+++ b/kubernetes/apps/default/redlib/app/kustomization.yaml
@@ -5,4 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/external
diff --git a/kubernetes/apps/default/redlib/ks.yaml b/kubernetes/apps/default/redlib/ks.yaml
index 164c950f4..6db6eaa8c 100644
--- a/kubernetes/apps/default/redlib/ks.yaml
+++ b/kubernetes/apps/default/redlib/ks.yaml
@@ -10,11 +10,14 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/external
path: ./kubernetes/apps/default/redlib/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/sabnzbd/app/kustomization.yaml b/kubernetes/apps/default/sabnzbd/app/kustomization.yaml
index 44d709772..d6adbe135 100644
--- a/kubernetes/apps/default/sabnzbd/app/kustomization.yaml
+++ b/kubernetes/apps/default/sabnzbd/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/sabnzbd/ks.yaml b/kubernetes/apps/default/sabnzbd/ks.yaml
index 22e426aca..a15a266e1 100644
--- a/kubernetes/apps/default/sabnzbd/ks.yaml
+++ b/kubernetes/apps/default/sabnzbd/ks.yaml
@@ -14,12 +14,18 @@ spec:
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/sabnzbd/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/sharry/app/kustomization.yaml b/kubernetes/apps/default/sharry/app/kustomization.yaml
index 8a4eed78a..2c4ba0af9 100644
--- a/kubernetes/apps/default/sharry/app/kustomization.yaml
+++ b/kubernetes/apps/default/sharry/app/kustomization.yaml
@@ -5,8 +5,6 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/external
- - ../../../../components/volsync
configMapGenerator:
- name: sharry-configmap
files:
diff --git a/kubernetes/apps/default/sharry/ks.yaml b/kubernetes/apps/default/sharry/ks.yaml
index 11792490e..0b79d8da9 100644
--- a/kubernetes/apps/default/sharry/ks.yaml
+++ b/kubernetes/apps/default/sharry/ks.yaml
@@ -10,11 +10,15 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/external
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/sharry/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/smtp-relay/ks.yaml b/kubernetes/apps/default/smtp-relay/ks.yaml
index 9ee38bba3..83baaf0e8 100644
--- a/kubernetes/apps/default/smtp-relay/ks.yaml
+++ b/kubernetes/apps/default/smtp-relay/ks.yaml
@@ -18,6 +18,7 @@ spec:
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/sonarr/app/externalsecret.yaml b/kubernetes/apps/default/sonarr/app/externalsecret.yaml
index 02fb62e4d..8277acb01 100644
--- a/kubernetes/apps/default/sonarr/app/externalsecret.yaml
+++ b/kubernetes/apps/default/sonarr/app/externalsecret.yaml
@@ -14,7 +14,7 @@ spec:
template:
data:
SONARR__AUTH__APIKEY: "{{ .SONARR__API_KEY }}"
- PUSHOVER_TOKEN: "{{ .PUSHOVER_API_TOKEN }}"
+ PUSHOVER_TOKEN: "{{ .SONARR_PUSHOVER_TOKEN }}"
PUSHOVER_USER_KEY: "{{ .PUSHOVER_USER_KEY }}"
dataFrom:
- extract:
diff --git a/kubernetes/apps/default/sonarr/app/kustomization.yaml b/kubernetes/apps/default/sonarr/app/kustomization.yaml
index 1d24cd29f..73ff2e563 100644
--- a/kubernetes/apps/default/sonarr/app/kustomization.yaml
+++ b/kubernetes/apps/default/sonarr/app/kustomization.yaml
@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
configMapGenerator:
- name: sonarr-pushover
files:
diff --git a/kubernetes/apps/default/sonarr/ks.yaml b/kubernetes/apps/default/sonarr/ks.yaml
index 006ef4ebd..06ff03730 100644
--- a/kubernetes/apps/default/sonarr/ks.yaml
+++ b/kubernetes/apps/default/sonarr/ks.yaml
@@ -12,15 +12,22 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/sonarr/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/tandoor/app/kustomization.yaml b/kubernetes/apps/default/tandoor/app/kustomization.yaml
index 4110c45d4..5b0fd1916 100644
--- a/kubernetes/apps/default/tandoor/app/kustomization.yaml
+++ b/kubernetes/apps/default/tandoor/app/kustomization.yaml
@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
configMapGenerator:
- name: tandoor-configmap
files:
diff --git a/kubernetes/apps/default/tandoor/ks.yaml b/kubernetes/apps/default/tandoor/ks.yaml
index a2875903a..b99810ba7 100644
--- a/kubernetes/apps/default/tandoor/ks.yaml
+++ b/kubernetes/apps/default/tandoor/ks.yaml
@@ -10,17 +10,24 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/tandoor/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/tdarr/app/kustomization.yaml b/kubernetes/apps/default/tdarr/app/kustomization.yaml
index a102b1c1a..09bc749a9 100644
--- a/kubernetes/apps/default/tdarr/app/kustomization.yaml
+++ b/kubernetes/apps/default/tdarr/app/kustomization.yaml
@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/tdarr/ks.yaml b/kubernetes/apps/default/tdarr/ks.yaml
index b1141cf65..c466b32d2 100644
--- a/kubernetes/apps/default/tdarr/ks.yaml
+++ b/kubernetes/apps/default/tdarr/ks.yaml
@@ -13,12 +13,18 @@ spec:
dependsOn:
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/tdarr/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
@@ -47,6 +53,7 @@ spec:
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/unifi/app/kustomization.yaml b/kubernetes/apps/default/unifi/app/kustomization.yaml
index a102b1c1a..09bc749a9 100644
--- a/kubernetes/apps/default/unifi/app/kustomization.yaml
+++ b/kubernetes/apps/default/unifi/app/kustomization.yaml
@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/unifi/ks.yaml b/kubernetes/apps/default/unifi/ks.yaml
index 220c9d2c9..7bdff9624 100644
--- a/kubernetes/apps/default/unifi/ks.yaml
+++ b/kubernetes/apps/default/unifi/ks.yaml
@@ -12,12 +12,18 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/unifi/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/vaultwarden/app/kustomization.yaml b/kubernetes/apps/default/vaultwarden/app/kustomization.yaml
index 6af961030..d6adbe135 100644
--- a/kubernetes/apps/default/vaultwarden/app/kustomization.yaml
+++ b/kubernetes/apps/default/vaultwarden/app/kustomization.yaml
@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/external
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/vaultwarden/ks.yaml b/kubernetes/apps/default/vaultwarden/ks.yaml
index db697dfbc..e2713c2df 100644
--- a/kubernetes/apps/default/vaultwarden/ks.yaml
+++ b/kubernetes/apps/default/vaultwarden/ks.yaml
@@ -10,17 +10,24 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/external
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/vaultwarden/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/vikunja/app/kustomization.yaml b/kubernetes/apps/default/vikunja/app/kustomization.yaml
index 8766572f9..de6b65489 100644
--- a/kubernetes/apps/default/vikunja/app/kustomization.yaml
+++ b/kubernetes/apps/default/vikunja/app/kustomization.yaml
@@ -5,7 +5,5 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/external
- - ../../../../components/volsync
generatorOptions:
disableNameSuffixHash: true
diff --git a/kubernetes/apps/default/vikunja/ks.yaml b/kubernetes/apps/default/vikunja/ks.yaml
index 30826af02..3df0998c5 100644
--- a/kubernetes/apps/default/vikunja/ks.yaml
+++ b/kubernetes/apps/default/vikunja/ks.yaml
@@ -10,17 +10,24 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/external
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/vikunja/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
dependsOn:
- name: crunchy-postgres-operator-cluster
+ namespace: flux-system
- name: external-secrets-stores
namespace: external-secrets
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/webhook/app/externalsecret.yaml b/kubernetes/apps/default/webhook/app/externalsecret.yaml
new file mode 100644
index 000000000..69cfb9d11
--- /dev/null
+++ b/kubernetes/apps/default/webhook/app/externalsecret.yaml
@@ -0,0 +1,27 @@
+---
+# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1.json
+apiVersion: external-secrets.io/v1
+kind: ExternalSecret
+metadata:
+ name: webhook
+spec:
+ secretStoreRef:
+ kind: ClusterSecretStore
+ name: onepassword-connect
+ target:
+ name: webhook-secret
+ template:
+ data:
+ JELLYSEERR_PUSHOVER_URL: pover://{{ .PUSHOVER_USER_KEY }}@{{ .JELLYSEERR_PUSHOVER_TOKEN }}
+ RADARR_PUSHOVER_URL: pover://{{ .PUSHOVER_USER_KEY }}@{{ .RADARR_PUSHOVER_TOKEN }}
+ SONARR_PUSHOVER_URL: pover://{{ .PUSHOVER_USER_KEY }}@{{ .SONARR_PUSHOVER_TOKEN }}
+ SONARR_API_KEY: "{{ .SONARR__API_KEY }}"
+ dataFrom:
+ - extract:
+ key: jellyseerr
+ - extract:
+ key: radarr
+ - extract:
+ key: sonarr
+ - extract:
+ key: pushover
diff --git a/kubernetes/apps/default/webhook/app/helmrelease.yaml b/kubernetes/apps/default/webhook/app/helmrelease.yaml
new file mode 100644
index 000000000..1a7023457
--- /dev/null
+++ b/kubernetes/apps/default/webhook/app/helmrelease.yaml
@@ -0,0 +1,79 @@
+---
+# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
+apiVersion: helm.toolkit.fluxcd.io/v2
+kind: HelmRelease
+metadata:
+ name: &app webhook
+spec:
+ interval: 1h
+ chartRef:
+ kind: OCIRepository
+ name: app-template
+ install:
+ remediation:
+ retries: -1
+ upgrade:
+ cleanupOnFail: true
+ remediation:
+ retries: 3
+ values:
+ controllers:
+ webhook:
+ replicas: 2
+ strategy: RollingUpdate
+ annotations:
+ reloader.stakater.com/auto: "true"
+ containers:
+ app:
+ image:
+ repository: ghcr.io/home-operations/webhook
+ tag: 2.8.2@sha256:052e3d82aa13091459faa75550943faf06309c0ca71253ea1cece7880b1d5faa
+ env:
+ WEBHOOK__PORT: &port 8080
+ TZ: ${TIMEZONE}
+ envFrom:
+ - secretRef:
+ name: webhook-secret
+ securityContext:
+ allowPrivilegeEscalation: false
+ readOnlyRootFilesystem: true
+ capabilities: { drop: ["ALL"] }
+ resources:
+ requests:
+ cpu: 100m
+ limits:
+ memory: 256Mi
+ defaultPodOptions:
+ securityContext:
+ runAsNonRoot: true
+ runAsUser: 1000
+ runAsGroup: 1000
+ fsGroup: 1000
+ fsGroupChangePolicy: OnRootMismatch
+ service:
+ app:
+ controller: webhook
+ ports:
+ http:
+ port: *port
+ ingress:
+ app:
+ enabled: true
+ className: internal
+ hosts:
+ - host: &host "{{ .Release.Name }}.${SECRET_EXTERNAL_DOMAIN}"
+ paths:
+ - path: /
+ service:
+ identifier: app
+ port: *port
+ tls:
+ - hosts:
+ - *host
+ persistence:
+ config:
+ type: configMap
+ name: webhook-configmap
+ defaultMode: 0775
+ globalMounts:
+ - readOnly: true
diff --git a/kubernetes/apps/default/webhook/app/kustomization.yaml b/kubernetes/apps/default/webhook/app/kustomization.yaml
new file mode 100644
index 000000000..23e7a0a56
--- /dev/null
+++ b/kubernetes/apps/default/webhook/app/kustomization.yaml
@@ -0,0 +1,20 @@
+---
+# yaml-language-server: $schema=https://json.schemastore.org/kustomization
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+ - ./externalsecret.yaml
+ - ./helmrelease.yaml
+configMapGenerator:
+ - name: webhook-configmap
+ files:
+ - hooks.yaml=./resources/hooks.yaml
+ - jellyseerr-pushover.sh=./resources/jellyseerr-pushover.sh
+ - radarr-pushover.sh=./resources/radarr-pushover.sh
+ - sonarr-pushover.sh=./resources/sonarr-pushover.sh
+ - sonarr-refresh-series.sh=./resources/sonarr-refresh-series.sh
+ - sonarr-tag-codecs.sh=./resources/sonarr-tag-codecs.sh
+generatorOptions:
+ disableNameSuffixHash: true
+ annotations:
+ kustomize.toolkit.fluxcd.io/substitute: disabled
diff --git a/kubernetes/apps/default/webhook/app/resources/hooks.yaml b/kubernetes/apps/default/webhook/app/resources/hooks.yaml
new file mode 100644
index 000000000..87ba998ef
--- /dev/null
+++ b/kubernetes/apps/default/webhook/app/resources/hooks.yaml
@@ -0,0 +1,109 @@
+---
+- id: jellyseerr-pushover
+ execute-command: /config/jellyseerr-pushover.sh
+ command-working-directory: /config
+ pass-arguments-to-command:
+ - source: string
+ name: '{{ getenv "JELLYSEERR_PUSHOVER_URL" }}'
+ - source: entire-payload
+
+- id: radarr-pushover
+ execute-command: /config/radarr-pushover.sh
+ command-working-directory: /config
+ pass-environment-to-command:
+ - envname: RADARR_PUSHOVER_URL
+ source: string
+ name: '{{ getenv "RADARR_PUSHOVER_URL" }}'
+ - envname: RADARR_EVENT_TYPE
+ source: payload
+ name: eventType
+ - envname: RADARR_APPLICATION_URL
+ source: payload
+ name: applicationUrl
+ - envname: RADARR_MOVIE_TITLE
+ source: payload
+ name: movie.title
+ - envname: RADARR_MOVIE_YEAR
+ source: payload
+ name: movie.year
+ - envname: RADARR_MOVIE_OVERVIEW
+ source: payload
+ name: movie.overview
+ - envname: RADARR_MOVIE_TMDB_ID
+ source: payload
+ name: movie.tmdbId
+ - envname: RADARR_DOWNLOAD_CLIENT
+ source: payload
+ name: downloadClient
+
+- id: sonarr-pushover
+ execute-command: /config/sonarr-pushover.sh
+ command-working-directory: /config
+ pass-environment-to-command:
+ - envname: SONARR_PUSHOVER_URL
+ source: string
+ name: '{{ getenv "SONARR_PUSHOVER_URL" }}'
+ - envname: SONARR_EVENT_TYPE
+ source: payload
+ name: eventType
+ - envname: SONARR_APPLICATION_URL
+ source: payload
+ name: applicationUrl
+ - envname: SONARR_SERIES_TITLE
+ source: payload
+ name: series.title
+ - envname: SONARR_SERIES_TITLE_SLUG
+ source: payload
+ name: series.titleSlug
+ - envname: SONARR_EPISODE_TITLE
+ source: payload
+ name: episodes.0.title
+ - envname: SONARR_EPISODE_SEASON_NUMBER
+ source: payload
+ name: episodes.0.seasonNumber
+ - envname: SONARR_EPISODE_NUMBER
+ source: payload
+ name: episodes.0.episodeNumber
+ - envname: SONARR_DOWNLOAD_CLIENT
+ source: payload
+ name: downloadClient
+
+- id: sonarr-refresh-series
+ execute-command: /config/sonarr-refresh-series.sh
+ command-working-directory: /config
+ pass-environment-to-command:
+ - envname: SONARR_REMOTE_ADDR
+ source: request
+ name: remote-addr
+ - envname: SONARR_API_KEY
+ source: string
+ name: '{{ getenv "SONARR_API_KEY" }}'
+ - envname: SONARR_EVENT_TYPE
+ source: payload
+ name: eventType
+ - envname: SONARR_SERIES_ID
+ source: payload
+ name: series.id
+ - envname: SONARR_SERIES_TITLE
+ source: payload
+ name: series.title
+
+- id: sonarr-tag-codecs
+ execute-command: /config/sonarr-tag-codecs.sh
+ command-working-directory: /config
+ pass-environment-to-command:
+ - envname: SONARR_REMOTE_ADDR
+ source: request
+ name: remote-addr
+ - envname: SONARR_API_KEY
+ source: string
+ name: '{{ getenv "SONARR_API_KEY" }}'
+ - envname: SONARR_EVENT_TYPE
+ source: payload
+ name: eventType
+ - envname: SONARR_SERIES_ID
+ source: payload
+ name: series.id
+ - envname: SONARR_SERIES_TITLE
+ source: payload
+ name: series.title
diff --git a/kubernetes/apps/default/webhook/app/resources/jellyseerr-pushover.sh b/kubernetes/apps/default/webhook/app/resources/jellyseerr-pushover.sh
new file mode 100644
index 000000000..9f1d65df9
--- /dev/null
+++ b/kubernetes/apps/default/webhook/app/resources/jellyseerr-pushover.sh
@@ -0,0 +1,32 @@
+#!/usr/bin/env bash
+set -Eeuo pipefail
+
+JELLYSEERR_PUSHOVER_URL=${1:?}
+PAYLOAD=${2:?}
+
+echo "[DEBUG] Payload: ${PAYLOAD}"
+
+function _jq() {
+ jq --raw-output "${1:?}" <<<"${PAYLOAD}"
+}
+
+function notify() {
+ local type="$(_jq '.notification_type')"
+
+ if [[ "${type}" == "TEST_NOTIFICATION" ]]; then
+ printf -v PUSHOVER_TITLE "Test Notification"
+ printf -v PUSHOVER_MESSAGE "Howdy this is a test notification from %s" "Jellyseerr"
+ printf -v PUSHOVER_URL "%s" "https://requests.devbu.io"
+ printf -v PUSHOVER_URL_TITLE "Open %s" "Jellyseerr"
+ printf -v PUSHOVER_PRIORITY "%s" "low"
+ fi
+
+ apprise -vv --title "${PUSHOVER_TITLE}" --body "${PUSHOVER_MESSAGE}" --input-format html \
+ "${JELLYSEERR_PUSHOVER_URL}?url=${PUSHOVER_URL}&url_title=${PUSHOVER_URL_TITLE}&priority=${PUSHOVER_PRIORITY}&format=html"
+}
+
+function main() {
+ notify
+}
+
+main "$@"
diff --git a/kubernetes/apps/default/webhook/app/resources/radarr-pushover.sh b/kubernetes/apps/default/webhook/app/resources/radarr-pushover.sh
new file mode 100644
index 000000000..6ca00ba74
--- /dev/null
+++ b/kubernetes/apps/default/webhook/app/resources/radarr-pushover.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+set -Eeuo pipefail
+
+function notify() {
+ if [[ "${RADARR_EVENT_TYPE}" == "Test" ]]; then
+ printf -v PUSHOVER_TITLE "Test Notification"
+ printf -v PUSHOVER_MESSAGE "Howdy this is a test notification"
+ printf -v PUSHOVER_URL "%s" "${RADARR_APPLICATION_URL}"
+ printf -v PUSHOVER_URL_TITLE "View Movies"
+ printf -v PUSHOVER_PRIORITY "low"
+ elif [[ "${RADARR_EVENT_TYPE}" == "ManualInteractionRequired" ]]; then
+ printf -v PUSHOVER_TITLE "Movie Requires Manual Interaction"
+ printf -v PUSHOVER_MESSAGE "%s (%s)\nClient: %s" \
+ "${RADARR_MOVIE_TITLE}" \
+ "${RADARR_MOVIE_YEAR}" \
+ "${RADARR_DOWNLOAD_CLIENT}"
+ printf -v PUSHOVER_URL "%s/activity/queue" "${RADARR_APPLICATION_URL}"
+ printf -v PUSHOVER_URL_TITLE "View Queue"
+ printf -v PUSHOVER_PRIORITY "high"
+ elif [[ "${RADARR_EVENT_TYPE}" == "Download" ]]; then
+ printf -v PUSHOVER_TITLE "Movie Added"
+ printf -v PUSHOVER_MESSAGE "%s (%s)\n%s\n\nClient: %s" \
+ "${RADARR_MOVIE_TITLE}" \
+ "${RADARR_MOVIE_YEAR}" \
+ "${RADARR_MOVIE_OVERVIEW}" \
+ "${RADARR_DOWNLOAD_CLIENT}"
+ printf -v PUSHOVER_URL "%s/movie/%s" \
+ "${RADARR_APPLICATION_URL}" \
+ "${RADARR_MOVIE_TMDB_ID}"
+ printf -v PUSHOVER_URL_TITLE "View Movie"
+ printf -v PUSHOVER_PRIORITY "low"
+ fi
+
+ apprise -vv --title "${PUSHOVER_TITLE}" --body "${PUSHOVER_MESSAGE}" --input-format html \
+ "${RADARR_PUSHOVER_URL}?url=${PUSHOVER_URL}&url_title=${PUSHOVER_URL_TITLE}&priority=${PUSHOVER_PRIORITY}&format=html"
+}
+
+function main() {
+ notify
+}
+
+main "$@"
diff --git a/kubernetes/apps/default/webhook/app/resources/sonarr-pushover.sh b/kubernetes/apps/default/webhook/app/resources/sonarr-pushover.sh
new file mode 100644
index 000000000..aa078ab4e
--- /dev/null
+++ b/kubernetes/apps/default/webhook/app/resources/sonarr-pushover.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+set -Eeuo pipefail
+
+function notify() {
+ if [[ "${SONARR_EVENT_TYPE}" == "Test" ]]; then
+ printf -v PUSHOVER_TITLE "Test Notification"
+ printf -v PUSHOVER_MESSAGE "Howdy this is a test notification"
+ printf -v PUSHOVER_URL "%s" "${SONARR_APPLICATION_URL}"
+ printf -v PUSHOVER_URL_TITLE "View Series"
+ printf -v PUSHOVER_PRIORITY "low"
+ elif [[ "${SONARR_EVENT_TYPE}" == "ManualInteractionRequired" ]]; then
+ printf -v PUSHOVER_TITLE "Episode Requires Manual Interaction"
+ printf -v PUSHOVER_MESSAGE "%s\nClient: %s" \
+ "${SONARR_SERIES_TITLE}" \
+ "${SONARR_DOWNLOAD_CLIENT}"
+ printf -v PUSHOVER_URL "%s/activity/queue" "${SONARR_APPLICATION_URL}"
+ printf -v PUSHOVER_URL_TITLE "View Queue"
+ printf -v PUSHOVER_PRIORITY "high"
+ elif [[ "${SONARR_EVENT_TYPE}" == "Download" ]]; then
+ printf -v PUSHOVER_TITLE "Episode Added"
+ printf -v PUSHOVER_MESSAGE "%s (S%02dE%02d)\n%s\n\nClient: %s" \
+ "${SONARR_SERIES_TITLE}" \
+ "${SONARR_EPISODE_SEASON_NUMBER}" \
+ "${SONARR_EPISODE_NUMBER}" \
+ "${SONARR_EPISODE_TITLE}" \
+ "${SONARR_DOWNLOAD_CLIENT}"
+ printf -v PUSHOVER_URL "%s/series/%s" \
+ "${SONARR_APPLICATION_URL}" \
+ "${SONARR_SERIES_TITLE_SLUG}"
+ printf -v PUSHOVER_URL_TITLE "View Series"
+ printf -v PUSHOVER_PRIORITY "low"
+ fi
+
+ apprise -vv --title "${PUSHOVER_TITLE}" --body "${PUSHOVER_MESSAGE}" --input-format html \
+ "${SONARR_PUSHOVER_URL}?url=${PUSHOVER_URL}&url_title=${PUSHOVER_URL_TITLE}&priority=${PUSHOVER_PRIORITY}&format=html"
+}
+
+function main() {
+ notify
+}
+
+main "$@"
diff --git a/kubernetes/apps/default/webhook/app/resources/sonarr-refresh-series.sh b/kubernetes/apps/default/webhook/app/resources/sonarr-refresh-series.sh
new file mode 100644
index 000000000..9655bd8e8
--- /dev/null
+++ b/kubernetes/apps/default/webhook/app/resources/sonarr-refresh-series.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+set -Eeuo pipefail
+
+function refresh() {
+ if [[ "${SONARR_EVENT_TYPE}" == "Test" ]]; then
+ echo "[DEBUG] test event received from ${SONARR_REMOTE_ADDR}, nothing to do ..."
+ elif [[ "${SONARR_EVENT_TYPE}" == "Grab" ]]; then
+ episodes=$(
+ curl -fsSL --header "X-Api-Key: ${SONARR_API_KEY}" "http://${SONARR_REMOTE_ADDR}/api/v3/episode?seriesId=${SERIES_ID}" |
+ jq --raw-output '[.[] | select((.title == "TBA") or (.title == "TBD"))] | length'
+ )
+ if ((episodes > 0)); then
+ echo "[INFO] episode titles found with TBA/TBD titles, refreshing series ${SONARR_SERIES_TITLE} ..."
+ curl -fsSL --request POST \
+ --header "X-Api-Key: ${SONARR_API_KEY}" \
+ --header "Content-Type: application/json" \
+ --data-binary "$(jo name=RefreshSeries seriesId="${SERIES_ID}")" \
+ "http://${SONARR_REMOTE_ADDR}/api/v3/command" &>/dev/null
+ fi
+ fi
+}
+
+function main() {
+ refresh
+}
+
+main "$@"
diff --git a/kubernetes/apps/default/webhook/app/resources/sonarr-tag-codecs.sh b/kubernetes/apps/default/webhook/app/resources/sonarr-tag-codecs.sh
new file mode 100644
index 000000000..906077281
--- /dev/null
+++ b/kubernetes/apps/default/webhook/app/resources/sonarr-tag-codecs.sh
@@ -0,0 +1,148 @@
+#!/usr/bin/env bash
+set -Eeuo pipefail
+
+# Cache existing tags once at the start
+declare -A TAG_CACHE
+
+# Function to cache existing tags
+function cache_existing_tags() {
+ existing_tags_cache=$(curl -fsSL --header "X-Api-Key: ${SONARR_API_KEY}" "http://${SONARR_REMOTE_ADDR}/api/v3/tag")
+ while IFS=":" read -r id label; do
+ TAG_CACHE["$id"]="$label"
+ done < <(echo "${existing_tags_cache}" | jq --raw-output '.[] | "\(.id):\(.label)"')
+}
+
+# Function to get codec tags for a series
+function get_codec_tags() {
+ local series_id=$1
+
+ # Extract and map codecs in one pass
+ local codecs
+ codecs=$(
+ curl -fsSL --header "X-Api-Key: ${SONARR_API_KEY}" "http://${SONARR_REMOTE_ADDR}/api/v3/episodefile?seriesId=${series_id}" | jq --raw-output '
+ [
+ .[] |
+ (.mediaInfo.videoCodec // "other" |
+ gsub("x"; "h") | ascii_downcase |
+ if test("hevc") then "h265"
+ elif test("divx|mpeg2|xvid") then "h264"
+ elif test("av1") then "av1"
+ elif test("h264|h265") then . else "other" end
+ ) | "codec:" + .
+ ] | unique | .[]'
+ )
+
+ echo "${codecs[@]}"
+}
+
+# Function to check if a tag exists, if not create it and return the tag ID
+function get_or_create_tag_id() {
+ local tag_label=$1
+ local tag_id
+
+ # Search cached tags
+ tag_id=$(echo "${existing_tags_cache}" | jq --raw-output ".[] | select(.label == \"${tag_label}\") | .id")
+
+ # If tag doesn't exist, create it
+ if [[ -z "${tag_id}" ]]; then
+ local new_tag
+ new_tag=$(curl -fsSL --request POST --header "X-Api-Key: ${SONARR_API_KEY}" --header "Content-Type: application/json" --data "$(jo label="${tag_label}")" "http://${SONARR_REMOTE_ADDR}/api/v3/tag")
+ tag_id=$(echo "${new_tag}" | jq --raw-output '.id')
+
+ # Update cache
+ existing_tags_cache=$(echo "${existing_tags_cache}" | jq ". += [{\"id\": ${tag_id}, \"label\": \"${tag_label}\"}]")
+ TAG_CACHE["$tag_id"]="${tag_label}"
+ fi
+
+ echo "${tag_id}"
+}
+
+# Function to update series tags in bulk
+function update_series_tags() {
+ local series_data="$1"
+ local codecs="$2"
+
+ # Get the current series tags
+ local series_tags
+ series_tags=$(echo "$series_data" | jq --raw-output '.tags')
+
+ # Track tags to add/remove
+ local tags_to_add=()
+ local tags_to_remove=()
+
+ # Identify tags to add
+ for codec in $codecs; do
+ local tag_id
+ tag_id=$(get_or_create_tag_id "${codec}")
+ if ! echo "${series_tags}" | jq --exit-status ". | index(${tag_id})" &>/dev/null; then
+ tags_to_add+=("$tag_id")
+ fi
+ done
+
+ # Identify tags to remove
+ for tag_id in $(echo "${series_tags}" | jq --raw-output '.[]'); do
+ local tag_label="${TAG_CACHE[$tag_id]}"
+ if [[ -n "${tag_label}" && ! " ${codecs} " =~ ${tag_label} ]] && [[ "${tag_label}" =~ codec:.* ]]; then
+ tags_to_remove+=("$tag_id")
+ fi
+ done
+
+ if [[ ${#tags_to_add[@]} -gt 0 ]]; then
+ series_data=$(echo "${series_data}" | jq --argjson add_tags "$(printf '%s\n' "${tags_to_add[@]}" | jq --raw-input . | jq --slurp 'map(tonumber)')" '.tags = (.tags + $add_tags | unique)')
+ fi
+
+ if [[ ${#tags_to_remove[@]} -gt 0 ]]; then
+ series_data=$(echo "${series_data}" | jq --argjson remove_tags "$(printf '%s\n' "${tags_to_remove[@]}" | jq --raw-input . | jq --slurp 'map(tonumber)')" '.tags |= map(select(. as $tag | $remove_tags | index($tag) | not))')
+ fi
+
+ echo "${series_data}"
+}
+
+function tag() {
+ if [[ "${SONARR_EVENT_TYPE}" == "Test" ]]; then
+ echo "[DEBUG] test event received from ${SONARR_REMOTE_ADDR}, nothing to do ..."
+ elif [[ "${SONARR_EVENT_TYPE}" == "Download" ]]; then
+ cache_existing_tags
+
+ local orig_series_data
+ orig_series_data=$(curl -fsSL --header "X-Api-Key: ${SONARR_API_KEY}" "http://${SONARR_REMOTE_ADDR}/api/v3/series/${SONARR_SERIES_ID}")
+
+ local series_episode_file_count
+ series_episode_file_count=$(echo "${orig_series_data}" | jq --raw-output '.statistics.episodeFileCount')
+
+ if [[ "${series_episode_file_count}" == "null" || "${series_episode_file_count}" -eq 0 ]]; then
+ echo "Skipping ${SONARR_SERIES_TITLE} (ID: ${SONARR_SERIES_ID}) due to no episode files"
+ exit 0
+ fi
+
+ # Get unique codecs for the series
+ local codecs
+ codecs=$(get_codec_tags "${SONARR_SERIES_ID}")
+
+ # Update the series tags
+ local updated_series_data
+ updated_series_data=$(update_series_tags "${orig_series_data}" "${codecs}")
+
+ local orig_tags updated_tags
+ orig_tags=$(echo "${orig_series_data}" | jq --compact-output '.tags')
+ updated_tags=$(echo "${updated_series_data}" | jq --compact-output '.tags')
+
+ if [[ "${orig_tags}" == "${updated_tags}" ]]; then
+ echo "[INFO] skipping ${SONARR_SERIES_TITLE} (ID: ${SONARR_SERIES_ID}, Tags: [${codecs//$'\n'/,}]) due to no changes"
+ exit 0
+ fi
+
+ echo "[INFO] updating ${SONARR_SERIES_TITLE} (ID: ${SONARR_SERIES_ID}, Tags: [${codecs//$'\n'/,}])"
+
+ curl -fsSL --header "X-Api-Key: ${SONARR_API_KEY}" \
+ --request PUT \
+ --header "Content-Type: application/json" \
+ --data "${updated_series_data}" "http://${SONARR_REMOTE_ADDR}/api/v3/series" &>/dev/null
+ fi
+}
+
+function main() {
+ tag
+}
+
+main "$@"
diff --git a/kubernetes/apps/default/webhook/ks.yaml b/kubernetes/apps/default/webhook/ks.yaml
new file mode 100644
index 000000000..b2c5307ed
--- /dev/null
+++ b/kubernetes/apps/default/webhook/ks.yaml
@@ -0,0 +1,27 @@
+---
+# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
+apiVersion: kustomize.toolkit.fluxcd.io/v1
+kind: Kustomization
+metadata:
+ name: &app webhook
+ namespace: &namespace default
+spec:
+ commonMetadata:
+ labels:
+ app.kubernetes.io/name: *app
+ components:
+ - ../../../../components/gatus/guarded
+ interval: 1h
+ path: ./kubernetes/apps/default/webhook/app
+ postBuild:
+ substitute:
+ APP: *app
+ prune: true
+ retryInterval: 2m
+ sourceRef:
+ kind: GitRepository
+ name: home-ops-kubernetes
+ namespace: flux-system
+ targetNamespace: *namespace
+ timeout: 5m
+ wait: false
diff --git a/kubernetes/apps/default/zigbee2mqtt/app/kustomization.yaml b/kubernetes/apps/default/zigbee2mqtt/app/kustomization.yaml
index adc4cd03c..f06a8e56e 100644
--- a/kubernetes/apps/default/zigbee2mqtt/app/kustomization.yaml
+++ b/kubernetes/apps/default/zigbee2mqtt/app/kustomization.yaml
@@ -4,5 +4,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/zigbee2mqtt/ks.yaml b/kubernetes/apps/default/zigbee2mqtt/ks.yaml
index e39245054..00047bba1 100644
--- a/kubernetes/apps/default/zigbee2mqtt/ks.yaml
+++ b/kubernetes/apps/default/zigbee2mqtt/ks.yaml
@@ -11,14 +11,21 @@ spec:
labels:
app.kubernetes.io/name: *app
dependsOn:
- - name: node-feature-discovery
+ - name: node-feature-discovery-rules
+ namespace: flux-system
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/zigbee2mqtt/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/default/zwave-js-ui/app/kustomization.yaml b/kubernetes/apps/default/zwave-js-ui/app/kustomization.yaml
index a102b1c1a..09bc749a9 100644
--- a/kubernetes/apps/default/zwave-js-ui/app/kustomization.yaml
+++ b/kubernetes/apps/default/zwave-js-ui/app/kustomization.yaml
@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/default/zwave-js-ui/ks.yaml b/kubernetes/apps/default/zwave-js-ui/ks.yaml
index cf79b2b7b..1b228f4da 100644
--- a/kubernetes/apps/default/zwave-js-ui/ks.yaml
+++ b/kubernetes/apps/default/zwave-js-ui/ks.yaml
@@ -11,14 +11,21 @@ spec:
labels:
app.kubernetes.io/name: *app
dependsOn:
- - name: node-feature-discovery
+ - name: node-feature-discovery-rules
+ namespace: flux-system
- name: rook-ceph-cluster
+ namespace: flux-system
- name: volsync
+ namespace: flux-system
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/default/zwave-js-ui/app
prune: true
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
+ namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m
diff --git a/kubernetes/apps/ngnode/landing-page/app-staging/kustomization.yaml b/kubernetes/apps/ngnode/landing-page/app-staging/kustomization.yaml
index 66135adf0..2e933f55d 100644
--- a/kubernetes/apps/ngnode/landing-page/app-staging/kustomization.yaml
+++ b/kubernetes/apps/ngnode/landing-page/app-staging/kustomization.yaml
@@ -4,6 +4,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/external
generatorOptions:
disableNameSuffixHash: true
diff --git a/kubernetes/apps/ngnode/landing-page/app/kustomization.yaml b/kubernetes/apps/ngnode/landing-page/app/kustomization.yaml
index 66135adf0..2e933f55d 100644
--- a/kubernetes/apps/ngnode/landing-page/app/kustomization.yaml
+++ b/kubernetes/apps/ngnode/landing-page/app/kustomization.yaml
@@ -4,6 +4,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/external
generatorOptions:
disableNameSuffixHash: true
diff --git a/kubernetes/apps/observability/apprise/app/kustomization.yaml b/kubernetes/apps/observability/apprise/app/kustomization.yaml
index a102b1c1a..09bc749a9 100644
--- a/kubernetes/apps/observability/apprise/app/kustomization.yaml
+++ b/kubernetes/apps/observability/apprise/app/kustomization.yaml
@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
- - ../../../../components/volsync
diff --git a/kubernetes/apps/observability/apprise/ks.yaml b/kubernetes/apps/observability/apprise/ks.yaml
index b4df25469..919812b52 100644
--- a/kubernetes/apps/observability/apprise/ks.yaml
+++ b/kubernetes/apps/observability/apprise/ks.yaml
@@ -13,6 +13,9 @@ spec:
dependsOn:
- name: rook-ceph-cluster
- name: volsync
+ components:
+ - ../../../../components/gatus/guarded
+ - ../../../../components/volsync
path: ./kubernetes/apps/observability/apprise/app
prune: true
sourceRef:
diff --git a/kubernetes/apps/observability/gatus/app/helmrelease.yaml b/kubernetes/apps/observability/gatus/app/helmrelease.yaml
index 94df22b67..b547470e7 100644
--- a/kubernetes/apps/observability/gatus/app/helmrelease.yaml
+++ b/kubernetes/apps/observability/gatus/app/helmrelease.yaml
@@ -29,8 +29,8 @@ spec:
initContainers:
init-config:
image:
- repository: ghcr.io/kiwigrid/k8s-sidecar
- tag: 1.30.3@sha256:49dcce269568b1645b0050f296da787c99119647965229919a136614123f0627
+ repository: ghcr.io/home-operations/k8s-sidecar
+ tag: 1.30.3@sha256:39cca7abcad8f1621b9462d95f7d0e60301b92fcb0ff4de0ad4561859011cddf
env:
FOLDER: /config
LABEL: gatus.io/enabled
@@ -69,7 +69,7 @@ spec:
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
- failureThreshold: 3
+ failureThreshold: 6
readiness: *probes
securityContext:
allowPrivilegeEscalation: false
diff --git a/kubernetes/apps/observability/pushgateway/app/kustomization.yaml b/kubernetes/apps/observability/pushgateway/app/kustomization.yaml
index db575b725..09bc749a9 100644
--- a/kubernetes/apps/observability/pushgateway/app/kustomization.yaml
+++ b/kubernetes/apps/observability/pushgateway/app/kustomization.yaml
@@ -4,4 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- - ../../../../components/gatus/guarded
diff --git a/kubernetes/apps/observability/pushgateway/ks.yaml b/kubernetes/apps/observability/pushgateway/ks.yaml
index 4342c0fd2..b6e4854c4 100644
--- a/kubernetes/apps/observability/pushgateway/ks.yaml
+++ b/kubernetes/apps/observability/pushgateway/ks.yaml
@@ -12,6 +12,8 @@ spec:
app.kubernetes.io/name: *app
dependsOn:
- name: kube-prometheus-stack-crds
+ components:
+ - ../../../../components/gatus/guarded
path: ./kubernetes/apps/observability/pushgateway/app
prune: true
sourceRef:
diff --git a/kubernetes/apps/observability/scrutiny/app/externalsecret.yaml b/kubernetes/apps/observability/scrutiny/app/externalsecret.yaml
index c6587d827..f355a7db5 100644
--- a/kubernetes/apps/observability/scrutiny/app/externalsecret.yaml
+++ b/kubernetes/apps/observability/scrutiny/app/externalsecret.yaml
@@ -13,7 +13,7 @@ spec:
template:
engineVersion: v2
data:
- SCRUTINY_NOTIFY_URLS: pushover://shoutrrr:{{ .PUSHOVER_API_TOKEN }}@{{ .PUSHOVER_USER_KEY }}
+ SCRUTINY_NOTIFY_URLS: pushover://shoutrrr:{{ .SCRUTINY_PUSHOVER_TOKEN }}@{{ .PUSHOVER_USER_KEY }}
dataFrom:
- extract:
key: pushover
diff --git a/kubernetes/apps/observability/scrutiny/app/kustomization.yaml b/kubernetes/apps/observability/scrutiny/app/kustomization.yaml
index d4e51b18b..c70f0af66 100644
--- a/kubernetes/apps/observability/scrutiny/app/kustomization.yaml
+++ b/kubernetes/apps/observability/scrutiny/app/kustomization.yaml
@@ -3,4 +3,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- helmrelease.yaml
- - ../../../../components/volsync
diff --git a/kubernetes/apps/observability/scrutiny/ks.yaml b/kubernetes/apps/observability/scrutiny/ks.yaml
index fc908f260..a6a214c1f 100644
--- a/kubernetes/apps/observability/scrutiny/ks.yaml
+++ b/kubernetes/apps/observability/scrutiny/ks.yaml
@@ -15,6 +15,8 @@ spec:
namespace: external-secrets
- name: rook-ceph-cluster
- name: volsync
+ components:
+ - ../../../../components/volsync
path: ./kubernetes/apps/observability/scrutiny/app
prune: true
sourceRef:
diff --git a/kubernetes/components/common/alerts/github-status/externalsecret.yaml b/kubernetes/components/common/alerts/github-status/externalsecret.yaml
index 3e0a33190..a532a6438 100644
--- a/kubernetes/components/common/alerts/github-status/externalsecret.yaml
+++ b/kubernetes/components/common/alerts/github-status/externalsecret.yaml
@@ -7,7 +7,7 @@ metadata:
spec:
secretStoreRef:
kind: ClusterSecretStore
- name: onepassword
+ name: onepassword-connect
target:
name: github-status-token-secret
template:
diff --git a/kubernetes/components/common/alerts/github-status/provider.yaml b/kubernetes/components/common/alerts/github-status/provider.yaml
index 99297aebd..95379cdd7 100644
--- a/kubernetes/components/common/alerts/github-status/provider.yaml
+++ b/kubernetes/components/common/alerts/github-status/provider.yaml
@@ -6,6 +6,6 @@ metadata:
name: github-status
spec:
type: github
- address: https://github.com/onedr0p/home-ops
+ address: https://github.com/auricom/home-ops
secretRef:
name: github-status-token-secret
diff --git a/kubernetes/components/gatus/external/config.yaml b/kubernetes/components/gatus/external/config.yaml
new file mode 100644
index 000000000..bd6cd766f
--- /dev/null
+++ b/kubernetes/components/gatus/external/config.yaml
@@ -0,0 +1,11 @@
+endpoints:
+ - name: "${APP}"
+ group: external
+ url: "https://${GATUS_SUBDOMAIN:-${APP}}.${SECRET_EXTERNAL_DOMAIN}${GATUS_PATH:-/}"
+ interval: 1m
+ client:
+ dns-resolver: tcp://192.168.8.1:53
+ conditions:
+ - "[STATUS] == ${GATUS_STATUS:-200}"
+ alerts:
+ - type: pushover
diff --git a/kubernetes/components/gatus/external/configmap.yaml b/kubernetes/components/gatus/external/configmap.yaml
deleted file mode 100644
index a5548ca90..000000000
--- a/kubernetes/components/gatus/external/configmap.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: "${APP}-gatus-ep"
- labels:
- gatus.io/enabled: "true"
-data:
- config.yaml: |
- endpoints:
- - name: "${APP}"
- group: external
- url: "https://${GATUS_SUBDOMAIN:-${APP}}.${SECRET_EXTERNAL_DOMAIN}${GATUS_PATH:-/}"
- interval: 1m
- client:
- dns-resolver: tcp://192.168.8.1:53
- conditions:
- - "[STATUS] == ${GATUS_STATUS:-200}"
- alerts:
- - type: pushover
diff --git a/kubernetes/components/gatus/external/kustomization.yaml b/kubernetes/components/gatus/external/kustomization.yaml
index e09060b99..3c51aa7bf 100644
--- a/kubernetes/components/gatus/external/kustomization.yaml
+++ b/kubernetes/components/gatus/external/kustomization.yaml
@@ -1,6 +1,13 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
- - ./configmap.yaml
+apiVersion: kustomize.config.k8s.io/v1alpha1
+kind: Component
+configMapGenerator:
+ - name: ${APP}-gatus-ep
+ files:
+ - config.yaml=./config.yaml
+ options:
+ labels:
+ gatus.io/enabled: "true"
+generatorOptions:
+ disableNameSuffixHash: true
diff --git a/kubernetes/components/gatus/guarded/config.yaml b/kubernetes/components/gatus/guarded/config.yaml
new file mode 100644
index 000000000..f4f307a9e
--- /dev/null
+++ b/kubernetes/components/gatus/guarded/config.yaml
@@ -0,0 +1,12 @@
+endpoints:
+ - name: "${APP}"
+ group: guarded
+ url: "https://${GATUS_SUBDOMAIN:-${APP}}.${GATUS_DOMAIN:-${SECRET_EXTERNAL_DOMAIN}}${GATUS_PATH:-/}"
+ interval: 1m
+ ui:
+ hide-hostname: true
+ hide-url: true
+ conditions:
+ - "[STATUS] == ${GATUS_STATUS:-200}"
+ alerts:
+ - type: pushover
diff --git a/kubernetes/components/gatus/guarded/configmap.yaml b/kubernetes/components/gatus/guarded/configmap.yaml
deleted file mode 100644
index 9160729e7..000000000
--- a/kubernetes/components/gatus/guarded/configmap.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: "${APP}-gatus-ep"
- labels:
- gatus.io/enabled: "true"
-data:
- config.yaml: |
- endpoints:
- - name: "${APP}"
- group: guarded
- url: "https://${GATUS_SUBDOMAIN:-${APP}}.${GATUS_DOMAIN:-${SECRET_EXTERNAL_DOMAIN}}${GATUS_PATH:-/}"
- interval: 1m
- ui:
- hide-hostname: true
- hide-url: true
- conditions:
- - "[STATUS] == ${GATUS_STATUS:-200}"
- alerts:
- - type: pushover
diff --git a/kubernetes/components/gatus/guarded/kustomization.yaml b/kubernetes/components/gatus/guarded/kustomization.yaml
index e09060b99..3c51aa7bf 100644
--- a/kubernetes/components/gatus/guarded/kustomization.yaml
+++ b/kubernetes/components/gatus/guarded/kustomization.yaml
@@ -1,6 +1,13 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-resources:
- - ./configmap.yaml
+apiVersion: kustomize.config.k8s.io/v1alpha1
+kind: Component
+configMapGenerator:
+ - name: ${APP}-gatus-ep
+ files:
+ - config.yaml=./config.yaml
+ options:
+ labels:
+ gatus.io/enabled: "true"
+generatorOptions:
+ disableNameSuffixHash: true
diff --git a/kubernetes/components/volsync/kustomization.yaml b/kubernetes/components/volsync/kustomization.yaml
index 8b8cd32d8..65041fdaa 100644
--- a/kubernetes/components/volsync/kustomization.yaml
+++ b/kubernetes/components/volsync/kustomization.yaml
@@ -1,7 +1,7 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
+apiVersion: kustomize.config.k8s.io/v1alpha1
+kind: Component
resources:
- - ./claim.yaml
- - ./minio.yaml
+ - ./minio
+ - ./pvc.yaml
diff --git a/kubernetes/components/volsync/minio.yaml b/kubernetes/components/volsync/minio.yaml
deleted file mode 100644
index af6d4087c..000000000
--- a/kubernetes/components/volsync/minio.yaml
+++ /dev/null
@@ -1,73 +0,0 @@
----
-# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1.json
-apiVersion: external-secrets.io/v1
-kind: ExternalSecret
-metadata:
- name: "${APP}-volsync"
-spec:
- secretStoreRef:
- kind: ClusterSecretStore
- name: onepassword-connect
- target:
- name: "${APP}-volsync-secret"
- template:
- engineVersion: v2
- data:
- RESTIC_REPOSITORY: s3:https://s3.${SECRET_INTERNAL_DOMAIN}/volsync/${APP}
- RESTIC_PASSWORD: "{{ .RESTIC_PASSWORD }}"
- AWS_ACCESS_KEY_ID: "{{ .AWS_ACCESS_KEY_ID }}"
- AWS_SECRET_ACCESS_KEY: "{{ .AWS_SECRET_ACCESS_KEY }}"
- dataFrom:
- - extract:
- key: volsync-restic-template
----
-# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/volsync.backube/replicationsource_v1alpha1.json
-apiVersion: volsync.backube/v1alpha1
-kind: ReplicationSource
-metadata:
- name: "${APP}"
-spec:
- sourcePVC: "${APP}"
- trigger:
- schedule: 0 7 * * *
- restic:
- copyMethod: "${VOLSYNC_COPYMETHOD:-Snapshot}"
- pruneIntervalDays: 7
- repository: "${APP}-volsync-secret"
- volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-csi-ceph-blockpool}"
- cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-8Gi}"
- cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-rook-ceph-block}"
- cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"]
- storageClassName: "${VOLSYNC_STORAGECLASS:-rook-ceph-block}"
- accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"]
- moverSecurityContext:
- runAsUser: ${VOLSYNC_UID:-568}
- runAsGroup: ${VOLSYNC_GID:-568}
- fsGroup: ${VOLSYNC_GID:-568}
- retain:
- hourly: 24
- daily: 7
- weekly: 5
----
-# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/volsync.backube/replicationdestination_v1alpha1.json
-apiVersion: volsync.backube/v1alpha1
-kind: ReplicationDestination
-metadata:
- name: "${APP}-dst"
-spec:
- trigger:
- manual: restore-once
- restic:
- repository: "${APP}-volsync-secret"
- copyMethod: Snapshot # must be Snapshot
- volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-csi-ceph-blockpool}"
- cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-rook-ceph-block}"
- cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"]
- cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-8Gi}"
- storageClassName: "${VOLSYNC_STORAGECLASS:-rook-ceph-block}"
- accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"]
- capacity: "${VOLSYNC_CAPACITY}"
- moverSecurityContext:
- runAsUser: ${VOLSYNC_UID:-568}
- runAsGroup: ${VOLSYNC_GID:-568}
- fsGroup: ${VOLSYNC_GID:-568}
diff --git a/kubernetes/components/volsync/minio/externalsecret.yaml b/kubernetes/components/volsync/minio/externalsecret.yaml
new file mode 100644
index 000000000..32ba3622d
--- /dev/null
+++ b/kubernetes/components/volsync/minio/externalsecret.yaml
@@ -0,0 +1,22 @@
+---
+# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1.json
+apiVersion: external-secrets.io/v1
+kind: ExternalSecret
+metadata:
+ name: "${APP}-volsync"
+spec:
+ secretStoreRef:
+ kind: ClusterSecretStore
+ name: onepassword-connect
+ target:
+ name: "${APP}-volsync-secret"
+ template:
+ engineVersion: v2
+ data:
+ RESTIC_REPOSITORY: s3:https://s3.${SECRET_INTERNAL_DOMAIN}/volsync/${APP}
+ RESTIC_PASSWORD: "{{ .RESTIC_PASSWORD }}"
+ AWS_ACCESS_KEY_ID: "{{ .AWS_ACCESS_KEY_ID }}"
+ AWS_SECRET_ACCESS_KEY: "{{ .AWS_SECRET_ACCESS_KEY }}"
+ dataFrom:
+ - extract:
+ key: volsync-restic-template
diff --git a/kubernetes/components/volsync/minio/kustomization.yaml b/kubernetes/components/volsync/minio/kustomization.yaml
new file mode 100644
index 000000000..fa5885547
--- /dev/null
+++ b/kubernetes/components/volsync/minio/kustomization.yaml
@@ -0,0 +1,8 @@
+---
+# yaml-language-server: $schema=https://json.schemastore.org/kustomization
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+ - ./externalsecret.yaml
+ - ./replicationsource.yaml
+ - ./replicationdestination.yaml
diff --git a/kubernetes/components/volsync/minio/replicationdestination.yaml b/kubernetes/components/volsync/minio/replicationdestination.yaml
new file mode 100644
index 000000000..5ed8fd7e4
--- /dev/null
+++ b/kubernetes/components/volsync/minio/replicationdestination.yaml
@@ -0,0 +1,23 @@
+---
+# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/volsync.backube/replicationdestination_v1alpha1.json
+apiVersion: volsync.backube/v1alpha1
+kind: ReplicationDestination
+metadata:
+ name: "${APP}-dst"
+spec:
+ trigger:
+ manual: restore-once
+ restic:
+ repository: "${APP}-volsync-secret"
+ copyMethod: Snapshot # must be Snapshot
+ volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-csi-ceph-blockpool}"
+ cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-rook-ceph-block}"
+ cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"]
+ cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-8Gi}"
+ storageClassName: "${VOLSYNC_STORAGECLASS:-rook-ceph-block}"
+ accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"]
+ capacity: "${VOLSYNC_CAPACITY}"
+ moverSecurityContext:
+ runAsUser: ${VOLSYNC_UID:-568}
+ runAsGroup: ${VOLSYNC_GID:-568}
+ fsGroup: ${VOLSYNC_GID:-568}
diff --git a/kubernetes/components/volsync/minio/replicationsource.yaml b/kubernetes/components/volsync/minio/replicationsource.yaml
new file mode 100644
index 000000000..a27a0ddf8
--- /dev/null
+++ b/kubernetes/components/volsync/minio/replicationsource.yaml
@@ -0,0 +1,28 @@
+---
+# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/volsync.backube/replicationsource_v1alpha1.json
+apiVersion: volsync.backube/v1alpha1
+kind: ReplicationSource
+metadata:
+ name: "${APP}"
+spec:
+ sourcePVC: "${APP}"
+ trigger:
+ schedule: 0 7 * * *
+ restic:
+ copyMethod: "${VOLSYNC_COPYMETHOD:-Snapshot}"
+ pruneIntervalDays: 7
+ repository: "${APP}-volsync-secret"
+ volumeSnapshotClassName: "${VOLSYNC_SNAPSHOTCLASS:-csi-ceph-blockpool}"
+ cacheCapacity: "${VOLSYNC_CACHE_CAPACITY:-8Gi}"
+ cacheStorageClassName: "${VOLSYNC_CACHE_SNAPSHOTCLASS:-rook-ceph-block}"
+ cacheAccessModes: ["${VOLSYNC_CACHE_ACCESSMODES:-ReadWriteOnce}"]
+ storageClassName: "${VOLSYNC_STORAGECLASS:-rook-ceph-block}"
+ accessModes: ["${VOLSYNC_ACCESSMODES:-ReadWriteOnce}"]
+ moverSecurityContext:
+ runAsUser: ${VOLSYNC_UID:-568}
+ runAsGroup: ${VOLSYNC_GID:-568}
+ fsGroup: ${VOLSYNC_GID:-568}
+ retain:
+ hourly: 24
+ daily: 7
+ weekly: 5
diff --git a/kubernetes/components/volsync/claim.yaml b/kubernetes/components/volsync/pvc.yaml
similarity index 100%
rename from kubernetes/components/volsync/claim.yaml
rename to kubernetes/components/volsync/pvc.yaml