-
Notifications
You must be signed in to change notification settings - Fork 80
Expand file tree
/
Copy pathfrigate.yaml
More file actions
164 lines (158 loc) · 4.51 KB
/
frigate.yaml
File metadata and controls
164 lines (158 loc) · 4.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v4.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: frigate
namespace: default
spec:
suspend: false
interval: 1h
chartRef:
kind: OCIRepository
name: app-template
namespace: flux-system
values:
defaultPodOptions:
resourceClaims:
- name: gpu
resourceClaimTemplateName: frigate
affinity:
nodeAffinity:
# Soft preferences - scheduler tries these in order but allows fallback
preferredDuringSchedulingIgnoredDuringExecution:
# Tier 1: Intel N100 (Gen 12 Xe) - Best for OpenVINO inference
- weight: 100
preference:
matchExpressions:
- key: intel.feature.node.kubernetes.io/gpu-gen
operator: In
values:
- "12"
# Tier 2: Coffee Lake UHD 630 - Good OpenVINO performance
- weight: 70
preference:
matchExpressions:
- key: intel.feature.node.kubernetes.io/gpu-family
operator: In
values:
- "coffeelake"
# Tier 3: Kaby Lake HD 630 - Acceptable OpenVINO performance
- weight: 50
preference:
matchExpressions:
- key: intel.feature.node.kubernetes.io/gpu-family
operator: In
values:
- "kabylake"
controllers:
main:
containers:
main:
image:
repository: ghcr.io/blakeblackshear/frigate
tag: 0.17.0@sha256:5be5ce3b79f8b09a52957afea9d4a23ad62c9f077a05d9047e3404eb78c304a8
env:
TZ: America/New_York
envFrom:
- secretRef:
name: frigate-secret
probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /api/version
port: 5000
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
readiness: *probes
startup:
enabled: false
securityContext:
capabilities:
add:
- PERFMON
resources:
claims:
- name: gpu
requests:
memory: 1800Mi
cpu: 1500m
limits:
memory: 5000Mi
service:
main:
controller: main
ports:
http:
appProtocol: kubernetes.io/ws
port: &port 5000
primary: true
go2rtc:
enabled: true
port: 1984
rtsp:
enabled: true
port: 8554
route:
main:
enabled: true
annotations:
external-dns.alpha.kubernetes.io/internal: "true"
external-dns.alpha.kubernetes.io/target: "10.0.6.151"
parentRefs:
- name: internal
namespace: kube-system
sectionName: https
hostnames:
- frigate.eviljungle.com
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: frigate
port: *port
persistence:
config:
existingClaim: frigate-config
globalMounts:
- path: /config
config-file:
type: configMap
name: frigate-configmap
globalMounts:
- path: /config/config.yml
subPath: config.yml
readOnly: true
media:
type: custom
volumeSpec:
nfs:
server: "nas.home"
path: /mnt/tank/media
globalMounts:
- path: /media
cache:
type: emptyDir
medium: Memory
sizeLimit: 4Gi
globalMounts:
- path: /dev/shm
rawResources:
gpu:
apiVersion: resource.k8s.io/v1
kind: ResourceClaimTemplate
spec:
spec:
spec:
devices:
requests:
- name: gpu
exactly:
deviceClassName: gpu.intel.com