client: image: ghcr.io/bluewave-labs/checkmate-client tag: "" # defaults to Chart.appVersion; set a full repo:tag in `image` to pin (e.g. a :latest dev tag) imagePullPolicy: IfNotPresent # IfNotPresent so kind-loaded :latest images are used (not pulled) port: 80 protocol: http ingress: enabled: true host: change_me className: nginx annotations: {} # Example annotations for cert-manager: # annotations: # cert-manager.io/cluster-issuer: "letsencrypt-prod" tls: enabled: false # secretName: {{ .Release.Name }}-client-tls # Optional; defaults to -client-tls if omitted # Note: when enabling TLS, also set client.protocol: https and add # a cert-manager issuer annotation (e.g. cert-manager.io/cluster-issuer: "letsencrypt-prod"). # The secret will be automatically created by cert-manager when using the cert-manager.io/cluster-issuer annotation api: image: ghcr.io/bluewave-labs/checkmate-backend tag: "" # defaults to Chart.appVersion; set a full repo:tag in `image` to pin (e.g. a :latest dev tag) imagePullPolicy: IfNotPresent # IfNotPresent so kind-loaded :latest images are used (not pulled) port: 52345 protocol: http # Liveness/readiness probes hit GET /api/v1/health on the api port (proves the HTTP server is up). probes: liveness: initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 3 failureThreshold: 3 readiness: initialDelaySeconds: 5 periodSeconds: 10 timeoutSeconds: 3 failureThreshold: 3 ingress: enabled: true host: change_me className: nginx annotations: {} # Example annotations for cert-manager: # annotations: # cert-manager.io/cluster-issuer: "letsencrypt-prod" tls: enabled: false # secretName: {{ .Release.Name }}-api-tls # Optional; defaults to -api-tls if omitted # Note: when enabling TLS, also set api.protocol: https and add # a cert-manager issuer annotation (e.g. cert-manager.io/cluster-issuer: "letsencrypt-prod"). # The secret will be automatically created by cert-manager when using the cert-manager.io/cluster-issuer annotation mongodb: image: ghcr.io/bluewave-labs/checkmate-mongo tag: "" # defaults to Chart.appVersion; set a full repo:tag in `image` to pin imagePullPolicy: IfNotPresent # IfNotPresent so kind-loaded :latest images are used (not pulled) port: 27017 worker: # Off by default; existing installs are unchanged. When true, a dedicated worker processes all # jobs and the API stops processing (QUEUE_PRIMARY_PROCESSES is derived as false). When false, the # API is all-in-one and processes jobs itself. enabled: false image: "" # defaults to api.image when empty, same as API image tag: "" # defaults to api.tag (-> Chart.appVersion) when empty imagePullPolicy: "" # defaults to api.imagePullPolicy when empty replicas: 1 # used only when autoscaling.enabled = false healthPort: 52346 # HEALTH_PORT; serves /livez /readyz /metrics terminationGracePeriodSeconds: 30 # MUST stay > the server drain timeout (25s) or workers are killed mid-drain resources: {} affinity: {} tolerations: {} probes: liveness: # /livez — failureThreshold>=3 so one slow tick never restarts mid-job initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 3 failureThreshold: 3 readiness: # /readyz — flips to 503 on drain initialDelaySeconds: 5 periodSeconds: 10 timeoutSeconds: 3 failureThreshold: 3 autoscaling: enabled: false # requires the KEDA operator installed in-cluster minReplicaCount: 1 # processing floor — never 0 (a cold gap silently stops checks) maxReplicaCount: 10 backlogPerReplica: 50 # KEDA queryValue: target due-backlog per worker cooldownPeriod: 300 # seconds before scaling an idle target down stabilizationWindowSeconds: 300 # damp the interval-boundary herd mongo: dbName: uptime_db # must match DB_CONNECTION_STRING's database collection: jobs secrets: JWT_SECRET: change_me DB_CONNECTION_STRING: mongodb://checkmate-mongodb:27017/uptime_db CLIENT_HOST: change_me NODE_ENV: production LOG_LEVEL: info TOKEN_TTL: 99d persistence: mongo: size: 5Gi storageClass: ""