Compare commits

...

53 Commits

Author SHA1 Message Date
193939bd06 Merge pull request #66 from nikdoof/renovate/workflows-actions-checkout-5.x
[workflows] Update actions/checkout action to v5
2025-10-01 17:25:00 +01:00
814d439ea1 Merge pull request #67 from nikdoof/renovate/workflows-actions-setup-python-6.x
[workflows] Update actions/setup-python action to v6
2025-10-01 17:24:42 +01:00
renovate[bot]
fc76008f70 [workflows] Update actions/setup-python action to v6 2025-10-01 03:27:29 +00:00
renovate[bot]
7d9729648f [workflows] Update actions/checkout action to v5 2025-10-01 03:27:25 +00:00
f3cc3e190c Merge pull request #65 from nikdoof/renovate/external-minor-dep
Update external minor dep
2025-03-03 09:43:37 +00:00
renovate[bot]
b176c1baa1 Update external minor dep 2025-03-01 01:38:04 +00:00
3c73ffec61 Merge pull request #64 from nikdoof/renovate/external-minor-dep
Update helm/kind-action action to v1.12.0
2025-01-04 10:06:49 +00:00
renovate[bot]
854de227c6 Update helm/kind-action action to v1.12.0 2025-01-01 01:16:59 +00:00
9e7e126e3b Merge pull request #63 from nikdoof/renovate/external-minor-dep
Update helm/kind-action action to v1.10.0
2024-05-02 15:49:12 +01:00
renovate[bot]
3477414580 Update helm/kind-action action to v1.10.0 2024-05-01 00:28:16 +00:00
7c9da31698 Merge pull request #62 from nikdoof/renovate/workflows-azure-setup-helm-4.x
[workflows] Update azure/setup-helm action to v4
2024-04-01 09:22:16 +01:00
renovate[bot]
68bac6536f [workflows] Update azure/setup-helm action to v4 2024-04-01 01:29:53 +00:00
7c8fec46d2 Merge pull request #61 from nikdoof/renovate/external-minor-dep
Update helm/kind-action action to v1.9.0
2024-03-03 07:52:22 +00:00
renovate[bot]
057cff3c53 Update helm/kind-action action to v1.9.0 2024-03-01 02:39:13 +00:00
9e381e07bf Merge pull request #60 from nikdoof/renovate/workflows-actions-setup-python-5.x
[workflows] Update actions/setup-python action to v5
2024-01-11 18:21:54 +00:00
28b2e73a1c Merge pull request #59 from nikdoof/renovate/external-minor-dep
Update helm/chart-releaser-action action to v1.6.0
2024-01-11 18:21:45 +00:00
renovate[bot]
49aead8392 [workflows] Update actions/setup-python action to v5 2024-01-01 00:43:52 +00:00
renovate[bot]
5736e631b1 Update helm/chart-releaser-action action to v1.6.0 2024-01-01 00:43:49 +00:00
0cb9253cf2 Merge pull request #58 from nikdoof/renovate/external-patch-dep
Update helm/chart-testing-action action to v2.6.1
2023-12-03 13:19:31 +00:00
renovate[bot]
ae4baa5a8d Update helm/chart-testing-action action to v2.6.1 2023-12-01 02:10:23 +00:00
ad896bfc25 Merge pull request #57 from nikdoof/renovate/external-minor-dep
Update helm/chart-testing-action action to v2.6.0
2023-11-01 10:06:24 +00:00
renovate[bot]
c3f4320bc9 Update helm/chart-testing-action action to v2.6.0 2023-11-01 01:29:18 +00:00
e577d114a0 Merge pull request #56 from nikdoof/renovate/workflows-actions-checkout-4.x
[workflows] Update actions/checkout action to v4
2023-10-03 09:43:47 +01:00
renovate[bot]
ee0dc43acb [workflows] Update actions/checkout action to v4 2023-10-01 01:16:45 +00:00
12d667302d Merge pull request #55 from nikdoof/renovate/external-minor-dep
Update helm/kind-action action to v1.8.0
2023-09-01 13:56:38 +01:00
71a2a2a3fe Don't attempt to install the CRDs if we have no changes 2023-09-01 13:55:53 +01:00
renovate[bot]
a2cfdc0fa5 Update helm/kind-action action to v1.8.0 2023-09-01 00:40:21 +00:00
cc49faf2f2 Merge pull request #54 from nikdoof/renovate/external-minor-dep
Update helm/kind-action action to v1.7.0
2023-07-06 09:59:48 +01:00
renovate[bot]
7d49c188c9 Update helm/kind-action action to v1.7.0 2023-07-01 07:29:50 +00:00
9a201834c3 Merge pull request #53 from nikdoof/renovate/external-minor-dep
Update external minor dep
2023-05-01 07:19:01 +01:00
renovate[bot]
ee8767e7a6 Update external minor dep 2023-05-01 02:27:29 +00:00
b7dc73097a [all] Update README 2023-03-06 11:05:51 +00:00
408afd720f Merge pull request #50 from nikdoof/common-update
[all] Update Common to 4.5.3
2023-03-06 10:46:35 +00:00
c1fc20c281 [all] Remove uneeded CRDs 2023-03-06 10:42:21 +00:00
3d3535cb3b [all] Install CRDs for testing 2023-03-06 10:38:14 +00:00
cc91cc2f98 [all] Switch to kind for testing cluster 2023-03-06 10:28:21 +00:00
37615237d6 [hg612-exporter] Fix dashboard configmap 2023-03-06 10:25:58 +00:00
30256c3ae5 [vmware-exporter] Fix dashboard configmap 2023-03-06 10:24:52 +00:00
2f3d052cd5 [vmware-exporter] Update common to 4.5.3 2023-03-06 10:18:51 +00:00
e091d3adbc [idrac6] Update common to 4.5.3 2023-03-06 10:17:28 +00:00
bd0a2d1155 [hg612-exporter] Update common to 4.5.3 2023-03-06 10:16:40 +00:00
e2bd3ff0b8 [antennas] Update common to 4.5.3 2023-03-06 10:14:13 +00:00
4436e99f22 [all] Fix lint-test workflow 2023-03-06 10:06:33 +00:00
41eeb4795d [aaisp-exporter] Update to common 4.5.3 2023-03-06 10:04:22 +00:00
acb65e778e Update testing (#49) 2023-03-06 10:01:35 +00:00
3e65c6aff7 [plex-exporter] Update to common, add loglevel argument (#48)
* [plex-exporter] Update to common, add loglevel argument

* Fix empty lines

* Clean linting

* Add missing repo to ct
2023-03-06 09:28:09 +00:00
d9ed2b2bed Bump common-chart to newest common version 2023-03-05 08:31:59 +00:00
855c04e7f3 Add PrometheusRule and ServiceMonitor to common (#47)
* Add PrometheusRule and ServiceMonitor to common

* Bump Kind version
2023-03-05 08:29:38 +00:00
renovate[bot]
067d636a28 Update external patch dep (#46)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-10-06 11:15:55 +01:00
renovate[bot]
37bfd4bdd5 Update helm/chart-testing-action action to v2.3.0 (#45)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-09-01 07:50:30 +01:00
396816c4a0 [all] Fix PrometheusRule and ServiceMonitor after Common upgrade 2022-08-29 08:07:11 +01:00
1b7d8fd3e2 [all] Switch to our common chart version 2022-08-22 16:51:13 +01:00
3e2b990951 Remove old, unsupported charts 2022-08-22 16:48:00 +01:00
68 changed files with 983 additions and 1516 deletions

1
.github/ct.yaml vendored
View File

@@ -8,3 +8,4 @@ chart-repos:
- k8s-at-home-libraries=https://library-charts.k8s-at-home.com
- k8s-at-home=https://k8s-at-home.com/charts
- jetstack=https://charts.jetstack.io
- nikdoof=https://nikdoof.github.io/helm-charts/

View File

@@ -2,26 +2,31 @@ name: Lint and Test Charts
on: pull_request
env:
K8S_VERSION: 1.22
HELM_VERSION: 3.9.2
PYTHON_VERSION: 3.11
jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Install Helm
uses: azure/setup-helm@v3
uses: azure/setup-helm@v4
with:
version: v3.6.3
version: "v${{ env.HELM_VERSION }}"
- uses: actions/setup-python@v4
- uses: actions/setup-python@v6
with:
python-version: 3.7
python-version: "${{ env.PYTHON_VERSION }}"
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.2.1
uses: helm/chart-testing-action@v2.7.0
- name: Run chart-testing (list-changed)
id: list-changed
@@ -34,15 +39,19 @@ jobs:
- name: Run chart-testing (lint)
run: ct lint --config .github/ct.yaml
- name: Create k3d cluster
uses: nolar/setup-k3d-k3s@v1
with:
version: v1.19
- name: Create k8s Kind Cluster
uses: helm/kind-action@v1.12.0
if: steps.list-changed.outputs.changed == 'true'
- name: Remove node taints
run: |
kubectl taint --all=true nodes node.cloudprovider.kubernetes.io/uninitialized- || true
if: steps.list-changed.outputs.changed == 'true'
- name: Install CRDs
run: |
cat crds/*.yaml | kubectl apply -f -
if: steps.list-changed.outputs.changed == 'true'
- name: Run chart-testing (install)
run: ct install --config .github/ct.yaml

View File

@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v5
with:
fetch-depth: 0
@@ -20,12 +20,12 @@ jobs:
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Install Helm
uses: azure/setup-helm@v3
uses: azure/setup-helm@v4
with:
version: v3.4.0
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.4.0
uses: helm/chart-releaser-action@v1.7.0
with:
charts_repo_url: https://nikdoof.github.io/helm-charts
env:

View File

@@ -22,15 +22,13 @@ You can then run `helm search nikdoof` to see the charts.
See [charts folder](./charts) for a complete list.
* [aaisp2mqtt](./charts/aaisp2mqtt) - A tool to pull information from [Andrews & Arnold](https://www.aa.net.uk/) CHAOSv2 API and output to MQTT.
* [idrac6](./charts/idrac6) - A VNC/Web UI container to wrap around the outdated Java/KVM solution in Dell iDRAC6, and make it HTML5.
* [vsphere-influxdb-go](./charts/vsphere-influxdb-go) - A vSphere statistics exporter that outputs to InfluxDB.
* [zigbee2mqttassistant](./charts/zigbee2mqttassistant) - A WebUI for Zigbee2MQTT.
* [hg612-exporter](./charts/hg612-exporter) - A Prometheus exporter for HG612 xDSL Modems.
* [aaisp-exporter](./charts/aaisp-exporter) - A Prometheus exporter for [Andrews & Arnold](https://www.aa.net.uk/) CHAOSv2 API.
* [antennas](./charts/antennas) - Proxy mapping service for allowing Plex to use TVHeadend.
* [hg612-exporter](./charts/hg612-exporter) - A Prometheus exporter for HG612 xDSL Modems.
* [idrac6](./charts/idrac6) - A VNC/Web UI container to wrap around the outdated Java/KVM solution in Dell iDRAC6, and make it HTML5.
* [mqtt-exporter](./charts/mqtt-exporter) - A generic Prometheus exporter for MQTT data, useful to export Home Assistant state data via MQTT.
* [plex-exporter](./charts/plex-exporter) - A Prometheus exporter for Plex Media Server.
* [vmware-exporter](./charts/vmware-exporter) - A Prometheus exporter for VMware vSphere.
* [mqtt-exporter](./charts/mqtt-exporter) - A generic Prometheus exporter for MQTT data.
## License

View File

@@ -2,17 +2,17 @@ apiVersion: v2
appVersion: 0.2.1
description: A prometheus exporter for the Andrew & Arnold CHAOS API
name: aaisp-exporter
version: 0.2.0
version: 0.2.3
kubeVersion: ">=1.16.0-0"
keywords:
- aaisp-exporter
- aaisp-exporter
home: https://github.com/nikdoof/helm-charts/tree/master/charts/aaisp-exporter
sources:
- https://github.com/nikdoof/aaisp-chaos
- https://github.com/nikdoof/aaisp-chaos
maintainers:
- name: nikdoof
email: andy@tensixtyone.com
- name: nikdoof
email: andy@tensixtyone.com
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 4.3.0
- name: common
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.3

View File

@@ -1,27 +0,0 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: {{ include "common.names.fullname" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.metrics.prometheusRule.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
groups:
- name: {{ include "common.names.fullname" . }}
rules:
- alert: AAISPExporterAbsent
annotations:
description: AAISP Exporter has disappeared from Prometheus service discovery.
summary: AAISP Exporter is down.
expr: |
absent(up{job=~".*{{ include "common.names.fullname" . }}.*"} == 1)
for: 5m
labels:
severity: critical
{{- with .Values.metrics.prometheusRule.rules }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}

View File

@@ -1,24 +0,0 @@
{{- if .Values.metrics.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "common.names.fullname" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.metrics.serviceMonitor.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
selector:
matchLabels:
{{- include "common.labels.selectorLabels" . | nindent 6 }}
endpoints:
- port: metrics
{{- with .Values.metrics.serviceMonitor.interval }}
interval: {{ . }}
{{- end }}
{{- with .Values.metrics.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ . }}
{{- end }}
path: /metrics
{{- end }}

View File

@@ -48,15 +48,15 @@ metrics:
prometheusRule:
enabled: false
labels: {}
# -- Configure additionial rules for the chart under this key.
# -- Configure additional rules for the chart under this key.
# @default -- See prometheusrules.yaml
rules: []
# - alert: aaispExporterAbsent
# annotations:
# description: aaisp Exporter has disappeared from Prometheus service discovery.
# summary: aaisp Exporter is down.
# expr: |
# absent(up{job=~".*aaispexporter.*"} == 1)
# for: 5m
# labels:
# severity: critical
rules:
- alert: AAISPExporterAbsent
annotations:
description: AAISP Exporter has disappeared from Prometheus service discovery.
summary: AAISP Exporter is down.
expr: |
absent(up{job=~".*{{ include "common.names.fullname" . }}.*"} == 1)
for: 5m
labels:
severity: critical

View File

@@ -1,22 +0,0 @@
# 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/

View File

@@ -1,15 +0,0 @@
apiVersion: v1
appVersion: "0.3.1"
description: Pulls data from the AAISP CHAOSv2 API into MQTT
name: aaisp2mqtt
version: 0.3.3
keywords:
- aaisp
- mqtt
home: https://github.com/nikdoof/aaisp2mqtt
sources:
- https://hub.docker.com/r/nikdoof/aaisp2mqtt/
- https://github.com/natm/aaisp2mqtt
maintainers:
- name: nikdoof
email: andy@tensixtyone.com

View File

@@ -1,44 +0,0 @@
# aaisp2mqtt
![Version: 0.3.2](https://img.shields.io/badge/Version-0.3.2-informational?style=flat-square) ![AppVersion: 0.3.1](https://img.shields.io/badge/AppVersion-0.3.1-informational?style=flat-square)
Pulls data from the AAISP CHAOSv2 API into MQTT
**Homepage:** <https://github.com/nikdoof/aaisp2mqtt>
## Maintainers
| Name | Email | Url |
| ---- | ------ | --- |
| nikdoof | andy@tensixtyone.com | |
## Source Code
* <https://hub.docker.com/r/nikdoof/aaisp2mqtt/>
* <https://github.com/natm/aaisp2mqtt>
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| aaisp | object | `{}` | |
| affinity | object | `{}` | |
| cronjob.concurrencyPolicy | string | `"Allow"` | |
| cronjob.failedJobsHistoryLimit | int | `1` | |
| cronjob.schedule | string | `"*/10 * * * *"` | |
| cronjob.successfulJobsHistoryLimit | int | `3` | |
| fullnameOverride | string | `""` | |
| homeassistant.enabled | bool | `false` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"nikdoof/aaisp2mqtt"` | |
| image.tag | string | `"0.3.1"` | |
| mqtt.authenticated | bool | `false` | |
| mqtt.port | int | `1883` | |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| tolerations | list | `[]` | |
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)

View File

@@ -1,4 +0,0 @@
mqtt:
broker: localhost
existingSecretName: aaisp2mqtt-secret

View File

@@ -1,9 +0,0 @@
aaisp:
username: test1@a
password: TesttestTest
mqtt:
broker: localhost
homeassistant:
enabled: true

View File

@@ -1,6 +0,0 @@
aaisp:
username: test1@a
password: TesttestTest
mqtt:
broker: localhost

View File

@@ -1,56 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "aaisp2mqtt.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "aaisp2mqtt.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "aaisp2mqtt.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "aaisp2mqtt.labels" -}}
app.kubernetes.io/name: {{ include "aaisp2mqtt.name" . }}
helm.sh/chart: {{ include "aaisp2mqtt.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "aaisp2mqtt.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "aaisp2mqtt.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,97 +0,0 @@
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: {{ include "aaisp2mqtt.fullname" . }}-cronjob
{{- if .Values.deploymentAnnotations }}
annotations:
{{- range $key, $value := .Values.deploymentAnnotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
{{- end }}
labels:
app.kubernetes.io/name: {{ include "aaisp2mqtt.name" . }}
helm.sh/chart: {{ include "aaisp2mqtt.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ include "aaisp2mqtt.name" . }}
spec:
schedule: {{ .Values.cronjob.schedule | quote }}
successfulJobsHistoryLimit: {{ .Values.cronjob.successfulJobsHistoryLimit }}
failedJobsHistoryLimit: {{ .Values.cronjob.failedJobsHistoryLimit }}
concurrencyPolicy: {{ .Values.cronjob.concurrencyPolicy }}
{{- if .Values.cronjob.startingDeadlineSeconds }}
startingDeadlineSeconds: {{ .Values.cronjob.startingDeadlineSeconds }}
{{- end }}
jobTemplate:
spec:
backoffLimit: 0
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "aaisp2mqtt.name" . }}
helm.sh/chart: {{ include "aaisp2mqtt.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ include "aaisp2mqtt.name" . }}
spec:
restartPolicy: Never
{{- if .Values.image.pullSecrets }}
imagePullSecrets:
{{- range .Values.image.pullSecrets }}
- name: {{ . }}
{{- end }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
resources:
{{ toYaml .Values.resources | indent 16 }}
env:
- name: AAISP_USERNAME
valueFrom:
secretKeyRef:
name: {{ default "aaisp2mqtt-secret" .Values.existingSecretName }}
key: aaisp.username
- name: AAISP_PASSWORD
valueFrom:
secretKeyRef:
name: {{ default "aaisp2mqtt-secret" .Values.existingSecretName }}
key: aaisp.password
- name: MQTT_BROKER
value: {{ .Values.mqtt.broker }}
- name: MQTT_PORT
value: "{{ default 1883 .Values.mqtt.port }}"
{{- if .Values.mqtt.authenticated }}
- name: MQTT_USERNAME
valueFrom:
secretKeyRef:
name: {{ default "aaisp2mqtt-secret" .Values.existingSecretName }}
key: mqtt.username
- name: MQTT_PASSWORD
valueFrom:
secretKeyRef:
name: {{ default "aaisp2mqtt-secret" .Values.existingSecretName }}
key: mqtt.password
{{- end }}
- name: MQTT_TOPIC_PREFIX
value: {{ default "aaisp" .Values.mqtt.topicPrefix }}
{{- if .Values.homeassistant.enabled }}
- name: HOMEASSISTANT_ENABLED
value: '{{ .Values.homeassistant.enabled }}'
{{- if .Values.homeassistant.discoveryPrefix }}
- name: HOMEASSISTANT_DISCOVERY_PREFIX
value: {{ .Values.homeassistant.discoveryPrefix }}
{{- end }}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 12 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{ toYaml . | indent 12 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{ toYaml . | indent 12 }}:
{{- end }}

View File

@@ -1,20 +0,0 @@
---
{{- if not (.Values.existingSecretName) }}
apiVersion: v1
kind: Secret
metadata:
name: aaisp2mqtt-secret
labels:
app.kubernetes.io/name: {{ include "aaisp2mqtt.name" . }}
helm.sh/chart: {{ include "aaisp2mqtt.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ include "aaisp2mqtt.name" . }}
type: Opaque
data:
aaisp.username: {{ .Values.aaisp.username | b64enc }}
aaisp.password: {{ .Values.aaisp.password | b64enc }}
{{- if .Values.mqtt.authenticated }}
mqtt.username: {{ .Values.mqtt.username | b64enc }}
mqtt.password: {{ .Values.mqtt.password | b64enc }}
{{- end }}
{{- end }}

View File

@@ -1,61 +0,0 @@
# Default values for aaisp2mqtt.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: nikdoof/aaisp2mqtt
tag: 0.3.1
pullPolicy: IfNotPresent
# imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
## Use a pre-existing secret for login information
##
# existingSecretName: existing-secret
## Connection details
##
aaisp: {}
# username: user1@a
# password: password
mqtt:
# broker: localhost
port: 1883
authenticated: false
# username: kube
# password: kube
# topicPrefix: aaisp
homeassistant:
enabled: false
# discoveryPrefix: homeassistant
cronjob:
schedule: "*/10 * * * *"
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 1
# startingDeadlineSeconds: 10
concurrencyPolicy: Allow
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: "4.2.0"
description: Antennas
name: antennas
version: 1.1.2
version: 1.1.4
kubeVersion: ">=1.16.0-0"
keywords:
- tvheadend
@@ -17,5 +17,5 @@ maintainers:
email: andy@tensixtyone.com
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 4.5.2
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.3

View File

@@ -2,10 +2,10 @@
apiVersion: v2
description: A simple wrapper chart around the common chart
name: common-chart
version: 1.2.2
version: 1.2.3
maintainers:
- name: nikdoof
dependencies:
- name: common
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.2
version: 4.5.3

View File

@@ -2,7 +2,7 @@ apiVersion: v2
name: common
description: Common chart library, based off KaH's common
type: library
version: 4.5.2
version: 4.5.3
kubeVersion: ">=1.16.0-0"
keywords:
- common

View File

@@ -55,4 +55,12 @@ Main entrypoint for the common library chart. It will render all underlying temp
{{- if .Values.secret -}}
{{ include "common.secret" . | nindent 0 }}
{{- end -}}
{{- if .Values.metrics.enabled -}}
{{ include "common.serviceMonitor" . | nindent 0 }}
{{- end -}}
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled -}}
{{ include "common.prometheusRule" . | nindent 0 }}
{{- end -}}
{{- end -}}

View File

@@ -1,4 +1,5 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
{{- define "common.prometheusRule" }}
---
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
@@ -12,15 +13,6 @@ spec:
groups:
- name: {{ include "common.names.fullname" . }}
rules:
- alert: PlexExporterAbsent
annotations:
description: Plex Exporter has disappeared from Prometheus service discovery.
summary: Plex Exporter is down.
expr: |
absent(up{job=~".*{{ include "common.names.fullname" . }}.*"} == 1)
for: 5m
labels:
severity: critical
{{- with .Values.metrics.prometheusRule.rules }}
{{- toYaml . | nindent 8 }}
{{- end }}

View File

@@ -1,4 +1,5 @@
{{- if .Values.metrics.enabled }}
{{- define "common.serviceMonitor" }}
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:

View File

@@ -472,6 +472,32 @@ resources: {}
# cpu: 100m
# memory: 128Mi
metrics:
# -- Enable metrics collections with serviceMonitor
# @default -- See values.yaml
enabled: false
serviceMonitor:
interval: 3m
scrapeTimeout: 1m
labels: {}
# -- Enable and configure Prometheus Rules for the chart under this key.
# @default -- See values.yaml
prometheusRule:
enabled: false
labels: {}
# -- Configure additionial rules for the chart under this key.
# @default -- See prometheusrules.yaml
rules: []
# - alert: SonarrDown
# annotations:
# description: Sonarr service is down.
# summary: Sonarr is down.
# expr: |
# sonarr_system_status == 0
# for: 5m
# labels:
# severity: critical
# -- The common chart supports several add-ons. These can be configured under this key.
# @default -- See below
addons:

View File

@@ -2,17 +2,17 @@ apiVersion: v2
appVersion: 0.1.2
description: A prometheus exporter for the HG612 modem
name: hg612-exporter
version: 1.2.0
version: 1.2.3
kubeVersion: ">=1.16.0-0"
keywords:
- hg612-exporter
- hg612-exporter
home: https://github.com/nikdoof/helm-charts/tree/master/charts/hg612-exporter
sources:
- https://github.com/nikdoof/hg612-exporter
- https://github.com/nikdoof/hg612-exporter
maintainers:
- name: nikdoof
email: andy@tensixtyone.com
- name: nikdoof
email: andy@tensixtyone.com
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 4.3.0
- name: common
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.3

View File

@@ -1,4 +1,5 @@
{{- if and .Values.metrics.enabled .Values.metrics.dashboards.create }}
{{- include "common.values.setup" . -}}
{{- $namespace := .Values.metrics.dashboards.namespace | default $.Release.Namespace }}
apiVersion: v1
kind: ConfigMap

View File

@@ -1,27 +0,0 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: {{ include "common.names.fullname" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.metrics.prometheusRule.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
groups:
- name: {{ include "common.names.fullname" . }}
rules:
- alert: HG612ExporterAbsent
annotations:
description: HG612 Exporter has disappeared from Prometheus service discovery.
summary: HG612 Exporter is down.
expr: |
absent(up{job=~".*{{ include "common.names.fullname" . }}.*"} == 1)
for: 5m
labels:
severity: critical
{{- with .Values.metrics.prometheusRule.rules }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}

View File

@@ -1,24 +0,0 @@
{{- if .Values.metrics.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "common.names.fullname" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.metrics.serviceMonitor.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
selector:
matchLabels:
{{- include "common.labels.selectorLabels" . | nindent 6 }}
endpoints:
- port: metrics
{{- with .Values.metrics.serviceMonitor.interval }}
interval: {{ . }}
{{- end }}
{{- with .Values.metrics.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ . }}
{{- end }}
path: /metrics
{{- end }}

View File

@@ -60,16 +60,16 @@ metrics:
labels: {}
# -- Configure additionial rules for the chart under this key.
# @default -- See prometheusrules.yaml
rules: []
# - alert: HG612ExporterAbsent
# annotations:
# description: HG612 Exporter has disappeared from Prometheus service discovery.
# summary: HG612 Exporter is down.
# expr: |
# absent(up{job=~".*hg612exporter.*"} == 1)
# for: 5m
# labels:
# severity: critical
rules:
- alert: HG612ExporterAbsent
annotations:
description: HG612 Exporter has disappeared from Prometheus service discovery.
summary: HG612 Exporter is down.
expr: |
absent(up{job=~".*{{ include "common.names.fullname" . }}.*"} == 1)
for: 5m
labels:
severity: critical
# -- Enable and configure Grafana dashboard ConfigMaps for the chart under this key.
# @default -- See values.yaml
dashboards:

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: "0.5.0"
description: iDRAC 6 web interface and VNC proxy
name: idrac6
version: 1.1.0
version: 1.1.2
kubeVersion: ">=1.16.0-0"
keywords:
- idrac6
@@ -14,5 +14,5 @@ maintainers:
email: andy@tensixtyone.com
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 4.3.0
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.3

View File

@@ -2,17 +2,17 @@ apiVersion: v2
appVersion: 1.0.0
description: A prometheus exporter for generic MQTT metrics
name: mqtt-exporter
version: 1.1.0
version: 1.1.2
kubeVersion: ">=1.16.0-0"
keywords:
- mqtt-exporter
- mqtt-exporter
home: https://github.com/nikdoof/helm-charts/tree/master/charts/mqtt-exporter
sources:
- https://github.com/kpetremann/mqtt-exporter
- https://github.com/kpetremann/mqtt-exporter
maintainers:
- name: nikdoof
email: andy@tensixtyone.com
- name: nikdoof
email: andy@tensixtyone.com
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 4.3.0
- name: common
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.2

View File

@@ -1,4 +1,5 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
{{- include "common.values.setup" . -}}
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:

View File

@@ -1,4 +1,5 @@
{{- if .Values.metrics.enabled }}
{{- include "common.values.setup" . -}}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:

View File

@@ -1,8 +1,8 @@
apiVersion: v2
appVersion: 0.2.2
appVersion: 0.2.3
description: A prometheus exporter for Plex Media Server
name: plex-exporter
version: 0.1.0
version: 0.1.3
kubeVersion: ">=1.16.0-0"
keywords:
- plex-exporter
@@ -15,5 +15,5 @@ maintainers:
email: andy@tensixtyone.com
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 4.3.0
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.3

View File

@@ -0,0 +1,5 @@
---
plex:
autodiscover: true
token: a0a0a0a0a0
loglevel: debug

View File

@@ -14,6 +14,10 @@ args:
- "--token"
- "{{ .Values.plex.token }}"
{{ end }}
{{ if .Values.plex.loglevel }}
- "--log-level"
- "{{ .Values.plex.loglevel }}"
{{ end }}
{{- end -}}
{{- $_ := mergeOverwrite .Values (include "plex-exporter.harcodedValues" . | fromYaml) -}}

View File

@@ -1,24 +0,0 @@
{{- if .Values.metrics.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ include "common.names.fullname" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.metrics.serviceMonitor.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
selector:
matchLabels:
{{- include "common.labels.selectorLabels" . | nindent 6 }}
endpoints:
- port: metrics
{{- with .Values.metrics.serviceMonitor.interval }}
interval: {{ . }}
{{- end }}
{{- with .Values.metrics.serviceMonitor.scrapeTimeout }}
scrapeTimeout: {{ . }}
{{- end }}
path: /metrics
{{- end }}

View File

@@ -9,7 +9,7 @@ image:
# -- image repository
repository: granra/plex_exporter
# -- image tag
tag: v0.2.2
tag: v0.2.3
# -- image pull policy
pullPolicy: IfNotPresent
@@ -42,6 +42,8 @@ plex:
token:
# -- Enable autodiscover using plex.tv
autodiscover: true
# -- Logging level
# loglevel: info
metrics:
# -- Enable and configure a Prometheus serviceMonitor for the chart under this key.
@@ -58,13 +60,13 @@ metrics:
labels: {}
# -- Configure additionial rules for the chart under this key.
# @default -- See prometheusrules.yaml
rules: []
# - alert: plexExporterAbsent
# annotations:
# description: plex Exporter has disappeared from Prometheus service discovery.
# summary: plex Exporter is down.
# expr: |
# absent(up{job=~".*plexexporter.*"} == 1)
# for: 5m
# labels:
# severity: critical
rules:
- alert: PlexExporterAbsent
annotations:
description: Plex Exporter has disappeared from Prometheus service discovery.
summary: Plex Exporter is down.
expr: |
absent(up{job=~".*{{ include "common.names.fullname" . }}.*"} == 1)
for: 5m
labels:
severity: critical

View File

@@ -2,18 +2,18 @@ apiVersion: v2
appVersion: 0.18.2
description: A prometheus exporter for vSphere vCenter
name: vmware-exporter
version: 0.2.0
version: 0.2.3
kubeVersion: ">=1.16.0-0"
keywords:
- vmware-exporter
- vmware-exporter
home: https://github.com/nikdoof/helm-charts/tree/master/charts/vmware-exporter
sources:
- https://github.com/pryorda/vmware_exporter
- https://hub.docker.com/r/pryorda/vmware_exporter/tags
- https://github.com/pryorda/vmware_exporter
- https://hub.docker.com/r/pryorda/vmware_exporter/tags
maintainers:
- name: nikdoof
email: andy@tensixtyone.com
- name: nikdoof
email: andy@tensixtyone.com
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 4.3.0
- name: common
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.3

View File

@@ -1,4 +1,5 @@
{{- if and .Values.metrics.enabled .Values.metrics.dashboards.create }}
{{- include "common.values.setup" . -}}
{{- $namespace := .Values.metrics.dashboards.namespace | default $.Release.Namespace }}
apiVersion: v1
kind: ConfigMap

View File

@@ -1,27 +0,0 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: {{ include "common.names.fullname" . }}
labels:
{{- include "common.labels" . | nindent 4 }}
{{- with .Values.metrics.prometheusRule.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
groups:
- name: {{ include "common.names.fullname" . }}
rules:
- alert: VmwareExporterAbsent
annotations:
description: Vmware Exporter has disappeared from Prometheus service discovery.
summary: Vmware Exporter is down.
expr: |
absent(up{job=~".*{{ include "common.names.fullname" . }}.*"} == 1)
for: 5m
labels:
severity: critical
{{- with .Values.metrics.prometheusRule.rules }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}

View File

@@ -54,16 +54,16 @@ metrics:
labels: {}
# -- Configure additionial rules for the chart under this key.
# @default -- See prometheusrules.yaml
rules: []
# - alert: vmwareExporterAbsent
# annotations:
# description: vmware Exporter has disappeared from Prometheus service discovery.
# summary: vmware Exporter is down.
# expr: |
# absent(up{job=~".*vmwareexporter.*"} == 1)
# for: 5m
# labels:
# severity: critical
rules:
- alert: VmwareExporterAbsent
annotations:
description: Vmware Exporter has disappeared from Prometheus service discovery.
summary: Vmware Exporter is down.
expr: |
absent(up{job=~".*{{ include "common.names.fullname" . }}.*"} == 1)
for: 5m
labels:
severity: critical
# -- Enable and configure Grafana dashboard ConfigMaps for the chart under this key.
# @default -- See values.yaml
dashboards:

View File

@@ -1,22 +0,0 @@
# 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/

View File

@@ -1,16 +0,0 @@
apiVersion: v1
appVersion: "0.8.5"
description: Collect VMware vCenter and ESXi performance metrics and send them to InfluxDB
name: vsphere-influxdb-go
version: 0.2.3
keywords:
- vsphere
- influxdb
- esx
home: https://github.com/Oxalide/vsphere-influxdb-go
sources:
- https://hub.docker.com/r/nikdoof/vsphere-influxdb-go/
- https://github.com/janeczku/calibre-web
maintainers:
- name: nikdoof
email: andy@tensixtyone.com

View File

@@ -1,129 +0,0 @@
# vsphere-influxdb-go
![Version: 0.2.2](https://img.shields.io/badge/Version-0.2.2-informational?style=flat-square) ![AppVersion: 0.8.5](https://img.shields.io/badge/AppVersion-0.8.5-informational?style=flat-square)
Collect VMware vCenter and ESXi performance metrics and send them to InfluxDB
**Homepage:** <https://github.com/Oxalide/vsphere-influxdb-go>
## Maintainers
| Name | Email | Url |
| ---- | ------ | --- |
| nikdoof | andy@tensixtyone.com | |
## Source Code
* <https://hub.docker.com/r/nikdoof/vsphere-influxdb-go/>
* <https://github.com/janeczku/calibre-web>
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | |
| config.Domain | string | `""` | |
| config.InfluxDB | list | `[]` | |
| config.Interval | int | `60` | |
| config.Metrics[0].Definition[0].Instances | string | `"*"` | |
| config.Metrics[0].Definition[0].Metric | string | `"cpu.usage.average"` | |
| config.Metrics[0].Definition[10].Instances | string | `"*"` | |
| config.Metrics[0].Definition[10].Metric | string | `"mem.consumed.maximum"` | |
| config.Metrics[0].Definition[11].Instances | string | `"*"` | |
| config.Metrics[0].Definition[11].Metric | string | `"mem.active.average"` | |
| config.Metrics[0].Definition[12].Instances | string | `"*"` | |
| config.Metrics[0].Definition[12].Metric | string | `"mem.active.maximum"` | |
| config.Metrics[0].Definition[13].Instances | string | `"*"` | |
| config.Metrics[0].Definition[13].Metric | string | `"mem.vmmemctl.average"` | |
| config.Metrics[0].Definition[14].Instances | string | `"*"` | |
| config.Metrics[0].Definition[14].Metric | string | `"mem.vmmemctl.maximum"` | |
| config.Metrics[0].Definition[15].Instances | string | `"*"` | |
| config.Metrics[0].Definition[15].Metric | string | `"mem.totalCapacity.average"` | |
| config.Metrics[0].Definition[16].Instances | string | `"*"` | |
| config.Metrics[0].Definition[16].Metric | string | `"net.packetsRx.summation"` | |
| config.Metrics[0].Definition[17].Instances | string | `"*"` | |
| config.Metrics[0].Definition[17].Metric | string | `"net.packetsTx.summation"` | |
| config.Metrics[0].Definition[18].Instances | string | `"*"` | |
| config.Metrics[0].Definition[18].Metric | string | `"net.throughput.usage.average"` | |
| config.Metrics[0].Definition[19].Instances | string | `"*"` | |
| config.Metrics[0].Definition[19].Metric | string | `"net.received.average"` | |
| config.Metrics[0].Definition[1].Instances | string | `"*"` | |
| config.Metrics[0].Definition[1].Metric | string | `"cpu.usage.maximum"` | |
| config.Metrics[0].Definition[20].Instances | string | `"*"` | |
| config.Metrics[0].Definition[20].Metric | string | `"net.transmitted.average"` | |
| config.Metrics[0].Definition[21].Instances | string | `"*"` | |
| config.Metrics[0].Definition[21].Metric | string | `"net.throughput.usage.nfs.average"` | |
| config.Metrics[0].Definition[22].Instances | string | `"*"` | |
| config.Metrics[0].Definition[22].Metric | string | `"datastore.numberReadAveraged.average"` | |
| config.Metrics[0].Definition[23].Instances | string | `"*"` | |
| config.Metrics[0].Definition[23].Metric | string | `"datastore.numberWriteAveraged.average"` | |
| config.Metrics[0].Definition[24].Instances | string | `"*"` | |
| config.Metrics[0].Definition[24].Metric | string | `"datastore.read.average"` | |
| config.Metrics[0].Definition[25].Instances | string | `"*"` | |
| config.Metrics[0].Definition[25].Metric | string | `"datastore.write.average"` | |
| config.Metrics[0].Definition[26].Instances | string | `"*"` | |
| config.Metrics[0].Definition[26].Metric | string | `"datastore.totalReadLatency.average"` | |
| config.Metrics[0].Definition[27].Instances | string | `"*"` | |
| config.Metrics[0].Definition[27].Metric | string | `"datastore.totalWriteLatency.average"` | |
| config.Metrics[0].Definition[28].Instances | string | `"*"` | |
| config.Metrics[0].Definition[28].Metric | string | `"mem.capacity.provisioned.average"` | |
| config.Metrics[0].Definition[29].Instances | string | `"*"` | |
| config.Metrics[0].Definition[29].Metric | string | `"cpu.corecount.provisioned.average"` | |
| config.Metrics[0].Definition[2].Instances | string | `"*"` | |
| config.Metrics[0].Definition[2].Metric | string | `"cpu.usagemhz.average"` | |
| config.Metrics[0].Definition[3].Instances | string | `"*"` | |
| config.Metrics[0].Definition[3].Metric | string | `"cpu.usagemhz.maximum"` | |
| config.Metrics[0].Definition[4].Instances | string | `"*"` | |
| config.Metrics[0].Definition[4].Metric | string | `"cpu.wait.summation"` | |
| config.Metrics[0].Definition[5].Instances | string | `"*"` | |
| config.Metrics[0].Definition[5].Metric | string | `"cpu.system.summation"` | |
| config.Metrics[0].Definition[6].Instances | string | `"*"` | |
| config.Metrics[0].Definition[6].Metric | string | `"cpu.ready.summation"` | |
| config.Metrics[0].Definition[7].Instances | string | `"*"` | |
| config.Metrics[0].Definition[7].Metric | string | `"mem.usage.average"` | |
| config.Metrics[0].Definition[8].Instances | string | `"*"` | |
| config.Metrics[0].Definition[8].Metric | string | `"mem.usage.maximum"` | |
| config.Metrics[0].Definition[9].Instances | string | `"*"` | |
| config.Metrics[0].Definition[9].Metric | string | `"mem.consumed.average"` | |
| config.Metrics[0].ObjectType[0] | string | `"VirtualMachine"` | |
| config.Metrics[0].ObjectType[1] | string | `"HostSystem"` | |
| config.Metrics[1].Definition[0].Instances | string | `"*"` | |
| config.Metrics[1].Definition[0].Metric | string | `"datastore.datastoreVMObservedLatency.latest"` | |
| config.Metrics[1].ObjectType[0] | string | `"VirtualMachine"` | |
| config.Metrics[2].Definition[0].Instances | string | `""` | |
| config.Metrics[2].Definition[0].Metric | string | `"disk.maxTotalLatency.latest"` | |
| config.Metrics[2].Definition[1].Instances | string | `"*"` | |
| config.Metrics[2].Definition[1].Metric | string | `"disk.numberReadAveraged.average"` | |
| config.Metrics[2].Definition[2].Instances | string | `"*"` | |
| config.Metrics[2].Definition[2].Metric | string | `"disk.numberWriteAveraged.average"` | |
| config.Metrics[2].Definition[3].Instances | string | `"*"` | |
| config.Metrics[2].Definition[3].Metric | string | `"net.throughput.contention.summation"` | |
| config.Metrics[2].ObjectType[0] | string | `"HostSystem"` | |
| config.Metrics[3].Definition[0].Instances | string | `"*"` | |
| config.Metrics[3].Definition[0].Metric | string | `"disk.capacity.latest"` | |
| config.Metrics[3].Definition[1].Instances | string | `"*"` | |
| config.Metrics[3].Definition[1].Metric | string | `"disk.used.latest"` | |
| config.Metrics[3].ObjectType[0] | string | `"Datastore"` | |
| config.RemoveHostDomainName | bool | `false` | |
| config.VCenters | list | `[]` | |
| cronjob.failedJobsHistoryLimit | int | `1` | |
| cronjob.schedule | string | `"* * * * *"` | |
| cronjob.successfulJobsHistoryLimit | int | `3` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"nikdoof/vsphere-influxdb-go"` | |
| image.tag | string | `"latest"` | |
| influxdb.authenticated | bool | `false` | |
| influxdb.database | string | `"vmware_performance"` | |
| influxdb.hostname | string | `"http://influxdb:8086"` | |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| tolerations | list | `[]` | |
| vsphere.hostname | string | `nil` | |
| vsphere.password | string | `nil` | |
| vsphere.username | string | `nil` | |
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)

View File

@@ -1,7 +0,0 @@
vsphere:
hostname: vcenter
username: test
password: test
influxdb:
hostname: test

View File

@@ -1,56 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "vsphere-influxdb-go.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "vsphere-influxdb-go.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "vsphere-influxdb-go.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "vsphere-influxdb-go.labels" -}}
app.kubernetes.io/name: {{ include "vsphere-influxdb-go.name" . }}
helm.sh/chart: {{ include "vsphere-influxdb-go.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "vsphere-influxdb-go.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "vsphere-influxdb-go.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,13 +0,0 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: vsphere-influxdb-go-config
labels:
app.kubernetes.io/name: {{ include "vsphere-influxdb-go.name" . }}
helm.sh/chart: {{ include "vsphere-influxdb-go.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ include "vsphere-influxdb-go.name" . }}
data:
config.json: |-
{{ toJson .Values.config | indent 4}}

View File

@@ -1,98 +0,0 @@
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: {{ include "vsphere-influxdb-go.fullname" . }}-cronjob
{{- if .Values.deploymentAnnotations }}
annotations:
{{- range $key, $value := .Values.deploymentAnnotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
{{- end }}
labels:
app.kubernetes.io/name: {{ include "vsphere-influxdb-go.name" . }}
helm.sh/chart: {{ include "vsphere-influxdb-go.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ include "vsphere-influxdb-go.name" . }}
spec:
schedule: {{ .Values.cronjob.schedule | quote }}
successfulJobsHistoryLimit: {{ .Values.cronjob.successfulJobsHistoryLimit }}
failedJobsHistoryLimit: {{ .Values.cronjob.failedJobsHistoryLimit }}
concurrencyPolicy: Forbid
{{- if .Values.cronjob.startingDeadlineSeconds }}
startingDeadlineSeconds: {{ .Values.cronjob.startingDeadlineSeconds }}
{{- end }}
jobTemplate:
spec:
backoffLimit: 0
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "vsphere-influxdb-go.name" . }}
helm.sh/chart: {{ include "vsphere-influxdb-go.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ include "vsphere-influxdb-go.name" . }}
spec:
restartPolicy: Never
{{- if .Values.image.pullSecrets }}
imagePullSecrets:
{{- range .Values.image.pullSecrets }}
- name: {{ . }}
{{- end }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
command: ["/vsphere-influxdb-go", "-config=/config/config.json"]
imagePullPolicy: {{ .Values.image.pullPolicy }}
resources:
{{ toYaml .Values.resources | indent 16 }}
env:
- name: VSPHERE_HOSTNAME
value: {{ .Values.vsphere.hostname }}
- name: VSPHERE_USERNAME
valueFrom:
secretKeyRef:
name: {{ default "vsphere-influxdb-go-secret" .Values.existingSecretName }}
key: vsphere.username
- name: VSPHERE_PASSWORD
valueFrom:
secretKeyRef:
name: {{ default "vsphere-influxdb-go-secret" .Values.existingSecretName }}
key: vsphere.password
- name: INFLUX_HOSTNAME
value: {{ .Values.influxdb.hostname }}
- name: INFLUX_DATABASE
value: {{ .Values.influxdb.database }}
{{- if .Values.influxdb.authenticated }}
- name: INFLUX_USERNAME
valueFrom:
secretKeyRef:
name: {{ default "vsphere-influxdb-go-secret" .Values.existingSecretName }}
key: influxdb.username
- name: INFLUX_PASSWORD
valueFrom:
secretKeyRef:
name: {{ default "vsphere-influxdb-go-secret" .Values.existingSecretName }}
key: influxdb.password
{{- end }}
volumeMounts:
- name: config-volume
mountPath: /config
volumes:
- name: config-volume
configMap:
name: vsphere-influxdb-go-config
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 12 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{ toYaml . | indent 12 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{ toYaml . | indent 12 }}:
{{- end }}

View File

@@ -1,20 +0,0 @@
---
{{- if not (.Values.existingSecretName) }}
apiVersion: v1
kind: Secret
metadata:
name: vsphere-influxdb-go-secret
labels:
app.kubernetes.io/name: {{ include "vsphere-influxdb-go.name" . }}
helm.sh/chart: {{ include "vsphere-influxdb-go.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ include "vsphere-influxdb-go.name" . }}
type: Opaque
data:
vsphere.username: {{ .Values.vsphere.username | b64enc }}
vsphere.password: {{ .Values.vsphere.password | b64enc }}
{{- if .Values.influxdb.authenticated }}
influxdb.username: {{ .Values.influxdb.username | b64enc }}
influxdb.password: {{ .Values.influxdb.password | b64enc }}
{{- end }}
{{- end }}

View File

@@ -1,155 +0,0 @@
# Default values for vsphere-influxdb-go.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: nikdoof/vsphere-influxdb-go
tag: latest
pullPolicy: IfNotPresent
# imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
## Use a pre-existing secret for login information
##
# existingSecretName: existing-secret
## Connection details
##
vsphere:
hostname:
username:
password:
influxdb:
hostname: http://influxdb:8086
authenticated: false
# username:
# password:
database: vmware_performance
cronjob:
schedule: "* * * * *"
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 1
# startingDeadlineSeconds: 10
## Configuration data that is wrote to vsphere-influxdb-go
## If you need additional metrics then this is where you can
## add them.
##
config:
Domain: ""
RemoveHostDomainName: false
Interval: 60
VCenters: []
InfluxDB: []
Metrics:
- ObjectType:
- VirtualMachine
- HostSystem
Definition:
- Metric: cpu.usage.average
Instances: "*"
- Metric: cpu.usage.maximum
Instances: "*"
- Metric: cpu.usagemhz.average
Instances: "*"
- Metric: cpu.usagemhz.maximum
Instances: "*"
- Metric: cpu.wait.summation
Instances: "*"
- Metric: cpu.system.summation
Instances: "*"
- Metric: cpu.ready.summation
Instances: "*"
- Metric: mem.usage.average
Instances: "*"
- Metric: mem.usage.maximum
Instances: "*"
- Metric: mem.consumed.average
Instances: "*"
- Metric: mem.consumed.maximum
Instances: "*"
- Metric: mem.active.average
Instances: "*"
- Metric: mem.active.maximum
Instances: "*"
- Metric: mem.vmmemctl.average
Instances: "*"
- Metric: mem.vmmemctl.maximum
Instances: "*"
- Metric: mem.totalCapacity.average
Instances: "*"
- Metric: net.packetsRx.summation
Instances: "*"
- Metric: net.packetsTx.summation
Instances: "*"
- Metric: net.throughput.usage.average
Instances: "*"
- Metric: net.received.average
Instances: "*"
- Metric: net.transmitted.average
Instances: "*"
- Metric: net.throughput.usage.nfs.average
Instances: "*"
- Metric: datastore.numberReadAveraged.average
Instances: "*"
- Metric: datastore.numberWriteAveraged.average
Instances: "*"
- Metric: datastore.read.average
Instances: "*"
- Metric: datastore.write.average
Instances: "*"
- Metric: datastore.totalReadLatency.average
Instances: "*"
- Metric: datastore.totalWriteLatency.average
Instances: "*"
- Metric: mem.capacity.provisioned.average
Instances: "*"
- Metric: cpu.corecount.provisioned.average
Instances: "*"
- ObjectType:
- VirtualMachine
Definition:
- Metric: datastore.datastoreVMObservedLatency.latest
Instances: "*"
- ObjectType:
- HostSystem
Definition:
- Metric: disk.maxTotalLatency.latest
Instances: ''
- Metric: disk.numberReadAveraged.average
Instances: "*"
- Metric: disk.numberWriteAveraged.average
Instances: "*"
- Metric: net.throughput.contention.summation
Instances: "*"
- ObjectType:
- Datastore
Definition:
- Metric: disk.capacity.latest
Instances: "*"
- Metric: disk.used.latest
Instances: "*"
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,22 +0,0 @@
# 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/

View File

@@ -1,15 +0,0 @@
apiVersion: v1
appVersion: "0.3.178"
description: A web GUI for Zigbee2Mqtt
name: zigbee2mqttassistant
version: 0.1.2
keywords:
- zigbee
- mqtt
- homeassistant
home: https://github.com/yllibed/Zigbee2MqttAssistant
sources:
- https://hub.docker.com/r/carldebilly/zigbee2mqttassistant
maintainers:
- name: nikdoof
email: andy@tensixtyone.com

View File

@@ -1,47 +0,0 @@
# zigbee2mqttassistant
![Version: 0.1.1](https://img.shields.io/badge/Version-0.1.1-informational?style=flat-square) ![AppVersion: 0.3.178](https://img.shields.io/badge/AppVersion-0.3.178-informational?style=flat-square)
A web GUI for Zigbee2Mqtt
**Homepage:** <https://github.com/yllibed/Zigbee2MqttAssistant>
## Maintainers
| Name | Email | Url |
| ---- | ------ | --- |
| nikdoof | andy@tensixtyone.com | |
## Source Code
* <https://hub.docker.com/r/carldebilly/zigbee2mqttassistant>
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| TZ | string | `"UTC"` | |
| affinity | object | `{}` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"carldebilly/zigbee2mqttassistant"` | |
| image.tag | string | `"0.3.178"` | |
| imagePullSecrets | list | `[]` | |
| ingress.annotations | object | `{}` | |
| ingress.enabled | bool | `false` | |
| ingress.hosts[0].host | string | `"chart-example.local"` | |
| ingress.hosts[0].paths | list | `[]` | |
| ingress.tls | list | `[]` | |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | |
| podSecurityContext | object | `{}` | |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| securityContext | object | `{}` | |
| service.port | int | `8800` | |
| service.type | string | `"ClusterIP"` | |
| tolerations | list | `[]` | |
| z2ma | object | `{}` | |
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)

View File

@@ -1,3 +0,0 @@
---
z2ma:
broker: mqtt.svc.cluster.local

View File

@@ -1,4 +0,0 @@
---
z2ma:
broker: mqtt.svc.cluster.local
existingSecretName: test

View File

@@ -1,5 +0,0 @@
---
z2ma:
broker: mqtt.svc.cluster.local
username: test
password: test2

View File

@@ -1,21 +0,0 @@
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range $host := .Values.ingress.hosts }}
{{- range .paths }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }}
{{- end }}
{{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "zigbee2mqttassistant.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "zigbee2mqttassistant.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "zigbee2mqttassistant.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "zigbee2mqttassistant.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -1,56 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "zigbee2mqttassistant.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "zigbee2mqttassistant.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "zigbee2mqttassistant.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "zigbee2mqttassistant.labels" -}}
app.kubernetes.io/name: {{ include "zigbee2mqttassistant.name" . }}
helm.sh/chart: {{ include "zigbee2mqttassistant.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "zigbee2mqttassistant.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "zigbee2mqttassistant.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,73 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "zigbee2mqttassistant.fullname" . }}
labels:
{{ include "zigbee2mqttassistant.labels" . | indent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app.kubernetes.io/name: {{ include "zigbee2mqttassistant.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "zigbee2mqttassistant.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: 80
protocol: TCP
#livenessProbe:
# httpGet:
# path: /
# port: http
#readinessProbe:
# httpGet:
# path: /
# port: http
env:
- name: TZ
value: {{ .Values.TZ }}
- name: Z2MA_SETTINGS__MQTTSERVER
value: {{ .Values.z2ma.broker }}
{{- if and (.Values.z2ma.username) (.Values.z2ma.password) }}
- name: Z2MA_SETTINGS__MQTTUSERNAME
valueFrom:
secretKeyRef:
name: {{ default "zigbee2mqttassistant-secret" .Values.z2ma.existingSecretName }}
key: username
- name: Z2MA_SETTINGS__MQTTPASSWORD
valueFrom:
secretKeyRef:
name: {{ default "zigbee2mqttassistant-secret" .Values.z2ma.existingSecretName }}
key: password
{{- end }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

View File

@@ -1,41 +0,0 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "zigbee2mqttassistant.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{ include "zigbee2mqttassistant.labels" . | indent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ . }}
backend:
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,15 +0,0 @@
{{- if and (and (not (.Values.existingSecretName)) (.Values.z2ma.username)) (.Values.z2ma.password) }}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "zigbee2mqttassistant.name" . }}-secret
labels:
app.kubernetes.io/name: {{ include "zigbee2mqttassistant.name" . }}
helm.sh/chart: {{ include "zigbee2mqttassistant.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ include "zigbee2mqttassistant.name" . }}
type: Opaque
data:
username: {{ .Values.z2ma.username | b64enc }}
password: {{ .Values.z2ma.password | b64enc }}
{{- end }}

View File

@@ -1,16 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "zigbee2mqttassistant.fullname" . }}
labels:
{{ include "zigbee2mqttassistant.labels" . | indent 4 }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: {{ include "zigbee2mqttassistant.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -1,77 +0,0 @@
# Default values for zigbee2mqttassistant.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: carldebilly/zigbee2mqttassistant
tag: 0.3.178
pullPolicy: IfNotPresent
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
TZ: UTC
## Z2MA Settings (more details: https://github.com/yllibed/Zigbee2MqttAssistant/blob/master/README.md)
z2ma: {}
# broker: mqtt.svc.cluster.local
## You can provide your MQTT username and password and a secret will be created...
##
# username: user
# password: pass
## ... or you can provide a existing secret to pull these values from
##
# existingSecretName: mqtt-secret
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 8800
ingress:
enabled: false
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: chart-example.local
paths: []
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

1
crds/README.md Normal file
View File

@@ -0,0 +1 @@
These CRDs are used as part of chart-testing, and are installed in the Kind cluster thats used to run the process.

View File

@@ -0,0 +1,119 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.11.1
creationTimestamp: null
name: prometheusrules.monitoring.coreos.com
spec:
group: monitoring.coreos.com
names:
categories:
- prometheus-operator
kind: PrometheusRule
listKind: PrometheusRuleList
plural: prometheusrules
shortNames:
- promrule
singular: prometheusrule
scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
description: PrometheusRule defines recording and alerting rules for a Prometheus
instance
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: Specification of desired alerting rule definitions for Prometheus.
properties:
groups:
description: Content of Prometheus rule file
items:
description: RuleGroup is a list of sequentially evaluated recording
and alerting rules.
properties:
interval:
description: Interval determines how often rules in the group
are evaluated.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
type: string
name:
description: Name of the rule group.
minLength: 1
type: string
partial_response_strategy:
description: 'PartialResponseStrategy is only used by ThanosRuler
and will be ignored by Prometheus instances. More info: https://github.com/thanos-io/thanos/blob/main/docs/components/rule.md#partial-response'
pattern: ^(?i)(abort|warn)?$
type: string
rules:
description: List of alerting and recording rules.
items:
description: 'Rule describes an alerting or recording rule
See Prometheus documentation: [alerting](https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules/)
or [recording](https://www.prometheus.io/docs/prometheus/latest/configuration/recording_rules/#recording-rules)
rule'
properties:
alert:
description: Name of the alert. Must be a valid label
value. Only one of `record` and `alert` must be set.
type: string
annotations:
additionalProperties:
type: string
description: Annotations to add to each alert. Only valid
for alerting rules.
type: object
expr:
anyOf:
- type: integer
- type: string
description: PromQL expression to evaluate.
x-kubernetes-int-or-string: true
for:
description: Alerts are considered firing once they have
been returned for this long.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
type: string
labels:
additionalProperties:
type: string
description: Labels to add or overwrite.
type: object
record:
description: Name of the time series to output to. Must
be a valid metric name. Only one of `record` and `alert`
must be set.
type: string
required:
- expr
type: object
type: array
required:
- name
- rules
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
type: object
required:
- spec
type: object
served: true
storage: true

View File

@@ -0,0 +1,695 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.11.1
creationTimestamp: null
name: servicemonitors.monitoring.coreos.com
spec:
group: monitoring.coreos.com
names:
categories:
- prometheus-operator
kind: ServiceMonitor
listKind: ServiceMonitorList
plural: servicemonitors
shortNames:
- smon
singular: servicemonitor
scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
description: ServiceMonitor defines monitoring for a set of services.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: Specification of desired Service selection for target discovery
by Prometheus.
properties:
attachMetadata:
description: Attaches node metadata to discovered targets. Requires
Prometheus v2.37.0 and above.
properties:
node:
description: When set to true, Prometheus must have permissions
to get Nodes.
type: boolean
type: object
endpoints:
description: A list of endpoints allowed as part of this ServiceMonitor.
items:
description: Endpoint defines a scrapeable endpoint serving Prometheus
metrics.
properties:
authorization:
description: Authorization section for this endpoint
properties:
credentials:
description: The secret's key that contains the credentials
of the request
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the Secret or its key must
be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type:
description: Set the authentication type. Defaults to Bearer,
Basic will cause an error
type: string
type: object
basicAuth:
description: 'BasicAuth allow an endpoint to authenticate over
basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints'
properties:
password:
description: The secret in the service monitor namespace
that contains the password for authentication.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the Secret or its key must
be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
username:
description: The secret in the service monitor namespace
that contains the username for authentication.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the Secret or its key must
be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
bearerTokenFile:
description: File to read bearer token for scraping targets.
type: string
bearerTokenSecret:
description: Secret to mount to read bearer token for scraping
targets. The secret needs to be in the same namespace as the
service monitor and accessible by the Prometheus Operator.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the Secret or its key must
be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
enableHttp2:
description: Whether to enable HTTP2.
type: boolean
filterRunning:
description: 'Drop pods that are not running. (Failed, Succeeded).
Enabled by default. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase'
type: boolean
followRedirects:
description: FollowRedirects configures whether scrape requests
follow HTTP 3xx redirects.
type: boolean
honorLabels:
description: HonorLabels chooses the metric's labels on collisions
with target labels.
type: boolean
honorTimestamps:
description: HonorTimestamps controls whether Prometheus respects
the timestamps present in scraped data.
type: boolean
interval:
description: Interval at which metrics should be scraped If
not specified Prometheus' global scrape interval is used.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
type: string
metricRelabelings:
description: MetricRelabelConfigs to apply to samples before
ingestion.
items:
description: 'RelabelConfig allows dynamic rewriting of the
label set, being applied to samples before ingestion. It
defines `<metric_relabel_configs>`-section of Prometheus
configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
properties:
action:
default: replace
description: Action to perform based on regex matching.
Default is 'replace'. uppercase and lowercase actions
require Prometheus >= 2.36.
enum:
- replace
- Replace
- keep
- Keep
- drop
- Drop
- hashmod
- HashMod
- labelmap
- LabelMap
- labeldrop
- LabelDrop
- labelkeep
- LabelKeep
- lowercase
- Lowercase
- uppercase
- Uppercase
type: string
modulus:
description: Modulus to take of the hash of the source
label values.
format: int64
type: integer
regex:
description: Regular expression against which the extracted
value is matched. Default is '(.*)'
type: string
replacement:
description: Replacement value against which a regex replace
is performed if the regular expression matches. Regex
capture groups are available. Default is '$1'
type: string
separator:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
sourceLabels:
description: The source labels select values from existing
labels. Their content is concatenated using the configured
separator and matched against the configured regular
expression for the replace, keep, and drop actions.
items:
description: LabelName is a valid Prometheus label name
which may only contain ASCII letters, numbers, as
well as underscores.
pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
type: string
type: array
targetLabel:
description: Label to which the resulting value is written
in a replace action. It is mandatory for replace actions.
Regex capture groups are available.
type: string
type: object
type: array
oauth2:
description: OAuth2 for the URL. Only valid in Prometheus versions
2.27.0 and newer.
properties:
clientId:
description: The secret or configmap containing the OAuth2
client id
properties:
configMap:
description: ConfigMap containing data to use for the
targets.
properties:
key:
description: The key to select.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secret:
description: Secret containing data to use for the targets.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
clientSecret:
description: The secret containing the OAuth2 client secret
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the Secret or its key must
be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
endpointParams:
additionalProperties:
type: string
description: Parameters to append to the token URL
type: object
scopes:
description: OAuth2 scopes used for the token request
items:
type: string
type: array
tokenUrl:
description: The URL to fetch the token from
minLength: 1
type: string
required:
- clientId
- clientSecret
- tokenUrl
type: object
params:
additionalProperties:
items:
type: string
type: array
description: Optional HTTP URL parameters
type: object
path:
description: HTTP path to scrape for metrics. If empty, Prometheus
uses the default value (e.g. `/metrics`).
type: string
port:
description: Name of the service port this endpoint refers to.
Mutually exclusive with targetPort.
type: string
proxyUrl:
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
to proxy through this endpoint.
type: string
relabelings:
description: 'RelabelConfigs to apply to samples before scraping.
Prometheus Operator automatically adds relabelings for a few
standard Kubernetes fields. The original scrape job''s name
is available via the `__tmp_prometheus_job_name` label. More
info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
items:
description: 'RelabelConfig allows dynamic rewriting of the
label set, being applied to samples before ingestion. It
defines `<metric_relabel_configs>`-section of Prometheus
configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
properties:
action:
default: replace
description: Action to perform based on regex matching.
Default is 'replace'. uppercase and lowercase actions
require Prometheus >= 2.36.
enum:
- replace
- Replace
- keep
- Keep
- drop
- Drop
- hashmod
- HashMod
- labelmap
- LabelMap
- labeldrop
- LabelDrop
- labelkeep
- LabelKeep
- lowercase
- Lowercase
- uppercase
- Uppercase
type: string
modulus:
description: Modulus to take of the hash of the source
label values.
format: int64
type: integer
regex:
description: Regular expression against which the extracted
value is matched. Default is '(.*)'
type: string
replacement:
description: Replacement value against which a regex replace
is performed if the regular expression matches. Regex
capture groups are available. Default is '$1'
type: string
separator:
description: Separator placed between concatenated source
label values. default is ';'.
type: string
sourceLabels:
description: The source labels select values from existing
labels. Their content is concatenated using the configured
separator and matched against the configured regular
expression for the replace, keep, and drop actions.
items:
description: LabelName is a valid Prometheus label name
which may only contain ASCII letters, numbers, as
well as underscores.
pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
type: string
type: array
targetLabel:
description: Label to which the resulting value is written
in a replace action. It is mandatory for replace actions.
Regex capture groups are available.
type: string
type: object
type: array
scheme:
description: HTTP scheme to use for scraping.
type: string
scrapeTimeout:
description: Timeout after which the scrape is ended If not
specified, the Prometheus global scrape timeout is used unless
it is less than `Interval` in which the latter is used.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
type: string
targetPort:
anyOf:
- type: integer
- type: string
description: Name or number of the target port of the Pod behind
the Service, the port must be specified with container port
property. Mutually exclusive with port.
x-kubernetes-int-or-string: true
tlsConfig:
description: TLS configuration to use when scraping the endpoint
properties:
ca:
description: Certificate authority used when verifying server
certificates.
properties:
configMap:
description: ConfigMap containing data to use for the
targets.
properties:
key:
description: The key to select.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secret:
description: Secret containing data to use for the targets.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
caFile:
description: Path to the CA cert in the Prometheus container
to use for the targets.
type: string
cert:
description: Client certificate to present when doing client-authentication.
properties:
configMap:
description: ConfigMap containing data to use for the
targets.
properties:
key:
description: The key to select.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secret:
description: Secret containing data to use for the targets.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
certFile:
description: Path to the client cert file in the Prometheus
container for the targets.
type: string
insecureSkipVerify:
description: Disable target certificate validation.
type: boolean
keyFile:
description: Path to the client key file in the Prometheus
container for the targets.
type: string
keySecret:
description: Secret containing the client key file for the
targets.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
optional:
description: Specify whether the Secret or its key must
be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
serverName:
description: Used to verify the hostname for the targets.
type: string
type: object
type: object
type: array
jobLabel:
description: "JobLabel selects the label from the associated Kubernetes
service which will be used as the `job` label for all metrics. \n
For example: If in `ServiceMonitor.spec.jobLabel: foo` and in `Service.metadata.labels.foo:
bar`, then the `job=\"bar\"` label is added to all metrics. \n If
the value of this field is empty or if the label doesn't exist for
the given Service, the `job` label of the metrics defaults to the
name of the Kubernetes Service."
type: string
labelLimit:
description: Per-scrape limit on number of labels that will be accepted
for a sample. Only valid in Prometheus versions 2.27.0 and newer.
format: int64
type: integer
labelNameLengthLimit:
description: Per-scrape limit on length of labels name that will be
accepted for a sample. Only valid in Prometheus versions 2.27.0
and newer.
format: int64
type: integer
labelValueLengthLimit:
description: Per-scrape limit on length of labels value that will
be accepted for a sample. Only valid in Prometheus versions 2.27.0
and newer.
format: int64
type: integer
namespaceSelector:
description: Selector to select which namespaces the Kubernetes Endpoints
objects are discovered from.
properties:
any:
description: Boolean describing whether all namespaces are selected
in contrast to a list restricting them.
type: boolean
matchNames:
description: List of namespace names to select from.
items:
type: string
type: array
type: object
podTargetLabels:
description: PodTargetLabels transfers labels on the Kubernetes `Pod`
onto the created metrics.
items:
type: string
type: array
sampleLimit:
description: SampleLimit defines per-scrape limit on number of scraped
samples that will be accepted.
format: int64
type: integer
selector:
description: Selector to select Endpoints objects.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that
contains values, a key, and an operator that relates the key
and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship to
a set of values. Valid operators are In, NotIn, Exists
and DoesNotExist.
type: string
values:
description: values is an array of string values. If the
operator is In or NotIn, the values array must be non-empty.
If the operator is Exists or DoesNotExist, the values
array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value} pairs. A single
{key,value} in the matchLabels map is equivalent to an element
of matchExpressions, whose key field is "key", the operator
is "In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
targetLabels:
description: TargetLabels transfers labels from the Kubernetes `Service`
onto the created metrics.
items:
type: string
type: array
targetLimit:
description: TargetLimit defines a limit on the number of scraped
targets that will be accepted.
format: int64
type: integer
required:
- endpoints
- selector
type: object
required:
- spec
type: object
served: true
storage: true