From fdf6582554be0f930442f39a915fbfffc5219340 Mon Sep 17 00:00:00 2001 From: Jonathan Leech-Pepin Date: Sun, 27 Apr 2025 21:50:41 -0400 Subject: [PATCH] Add gatus monitoring and database caching --- .../ai/ollama/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/ai/ollama/kustomization.yaml | 1 + .../ai/openwebui/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/ai/openwebui/kustomization.yaml | 1 + .../ai/tabby/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/ai/tabby/kustomization.yaml | 1 + .../apps/atuin/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/apps/atuin/kustomization.yaml | 1 + .../apps/dolibarr/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/apps/dolibarr/kustomization.yaml | 1 + .../apps/forgejo/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/apps/forgejo/kustomization.yaml | 1 + .../linkwarden/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/apps/linkwarden/kustomization.yaml | 1 + .../apps/mealie/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/apps/mealie/kustomization.yaml | 1 + .../apps/paperless/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/apps/paperless/kustomization.yaml | 1 + .../apps/syncthing/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/apps/syncthing/kustomization.yaml | 1 + .../vaultwarden/extra/gatus-endpoints.yaml | 27 ++++++++++++++ .../apps/vaultwarden/kustomization.yaml | 1 + .../auth/authentik/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/auth/authentik/kustomization.yaml | 1 + .../core/gotenburg/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/core/gotenburg/kustomization.yaml | 1 + .../core/minio/extra/gatus-endpoint.yaml | 27 ++++++++++++++ namespaces/core/minio/kustomization.yaml | 1 + .../core/postgres/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/core/postgres/kustomization.yaml | 1 + .../core/redis/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/core/redis/kustomization.yaml | 1 + .../core/tika/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/core/tika/kustomization.yaml | 1 + .../longhorn/extra/gatus-endpoints.yaml | 27 ++++++++++++++ .../longhorn/longhorn/kustomization.yaml | 1 + namespaces/monitoring/gatus/base-config.yaml | 35 +++++++++++++++++++ .../monitoring/gatus/kustomization.yaml | 9 ++++- .../monitoring/gatus/patches/deployment.yaml | 13 +++++++ .../healthchecks/extra/gatus-endpoints.yaml | 29 +++++++++++++++ .../healthchecks/kustomization.yaml | 1 + .../ntfy/extra/gatus-endpoints.yaml | 27 ++++++++++++++ namespaces/monitoring/ntfy/kustomization.yaml | 1 + .../umami/extra/gatus-endpoints.yaml | 27 ++++++++++++++ .../monitoring/umami/kustomization.yaml | 1 + 45 files changed, 646 insertions(+), 1 deletion(-) create mode 100644 namespaces/ai/ollama/extra/gatus-endpoints.yaml create mode 100644 namespaces/ai/openwebui/extra/gatus-endpoints.yaml create mode 100644 namespaces/ai/tabby/extra/gatus-endpoints.yaml create mode 100644 namespaces/apps/atuin/extra/gatus-endpoints.yaml create mode 100644 namespaces/apps/dolibarr/extra/gatus-endpoints.yaml create mode 100644 namespaces/apps/forgejo/extra/gatus-endpoints.yaml create mode 100644 namespaces/apps/linkwarden/extra/gatus-endpoints.yaml create mode 100644 namespaces/apps/mealie/extra/gatus-endpoints.yaml create mode 100644 namespaces/apps/paperless/extra/gatus-endpoints.yaml create mode 100644 namespaces/apps/syncthing/extra/gatus-endpoints.yaml create mode 100644 namespaces/apps/vaultwarden/extra/gatus-endpoints.yaml create mode 100644 namespaces/auth/authentik/extra/gatus-endpoints.yaml create mode 100644 namespaces/core/gotenburg/extra/gatus-endpoints.yaml create mode 100644 namespaces/core/minio/extra/gatus-endpoint.yaml create mode 100644 namespaces/core/postgres/extra/gatus-endpoints.yaml create mode 100644 namespaces/core/redis/extra/gatus-endpoints.yaml create mode 100644 namespaces/core/tika/extra/gatus-endpoints.yaml create mode 100644 namespaces/longhorn/longhorn/extra/gatus-endpoints.yaml create mode 100644 namespaces/monitoring/healthchecks/extra/gatus-endpoints.yaml create mode 100644 namespaces/monitoring/ntfy/extra/gatus-endpoints.yaml create mode 100644 namespaces/monitoring/umami/extra/gatus-endpoints.yaml diff --git a/namespaces/ai/ollama/extra/gatus-endpoints.yaml b/namespaces/ai/ollama/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..ee15832 --- /dev/null +++ b/namespaces/ai/ollama/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + ollama-internal-gatus-endpoints.yaml: | + endpoints: + - name: Ollama + url: http://ollama-svc.ai.svc.cluster.local:11434/ + group: Internal/AI + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + # ollama-external-gatus-endpoints.yaml: | + # endpoints: + # - name: Ollama + # url: https://ollama.leechpepin.com/ + # group: External + # interval: 5m + # alerts: + # - type: ntfy + # conditions: + # - "[STATUS] == 200" diff --git a/namespaces/ai/ollama/kustomization.yaml b/namespaces/ai/ollama/kustomization.yaml index eea1d82..ab4a054 100644 --- a/namespaces/ai/ollama/kustomization.yaml +++ b/namespaces/ai/ollama/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: ollama- resources: - ../../../kustomize/bases/deployment/ + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/ai/openwebui/extra/gatus-endpoints.yaml b/namespaces/ai/openwebui/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..422eb96 --- /dev/null +++ b/namespaces/ai/openwebui/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + owui-internal-gatus-endpoints.yaml: | + endpoints: + - name: Open WebUI + url: http://open-webui.ai.svc.cluster.local:9998/ + group: Internal/AI + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + owui-external-gatus-endpoints.yaml: | + endpoints: + - name: Open WebUI + url: https://owui.leechpepin.com/ + group: External + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" diff --git a/namespaces/ai/openwebui/kustomization.yaml b/namespaces/ai/openwebui/kustomization.yaml index 3b770a1..07f3a58 100644 --- a/namespaces/ai/openwebui/kustomization.yaml +++ b/namespaces/ai/openwebui/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: open-webui- resources: - ../../../kustomize/bases/helmchart/ + - extra/gatus-endpoints.yaml patches: - path: patches/chart.yaml diff --git a/namespaces/ai/tabby/extra/gatus-endpoints.yaml b/namespaces/ai/tabby/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..020d53c --- /dev/null +++ b/namespaces/ai/tabby/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + tabby-internal-gatus-endpoints.yaml: | + endpoints: + - name: Tabby + url: http://tabby-svc.ai.svc.cluster.local/ + group: Internal/AI + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + # tabby-external-gatus-endpoints.yaml: | + # endpoints: + # - name: Tabby + # url: https://tabby.leechpepin.com/ + # group: External + # interval: 5m + # alerts: + # - type: ntfy + # conditions: + # - "[STATUS] == 200" diff --git a/namespaces/ai/tabby/kustomization.yaml b/namespaces/ai/tabby/kustomization.yaml index e13595b..05de069 100644 --- a/namespaces/ai/tabby/kustomization.yaml +++ b/namespaces/ai/tabby/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: tabby- resources: - ../../../kustomize/bases/deployment/ + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/apps/atuin/extra/gatus-endpoints.yaml b/namespaces/apps/atuin/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..b38d5f4 --- /dev/null +++ b/namespaces/apps/atuin/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + atuin-internal-gatus-endpoints.yaml: | + endpoints: + - name: Atuin + url: http://atuin-svc.apps.svc.cluster.local/ + group: Internal/Apps + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + atuin-external-gatus-endpoints.yaml: | + endpoints: + - name: Atuin + url: https://atuin.leechpepin.com/ + group: External + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" diff --git a/namespaces/apps/atuin/kustomization.yaml b/namespaces/apps/atuin/kustomization.yaml index 23c6e3c..51912df 100644 --- a/namespaces/apps/atuin/kustomization.yaml +++ b/namespaces/apps/atuin/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: atuin- resources: - ../../../kustomize/bases/deployment/ + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/apps/dolibarr/extra/gatus-endpoints.yaml b/namespaces/apps/dolibarr/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..69a932e --- /dev/null +++ b/namespaces/apps/dolibarr/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + dolibarr-internal-gatus-endpoints.yaml: | + endpoints: + - name: Dolibarr + url: http://dolibarr-svc.apps.svc.cluster.local/ + group: Internal/Apps + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + # dolibarr-external-gatus-endpoints.yaml: | + # endpoints: + # - name: Dolibarr + # url: https://dolibarr.leechpepin.com/ + # group: External + # interval: 5m + # alerts: + # - type: ntfy + # conditions: + # - "[STATUS] == 200" diff --git a/namespaces/apps/dolibarr/kustomization.yaml b/namespaces/apps/dolibarr/kustomization.yaml index 26bef45..cc49327 100644 --- a/namespaces/apps/dolibarr/kustomization.yaml +++ b/namespaces/apps/dolibarr/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: dolibarr- resources: - ../../../kustomize/bases/public-oidc/ + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/apps/forgejo/extra/gatus-endpoints.yaml b/namespaces/apps/forgejo/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..bc5bc0a --- /dev/null +++ b/namespaces/apps/forgejo/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + forgejo-internal-gatus-endpoints.yaml: | + endpoints: + - name: Forgejo + url: http://forgejo-svc.apps.svc.cluster.local/ + group: Internal/Apps + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + forgejo-external-gatus-endpoints.yaml: | + endpoints: + - name: Forgejo + url: https://forgejo.leechpepin.com/ + group: External + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" diff --git a/namespaces/apps/forgejo/kustomization.yaml b/namespaces/apps/forgejo/kustomization.yaml index 7bdd5f2..d7ee11d 100644 --- a/namespaces/apps/forgejo/kustomization.yaml +++ b/namespaces/apps/forgejo/kustomization.yaml @@ -15,6 +15,7 @@ resources: - ../../../kustomize/bases/deployment/ - extra/ssh-service.yaml - extra/ssh-tcproute.yaml + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/apps/linkwarden/extra/gatus-endpoints.yaml b/namespaces/apps/linkwarden/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..6e42475 --- /dev/null +++ b/namespaces/apps/linkwarden/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + linkwarden-internal-gatus-endpoints.yaml: | + endpoints: + - name: Linkwarden + url: http://linkwarden-svc.apps.svc.cluster.local/ + group: Internal/Apps + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + linkwarden-external-gatus-endpoints.yaml: | + endpoints: + - name: Linkwarden + url: https://linkwarden.leechpepin.com/ + group: External + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" diff --git a/namespaces/apps/linkwarden/kustomization.yaml b/namespaces/apps/linkwarden/kustomization.yaml index 6bb096a..2fe15c3 100644 --- a/namespaces/apps/linkwarden/kustomization.yaml +++ b/namespaces/apps/linkwarden/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: linkwarden- resources: - ../../../kustomize/bases/public-oidc/ + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/apps/mealie/extra/gatus-endpoints.yaml b/namespaces/apps/mealie/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..69e731e --- /dev/null +++ b/namespaces/apps/mealie/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + mealie-internal-gatus-endpoints.yaml: | + endpoints: + - name: Mealie + url: http://mealie-svc.apps.svc.cluster.local/ + group: Internal/Apps + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + mealie-external-gatus-endpoints.yaml: | + endpoints: + - name: Mealie + url: https://mealie.leechpepin.com/ + group: External + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" diff --git a/namespaces/apps/mealie/kustomization.yaml b/namespaces/apps/mealie/kustomization.yaml index abf1931..866bf37 100644 --- a/namespaces/apps/mealie/kustomization.yaml +++ b/namespaces/apps/mealie/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: mealie- resources: - ../../../kustomize/bases/public-oidc/ + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/apps/paperless/extra/gatus-endpoints.yaml b/namespaces/apps/paperless/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..21d9f56 --- /dev/null +++ b/namespaces/apps/paperless/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + paperless-internal-gatus-endpoints.yaml: | + endpoints: + - name: Paperless + url: http://paperless-svc.apps.svc.cluster.local/ + group: Internal/Apps + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + paperless-external-gatus-endpoints.yaml: | + endpoints: + - name: Paperless + url: https://paperless.leechpepin.com/ + group: External + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" diff --git a/namespaces/apps/paperless/kustomization.yaml b/namespaces/apps/paperless/kustomization.yaml index 0b444ff..1d5b65a 100644 --- a/namespaces/apps/paperless/kustomization.yaml +++ b/namespaces/apps/paperless/kustomization.yaml @@ -17,6 +17,7 @@ resources: - extra/pvc-consume.yaml - extra/pvc-sftp.yaml - extra/pv-sftp.yaml + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/apps/syncthing/extra/gatus-endpoints.yaml b/namespaces/apps/syncthing/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..8782101 --- /dev/null +++ b/namespaces/apps/syncthing/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + syncthing-internal-gatus-endpoints.yaml: | + endpoints: + - name: Syncthing + url: http://syncthing-svc.apps.svc.cluster.local:8384/ + group: Internal/Apps + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + # syncthing-external-gatus-endpoints.yaml: | + # endpoints: + # - name: Syncthing + # url: https://syncthing.leechpepin.com/ + # group: External + # interval: 5m + # alerts: + # - type: ntfy + # conditions: + # - "[STATUS] == 200" diff --git a/namespaces/apps/syncthing/kustomization.yaml b/namespaces/apps/syncthing/kustomization.yaml index 5c5225f..f872e1b 100644 --- a/namespaces/apps/syncthing/kustomization.yaml +++ b/namespaces/apps/syncthing/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: syncthing- resources: - ../../../kustomize/bases/statefulset/ + - extra/gatus-endpoints.yaml labels: - includeSelectors: true diff --git a/namespaces/apps/vaultwarden/extra/gatus-endpoints.yaml b/namespaces/apps/vaultwarden/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..0b6494e --- /dev/null +++ b/namespaces/apps/vaultwarden/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + vaultwarden-internal-gatus-endpoints.yaml: | + endpoints: + - name: Vaultwarden + url: http://vaultwarden-svc.apps.svc.cluster.local/ + group: Internal/Apps + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + vaultwarden-external-gatus-endpoints.yaml: | + endpoints: + - name: Vaultwarden + url: https://vaultwarden.leechpepin.com/ + group: External + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" diff --git a/namespaces/apps/vaultwarden/kustomization.yaml b/namespaces/apps/vaultwarden/kustomization.yaml index 50f3b02..cb512a3 100644 --- a/namespaces/apps/vaultwarden/kustomization.yaml +++ b/namespaces/apps/vaultwarden/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: vaultwarden- resources: - ../../../kustomize/bases/deployment/ + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/auth/authentik/extra/gatus-endpoints.yaml b/namespaces/auth/authentik/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..eaa5a81 --- /dev/null +++ b/namespaces/auth/authentik/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + authentik-internal-gatus-endpoints.yaml: | + endpoints: + - name: Authentik + url: http://authentik-chart-server.auth.svc.cluster.local/ + group: Internal/Auth + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + authentik-external-gatus-endpoints.yaml: | + endpoints: + - name: Authentik + url: https://auth.leechpepin.com/ + group: External + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" diff --git a/namespaces/auth/authentik/kustomization.yaml b/namespaces/auth/authentik/kustomization.yaml index a27790d..e763fbb 100644 --- a/namespaces/auth/authentik/kustomization.yaml +++ b/namespaces/auth/authentik/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: authentik- resources: - ../../../kustomize/bases/helmchart + - extra/gatus-endpoints.yaml patches: - path: patches/chart.yaml diff --git a/namespaces/core/gotenburg/extra/gatus-endpoints.yaml b/namespaces/core/gotenburg/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..21016e6 --- /dev/null +++ b/namespaces/core/gotenburg/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + gotenburg-internal-gatus-endpoints.yaml: | + endpoints: + - name: Gotenburg + url: http://gotenburg-svc.core.svc.cluster.local:3000/health + group: Internal/Core + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + # gotenburg-external-gatus-endpoints.yaml: | + # endpoints: + # - name: Gotenburg + # url: https://gotenburg.leechpepin.com/ + # group: External + # interval: 5m + # alerts: + # - type: ntfy + # conditions: + # - "[STATUS] == 200" diff --git a/namespaces/core/gotenburg/kustomization.yaml b/namespaces/core/gotenburg/kustomization.yaml index ebf412a..c32cc58 100644 --- a/namespaces/core/gotenburg/kustomization.yaml +++ b/namespaces/core/gotenburg/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: gotenburg- resources: - ../../../kustomize/bases/deployservice/ + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/core/minio/extra/gatus-endpoint.yaml b/namespaces/core/minio/extra/gatus-endpoint.yaml new file mode 100644 index 0000000..17308e0 --- /dev/null +++ b/namespaces/core/minio/extra/gatus-endpoint.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + minio-internal-gatus-endpoints.yaml: | + endpoints: + - name: Minio + url: http://minio-server-svc.core.svc.cluster.local:9000/minio/health/live + group: Internal/Core + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + # minio-external-gatus-endpoints.yaml: | + # endpoints: + # - name: Minio + # url: https://minio.leechpepin.com/ + # group: External + # interval: 5m + # alerts: + # - type: ntfy + # conditions: + # - "[STATUS] == 200" diff --git a/namespaces/core/minio/kustomization.yaml b/namespaces/core/minio/kustomization.yaml index 089f084..188dda1 100644 --- a/namespaces/core/minio/kustomization.yaml +++ b/namespaces/core/minio/kustomization.yaml @@ -15,6 +15,7 @@ resources: - ../../../kustomize/bases/deployment/ - extra/server-svc.yaml - extra/server-route.yaml + - extra/gatus-endpoint.yaml labels: - includeSelectors: true diff --git a/namespaces/core/postgres/extra/gatus-endpoints.yaml b/namespaces/core/postgres/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..d98fd2b --- /dev/null +++ b/namespaces/core/postgres/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + postgres-internal-gatus-endpoints.yaml: | + endpoints: + - name: Postgres + url: tcp://postgres-svc.core.svc.cluster.local:5432 + group: Internal/Core + interval: 5m + alerts: + - type: ntfy + conditions: + - "[CONNECTED] == true" + # postgres-external-gatus-endpoints.yaml: | + # endpoints: + # - name: Postgres + # url: https://postgres.leechpepin.com/ + # group: External + # interval: 5m + # alerts: + # - type: ntfy + # conditions: + # - "[STATUS] == 200" diff --git a/namespaces/core/postgres/kustomization.yaml b/namespaces/core/postgres/kustomization.yaml index e5db159..8e28817 100644 --- a/namespaces/core/postgres/kustomization.yaml +++ b/namespaces/core/postgres/kustomization.yaml @@ -14,6 +14,7 @@ namePrefix: postgres- resources: - ../../../kustomize/bases/statefulset/ - extra/tcproute.yaml + - extra/gatus-endpoints.yaml labels: - includeSelectors: true diff --git a/namespaces/core/redis/extra/gatus-endpoints.yaml b/namespaces/core/redis/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..32c1a73 --- /dev/null +++ b/namespaces/core/redis/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + redis-internal-gatus-endpoints.yaml: | + endpoints: + - name: Redis + url: tcp://redis-svc.core.svc.cluster.local:6379 + group: Internal/Core + interval: 5m + alerts: + - type: ntfy + conditions: + - "[CONNECTED] == true" + # redis-external-gatus-endpoints.yaml: | + # endpoints: + # - name: Redis + # url: https://redis.leechpepin.com/ + # group: External + # interval: 5m + # alerts: + # - type: ntfy + # conditions: + # - "[STATUS] == 200" diff --git a/namespaces/core/redis/kustomization.yaml b/namespaces/core/redis/kustomization.yaml index ac37284..7c74a04 100644 --- a/namespaces/core/redis/kustomization.yaml +++ b/namespaces/core/redis/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: redis- resources: - ../../../kustomize/bases/statefulset/ + - extra/gatus-endpoints.yaml labels: - includeSelectors: true diff --git a/namespaces/core/tika/extra/gatus-endpoints.yaml b/namespaces/core/tika/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..102cc02 --- /dev/null +++ b/namespaces/core/tika/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + tika-internal-gatus-endpoints.yaml: | + endpoints: + - name: Tika + url: http://tika-svc.core.svc.cluster.local:9998/ + group: Internal/Core + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + # tika-external-gatus-endpoints.yaml: | + # endpoints: + # - name: Tika + # url: https://tika.leechpepin.com/ + # group: External + # interval: 5m + # alerts: + # - type: ntfy + # conditions: + # - "[STATUS] == 200" diff --git a/namespaces/core/tika/kustomization.yaml b/namespaces/core/tika/kustomization.yaml index 4ab5afd..e87a67c 100644 --- a/namespaces/core/tika/kustomization.yaml +++ b/namespaces/core/tika/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: tika- resources: - ../../../kustomize/bases/deployservice/ + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/longhorn/longhorn/extra/gatus-endpoints.yaml b/namespaces/longhorn/longhorn/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..36a4ecf --- /dev/null +++ b/namespaces/longhorn/longhorn/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + Longhorn-internal-gatus-endpoints.yaml: | + endpoints: + - name: Longhorn + url: http://longhorn-frontend.longhorn.svc.cluster.local/ + group: Internal/Core + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + # Longhorn-external-gatus-endpoints.yaml: | + # endpoints: + # - name: Longhorn + # url: https://Longhorn.leechpepin.com/ + # group: External + # interval: 5m + # alerts: + # - type: ntfy + # conditions: + # - "[STATUS] == 200" diff --git a/namespaces/longhorn/longhorn/kustomization.yaml b/namespaces/longhorn/longhorn/kustomization.yaml index 130fe6f..f61af54 100644 --- a/namespaces/longhorn/longhorn/kustomization.yaml +++ b/namespaces/longhorn/longhorn/kustomization.yaml @@ -17,6 +17,7 @@ resources: - extra/longhorn-private-storageclass.yaml - extra/longhorn-secret.yaml - extra/longhorn-backupjob.yaml + - extra/gatus-endpoints.yaml patches: - path: patches/chart.yaml diff --git a/namespaces/monitoring/gatus/base-config.yaml b/namespaces/monitoring/gatus/base-config.yaml index 12a144a..8bf32de 100644 --- a/namespaces/monitoring/gatus/base-config.yaml +++ b/namespaces/monitoring/gatus/base-config.yaml @@ -4,6 +4,23 @@ config.yaml: | title: "JLP Homelab Health | Gatus" skip-invalid-config-update: true +storage: + type: postgres + caching: true + path: "postgres://gatus:${POSTGRES_PASSWORD}@postgres-svc.core.svc.cluster.local:5432/gatus?sslmode=disable" +alerting: + ntfy: + url: https://ntfy.leechpepin.com + topic: gatus-laakeI3fNWqNC7ZR + token: ${NTFY_TOKEN} + disable-firebase: true + defaultAlert: + description: "healthcheck failed" + enabled: true + send-on-resolved: true + success-threshold: 3 + failure-threshold: 3 + endpoints: - name: Gatus url: http://gatus-svc.monitoring.svc.cluster.local:8080/health @@ -11,3 +28,21 @@ endpoints: interval: 5m conditions: - "[STATUS] == 200" + alerts: + - type: ntfy + - name: Blog + url: https://blog.leechpepin.com + group: Static Pages + interval: 5m + conditions: + - "[STATUS] == 200" + alerts: + - type: ntfy + - name: Techdocs + url: https://docs.leechpepin.com + group: Static Pages + interval: 5m + conditions: + - "[STATUS] == 200" + alerts: + - type: ntfy diff --git a/namespaces/monitoring/gatus/kustomization.yaml b/namespaces/monitoring/gatus/kustomization.yaml index 8d64b1c..5fa11d3 100644 --- a/namespaces/monitoring/gatus/kustomization.yaml +++ b/namespaces/monitoring/gatus/kustomization.yaml @@ -46,7 +46,7 @@ configMapGenerator: - FOLDER="/config" - METHOD="SLEEP" - SLEEP_TIME=60 - - NAMESPACE="auth,monitoring,apps,core,longhorn" + - NAMESPACE="auth,ai,monitoring,apps,core,longhorn" - name: base-config files: - base-config.yaml @@ -82,6 +82,13 @@ replacements: kind: InfisicalSecret fieldPaths: - spec.managedSecretReference.secretNamespace + - select: + kind: InfisicalSecret + options: + delimiter: "/" + index: 1 + fieldPaths: + - spec.authentication.universalAuth.secretsScope.secretsPath - source: kind: Deployment name: app diff --git a/namespaces/monitoring/gatus/patches/deployment.yaml b/namespaces/monitoring/gatus/patches/deployment.yaml index 4cad86e..1185fc8 100644 --- a/namespaces/monitoring/gatus/patches/deployment.yaml +++ b/namespaces/monitoring/gatus/patches/deployment.yaml @@ -55,6 +55,19 @@ spec: envFrom: - configMapRef: name: gatus-settings + env: + - name: NTFY_TOKEN + valueFrom: + secretKeyRef: + name: gatus-secrets + key: NTFY_TOKEN + optional: false + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: gatus-secrets + key: POSTGRES_PASSWORD + optional: false volumeMounts: - mountPath: /config/config.yaml name: gatus-config diff --git a/namespaces/monitoring/healthchecks/extra/gatus-endpoints.yaml b/namespaces/monitoring/healthchecks/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..1ef68e3 --- /dev/null +++ b/namespaces/monitoring/healthchecks/extra/gatus-endpoints.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + healthchecks-internal-gatus-endpoints.yaml: | + endpoints: + - name: Healthchecks + url: http://healthchecks-svc.monitoring.svc.cluster.local/ + headers: + Host: "healthchecks.leechpepin.com" + group: Internal/Monitoring + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + healthchecks-external-gatus-endpoints.yaml: | + endpoints: + - name: Healthchecks + url: https://healthchecks.leechpepin.com/ + group: External + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" diff --git a/namespaces/monitoring/healthchecks/kustomization.yaml b/namespaces/monitoring/healthchecks/kustomization.yaml index 0fe4e50..aa79657 100644 --- a/namespaces/monitoring/healthchecks/kustomization.yaml +++ b/namespaces/monitoring/healthchecks/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: healthchecks- resources: - ../../../kustomize/bases/public-oidc/ + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/monitoring/ntfy/extra/gatus-endpoints.yaml b/namespaces/monitoring/ntfy/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..e7ac1c5 --- /dev/null +++ b/namespaces/monitoring/ntfy/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + ntfy-internal-gatus-endpoints.yaml: | + endpoints: + - name: Ntfy + url: http://ntfy-svc.monitoring.svc.cluster.local/ + group: Internal/Monitoring + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + ntfy-external-gatus-endpoints.yaml: | + endpoints: + - name: Ntfy + url: https://ntfy.leechpepin.com/ + group: External + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" diff --git a/namespaces/monitoring/ntfy/kustomization.yaml b/namespaces/monitoring/ntfy/kustomization.yaml index 246fce6..0c87f82 100644 --- a/namespaces/monitoring/ntfy/kustomization.yaml +++ b/namespaces/monitoring/ntfy/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: ntfy- resources: - ../../../kustomize/bases/public-oidc/ + - extra/gatus-endpoints.yaml replacements: - source: diff --git a/namespaces/monitoring/umami/extra/gatus-endpoints.yaml b/namespaces/monitoring/umami/extra/gatus-endpoints.yaml new file mode 100644 index 0000000..04f1be3 --- /dev/null +++ b/namespaces/monitoring/umami/extra/gatus-endpoints.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + homelab.kubernetes.io/k8s-sidecar: gatus + name: gatus-endpoints +data: + umami-internal-gatus-endpoints.yaml: | + endpoints: + - name: Umami + url: http://umami-svc.monitoring.svc.cluster.local/ + group: Internal/Monitoring + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" + umami-external-gatus-endpoints.yaml: | + endpoints: + - name: Umami + url: https://umami.leechpepin.com/ + group: External + interval: 5m + alerts: + - type: ntfy + conditions: + - "[STATUS] == 200" diff --git a/namespaces/monitoring/umami/kustomization.yaml b/namespaces/monitoring/umami/kustomization.yaml index d898c38..31dad60 100644 --- a/namespaces/monitoring/umami/kustomization.yaml +++ b/namespaces/monitoring/umami/kustomization.yaml @@ -13,6 +13,7 @@ transformers: namePrefix: umami- resources: - ../../../kustomize/bases/public-oidc/ + - extra/gatus-endpoints.yaml replacements: - source: