Commit new Chart releases for TrueCharts
Signed-off-by: TrueCharts-Bot <bot@truecharts.org>
This commit is contained in:
parent
4082c53c6e
commit
5c3137f5a1
|
@ -0,0 +1,99 @@
|
||||||
|
**Important:**
|
||||||
|
*for the complete changelog, please refer to the website*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-6.0.0](https://github.com/truecharts/charts/compare/frigate-5.0.14...frigate-6.0.0) (2023-01-21)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.14](https://github.com/truecharts/charts/compare/frigate-5.0.13...frigate-5.0.14) (2022-12-27)
|
||||||
|
|
||||||
|
### Chore
|
||||||
|
|
||||||
|
- update helm general non-major ([#5856](https://github.com/truecharts/charts/issues/5856))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.13](https://github.com/truecharts/charts/compare/frigate-5.0.12...frigate-5.0.13) (2022-12-26)
|
||||||
|
|
||||||
|
### Chore
|
||||||
|
|
||||||
|
- update helm general non-major ([#5839](https://github.com/truecharts/charts/issues/5839))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.12](https://github.com/truecharts/charts/compare/frigate-5.0.11...frigate-5.0.12) (2022-12-25)
|
||||||
|
|
||||||
|
### Chore
|
||||||
|
|
||||||
|
- update helm general non-major
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.11](https://github.com/truecharts/charts/compare/frigate-5.0.10...frigate-5.0.11) (2022-12-19)
|
||||||
|
|
||||||
|
### Chore
|
||||||
|
|
||||||
|
- update helm general non-major
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.10](https://github.com/truecharts/charts/compare/frigate-5.0.9...frigate-5.0.10) (2022-12-13)
|
||||||
|
|
||||||
|
### Chore
|
||||||
|
|
||||||
|
- update helm general non-major
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.9](https://github.com/truecharts/charts/compare/frigate-5.0.8...frigate-5.0.9) (2022-12-08)
|
||||||
|
|
||||||
|
### Fix
|
||||||
|
|
||||||
|
- quote all floats in values.yaml. because questions.yaml schema fails to validate when applying empty value ([#5204](https://github.com/truecharts/charts/issues/5204))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.8](https://github.com/truecharts/charts/compare/frigate-5.0.7...frigate-5.0.8) (2022-12-07)
|
||||||
|
|
||||||
|
### Fix
|
||||||
|
|
||||||
|
- render parent max_frames only when at least one child has value ([#5196](https://github.com/truecharts/charts/issues/5196))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.7](https://github.com/truecharts/charts/compare/frigate-5.0.6...frigate-5.0.7) (2022-12-06)
|
||||||
|
|
||||||
|
### Fix
|
||||||
|
|
||||||
|
- fix typos ([#5164](https://github.com/truecharts/charts/issues/5164))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.6](https://github.com/truecharts/charts/compare/frigate-5.0.5...frigate-5.0.6) (2022-11-30)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.6](https://github.com/truecharts/charts/compare/frigate-5.0.5...frigate-5.0.6) (2022-11-30)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.6](https://github.com/truecharts/charts/compare/frigate-5.0.5...frigate-5.0.6) (2022-11-30)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-5.0.6](https://github.com/truecharts/charts/compare/frigate-5.0.5...frigate-5.0.6) (2022-11-30)
|
|
@ -0,0 +1,32 @@
|
||||||
|
apiVersion: v2
|
||||||
|
appVersion: "0.11.1"
|
||||||
|
dependencies:
|
||||||
|
- name: common
|
||||||
|
repository: https://library-charts.truecharts.org
|
||||||
|
version: 11.1.2
|
||||||
|
deprecated: false
|
||||||
|
description: NVR With Realtime Object Detection for IP Cameras
|
||||||
|
home: https://truecharts.org/charts/incubator/frigate
|
||||||
|
icon: https://truecharts.org/img/hotlink-ok/chart-icons/frigate.png
|
||||||
|
keywords:
|
||||||
|
- encode
|
||||||
|
- nvr
|
||||||
|
- media
|
||||||
|
- frigate
|
||||||
|
kubeVersion: ">=1.16.0-0"
|
||||||
|
maintainers:
|
||||||
|
- email: info@truecharts.org
|
||||||
|
name: TrueCharts
|
||||||
|
url: https://truecharts.org
|
||||||
|
name: frigate
|
||||||
|
sources:
|
||||||
|
- https://github.com/truecharts/charts/tree/master/charts/incubator/frigate
|
||||||
|
- https://github.com/blakeblackshear/frigate
|
||||||
|
- https://hub.docker.com/r/blakeblackshear/frigate
|
||||||
|
type: application
|
||||||
|
version: 6.0.0
|
||||||
|
annotations:
|
||||||
|
truecharts.org/catagories: |
|
||||||
|
- nvr
|
||||||
|
truecharts.org/SCALE-support: "true"
|
||||||
|
truecharts.org/grade: U
|
|
@ -0,0 +1,27 @@
|
||||||
|
# README
|
||||||
|
|
||||||
|
## General Info
|
||||||
|
|
||||||
|
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
|
||||||
|
However only installations using the TrueNAS SCALE Apps system are supported.
|
||||||
|
|
||||||
|
For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/incubator/)
|
||||||
|
|
||||||
|
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)**
|
||||||
|
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE%20Apps/Important-MUST-READ).
|
||||||
|
- See the [Website](https://truecharts.org)
|
||||||
|
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||||
|
- Open a [issue](https://github.com/truecharts/charts/issues/new/choose)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sponsor TrueCharts
|
||||||
|
|
||||||
|
TrueCharts can only exist due to the incredible effort of our staff.
|
||||||
|
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
|
||||||
|
|
||||||
|
*All Rights Reserved - The TrueCharts Project*
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
|
||||||
|
## [frigate-6.0.0](https://github.com/truecharts/charts/compare/frigate-5.0.14...frigate-6.0.0) (2023-01-21)
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
NVR With Realtime Object Detection for IP Cameras
|
||||||
|
|
||||||
|
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/incubator/frigate](https://truecharts.org/charts/incubator/frigate)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
TrueCharts can only exist due to the incredible effort of our staff.
|
||||||
|
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
|
Binary file not shown.
|
@ -0,0 +1,490 @@
|
||||||
|
image:
|
||||||
|
repository: tccr.io/truecharts/frigate
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
tag: 0.11.1@sha256:8dd7273eebf396563d7bbc14778fd3d58c624e5063ffcf74b5b0afe63e7cdd7f
|
||||||
|
|
||||||
|
securityContext:
|
||||||
|
readOnlyRootFilesystem: false
|
||||||
|
runAsNonRoot: false
|
||||||
|
|
||||||
|
podSecurityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
runAsGroup: 0
|
||||||
|
|
||||||
|
# -- The "render_config" key is only used internally to "render" or not the configuration
|
||||||
|
# - Some parts of the config bellow are slightly modified so they can be added on SCALE UI. Mainly lists.
|
||||||
|
# - Do not blindly copy paste configuration from upstream. As this won't work on all cases
|
||||||
|
# - Where you see "null" set as default is ignored by the configmap. (Not all keys are supported).
|
||||||
|
# - Those "nulls" should be replaced with integers (if you want to set a value)
|
||||||
|
frigate:
|
||||||
|
mqtt:
|
||||||
|
host: mqtt.server.com
|
||||||
|
port: 1883
|
||||||
|
# -- NOTE: Must be unique if you are running multiple instances
|
||||||
|
topic_prefix: ""
|
||||||
|
# -- NOTE: Must be unique if you are running multiple instances
|
||||||
|
client_id: ""
|
||||||
|
user: ""
|
||||||
|
password: ""
|
||||||
|
stats_interval: 60
|
||||||
|
|
||||||
|
detectors:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
config:
|
||||||
|
[]
|
||||||
|
# -- Required: Name of the detector
|
||||||
|
# - name: coral
|
||||||
|
# # -- Valid values are 'edgetpu' (requires device property below) and 'cpu'.
|
||||||
|
# type: edgetpu
|
||||||
|
# # -- Device name as defined here: https://coral.ai/docs/edgetpu/multiple-edgetpu/#using-the-tensorflow-lite-python-api
|
||||||
|
# device: usb
|
||||||
|
# # -- This value is only used for CPU types
|
||||||
|
# num_threads: 3
|
||||||
|
|
||||||
|
model:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Required: Object detection model input width
|
||||||
|
width: 320
|
||||||
|
# -- Required: Object detection model input height
|
||||||
|
height: 320
|
||||||
|
# -- Optional: Path to the model
|
||||||
|
path: ""
|
||||||
|
# -- Optional: Path to the labelmap
|
||||||
|
labelmap_path: ""
|
||||||
|
# -- Optional: Label name modifications.
|
||||||
|
labelmap:
|
||||||
|
[]
|
||||||
|
# - model: "2"
|
||||||
|
# name: vehicle
|
||||||
|
# - model: 3
|
||||||
|
# name: vehicle
|
||||||
|
|
||||||
|
logger:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Optional: Default log verbosity (default: shown below)
|
||||||
|
default: info
|
||||||
|
# -- Optional: Component specific logger overrides
|
||||||
|
logs:
|
||||||
|
[]
|
||||||
|
# - component: frigate.event
|
||||||
|
# verbosity: debug
|
||||||
|
|
||||||
|
birdseye:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Enables birdseye
|
||||||
|
enabled: true
|
||||||
|
# -- Optional: Width of the output resolution
|
||||||
|
width: null
|
||||||
|
# -- Optional: Height of the output resolution
|
||||||
|
height: null
|
||||||
|
# -- Optional: Encoding quality of the mpeg1 feed
|
||||||
|
# - 1 is the highest quality, and 31 is the lowest. Lower quality feeds utilize less CPU resources.
|
||||||
|
quality: null
|
||||||
|
# -- Optional: Mode of the view. Available options are: objects, motion, and continuous
|
||||||
|
# - objects - cameras are included if they have had a tracked object within the last 30 seconds
|
||||||
|
# - motion - cameras are included if motion was detected in the last 30 seconds
|
||||||
|
# - continuous - all cameras are included always
|
||||||
|
mode: ""
|
||||||
|
|
||||||
|
ffmpeg:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: true
|
||||||
|
# -- Optional: global ffmpeg args
|
||||||
|
global_args: ""
|
||||||
|
# -- Optional: global input args
|
||||||
|
input_args: ""
|
||||||
|
# -- Optional: global hwaccel args
|
||||||
|
# - NOTE: See hardware acceleration docs for your specific device
|
||||||
|
hwaccel_args: ""
|
||||||
|
# -- Optional: global output args
|
||||||
|
output_args:
|
||||||
|
# -- Optional: output args for detect streams
|
||||||
|
detect: ""
|
||||||
|
# -- Optional: output args for record streams
|
||||||
|
record: ""
|
||||||
|
# -- Optional: output args for rtmp streams
|
||||||
|
rtmp: ""
|
||||||
|
|
||||||
|
detect:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Enables detection for the camera.
|
||||||
|
# - This value can be set via MQTT and will be updated in startup based on retained value
|
||||||
|
enabled: true
|
||||||
|
# -- Optional: width of the frame for the input with the detect role
|
||||||
|
width: null
|
||||||
|
# -- Optional: height of the frame for the input with the detect role
|
||||||
|
height: null
|
||||||
|
# -- Optional: desired fps for your camera for the input with the detect role
|
||||||
|
# - NOTE: Recommended value of 5. Ideally, try and reduce your FPS on the camera.
|
||||||
|
fps: null
|
||||||
|
# -- Optional: Number of frames without a detection before frigate considers an object to be gone. (default: 5x the frame rate)
|
||||||
|
max_disappeared: null
|
||||||
|
# -- Optional: Configuration for stationary object tracking
|
||||||
|
stationary:
|
||||||
|
# -- Optional: Frequency for confirming stationary objects
|
||||||
|
# - When set to 0, object detection will not confirm stationary objects until movement is detected.
|
||||||
|
# - If set to 10, object detection will run to confirm the object still exists on every 10th frame.
|
||||||
|
interval: null
|
||||||
|
# -- Optional: Number of frames without a position change for an object to be considered stationary (default: 10x the frame rate or 10s)
|
||||||
|
threshold: null
|
||||||
|
# -- Optional: Define a maximum number of frames for tracking a stationary object (default: not set, track forever)
|
||||||
|
# - This can help with false positives for objects that should only be stationary for a limited amount of time.
|
||||||
|
# - It can also be used to disable stationary object tracking. For example, you may want to set a value for person, but leave
|
||||||
|
# - car at the default.
|
||||||
|
# - WARNING: Setting these values overrides default behavior and disables stationary object tracking.
|
||||||
|
# - There are very few situations where you would want it disabled. It is NOT recommended to
|
||||||
|
# - copy these values from the example config into your config unless you know they are needed.
|
||||||
|
# max_frames:
|
||||||
|
# # -- Optional: Default for all object types (default: not set, track forever)
|
||||||
|
# default:
|
||||||
|
# # -- Optional: Object specific values
|
||||||
|
# objects:
|
||||||
|
# - object: person
|
||||||
|
# frames: 1000
|
||||||
|
|
||||||
|
objects:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Optional: list of objects to track from labelmap.txt
|
||||||
|
track:
|
||||||
|
[]
|
||||||
|
# - person
|
||||||
|
# - car
|
||||||
|
# -- Optional: mask to prevent all object types from being detected in certain areas (default: no mask)
|
||||||
|
# - Checks based on the bottom center of the bounding box of the object.
|
||||||
|
# - NOTE: This mask is COMBINED with the object type specific mask below
|
||||||
|
mask: ""
|
||||||
|
# - Optional: filters to reduce false positives for specific object types
|
||||||
|
filters:
|
||||||
|
[]
|
||||||
|
# - object: person
|
||||||
|
# # -- Optional: Minimum width*height of the bounding box for the detected object
|
||||||
|
# min_area: 5000
|
||||||
|
# # -- Optional: Maximum width*height of the bounding box for the detected object
|
||||||
|
# max_area: 100000
|
||||||
|
# # -- Optional: Minimum width/height of the bounding box for the detected object
|
||||||
|
# min_ratio: "0.5"
|
||||||
|
# # -- Optional: Maximum width/height of the bounding box for the detected object
|
||||||
|
# max_ratio: "2.0"
|
||||||
|
# # -- Optional: Minimum score for the object to initiate tracking
|
||||||
|
# min_score: "0.5"
|
||||||
|
# # -- Optional: Minimum decimal percentage for tracked object's computed score to be considered a true positive
|
||||||
|
# threshold: "0.7"
|
||||||
|
# # -- Optional: Mask to prevent this object type from being detected in certain areas
|
||||||
|
# # - Checks based on the bottom center of the bounding box of the object
|
||||||
|
# mask: 0,0,1000,0,1000,200,0,200
|
||||||
|
|
||||||
|
motion:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Optional: The threshold passed to cv2.threshold to determine if a pixel is different enough to be counted as motion.
|
||||||
|
# - Increasing this value will make motion detection less sensitive and decreasing it will make motion detection more sensitive.
|
||||||
|
# - The value should be between 1 and 255.
|
||||||
|
threshold: null
|
||||||
|
# -- Optional: Minimum size in pixels in the resized motion image that counts as motion
|
||||||
|
# - Increasing this value will prevent smaller areas of motion from being detected. Decreasing will
|
||||||
|
# - make motion detection more sensitive to smaller moving objects.
|
||||||
|
# - As a rule of thumb:
|
||||||
|
# - 15 - high sensitivity
|
||||||
|
# - 30 - medium sensitivity
|
||||||
|
# - 50 - low sensitivity
|
||||||
|
contour_area: null
|
||||||
|
# -- Optional: Alpha value passed to cv2.accumulateWeighted when averaging the motion delta across multiple frames
|
||||||
|
# - Higher values mean the current frame impacts the delta a lot, and a single raindrop may register as motion.
|
||||||
|
# - Too low and a fast moving person wont be detected as motion.
|
||||||
|
delta_alpha: ""
|
||||||
|
# -- Optional: Alpha value passed to cv2.accumulateWeighted when averaging frames to determine the background
|
||||||
|
# - Higher values mean the current frame impacts the average a lot, and a new object will be averaged into the background faster.
|
||||||
|
# - Low values will cause things like moving shadows to be detected as motion for longer.
|
||||||
|
# - https://www.geeksforgeeks.org/background-subtraction-in-an-image-using-concept-of-running-average/
|
||||||
|
frame_alpha: ""
|
||||||
|
# -- Optional: Height of the resized motion frame (default: 50)
|
||||||
|
# - This operates as an efficient blur alternative. Higher values will result in more granular motion detection at the expense
|
||||||
|
# - of higher CPU usage. Lower values result in less CPU, but small changes may not register as motion.
|
||||||
|
frame_height: null
|
||||||
|
# -- Optional: motion mask
|
||||||
|
# - NOTE: see docs for more detailed info on creating masks
|
||||||
|
mask: ""
|
||||||
|
# -- Optional: improve contrast
|
||||||
|
# - Enables dynamic contrast improvement. This should help improve night detections at the cost of making motion detection more sensitive
|
||||||
|
# - for daytime.
|
||||||
|
improve_contrast: false
|
||||||
|
# -- Optional: Delay when updating camera motion through MQTT from ON -> OFF
|
||||||
|
mqtt_off_delay: null
|
||||||
|
|
||||||
|
record:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Optional: Enable recording
|
||||||
|
# - WARNING: If recording is disabled in the config, turning it on via
|
||||||
|
# - the UI or MQTT later will have no effect.
|
||||||
|
# - WARNING: Frigate does not currently support limiting recordings based
|
||||||
|
# - on available disk space automatically. If using recordings,
|
||||||
|
# - you must specify retention settings for a number of days that
|
||||||
|
# - will fit within the available disk space of your drive or Frigate will crash.
|
||||||
|
enabled: false
|
||||||
|
# -- Optional: Number of minutes to wait between cleanup runs
|
||||||
|
# - This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o
|
||||||
|
expire_interval:
|
||||||
|
# -- Optional: Retention settings for recording
|
||||||
|
retain:
|
||||||
|
# -- Render retain config
|
||||||
|
render_config: false
|
||||||
|
# -- Optional: Number of days to retain recordings regardless of events
|
||||||
|
# - NOTE: This should be set to 0 and retention should be defined in events section below
|
||||||
|
# - if you only want to retain recordings of events.
|
||||||
|
days:
|
||||||
|
# -- Optional: Mode for retention. Available options are: all, motion, and active_objects
|
||||||
|
# - all - save all recording segments regardless of activity
|
||||||
|
# - motion - save all recordings segments with any detected motion
|
||||||
|
# - active_objects - save all recording segments with active/moving objects
|
||||||
|
# - NOTE: this mode only applies when the days setting above is greater than 0
|
||||||
|
mode: ""
|
||||||
|
# -- Optional: Event recording settings
|
||||||
|
events:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Optional: Number of seconds before the event to include
|
||||||
|
pre_capture: null
|
||||||
|
# -- Optional: Number of seconds after the event to include
|
||||||
|
post_capture: null
|
||||||
|
# -- Optional: Objects to save recordings for. Defaults to all
|
||||||
|
objects:
|
||||||
|
[]
|
||||||
|
# - person
|
||||||
|
# -- Optional: Restrict recordings to objects that entered any of the listed zones
|
||||||
|
required_zones: []
|
||||||
|
# -- Optional: Retention settings for recordings of events
|
||||||
|
retain:
|
||||||
|
# -- Render retain config
|
||||||
|
render_config: false
|
||||||
|
# -- Required: Default retention days
|
||||||
|
default: 10
|
||||||
|
# -- Optional: Mode for retention.
|
||||||
|
# - all - save all recording segments for events regardless of activity
|
||||||
|
# - motion - save all recordings segments for events with any detected motion
|
||||||
|
# - active_objects - save all recording segments for event with active/moving objects
|
||||||
|
mode: ""
|
||||||
|
# -- Optional: Per object retention days
|
||||||
|
objects:
|
||||||
|
[]
|
||||||
|
# - object: person
|
||||||
|
# days: 15
|
||||||
|
|
||||||
|
snapshots:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Optional: Enable writing jpg snapshot to /media/frigate/clips
|
||||||
|
# - This value can be set via MQTT and will be updated in startup based on retained value
|
||||||
|
enabled: false
|
||||||
|
# -- Optional: Save a clean PNG copy of the snapshot image
|
||||||
|
clean_copy: true
|
||||||
|
# -- Optional: print a timestamp on the snapshots
|
||||||
|
timestamp: false
|
||||||
|
# -- Optional: draw bounding box on the snapshots
|
||||||
|
bounding_box: false
|
||||||
|
# -- Optional: crop the snapshot
|
||||||
|
crop: false
|
||||||
|
# -- Optional: height to resize the snapshot to (default: original size)
|
||||||
|
height:
|
||||||
|
# -- Optional: Restrict snapshots to objects that entered any of the listed zones (default: no required zones)
|
||||||
|
required_zones: []
|
||||||
|
# -- Optional: Camera override for retention settings (default: global values)
|
||||||
|
retain:
|
||||||
|
# -- Render retain config
|
||||||
|
render_config: false
|
||||||
|
# -- Required: Default retention days (default: shown below)
|
||||||
|
default: 10
|
||||||
|
# -- Optional: Per object retention days
|
||||||
|
objects:
|
||||||
|
[]
|
||||||
|
# - object: person
|
||||||
|
# days: 15
|
||||||
|
|
||||||
|
rtmp:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# - Optional: Enable the RTMP stream
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
live:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Optional: Set the height of the live stream. (default: 720)
|
||||||
|
# - This must be less than or equal to the height of the detect stream. Lower resolutions
|
||||||
|
# - reduce bandwidth required for viewing the live stream. Width is computed to match known aspect ratio.
|
||||||
|
height: null
|
||||||
|
# -- Optional: Set the encode quality of the live stream (default: shown below)
|
||||||
|
# - 1 is the highest quality, and 31 is the lowest. Lower quality feeds utilize less CPU resources.
|
||||||
|
quality: null
|
||||||
|
|
||||||
|
timestamp_style:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Optional: Position of the timestamp
|
||||||
|
# - "tl" (top left), "tr" (top right), "bl" (bottom left), "br" (bottom right)
|
||||||
|
position: ""
|
||||||
|
# -- Optional: Format specifier conform to the Python package "datetime"
|
||||||
|
# - Additional Examples:
|
||||||
|
# - german: "%d.%m.%Y %H:%M:%S"
|
||||||
|
format: ""
|
||||||
|
# -- Optional: Color of font
|
||||||
|
color:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- All Required when color is specified (default: shown below)
|
||||||
|
red: 255
|
||||||
|
green: 255
|
||||||
|
blue: 255
|
||||||
|
# -- Optional: Line thickness of font (default: shown below)
|
||||||
|
thickness: null
|
||||||
|
# -- Optional: Effect of lettering (default: shown below)
|
||||||
|
# - None (No effect),
|
||||||
|
# - "solid" (solid background in inverse color of font)
|
||||||
|
# - "shadow" (shadow for font)
|
||||||
|
effect: ""
|
||||||
|
|
||||||
|
cameras:
|
||||||
|
# -- Required: name of the camera
|
||||||
|
- camera_name: back
|
||||||
|
# -- Required: ffmpeg settings for the camera
|
||||||
|
ffmpeg:
|
||||||
|
# -- Required: A list of input streams for the camera. See documentation for more information.
|
||||||
|
inputs:
|
||||||
|
# -- Required: the path to the stream
|
||||||
|
- path: rtsp://viewer:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
|
||||||
|
# -- Required: list of roles for this stream. valid values are: detect,record,rtmp
|
||||||
|
# - NOTICE: In addition to assigning the record, and rtmp roles,
|
||||||
|
# - they must also be enabled in the camera config.
|
||||||
|
roles:
|
||||||
|
- detect
|
||||||
|
- rtmp
|
||||||
|
# -- Optional: stream specific global args
|
||||||
|
global_args: ""
|
||||||
|
# - Optional: stream specific hwaccel args
|
||||||
|
hwaccel_args: ""
|
||||||
|
# - Optional: stream specific input args
|
||||||
|
input_args: ""
|
||||||
|
# - Optional: stream specific output args
|
||||||
|
output_args:
|
||||||
|
detect: ""
|
||||||
|
record: ""
|
||||||
|
rtmp: ""
|
||||||
|
# -- Optional: camera specific global args
|
||||||
|
global_args: ""
|
||||||
|
# -- Optional: camera specific hwaccel args
|
||||||
|
hwaccel_args: ""
|
||||||
|
# -- Optional: camera specific input args
|
||||||
|
input_args: ""
|
||||||
|
# -- Optional: camera specific output args
|
||||||
|
output_args:
|
||||||
|
detect: ""
|
||||||
|
record: ""
|
||||||
|
rtmp: ""
|
||||||
|
# -- Optional: timeout for highest scoring image before allowing it
|
||||||
|
# - to be replaced by a newer image.
|
||||||
|
best_image_timeout: 60
|
||||||
|
# -- Optional: zones for this camera
|
||||||
|
zones:
|
||||||
|
# -- Required: name of the zone
|
||||||
|
# - NOTE: This must be different than any camera names, but can match with another zone on another camera
|
||||||
|
- name: front_steps
|
||||||
|
# -- Required: List of x,y coordinates to define the polygon of the zone.
|
||||||
|
# - NOTE: Presence in a zone is evaluated only based on the bottom center of the objects bounding box.
|
||||||
|
coordinates: 545,1077,747,939,788,805
|
||||||
|
# -- Optional: List of objects that can trigger this zone (default: all tracked objects)
|
||||||
|
objects:
|
||||||
|
[]
|
||||||
|
# - person
|
||||||
|
# -- Optional: Zone level object filters.
|
||||||
|
# -NOTE: The global and camera filters are applied upstream.
|
||||||
|
filters:
|
||||||
|
[]
|
||||||
|
# - object: person
|
||||||
|
# min_area: null
|
||||||
|
# max_area: null
|
||||||
|
# threshold: ""
|
||||||
|
# -- Optional: Configuration for the jpg snapshots published via MQTT
|
||||||
|
mqtt:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Optional: Enable publishing snapshot via mqtt for camera
|
||||||
|
# - NOTE: Only applies to publishing image data to MQTT via 'frigate/<camera_name>/<object_name>/snapshot'.
|
||||||
|
# - All other messages will still be published.
|
||||||
|
enabled: true
|
||||||
|
# -- Optional: print a timestamp on the snapshots
|
||||||
|
timestamp: true
|
||||||
|
# -- Optional: draw bounding box on the snapshots
|
||||||
|
bounding_box: true
|
||||||
|
# -- Optional: crop the snapshot
|
||||||
|
crop: true
|
||||||
|
# -- Optional: height to resize the snapshot to
|
||||||
|
height: null
|
||||||
|
# -- Optional: jpeg encode quality
|
||||||
|
quality: null
|
||||||
|
# -- Optional: Restrict mqtt messages to objects that entered any of the listed zones
|
||||||
|
required_zones: []
|
||||||
|
# -- Optional: Configuration for how camera is handled in the GUI.
|
||||||
|
ui:
|
||||||
|
# -- Enable it to add the configuration in the config file
|
||||||
|
render_config: false
|
||||||
|
# -- Optional: Adjust sort order of cameras in the UI. Larger numbers come later
|
||||||
|
# - By default the cameras are sorted alphabetically.
|
||||||
|
order: null
|
||||||
|
# -- Optional: Whether or not to show the camera in the Frigate UI
|
||||||
|
dashboard: true
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
rtmp:
|
||||||
|
autoLink: true
|
||||||
|
|
||||||
|
service:
|
||||||
|
main:
|
||||||
|
ports:
|
||||||
|
main:
|
||||||
|
port: 10500
|
||||||
|
protocol: HTTP
|
||||||
|
targetPort: 5000
|
||||||
|
rtmp:
|
||||||
|
enabled: true
|
||||||
|
ports:
|
||||||
|
rtmp:
|
||||||
|
enabled: true
|
||||||
|
port: 1935
|
||||||
|
targetPort: 1935
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
media:
|
||||||
|
enabled: true
|
||||||
|
mountPath: /media
|
||||||
|
size: 256Gi
|
||||||
|
db:
|
||||||
|
enabled: true
|
||||||
|
mountPath: /db
|
||||||
|
size: 256Gi
|
||||||
|
type: emptyDir
|
||||||
|
cache:
|
||||||
|
enabled: true
|
||||||
|
mountPath: /tmp/cache
|
||||||
|
type: emptyDir
|
||||||
|
shm:
|
||||||
|
enabled: true
|
||||||
|
mountPath: /dev/shm
|
||||||
|
type: emptyDir
|
||||||
|
medium: Memory
|
||||||
|
frigate-config:
|
||||||
|
enabled: true
|
||||||
|
mountPath: /config
|
||||||
|
type: configMap
|
||||||
|
objectName: '{{ template "tc.common.names.fullname" . }}-frigate-config'
|
||||||
|
items:
|
||||||
|
- key: config.yml
|
||||||
|
path: config.yml
|
||||||
|
|
||||||
|
portal:
|
||||||
|
enabled: true
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,502 @@
|
||||||
|
{{/* Define the configmap */}}
|
||||||
|
{{- define "frigate.configmap" -}}
|
||||||
|
|
||||||
|
{{- $configName := printf "%s-frigate-config" (include "tc.common.names.fullname" .) }}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ $configName }}
|
||||||
|
labels:
|
||||||
|
{{- include "tc.common.labels" . | nindent 4 }}
|
||||||
|
data:
|
||||||
|
config.yml: |
|
||||||
|
database:
|
||||||
|
path: /db/frigate.db
|
||||||
|
mqtt:
|
||||||
|
{{- include "frigate.mqtt" .Values.frigate.mqtt | indent 6 }}
|
||||||
|
|
||||||
|
{{- if and .Values.frigate.detectors.render_config .Values.frigate.detectors.config }}
|
||||||
|
detectors:
|
||||||
|
{{- include "frigate.detectors" .Values.frigate.detectors | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.model.render_config }}
|
||||||
|
model:
|
||||||
|
{{- include "frigate.model" .Values.frigate.model | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.logger.render_config }}
|
||||||
|
logger:
|
||||||
|
{{- include "frigate.logger" .Values.frigate.logger | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.birdseye.render_config }}
|
||||||
|
birdseye:
|
||||||
|
{{- include "frigate.birdseye" .Values.frigate.birdseye | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.ffmpeg.render_config }}
|
||||||
|
ffmpeg:
|
||||||
|
{{- include "frigate.ffmpeg" .Values.frigate.ffmpeg | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.detect.render_config }}
|
||||||
|
detect:
|
||||||
|
{{- include "frigate.detect" .Values.frigate.detect | indent 6 }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.objects.render_config }}
|
||||||
|
objects:
|
||||||
|
{{- include "frigate.objects" .Values.frigate.objects | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.motion.render_config }}
|
||||||
|
motion:
|
||||||
|
{{- include "frigate.motion" .Values.frigate.motion | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.record.render_config }}
|
||||||
|
record:
|
||||||
|
{{- include "frigate.record" .Values.frigate.record | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.snapshots.render_config }}
|
||||||
|
snapshots:
|
||||||
|
{{- include "frigate.snapshots" .Values.frigate.snapshots | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.rtmp.render_config }}
|
||||||
|
rtmp:
|
||||||
|
{{- include "frigate.rtmp" .Values.frigate.rtmp | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.live.render_config }}
|
||||||
|
live:
|
||||||
|
{{- include "frigate.live" .Values.frigate.live | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.frigate.timestamp_style.render_config }}
|
||||||
|
timestamp_style:
|
||||||
|
{{- include "frigate.timestamp_style" .Values.frigate.timestamp_style | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- $cameras := .Values.frigate.cameras }}
|
||||||
|
cameras:
|
||||||
|
{{- range $cam := $cameras }}
|
||||||
|
{{ $cam.camera_name | required "You need to provide a camera name" }}:
|
||||||
|
ffmpeg:
|
||||||
|
inputs:
|
||||||
|
{{- range $input := $cam.ffmpeg.inputs }}
|
||||||
|
- path: {{ $input.path | required "You need to provide a path" }}
|
||||||
|
roles:
|
||||||
|
{{- range $role := $input.roles }}
|
||||||
|
- {{ $role }}
|
||||||
|
{{- else -}}
|
||||||
|
{{- fail "You need to provide roles" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- include "frigate.ffmpeg" $input | indent 14 }}
|
||||||
|
{{- end -}} {{/* End range $cam.ffmpeg.inputs */}}
|
||||||
|
{{- include "frigate.ffmpeg" $cam.ffmpeg | indent 10 }}
|
||||||
|
{{- with $cam.best_image_timeout }}
|
||||||
|
best_image_timeout: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $cam.zones }}
|
||||||
|
zones:
|
||||||
|
{{- range $zone := . }}
|
||||||
|
{{ $zone.name | required "You have to specify a zone name" }}:
|
||||||
|
coordinates: {{ required "You have to specify coordinates" .coordinates }}
|
||||||
|
{{- with $zone.objects }}
|
||||||
|
objects:
|
||||||
|
{{- range $obj := . }}
|
||||||
|
- {{ $obj }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $zone.filters }}
|
||||||
|
filters:
|
||||||
|
{{- range $filter := . }}
|
||||||
|
{{ $filter.object | required "You have to specify an object" }}:
|
||||||
|
{{- with $filter.min_area }}
|
||||||
|
min_area: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $filter.max_area }}
|
||||||
|
max_area: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $filter.threshold }}
|
||||||
|
threshold: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}} {{/* end range filters */}}
|
||||||
|
{{- end -}} {{/* end with filter */}}
|
||||||
|
{{- end -}} {{/* end range zones */}}
|
||||||
|
{{- end -}} {{/* end with zones */}}
|
||||||
|
{{- if $cam.mqtt.render_config -}}
|
||||||
|
{{- with $cam.mqtt }}
|
||||||
|
mqtt:
|
||||||
|
enabled: {{ ternary "True" "False" .enabled }}
|
||||||
|
timestamp: {{ ternary "True" "False" .timestamp }}
|
||||||
|
bounding_box: {{ ternary "True" "False" .bounding_box }}
|
||||||
|
crop: {{ ternary "True" "False" .crop }}
|
||||||
|
{{- with .height }}
|
||||||
|
height: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with .quality }}
|
||||||
|
quality: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with .required_zones }}
|
||||||
|
required_zones:
|
||||||
|
{{- range $zone := . }}
|
||||||
|
- {{ $zone }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}} {{/* end with mqtt */}}
|
||||||
|
{{- end -}} {{/* end if mqtt.render_config */}}
|
||||||
|
{{- if $cam.ui.render_config -}}
|
||||||
|
{{- with $cam.ui }}
|
||||||
|
ui:
|
||||||
|
{{- if not (kindIs "invalid" .order) }}
|
||||||
|
order: {{ .order }}
|
||||||
|
{{- end }}
|
||||||
|
dashboard: {{ ternary "True" "False" .dashboard }}
|
||||||
|
{{- end -}} {{/* end with ui */}}
|
||||||
|
{{- end -}} {{/* end if ui.render_config */}}
|
||||||
|
{{- end -}} {{/* end range cameras */}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- define "frigate.ffmpeg" -}}
|
||||||
|
{{- $ffmpeg := . -}}
|
||||||
|
|
||||||
|
{{- with $ffmpeg.global_args }}
|
||||||
|
global_args: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $ffmpeg.input_args }}
|
||||||
|
input_args: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $ffmpeg.hwaccel_args }}
|
||||||
|
hwaccel_args: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if $ffmpeg.output_args -}}
|
||||||
|
{{- if or $ffmpeg.output_args.detect $ffmpeg.output_args.record $ffmpeg.output_args.rtmp }}
|
||||||
|
output_args:
|
||||||
|
{{- with $ffmpeg.output_args.detect }}
|
||||||
|
detect: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $ffmpeg.output_args.record }}
|
||||||
|
record: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $ffmpeg.output_args.rtmp }}
|
||||||
|
rtmp: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.detect" -}}
|
||||||
|
{{- $detect := . }}
|
||||||
|
enabled: {{ ternary "True" "False" $detect.enabled }}
|
||||||
|
{{- with $detect.width }}
|
||||||
|
width: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $detect.height }}
|
||||||
|
height: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $detect.fps }}
|
||||||
|
fps: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $detect.max_disappeared }}
|
||||||
|
max_disappeared: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if or (not (kindIs "invalid" $detect.stationary.interval)) $detect.stationary.threshold $detect.stationary.set_max_frames }}
|
||||||
|
stationary:
|
||||||
|
{{- if not (kindIs "invalid" $detect.stationary.interval) }} {{/* invalid kind means its empty (0 is not empty) */}}
|
||||||
|
interval: {{ $detect.stationary.interval }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $detect.stationary.threshold }}
|
||||||
|
threshold: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if (hasKey $detect.stationary "max_frames") }}
|
||||||
|
{{- if or $detect.stationary.max_frames.default $detect.stationary.max_frames.objects }}
|
||||||
|
max_frames:
|
||||||
|
{{- with $detect.stationary.max_frames.default }}
|
||||||
|
default: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $detect.stationary.max_frames.objects }}
|
||||||
|
objects:
|
||||||
|
{{- range $obj := . }}
|
||||||
|
{{ $obj.object | required "You need to provide an object" }}: {{ $obj.frames | required "You need to provide frames" }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.motion" -}}
|
||||||
|
{{- $motion := . -}}
|
||||||
|
|
||||||
|
{{- with $motion.threshold }}
|
||||||
|
threshold: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $motion.contour_area }}
|
||||||
|
contour_area: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $motion.delta_alpha }}
|
||||||
|
delta_alpha: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $motion.frame_alpha }}
|
||||||
|
frame_alpha: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $motion.frame_height }}
|
||||||
|
frame_height: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $motion.mask }}
|
||||||
|
mask: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
improve_contrast: {{ ternary "True" "False" $motion.improve_contrast }}
|
||||||
|
{{- with $motion.mqtt_off_delay }}
|
||||||
|
mqtt_off_delay: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.record" -}}
|
||||||
|
{{- $record := . }}
|
||||||
|
enabled: {{ ternary "True" "False" $record.enabled }}
|
||||||
|
{{- with $record.expire_interval }}
|
||||||
|
expire_interval: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if $record.retain.render_config }}
|
||||||
|
retain:
|
||||||
|
{{- if not (kindIs "invalid" $record.retain.days) }}
|
||||||
|
days: {{ $record.retain.days }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $record.retain.mode }}
|
||||||
|
mode: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if $record.events.render_config }}
|
||||||
|
events:
|
||||||
|
{{- if not (kindIs "invalid" $record.events.pre_capture) }}
|
||||||
|
pre_capture: {{ $record.events.pre_capture }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if not (kindIs "invalid" $record.events.post_capture) }}
|
||||||
|
post_capture: {{ $record.events.post_capture }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $record.events.objects }}
|
||||||
|
objects:
|
||||||
|
{{- range $obj := . }}
|
||||||
|
- {{ $obj }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $record.events.required_zones }}
|
||||||
|
required_zones:
|
||||||
|
{{- range $zone := . }}
|
||||||
|
- {{ $zone }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if $record.events.retain.render_config }}
|
||||||
|
retain:
|
||||||
|
default: {{ $record.events.retain.default | required "You need to provide default retain days" }}
|
||||||
|
{{- with $record.events.retain.mode }}
|
||||||
|
mode: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $record.events.retain.objects }}
|
||||||
|
objects:
|
||||||
|
{{- range $obj := . }}
|
||||||
|
{{ $obj.object | required "You need to provide an object" }}: {{ $obj.days | required "You need to provide default retain days" }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.objects" -}}
|
||||||
|
{{- $objects := . -}}
|
||||||
|
|
||||||
|
{{- with $objects.track }}
|
||||||
|
track:
|
||||||
|
{{- range $track := . }}
|
||||||
|
- {{ $track }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $objects.mask }}
|
||||||
|
mask: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $objects.filters }}
|
||||||
|
filters:
|
||||||
|
{{- range $filter := . }}
|
||||||
|
{{ $filter.object | required "You need to provide an object" }}:
|
||||||
|
{{- with $filter.min_area }}
|
||||||
|
min_area: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $filter.max_area }}
|
||||||
|
max_area: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $filter.min_ratio }}
|
||||||
|
min_ratio: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $filter.max_ratio }}
|
||||||
|
max_ratio: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $filter.min_score }}
|
||||||
|
min_score: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $filter.threshold }}
|
||||||
|
threshold: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $filter.mask }}
|
||||||
|
mask: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.birdseye" -}}
|
||||||
|
{{- $birdseye := . }}
|
||||||
|
enabled: {{ ternary "True" "False" $birdseye.enabled }}
|
||||||
|
{{- with $birdseye.width }}
|
||||||
|
width: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $birdseye.height }}
|
||||||
|
height: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $birdseye.quality }}
|
||||||
|
quality: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $birdseye.mode }}
|
||||||
|
mode: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.timestamp_style" -}}
|
||||||
|
{{- $timestamp_style := . -}}
|
||||||
|
|
||||||
|
{{- with $timestamp_style.position }}
|
||||||
|
position: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $timestamp_style.format }}
|
||||||
|
format: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if $timestamp_style.color.render_config }}
|
||||||
|
color:
|
||||||
|
red: {{ $timestamp_style.color.red }}
|
||||||
|
green: {{ $timestamp_style.color.green }}
|
||||||
|
blue: {{ $timestamp_style.color.blue }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $timestamp_style.thickness }}
|
||||||
|
thickness: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $timestamp_style.effect }}
|
||||||
|
effect: {{ $timestamp_style.effect }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.live" -}}
|
||||||
|
{{- $live := . -}}
|
||||||
|
{{- with $live.height }}
|
||||||
|
height: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $live.quality }}
|
||||||
|
quality: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.rtmp" -}}
|
||||||
|
{{- $rtmp := . }}
|
||||||
|
enabled: {{ ternary "True" "False" $rtmp.enabled }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.snapshots" -}}
|
||||||
|
{{- $snapshots := . }}
|
||||||
|
enabled: {{ ternary "True" "False" $snapshots.enabled }}
|
||||||
|
clean_copy: {{ ternary "True" "False" $snapshots.clean_copy }}
|
||||||
|
timestamp: {{ ternary "True" "False" $snapshots.timestamp }}
|
||||||
|
bounding_box: {{ ternary "True" "False" $snapshots.bounding_box }}
|
||||||
|
crop: {{ ternary "True" "False" $snapshots.crop }}
|
||||||
|
{{- with $snapshots.height }}
|
||||||
|
height: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $snapshots.required_zones }}
|
||||||
|
required_zones:
|
||||||
|
{{- range $zone := . }}
|
||||||
|
- {{ $zone }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if $snapshots.retain.render_config }}
|
||||||
|
retain:
|
||||||
|
default: {{ $snapshots.retain.default | required "You need to provide default retain days" }}
|
||||||
|
{{- with $snapshots.retain.objects }}
|
||||||
|
objects:
|
||||||
|
{{- range $obj := . }}
|
||||||
|
{{ $obj.object | required "You need to provide an object" }}: {{ $obj.days | required "You need to provide default retain days" }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.detectors" -}}
|
||||||
|
{{- $detectors := . -}}
|
||||||
|
|
||||||
|
{{- range $detector := $detectors.config }}
|
||||||
|
{{ $detector.name | required "You need to provide a detector name" }}:
|
||||||
|
type: {{ $detector.type | required "You need to provide a detector type" }}
|
||||||
|
{{- with $detector.device }}
|
||||||
|
device: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $detector.num_threads }}
|
||||||
|
num_threads: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.model" -}}
|
||||||
|
{{ $model := . }}
|
||||||
|
width: {{ $model.width | required "You need to provide a model width" }}
|
||||||
|
height: {{ $model.height | required "You need to provide a model height" }}
|
||||||
|
{{- with $model.path }}
|
||||||
|
path: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $model.labelmap_path }}
|
||||||
|
labelmap_path: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $model.labelmap }}
|
||||||
|
labelmap:
|
||||||
|
{{- range $lmap := . }}
|
||||||
|
{{ $lmap.model | required "You need to provide a labelmap model" }}: {{ $lmap.name | required "You need to provide a labelmap name" }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.logger" -}}
|
||||||
|
{{- $logger := . }}
|
||||||
|
default: {{ $logger.default }}
|
||||||
|
{{- with $logger.logs }}
|
||||||
|
logs:
|
||||||
|
{{- range $log := . }}
|
||||||
|
{{ $log.component | required "You need to provide a logger cmponent" }}: {{ $log.verbosity | required "You need to provide logger verbosity" }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "frigate.mqtt" -}}
|
||||||
|
{{- $mqtt := . }}
|
||||||
|
host: {{ required "You need to provide an MQTT host" $mqtt.host }}
|
||||||
|
{{- with $mqtt.port }}
|
||||||
|
port: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $mqtt.topic_prefix }}
|
||||||
|
topic_prefix: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $mqtt.client_id }}
|
||||||
|
client_id: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if not (kindIs "invalid" $mqtt.stats_interval) }}
|
||||||
|
stats_interval: {{ $mqtt.stats_interval }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $mqtt.user }}
|
||||||
|
user: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- with $mqtt.password }}
|
||||||
|
password: {{ . }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{{/* Make sure all variables are set properly */}}
|
||||||
|
{{- include "tc.common.loader.init" . }}
|
||||||
|
|
||||||
|
{{- include "frigate.configmap" . -}}
|
||||||
|
|
||||||
|
{{/* Render the templates */}}
|
||||||
|
{{ include "tc.common.loader.apply" . }}
|
Loading…
Reference in New Issue