feat: webhook

This commit is contained in:
auricom
2025-04-16 09:36:06 +02:00
parent 7372e1cb94
commit e14d7c3bb4
134 changed files with 951 additions and 264 deletions

View File

@@ -4,4 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ../../../../components/volsync

View File

@@ -10,6 +10,8 @@ spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
components:
- ../../../../components/volsync
path: ./kubernetes/apps/database/influx/app
prune: true
sourceRef:

View File

@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -5,7 +5,6 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/external
configMapGenerator:
- name: authelia-configmap
files:

View File

@@ -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

View File

@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync
configMapGenerator:
- name: bazarr-scripts
files:

View File

@@ -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

View File

@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/external
- ../../../../components/volsync

View File

@@ -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

View File

@@ -15,6 +15,7 @@ spec:
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m

View File

@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync
configMapGenerator:
- name: frigate-configmap
files:

View File

@@ -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

View File

@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded

View File

@@ -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

View File

@@ -4,4 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/guarded

View File

@@ -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

View File

@@ -5,5 +5,3 @@ resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ./podmonitor.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -5,4 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/guarded

View File

@@ -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

View File

@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -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

View File

@@ -6,7 +6,6 @@ resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ./rbac.yaml
- ../../../../components/gatus/guarded
configMapGenerator:
- name: homepage-config
files:

View File

@@ -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

View File

@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/external
- ../../../../components/volsync

View File

@@ -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

View File

@@ -6,6 +6,4 @@ namespace: default
resources:
# - ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/external
- ../../../../components/volsync
- ./pvc.yaml

View File

@@ -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

View File

@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/external

View File

@@ -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

View File

@@ -6,7 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/volsync
configMapGenerator:
- name: komf-configmap
files:

View File

@@ -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

View File

@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -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

View File

@@ -4,7 +4,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/external
configMapGenerator:
- name: libmedium-configmap
files:

View File

@@ -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

View File

@@ -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:

View File

@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync
configMapGenerator:
- name: lidarr-pushover
files:

View File

@@ -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

View File

@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded

View File

@@ -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

View File

@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -6,5 +6,3 @@ resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ./sync
- ../../../../components/gatus/external
- ../../../../components/volsync

View File

@@ -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

View File

@@ -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

View File

@@ -5,5 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/external
- ../../../../components/volsync

View File

@@ -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

View File

@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded

View File

@@ -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

View File

@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded

View File

@@ -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

View File

@@ -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:

View File

@@ -5,4 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded

View File

@@ -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

View File

@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./helmrelease.yaml
- ./upgrade-p2pblocklist
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -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:

View File

@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync
configMapGenerator:
- name: radarr-pushover
files:

View File

@@ -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

View File

@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -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

View File

@@ -5,7 +5,6 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/volsync
configMapGenerator:
- name: recyclarr-configmap
files:

View File

@@ -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

View File

@@ -5,4 +5,3 @@ kind: Kustomization
namespace: default
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/external

View File

@@ -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

View File

@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -5,8 +5,6 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/external
- ../../../../components/volsync
configMapGenerator:
- name: sharry-configmap
files:

View File

@@ -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

View File

@@ -18,6 +18,7 @@ spec:
sourceRef:
kind: GitRepository
name: home-ops-kubernetes
namespace: flux-system
wait: false
interval: 30m
retryInterval: 1m

View File

@@ -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:

View File

@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync
configMapGenerator:
- name: sonarr-pushover
files:

View File

@@ -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

View File

@@ -6,8 +6,6 @@ namespace: default
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync
configMapGenerator:
- name: tandoor-configmap
files:

View File

@@ -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

View File

@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -4,5 +4,3 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ../../../../components/gatus/guarded
- ../../../../components/volsync

View File

@@ -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

View File

@@ -5,5 +5,3 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/external
- ../../../../components/volsync

View File

@@ -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

View File

@@ -5,7 +5,5 @@ kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml
- ../../../../components/gatus/external
- ../../../../components/volsync
generatorOptions:
disableNameSuffixHash: true

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 <b>%s</b>" "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 "$@"

Some files were not shown because too many files have changed in this diff Show More