Compare commits

...

3 commits

62 changed files with 670 additions and 219 deletions

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: ollama-
resources:
- ../../../kustomize/bases/deployment/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: open-webui-
resources:
- ../../../kustomize/bases/helmchart/
- extra/gatus-endpoints.yaml
patches:
- path: patches/chart.yaml

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: tabby-
resources:
- ../../../kustomize/bases/deployment/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: atuin-
resources:
- ../../../kustomize/bases/deployment/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: dolibarr-
resources:
- ../../../kustomize/bases/public-oidc/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -15,6 +15,7 @@ resources:
- ../../../kustomize/bases/deployment/
- extra/ssh-service.yaml
- extra/ssh-tcproute.yaml
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: linkwarden-
resources:
- ../../../kustomize/bases/public-oidc/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: mealie-
resources:
- ../../../kustomize/bases/public-oidc/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -17,6 +17,7 @@ resources:
- extra/pvc-consume.yaml
- extra/pvc-sftp.yaml
- extra/pv-sftp.yaml
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: syncthing-
resources:
- ../../../kustomize/bases/statefulset/
- extra/gatus-endpoints.yaml
labels:
- includeSelectors: true

View file

@ -33,4 +33,4 @@ spec:
storageClassName: longhorn-private
resources:
requests:
storage: 50Gi
storage: 100Gi

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: vaultwarden-
resources:
- ../../../kustomize/bases/deployment/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: authentik-
resources:
- ../../../kustomize/bases/helmchart
- extra/gatus-endpoints.yaml
patches:
- path: patches/chart.yaml

View file

@ -13,7 +13,7 @@ transformers:
namePrefix: cert-manager-
resources:
- ../../../kustomize/bases/helmchart-noaddons
- extras/cloudflare-token.yaml
- extra/cloudflare-token.yaml
patches:
- path: patches/chart.yaml

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: gotenburg-
resources:
- ../../../kustomize/bases/deployservice/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -13,8 +13,9 @@ transformers:
namePrefix: minio-
resources:
- ../../../kustomize/bases/deployment/
- extras/server-svc.yaml
- extras/server-route.yaml
- extra/server-svc.yaml
- extra/server-route.yaml
- extra/gatus-endpoint.yaml
labels:
- includeSelectors: true

View file

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

View file

@ -13,7 +13,8 @@ transformers:
namePrefix: postgres-
resources:
- ../../../kustomize/bases/statefulset/
- extras/tcproute.yaml
- extra/tcproute.yaml
- extra/gatus-endpoints.yaml
labels:
- includeSelectors: true

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: redis-
resources:
- ../../../kustomize/bases/statefulset/
- extra/gatus-endpoints.yaml
labels:
- includeSelectors: true

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: tika-
resources:
- ../../../kustomize/bases/deployservice/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -13,10 +13,11 @@ transformers:
namePrefix: longhorn-
resources:
- ../../../kustomize/bases/helmchart
- extras/longhorn-public-storageclass.yaml
- extras/longhorn-private-storageclass.yaml
- extras/longhorn-secret.yaml
- extras/longhorn-backupjob.yaml
- extra/longhorn-public-storageclass.yaml
- extra/longhorn-private-storageclass.yaml
- extra/longhorn-secret.yaml
- extra/longhorn-backupjob.yaml
- extra/gatus-endpoints.yaml
patches:
- path: patches/chart.yaml

View file

@ -1,24 +1,48 @@
config.yaml: |
metrics: true
ui:
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: website
url: https://twin.sh/health
- name: Gatus
url: http://gatus-svc.monitoring.svc.cluster.local:8080/health
group: Internal/Monitoring
interval: 5m
conditions:
- "[STATUS] == 200"
- "[BODY].status == UP"
- name: github
url: https://api.github.com/healthz
alerts:
- type: ntfy
- name: Blog
url: https://blog.leechpepin.com
group: Static Pages
interval: 5m
conditions:
- "[STATUS] == 200"
- name: self
url: http://localhost:8080/health
alerts:
- type: ntfy
- name: Techdocs
url: https://docs.leechpepin.com
group: Static Pages
interval: 5m
conditions:
- "[STATUS] == 200"
alerts:
- type: ntfy

View file

@ -13,8 +13,8 @@ transformers:
namePrefix: gatus-
resources:
- ../../../kustomize/bases/deployment/
- extras/sidecar-crb.yaml
- extras/sidecar-serviceAccount.yaml
- extra/sidecar-crb.yaml
- extra/sidecar-serviceAccount.yaml
patches:
- path: patches/deployment.yaml
@ -36,10 +36,7 @@ labels:
app.kubernetes.io/routePrefix: status
configMapGenerator:
- name: gatus-config
files:
- base-config.yaml
- name: gatus-settings
- name: settings
literals:
- GATUS_CONFIG_PATH=/config
- name: k8s-sidecar-settings
@ -49,6 +46,10 @@ configMapGenerator:
- FOLDER="/config"
- METHOD="SLEEP"
- SLEEP_TIME=60
- NAMESPACE="auth,ai,monitoring,apps,core,longhorn"
- name: base-config
files:
- base-config.yaml
replacements:
# Service
@ -81,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

View file

@ -32,7 +32,7 @@ spec:
resources:
limits:
cpu: 250m
memory: 100M
memory: 500M
requests:
cpu: 50m
memory: 30M
@ -55,21 +55,39 @@ 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
subPath: base-config.yaml
- name: collected
mountPath: /config/
- name: config-collector
image: kiwigrid/k8s-sidecar:1.30.3
volumeMounts:
- name: collected
mountPath: /config/
- mountPath: /config/config.yaml
name: gatus-config
subPath: base-config.yaml
envFrom:
- configMapRef:
name: k8s-sidecar-settings
volumes:
- configMap:
name: gatus-config
name: base-config
name: gatus-config
- name: collected
emptyDir: {}

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: healthchecks-
resources:
- ../../../kustomize/bases/public-oidc/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: ntfy-
resources:
- ../../../kustomize/bases/public-oidc/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

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

View file

@ -13,6 +13,7 @@ transformers:
namePrefix: umami-
resources:
- ../../../kustomize/bases/public-oidc/
- extra/gatus-endpoints.yaml
replacements:
- source:

View file

@ -1,25 +0,0 @@
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: authentik-forward-auth
namespace: monitoring # adjust as needed
spec:
forwardAuth:
address: http://ak-outpost-authentik-embedded-outpost.auth.svc.cluster.local:9000/outpost.goauthentik.io/auth/traefik
trustForwardHeader: true
authResponseHeaders:
- X-Authentik-Username
- X-Authentik-Groups
- X-Authentik-Email
authRequestHeaders:
- Accept
- Cookie
- Host
- X-Forwarded-For
- X-Forwarded-Host
- X-Forwarded-Proto
- X-Forwarded-Uri
- X-Forwarded-Port
- X-Forwarded-Method
# Add these to handle redirect
authResponseHeadersRegex: "X-.*"

View file

@ -1,96 +0,0 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
transformers:
- |-
apiVersion: builtin
kind: NamespaceTransformer
metadata:
name: notImportantHere
namespace: monitoring
unsetOnly: true
namePrefix: uptime-kuma-
resources:
- ../../../kustomize/bases/deployment/
# - extra/middleware-auth.yaml
replacements:
- source:
kind: Service
name: svc
targets:
- select:
kind: HTTPRoute
options:
create: true
fieldPaths:
- spec.rules.0.backendRefs.0.name
- source:
kind: Deployment
name: app
fieldPath: metadata.labels.[app.kubernetes.io/appName]
targets:
- select:
kind: InfisicalSecret
options:
delimiter: "-"
index: 0
fieldPaths:
- spec.managedSecretReference.secretName
- select:
kind: InfisicalSecret
options:
delimiter: "/"
index: 2
fieldPaths:
- spec.authentication.universalAuth.secretsScope.secretsPath
- select:
kind: Service
fieldPaths:
- spec.ports.0.name
- spec.ports.0.targetPort
- source:
kind: Deployment
name: app
fieldPath: metadata.labels.[app.kubernetes.io/appNamespace]
targets:
- select:
kind: InfisicalSecret
fieldPaths:
- spec.managedSecretReference.secretNamespace
- source:
kind: Deployment
name: app
fieldPath: metadata.labels.[app.kubernetes.io/routePrefix]
targets:
- select:
kind: HTTPRoute
options:
create: true
delimiter: "."
index: 0
fieldPaths:
- spec.hostnames.0
patches:
- path: patches/deployment.yaml
target:
kind: Deployment
name: app
- path: patches/httproute.yaml
target:
kind: HTTPRoute
- path: patches/pvc.yaml
target:
kind: PersistentVolumeClaim
name: pvc
labels:
- includeSelectors: true
pairs:
app.kubernetes.io/appName: uptime-kuma
- pairs:
app.kubernetes.io/appNamespace: monitoring
- pairs:
app.kubernetes.io/routePrefix: status

View file

@ -1,48 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
spec:
template:
spec:
tolerations:
- key: "public"
operator: "Equal"
value: "true"
effect: "NoSchedule"
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: public
operator: In
values:
- "true"
containers:
- name: uptime-kuma
image: louislam/uptime-kuma:1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3001
name: uptime-kuma
livenessProbe:
tcpSocket:
port: uptime-kuma
initialDelaySeconds: 60
periodSeconds: 10
readinessProbe:
httpGet:
scheme: HTTP
path: /
port: uptime-kuma
initialDelaySeconds: 30
periodSeconds: 10
volumeMounts:
- name: data
mountPath: /app/data
volumes:
- name: data
persistentVolumeClaim:
claimName: uptime-kuma-pvc

View file

@ -1,14 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: http
# spec:
# rules:
# - backendRefs:
# - port: 80
# filters:
# - type: ExtensionRef
# extensionRef:
# group: traefik.io
# kind: Middleware
# name: authentik-forward-auth

View file

@ -1,6 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc
spec:
storageClassName: longhorn-public