From b7ae6a5581c687afb845ea5990584183c1579688 Mon Sep 17 00:00:00 2001 From: Gabe Cook Date: Thu, 30 Mar 2023 23:07:08 -0500 Subject: [PATCH] :sparkles: (healthchecks): Initial Healthchecks chart release --- README.md | 1 + charts/healthchecks/.helmignore | 26 +++++ charts/healthchecks/Chart.lock | 12 +++ charts/healthchecks/Chart.yaml | 39 +++++++ charts/healthchecks/README.md | 107 ++++++++++++++++++++ charts/healthchecks/README_CONFIG.md.gotmpl | 13 +++ charts/healthchecks/icon.svg | 1 + charts/healthchecks/templates/NOTES.txt | 1 + charts/healthchecks/templates/common.yaml | 40 ++++++++ charts/healthchecks/values.yaml | 94 +++++++++++++++++ 10 files changed, 334 insertions(+) create mode 100644 charts/healthchecks/.helmignore create mode 100644 charts/healthchecks/Chart.lock create mode 100644 charts/healthchecks/Chart.yaml create mode 100644 charts/healthchecks/README.md create mode 100644 charts/healthchecks/README_CONFIG.md.gotmpl create mode 100644 charts/healthchecks/icon.svg create mode 100644 charts/healthchecks/templates/NOTES.txt create mode 100644 charts/healthchecks/templates/common.yaml create mode 100644 charts/healthchecks/values.yaml diff --git a/README.md b/README.md index 15fde7b80..497b4ef51 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ helm delete my- | [flame flame icon](charts/flame/) | Flame is self-hosted startpage for your server. Easily manage your apps and bookmarks with built-in editors. | | [hammond hammond icon](charts/hammond/) | A self-hosted vehicle expense tracking system with support for multiple users. | | [headscale headscale icon](charts/headscale/) | An open source, self-hosted implementation of the Tailscale control server. | +| [healthchecks healthchecks icon](charts/healthchecks/) | A cron monitoring tool written in Python & Django | | [home-assistant home-assistant icon](charts/home-assistant/) | Open source home automation that puts local control and privacy first. | | [homer homer icon](charts/homer/) | A dead simple static HOMepage for your servER to keep your services on hand, from a simple yaml configuration file. | | [limo ](charts/limo/) | A file upload server. | diff --git a/charts/healthchecks/.helmignore b/charts/healthchecks/.helmignore new file mode 100644 index 000000000..f2409818d --- /dev/null +++ b/charts/healthchecks/.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 +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# helm-docs templates +*.gotmpl +icon.svg diff --git a/charts/healthchecks/Chart.lock b/charts/healthchecks/Chart.lock new file mode 100644 index 000000000..30005efae --- /dev/null +++ b/charts/healthchecks/Chart.lock @@ -0,0 +1,12 @@ +dependencies: +- name: common + repository: https://bjw-s.github.io/helm-charts + version: 1.3.2 +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 12.2.6 +- name: mariadb + repository: https://charts.bitnami.com/bitnami + version: 11.5.5 +digest: sha256:87897fd2b94fcc04ad9fa0abaf0b493b45199c730c5c27fe8272288426c13aa6 +generated: "2023-03-30T22:43:34.248267-05:00" diff --git a/charts/healthchecks/Chart.yaml b/charts/healthchecks/Chart.yaml new file mode 100644 index 000000000..f65d5ed3b --- /dev/null +++ b/charts/healthchecks/Chart.yaml @@ -0,0 +1,39 @@ +apiVersion: v2 +name: healthchecks +description: A cron monitoring tool written in Python & Django +home: https://charts.gabe565.com/charts/healthchecks +icon: https://raw.githubusercontent.com/gabe565/charts/main/charts/healthchecks/icon.svg +type: application +version: 0.1.0 +# renovate datasource=docker depName=ghcr.io/linuxserver/healthchecks +appVersion: version-v2.7 +kubeVersion: ">=1.22.0-0" +keywords: + - cron + - monitoring + - notifier +dependencies: + - name: common + repository: https://bjw-s.github.io/helm-charts + version: 1.3.2 + - name: postgresql + version: 12.2.6 + repository: https://charts.bitnami.com/bitnami + condition: postgresql.enabled + - name: mariadb + version: 11.5.5 + repository: https://charts.bitnami.com/bitnami + condition: mariadb.enabled +sources: + - https://github.com/healthchecks/healthchecks +annotations: + artifacthub.io/changes: |- + - kind: added + description: Initial release + artifacthub.io/links: |- + - name: App Source + url: https://github.com/healthchecks/healthchecks + - name: Container Source + url: https://github.com/linuxserver/docker-healthchecks + - name: Chart Source + url: https://github.com/gabe565/charts/tree/main/charts/healthchecks diff --git a/charts/healthchecks/README.md b/charts/healthchecks/README.md new file mode 100644 index 000000000..9ace32d39 --- /dev/null +++ b/charts/healthchecks/README.md @@ -0,0 +1,107 @@ +# healthchecks + +healthchecks logo + +![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat) +![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat) +![AppVersion: version-v2.7](https://img.shields.io/badge/AppVersion-version--v2.7-informational?style=flat) + +A cron monitoring tool written in Python & Django + +**Homepage:** + +**This chart is not maintained by the upstream project and any issues with the chart should be raised +[here](https://github.com/gabe565/charts/issues/new?assignees=gabe565&labels=bug&template=bug_report.yaml&name=healthchecks&version=0.1.0)** + +## Source Code + +* + +## Requirements + +Kubernetes: `>=1.22.0-0` + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| | common | 1.3.2 | +| | mariadb | 11.5.5 | +| | postgresql | 12.2.6 | + +## TL;DR + +```console +helm repo add gabe565 https://charts.gabe565.com +helm repo update +helm install healthchecks gabe565/healthchecks +``` + +## Installing the Chart + +To install the chart with the release name `healthchecks` + +```console +helm install healthchecks gabe565/healthchecks +``` + +## Uninstalling the Chart + +To uninstall the `healthchecks` deployment + +```console +helm uninstall healthchecks +``` + +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/bjw-s/helm-charts/tree/main/charts/library/common/values.yaml) from the [bjw-s common library](https://github.com/bjw-s/helm-charts/tree/main/charts/library/common). + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install healthchecks \ + --set env.TZ="America/New York" \ + gabe565/healthchecks +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install healthchecks gabe565/healthchecks -f values.yaml +``` + +## Custom configuration + +### Database Installation + +Healthchecks supports PostgreSQL, MariaDB, and SQLite. +This chart can install PostgreSQL or MariaDB and configure Healthchecks automatically. +See each database section in [`values.yaml`](./values.yaml) for configuration examples. + +## Values + +**Important**: When deploying an application Helm chart you can add more values from the bjw-s common library chart [here](https://github.com/bjw-s/helm-charts/tree/main/charts/library/common) + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| env | object | See [values.yaml](./values.yaml) | Environment variables [[ref]](https://healthchecks.io/docs/self_hosted_configuration/) | +| env.SECRET_KEY | string | `nil` | A secret key used for cryptographic signing. Use `openssl rand -base64 32` to generate a random key. | +| env.SITE_NAME | string | `"Healthchecks"` | The site's name | +| env.SUPERUSER_EMAIL | string | `nil` | Superuser email | +| env.SUPERUSER_PASSWORD | string | `nil` | Superuser password | +| env.TZ | string | `"UTC"` | Set the container timezone | +| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | +| image.repository | string | `"ghcr.io/linuxserver/healthchecks"` | Image repository | +| image.tag | string | `"version-v2.7"` | Image tag | +| ingress.main | object | See [values.yaml](./values.yaml) | Enable and configure ingress settings for the chart under this key. | +| mariadb | object | See [values.yaml](./values.yaml) | Enable and configure mariadb database subchart under this key. If enabled, the app's db envs will be set for you. For more options see [mariadb chart documentation](https://github.com/bitnami/charts/tree/master/bitnami/mariadb) | +| persistence.config | object | See [values.yaml](./values.yaml) | Configure persistence settings for the chart under this key. Necessary for SQLite. | +| postgresql | object | See [values.yaml](./values.yaml) | Enable and configure postgresql database subchart under this key. If enabled, the app's db envs will be set for you. For more options see [postgresql chart documentation](https://github.com/bitnami/charts/tree/master/bitnami/postgresql) | +| service.main | object | See [values.yaml](./values.yaml) | Configures service settings for the chart. | + +--- +Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs) diff --git a/charts/healthchecks/README_CONFIG.md.gotmpl b/charts/healthchecks/README_CONFIG.md.gotmpl new file mode 100644 index 000000000..b30f82f51 --- /dev/null +++ b/charts/healthchecks/README_CONFIG.md.gotmpl @@ -0,0 +1,13 @@ +{{- define "custom.custom.configuration.header" -}} +## Custom configuration +{{- end -}} + +{{- define "custom.custom.configuration" -}} +{{ template "custom.custom.configuration.header" . }} + +### Database Installation + +Healthchecks supports PostgreSQL, MariaDB, and SQLite. +This chart can install PostgreSQL or MariaDB and configure Healthchecks automatically. +See each database section in [`values.yaml`](./values.yaml) for configuration examples. +{{- end -}} diff --git a/charts/healthchecks/icon.svg b/charts/healthchecks/icon.svg new file mode 100644 index 000000000..02dc0c2c8 --- /dev/null +++ b/charts/healthchecks/icon.svg @@ -0,0 +1 @@ + diff --git a/charts/healthchecks/templates/NOTES.txt b/charts/healthchecks/templates/NOTES.txt new file mode 100644 index 000000000..44ecfaa6c --- /dev/null +++ b/charts/healthchecks/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "bjw-s.common.lib.chart.notes" . -}} diff --git a/charts/healthchecks/templates/common.yaml b/charts/healthchecks/templates/common.yaml new file mode 100644 index 000000000..f5dbfd4ea --- /dev/null +++ b/charts/healthchecks/templates/common.yaml @@ -0,0 +1,40 @@ +{{/* Append the hardcoded settings */}} +{{- define "healthchecks.harcodedValues" -}} +env: + {{- with .Values.ingress.main }} + {{- if and .enabled .hosts }} + SITE_ROOT: http{{ if .tls }}s{{ end }}://{{ (first .hosts).host }} + {{- end }} + {{- end }} + + {{- if .Values.postgresql.enabled }} + {{- with .Values.postgresql }} + DB: postgres + DB_HOST: {{ $.Release.Name }}-postgresql + DB_NAME: {{ .auth.database }} + DB_USER: {{ default "postgres" .auth.username }} + DB_PASSWORD: + secretKeyRef: + name: {{ $.Release.Name }}-postgresql + key: {{ if not .auth.password }}postgres-{{ end }}password + {{- end }} + {{- else if .Values.mariadb.enabled }} + {{- with .Values.mariadb}} + DB: mysql + DB_HOST: {{ $.Release.Name }}-mariadb + DB_NAME: {{ .auth.database }} + DB_USER: {{ .auth.username }} + DB_PASSWORD: + secretKeyRef: + name: {{ $.Release.Name }}-mariadb + key: mariadb-password + {{- end }} + {{- end }} + +termination: + gracePeriodSeconds: "0" +{{- end -}} +{{- $_ := merge .Values (include "healthchecks.harcodedValues" . | fromYaml) -}} + +{{/* Render the templates */}} +{{ include "bjw-s.common.loader.all" . }} diff --git a/charts/healthchecks/values.yaml b/charts/healthchecks/values.yaml new file mode 100644 index 000000000..0c615fa45 --- /dev/null +++ b/charts/healthchecks/values.yaml @@ -0,0 +1,94 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/bjw-s/helm-charts/blob/main/charts/library/common/values.yaml +# + +image: + # -- Image repository + repository: ghcr.io/linuxserver/healthchecks + # -- Image pull policy + pullPolicy: IfNotPresent + # -- Image tag + tag: version-v2.7 + +# -- Environment variables [[ref]](https://healthchecks.io/docs/self_hosted_configuration/) +# @default -- See [values.yaml](./values.yaml) +env: + # -- Set the container timezone + TZ: UTC + # -- The site's name + SITE_NAME: Healthchecks + # -- (string) A secret key used for cryptographic signing. + # Use `openssl rand -base64 32` to generate a random key. + SECRET_KEY: + # -- (string) Superuser email + SUPERUSER_EMAIL: + # -- (string) Superuser password + SUPERUSER_PASSWORD: + +service: + # -- Configures service settings for the chart. + # @default -- See [values.yaml](./values.yaml) + main: + ports: + http: + port: 8000 + +ingress: + # -- Enable and configure ingress settings for the chart under this key. + # @default -- See [values.yaml](./values.yaml) + main: + enabled: false + # hosts: + # - host: chart-example.local + # paths: + # - path: / + # tls: + # - secretName: chart-example.local + # hosts: + # - chart-example.local + +persistence: + # -- Configure persistence settings for the chart under this key. + # Necessary for SQLite. + # @default -- See [values.yaml](./values.yaml) + config: + enabled: false + retain: true + # storageClass: "" + # accessMode: ReadWriteOnce + # size: 4Gi + +# -- Enable and configure postgresql database subchart under this key. +# If enabled, the app's db envs will be set for you. +# For more options see [postgresql chart documentation](https://github.com/bitnami/charts/tree/master/bitnami/postgresql) +# @default -- See [values.yaml](./values.yaml) +postgresql: + enabled: false + auth: + database: healthchecks + postgresPassword: changeme + primary: + persistence: + enabled: false + # storageClass: "" + # size: 8Gi + +# -- Enable and configure mariadb database subchart under this key. +# If enabled, the app's db envs will be set for you. +# For more options see [mariadb chart documentation](https://github.com/bitnami/charts/tree/master/bitnami/mariadb) +# @default -- See [values.yaml](./values.yaml) +mariadb: + enabled: false + auth: + database: healthchecks + username: healthchecks + password: changeme + rootPassword: changeme + primary: + persistence: + enabled: false + # storageClass: "" + # size: 8Gi