From f02beeb9f03df63b798b440b6cae4dfced1379e9 Mon Sep 17 00:00:00 2001 From: Lukas Wingerberg Date: Fri, 7 Jan 2022 13:17:30 +0100 Subject: [PATCH] [privatebin] Add privatebin helm chart (#1361) * add privatebin as chart --- charts/stable/privatebin/.helmignore | 26 +++ charts/stable/privatebin/Chart.yaml | 29 +++ charts/stable/privatebin/README.md | 120 ++++++++++++ charts/stable/privatebin/README.md.gotmpl | 176 ++++++++++++++++++ .../stable/privatebin/README_CONFIG.md.gotmpl | 9 + charts/stable/privatebin/templates/NOTES.txt | 1 + .../stable/privatebin/templates/common.yaml | 17 ++ .../privatebin/templates/configmap.yaml | 77 ++++++++ charts/stable/privatebin/values.yaml | 99 ++++++++++ 9 files changed, 554 insertions(+) create mode 100644 charts/stable/privatebin/.helmignore create mode 100644 charts/stable/privatebin/Chart.yaml create mode 100644 charts/stable/privatebin/README.md create mode 100644 charts/stable/privatebin/README.md.gotmpl create mode 100644 charts/stable/privatebin/README_CONFIG.md.gotmpl create mode 100644 charts/stable/privatebin/templates/NOTES.txt create mode 100644 charts/stable/privatebin/templates/common.yaml create mode 100644 charts/stable/privatebin/templates/configmap.yaml create mode 100644 charts/stable/privatebin/values.yaml diff --git a/charts/stable/privatebin/.helmignore b/charts/stable/privatebin/.helmignore new file mode 100644 index 00000000..4379e2b3 --- /dev/null +++ b/charts/stable/privatebin/.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/privatebin/Chart.yaml b/charts/stable/privatebin/Chart.yaml new file mode 100644 index 00000000..e0699600 --- /dev/null +++ b/charts/stable/privatebin/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +appVersion: 1.3.5 +description: A minimalist, open source online pastebin running on an Nginx, php-fpm & Alpine Linux stack +name: privatebin +version: 1.0.0 +kubeVersion: ">=1.16.0-0" +keywords: +- privatebin +- pastebin +home: https://github.com/k8s-at-home/charts/tree/master/charts/incubator/privatebin +icon: https://privatebin.info/theme/img/icon.svg +sources: +- https://github.com/PrivateBin/PrivateBin +- https://github.com/PrivateBin/docker-nginx-fpm-alpine +maintainers: +- name: psych0d0g + email: psych0d0g@users.noreply.github.com +dependencies: +- name: common + repository: https://library-charts.k8s-at-home.com + version: 4.3.0 +- name: postgresql + version: 10.14.4 + repository: https://charts.bitnami.com/bitnami + condition: postgresql.enabled +annotations: + artifacthub.io/changes: | + - kind: added + description: Initial chart version diff --git a/charts/stable/privatebin/README.md b/charts/stable/privatebin/README.md new file mode 100644 index 00000000..7f21f349 --- /dev/null +++ b/charts/stable/privatebin/README.md @@ -0,0 +1,120 @@ +# privatebin + +![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 1.3.5](https://img.shields.io/badge/AppVersion-1.3.5-informational?style=flat-square) + +A minimalist, open source online pastebin running on an Nginx, php-fpm & Alpine Linux stack + +**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.14.4 | +| https://library-charts.k8s-at-home.com | common | 4.3.0 | + +## TL;DR + +```console +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm repo update +helm install privatebin k8s-at-home/privatebin +``` + +## Installing the Chart + +To install the chart with the release name `privatebin` + +```console +helm install privatebin k8s-at-home/privatebin +``` + +## Uninstalling the Chart + +To uninstall the `privatebin` deployment + +```console +helm uninstall privatebin +``` + +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 privatebin \ + --set env.TZ="America/New York" \ + k8s-at-home/privatebin +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install privatebin k8s-at-home/privatebin -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 | +|-----|------|---------|-------------| +| config | object | See values.yaml | Application Settings. See https://github.com/PrivateBin/PrivateBin/blob/master/cfg/conf.sample.php for a description of every setting | +| env | object | See below (only deviations from the default settings are specified) | environment variables. See [image docs](https://docs.kanboard.org/en/latest/admin_guide/docker.html#environment-variables) and [application docs](# https://docs.kanboard.org/en/latest/admin_guide/config_file.html) for more details. | +| env.PHP_TZ | string | `"UTC"` | PHP timezone (usually should match the containers TZ) | +| env.TZ | string | `"UTC"` | container timezone | +| image.pullPolicy | string | `"IfNotPresent"` | image pull policy | +| image.repository | string | `"privatebin/pdo"` | image repository | +| image.tag | string | `"1.3.5"` | image tag | +| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. | +| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. | +| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. For more options see [postgresql chart documentation](https://github.com/bitnami/charts/tree/master/bitnami/postgresql) | +| service | object | See values.yaml | Configures service settings for the chart. | + +## Changelog + +### Version 1.0.0 + +#### Added + +* Initial chart version + +#### Changed + +N/A + +#### Fixed + +N/A + +### Older versions + +A historical overview of changes can be found on [ArtifactHUB](https://artifacthub.io/packages/helm/k8s-at-home/privatebin?modal=changelog) + +## Support + +- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/) +- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose) +- Ask a [question](https://github.com/k8s-at-home/organization/discussions) +- Join our [Discord](https://discord.gg/sTMX7Vh) community + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v0.1.1](https://github.com/k8s-at-home/helm-docs/releases/v0.1.1) diff --git a/charts/stable/privatebin/README.md.gotmpl b/charts/stable/privatebin/README.md.gotmpl new file mode 100644 index 00000000..94f7808a --- /dev/null +++ b/charts/stable/privatebin/README.md.gotmpl @@ -0,0 +1,176 @@ +{{- 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 -}} + +{{- define "custom.changelog" -}} +{{ $changeTypes := list "added" "changed" "fixed" }} +## Changelog + +### Version {{ template "chart.version" . }} + +{{ range $changeType := $changeTypes }} + {{- with (index $.Annotations "artifacthub.io/changes") }} + {{- print "#### " ($changeType | title) | nindent 0 }} + {{- print "" | nindent 0 }} + {{- $changesFound := false }} + {{- range (print "changes:\n" . | fromYaml).changes }} + {{- if eq .kind $changeType }} + {{- print "* " .description | nindent 0 }} + {{- $changesFound = true }} + {{- end }} + {{- end }} + {{- if not $changesFound }} + {{- print "N/A" | nindent 0 }} + {{- end }} + {{- print "" | nindent 0 }} + {{- end }} +{{- end }} + +### Older versions + +A historical overview of changes can be found on [ArtifactHUB](https://artifacthub.io/packages/helm/k8s-at-home/{{- template "chart.name" . }}?modal=changelog) + +{{- 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/privatebin/README_CONFIG.md.gotmpl b/charts/stable/privatebin/README_CONFIG.md.gotmpl new file mode 100644 index 00000000..e93d80bf --- /dev/null +++ b/charts/stable/privatebin/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/privatebin/templates/NOTES.txt b/charts/stable/privatebin/templates/NOTES.txt new file mode 100644 index 00000000..90f7b653 --- /dev/null +++ b/charts/stable/privatebin/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "common.notes.defaultNotes" . -}} diff --git a/charts/stable/privatebin/templates/common.yaml b/charts/stable/privatebin/templates/common.yaml new file mode 100644 index 00000000..deacef2a --- /dev/null +++ b/charts/stable/privatebin/templates/common.yaml @@ -0,0 +1,17 @@ +{{/* Make sure all variables are set properly */}} +{{- include "common.values.setup" . }} + +{{/* Append the hardcoded settings */}} +{{- define "privatebin.harcodedValues" -}} + {{/* Append the configMap volume to the volumes */}} + persistence: + privatebin-config: + enabled: true + type: "configMap" + name: "{{ include "common.names.fullname" . }}-config" + mountPath: "/srv/cfg/conf.php" + subPath: "conf.php" +{{- end -}} +{{- $_ := mergeOverwrite .Values (include "privatebin.harcodedValues" . | fromYaml) -}} + +{{ include "common.all" . }} diff --git a/charts/stable/privatebin/templates/configmap.yaml b/charts/stable/privatebin/templates/configmap.yaml new file mode 100644 index 00000000..1328f128 --- /dev/null +++ b/charts/stable/privatebin/templates/configmap.yaml @@ -0,0 +1,77 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-config + labels: + {{- include "common.labels" . | nindent 4 }} +data: + conf.php: | + ;project page." + # notice: "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service." + # languageselection: false + # languagedefault: "en" + # urlshortener: "https://shortener.example.com/api?link=" + # qrcode: false + # icon: "none" + # zerobincompatibility: false + # httpwarning: true + # compression: "zlib" + expire: + default: "1week" + expire_options: + 5min: 300 + 10min: 600 + 1hour: 3600 + 1day: 86400 + 1week: 604800 + 1month: 2592000 + 1year: 31536000 + never: 0 + formatter_options: + plaintext: "Plain Text" + syntaxhighlighting: "Source Code" + markdown: "Markdown" + traffic: + limit: 10 + # exemptedIp: "1.2.3.4,10.10.10/24"