Add frigate_deploy role for Frigate NVR Argo CD deployment #36
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Creates Ansible role to deploy Frigate NVR to k3s via Argo CD Application, following existing
*_deployrole patterns.Role Structure
meta/argument_specs.yml- All inputs withfrigate_deploy_prefixdefaults/main.yml- Homelab defaults (Longhorn storage, Tailscale ingress, chart v7.8.0)tasks/main.yml- Render + apply viak8s_object_manager, persist viarole_artifactstemplates/frigate-application.yml.j2- Argo Application with Helm valuesObjecttemplates/frigate-homepage-ingress.yml.j2- Homepage discovery ingressKey Features
blakeshome-chartsHelm chartfrigate_deploy_values_overridesdictExample Usage
Passes ansible-lint production profile.
Original prompt
This section details on the original issue you should resolve
<issue_title>Frigate Deployment</issue_title>
<issue_description># Deploy Frigate Argo Application with proper configuration
Goal
Create a new Ansible role that deploys Frigate NVR to the homelab k3s cluster via an Argo CD
Applicationresource, following the same patterns and quality bar as the existing deployment roles:ansible/roles/homepage_deployansible/roles/longhorn_deployansible/roles/tailscale_operator_deployansible/roles/synology_csi_deployThis role should render a complete, production ready Argo CD
Applicationspec using the official Frigate Helm chart fromblakeshome-charts, wired into the existing HA k3s + Tailscale + Longhorn + Synology stack.([GitHub][1])Scope
This issue is only for:
ansible/roles/frigate_deployApplicationYAML and HelmvaluesObjectinto the standard artifacts treeIt does not cover configuring individual cameras, MQTT broker deployment, Home Assistant integration, or detailed Frigate configuration beyond what is required for a sane initial deployment.
Role structure and conventions
Follow the same structure and conventions as the existing
*_deployroles:ansible/roles/frigate_deploy/meta/argument_specs.ymlansible/roles/frigate_deploy/defaults/main.ymlansible/roles/frigate_deploy/tasks/main.ymlRules:
frigate_deploy_.role_artifactsrole exactly the same way other deploy roles do as the single source of truth for where rendered files are written.Argo CD Application spec requirements
Use Argo CD’s Application spec as the reference.
The role should:
Render a complete Argo
Applicationmanifest for Frigate:apiVersion: argoproj.io/v1alpha1kind: Applicationmetadata.name: frigatemetadata.namespace: Argo CD namespace, derived or provided the same way as in other deploy roles.spec.project: the same Argo project used for other homelab applications.spec.source:repoURL:https://blakeblackshear.github.io/blakeshome-charts/chart:frigatetargetRevision: latest stable chart version by default, overridable viafrigate_deploy_helm_chart_version.([GitHub][1])helm.valuesObject: see Helm section below.spec.destination:server: in cluster API server, consistent with the other deploy roles.namespace: defaultfrigate, configurable viafrigate_deploy_namespace.spec.syncPolicy:syncOptions,retry).Write the Application YAML to the artifacts directory using
role_artifacts:Follow the same pattern as the other application deploy roles. For example:
.artifacts/{{ deploy_env }}/argo/applications/frigate-application.yamlAll paths must be derived from
role_artifactsoutputs and not hard coded.Optionally apply the Application to the cluster:
frigate_deploy_apply_application(bool).true, apply usingkubernetes.core.k8sor akubectlbased flow consistent with the existing deploy roles, including their CLI validation and context handling.Helm configuration and values
Use the official Frigate Helm chart from
blakeshome-chartswhich is the published chart on ArtifactHub.([Artifact Hub][2])Key rules:
spec.source.helm.valuesObject.valuesObject.frigate_deploy_values_overridesshould be a dict that is merged directly intovaluesObjectand is the single source of override truth.Values must:
Respect the HA k3s layout:
frigate_deploy_values_overridesbut do not hard code any particular accelerator mode. Expose the chart’sgpusettings and host device mappings as pass through values.([...💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.