176 lines
4.4 KiB
YAML
176 lines
4.4 KiB
YAML
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
|