--- # 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 gatus namespace: monitoring spec: interval: 30m chart: spec: chart: app-template version: 3.5.1 sourceRef: kind: HelmRepository name: bjw-s namespace: flux-system maxHistory: 2 install: createNamespace: true remediation: retries: 3 upgrade: cleanupOnFail: true remediation: strategy: rollback retries: 3 uninstall: keepHistory: false values: controllers: gatus: annotations: reloader.stakater.com/auto: "true" initContainers: 01-init-db: image: repository: ghcr.io/onedr0p/postgres-init tag: 16 pullPolicy: IfNotPresent envFrom: &envFrom - secretRef: name: gatus-secret 02-init-config: image: &configSyncImage repository: ghcr.io/kiwigrid/k8s-sidecar tag: 1.28.0@sha256:4166a019eeafd1f0fef4d867dc5f224f18d84ec8681dbb31f3ca258ecf07bcf2 env: FOLDER: /config LABEL: gatus.io/enabled NAMESPACE: ALL RESOURCE: both UNIQUE_FILENAMES: true METHOD: LIST resources: &configSyncResources requests: cpu: 10m memory: 10Mi limits: memory: 128Mi containers: app: image: repository: ghcr.io/twin/gatus tag: v5.13.1@sha256:24842a8adebd3dd4bd04a4038ffa27cb2fe72bb50631415e0fb2915063fc1993 env: TZ: ${TIMEZONE} GATUS_CONFIG_PATH: /config CUSTOM_WEB_PORT: &port 8080 SECRET_EXTERNAL_DOMAIN: ${SECRET_EXTERNAL_DOMAIN} envFrom: *envFrom resources: requests: cpu: 10m memory: 256M limits: memory: 512M config-sync: image: *configSyncImage env: FOLDER: /config LABEL: gatus.io/enabled NAMESPACE: ALL RESOURCE: both UNIQUE_FILENAMES: true METHOD: WATCH envFrom: *envFrom resources: *configSyncResources service: app: controller: *app ports: http: port: *port serviceMonitor: app: serviceName: *app endpoints: - port: http scheme: http path: /metrics interval: 1m scrapeTimeout: 10s ingress: app: enabled: true className: nginx annotations: external-dns.alpha.kubernetes.io/enabled: "true" external-dns.alpha.kubernetes.io/target: services.${SECRET_DOMAIN}. hajimari.io/icon: mdi:list-status gethomepage.dev/enabled: "true" gethomepage.dev/name: Gatus gethomepage.dev/description: Automated developer-oriented status page. gethomepage.dev/group: Applications gethomepage.dev/icon: gatus.png gethomepage.dev/pod-selector: >- app in ( gatus ) hosts: - host: &host "status.${SECRET_EXTERNAL_DOMAIN}" paths: - path: / service: identifier: app port: http tls: - hosts: - *host serviceAccount: create: true name: *app persistence: config: enabled: true type: emptyDir config-file: type: configMap name: gatus-configmap globalMounts: - path: /config/config.yaml subPath: config.yaml readOnly: true