diff --git a/apps/frigate/release.yaml b/apps/frigate/release.yaml new file mode 100644 index 0000000..6c57158 --- /dev/null +++ b/apps/frigate/release.yaml @@ -0,0 +1,77 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: frigate + namespace: frigate +spec: + chart: + spec: + chart: frigate + version: 7.x + sourceRef: + kind: HelmRepository + name: frigate + interval: 15m + releaseName: frigate + values: + image: + repository: ghcr.io/blakeblackshear/frigate + tag: amd64nvidia + pullPolicy: IfNotPresent + + envFromSecrets: + - frigate-secret + + gpu: + nvidia: + enabled: true + runtimeClassName: nvidia + + config: | + mqtt: + enabled: true + host: emqx.emqx.svc.cluster.local + user: frigate + password: {FRIGATE_MQTT_PASSWORD} + + ffmpeg: + hwaccel_args: preset-nvidia + + go2rtc: + streams: + cam1: + - rtsp://{FRIGATE_RTSP_USERNAME}:{FRIGATE_RTSP_PASSWORD}@192.168.18.20:554/stream1 + cam1_sub: + - rtsp://{FRIGATE_RTSP_USERNAME}:{FRIGATE_RTSP_PASSWORD}@192.168.18.20:554/stream2 + + ingress: + enabled: true + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.tls: "true" + hosts: + - host: frigate.michaelthomson.dev + paths: + - path: '/' + portName: http-auth + tls: + - hosts: + - frigate.michaelthomson.dev + secretName: frigate-tls + + persistence: + config: + enabled: true + storageClass: longhorn + accessMode: ReadWriteOnce + size: 100Mi + media: + enabled: true + storageClass: nfs-client + accessMode: ReadWriteOnce + size: 10Gi + + resources: + limits: + nvidia.com/gpu: 1 diff --git a/apps/frigate/repository.yaml b/apps/frigate/repository.yaml new file mode 100644 index 0000000..ade7716 --- /dev/null +++ b/apps/frigate/repository.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: frigate + namespace: frigate +spec: + interval: 15m + url: https://blakeblackshear.github.io/blakeshome-charts/ diff --git a/apps/frigate/secret.yaml b/apps/frigate/secret.yaml new file mode 100644 index 0000000..0e765ad --- /dev/null +++ b/apps/frigate/secret.yaml @@ -0,0 +1,24 @@ +apiVersion: v1 +stringData: + FRIGATE_MQTT_PASSWORD: ENC[AES256_GCM,data:2Q78LPHG682UgvVmZCg=,iv:QjhxxfgYKhA5/Btmu48E8QsIYUbdE0SSRmhkuJtmEJA=,tag:PUwGu6Vz/q3xkLWakIebqw==,type:str] + FRIGATE_RTSP_USERNAME: ENC[AES256_GCM,data:6AlV8zxMxkpHLXlMEQ==,iv:4P7cYe7pLsI74CMQz/YhZ0/TG4lwjsNIRL/NuMmi4/E=,tag:M3jRqHkeHLZY2DS+nJZasA==,type:str] + FRIGATE_RTSP_PASSWORD: ENC[AES256_GCM,data:PNI3OU9QCiOEABQu6Tg=,iv:npbl8YE1iTeEA5mJOlEb6EUKhTjd7s7lRfPVCfu+OTE=,tag:PPu1JGT8PSsSfVgOk4sVgw==,type:str] +kind: Secret +metadata: + name: frigate-secret + namespace: frigate +sops: + age: + - enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3ZWVxNElZM1pFNEx6eE9q + U3ZHTzdhcXMzWmRBWGM0eDFTVCtFOGhGYzN3ClZ2U2NaSFVuaUN6RDhaYkVnb1du + M2JFMzBkeWZUaFBKeEZYb2FiMytIeWcKLS0tIEFQelhqQUhDODlTL2J4M0kzK05m + YjFheFgwRGVEVWJ3TW94UWlTREV6K2cKpnqUg4qLeOtIfecGjV2nUAYZGTkHCrT6 + OHfL5W55BqcQJYovv37JJHkNV+IHuVNo7aqO/gx5AE0HfMWPfy6QGg== + -----END AGE ENCRYPTED FILE----- + recipient: age1s0206tnfaaw849x5xmt95axgu8qhxzlu5ywrwz09tpt8lwpx858q089nq9 + encrypted_regex: ^(data|stringData)$ + lastmodified: "2026-09-08T19:49:08Z" + mac: ENC[AES256_GCM,data:3viOyo2Qbq29GNNV7e+SacbXI/jf/LkitESACHYuwPcQZFO57J4Hg/Pk1e8lsM2Ft04Ye2L7o1Jdd8gVmPtH8EJdONWFpuv8DOgzAII/FxdDosHy5N0z8Gj8eFBCJEw4zpKKuTMoL+uG5juouWzzMnnmZ0kaz5t2dTUIkbXRDug=,iv:VaZfS84/FhkY5IJQVhbP0XUmVkBGHLMe1pnUISENQYY=,tag:sqs1pu8dThE4x9pqAsYE0g==,type:str] + version: 3.13.3 diff --git a/apps/ollama/release.yaml b/apps/ollama/release.yaml deleted file mode 100644 index 2a94f24..0000000 --- a/apps/ollama/release.yaml +++ /dev/null @@ -1,53 +0,0 @@ -apiVersion: helm.toolkit.fluxcd.io/v2 -kind: HelmRelease -metadata: - name: ollama - namespace: ollama -spec: - chart: - spec: - chart: ollama - version: 1.x - sourceRef: - kind: HelmRepository - name: ollama - interval: 15m - releaseName: ollama - values: - runtimeClassName: nvidia - ollama: - gpu: - enabled: true - type: nvidia - number: 1 - models: - pull: - - gemma4:12b - # create: - # - name: qwen3.5:9b-custom - # template: | - # FROM qwen3.5:9b - # PARAMETER num_ctx 8192 - # PARAMETER temperature 1.0 - # PARAMETER top_p 0.95 - # PARAMETER top_k 20 - # PARAMETER min_p 0.0 - # PARAMETER presence_penalty 1.5 - # PARAMETER repetition_penalty 1.0 - # run: - # - qwen3.5:9b-custom - ingress: - enabled: true - annotations: - cert-manager.io/cluster-issuer: "letsencrypt-prod" - traefik.ingress.kubernetes.io/router.entrypoints: websecure - traefik.ingress.kubernetes.io/router.tls: "true" - hosts: - - host: ollama.michaelthomson.dev - paths: - - path: / - pathType: Prefix - tls: - - hosts: - - ollama.michaelthomson.dev - secretName: ollama-tls diff --git a/apps/ollama/repository.yaml b/apps/ollama/repository.yaml deleted file mode 100644 index 2f0307d..0000000 --- a/apps/ollama/repository.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: source.toolkit.fluxcd.io/v1 -kind: HelmRepository -metadata: - name: ollama - namespace: ollama -spec: - interval: 15m - url: https://helm.otwld.com/ diff --git a/bootstrap/apps/kustomization-ollama.yaml b/bootstrap/apps/kustomization-frigate.yaml similarity index 73% rename from bootstrap/apps/kustomization-ollama.yaml rename to bootstrap/apps/kustomization-frigate.yaml index ba32615..674d6c9 100644 --- a/bootstrap/apps/kustomization-ollama.yaml +++ b/bootstrap/apps/kustomization-frigate.yaml @@ -1,12 +1,12 @@ apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: - name: ollama + name: frigate namespace: flux-system spec: interval: 15m - path: ./apps/ollama - prune: true + path: ./apps/frigate + prune: true # remove any elements later removed from the above path wait: true sourceRef: kind: GitRepository diff --git a/infrastructure/namespaces/namespace-ollama.yaml b/infrastructure/namespaces/namespace-frigate.yaml similarity index 92% rename from infrastructure/namespaces/namespace-ollama.yaml rename to infrastructure/namespaces/namespace-frigate.yaml index b5ccde3..7b59a34 100644 --- a/infrastructure/namespaces/namespace-ollama.yaml +++ b/infrastructure/namespaces/namespace-frigate.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: Namespace metadata: - name: ollama + name: frigate labels: pod-security.kubernetes.io/enforce: privileged pod-security.kubernetes.io/audit: privileged