Compare commits

...

50 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
33 changed files with 951 additions and 250 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,7 +2,7 @@ apiVersion: v2
appVersion: 0.2.1
description: A prometheus exporter for the Andrew & Arnold CHAOS API
name: aaisp-exporter
version: 0.2.2
version: 0.2.3
kubeVersion: ">=1.16.0-0"
keywords:
- aaisp-exporter
@@ -15,4 +15,4 @@ maintainers:
dependencies:
- name: common
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.2
version: 4.5.3

View File

@@ -1,28 +0,0 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
{{- include "common.values.setup" . -}}
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,25 +0,0 @@
{{- if .Values.metrics.enabled }}
{{- include "common.values.setup" . -}}
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

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: "4.2.0"
description: Antennas
name: antennas
version: 1.1.3
version: 1.1.4
kubeVersion: ">=1.16.0-0"
keywords:
- tvheadend
@@ -18,4 +18,4 @@ maintainers:
dependencies:
- name: common
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.2
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,5 +1,5 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
{{- include "common.values.setup" . -}}
{{- define "common.prometheusRule" }}
---
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
@@ -13,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,5 +1,5 @@
{{- if .Values.metrics.enabled }}
{{- include "common.values.setup" . -}}
{{- 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,7 +2,7 @@ apiVersion: v2
appVersion: 0.1.2
description: A prometheus exporter for the HG612 modem
name: hg612-exporter
version: 1.2.2
version: 1.2.3
kubeVersion: ">=1.16.0-0"
keywords:
- hg612-exporter
@@ -15,4 +15,4 @@ maintainers:
dependencies:
- name: common
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.2
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,28 +0,0 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
{{- include "common.values.setup" . -}}
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,25 +0,0 @@
{{- if .Values.metrics.enabled }}
{{- include "common.values.setup" . -}}
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.1
version: 1.1.2
kubeVersion: ">=1.16.0-0"
keywords:
- idrac6
@@ -15,4 +15,4 @@ maintainers:
dependencies:
- name: common
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.2
version: 4.5.3

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.2
version: 0.1.3
kubeVersion: ">=1.16.0-0"
keywords:
- plex-exporter
@@ -16,5 +16,4 @@ maintainers:
dependencies:
- name: common
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.2
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,25 +0,0 @@
{{- if .Values.metrics.enabled }}
{{- include "common.values.setup" . -}}
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,7 +2,7 @@ apiVersion: v2
appVersion: 0.18.2
description: A prometheus exporter for vSphere vCenter
name: vmware-exporter
version: 0.2.2
version: 0.2.3
kubeVersion: ">=1.16.0-0"
keywords:
- vmware-exporter
@@ -16,4 +16,4 @@ maintainers:
dependencies:
- name: common
repository: https://nikdoof.github.io/helm-charts/
version: 4.5.2
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,28 +0,0 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
{{- include "common.values.setup" . -}}
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:

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