fix(ring-mqtt): move to stable + docs (#3675)

* fix(ring-mqtt): move to stable + docs

* update files

* Apply suggestions from code review

* update md

* lint

* lint

Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
This commit is contained in:
Xstar97
2022-09-03 16:28:51 -04:00
committed by GitHub
parent a7726e8134
commit baf2f5ea8e
10 changed files with 445 additions and 299 deletions

View File

@@ -1,154 +0,0 @@
# Include{groups}
portals: {}
questions:
# Include{global}
# Include{controller}
# Include{controllerDeployment}
# Include{replicas}
# Include{replica1}
# Include{strategy}
# Include{recreate}
# Include{controllerExpert}
# Include{controllerExpertExtraArgs}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: RINGTOKEN
label: "RINGTOKEN"
description: "Container Variable RINGTOKEN"
schema:
type: string
default: ""
- variable: MQTTHOST
label: "MQTTHOST"
description: "Container Variable MQTTHOST"
schema:
type: string
default: ""
- variable: MQTTPORT
label: "MQTTPORT"
description: "Container Variable MQTTPORT"
schema:
type: string
default: "1883"
- variable: MQTTUSER
label: "MQTTUSER"
description: "Container Variable MQTTUSER"
schema:
type: string
default: ""
- variable: MQTTPASSWORD
label: "MQTTPASSWORD"
description: "Container Variable MQTTPASSWORD"
schema:
type: string
default: ""
- variable: ENABLECAMERAS
label: "ENABLECAMERAS"
description: "Container Variable ENABLECAMERAS"
schema:
type: string
default: "false"
- variable: SNAPSHOTMODE
label: "SNAPSHOTMODE"
description: "Container Variable SNAPSHOTMODE"
schema:
type: string
default: "disabled"
- variable: ENABLEMODES
label: "ENABLEMODES"
description: "Container Variable ENABLEMODES"
schema:
type: string
default: "false"
- variable: ENABLEPANIC
label: "ENABLEPANIC"
description: "Container Variable ENABLEPANIC"
schema:
type: string
default: "false"
- variable: BEAMDURATION
label: "BEAMDURATION"
description: "Container Variable BEAMDURATION"
schema:
type: string
default: "0"
- variable: DISARMCODE
label: "DISARMCODE"
description: "Container Variable DISARMCODE"
schema:
type: string
default: ""
- variable: RINGLOCATIONIDS
label: "RINGLOCATIONIDS"
description: "Container Variable RINGLOCATIONIDS"
schema:
type: string
default: ""
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
- variable: data
label: "data Storage"
description: "Data Path"
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
# Include{persistenceAdvanced}
# Include{persistenceList}
# Include{ingressList}
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
# Include{securityContextAdvanced}
# Include{podSecurityContextRoot}
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{documentation}

View File

@@ -1,17 +1,12 @@
annotations:
truecharts.org/SCALE-support: "true"
truecharts.org/catagories: |
- HomeAutomation
- Tools-Utilities
apiVersion: v2
appVersion: "latest"
appVersion: "5.0.3"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 10.5.6
deprecated: false
description: Interact with Ring Inc products (cameras/alarms/smart lighting) via MQTT - See the project page for token auth procedure - https://github.com/tsightler/ring-mqtt#authentication
home: https://truecharts.org/docs/charts/incubator/ring-mqtt
description: Interact with Ring Inc products (cameras/alarms/smart lighting) via MQTT.
home: https://truecharts.org/docs/charts/stable/ring-mqtt
icon: https://truecharts.org/img/hotlink-ok/chart-icons/ring-mqtt.png
keywords:
- ring-mqtt
@@ -24,8 +19,14 @@ maintainers:
url: https://truecharts.org
name: ring-mqtt
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/ring-mqtt
- https://github.com/truecharts/charts/tree/master/charts/stable/ring-mqtt
- https://github.com/tsightler/ring-mqtt
- https://hub.docker.com/r/tsightler/ring-mqtt/
type: application
version: 0.0.23
version: 1.0.0
annotations:
truecharts.org/catagories: |
- HomeAutomation
- Tools-Utilities
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U

View File

@@ -1,109 +1,109 @@
# ring-mqtt
![Version: 0.0.23](https://img.shields.io/badge/Version-0.0.23-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square)
Interact with Ring Inc products (cameras/alarms/smart lighting) via MQTT - See the project page for token auth procedure - https://github.com/tsightler/ring-mqtt#authentication
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
This readme is just an automatically generated general guide on installing our Helm Charts and Apps.
For more information, please click here: [ring-mqtt](https://truecharts.org/docs/charts/incubator/ring-mqtt)
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)**
## Source Code
* <https://github.com/truecharts/charts/tree/master/charts/incubator/ring-mqtt>
* <https://github.com/tsightler/ring-mqtt>
* <https://hub.docker.com/r/tsightler/ring-mqtt/>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://library-charts.truecharts.org | common | 10.5.6 |
## Installing the Chart
### TrueNAS SCALE
To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Installing-an-App).
### Helm
To install the chart with the release name `ring-mqtt`
```console
helm repo add TrueCharts https://charts.truecharts.org
helm repo update
helm install ring-mqtt TrueCharts/ring-mqtt
```
## Uninstall
### TrueNAS SCALE
**Upgrading, Rolling Back and Uninstalling the Chart**
To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Upgrade-rollback-delete-an-App).
### Helm
To uninstall the `ring-mqtt` deployment
```console
helm uninstall ring-mqtt
```
## Configuration
### Helm
#### Available Settings
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common).
#### Configure using the command line
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
helm install ring-mqtt \
--set env.TZ="America/New York" \
TrueCharts/ring-mqtt
```
#### Configure using a yaml file
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install ring-mqtt TrueCharts/ring-mqtt -f values.yaml
```
#### Connecting to other charts
If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/linking-apps) quick-start guide.
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Important-MUST-READ).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
---
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can!
---
All Rights Reserved - The TrueCharts Project
# ring-mqtt
![Version: 0.0.23](https://img.shields.io/badge/Version-0.0.23-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square)
Interact with Ring Inc products (cameras/alarms/smart lighting) via MQTT - See the project page for token auth procedure - https://github.com/tsightler/ring-mqtt#authentication
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
This readme is just an automatically generated general guide on installing our Helm Charts and Apps.
For more information, please click here: [ring-mqtt](https://truecharts.org/docs/charts/incubator/ring-mqtt)
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)**
## Source Code
* <https://github.com/truecharts/charts/tree/master/charts/incubator/ring-mqtt>
* <https://github.com/tsightler/ring-mqtt>
* <https://hub.docker.com/r/tsightler/ring-mqtt/>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://library-charts.truecharts.org | common | 10.5.6 |
## Installing the Chart
### TrueNAS SCALE
To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Installing-an-App).
### Helm
To install the chart with the release name `ring-mqtt`
```console
helm repo add TrueCharts https://charts.truecharts.org
helm repo update
helm install ring-mqtt TrueCharts/ring-mqtt
```
## Uninstall
### TrueNAS SCALE
**Upgrading, Rolling Back and Uninstalling the Chart**
To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Upgrade-rollback-delete-an-App).
### Helm
To uninstall the `ring-mqtt` deployment
```console
helm uninstall ring-mqtt
```
## Configuration
### Helm
#### Available Settings
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common).
#### Configure using the command line
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
helm install ring-mqtt \
--set env.TZ="America/New York" \
TrueCharts/ring-mqtt
```
#### Configure using a yaml file
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install ring-mqtt TrueCharts/ring-mqtt -f values.yaml
```
#### Connecting to other charts
If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/linking-apps) quick-start guide.
## Support
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Quick-Start%20Guides/Important-MUST-READ).
- See the [Website](https://truecharts.org)
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
---
## Sponsor TrueCharts
TrueCharts can only exist due to the incredible effort of our staff.
Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can!
---
All Rights Reserved - The TrueCharts Project

View File

@@ -0,0 +1,60 @@
# Installation Notes
- Follow the prerequisite guides below before attempting `Ring-MQTT` installation.
## MQTT setup
- I used the chart called `mosquitto` install it as normal and set `Authentication` to **true**. here's the [auth guide](https://truecharts.org/docs/charts/stable/mosquitto/setup-guide).
## Ring-MQTT setup
- `RINGTOKEN` can be left blank as you can auth through the temporarily web interface which is just for the authorization of your ring account.
- Go to `http://SCALE_IP:55123`.
- Set `MQTTHOST` to **mosquitto.ix-mosquitto.svc.cluster.local**.
- Set `MQTTPORT` to **1883**.
- Set `MQTTUSER` to **user_name** from the authentication setup.
- Set `MQTTPASSWORD` to **user_pass** from the authentication setup.
- Set `ENABLECAMERAS` to **true** to enable cameras.
- Set `SNAPSHOTMODE` to **Auto** to optimize based on high vs low-power Ring devices.
- Set `ENABLEMODES` to **false**.
- Set `ENABLEPANIC` to **false**.
- Set `BEAMDURATION` to **0**.
- Leave `DISARMCODE` blank.
- Leave `RINGLOCATIONIDS` blank.
## Home-assistant setup
- Install the chart `home-assistant` if you have not done so.
- In home-assistant go to settings -> devices & integrations -> click add integration -> search for `mqtt`.
- Set `broker` to `mosquitto.ix-mosquitto.svc.cluster.local`.
- Set `port` to `1883`.
- Set `username` and `password` to the MQTT auth user and pass.
- Set the `MQTT options` as needed.
- Shell into home-assistant, use truetool.sh or other means to modify the file `/config/configuration.yaml`.
- Add the following code.
```yaml
shell_command:
ring_snap: "ffmpeg -y -i {{RTSP_URL}} -vframes 1 {{fileDirName}}"
```
- Create a new dir called `www` in `/config/`.
- Validate home-assistant configuration in `developer tools` and if passes; click on restart to use the service `ring_snap` in automations.
- Here's a sample on how to create a `live snapshot` automation.
- This will override the previous image if saved as `/config/www/snapshot.jpg`
```yaml
service: shell_command.ring_snap
data:
RTSP_URL: "{{ states.sensor.front_door_info.attributes.stream_Source }}"
fileDirName: "/config/www/snapshot.jpg"
```
- Note: You **must** save the file in `/config/www/` or set the option to allow other dirs for home-assistant to be used.
- Now you can create a live snapshot automation in `home-assistant`.

View File

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

View File

@@ -0,0 +1,232 @@
# Include{groups}
portals: {}
questions:
# Include{global}
# Include{controller}
# Include{controllerDeployment}
# Include{replicas}
# Include{replica1}
# Include{strategy}
# Include{recreate}
# Include{controllerExpert}
# Include{controllerExpertExtraArgs}
- variable: secretEnv
group: "Container Configuration"
label: "Image Secrets"
schema:
additional_attrs: true
type: dict
attrs:
- variable: RINGTOKEN
label: "RINGTOKEN"
description: "RINGTOKEN can be left blank for web authenticated."
schema:
type: string
private: true
default: ""
- variable: MQTTUSER
label: "MQTTUSER"
description: "Set a username for your MQTT instance."
schema:
type: string
default: ""
- variable: MQTTPASSWORD
label: "MQTTPASSWORD"
description: "Set a password for your MQTT instance."
schema:
type: string
default: ""
private: true
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: MQTTHOST
label: "MQTTHOST"
description: "Set the MQTT host cluster url or ip. ex: `mosquitto.ix-mosquitto.svc.cluster.local`."
schema:
type: string
default: ""
- variable: MQTTPORT
label: "MQTTPORT"
description: "Set MQTTPORT to the port that your MQTT uses."
schema:
type: int
default: 1883
- variable: ENABLECAMERAS
label: "ENABLECAMERAS"
description: "Default false since the native Ring component for Home Assistant supports cameras, set to true to enable camera/chime support in this add-on. Access to Chimes cannot be granted to shared users so Chime support requires use of the primary Ring account."
schema:
type: boolean
default: false
- variable: SNAPSHOTMODE
label: "SNAPSHOTMODE"
description: "Set SNAPSHOTMODE to [`Auto``, `Motion`, `Interval`, `All`] or default `disabled`"
schema:
type: string
default: "disabled"
enum:
- value: disabled
description: Disabled
- value: auto
description: Auto
- value: motion
description: Motion
- value: interval
description: Interval
- value: all
description: All
- variable: ENABLEMODES
label: "ENABLEMODES"
description: "Enable support for Location Modes for sites without a Ring Alarm Panel."
schema:
type: boolean
default: false
- variable: ENABLEPANIC
label: "ENABLEPANIC"
description: "Enable panic buttons on Alarm Control Panel device."
schema:
type: boolean
default: false
- variable: BEAMDURATION
label: "BEAMDURATION"
description: "Container Variable BEAMDURATION"
schema:
type: string
default: "0"
- variable: DISARMCODE
label: "DISARMCODE"
description: "Used only with Home Assistant, when defined this option causes the Home Assistant Alarm Control Panel integration to require entering this code to disarm the alarm"
schema:
type: string
default: ""
- variable: RINGLOCATIONIDS
label: "RINGLOCATIONIDS"
description: "Array of location Ids in format: [`loc-id`, `loc-id2`], see [Limiting Locations](https://github.com/tsightler/ring-mqtt/wiki/Configuration-Details#limiting-locations) for details."
schema:
type: string
default: ""
# Include{containerConfig}
# Include{serviceRoot}
- variable: main
label: "Main Service"
description: "The Primary service on which the healthcheck runs, often the webUI"
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 55123
required: true
# Include{advancedPortHTTP}
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 55123
- variable: rtsp
label: "RCON Service"
description: "The Primary service on which the healthcheck runs, often the webUI"
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelector}
- variable: rtsp
label: "RTSP Service Port Configuration"
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 8554
required: true
# Include{advancedPortTCP}
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 8554
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
- variable: data
label: "data Storage"
description: "Data Path"
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
# Include{persistenceAdvanced}
# Include{persistenceList}
# Include{ingressList}
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
# Include{securityContextAdvanced}
# Include{podSecurityContextRoot}
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{documentation}

View File

@@ -1,3 +1,21 @@
image:
pullPolicy: IfNotPresent
repository: tccr.io/truecharts/ring-mqtt
tag: 5.0.3@sha256:a089c8c1514c5c80cc2fc1fa529f633290538a963df5e3d0c7c93b14fd92b633
podSecurityContext:
runAsGroup: 0
runAsUser: 0
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
secretEnv:
RINGTOKEN: ""
MQTTUSER: ""
MQTTPASSWORD: ""
env:
BEAMDURATION: "0"
DISARMCODE: ""
@@ -5,39 +23,28 @@ env:
ENABLEMODES: "false"
ENABLEPANIC: "false"
MQTTHOST: ""
MQTTPASSWORD: ""
MQTTPORT: "1883"
MQTTUSER: ""
RINGLOCATIONIDS: ""
RINGTOKEN: ""
SNAPSHOTMODE: disabled
image:
pullPolicy: IfNotPresent
repository: tccr.io/truecharts/ring-mqtt
tag: latest@sha256:fe9beb0313fd81f26e698e7b528ae13eab5e74f65fade8d51f626c3fc272e066
service:
main:
ports:
main:
protocol: HTTP
targetPort: 55123
port: 55123
rtsp:
ports:
rtsp:
protocol: TCP
targetPort: 8554
port: 8554
persistence:
data:
enabled: true
mountPath: /data
podSecurityContext:
runAsGroup: 0
runAsUser: 0
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
service:
main:
enabled: false
ports:
main:
enabled: false
portal:
enabled: false