From e6dfc81f5871cd91ac83cfb5c811c12158401a70 Mon Sep 17 00:00:00 2001 From: Patrick Collins Date: Mon, 22 Feb 2021 04:39:39 -0800 Subject: [PATCH] [airsonic] new chart (#611) --- charts/airsonic/.helmignore | 26 ++++ charts/airsonic/Chart.yaml | 21 +++ charts/airsonic/OWNERS | 10 ++ charts/airsonic/README.md | 132 +++++++++++++++++++ charts/airsonic/README.md.gotmpl | 145 +++++++++++++++++++++ charts/airsonic/README_CHANGELOG.md.gotmpl | 27 ++++ charts/airsonic/README_CONFIG.md.gotmpl | 11 ++ charts/airsonic/templates/NOTES.txt | 1 + charts/airsonic/templates/common.yaml | 1 + charts/airsonic/values.yaml | 63 +++++++++ 10 files changed, 437 insertions(+) create mode 100644 charts/airsonic/.helmignore create mode 100644 charts/airsonic/Chart.yaml create mode 100644 charts/airsonic/OWNERS create mode 100644 charts/airsonic/README.md create mode 100644 charts/airsonic/README.md.gotmpl create mode 100644 charts/airsonic/README_CHANGELOG.md.gotmpl create mode 100644 charts/airsonic/README_CONFIG.md.gotmpl create mode 100644 charts/airsonic/templates/NOTES.txt create mode 100644 charts/airsonic/templates/common.yaml create mode 100644 charts/airsonic/values.yaml diff --git a/charts/airsonic/.helmignore b/charts/airsonic/.helmignore new file mode 100644 index 00000000..4379e2b3 --- /dev/null +++ b/charts/airsonic/.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/airsonic/Chart.yaml b/charts/airsonic/Chart.yaml new file mode 100644 index 00000000..7b71adb8 --- /dev/null +++ b/charts/airsonic/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +appVersion: 10.6.2 +description: Airsonic is a Free and Open Source community driven media server +name: airsonic +version: 1.0.0 +kubeVersion: ">=1.16.0-0" +keywords: +- airsonic +home: https://github.com/k8s-at-home/charts/tree/master/charts/airsonic +icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/airsonic-logo.png +sources: +- https://github.com/airsonic/airsonic +- https://github.com/linuxserver/docker-airsonic +- https://github.com/k8s-at-home/charts/tree/master/charts/airsonic +maintainers: +- name: Patricol + url: https://patricol.co/ +dependencies: +- name: common + repository: https://k8s-at-home.com/charts/ + version: 3.0.1 diff --git a/charts/airsonic/OWNERS b/charts/airsonic/OWNERS new file mode 100644 index 00000000..42f30497 --- /dev/null +++ b/charts/airsonic/OWNERS @@ -0,0 +1,10 @@ +approvers: +- billimek +- onedr0p +- bjw-s +- Patricol +reviewers: +- billimek +- onedr0p +- bjw-s +- Patricol diff --git a/charts/airsonic/README.md b/charts/airsonic/README.md new file mode 100644 index 00000000..70b5659e --- /dev/null +++ b/charts/airsonic/README.md @@ -0,0 +1,132 @@ +# airsonic + +![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 10.6.2](https://img.shields.io/badge/AppVersion-10.6.2-informational?style=flat-square) + +Airsonic is a Free and Open Source community driven media 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://k8s-at-home.com/charts/ | common | 3.0.1 | + +## TL;DR + +```console +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm repo update +helm install airsonic k8s-at-home/airsonic +``` + +## Installing the Chart + +To install the chart with the release name `airsonic` + +```console +helm install airsonic k8s-at-home/airsonic +``` + +## Uninstalling the Chart + +To uninstall the `airsonic` deployment + +```console +helm uninstall airsonic +``` + +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 airsonic \ + --set env.TZ="America/New York" \ + k8s-at-home/airsonic +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. + +```console +helm install airsonic k8s-at-home/airsonic -f values.yaml +``` + +## Custom configuration + +If you plan to use networked storage to store your media or config for Airsonic, (NFS, etc.) please take a look at the +Fast Access option in the Airsonic settings. This will help improve the performance of the application +by not constantly monitoring media folders. + +## 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 | +|-----|------|---------|-------------| +| env | object | `{}` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"linuxserver/airsonic"` | | +| image.tag | string | `"v10.6.2-ls97"` | | +| ingress.enabled | bool | `false` | | +| persistence.config.emptyDir | bool | `false` | | +| persistence.config.enabled | bool | `false` | | +| persistence.media.emptyDir | bool | `false` | | +| persistence.media.enabled | bool | `false` | | +| persistence.media.mountPath | string | `"/media"` | | +| persistence.music.emptyDir | bool | `false` | | +| persistence.music.enabled | bool | `false` | | +| persistence.music.mountPath | string | `"/music"` | | +| persistence.playlists.emptyDir | bool | `false` | | +| persistence.playlists.enabled | bool | `false` | | +| persistence.playlists.mountPath | string | `"/playlists"` | | +| persistence.podcasts.emptyDir | bool | `false` | | +| persistence.podcasts.enabled | bool | `false` | | +| persistence.podcasts.mountPath | string | `"/podcasts"` | | +| service.port.port | int | `4040` | | +| 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/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 [Wiki](https://github.com/k8s-at-home/charts/wiki) +- Open a [issue](https://github.com/k8s-at-home/charts/issues/new/choose) +- Ask a [question](https://github.com/k8s-at-home/charts/discussions) +- Join our [Discord](https://discord.gg/sTMX7Vh) community + diff --git a/charts/airsonic/README.md.gotmpl b/charts/airsonic/README.md.gotmpl new file mode 100644 index 00000000..387904a6 --- /dev/null +++ b/charts/airsonic/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 [Wiki](https://github.com/k8s-at-home/charts/wiki) +- Open a [issue](https://github.com/k8s-at-home/charts/issues/new/choose) +- Ask a [question](https://github.com/k8s-at-home/charts/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/airsonic/README_CHANGELOG.md.gotmpl b/charts/airsonic/README_CHANGELOG.md.gotmpl new file mode 100644 index 00000000..e6167dad --- /dev/null +++ b/charts/airsonic/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/airsonic/README_CONFIG.md.gotmpl b/charts/airsonic/README_CONFIG.md.gotmpl new file mode 100644 index 00000000..fb7a96c9 --- /dev/null +++ b/charts/airsonic/README_CONFIG.md.gotmpl @@ -0,0 +1,11 @@ +{{- define "custom.custom.configuration.header" -}} +## Custom configuration +{{- end -}} + +{{- define "custom.custom.configuration" -}} +{{ template "custom.custom.configuration.header" . }} + +If you plan to use networked storage to store your media or config for Airsonic, (NFS, etc.) please take a look at the +Fast Access option in the Airsonic settings. This will help improve the performance of the application +by not constantly monitoring media folders. +{{- end -}} diff --git a/charts/airsonic/templates/NOTES.txt b/charts/airsonic/templates/NOTES.txt new file mode 100644 index 00000000..90f7b653 --- /dev/null +++ b/charts/airsonic/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "common.notes.defaultNotes" . -}} diff --git a/charts/airsonic/templates/common.yaml b/charts/airsonic/templates/common.yaml new file mode 100644 index 00000000..a6613c2c --- /dev/null +++ b/charts/airsonic/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/airsonic/values.yaml b/charts/airsonic/values.yaml new file mode 100644 index 00000000..815c1e74 --- /dev/null +++ b/charts/airsonic/values.yaml @@ -0,0 +1,63 @@ +# +# IMPORTANT NOTE +# +# This chart inherits from our common library chart. You can check the default values/options here: +# https://github.com/k8s-at-home/charts/tree/master/charts/common/values.yaml +# + +image: + repository: linuxserver/airsonic + pullPolicy: IfNotPresent + tag: v10.6.2-ls97 + +strategy: + type: Recreate + +env: {} + # TZ: UTC + # PUID: "1001" + # PGID: "1001" + # CONTEXT_PATH: "url-base" # Used to set the base path for reverse proxies eg. /booksonic, /books, etc. + # JAVA_OPTS: "" # For passing additional java options. For some reverse proxies, you may need to pass JAVA_OPTS=-Dserver.use-forward-headers=true for airsonic to generate the proper URL schemes. + + +service: + port: + port: 4040 + +ingress: + enabled: false + +persistence: + config: + enabled: false + emptyDir: false + + music: + enabled: false + emptyDir: false + mountPath: /music + ## 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: "" + playlists: + enabled: false + emptyDir: false + mountPath: /playlists + podcasts: + enabled: false + emptyDir: false + mountPath: /podcasts + media: + enabled: false + emptyDir: false + mountPath: /media