Commit new Chart releases for TrueCharts

Signed-off-by: TrueCharts-Bot <bot@truecharts.org>
This commit is contained in:
TrueCharts-Bot
2022-11-13 23:23:38 +00:00
parent 5820c11d3e
commit 302c45b274
11 changed files with 4355 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
**Important:**
*for the complete changelog, please refer to the website*
## [frigate-3.0.0](https://github.com/truecharts/charts/compare/frigate-2.0.44...frigate-3.0.0) (2022-11-10)
### Chore
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Major Change to GUI
- update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342))
- update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349))
- update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329))
## [frigate-2.0.47](https://github.com/truecharts/charts/compare/frigate-2.0.44...frigate-2.0.47) (2022-11-08)
### Chore
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342))
- update helm general non-major ([#4349](https://github.com/truecharts/charts/issues/4349))
- update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329))
## [frigate-2.0.46](https://github.com/truecharts/charts/compare/frigate-2.0.44...frigate-2.0.46) (2022-11-08)
### Chore
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342))
- update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329))
## [frigate-2.0.46](https://github.com/truecharts/charts/compare/frigate-2.0.44...frigate-2.0.46) (2022-11-08)
### Chore
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342))
- update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329))
## [frigate-2.0.46](https://github.com/truecharts/charts/compare/frigate-2.0.44...frigate-2.0.46) (2022-11-08)
### Chore
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- update helm general non-major ([#4342](https://github.com/truecharts/charts/issues/4342))
- update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329))
## [frigate-2.0.45](https://github.com/truecharts/charts/compare/frigate-2.0.44...frigate-2.0.45) (2022-11-07)
### Chore
- Auto-update chart README [skip ci]
- Auto-update chart README [skip ci]
- update helm general non-major ([#4329](https://github.com/truecharts/charts/issues/4329))
## [frigate-2.0.45](https://github.com/truecharts/charts/compare/frigate-2.0.44...frigate-2.0.45) (2022-11-06)
### Chore

View File

@@ -0,0 +1,32 @@
apiVersion: v2
appVersion: "latest"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 10.9.7
deprecated: false
description: NVR With Realtime Object Detection for IP Cameras
home: https://truecharts.org/docs/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: 4.0.0
annotations:
truecharts.org/catagories: |
- nvr
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U

View File

@@ -0,0 +1,107 @@
# frigate
NVR With Realtime Object Detection for IP Cameras
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
This readme is just an automatically generated general guide on installing our Helm Charts and Apps.
For more information, please click here: [frigate](https://truecharts.org/docs/charts/incubator/frigate)
**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)**
## Source Code
* <https://github.com/truecharts/charts/tree/master/charts/incubator/frigate>
* <https://github.com/blakeblackshear/frigate>
* <https://hub.docker.com/r/blakeblackshear/frigate>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://library-charts.truecharts.org | common | 10.9.4 |
## Installing the Chart
### TrueNAS SCALE
To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App).
### Helm
To install the chart with the release name `frigate`
```console
helm repo add TrueCharts https://charts.truecharts.org
helm repo update
helm install frigate TrueCharts/frigate
```
## Uninstall
### TrueNAS SCALE
**Upgrading, Rolling Back and Uninstalling the Chart**
To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App).
### Helm
To uninstall the `frigate` deployment
```console
helm uninstall frigate
```
## Configuration
### Helm
#### Available Settings
Read through the values.yaml file. It has several commented out suggested values.
Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/truecharts/library-charts/tree/main/charts/common).
#### Configure using the command line
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
helm install frigate \
--set env.TZ="America/New York" \
TrueCharts/frigate
```
#### Configure using a yaml file
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install frigate TrueCharts/frigate -f values.yaml
```
#### Connecting to other charts
If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide.
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/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/apps/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

View File

@@ -0,0 +1,9 @@
## [frigate-4.0.0](https://github.com/truecharts/charts/compare/frigate-3.0.4...frigate-4.0.0) (2022-11-13)
### Feat
- initial rework ([#4408](https://github.com/truecharts/charts/issues/4408))

View File

@@ -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/docs/charts/incubator/frigate](https://truecharts.org/docs/charts/incubator/frigate)
---
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can!

Binary file not shown.

View File

@@ -0,0 +1,472 @@
image:
repository: tccr.io/truecharts/frigate
pullPolicy: IfNotPresent
tag: 0.11.1@sha256:8dd7273eebf396563d7bbc14778fd3d58c624e5063ffcf74b5b0afe63e7cdd7f
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
podSecurityContext:
runAsUser: 0
runAsGroup: 0
global:
isSCALE: true
# -- In most cases the "enabled" 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.
frigate:
mqtt:
host: mqtt.server.com
port: 1883
# -- NOTE: Must be unique if you are running multiple instances
topic_prefix: frigate
# -- NOTE: Must be unique if you are running multiple instances
client_id: frigate
user: mqtt_user
password: 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
# -- Optional: Path to the model
path: /edgetpu_model.tflite
# -- Optional: Path to the labelmap
labelmap_path: /labelmap.txt
# -- Required: Object detection model input width
width: 320
# -- Required: Object detection model input height
height: 320
# -- 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: 1280
# -- Optional: Height of the output resolution
height: 720
# -- 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: 8
# -- 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: objects
ffmpeg:
# -- Enable it to add the configuration in the config file
render_config: false
# -- Optional: global ffmpeg args
global_args: -hide_banner -loglevel warning
# -- Optional: global input args
input_args: -avoid_negative_ts make_zero -fflags +genpts+discardcorrupt -rtsp_transport tcp -timeout 5000000 -use_wallclock_as_timestamps 1
# -- 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: -f rawvideo -pix_fmt yuv420p
# -- Optional: output args for record streams
record: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy -an
# -- Optional: output args for rtmp streams
rtmp: -c copy -f flv
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: 1280
# -- Optional: height of the frame for the input with the detect role
height: 720
# -- 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: 5
# -- Optional: Number of frames without a detection before frigate considers an object to be gone. (default: 5x the frame rate)
max_disappeared: 25
# -- 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: 0
# -- Optional: Number of frames without a position change for an object to be considered stationary (default: 10x the frame rate or 10s)
threshold: 50
# -- 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
# -- 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: 0,0,1000,0,1000,200,0,200
# - 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: 25
# -- 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: 30
# -- 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: 0.2
# -- 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: 0.2
# -- 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: 50
# -- Optional: motion mask
# - NOTE: see docs for more detailed info on creating masks
mask: 0,900,1080,900,1080,1920,0,1920
# -- 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: 30
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: 60
# -- 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: 0
# -- 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: all
# -- Optional: Event recording settings
events:
# -- Optional: Number of seconds before the event to include
pre_capture: 5
# -- Optional: Number of seconds after the event to include
post_capture: 5
# -- 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: motion
# -- 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: 720
# -- 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: 8
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: "tl"
# -- Optional: Format specifier conform to the Python package "datetime"
# - Additional Examples:
# - german: "%d.%m.%Y %H:%M:%S"
format: "%m/%d/%Y %H:%M:%S"
# -- Optional: Color of font
color:
# -- All Required when color is specified (default: shown below)
red: 255
green: 255
blue: 255
# -- Optional: Line thickness of font (default: shown below)
thickness: 2
# -- Optional: Effect of lettering (default: shown below)
# - None (No effect),
# - "solid" (solid background in inverse color of font)
# - "shadow" (shadow for font)
effect: None
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: 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:
# -- 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: 5000
max_area: 100000
threshold: 0.7
# -- 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: 270
# -- Optional: jpeg encode quality
quality: 70
# -- 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: 0
# -- 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

View File

@@ -0,0 +1,356 @@
{{/* 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:
host: {{ required "You need to provide an MQTT host" .Values.frigate.mqtt.host }}
port: {{ .Values.frigate.mqtt.port | default 1883 }}
topic_prefix: {{ .Values.frigate.mqtt.topic_prefix | default "frigate" }}
client_id: {{ .Values.frigate.mqtt.client_id | default "frigate" }}
stats_interval: {{ .Values.frigate.mqtt.stats_interval| default 60 }}
{{- with .Values.frigate.mqtt.user }}
user: {{ . }}
{{- end }}
{{- with .Values.frigate.mqtt.password }}
password: {{ . }}
{{- end }}
{{- if .Values.frigate.detectors.enabled }}
{{- if .Values.frigate.detectors.config }}
detectors:
{{- range .Values.frigate.detectors.config }}
{{ required "You need to provide a detector name" .name }}:
type: {{ .type }}
{{- with .device }}
device: {{ . }}
{{- end }}
{{- with .num_threads }}
num_threads: {{ . }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.frigate.model.render_config }}
model:
{{- with .Values.frigate.model.path }}
path: {{ . }}
{{- end }}
{{- with .Values.frigate.model.labelmap_path }}
path: {{ . }}
{{- end }}
width: {{ .Values.frigate.model.width | default 320 }}
height: {{ .Values.frigate.model.height | default 320 }}
{{- with .Values.frigate.model.labelmap }}
labelmap:
{{- range . }}
{{ .model }}: {{ .name }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.frigate.logger.render_config }}
logger:
default: {{ .Values.frigate.logger.default | default "info" }}
{{- with .Values.frigate.logger.logs }}
logs:
{{- range . }}
{{ .component }}: {{ .verbosity }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.frigate.birdseye.render_config }}
birdseye:
enabled: {{ ternary "True" "False" .Values.frigate.birdseye.enabled }}
width: {{ .Values.frigate.birdseye.width | default 1280 }}
height: {{ .Values.frigate.birdseye.height | default 720 }}
quality: {{ .Values.frigate.birdseye.quality | default 8 }}
model: {{ .Values.frigate.birdseye.mode | default "objects" }}
{{- end }}
{{- if .Values.frigate.ffmpeg.render_config }}
ffmpeg:
global_args: {{ .Values.frigate.ffmpeg.global_args | default "-hide_banner -loglevel warning" }}
input_args: {{ .Values.frigate.ffmpeg.input_args | default "-avoid_negative_ts make_zero -fflags +genpts+discardcorrupt -rtsp_transport tcp -timeout 5000000 -use_wallclock_as_timestamps 1" }}
{{- with .Values.frigate.ffmpeg.hwaccel_args }}
hwaccel_args: {{ . }}
{{- end }}
output_args:
detect: {{ .Values.frigate.ffmpeg.output_args.detect | default "-f rawvideo -pix_fmt yuv420p" }}
record: {{ .Values.frigate.ffmpeg.output_args.detect | default "-f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy -an" }}
rtmp: {{ .Values.frigate.ffmpeg.output_args.detect | default "-c copy -f flv" }}
{{- end }}
{{- if .Values.frigate.detect.render_config }}
detect:
enabled: {{ ternary "True" "False" .Values.frigate.detect.enabled }}
width: {{ .Values.frigate.detect.width | default 1280 }}
width: {{ .Values.frigate.detect.height | default 720 }}
fps: {{ .Values.frigate.detect.fps | default 5 }}
max_disappeared: {{ .Values.frigate.detect.max_disappeared | default 25 }}
stationary:
interval: {{ .Values.frigate.detect.stationary.interval | default 0 }}
threshold: {{ .Values.frigate.detect.stationary.threshold | default 50 }}
{{- if (hasKey .Values.frigate.detect.stationary "max_frames") }}
{{- if or (hasKey .Values.frigate.detect.stationary.max_frames "default") (hasKey .Values.frigate.detect.stationary.max_frames "objects") }}
max_frames:
{{- with .Values.frigate.detect.stationary.max_frames.default }}
default: {{ . }}
{{- end }}
{{- with .Values.frigate.detect.stationary.max_frames.objects }}
objects:
{{- range . }}
{{ .object }}: {{ .frames }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.frigate.objects.render_config }}
objects:
{{- with .Values.frigate.objects.track }}
track:
{{- range . }}
- {{ . }}
{{- end }}
{{- end }}
{{- with .Values.frigate.objects.mask }}
mask: {{ . }}
{{- end }}
{{- with .Values.frigate.objects.filters }}
filters:
{{- range . }}
{{ .object }}:
{{- with .min_area }}
min_area: {{ . }}
{{- end }}
{{- with .max_area }}
max_area: {{ . }}
{{- end }}
{{- with .min_ratio }}
min_ratio: {{ . }}
{{- end }}
{{- with .max_ratio }}
max_ratio: {{ . }}
{{- end }}
{{- with .min_score }}
min_score: {{ . }}
{{- end }}
{{- with .threshold }}
threshold: {{ . }}
{{- end }}
{{- with .mask }}
mask: {{ . }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.frigate.motion.render_config }}
motion:
threshold: {{ .Values.frigate.motion.threshold | default 25 }}
contour_area: {{ .Values.frigate.motion.contour_area | default 30 }}
delta_alpha: {{ .Values.frigate.motion.delta_alpha | default 0.2 }}
frame_alpha: {{ .Values.frigate.motion.frame_alpha | default 0.2 }}
frame_height: {{ .Values.frigate.motion.frame_height | default 50 }}
{{- with .Values.frigate.motion.mask }}
mask: {{ . }}
{{- end }}
improve_contrast: {{ ternary "True" "False" .Values.frigate.motion.improve_contrast }}
mqtt_off_delay: {{ .Values.frigate.motion.mqtt_off_delay | default 30 }}
{{- end }}
{{- if .Values.frigate.record.render_config }}
record:
enable: {{ ternary "True" "False" .Values.frigate.record.enabled }}
expire_interval: {{ .Values.frigate.record.expire_interval | default 60 }}
{{- if .Values.frigate.record.retain.render_config }}
retain:
days: {{ .Values.frigate.record.retain.days | default 0 }}
mode: {{ .Values.frigate.record.retain.mode | default "all" }}
{{- end }}
events:
pre_capture: {{ .Values.frigate.record.events.pre_capture | default 5 }}
post_capture: {{ .Values.frigate.record.events.post_capture | default 5 }}
{{- with .Values.frigate.record.events.objects }}
objects:
{{- range . }}
- {{ . }}
{{- end }}
{{- end }}
{{- with .Values.frigate.record.events.required_zones }}
required_zones:
{{- range . }}
- {{ . }}
{{- end }}
{{- end }}
{{- if .Values.frigate.record.events.retain.render_config }}
retain:
default: {{ .Values.frigate.record.events.retain.default | default 10 }}
mode: {{ .Values.frigate.record.events.retain.mode | default "motion" }}
{{- with .Values.frigate.record.events.retain.objects }}
objects:
{{- range . }}
{{ .object }}: {{ .days }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.frigate.snapshots.render_config }}
snapshots:
enabled: {{ ternary "True" "False" .Values.frigate.snapshots.enabled }}
clean_copy: {{ ternary "True" "False" .Values.frigate.snapshots.clean_copy }}
timestamp: {{ ternary "True" "False" .Values.frigate.snapshots.timestamp }}
bounding_box: {{ ternary "True" "False" .Values.frigate.snapshots.bounding_box }}
crop: {{ ternary "True" "False" .Values.frigate.snapshots.crop }}
{{- with .Values.frigate.snapshots.height }}
height: {{ . }}
{{- end }}
{{- with .Values.frigate.snapshots.required_zones }}
required_zones:
{{- range . }}
- {{ . }}
{{- end }}
{{- end }}
{{- if .Values.frigate.snapshots.retain.render_config }}
retain:
default: {{ .Values.frigate.snapshots.retain.default | default 10 }}
{{- with .Values.frigate.snapshots.retain.objects }}
objects:
{{- range . }}
{{ .object }}: {{ .days }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.frigate.rtmp.render_config }}
rtmp:
enabled: {{ ternary "True" "False" .Values.frigate.rtmp.enabled }}
height: {{ .Values.frigate.live.height | default 720 }}
quality: {{ .Values.frigate.live.height | default 8 }}
{{- end }}
{{- if .Values.frigate.timestamp_style.render_config }}
timestamp_style:
position: {{ .Values.frigate.timestamp_style.position | default "tl" }}
format: {{ .Values.frigate.timestamp_style.format | quote }}
color:
red: {{ .Values.frigate.timestamp_style.color.red | default 255 }}
green: {{ .Values.frigate.timestamp_style.color.green | default 255 }}
blue: {{ .Values.frigate.timestamp_style.color.blue | default 255 }}
thickness: {{ .Values.frigate.timestamp_style.thickness | default 2 }}
effect: {{ .Values.frigate.timestamp_style.effect | default "None" }}
{{- end }}
cameras:
{{- range .Values.frigate.cameras }}
{{ .camera_name }}:
ffmpeg:
{{- with .ffmpeg }}
inputs:
{{- range .inputs }}
- path: {{ .path }}
{{- with .roles }}
roles:
{{- range . }}
- {{ . }}
{{- end }}
{{- end }} {{/* end with roles*/}}
{{- with .global_args }}
global_args: {{ . }}
{{- end }}
{{- with .hwaccel_args }}
hwaccel_args: {{ . }}
{{- end }}
{{- with .input_args }}
input_args: {{ . }}
{{- end }}
{{- end }} {{/* end range inputs */}}
{{- with .global_args }}
global_args: {{ . }}
{{- end }}
{{- with .hwaccel_args }}
hwaccel_args: {{ . }}
{{- end }}
{{- with .input_args }}
input_args: {{ . }}
{{- end }}
{{- with .output_args }}
output_args: {{ . }}
{{- end }}
{{- end }} {{/* end with ffmpeg */}}
best_image_timeout: {{ .best_image_timeout | default 60 }}
{{- with .zones }}
zones:
{{- range . }}
{{ .name }}:
coordinates: {{ required "You have to specify coordinates" .coordinates }}
{{- with .objects }}
objects:
{{- range . }}
- {{ . }}
{{- end }}
{{- end }} {{/* end with objects*/}}
{{- with .filters }}
filters:
{{- range . }}
{{ .object }}:
{{- with .min_area }}
min_area: {{ . }}
{{- end }}
{{- with .max_area }}
max_area: {{ . }}
{{- end }}
{{- with .threshold }}
threshold: {{ . }}
{{- end }}
{{- end }} {{/* end range filters */}}
{{- end }} {{/* end with filter */}}
{{- end }} {{/* end range zones */}}
{{- end }} {{/* end with zones */}}
{{- if .mqtt.render_config }}
{{- with .mqtt }}
mqtt:
enabled: {{ ternary "True" "False" .enabled }}
timestamp: {{ ternary "True" "False" .timestamp }}
bounding_box: {{ ternary "True" "False" .bounding_box }}
crop: {{ ternary "True" "False" .crop }}
height: {{ .height | default 270 }}
quality: {{ .quality | default 70 }}
{{- with .required_zones }}
required_zones:
{{- range . }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }} {{/* end with mqtt */}}
{{- end }} {{/* end if mqtt.render_config */}}
{{- if .ui.render_config }}
{{- with .ui }}
ui:
{{- if or .order (eq (int .order) 0) }}
order: {{ .order }}
{{- end }}
dashboard: {{ ternary "True" "False" .dashboard }}
{{- end }} {{/* end with ui */}}
{{- end }} {{/* end if ui.render_config */}}
{{- end }} {{/* end range cameras */}}
{{- end }}

View File

@@ -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" . }}

View File