From e557f0f0c1acdc0dbd2e580ef80ab05cd2694452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chip=20Wolf=20=E2=80=AE?= Date: Tue, 20 Apr 2021 20:55:20 +0100 Subject: [PATCH] [promcord] add new chart (#805) * feat: add promcord chart * chore(promcord): reduce chart version for incubator linting * chore(promcord): promote to stable * chore(promcord): exclude from install check * chore(promcord): replace service with podmonitor * chore(promcord): reduce podmonitor scrape timeout to 30s * chore(promcord): explicitly disable service * chore(promcord): update podmonitor comment * chore(promcord): add named metrics port for podmonitor * chore(promcord): comment out discord token variable * chore(promcord): add probes --- .github/ct-install.yaml | 1 + charts/stable/promcord/.helmignore | 26 ++++ charts/stable/promcord/Chart.yaml | 20 +++ charts/stable/promcord/README.md | 116 ++++++++++++++ charts/stable/promcord/README.md.gotmpl | 145 ++++++++++++++++++ .../promcord/README_CHANGELOG.md.gotmpl | 27 ++++ .../stable/promcord/README_CONFIG.md.gotmpl | 9 ++ charts/stable/promcord/templates/NOTES.txt | 1 + charts/stable/promcord/templates/common.yaml | 5 + .../stable/promcord/templates/podmonitor.yaml | 24 +++ charts/stable/promcord/values.yaml | 56 +++++++ 11 files changed, 430 insertions(+) create mode 100644 charts/stable/promcord/.helmignore create mode 100644 charts/stable/promcord/Chart.yaml create mode 100644 charts/stable/promcord/README.md create mode 100644 charts/stable/promcord/README.md.gotmpl create mode 100644 charts/stable/promcord/README_CHANGELOG.md.gotmpl create mode 100644 charts/stable/promcord/README_CONFIG.md.gotmpl create mode 100644 charts/stable/promcord/templates/NOTES.txt create mode 100644 charts/stable/promcord/templates/common.yaml create mode 100644 charts/stable/promcord/templates/podmonitor.yaml create mode 100644 charts/stable/promcord/values.yaml diff --git a/.github/ct-install.yaml b/.github/ct-install.yaml index e9b0e2e4..9d9f59e9 100644 --- a/.github/ct-install.yaml +++ b/.github/ct-install.yaml @@ -7,6 +7,7 @@ chart-dirs: excluded-charts: - charts/stable/alertmanager-bot - charts/stable/dnsmadeeasy-webhook +- charts/stable/promcord - charts/stable/ser2sock - charts/stable/zalando-postgres-cluster - charts/stable/zigbee2mqtt diff --git a/charts/stable/promcord/.helmignore b/charts/stable/promcord/.helmignore new file mode 100644 index 00000000..4379e2b3 --- /dev/null +++ b/charts/stable/promcord/.helmignore @@ -0,0 +1,26 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl diff --git a/charts/stable/promcord/Chart.yaml b/charts/stable/promcord/Chart.yaml new file mode 100644 index 00000000..a2c357cd --- /dev/null +++ b/charts/stable/promcord/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +appVersion: latest +description: Discord bot that provides metrics from a Discord server +name: promcord +version: 1.0.0 +kubeVersion: ">=1.16.0-0" +keywords: + - promcord + - discord + - metrics +home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/promcord +sources: + - https://github.com/nimarion/promcord +maintainers: + - name: ChipWolf + email: hello@chipwolf.uk +dependencies: + - name: common + repository: https://library-charts.k8s-at-home.com + version: 2.3.0 diff --git a/charts/stable/promcord/README.md b/charts/stable/promcord/README.md new file mode 100644 index 00000000..71b41d64 --- /dev/null +++ b/charts/stable/promcord/README.md @@ -0,0 +1,116 @@ +# promcord + +![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square) + +Discord bot that provides metrics from a Discord server + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.16.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.bitnami.com/bitnami | postgresql | 10.3.15 | +| https://library-charts.k8s-at-home.com | common | 2.2.0 | + +## TL;DR + +```console +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm repo update +helm install promcord k8s-at-home/promcord +``` + +## Installing the Chart + +To install the chart with the release name `promcord` + +```console +helm install promcord k8s-at-home/promcord +``` + +## Uninstalling the Chart + +To uninstall the `promcord` deployment + +```console +helm uninstall promcord +``` + +The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release. + +## Configuration + +Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common). + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install promcord \ + --set env.TZ="America/New York" \ + k8s-at-home/promcord +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install promcord k8s-at-home/promcord -f values.yaml +``` + +## Custom configuration + +N/A + +## Values + +**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common) + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env.DISCORD_TOKEN | string | `""` | Discord bot token | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"biospheere/promcord"` | | +| image.tag | string | `latest` | | +| prometheus.podMonitor.additionalLabels | object | `{}` | | +| prometheus.podMonitor.enabled | bool | `false` | | +| prometheus.podMonitor.interval | string | `"1m"` | | +| prometheus.podMonitor.scrapeTimeout | string | `"1m30s"` | | +| strategy.type | string | `"Recreate"` | | + +## Changelog + +All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common#changelog). + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +### [1.0.0] + +#### Added + +- New chart + +#### Changed + +- N/A + +#### Removed + +- N/A + +[1.0.0]: #1.0.0 + +## Support + +- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/) +- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose) +- Ask a [question](https://github.com/k8s-at-home/organization/discussions) +- Join our [Discord](https://discord.gg/sTMX7Vh) community diff --git a/charts/stable/promcord/README.md.gotmpl b/charts/stable/promcord/README.md.gotmpl new file mode 100644 index 00000000..c21f99b3 --- /dev/null +++ b/charts/stable/promcord/README.md.gotmpl @@ -0,0 +1,145 @@ +{{- define "custom.repository.organization" -}} +k8s-at-home +{{- end -}} + +{{- define "custom.repository.url" -}} +https://github.com/k8s-at-home/charts +{{- end -}} + +{{- define "custom.helm.url" -}} +https://k8s-at-home.com/charts/ +{{- end -}} + +{{- define "custom.helm.path" -}} +{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }} +{{- end -}} + +{{- define "custom.notes" -}} +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)** +{{- end -}} + +{{- define "custom.requirements" -}} +## Requirements + +{{ template "chart.kubeVersionLine" . }} +{{- end -}} + +{{- define "custom.dependencies" -}} +## Dependencies + +{{ template "chart.requirementsTable" . }} +{{- end -}} + +{{- define "custom.install.tldr" -}} +## TL;DR + +```console +helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }} +helm repo update +helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} +``` +{{- end -}} + +{{- define "custom.install" -}} +## Installing the Chart + +To install the chart with the release name `{{ template "chart.name" . }}` + +```console +helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} +``` +{{- end -}} + +{{- define "custom.uninstall" -}} +## Uninstalling the Chart + +To uninstall the `{{ template "chart.name" . }}` deployment + +```console +helm uninstall {{ template "chart.name" . }} +``` + +The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release. +{{- end -}} + +{{- define "custom.configuration.header" -}} +## Configuration +{{- end -}} + +{{- define "custom.configuration.readValues" -}} +Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values. +Other values may be used from the [values.yaml](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common). +{{- end -}} + +{{- define "custom.configuration.example.set" -}} +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install {{ template "chart.name" . }} \ + --set env.TZ="America/New York" \ + {{ template "custom.helm.path" . }} +``` +{{- end -}} + +{{- define "custom.configuration.example.file" -}} +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml +``` +{{- end -}} + +{{- define "custom.valuesSection" -}} +## Values + +**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common) + +{{ template "chart.valuesTable" . }} +{{- end -}} + +{{- define "custom.support" -}} +## Support + +- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/) +- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose) +- Ask a [question](https://github.com/k8s-at-home/organization/discussions) +- Join our [Discord](https://discord.gg/sTMX7Vh) community +{{- end -}} + +{{ template "chart.header" . }} + +{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }} + +{{ template "chart.description" . }} + +{{ template "custom.notes" . }} + +{{ template "chart.sourcesSection" . }} + +{{ template "custom.requirements" . }} + +{{ template "custom.dependencies" . }} + +{{ template "custom.install.tldr" . }} + +{{ template "custom.install" . }} + +{{ template "custom.uninstall" . }} + +{{ template "custom.configuration.header" . }} + +{{ template "custom.configuration.readValues" . }} + +{{ template "custom.configuration.example.set" . }} + +{{ template "custom.configuration.example.file" . }} + +{{ template "custom.custom.configuration" . }} + +{{ template "custom.valuesSection" . }} + +{{ template "custom.changelog" . }} + +{{ template "custom.support" . }} + +{{ template "helm-docs.versionFooter" . }} diff --git a/charts/stable/promcord/README_CHANGELOG.md.gotmpl b/charts/stable/promcord/README_CHANGELOG.md.gotmpl new file mode 100644 index 00000000..dd23ba4d --- /dev/null +++ b/charts/stable/promcord/README_CHANGELOG.md.gotmpl @@ -0,0 +1,27 @@ +{{- define "custom.changelog.header" -}} +## Changelog +{{- end -}} + +{{- define "custom.changelog" -}} +{{ template "custom.changelog.header" . }} + +All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common#changelog). + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +### [1.0.0] + +#### Added + +- New chart + +#### Changed + +- N/A + +#### Removed + +- N/A + +[1.0.0]: #1.0.0 +{{- end -}} diff --git a/charts/stable/promcord/README_CONFIG.md.gotmpl b/charts/stable/promcord/README_CONFIG.md.gotmpl new file mode 100644 index 00000000..e93d80bf --- /dev/null +++ b/charts/stable/promcord/README_CONFIG.md.gotmpl @@ -0,0 +1,9 @@ +{{- define "custom.custom.configuration.header" -}} +## Custom configuration +{{- end -}} + +{{- define "custom.custom.configuration" -}} +{{ template "custom.custom.configuration.header" . }} + +N/A +{{- end -}} diff --git a/charts/stable/promcord/templates/NOTES.txt b/charts/stable/promcord/templates/NOTES.txt new file mode 100644 index 00000000..90f7b653 --- /dev/null +++ b/charts/stable/promcord/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "common.notes.defaultNotes" . -}} diff --git a/charts/stable/promcord/templates/common.yaml b/charts/stable/promcord/templates/common.yaml new file mode 100644 index 00000000..64e027ac --- /dev/null +++ b/charts/stable/promcord/templates/common.yaml @@ -0,0 +1,5 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Render the templates */}} +{{ include "common.all" . }} diff --git a/charts/stable/promcord/templates/podmonitor.yaml b/charts/stable/promcord/templates/podmonitor.yaml new file mode 100644 index 00000000..f2f51c3e --- /dev/null +++ b/charts/stable/promcord/templates/podmonitor.yaml @@ -0,0 +1,24 @@ +{{- if .Values.prometheus.podMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: PodMonitor +metadata: + name: {{ template "common.names.fullname" . }} + labels: + {{- include "common.labels" . | nindent 4 }} + {{- with .Values.prometheus.podMonitor.additionalLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + selector: + matchLabels: + {{- include "common.labels.selectorLabels" . | nindent 6 }} + podMetricsEndpoints: + - port: metrics + {{- with .Values.prometheus.podMonitor.interval }} + interval: {{ . }} + {{- end }} + {{- with .Values.prometheus.podMonitor.scrapeTimeout }} + scrapeTimeout: {{ . }} + {{- end }} + path: /metrics +{{- end }} diff --git a/charts/stable/promcord/values.yaml b/charts/stable/promcord/values.yaml new file mode 100644 index 00000000..f5ca16a3 --- /dev/null +++ b/charts/stable/promcord/values.yaml @@ -0,0 +1,56 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml +# + +image: + repository: biospheere/promcord + pullPolicy: IfNotPresent + tag: "latest" + +service: + enabled: false + additionalPorts: + - port: 8080 + name: metrics + protocol: TCP + targetPort: 8080 + +## Probes configuration +probes: + liveness: + enabled: true + custom: true + spec: + tcpSocket: + port: 8080 + readiness: + enabled: true + custom: true + spec: + tcpSocket: + port: 8080 + startup: + enabled: true + custom: true + spec: + tcpSocket: + port: 8080 + +strategy: + type: Recreate + +# https://github.com/nimarion/promcord/blob/master/README.md +env: + # -- Discord bot token + # DISCORD_TOKEN: + +# Enable a prometheus-operator podmonitor +prometheus: + podMonitor: + enabled: false + interval: 1m + scrapeTimeout: 30s + additionalLabels: {}