mirror of
https://github.com/k8s-at-home/charts.git
synced 2025-02-03 07:49:03 +00:00
[wmbusmeters] Adding wmbusmeters chart (#1143)
* Adding wmbusmeters chart
This commit is contained in:
parent
e4f3894a05
commit
2ba410d4e7
26
charts/stable/wmbusmeters/.helmignore
Normal file
26
charts/stable/wmbusmeters/.helmignore
Normal file
@ -0,0 +1,26 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
# OWNERS file for Kubernetes
|
||||
OWNERS
|
||||
# helm-docs templates
|
||||
*.gotmpl
|
18
charts/stable/wmbusmeters/Chart.yaml
Normal file
18
charts/stable/wmbusmeters/Chart.yaml
Normal file
@ -0,0 +1,18 @@
|
||||
apiVersion: v2
|
||||
appVersion: 1.4.1
|
||||
description: Wmbusmeters receives and decodes C1,T1 or S1 telegrams (using the wireless mbus protocol) to acquire utility meter readings.
|
||||
name: wmbusmeters
|
||||
version: 1.0.0
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
keywords:
|
||||
- wmbusmeters
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/wmbusmeters
|
||||
sources:
|
||||
- https://github.com/weetmuts/wmbusmeters
|
||||
maintainers:
|
||||
- name: brujoand
|
||||
email: anders@brujordet.no
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.k8s-at-home.com
|
||||
version: 4.0.0
|
148
charts/stable/wmbusmeters/README.md
Normal file
148
charts/stable/wmbusmeters/README.md
Normal file
@ -0,0 +1,148 @@
|
||||
# wmbusmeters
|
||||
|
||||
![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 1.4.1](https://img.shields.io/badge/AppVersion-1.4.1-informational?style=flat-square)
|
||||
|
||||
Wmbusmeters receives and decodes C1,T1 or S1 telegrams (using the wireless mbus protocol) to acquire utility meter readings.
|
||||
|
||||
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
|
||||
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/weetmuts/wmbusmeters>
|
||||
|
||||
## Requirements
|
||||
|
||||
Kubernetes: `>=1.16.0-0`
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| https://library-charts.k8s-at-home.com | common | 4.0.0 |
|
||||
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm repo add k8s-at-home https://k8s-at-home.com/charts/
|
||||
helm repo update
|
||||
helm install wmbusmeters k8s-at-home/wmbusmeters
|
||||
```
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `wmbusmeters`
|
||||
|
||||
```console
|
||||
helm install wmbusmeters k8s-at-home/wmbusmeters
|
||||
```
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall the `wmbusmeters` deployment
|
||||
|
||||
```console
|
||||
helm uninstall wmbusmeters
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
|
||||
|
||||
## Configuration
|
||||
|
||||
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/k8s-at-home/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).
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
```console
|
||||
helm install wmbusmeters \
|
||||
--set env.TZ="America/New York" \
|
||||
k8s-at-home/wmbusmeters
|
||||
```
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||
|
||||
```console
|
||||
helm install wmbusmeters k8s-at-home/wmbusmeters -f values.yaml
|
||||
```
|
||||
|
||||
## Custom configuration
|
||||
|
||||
**IMPORTANT NOTE:** a rtlsdr device must be accessible on the node where this pod runs, in order for this chart to function properly.
|
||||
|
||||
Wmbusmeters can auto-discover this dongle, but first you need to give the pod extended privileges:
|
||||
|
||||
```
|
||||
securityContext:
|
||||
privileged: true
|
||||
```
|
||||
|
||||
Alternatively you could mount the device directly, if you know what you are doing and can manually configure wmbusmetersto use it:
|
||||
|
||||
```yaml
|
||||
host-dev:
|
||||
enabled: true
|
||||
type: hostPath
|
||||
hostPath: /dev/device1
|
||||
mountPath: /dev/device1
|
||||
```
|
||||
|
||||
Second you will need to set a nodeAffinity rule, for example if you are using [node-feature-discovery](https://github.com/kubernetes-sigs/node-feature-discovery):
|
||||
|
||||
```yaml
|
||||
nodeSelector:
|
||||
feature.node.kubernetes.io/custom-rtl: "true"
|
||||
```
|
||||
|
||||
or by simply labeling the node which has the usb dongle:
|
||||
|
||||
```yaml
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: app
|
||||
operator: In
|
||||
values:
|
||||
- rtlsdr-dongle
|
||||
```
|
||||
|
||||
## Values
|
||||
|
||||
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| config | string | `"loglevel=normal\ndevice=rtlwmbus\nlistento=t1\nlogtelegrams=false\nformat=json\nmeterfiles=/wmbusmeters_data/logs/meter_readings\nmeterfilesaction=overwrite\nlogfile=/wmbusmeters_data/logs/wmbusmeters.log\n"` | Set the default config for wmbusmeters, see: https://github.com/weetmuts/wmbusmeters/blob/master/README.md |
|
||||
| env | object | See below | environment variables. |
|
||||
| env.TZ | string | `"UTC"` | Set the container timezone |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
|
||||
| image.repository | string | `"weetmuts/wmbusmeters"` | image repository |
|
||||
| image.tag | string | `"release-1.4.1-amd64"` | image tag |
|
||||
| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. |
|
||||
| securityContext.privileged | bool | `true` | (bool) Privileged securityContext may be required if USB controller is accessed directly through the host machine |
|
||||
| wmbusmeters | list | `[{"config":"name=watermeter\ntype=multical21\nid=1234567\nkey=000000000000000000000000\n","name":"watermeter"}]` | Set the config for individual meters to read, see: https://github.com/weetmuts/wmbusmeters/blob/master/README.md |
|
||||
|
||||
## Changelog
|
||||
|
||||
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common#changelog).
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### [1.0.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Initial version
|
||||
|
||||
[1.0.0]: #100
|
||||
|
||||
## Support
|
||||
|
||||
- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
|
||||
- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
|
||||
- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
|
||||
- Join our [Discord](https://discord.gg/sTMX7Vh) community
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
|
146
charts/stable/wmbusmeters/README.md.gotmpl
Normal file
146
charts/stable/wmbusmeters/README.md.gotmpl
Normal file
@ -0,0 +1,146 @@
|
||||
{{- define "custom.repository.organization" -}}
|
||||
k8s-at-home
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.repository.url" -}}
|
||||
https://github.com/k8s-at-home/charts
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.helm.url" -}}
|
||||
https://k8s-at-home.com/charts/
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.helm.path" -}}
|
||||
{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.notes" -}}
|
||||
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.requirements" -}}
|
||||
## Requirements
|
||||
|
||||
{{ template "chart.kubeVersionLine" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.dependencies" -}}
|
||||
## Dependencies
|
||||
|
||||
{{ template "chart.requirementsTable" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.install.tldr" -}}
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
|
||||
helm repo update
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.install" -}}
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `{{ template "chart.name" . }}`
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.uninstall" -}}
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall the `{{ template "chart.name" . }}` deployment
|
||||
|
||||
```console
|
||||
helm uninstall {{ template "chart.name" . }}
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.header" -}}
|
||||
## Configuration
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.readValues" -}}
|
||||
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/k8s-at-home/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).
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.example.set" -}}
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} \
|
||||
--set env.TZ="America/New York" \
|
||||
{{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.example.file" -}}
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.valuesSection" -}}
|
||||
## Values
|
||||
|
||||
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
|
||||
|
||||
{{ template "chart.valuesTable" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.support" -}}
|
||||
## Support
|
||||
|
||||
- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
|
||||
- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
|
||||
- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
|
||||
- Join our [Discord](https://discord.gg/sTMX7Vh) community
|
||||
{{- end -}}
|
||||
|
||||
{{ template "chart.header" . }}
|
||||
|
||||
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
|
||||
|
||||
{{ template "chart.description" . }}
|
||||
|
||||
{{ template "custom.notes" . }}
|
||||
|
||||
{{ template "chart.sourcesSection" . }}
|
||||
|
||||
{{ template "custom.requirements" . }}
|
||||
|
||||
{{ template "custom.dependencies" . }}
|
||||
|
||||
{{ template "custom.install.tldr" . }}
|
||||
|
||||
{{ template "custom.install" . }}
|
||||
|
||||
{{ template "custom.uninstall" . }}
|
||||
|
||||
{{ template "custom.configuration.header" . }}
|
||||
|
||||
{{ template "custom.configuration.readValues" . }}
|
||||
|
||||
{{ template "custom.configuration.example.set" . }}
|
||||
|
||||
{{ template "custom.configuration.example.file" . }}
|
||||
|
||||
{{ template "custom.custom.configuration" . }}
|
||||
|
||||
{{ template "custom.valuesSection" . }}
|
||||
|
||||
{{ template "custom.changelog" . }}
|
||||
|
||||
{{ template "custom.support" . }}
|
||||
|
||||
{{ template "helm-docs.versionFooter" . }}
|
||||
{{ "" }}
|
19
charts/stable/wmbusmeters/README_CHANGELOG.md.gotmpl
Normal file
19
charts/stable/wmbusmeters/README_CHANGELOG.md.gotmpl
Normal file
@ -0,0 +1,19 @@
|
||||
{{- define "custom.changelog.header" -}}
|
||||
## Changelog
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.changelog" -}}
|
||||
{{ template "custom.changelog.header" . }}
|
||||
|
||||
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common#changelog).
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### [1.0.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- Initial version
|
||||
|
||||
[1.0.0]: #100
|
||||
{{- end -}}
|
47
charts/stable/wmbusmeters/README_CONFIG.md.gotmpl
Normal file
47
charts/stable/wmbusmeters/README_CONFIG.md.gotmpl
Normal file
@ -0,0 +1,47 @@
|
||||
{{- define "custom.custom.configuration.header" -}}
|
||||
## Custom configuration
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.custom.configuration" -}}
|
||||
{{ template "custom.custom.configuration.header" . }}
|
||||
|
||||
**IMPORTANT NOTE:** a rtlsdr device must be accessible on the node where this pod runs, in order for this chart to function properly.
|
||||
|
||||
Wmbusmeters can auto-discover this dongle, but first you need to give the pod extended privileges:
|
||||
|
||||
```
|
||||
securityContext:
|
||||
privileged: true
|
||||
```
|
||||
|
||||
Alternatively you could mount the device directly, if you know what you are doing and can manually configure wmbusmetersto use it:
|
||||
|
||||
```yaml
|
||||
host-dev:
|
||||
enabled: true
|
||||
type: hostPath
|
||||
hostPath: /dev/device1
|
||||
mountPath: /dev/device1
|
||||
```
|
||||
|
||||
Second you will need to set a nodeAffinity rule, for example if you are using [node-feature-discovery](https://github.com/kubernetes-sigs/node-feature-discovery):
|
||||
|
||||
```yaml
|
||||
nodeSelector:
|
||||
feature.node.kubernetes.io/custom-rtl: "true"
|
||||
```
|
||||
|
||||
or by simply labeling the node which has the usb dongle:
|
||||
|
||||
```yaml
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: app
|
||||
operator: In
|
||||
values:
|
||||
- rtlsdr-dongle
|
||||
```
|
||||
{{- end -}}
|
1
charts/stable/wmbusmeters/templates/NOTES.txt
Normal file
1
charts/stable/wmbusmeters/templates/NOTES.txt
Normal file
@ -0,0 +1 @@
|
||||
{{- include "common.notes.defaultNotes" . -}}
|
33
charts/stable/wmbusmeters/templates/common.yaml
Normal file
33
charts/stable/wmbusmeters/templates/common.yaml
Normal file
@ -0,0 +1,33 @@
|
||||
{{/* Make sure all variables are set properly */}}
|
||||
{{- include "common.values.setup" . }}
|
||||
|
||||
{{/* Append the hardcoded settings */}}
|
||||
{{- define "wmbusmeters.harcodedValues" -}}
|
||||
|
||||
service:
|
||||
main:
|
||||
enabled: false
|
||||
persistence:
|
||||
wmbusmeters-config:
|
||||
enabled: "true"
|
||||
mountPath: "/wmbusmeters_data/etc/wmbusmeters.conf"
|
||||
subPath: "wmbusmeters.conf"
|
||||
type: "custom"
|
||||
volumeSpec:
|
||||
configMap:
|
||||
name: {{ printf "%v-config" (include "common.names.fullname" .) }}
|
||||
{{- range .Values.wmbusmeters }}
|
||||
device-{{ .name }}:
|
||||
enabled: "true"
|
||||
mountPath: "/wmbusmeters_data/etc/wmbusmeters.d/{{ .name }}.conf"
|
||||
subPath: "device.conf"
|
||||
type: "custom"
|
||||
volumeSpec:
|
||||
configMap:
|
||||
name: {{ printf "%v-%v" (include "common.names.fullname" $) .name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- $_ := mergeOverwrite .Values (include "wmbusmeters.harcodedValues" . | fromYaml) -}}
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "common.all" . }}
|
25
charts/stable/wmbusmeters/templates/configmap.yaml
Normal file
25
charts/stable/wmbusmeters/templates/configmap.yaml
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}-config
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
data:
|
||||
wmbusmeters.conf: |
|
||||
{{- tpl .Values.config $ | nindent 4 }}
|
||||
|
||||
{{- range .Values.wmbusmeters }}
|
||||
{{- $name := printf "%s-%s" (include "common.names.fullname" $) .name }}
|
||||
{{- $labels := include "common.labels" $ }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ $name }}
|
||||
labels:
|
||||
{{- $labels | nindent 4 }}
|
||||
data:
|
||||
device.conf: |
|
||||
{{- .config | nindent 4 }}
|
||||
{{- end }}
|
54
charts/stable/wmbusmeters/values.yaml
Normal file
54
charts/stable/wmbusmeters/values.yaml
Normal file
@ -0,0 +1,54 @@
|
||||
#
|
||||
# IMPORTANT NOTE
|
||||
#
|
||||
# This chart inherits from our common library chart. You can check the default values/options here:
|
||||
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
|
||||
#
|
||||
|
||||
image:
|
||||
# -- image repository
|
||||
repository: weetmuts/wmbusmeters
|
||||
# -- image tag
|
||||
tag: release-1.4.1-amd64
|
||||
# -- image pull policy
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
# -- environment variables.
|
||||
# @default -- See below
|
||||
env:
|
||||
# -- Set the container timezone
|
||||
TZ: UTC
|
||||
|
||||
securityContext:
|
||||
# -- (bool) Privileged securityContext may be required if USB controller is accessed directly through the host machine
|
||||
privileged: true
|
||||
|
||||
# -- Set the default config for wmbusmeters, see: https://github.com/weetmuts/wmbusmeters/blob/master/README.md
|
||||
config: |
|
||||
loglevel=normal
|
||||
device=rtlwmbus
|
||||
listento=t1
|
||||
logtelegrams=false
|
||||
format=json
|
||||
meterfiles=/wmbusmeters_data/logs/meter_readings
|
||||
meterfilesaction=overwrite
|
||||
logfile=/wmbusmeters_data/logs/wmbusmeters.log
|
||||
|
||||
# -- Set the config for individual meters to read, see: https://github.com/weetmuts/wmbusmeters/blob/master/README.md
|
||||
wmbusmeters:
|
||||
- name: watermeter
|
||||
config: |
|
||||
name=watermeter
|
||||
type=multical21
|
||||
id=1234567
|
||||
key=000000000000000000000000
|
||||
|
||||
|
||||
# -- Configure persistence settings for the chart under this key.
|
||||
# @default -- See values.yaml
|
||||
persistence:
|
||||
host-dev:
|
||||
enabled: false
|
||||
type: hostPath
|
||||
hostPath: /dev/device1
|
||||
mountPath: /dev/device1
|
Loading…
Reference in New Issue
Block a user