Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
tekn0ir committed Nov 21, 2024
0 parents commit c484a6b
Show file tree
Hide file tree
Showing 9 changed files with 362 additions and 0 deletions.
107 changes: 107 additions & 0 deletions .github/settings.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# https://probot.github.io/apps/settings/
# all settings are optional
# See https://developer.github.com/v3/repos/#edit for all available settings.
repository:
# The name of the repository. Changing this will rename the repository
name: boxer-helm

# A short description of the repository that will show up on GitHub
description: A Helm chart for Boxer Property sites

# A URL with more information about the repository
homepage: https://teknoir.cloud

# A comma-separated list of topics to set on the repository
topics: teknoir, helm, boxer

# Either `true` to make the repository private, or `false` to make it public.
private: false

# Either `true` to enable issues for this repository, `false` to disable them.
has_issues: true

# Either `true` to enable projects for this repository, or `false` to disable them.
# If projects are disabled for the organization, passing `true` will cause an API error.
has_projects: true

# Either `true` to enable the wiki for this repository, `false` to disable it.
has_wiki: true

# Either `true` to enable downloads for this repository, `false` to disable them.
has_downloads: true

# Updates the default branch for this repository.
default_branch: gh-pages

# Either `true` to allow squash-merging pull requests, or `false` to prevent
# squash-merging.
allow_squash_merge: true

# Either `true` to allow merging pull requests with a merge commit, or `false`
# to prevent merging pull requests with merge commits.
allow_merge_commit: true

# Either `true` to allow rebase-merging pull requests, or `false` to prevent
# rebase-merging.
allow_rebase_merge: true

# Either `true` to enable automatic deletion of branches on merge, or `false` to disable
delete_branch_on_merge: false

# Either `true` to enable automated security fixes, or `false` to disable
# automated security fixes.
enable_automated_security_fixes: true

# Either `true` to enable vulnerability alerts, or `false` to disable
# vulnerability alerts.
enable_vulnerability_alerts: true

# Labels: define labels for Issues and Pull Requests
labels:
- name: bug
color: '#CC0000'
description: An issue with the system.

- name: feature
# If including a `#`, make sure to wrap it with quotes!
color: '#336699'
description: New functionality.

# See https://docs.github.com/en/rest/reference/teams#add-or-update-team-repository-permissions for available options
# The permission to grant the team. Can be one of:
# * `pull` - can pull, but not push to or administer this repository.
# * `push` - can pull and push, but not administer this repository.
# * `admin` - can pull, push and administer this repository.
# * `maintain` - Recommended for project managers who need to manage the repository without access to sensitive or destructive actions.
# * `triage` - Recommended for contributors who need to proactively manage issues and pull requests without write access.
teams:
- name: platform
permission: maintain
- name: edge
permission: maintain

branches:
- name: main
# https://docs.github.com/en/rest/reference/repos#update-branch-protection
# Branch Protection settings. Set to null to disable
protection:
# Required. Require at least one approving review on a pull request, before merging. Set to null to disable.
required_pull_request_reviews:
# The number of approvals required. (1-6)
required_approving_review_count: 1
# Dismiss approved reviews automatically when a new commit is pushed.
dismiss_stale_reviews: true
# Blocks merge until code owners have reviewed.
require_code_owner_reviews: false
# Specify which users and teams can dismiss pull request reviews. Pass an empty dismissal_restrictions object to disable. User and team dismissal_restrictions are only available for organization-owned repositories. Omit this parameter for personal repositories.
dismissal_restrictions:
users: []
teams: []
# Required. Require status checks to pass before merging. Set to null to disable
required_status_checks: null
# Required. Enforce all configured restrictions for administrators. Set to true to enforce required status checks for repository administrators. Set to null to disable.
enforce_admins: false
# Prevent merge commits from being pushed to matching branches
required_linear_history: false
# Required. Restrict who can push to this branch. Team and user restrictions are only available for organization-owned repositories. Set to null to disable.
restrictions: null
34 changes: 34 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Release Charts

on:
push:
branches:
- main

jobs:
release:
# depending on default permission settings for your org (contents being read-only or read-write for workloads), you will have to add permissions
# see: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Install Helm
uses: azure/setup-helm@v4
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.6.0
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.idea
tmp
1 change: 1 addition & 0 deletions README.md
2 changes: 2 additions & 0 deletions charts/boxer/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
charts/
Chart.lock
17 changes: 17 additions & 0 deletions charts/boxer/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: v2
name: boxer
description: A Helm chart for Boxer Property

type: application
version: 0.0.1
appVersion: "1.0.0"

dependencies:
- name: nvr
version: 0.2.2
repository: https://teknoir.github.io/nvr-helm
- name: triton
version: 0.1.0
repository: https://teknoir.github.io/triton-helm
# TODO: Add Observatory pipeline
# TODO: Add Historian
77 changes: 77 additions & 0 deletions charts/boxer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Boxer Property Helm Chart

This chart deploys a Boxer Property site.

> The implementation of the Helm chart is right now the bare minimum to get it to work.
> The purpose of this chart is to prepare proper defaults for the Boxer Property sites.
## Usage in Teknoir platform
Use the HelmChart to deploy the Boxer Property site to a Device.

```yaml
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: site-0001
namespace: default
spec:
repo: https://teknoir.github.io/boxer-helm
chart: boxer
targetNamespace: default
valuesContent: |-
# triton: See the triton-helm chart for details
# nvr: See the nvr-helm chart for details
# pipelines: See the pipelines-helm chart for details
# historian: See the historian-helm chart for details
# TBD
```

## Example values.yaml

```yaml
nvr:
defaults:
nvdsanalytics:
enabled: true
config: |
[property]
enable=0
instances:
- name: teknoir-nvr-2x3090-se-axis
camera:
uri: rtsp://teknoir:Teknoir2023@192.168.2.137/axis-media/media.amp?videocodec=h264&fps=15&resolution=1920x1080
- name: teknoir-nvr-2x3090-se-anders-test
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid5
- name: teknoir-nvr-2x3090-se-vid1
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid1
- name: teknoir-nvr-2x3090-se-vid2
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid2
- name: teknoir-nvr-2x3090-se-vid3
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid3
- name: teknoir-nvr-2x3090-se-vid4
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid4
- name: teknoir-nvr-2x3090-se-vid5
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid5
- name: teknoir-nvr-2x3090-se-vid6
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid6
```
## Adding the repository
```bash
helm repo add teknoir-boxer https://teknoir.github.io/boxer-helm/
```

## Installing the chart

```bash
helm install boxer teknoir-boxer/boxer -f values.yaml
```
10 changes: 10 additions & 0 deletions charts/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
triton:
models:
- name: rtdetr
image: us-docker.pkg.dev/teknoir/gcr.io/rtdetr-triton:latest

nvr:
defaults:
camera:
pipeline: rtspsrc location={{.uri}} latency=1000 ! queue ! rtpjitterbuffer latency=250 ! queue ! rtph264depay ! queue ! nvv4l2decoder ! queue ! nvvideoconvert ! video/x-raw(memory:NVMM),width=1920,height=1080 ! m.sink_0 nvstreammux name=m batch-size=4 width=1920 height=1080 ! queue ! nvinferserver name=nvis config-file-path=/models/rtdetr_config.pbtxt unique-id=2 interval=15 ! queue ! nvinferserver config-file-path=/models/up_down_classifier_config.pbtxt unique-id=5 ! queue ! nvtracker tracker-width=640 tracker-height=384 gpu-id=0 ll-lib-file=/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so ll-config-file=/models/config_tracker_NvDeepSORT.yml compute-hw=2 ! nvstreamdemux name=d d.src_0 ! queue ! tee name=t t. ! queue ! nvvideoconvert ! video/x-raw(memory:NVMM),width=1920,height=1080 ! nvv4l2h265enc copy-meta=true iframeinterval=15 bitrate=250000 ! queue ! h265parse ! queue ! splitmuxsink sink=nvdsfilesink muxer-properties=properties,streamable=true location=/app/videos/{{.camera_id}}_%05d.mp4 max-size-time=15000000000 max-files=5760 t. ! queue ! nvdsanalytics config-file=/app/config/config_nvdsanalytics.txt ! queue ! nvdsosd ! nvvideoconvert ! video/x-raw(memory:NVMM),width=[1,1920],height=[1,1080],pixel-aspect-ratio=1/1 ! nvvideoconvert ! queue ! nvjpegenc quality=45 ! appsink sync=0 name=mqttsink t. ! nvvideoconvert ! video/x-raw,format=RGB,width=[1,640],height=[1,360],pixel-aspect-ratio=1/1 ! nvvideoconvert ! motioncells threshold=0.00005 gridx=32 gridy=18 ! fakesink
instances: []
112 changes: 112 additions & 0 deletions values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
nvr:
instances:
- name: teknoir-nvr-2x3090-se-axis
camera:
uri: rtsp://teknoir:Teknoir2023@192.168.2.137/axis-media/media.amp?videocodec=h264&fps=15&resolution=1920x1080
nvdsanalytics:
enabled: true
config: |
[property]
enable=1
config-width=1920
config-height=1080
osd-mode=2
display-font-size=25
[line-crossing-stream-0]
enable=1
line-crossing-Entry-0=59;591;153;557;200;688;106;426
line-crossing-Exit-0=247;523;153;557;106;426;200;688
line-crossing-Entry-1=1607;566;1508;550;1568;183;1448;917
line-crossing-Exit-1=1410;534;1508;550;1448;917;1568;183
- name: teknoir-nvr-2x3090-se-anders-test
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid5
nvdsanalytics:
enabled: true
config: |
[property]
enable=1
config-width=1920
config-height=1080
osd-mode=2
display-font-size=25
[line-crossing-stream-0]
enable=1
line-crossing-Entry-0=59;591;153;557;200;688;106;426
line-crossing-Exit-0=247;523;153;557;106;426;200;688
line-crossing-Entry-1=1607;566;1508;550;1568;183;1448;917
line-crossing-Exit-1=1410;534;1508;550;1448;917;1568;183
- name: teknoir-nvr-2x3090-se-vid1
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid1
nvdsanalytics:
enabled: true
config: |
[property]
enable=1
config-width=1920
config-height=1080
osd-mode=2
display-font-size=25
- name: teknoir-nvr-2x3090-se-vid2
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid2
nvdsanalytics:
enabled: true
config: |
[property]
enable=1
config-width=1920
config-height=1080
osd-mode=2
display-font-size=25
- name: teknoir-nvr-2x3090-se-vid3
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid3
nvdsanalytics:
enabled: true
config: |
[property]
enable=1
config-width=1920
config-height=1080
osd-mode=2
display-font-size=25
- name: teknoir-nvr-2x3090-se-vid4
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid4
nvdsanalytics:
enabled: true
config: |
[property]
enable=1
config-width=1920
config-height=1080
osd-mode=2
display-font-size=25
- name: teknoir-nvr-2x3090-se-vid5
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid5
nvdsanalytics:
enabled: true
config: |
[property]
enable=1
config-width=1920
config-height=1080
osd-mode=2
display-font-size=25
- name: teknoir-nvr-2x3090-se-vid6
camera:
uri: rtsp://rtsp-video-file-streams:8554/vid6
nvdsanalytics:
enabled: true
config: |
[property]
enable=1
config-width=1920
config-height=1080
osd-mode=2
display-font-size=25

0 comments on commit c484a6b

Please sign in to comment.