envFromSecrets: # secrets are required before `helm install` - frigate-rtsp-credentials - frigate-mqtt-credentials coral: # -- enables the use of a Coral device enabled: true # -- path on the host to which to mount the Coral device hostPath: /dev/bus/usb # -- amount of shared memory to use for caching shmSize: 4Gi # -- use memory for tmpfs (mounted to /tmp) tmpfs: enabled: true sizeLimit: 4Gi # -- frigate configuration - see [Docs](https://docs.frigate.video/configuration/index) for more info config: | mqtt: host: frigate-mqtt port: 1883 topic_prefix: frigate client_id: frigate user: '{FRIGATE_MQTT_USERNAME}' password: '{FRIGATE_MQTT_PASSWORD}' stats_interval: 60 detectors: coral: type: edgetpu device: usb auth: enabled: False proxy: header_map: user: Remote-Username #model: # width: 300 # height: 300 # input_tensor: nhwc # input_pixel_format: bgr # path: /openvino-model/ssdlite_mobilenet_v2.xml # labelmap_path: /openvino-model/coco_91cl_bkgr.txt record: enabled: True # Retention is driven entirely by frigate.db: expire_existing_camera_recordings() # only unlinks files it finds rows for. Reconcile disk against the DB so orphaned # segments (e.g. if the config PVC is ever lost) get reclaimed instead of # accumulating until /media fills up. sync_recordings: True retain: days: 3 mode: motion events: retain: default: 30 mode: motion # go2rtc (IPs, creds) each camera defined in secretspace/kube:frigate/go2rtc-config.yml cameras: server_room: ffmpeg: inputs: - path: rtsp://go2rtc:8554/server_room roles: - detect - rtmp - record chaos: ffmpeg: inputs: - path: rtsp://go2rtc:8554/chaos roles: - detect - rtmp - record cyber: ffmpeg: inputs: - path: rtsp://go2rtc:8554/cyber roles: - detect - rtmp - record workshop: ffmpeg: inputs: - path: rtsp://go2rtc:8554/workshop roles: - detect - rtmp - record ground_door: ffmpeg: inputs: - path: rtsp://go2rtc:8554/ground_door roles: - detect - rtmp - record back_door: ffmpeg: inputs: - path: rtsp://go2rtc:8554/back_door roles: - detect - rtmp - record # Amcrest 5MP: without an explicit detect size frigate uses the native # 2960x1668 stream, i.e. 7.1MiB frames in /dev/shm vs 1.3MiB for the 720p # cameras. Detection runs at 300x300 anyway, so cap detect at 720p. workshop_a: ffmpeg: inputs: - path: rtsp://go2rtc:8554/workshop_a roles: - detect - rtmp - record detect: width: 1280 height: 720 workshop_b: ffmpeg: inputs: - path: rtsp://go2rtc:8554/workshop_b roles: - detect - rtmp - record detect: width: 1280 height: 720 ingress: enabled: true annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure external-dns.alpha.kubernetes.io/target: traefik.k-space.ee traefik.ingress.kubernetes.io/router.middlewares: frigate-frigate@kubernetescrd hosts: - host: frigate.k-space.ee paths: - path: '/' portName: http tls: - hosts: - "*.k-space.ee" persistence: # frigate.db lives here. On an emptyDir it is recreated blank on every pod # restart, which orphans every recording already on /media - retention then # has no rows to expire and the media volume grows without bound. # ephemeralWritableConfigYaml (chart default) keeps an initContainer that # re-copies config.yml from the ConfigMap on each start, so the `config:` # block above stays authoritative. config: enabled: true storageClass: "ceph-rbd" size: 5Gi media: enabled: true storageClass: "hdd-ceph" size: 1Ti # Force application to run on nvr node nodeSelector: coral.ai/tpu: Exists