diff --git a/charts/vikunja/.helmignore b/charts/vikunja/.helmignore new file mode 100644 index 00000000..2a482c10 --- /dev/null +++ b/charts/vikunja/.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 \ No newline at end of file diff --git a/charts/vikunja/Chart.yaml b/charts/vikunja/Chart.yaml new file mode 100644 index 00000000..79b49142 --- /dev/null +++ b/charts/vikunja/Chart.yaml @@ -0,0 +1,26 @@ +apiVersion: v2 +appVersion: 0.16.0 +description: The to-do app to organize your life +name: vikunja +version: 1.0.0 +keywords: + - vikunja + - to-do + - tasks + - calendar + - kanban +home: https://github.com/k8s-at-home/charts/tree/master/charts/vikunja +icon: https://s7.gifyu.com/images/GifCroppedTran.gif +sources: + - https://kolaente.dev/vikunja/api + - https://kolaente.dev/vikunja/frontend + - https://hub.docker.com/r/vikunja/api + - https://hub.docker.com/r/vikunja/frontend + - https://vikunja.io/docs/ +maintainers: + - name: auricom + email: k8s-at-home@xpander.eml.cc +dependencies: + - name: common + repository: https://library-charts.k8s-at-home.com + version: 1.0.0 diff --git a/charts/vikunja/README.md b/charts/vikunja/README.md new file mode 100644 index 00000000..7f29fe90 --- /dev/null +++ b/charts/vikunja/README.md @@ -0,0 +1,133 @@ +# vikunja + +![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 0.16.0](https://img.shields.io/badge/AppVersion-0.16.0-informational?style=flat-square) + +The to-do app to organize your life + +**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 + +## Dependencies + +| Repository | Name | Version | +|------------|------|---------| +| https://library-charts.k8s-at-home.com | common | 1.0.0 | + +## TL;DR + +```console +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm repo update +helm install vikunja k8s-at-home/vikunja +``` + +## Installing the Chart + +To install the chart with the release name `vikunja` + +```console +helm install vikunja k8s-at-home/vikunja +``` + +## Uninstalling the Chart + +To uninstall the `vikunja` deployment + +```console +helm uninstall vikunja +``` + +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](../common/values.yaml) from the [common library](../common). + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +```console +helm install vikunja \ + --set env.TZ="America/New York" \ + k8s-at-home/vikunja +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install vikunja k8s-at-home/vikunja -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/charts/tree/master/charts/common/) + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| additionalContainers[0].env[0] | object | `{"name":"VIKUNJA_SERVICE_JWTSECRET","value":"myVeryComplexJWTSecret"}` | Vikunja unique secret | +| additionalContainers[0].image | string | `"vikunja/api:0.16.0"` | Vikunja api image and tag | +| additionalContainers[0].imagePullPolicy | string | `"IfNotPresent"` | | +| additionalContainers[0].name | string | `"api"` | | +| additionalContainers[1].image | string | `"vikunja/frontend:0.16.0"` | Vikunja frontend image and tag | +| additionalContainers[1].imagePullPolicy | string | `"IfNotPresent"` | | +| additionalContainers[1].name | string | `"frontend"` | | +| additionalVolumeMounts[0].mountPath | string | `"/etc/caddy/Caddyfile"` | | +| additionalVolumeMounts[0].name | string | `"vikunja-config"` | | +| additionalVolumeMounts[0].subPath | string | `"Caddyfile"` | | +| additionalVolumes[0].configMap.name | string | `"vikunja-config"` | | +| additionalVolumes[0].name | string | `"vikunja-config"` | | +| affinity | object | `{}` | Affinity settings for pod assignment of the GUI | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"caddy"` | Caddy reverse proxy image and tag | +| image.tag | string | `"2.3.0-alpine"` | vikunja api image tag | +| nodeSelector | object | `{}` | Node labels for pod assignment of the GUI | +| persistence.files | object | `{"emptyDir":false,"enabled":false,"mountpath":"/app/vikunja/files"}` | Volume used for static files | +| podAnnotations | object | `{}` | Pod annotations | +| resources | object | `{}` | | +| service.port.port | int | `8080` | Kubernetes port where used by Caddy reverse proxy | +| tolerations | list | `[]` | Toleration labels for pod assignment of the GUI | + +## 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/charts/tree/master/charts/common/README.md#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 + +- N/A + +#### 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 + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) \ No newline at end of file diff --git a/charts/vikunja/README.md.gotmpl b/charts/vikunja/README.md.gotmpl new file mode 100644 index 00000000..8b868671 --- /dev/null +++ b/charts/vikunja/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](../common/values.yaml) from the [common library](../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/charts/tree/master/charts/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/vikunja/README_CHANGELOG.md.gotmpl b/charts/vikunja/README_CHANGELOG.md.gotmpl new file mode 100644 index 00000000..e6167dad --- /dev/null +++ b/charts/vikunja/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/charts/tree/master/charts/common/README.md#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 + +- N/A + +#### Changed + +- N/A + +#### Removed + +- N/A + +[1.0.0]: #1.0.0 +{{- end -}} diff --git a/charts/vikunja/README_CONFIG.md.gotmpl b/charts/vikunja/README_CONFIG.md.gotmpl new file mode 100644 index 00000000..e93d80bf --- /dev/null +++ b/charts/vikunja/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/vikunja/templates/common.yaml b/charts/vikunja/templates/common.yaml new file mode 100644 index 00000000..a6613c2c --- /dev/null +++ b/charts/vikunja/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/vikunja/templates/configmap.yaml b/charts/vikunja/templates/configmap.yaml new file mode 100644 index 00000000..6fc2c8b1 --- /dev/null +++ b/charts/vikunja/templates/configmap.yaml @@ -0,0 +1,19 @@ + +{{/* +Vikunja Configuration files. +*/}} +apiVersion: v1 +kind: ConfigMap +metadata: + name: "vikunja-config" + labels: + {{- include "common.labels" . | nindent 4 }} +data: + Caddyfile: |- + {{ if .Values.service.port.port }}:{{ .Values.service.port.port }} { + reverse_proxy /api/* localhost:3456 + reverse_proxy /.well-known/* localhost:3456 + reverse_proxy /dav/* localhost:3456 + reverse_proxy localhost:80 + } + {{ end }} \ No newline at end of file diff --git a/charts/vikunja/values.yaml b/charts/vikunja/values.yaml new file mode 100644 index 00000000..5a822860 --- /dev/null +++ b/charts/vikunja/values.yaml @@ -0,0 +1,96 @@ +# Default values for vikunja. + +image: + # -- Caddy reverse proxy image and tag + repository: caddy + # -- vikunja api image tag + tag: 2.3.0-alpine + # vikunja api image pull policy + pullPolicy: IfNotPresent + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +service: + port: + # -- Kubernetes port where used by Caddy reverse proxy + port: 8080 + +# -- Node labels for pod assignment of the GUI +nodeSelector: {} + +# -- Toleration labels for pod assignment of the GUI +tolerations: [] + +# -- Affinity settings for pod assignment of the GUI +affinity: {} + +# -- Pod annotations +podAnnotations: {} + +additionalContainers: +- name: api +# -- Vikunja api image and tag + image: vikunja/api:0.16.0 +# You can declare all Vikunja parameters as environment variables +# Please consult https://vikunja.io/docs/config-options/ to see all parameters + imagePullPolicy: IfNotPresent + env: +# -- Vikunja unique secret + - name: VIKUNJA_SERVICE_JWTSECRET + value: myVeryComplexJWTSecret +# - name: VIKUNJA_DATABASE_TYPE +# value: "postgres" +# - name: VIKUNJA_DATABASE_HOST +# value: db +# - name: VIKUNJA_DATABASE_DATABASE +# value: vikunja +# - name: VIKUNJA_DATABASE_USER +# value: "vikunja" +# - name: VIKUNJA_DATABASE_PASSWORD +# value: password +# volumeMounts: +# - name: files +# mountPath: /app/vikunja/files + +- name: frontend + # -- Vikunja frontend image and tag + image: vikunja/frontend:0.16.0 + imagePullPolicy: IfNotPresent + +persistence: +# -- Volume used for static files + files: + enabled: false + emptyDir: false + mountpath: /app/vikunja/files + ## Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + # storageClass: "-" + # accessMode: ReadWriteOnce + # size: 1Gi + ## Do not delete the pvc upon helm uninstall + # skipuninstall: false + # existingClaim: "" + +additionalVolumes: +- name: vikunja-config + configMap: + name: vikunja-config +additionalVolumeMounts: +- name: vikunja-config + mountPath: /etc/caddy/Caddyfile + subPath: Caddyfile