Skip to content

Commit 2008588

Browse files
Add helm chart for Live Video Search application (#2267)
Co-authored-by: adithya-vardhang <adithya.vardhan.garapati@intel.com>
1 parent 45b706d commit 2008588

File tree

111 files changed

+5246
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+5246
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
dependencies:
2+
- name: shared
3+
repository: file://subchart/shared
4+
version: 1.0.0
5+
- name: init-resources
6+
repository: file://subchart/init-resources
7+
version: 1.0.0
8+
- name: nginx
9+
repository: file://subchart/nginx
10+
version: 1.0.0
11+
- name: vss-ui
12+
repository: file://subchart/vss-ui
13+
version: 1.0.0
14+
- name: pipeline-manager
15+
repository: file://subchart/pipeline-manager
16+
version: 1.0.0
17+
- name: postgres-service
18+
repository: file://subchart/postgres-service
19+
version: 1.0.0
20+
- name: minio-service
21+
repository: file://subchart/minio-service
22+
version: 1.0.0
23+
- name: vdms-vector-db
24+
repository: file://subchart/vdms-vector-db
25+
version: 1.0.0
26+
- name: multimodal-embedding-serving
27+
repository: file://subchart/multimodal-embedding-serving
28+
version: 1.0.0
29+
- name: vdms-dataprep
30+
repository: file://subchart/vdms-dataprep
31+
version: 1.0.0
32+
- name: video-search
33+
repository: file://subchart/video-search
34+
version: 1.0.0
35+
- name: mqtt-broker
36+
repository: file://subchart/mqtt-broker
37+
version: 1.0.0
38+
- name: redis
39+
repository: file://subchart/redis
40+
version: 1.0.0
41+
- name: frigate-vms
42+
repository: file://subchart/frigate-vms
43+
version: 1.0.0
44+
- name: nvr-event-router
45+
repository: file://subchart/nvr-event-router
46+
version: 1.0.0
47+
- name: rtsp-test
48+
repository: file://subchart/rtsp-test
49+
version: 1.0.0
50+
- name: vss-collector
51+
repository: file://subchart/vss-collector
52+
version: 1.0.0
53+
digest: sha256:098dd823196440a2ea35a9e3f9a35835724ae2374054bd02c3687dbd5a6281fa
54+
generated: "2026-03-19T19:23:41.236818291-07:00"
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
apiVersion: v2
2+
name: live-video-search
3+
description: Umbrella Helm chart for Live Video Search (VSS Search + Smart NVR)
4+
type: application
5+
version: 1.0.0
6+
appVersion: "1.0.0"
7+
dependencies:
8+
- name: shared
9+
version: 1.0.0
10+
repository: "file://subchart/shared"
11+
- name: init-resources
12+
version: 1.0.0
13+
repository: "file://subchart/init-resources"
14+
- name: nginx
15+
version: 1.0.0
16+
repository: "file://subchart/nginx"
17+
- name: vss-ui
18+
version: 1.0.0
19+
repository: "file://subchart/vss-ui"
20+
- name: pipeline-manager
21+
version: 1.0.0
22+
repository: "file://subchart/pipeline-manager"
23+
- name: postgres-service
24+
version: 1.0.0
25+
repository: "file://subchart/postgres-service"
26+
- name: minio-service
27+
version: 1.0.0
28+
repository: "file://subchart/minio-service"
29+
- name: vdms-vector-db
30+
version: 1.0.0
31+
repository: "file://subchart/vdms-vector-db"
32+
- name: multimodal-embedding-serving
33+
version: 1.0.0
34+
repository: "file://subchart/multimodal-embedding-serving"
35+
- name: vdms-dataprep
36+
version: 1.0.0
37+
repository: "file://subchart/vdms-dataprep"
38+
- name: video-search
39+
version: 1.0.0
40+
repository: "file://subchart/video-search"
41+
- name: mqtt-broker
42+
version: 1.0.0
43+
repository: "file://subchart/mqtt-broker"
44+
- name: redis
45+
version: 1.0.0
46+
repository: "file://subchart/redis"
47+
- name: frigate-vms
48+
version: 1.0.0
49+
repository: "file://subchart/frigate-vms"
50+
- name: nvr-event-router
51+
version: 1.0.0
52+
repository: "file://subchart/nvr-event-router"
53+
- name: rtsp-test
54+
version: 1.0.0
55+
repository: "file://subchart/rtsp-test"
56+
- name: vss-collector
57+
version: 1.0.0
58+
repository: "file://subchart/vss-collector"
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
global:
2+
persistence:
3+
rwxEnabled: false
4+
5+
frigate:
6+
mode: default
7+
rtspTest:
8+
enabled: false
9+
telemetry:
10+
enabled: true
11+
hostPathMounts: true
12+
13+
frigate-vms:
14+
service:
15+
frigate:
16+
nodePort: null
17+
18+
nginx:
19+
service:
20+
app:
21+
nodePort: null
22+
23+
minio-service:
24+
service:
25+
minioApi:
26+
nodePort: null
27+
minioConsole:
28+
nodePort: null
29+
30+
nvr-event-router:
31+
service:
32+
nvrEventRouter:
33+
nodePort: null
34+
35+
vss-collector:
36+
collectorSignals:
37+
usePvc: true
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
global:
2+
persistence:
3+
rwxEnabled: false
4+
5+
frigate:
6+
mode: rtsp
7+
rtspTest:
8+
enabled: true
9+
10+
frigate-vms:
11+
frigate:
12+
mode: rtsp
13+
service:
14+
frigate:
15+
nodePort: null
16+
17+
rtsp-test:
18+
frigate:
19+
mode: rtsp
20+
rtspTest:
21+
enabled: true
22+
23+
nginx:
24+
service:
25+
app:
26+
nodePort: null
27+
28+
minio-service:
29+
service:
30+
minioApi:
31+
nodePort: null
32+
minioConsole:
33+
nodePort: null
34+
35+
nvr-event-router:
36+
service:
37+
nvrEventRouter:
38+
nodePort: null
39+
40+
vss-collector:
41+
telemetry:
42+
enabled: true
43+
collectorSignals:
44+
usePvc: true
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: v2
2+
name: frigate-vms
3+
description: Live Video Search frigate-vms subchart
4+
version: 1.0.0
5+
appVersion: "1.0.0"
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{{- define "lvs.frigate.name" -}}
2+
live-video-search
3+
{{- end -}}
4+
5+
{{- define "lvs.frigate.fullname" -}}
6+
{{- if .Values.fullnameOverride -}}
7+
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
8+
{{- else -}}
9+
{{- printf "%s-%s" .Release.Name (include "lvs.frigate.name" .) | trunc 63 | trimSuffix "-" -}}
10+
{{- end -}}
11+
{{- end -}}
12+
13+
{{- define "lvs.frigate.labels" -}}
14+
app.kubernetes.io/name: {{ include "lvs.frigate.name" . }}
15+
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
16+
app.kubernetes.io/instance: {{ .Release.Name }}
17+
app.kubernetes.io/managed-by: {{ .Release.Service }}
18+
app.kubernetes.io/component: frigate-vms
19+
{{- end -}}
20+
21+
{{- define "lvs.frigate.selectorLabels" -}}
22+
app.kubernetes.io/name: {{ include "lvs.frigate.name" . }}
23+
app.kubernetes.io/instance: {{ .Release.Name }}
24+
{{- end -}}
25+
26+
{{- define "lvs.frigate.image" -}}
27+
{{- $registry := .registry | default "" -}}
28+
{{- $repository := .repository -}}
29+
{{- $tag := .tag -}}
30+
{{- if $registry -}}
31+
{{- printf "%s/%s:%s" (trimSuffix "/" $registry) $repository $tag -}}
32+
{{- else -}}
33+
{{- printf "%s:%s" $repository $tag -}}
34+
{{- end -}}
35+
{{- end -}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: {{ include "lvs.frigate.fullname" . }}-frigate
5+
labels:
6+
{{- include "lvs.frigate.labels" . | nindent 4 }}
7+
data:
8+
config.yml: |
9+
{{- if eq .Values.frigate.mode "rtsp" }}
10+
{{ .Values.frigate.configs.rtsp | nindent 4 }}
11+
{{- else if eq .Values.frigate.mode "usb" }}
12+
{{ .Values.frigate.configs.usb | nindent 4 }}
13+
{{- else }}
14+
{{ .Values.frigate.configs.default | nindent 4 }}
15+
{{- end }}
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: frigate-vms
5+
labels:
6+
{{- include "lvs.frigate.labels" . | nindent 4 }}
7+
spec:
8+
replicas: {{ .Values.replicaCount }}
9+
selector:
10+
matchLabels:
11+
app: frigate-vms
12+
template:
13+
metadata:
14+
labels:
15+
app: frigate-vms
16+
{{- include "lvs.frigate.selectorLabels" . | nindent 8 }}
17+
spec:
18+
{{- if and (eq .Values.frigate.mode "rtsp") (not .Values.global.persistence.rwxEnabled) }}
19+
affinity:
20+
podAffinity:
21+
requiredDuringSchedulingIgnoredDuringExecution:
22+
- labelSelector:
23+
matchExpressions:
24+
- key: app
25+
operator: In
26+
values:
27+
- rtsp-publisher
28+
topologyKey: kubernetes.io/hostname
29+
{{- end }}
30+
{{- with .Values.podSecurityContext }}
31+
securityContext:
32+
{{- toYaml . | nindent 8 }}
33+
{{- end }}
34+
containers:
35+
- name: frigate
36+
image: {{ .Values.images.frigate }}
37+
imagePullPolicy: {{ .Values.imagePullPolicy }}
38+
{{- with .Values.securityContext }}
39+
securityContext:
40+
{{- toYaml . | nindent 12 }}
41+
{{- end }}
42+
env:
43+
- name: no_proxy
44+
value: "{{ .Values.global.proxy.noProxy }},frigate,{{ .Values.smartNvr.vssSummaryIp }},{{ .Values.smartNvr.vlmServingIp }}"
45+
- name: NO_PROXY
46+
value: "{{ .Values.global.proxy.noProxy }},frigate,{{ .Values.smartNvr.vssSummaryIp }},{{ .Values.smartNvr.vlmServingIp }}"
47+
- name: FRIGATE_MQTT_USER
48+
valueFrom:
49+
secretKeyRef:
50+
name: {{ include "lvs.frigate.fullname" . }}-credentials
51+
key: MQTT_USER
52+
- name: FRIGATE_MQTT_PASSWORD
53+
valueFrom:
54+
secretKeyRef:
55+
name: {{ include "lvs.frigate.fullname" . }}-credentials
56+
key: MQTT_PASSWORD
57+
- name: OPENAI_BASE_URL
58+
value: "http://{{ .Values.smartNvr.vlmServingIp }}:{{ .Values.smartNvr.vlmServingPort }}/v1"
59+
- name: OPENAI_API_KEY
60+
value: "your_openai_api_key"
61+
ports:
62+
- containerPort: 5000
63+
name: http
64+
{{- with .Values.livenessProbe }}
65+
livenessProbe:
66+
{{- toYaml . | nindent 12 }}
67+
{{- end }}
68+
{{- with .Values.readinessProbe }}
69+
readinessProbe:
70+
{{- toYaml . | nindent 12 }}
71+
{{- end }}
72+
{{- with .Values.startupProbe }}
73+
startupProbe:
74+
{{- toYaml . | nindent 12 }}
75+
{{- end }}
76+
{{- with .Values.resources }}
77+
resources:
78+
{{- toYaml . | nindent 12 }}
79+
{{- end }}
80+
volumeMounts:
81+
- name: frigate-config
82+
mountPath: /config/config.yml
83+
subPath: config.yml
84+
- name: frigate-cache
85+
mountPath: /tmp/cache
86+
- name: videos
87+
mountPath: /videos
88+
- name: frigate-recordings
89+
mountPath: /media/frigate/recordings
90+
{{- if eq .Values.frigate.mode "usb" }}
91+
- name: usb-camera
92+
mountPath: /dev/video0
93+
{{- end }}
94+
volumes:
95+
- name: frigate-config
96+
configMap:
97+
name: {{ include "lvs.frigate.fullname" . }}-frigate
98+
- name: frigate-cache
99+
emptyDir:
100+
medium: Memory
101+
sizeLimit: 1000Mi
102+
- name: videos
103+
{{- if eq (.Values.global.videos.source | default "download") "local" }}
104+
hostPath:
105+
path: {{ required "global.videos.hostPath is required when global.videos.source=local" .Values.global.videos.hostPath }}
106+
type: Directory
107+
{{- else }}
108+
persistentVolumeClaim:
109+
claimName: {{ include "lvs.frigate.fullname" . }}-videos
110+
{{- end }}
111+
- name: frigate-recordings
112+
persistentVolumeClaim:
113+
claimName: {{ include "lvs.frigate.fullname" . }}-frigate-recordings
114+
{{- if eq .Values.frigate.mode "usb" }}
115+
- name: usb-camera
116+
hostPath:
117+
path: {{ .Values.frigate.usbCameraDevice }}
118+
type: CharDevice
119+
{{- end }}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: frigate-vms
5+
labels:
6+
{{- include "lvs.frigate.labels" . | nindent 4 }}
7+
spec:
8+
type: {{ .Values.service.frigate.type }}
9+
ports:
10+
- port: {{ .Values.service.frigate.port }}
11+
targetPort: http
12+
protocol: TCP
13+
name: http
14+
{{- if and (eq .Values.service.frigate.type "NodePort") .Values.service.frigate.nodePort }}
15+
nodePort: {{ .Values.service.frigate.nodePort }}
16+
{{- end }}
17+
selector:
18+
app: frigate-vms

0 commit comments

Comments
 (0)