Files
infrastructure/clusters/cl01tl/helm/ntfy/values.yaml
2026-04-04 20:19:40 -05:00

137 lines
3.7 KiB
YAML

ntfy:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
containers:
main:
image:
repository: binwiederhier/ntfy
tag: v2.21.0@sha256:2b9e12d56a538f4402da51328eeca02696c4b207ab7fbe031c27e51a22ca9b86
args: ["serve"]
env:
- name: TZ
value: America/Chicago
- name: NTFY_BASE_URL
value: https://ntfy.alexlebens.net
- name: NTFY_LISTEN_HTTP
value: :80
- name: NTFY_CACHE_DURATION
value: 36h
- name: NTFY_BEHIND_PROXY
value: true
- name: NTFY_DATABASE_URL
valueFrom:
secretKeyRef:
name: ntfy-postgresql-18-cluster-app
key: uri
- name: NTFY_ATTACHMENT_CACHE_DIR
valueFrom:
secretKeyRef:
name: ntfy-config-secret
key: attachment-cache-dir
- name: NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT
value: 10G
- name: NTFY_ATTACHMENT_FILE_SIZE_LIMIT
value: 150M
- name: NTFY_ATTACHMENT_EXPIRY_DURATION
value: 72h
- name: NTFY_ENABLE_SIGNUP
value: false
- name: NTFY_ENABLE_LOGIN
value: true
- name: NTFY_ENABLE_RESERVATIONS
value: false
- name: NTFY_AUTH_DEFAULT_ACCESS
value: deny-all
- name: NTFY_METRICS_LISTEN_HTTP
value: :9090
- name: NTFY_LOG_LEVEL
value: info
probes:
liveness:
enabled: true
custom: true
spec:
httpGet:
path: /v1/health
port: 80
initialDelaySeconds: 60
periodSeconds: 60
successThreshold: 1
timeoutSeconds: 30
resources:
requests:
cpu: 10m
memory: 40Mi
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 80
metrics:
port: 9090
targetPort: 9090
serviceMonitor:
main:
selector:
matchLabels:
app.kubernetes.io/name: ntfy
app.kubernetes.io/instance: ntfy
serviceName: '{{ include "bjw-s.common.lib.chart.names.fullname" $ }}'
endpoints:
- port: metrics
interval: 3m
scrapeTimeout: 1m
path: /metrics
route:
main:
kind: HTTPRoute
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- ntfy.alexlebens.net
rules:
- backendRefs:
- name: ntfy
port: 80
matches:
- path:
type: PathPrefix
value: /
persistence:
cache:
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 5Gi
advancedMounts:
main:
main:
- path: /var/cache/ntfy
readOnly: false
postgres-18-cluster:
mode: recovery
recovery:
method: objectStore
objectStore:
index: 1
backup:
objectStore:
- name: garage-local
index: 1
destinationBucket: postgres-backups
externalSecretCredentialPath: /garage/home-infra/postgres-backups
isWALArchiver: true
scheduledBackups:
- name: live-backup
suspend: false
immediate: true
schedule: "0 15 14 * * *"
backupName: garage-local