Code Monkey home page Code Monkey logo

blakeshome-charts's Introduction

blakeshome-charts

Usage

Helm must be installed to use the charts. Please refer to Helm's documentation to get started.

Once Helm is set up properly, add the repo as follows:

helm repo add blakeshome https://blakeblackshear.github.io/blakeshome-charts/

You can then run helm search repo blakeshome to see the charts.

Charts

blakeshome-charts's People

Contributors

billimek avatar blakeblackshear avatar brujoand avatar deosrc avatar jhoblitt avatar johnsondnz avatar maxirus avatar mazay avatar mrkazik99 avatar muchtall avatar onedr0p avatar ryanm101 avatar tomkukral avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

blakeshome-charts's Issues

secret frigate-rtsp-credentials

secret frigate-rstp-credentials should read frigate-rtsp-credentials
and username and password also should read RTSP instead of RSTP.
Thanks!

Update Docs

Most of the chart properties are missing documentation around what they do. helm-docs provides an easy mechanism to document this using # -- tags in the values.yaml file. Update the Docs, adding descriptions to properties and provide a short getting started blurb.

Ideally should use the README.md.gotmpl to template the README with relevant information and allow for lint automation.

CrashLoopBackOff

Trying to install this chart but what ever i try in config it never installs correct.

support intel workaround for multi-gpu

The intel k8s device plugin doc includes a workaround for working in a multi-gpu environment. The script (render-device.sh) will return the correct intel render device to use if you're oversubscribing a gpu or if you have more than one gpu in a device. Is there an opportunity to use render-device to automatically select the correct render device and replace it in the config file?

Without support Frigate may fail to run if a node has more than one GPU (discrete gpu and intel) or if you've allowed oversubscription in the device plugin.

The built-in environment variable replacement in Frigate doesn't allow replacement in the hwaccel_args section, so the chart could use an init container with shared volume for config to make the replacement.

https://github.com/intel/intel-device-plugins-for-kubernetes/blob/main/cmd/gpu_plugin/render-device.sh

Doesnt work with frigate 0.14.0

It looks as though having the frigate config.yml stored inside a configmap causes a problem for frigate 0.14.0-beta1 since it tries to make changes to the config file. This fails since its readonly..

2024-05-25T20:22:17.380638849+01:00 2024-05-25 19:22:17.380577333  [2024-05-25 19:22:17] frigate.util.config            INFO    : Checking if frigate config needs migration...
2024-05-25T20:22:17.380707349+01:00 2024-05-25 19:22:17.380667550  [2024-05-25 19:22:17] frigate.util.config            INFO    : copying config as backup...
2024-05-25T20:22:17.410153416+01:00 2024-05-25 19:22:17.410004617  *************************************************************
2024-05-25T20:22:17.410175446+01:00 2024-05-25 19:22:17.410018071  *************************************************************
2024-05-25T20:22:17.410180980+01:00 2024-05-25 19:22:17.410022344  ***    Your config file is not valid!                     ***
2024-05-25T20:22:17.410184687+01:00 2024-05-25 19:22:17.410024262  ***    Please check the docs at                           ***
2024-05-25T20:22:17.410187752+01:00 2024-05-25 19:22:17.410025687  ***    https://docs.frigate.video/configuration/index     ***
2024-05-25T20:22:17.410190580+01:00 2024-05-25 19:22:17.410049073  *************************************************************
2024-05-25T20:22:17.410193046+01:00 2024-05-25 19:22:17.410107658  *************************************************************
2024-05-25T20:22:17.410196222+01:00 2024-05-25 19:22:17.410109785  ***    Config Validation Errors                           ***
2024-05-25T20:22:17.410198890+01:00 2024-05-25 19:22:17.410111387  *************************************************************
2024-05-25T20:22:17.410211920+01:00 2024-05-25 19:22:17.410124420  [Errno 30] Read-only file system: '/config/config.yml'
2024-05-25T20:22:17.410662979+01:00 2024-05-25 19:22:17.410290075  [2024-05-25 19:22:17] frigate.util.config            INFO    : Migrating frigate config from 0.13 to 0.14...
2024-05-25T20:22:17.410869788+01:00 2024-05-25 19:22:17.410820697  Traceback (most recent call last):
2024-05-25T20:22:17.410878941+01:00 2024-05-25 19:22:17.410822739    File "/opt/frigate/frigate/app.py", line 644, in start
2024-05-25T20:22:17.410882248+01:00 2024-05-25 19:22:17.410823774      self.init_config()
2024-05-25T20:22:17.410884860+01:00 2024-05-25 19:22:17.410824945    File "/opt/frigate/frigate/app.py", line 137, in init_config
2024-05-25T20:22:17.410887340+01:00 2024-05-25 19:22:17.410825990      migrate_frigate_config(config_file)
2024-05-25T20:22:17.410889892+01:00 2024-05-25 19:22:17.410827221    File "/opt/frigate/frigate/util/config.py", line 46, in migrate_frigate_config
2024-05-25T20:22:17.410892350+01:00 2024-05-25 19:22:17.410828291      with open(config_file, "w") as f:
2024-05-25T20:22:17.410894749+01:00 2024-05-25 19:22:17.410829405  OSError: [Errno 30] Read-only file system: '/config/config.yml'
2024-05-25T20:22:17.410897380+01:00 2024-05-25 19:22:17.410831953  
2024-05-25T20:22:17.410899985+01:00 2024-05-25 19:22:17.410833096  *************************************************************
2024-05-25T20:22:17.410902425+01:00 2024-05-25 19:22:17.410842147  ***    End Config Validation Errors                       ***
2024-05-25T20:22:17.410904911+01:00 2024-05-25 19:22:17.410843449  *************************************************************
2024-05-25T20:22:18.776405371+01:00 2024-05-25 19:22:18.776269198  [INFO] Service Frigate exited with code 1 (by signal 0)

I've tried running frigate separately to generate an updated config file (which is no different)

Restream

It looks like the Restream from go2rtc is exposed on port 8554 which isn't listed on the deployment or the service and there's no configuration for additional ports on either.

Can/should these be added or how is go2rtc and Restream intended to work?

Better probe paths

Hi!

Thanks for all your hard work with Frigate, it's really an awesome project!

I do have one question. Is there a good reason for the hard coded path: / setting on the probes? Doesn't / only return HTML code?

I had an issue (unrelated to Frigate) yesterday that resulted in all my persistent storage to disappear for a short while. But the Frigate pod indicated that everything was fine since the pod kept returning 200 response codes on /.

My Home assistant instance on the other hand was not happy since /api/stats returned a 500. If Frigate would have had better probe configured and the pod would have been restarted everything would have started to work. Now it took me a few hours to realize Frigate wasn't working.

I'm not really sure what a proper health check endpoint should check to determine if Frigate is operational but it seems like /api/stats would be better than / at least.

So, would it be possible to change the path to something else? or at least make the probe paths configurable in the values.yaml file? or is there a reason for keeping / as the path?

Unable to set ports with NodePort

I am unable to get Kubernetes to assign my requested port. The relevant part of my helm frigate.yaml is

service:
  type: NodePort
  selector:
    app: frigate
  ports:
    - port: 5000
      targetPort: 5000
      nodePort: 30598

I have also tried

service:
  type: NodePort
  port: 5000
  nodePort: 30598

Kubernetes simply assigns random ports to forward to both 5000 and 1935

Make securityContext configurable

The securityContext for the Frigate container is currently statically set and hard-coded to run as privileged. Privileged is only needed to mount the Coral device, or rather coral.enabled: false, and should be used with caution.

Add capability for the user to control the securityContext.

/dev/dri/renderD128 not accessible in 6.3.1

Hello,

after upgrading to 6.3.1 /dev/dri/renderD128 is no longer accessible.

│ [2022-05-30 15:28:35] watchdog.front_garage          ERROR   : Ffmpeg process crashed unexpectedly for front_garage.                                                                                                                                                                                                                                                             │
│ [2022-05-30 15:28:35] watchdog.front_garage          ERROR   : The following ffmpeg logs include the last 100 lines prior to exit.                                                                                                                                                                                                                                               │
│ [2022-05-30 15:28:35] ffmpeg.front_garage.detect     ERROR   : [AVHWDeviceContext @ 0x5637e07fe040] No VA display found for device /dev/dri/renderD128.                                                                                                                                                                                                                          │
│ [2022-05-30 15:28:35] ffmpeg.front_garage.detect     ERROR   : Device creation failed: -22.                                                                                                                                                                                                                                                                                      │
│ [2022-05-30 15:28:35] ffmpeg.front_garage.detect     ERROR   : [h264 @ 0x5637e07fc240] No device available for decoder: device type vaapi needed for codec h264.                                                                                                                                                                                                                 │
│ [2022-05-30 15:28:35] ffmpeg.front_garage.detect     ERROR   : Device setup failed for decoder on input stream #0:0 : Invalid argument                                                                                                                                                                                                                                           │
│ [2022-05-30 15:28:40] frigate.video                  ERROR   : front_garage: Unable to read frames from ffmpeg process.    

Could you advice what has to be done? rolled back to 6.3.0 for now.

Feature request: Ability to set priorityClassName

Hello,

As far as I know, this Helm Chart doesn't offer this ability to set the priorityClassName to Frigate pods.

This might be useful as some pods in the cluster might need to have lower/higher priorities than Frigate.

If you are willing to implement this, I can make the PR.

Fix image.tag

The image.tag should be an override value whereby the appVersion is the default. This allows a for simple and consistent place to set the default image version to use while also adhering to Helm chart standards.

Add NVIDIA GPU Support

In order to enable support NVIDIA GPU, a number of configuration changes must be implemented which (most) are accessible now via resources and env properties. However, not all nodes make nvidia the default runtimeClass and this is currently not configurable.

Instead, a boolean flag should exist to automate the injection of NVIDIA_DRIVER_CAPABILITIES & NVIDIA_VISIBLE_DEVICES env vars as well as the "nvidia.com/gpu": 1 resource limit. In addition, an option runtimeClass property should be exposed.

/data pvc should probably have been /media

I just noticed that the /data mount is a bit useless as we can't change the location of the clips/recordings (afaik). Does it make sense to just change the data-pvc to media-pvc or add media-pvc as an extra configurable?

different problems

with version 12.1 persistent /media not possible. also not /config
With 13 beta /config is needed and not possible to do this extra volumes.
/config is also read only mode so cannot download models.

Feature Request: Allow to set annotations for pvc

As a user of Frigate
I would like to set annotations for the PVC template
so that I can backup my volumes accordingly.

My backup system (k8up) requires annotating the PVC to decide if the volume is being backed up or not.

[FEATURE] Add initContainer to generate nVidia Models

It would be great to have an init container option to auto-generate the models needed, upon startup, for the nVidia GPU detector.

Ideally, this would be configurable in values.yaml and models stored on a PVC. I suspect logic would be required to rebuild the models if the GPU changes (e.g. in a multi-node, multi-GPU cluster). Of course, if models already existed for the given GPU, the generation would be skipped at startup.

example values.yaml section:

gpu:
  nvidia:
    models:
      autoGenerate: false
      useFP16: true
      yoloModels: ""
      persistence:
        enabled: true
        accessMode: ReadWriteOnce
        size: 10Gi
        # existingClaim:

helm chart service update to expose webrtc 8555

Per go2rtc

webrtc will use port 8555 (TCP/UDP) for connections

This chart needs webrtc TCP and UDP exposed by the service like RTSP was exposed in this PR 6d09612

I added this manually to my service

 - name: webrtc-tcp
   protocol: TCP
   port: 8555
   targetPort: 8555
 - name: webrtc-udp
   protocol: UDP
   port: 8555
   targetPort: 8555

If thats correct i could try writing a PR but I'm not too familiar with the process. @mazay that was your PR what do you think about webrtc?

mountPath wrong in frigate docker image 0.12.1

The chart will mount the data dir to /data, but the frigate docker image will use /media as the storage location.

Temporary fix, in values.yaml:

extraVolumeMounts:
  - mountPath: /media
    name: data

Error with creating path when using PCI Coral on k3s

I get the following error when i deploy on an Intel Nuc running k3s, I've a m2 Coral that is on path /dev/apex_0 on the host

Error: failed to create containerd task: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:88: creating device nodes caused: mkdir /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/frigate/rootfs/dev/bus/usb: not a directory: unknown

My Values.yaml, I've tried with and without the security context set.

strategyType: Recreate

image:
  repository: blakeblackshear/frigate
  tag: 0.10.1-amd64
  pullPolicy: IfNotPresent

imagePullSecrets: []

env: {}
  # TZ: UTC

envFromSecrets: []

coral:
  enabled: true
  hostPath: /dev/apex_0

gpu:
  nvidia:
    enabled: false
    runtimeClassName:
extraVolumes: []
extraVolumeMounts: []
shmSize: 1Gi
nameOverride: ""
fullnameOverride: ""

config: |
  mqtt:
    host: mqtt.local
    port: 1883
    topic_prefix: frigate
    client_id: frigate
    user: homeassistant
    password: password
    stats_interval: 60

  detectors:
    coral:
      type: edgetpu
      device: pci:0
    cpu1:
      type: cpu
  
  ffmpeg:
    hwaccel_args:
      - -hwaccel
      - vaapi
      - -hwaccel_device
      - /dev/dri/renderD128
      - -hwaccel_output_format
      - yuv420p

  cameras:
    frontdoor:
      ffmpeg:
        inputs:
          - path: rtsp://192.168.x.x/11
            roles:
              - record
              - rtmp
          - path: rtsp://192.168.x.x/12
            roles:
              - detect
      detect:
        fps: 5
        width: 640
        height: 360
      motion:
        mask:
        - 0,360,66,360,62,127,0,0
        - 608,0,615,32,361,34,363,0
      zones:
        front_door:
          coordinates: 229,95,393,360,97,360,86,0
        front_approach:
          coordinates: 453,360,586,282,399,133,254,47,184,38,248,81,397,360

probes:
  liveness:
    enabled: true
    initialDelaySeconds: 30
    failureThreshold: 5
    timeoutSeconds: 10
  readiness:
    enabled: true
    initialDelaySeconds: 30
    failureThreshold: 5
    timeoutSeconds: 10
  startup:
    enabled: false
    failureThreshold: 30
    periodSeconds: 10

service:
  type: ClusterIP
  port: 5000
  annotations: {}
  labels: {}
  loadBalancerIP:

ingress:
  enabled: false
  annotations: {}
  hosts:
    - host: nvr2.local
      paths:
        - '/'
  tls: []

persistence:
  data:
    enabled: false
    # storageClass: "-"
    accessMode: ReadWriteOnce
    size: 10Gi
    skipuninstall: false

resources: {}

# -- Set Security Context
securityContext:
  capabilities:
    drop:
      - ALL
  readOnlyRootFilesystem: true
  runAsNonRoot: true
  runAsUser: 1000
  privileged: true

nodeSelector: {}
tolerations: []
affinity: {}
podAnnotations: {}

Editing
https://github.com/blakeblackshear/blakeshome-charts/blob/master/charts/frigate/templates/deployment.yaml#L100
to /dev/apex_0 gets the pod to start

Add support for truenas scale

Hi,
Truenas in its version Scale runs on linux and is abusing of k8s.
A team of gifted people is maintaining charts for numerous applications including Frigate.
https://truecharts.org/

Frigate chart hasn't pass the incubator state. Their implementation isn't working.
I have seen you have a chart available, but it need to be adapted for matching scale supervision interface.

As far as I know scale charts are a based on helm charts to drive the scale user interface.
https://github.com/truecharts/apps/tree/master/charts/incubator/frigate

Could you help them?
Thanks

PCI Coral Edge TPU not detected

Hi! I am trying to get this chart to work with my pci coral, but no luck. I have the latest frigate chart

The coral is micro pci, installed in a pcie card. I have installed the card in my kubernetes node and followed the install drivers documentation from google.

When I run frigate, I get the below error.

Relevant settings in values.yaml

coral:
enabled: true
hostPath: /dev/apex_0

detectors:
coral:
type: edgetpu
device: pci`

2023-07-06 19:53:27.470818310 Process detector:coral: │
│ 2023-07-06 19:53:27.473297980 Traceback (most recent call last): │
│ 2023-07-06 19:53:27.473590561 File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 160, in load_delegate │
│ 2023-07-06 19:53:27.473597680 delegate = Delegate(library, options) │
│ 2023-07-06 19:53:27.473602945 File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 119, in init
│ 2023-07-06 19:53:27.473614135 raise ValueError(capture.message) │
│ 2023-07-06 19:53:27.473618595 ValueError │
│ 2023-07-06 19:53:27.473622310 │
│ 2023-07-06 19:53:27.473659310 During handling of the above exception, another exception occurred: │
│ 2023-07-06 19:53:27.473664406 │
│ 2023-07-06 19:53:27.473668344 Traceback (most recent call last): │
│ 2023-07-06 19:53:27.473674492 File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap │
│ 2023-07-06 19:53:27.473678554 self.run() │
│ 2023-07-06 19:53:27.473683098 File "/usr/lib/python3.9/multiprocessing/process.py", line 108, in run │
│ 2023-07-06 19:53:27.473722094 self._target(*self._args, **self._kwargs) │
│ 2023-07-06 19:53:27.473726767 File "/opt/frigate/frigate/object_detection.py", line 98, in run_detector │
│ 2023-07-06 19:53:27.473731828 object_detector = LocalObjectDetector(detector_config=detector_config) │
│ 2023-07-06 19:53:27.473736295 File "/opt/frigate/frigate/object_detection.py", line 52, in init
│ 2023-07-06 19:53:27.473761224 self.detect_api = create_detector(detector_config) │
│ 2023-07-06 19:53:27.473765963 File "/opt/frigate/frigate/detectors/init.py", line 24, in create_detector │
│ 2023-07-06 19:53:27.473770182 return api(detector_config) │
│ 2023-07-06 19:53:27.473774886 File "/opt/frigate/frigate/detectors/plugins/edgetpu_tfl.py", line 37, in init
│ 2023-07-06 19:53:27.473779430 edge_tpu_delegate = load_delegate("libedgetpu.so.1.0", device_config) │
│ 2023-07-06 19:53:27.473806995 File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 162, in load_delegate │
│ 2023-07-06 19:53:27.473811588 raise ValueError('Failed to load delegate from {}\n{}'.format( │
│ 2023-07-06 19:53:27.473815829 ValueError: Failed to load delegate from libedgetpu.so.1.0

no matches for kind "Ingress" in version "extensions/v1beta1"

Using Kubernetes v1.22.2 and can't install frigate via helm, getting error "Helm install failed: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Ingress" in version "extensions/v1beta1""

Add support for tmpfs as /tmp mount

According to the installation documentation (https://docs.frigate.video/frigate/installation/#storage), /tmp/cache should be a tmpfs mount:

/tmp/cache: Cache location for recording segments. Initial recordings are written here before being checked and converted to mp4 and moved to the recordings folder. Segments generated via the clip.mp4 endpoints are also concatenated and processed here. It is recommended to use a tmpfs mount for this.

(my emphasis added)

I had actually started to run into issues with write operations over NFS due to this not being implemented. This was resulting is lots of errors like this:

WARNING : Unable to keep up with recording segments in cache for (camera). Keeping the 6 most recent segments out of (x) and discarding the rest...

Once I added a 1Gi tmpfs mounted to /tmp to the helm chart, the issues went away.

I'll open a pull request for this change shortly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.