Compare commits

...

5 Commits

Author SHA1 Message Date
nιcнolaѕ wιlde
c8f75feb1d [bookstack] New chart (#817)
* Add bookstack

Signed-off-by: Nicholas Wilde <ncwilde43@gmail.com>

* Changed version to 0.1.0

Signed-off-by: Nicholas Wilde <ncwilde43@gmail.com>

* Update README.md

* - Moved to stable
- Uncommented persistance
- Added commented DB env variables.
- Changed tag to version-v21.04.2

Signed-off-by: Nicholas Wilde <ncwilde43@gmail.com>

Co-authored-by: ᗪєνιη ᗷυнʟ <onedr0p@users.noreply.github.com>
2021-04-22 13:23:30 -04:00
ᗪєνιη ᗷυнʟ
6c5afb5550 [transmission] use string config and showoff initContainer (#813) 2021-04-22 18:36:00 +02:00
ᗪєνιη ᗷυнʟ
4d2332b8ca [homebridge] migrate to common (#811) 2021-04-22 18:01:44 +02:00
Dennis Zhang
447b92702c update focalboard source url (#816)
Signed-off-by: Dennis Zhang <dennis.zhang.nrg@gmail.com>
2021-04-21 19:51:21 -04:00
Dennis Zhang
de742e58dc add chart for focalboard (#814) 2021-04-21 20:38:21 +02:00
38 changed files with 1104 additions and 764 deletions

View File

@@ -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

View File

@@ -0,0 +1,30 @@
---
apiVersion: v2
appVersion: v21.04.2
description: A simple, self-hosted, easy-to-use platform for organising and storing information.
name: bookstack
version: 1.0.0
kubeVersion: ">=1.16.0-0"
keywords:
- bookstack
- book
- stack
- organizer
- server
- hosted
home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/bookstack
icon: https://avatars3.githubusercontent.com/u/20912696?s=400&v=4?sanitize=true
sources:
- https://www.bookstackapp.com/
- https://hub.docker.com/r/linuxserver/bookstack
maintainers:
- name: nicholaswilde
email: ncwilde43@gmail.com
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 2.3.1
- name: mariadb
version: 9.3.7
repository: https://charts.bitnami.com/bitnami
condition: mariadb.enabled

View File

@@ -0,0 +1,117 @@
# bookstack
![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: v21.04.2](https://img.shields.io/badge/AppVersion-v21.04.2-informational?style=flat-square)
A simple, self-hosted, easy-to-use platform for organising and storing information.
**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
* <https://www.bookstackapp.com/>
* <https://hub.docker.com/r/linuxserver/bookstack>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://charts.bitnami.com/bitnami | mariadb | 9.3.7 |
| https://library-charts.k8s-at-home.com | common | 2.3.1 |
## TL;DR
```console
helm repo add k8s-at-home https://k8s-at-home.com/charts/
helm repo update
helm install bookstack k8s-at-home/bookstack
```
## Installing the Chart
To install the chart with the release name `bookstack`
```console
helm install bookstack k8s-at-home/bookstack
```
## Uninstalling the Chart
To uninstall the `bookstack` deployment
```console
helm uninstall bookstack
```
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 bookstack \
--set env.TZ="America/New York" \
k8s-at-home/bookstack
```
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install bookstack k8s-at-home/bookstack -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 | object | `{}` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"ghcr.io/linuxserver/bookstack"` | |
| image.tag | string | `"version-v21.04.2"` | |
| ingress.enabled | bool | `false` | |
| mariadb.architecture | string | `"standalone"` | |
| mariadb.auth.database | string | `"bookstack"` | |
| mariadb.auth.password | string | `"bookstack"` | |
| mariadb.auth.username | string | `"bookstack"` | |
| mariadb.enabled | bool | `false` | |
| mariadb.primary.persistence.enabled | bool | `false` | |
| persistence.config.emptyDir.enabled | bool | `false` | |
| persistence.config.enabled | bool | `false` | |
| persistence.config.mountPath | string | `"/config"` | |
| service.port.port | int | `80` | |
| 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
- Initial version
## 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)

View File

@@ -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" . }}

View File

@@ -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
- Initial version
#### Changed
- N/A
#### Removed
- N/A
[1.0.0]: #1.0.0
{{- end -}}

View File

@@ -0,0 +1,9 @@
{{- define "custom.custom.configuration.header" -}}
## Custom configuration
{{- end -}}
{{- define "custom.custom.configuration" -}}
{{ template "custom.custom.configuration.header" . }}
N/A
{{- end -}}

View File

@@ -0,0 +1 @@
{{- include "common.notes.defaultNotes" . -}}

View File

@@ -0,0 +1 @@
{{ include "common.all" . }}

View File

@@ -0,0 +1,50 @@
#
# 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: ghcr.io/linuxserver/bookstack
pullPolicy: IfNotPresent
tag: version-v21.04.2
strategy:
type: Recreate
# See more environment variables in the bookstack documentation
# https://hub.docker.com/r/linuxserver/bookstack
env: {}
# TZ:
# DB_HOST:
# DB_USER:
# DB_PASS:
# DB_DATABASE:
service:
port:
port: 80
ingress:
enabled: false
persistence:
config:
enabled: false
emptyDir:
enabled: false
mountPath: /config
# Enabled mariadb
# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb
mariadb:
enabled: false
architecture: standalone
auth:
database: bookstack
username: bookstack
password: bookstack
primary:
persistence:
enabled: false

View File

@@ -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

View File

@@ -0,0 +1,23 @@
apiVersion: v2
appVersion: 0.6.5
description: Focalboard is an open source, self-hosted alternative to Trello, Notion, and Asana.
name: focalboard
version: 1.0.1
kubeVersion: ">=1.16.0-0"
keywords:
- focalboard
- kanban
- project management
home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/focalboard
icon: https://www.focalboard.com/img/logo.svg
sources:
- https://www.focalboard.com/
- https://github.com/mattermost/focalboard
- https://github.com/FlipEnergy/container-images/blob/main/focalboard
maintainers:
- name: FlipEnergy
email: dennis.zhang.nrg@gmail.com
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 2.3.1

View File

@@ -0,0 +1,135 @@
# focalboard
![Version: 1.0.1](https://img.shields.io/badge/Version-1.0.1-informational?style=flat-square) ![AppVersion: 0.6.5](https://img.shields.io/badge/AppVersion-0.6.5-informational?style=flat-square)
Focalboard is an open source, self-hosted alternative to Trello, Notion, and Asana.
**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
* <https://www.focalboard.com/>
* <https://github.com/mattermost/focalboard>
* <https://github.com/FlipEnergy/container-images/blob/main/focalboard>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://library-charts.k8s-at-home.com | common | 2.3.1 |
## TL;DR
```console
helm repo add k8s-at-home https://k8s-at-home.com/charts/
helm repo update
helm install focalboard k8s-at-home/focalboard
```
## Installing the Chart
To install the chart with the release name `focalboard`
```console
helm install focalboard k8s-at-home/focalboard
```
## Uninstalling the Chart
To uninstall the `focalboard` deployment
```console
helm uninstall focalboard
```
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 focalboard \
--set env.TZ="America/New York" \
k8s-at-home/focalboard
```
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install focalboard k8s-at-home/focalboard -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 | object | `{}` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"flipenergy/focalboard"` | |
| image.tag | string | `"0.6.5"` | |
| ingress.enabled | bool | `false` | |
| persistence.data.emptyDir.enabled | bool | `false` | |
| persistence.data.enabled | bool | `false` | |
| persistence.data.mountPath | string | `"/data"` | |
| service.port.port | int | `8000` | |
| 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.1]
#### Added
- Updated source url
#### Changed
- N/A
#### Removed
- N/A
### [1.0.0]
#### Added
- First version of the helm chart for Focalboard
#### 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)

View File

@@ -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" . }}

View File

@@ -0,0 +1,41 @@
{{- 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.1]
#### Added
- Updated source url
#### Changed
- N/A
#### Removed
- N/A
### [1.0.0]
#### Added
- First version of the helm chart for Focalboard
#### Changed
- N/A
#### Removed
- N/A
[1.0.0]: #1.0.0
{{- end -}}

View File

@@ -0,0 +1,9 @@
{{- define "custom.custom.configuration.header" -}}
## Custom configuration
{{- end -}}
{{- define "custom.custom.configuration" -}}
{{ template "custom.custom.configuration.header" . }}
N/A
{{- end -}}

View File

@@ -0,0 +1 @@
{{- include "common.notes.defaultNotes" . -}}

View File

@@ -0,0 +1 @@
{{ include "common.all" . }}

View File

@@ -0,0 +1,35 @@
#
# 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: flipenergy/focalboard
pullPolicy: IfNotPresent
tag: 0.6.5
# See more environment variables in the image entrypoint script
# https://github.com/FlipEnergy/container-images/blob/main/focalboard/entrypoint.sh
env: {}
# SERVER_ROOT:
# DBTYPE:
# DBCONFIG:
strategy:
type: Recreate
service:
port:
port: 8000
ingress:
enabled: false
persistence:
data:
enabled: false
emptyDir:
enabled: false
mountPath: /data

View File

@@ -14,10 +14,13 @@
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl

View File

@@ -1,17 +1,21 @@
apiVersion: v2
appVersion: 3.1.0
version: 1.0.5
name: homebridge
appVersion: 3.3.0
description: A lightweight NodeJS server that emulates the iOS HomeKit API
type: application
name: homebridge
version: 2.0.0
kubeVersion: ">=1.16.0-0"
keywords:
- homebridge
- homekit
- homebridge
- homekit
home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/homebridge
icon: https://avatars0.githubusercontent.com/u/38217527?s=400&v=4?sanitize=true
sources:
- https://homebridge.io/
- https://github.com/oznu/docker-homebridge
- https://homebridge.io/
- https://github.com/oznu/docker-homebridge
maintainers:
- name: bjw-s
email: bjw-s@users.noreply.github.com
- name: bjw-s
email: bjw-s@users.noreply.github.com
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 2.3.1

View File

@@ -1,6 +1,6 @@
# homebridge
![Version: 1.0.5](https://img.shields.io/badge/Version-1.0.5-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.1.0](https://img.shields.io/badge/AppVersion-3.1.0-informational?style=flat-square)
![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![AppVersion: 3.3.0](https://img.shields.io/badge/AppVersion-3.3.0-informational?style=flat-square)
A lightweight NodeJS server that emulates the iOS HomeKit API
@@ -13,10 +13,13 @@ A lightweight NodeJS server that emulates the iOS HomeKit API
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://library-charts.k8s-at-home.com | common | 2.3.1 |
## TL;DR
@@ -73,64 +76,18 @@ N/A
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | Affinity settings for pod assignment or the homebridge GUI |
| config.additionalPackages | list | `[]` | Additional Alpine packages to install at container statup such as `bash` |
| config.enableUI | bool | `true` | Enable the Homebridge UI plugin |
| config.plugins | list | `[]` | Additional Homebridge plugins to install at container startup such as `homebridge-hue` |
| extraEnvs | list | `[]` | Extra ENV vars to pass to the homebridge container |
| fullnameOverride | string | `""` | |
| config | string | string | Custom startup.sh script to install additional packages in the container |
| env.HOMEBRIDGE_CONFIG_UI | int | `1` | |
| env.HOMEBRIDGE_CONFIG_UI_PORT | int | `8581` | |
| hostNetwork | bool | `false` | Enable hostNetwork - needed for discovery to work |
| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
| image.repository | string | `"oznu/homebridge"` | Image repository |
| image.tag | string | `"3.1.0"` | Overrides the image tag whose default is the chart appVersion. Possible values listed [here](https://hub.docker.com/r/oznu/homebridge/tags) |
| imagePullSecrets | list | `[]` | Secrets to use when pulling the image |
| ingress.annotations | object | `{}` | Ingress annotations |
| ingress.enabled | bool | `false` | Enables Ingress |
| ingress.hosts | list | `["chart-example.local"]` | Ingress accepted hostnames |
| ingress.path | string | `"/"` | Ingress path |
| ingress.tls | list | `[]` | Ingress TLS configuration |
| nameOverride | string | `""` | |
| nodeSelector | object | `{}` | Node labels for pod assignment or the homebridge GUI |
| persistence.accessMode | string | `"ReadWriteOnce"` | Persistence access modes |
| persistence.enabled | bool | `true` | Use persistent volume to store data |
| persistence.existingClaim | string | `nil` | Use an existing PVC to persist data |
| persistence.size | string | `"1Gi"` | Size of persistent volume claim |
| persistence.skipuninstall | bool | `false` | Do not delete the pvc upon helm uninstall |
| persistence.storageClass | string | `nil` | Type of persistent volume claim |
| pgid | int | `1000` | process groupID the instance should run as |
| podAnnotations | object | `{}` | Key-value pairs to add as pod annotations |
| podSecurityContext | object | `{}` | |
| probes.liveness.enabled | bool | `true` | Use the livenessProbe? |
| probes.liveness.failureThreshold | int | `5` | Specify liveness `failureThreshold` parameter for the deployment |
| probes.liveness.initialDelaySeconds | int | `60` | Specify liveness `initialDelaySeconds` parameter for the deployment |
| probes.liveness.timeoutSeconds | int | `10` | Specify liveness `timeoutSeconds` parameter for the deployment |
| probes.readiness.enabled | bool | `true` | Use the readinessProbe? |
| probes.readiness.failureThreshold | int | `5` | Specify readiness `failureThreshold` parameter for the deployment |
| probes.readiness.initialDelaySeconds | int | `60` | Specify readiness `initialDelaySeconds` parameter for the deployment |
| probes.readiness.timeoutSeconds | int | `10` | Specify readiness `timeoutSeconds` parameter for the deployment |
| probes.startup.enabled | bool | `false` | Use the startupProbe? (new in kubernetes 1.16) |
| probes.startup.failureThreshold | int | `30` | Specify startup `failureThreshold` parameter for the deployment |
| probes.startup.periodSeconds | int | `10` | Specify startup `periodSeconds` parameter for the deployment |
| puid | int | `1000` | process userID the instance should run as |
| replicaCount | int | `1` | |
| resources | object | `{}` | CPU/Memory resource requests/limits or the homebridge GUI |
| securityContext | object | `{}` | |
| service.annotations | object | `{}` | Service annotations for the homebridge GUI |
| service.clusterIP | string | `nil` | Cluster IP for the homebridge GUI |
| service.externalIPs | string | `nil` | External IPs for the homebridge GUI |
| service.externalTrafficPolicy | string | `nil` | Loadbalancer externalTrafficPolicy |
| service.homebridgePort | int | `51826` | |
| service.httpPort | int | `8080` | Kubernetes port where the homebridge GUI is exposed |
| service.loadBalancerIP | string | `nil` | Loadbalancer IP for the homebridge GUI |
| service.loadBalancerSourceRanges | string | `nil` | Loadbalancer client IP restriction range for the homebridge GUI |
| service.nodePort | int | `nil` | nodePort to listen on for the homebridge GUI |
| service.type | string | `"ClusterIP"` | Kubernetes service type for the homebridge GUI |
| serviceAccount.annotations | object | `{}` | |
| serviceAccount.create | bool | `true` | |
| serviceAccount.name | string | `""` | |
| strategyType | string | `"Recreate"` | Specifies the strategy used to replace old Pods by new ones |
| timezone | string | `"UTC"` | Specify the container timezone |
| tolerations | list | `[]` | Toleration labels for pod assignment or the homebridge GUI |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"oznu/homebridge"` | |
| image.tag | string | `"3.3.0"` | |
| ingress.enabled | bool | `false` | |
| persistence.config.emptyDir.enabled | bool | `false` | |
| persistence.config.enabled | bool | `false` | |
| persistence.config.mountPath | string | `"/homebridge"` | |
| service.port.port | int | `8581` | |
## Changelog
@@ -138,7 +95,7 @@ All notable changes to this application Helm chart will be documented in this fi
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.3]
### [2.0.0]
#### Added
@@ -146,13 +103,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
#### Changed
- Use helm-docs
- **BREAKING** Migrate to the common library, a lot of configuration has changed.
#### Removed
- N/A
[1.0.3]: #1.0.3
[2.0.0]: #2.0.0
## Support

View File

@@ -9,7 +9,7 @@ All notable changes to this application Helm chart will be documented in this fi
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.3]
### [2.0.0]
#### Added
@@ -17,11 +17,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
#### Changed
- Use helm-docs
- **BREAKING** Migrate to the common library, a lot of configuration has changed.
#### Removed
- N/A
[1.0.3]: #1.0.3
[2.0.0]: #2.0.0
{{- end -}}

View File

@@ -1,22 +1 @@
{{- if .Values.config.enableUI }}
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- $ingressPath := .Values.ingress.path -}}
{{- range $host := .Values.ingress.hosts }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host }}{{ $ingressPath }}
{{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "homebridge.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "homebridge.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "homebridge.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.httpPort }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "homebridge.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:{{ .Values.service.httpPort }}
{{- end }}
{{- end }}
{{- include "common.notes.defaultNotes" . -}}

View File

@@ -1,62 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "homebridge.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "homebridge.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "homebridge.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "homebridge.labels" -}}
helm.sh/chart: {{ include "homebridge.chart" . }}
{{ include "homebridge.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "homebridge.selectorLabels" -}}
app.kubernetes.io/name: {{ include "homebridge.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "homebridge.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "homebridge.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,31 @@
{{/* Make sure all variables are set properly */}}
{{- include "common.values.setup" . }}
{{/* Append the configMap to the additionalVolumes */}}
{{- define "homebridge.configmap.volume" -}}
name: homebridge-config
configMap:
name: {{ template "common.names.fullname" . }}-config
{{- end -}}
{{- $volume := include "homebridge.configmap.volume" . | fromYaml -}}
{{- if $volume -}}
{{- $additionalVolumes := append .Values.additionalVolumes $volume }}
{{- $_ := set .Values "additionalVolumes" (deepCopy $additionalVolumes) -}}
{{- end -}}
{{/* Append the configMap volume to the additionalVolumeMounts */}}
{{- define "homebridge.configmap.volumeMount" -}}
name: homebridge-config
mountPath: /homebridge/startup.sh
subPath: startup.sh
{{- end -}}
{{- $volumeMount := include "homebridge.configmap.volumeMount" . | fromYaml -}}
{{- if $volumeMount -}}
{{- $additionalVolumeMounts := append .Values.additionalVolumeMounts $volumeMount }}
{{- $_ := set .Values "additionalVolumeMounts" (deepCopy $additionalVolumeMounts) -}}
{{- end -}}
{{/* Render the templates */}}
{{ include "common.all" . }}

View File

@@ -1,21 +1,9 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "homebridge.fullname" . }}
name: {{ template "common.names.fullname" . }}-config
labels:
{{ include "homebridge.labels" . | indent 4 }}
{{- include "common.labels" . | nindent 4 }}
data:
startup.sh: |
#!/bin/sh
# Docker Homebridge startup.sh overriden by Helm Chart
# Plugins
{{- range .Values.config.plugins }}
npm install {{ . }}
{{- end }}
# Packages
{{- range .Values.config.additionalPackages }}
apk add --no-cache {{ . }}
{{- end }}
{{- .Values.config | nindent 4 }}

View File

@@ -1,136 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "homebridge.fullname" . }}
labels:
{{- include "homebridge.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
strategy:
type: {{ .Values.strategyType }}
selector:
matchLabels:
{{- include "homebridge.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "homebridge.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "homebridge.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.hostNetwork }}
hostNetwork: {{ .Values.hostNetwork }}
dnsPolicy: ClusterFirstWithHostNet
{{- end }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
env:
{{- if .Values.timezone }}
- name: TZ
value: {{ .Values.timezone | quote }}
{{- end }}
{{- if .Values.puid }}
- name: PUID
value: "{{ .Values.puid }}"
{{- end }}
{{- if .Values.pgid }}
- name: PGID
value: "{{ .Values.pgid }}"
{{- end }}
{{- if .Values.config.enableUI }}
- name: HOMEBRIDGE_CONFIG_UI
value: "1"
- name: HOMEBRIDGE_CONFIG_UI_PORT
value: {{ .Values.service.httpPort | quote }}
{{- end }}
{{- with .Values.extraEnvs }}
{{- toYaml . | nindent 12 }}
{{- end }}
ports:
- name: homebridge
containerPort: {{ .Values.service.homebridgePort }}
protocol: TCP
{{- if .Values.config.enableUI }}
- name: http
containerPort: {{ .Values.service.httpPort }}
protocol: TCP
{{- end }}
volumeMounts:
- mountPath: /homebridge
name: config
- mountPath: /homebridge/startup.sh
name: homebridge-configmap
subPath: startup.sh
{{- if .Values.config.enableUI }}
{{- if .Values.probes.liveness.enabled }}
livenessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }}
failureThreshold: {{ .Values.probes.liveness.failureThreshold }}
timeoutSeconds: {{ .Values.probes.liveness.timeoutSeconds }}
{{- end }}
{{- if .Values.probes.readiness.enabled }}
readinessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }}
failureThreshold: {{ .Values.probes.readiness.failureThreshold }}
timeoutSeconds: {{ .Values.probes.readiness.timeoutSeconds }}
{{- end }}
{{- if .Values.probes.startup.enabled }}
startupProbe:
httpGet:
path: /
port: http
failureThreshold: {{ .Values.probes.startup.failureThreshold }}
periodSeconds: {{ .Values.probes.startup.periodSeconds }}
{{- end }}
{{- end }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
volumes:
- name: config
{{- if .Values.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ if .Values.persistence.existingClaim }}{{ .Values.persistence.existingClaim }}{{- else }}{{ template "homebridge.fullname" . }}-config{{- end }}
{{- else }}
emptyDir: {}
{{- end }}
- name: homebridge-configmap
projected:
defaultMode: 0444
sources:
- configMap:
name: {{ template "homebridge.fullname" . }}
items:
- key: startup.sh
path: startup.sh
mode: 0755
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

View File

@@ -1,39 +0,0 @@
{{- if and .Values.config.enableUI .Values.ingress.enabled -}}
{{- $fullName := include "homebridge.fullname" . -}}
{{- $ingressPath := .Values.ingress.path -}}
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{- include "homebridge.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ . | quote }}
http:
paths:
- path: {{ $ingressPath }}
backend:
serviceName: {{ $fullName }}
servicePort: http
{{- end }}
{{- end }}

View File

@@ -1,25 +0,0 @@
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "homebridge.fullname" . }}-config
{{- if .Values.persistence.skipuninstall }}
annotations:
"helm.sh/resource-policy": keep
{{- end }}
labels:
{{- include "homebridge.labels" . | nindent 4 }}
spec:
accessModes:
- {{ .Values.persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.persistence.size | quote }}
{{- if .Values.persistence.storageClass }}
{{- if (eq "-" .Values.persistence.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: {{ .Values.persistence.storageClass | quote }}
{{- end }}
{{- end }}
{{- end -}}

View File

@@ -1,48 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "homebridge.fullname" . }}
{{- if .Values.service.annotations }}
annotations:
{{- toYaml .Values.service.annotations | nindent 4 }}
{{- end }}
labels:
{{- include "homebridge.labels" . | nindent 4 }}
spec:
{{- if (or (eq .Values.service.type "ClusterIP") (empty .Values.service.type)) }}
type: ClusterIP
{{- else if eq .Values.service.type "LoadBalancer" }}
type: {{ .Values.service.type }}
{{- if .Values.service.loadBalancerIP }}
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
{{- end }}
{{- if .Values.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
{{ toYaml .Values.service.loadBalancerSourceRanges | indent 4 }}
{{- end -}}
{{- else }}
type: {{ .Values.service.type }}
{{- end }}
{{- if .Values.service.externalIPs }}
externalIPs:
{{- toYaml .Values.service.externalIPs | nindent 4 }}
{{- end }}
{{- if .Values.service.externalTrafficPolicy }}
externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy }}
{{- end }}
ports:
- port: {{ .Values.service.homebridgePort }}
targetPort: homebridge
protocol: TCP
name: homebridge
{{- if .Values.config.enableUI }}
- port: {{ .Values.service.httpPort }}
targetPort: http
protocol: TCP
name: http
{{- end }}
{{ if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }}
nodePort: {{.Values.service.nodePort}}
{{ end }}
selector:
{{- include "homebridge.selectorLabels" . | nindent 4 }}

View File

@@ -1,12 +0,0 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "homebridge.serviceAccountName" . }}
labels:
{{- include "homebridge.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}

View File

@@ -1,165 +1,72 @@
# Default values for homebridge.
replicaCount: 1
#
# 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:
# -- Image repository
repository: oznu/homebridge
# -- Image pull policy
tag: 3.3.0
pullPolicy: IfNotPresent
# -- Overrides the image tag whose default is the chart appVersion.
# Possible values listed [here](https://hub.docker.com/r/oznu/homebridge/tags)
tag: "3.1.0"
# -- Secrets to use when pulling the image
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
# -- Specifies the strategy used to replace old Pods by new ones
strategyType: Recreate
# -- Specify the container timezone
timezone: "UTC"
# -- process userID the instance should run as
puid: 1000
# -- process groupID the instance should run as
pgid: 1000
config:
# -- Enable the Homebridge UI plugin
enableUI: true
# -- Additional Homebridge plugins to install at container startup such as `homebridge-hue`
plugins: []
# -- Additional Alpine packages to install at container statup such as `bash`
additionalPackages: []
# -- Extra ENV vars to pass to the homebridge container
extraEnvs: []
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
# -- Key-value pairs to add as pod annotations
podAnnotations: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
# Possible values listed here: https://github.com/oznu/docker-homebridge#parameters
env:
HOMEBRIDGE_CONFIG_UI: 1
HOMEBRIDGE_CONFIG_UI_PORT: 8581
# TZ:
# PGID: 1000
# PUID: 1000
service:
# -- Kubernetes service type for the homebridge GUI
type: ClusterIP
homebridgePort: 51826
# -- Kubernetes port where the homebridge GUI is exposed
httpPort: 8080
# -- Service annotations for the homebridge GUI
annotations: {}
# -- (string) Cluster IP for the homebridge GUI
clusterIP:
# -- (string) External IPs for the homebridge GUI
externalIPs:
# -- (string) Loadbalancer IP for the homebridge GUI
loadBalancerIP:
# -- (string) Loadbalancer client IP restriction range for the homebridge GUI
loadBalancerSourceRanges:
# -- (string) Loadbalancer externalTrafficPolicy
externalTrafficPolicy:
# -- (int) nodePort to listen on for the homebridge GUI
nodePort:
ingress:
# -- Enables Ingress
enabled: false
# -- Ingress annotations
annotations: {}
# -- Ingress path
path: /
# -- Ingress accepted hostnames
hosts:
- chart-example.local
# -- Ingress TLS configuration
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
port:
port: 8581
# -- Enable hostNetwork - needed for discovery to work
hostNetwork: false
ingress:
enabled: false
persistence:
# -- Use persistent volume to store data
enabled: true
# -- (string) Type of persistent volume claim
storageClass:
# -- (string) Use an existing PVC to persist data
existingClaim:
# -- Persistence access modes
accessMode: ReadWriteOnce
# -- Size of persistent volume claim
size: 1Gi
# -- Do not delete the pvc upon helm uninstall
skipuninstall: false
probes:
liveness:
# -- Use the livenessProbe?
enabled: true
# -- Specify liveness `initialDelaySeconds` parameter for the deployment
initialDelaySeconds: 60
# -- Specify liveness `failureThreshold` parameter for the deployment
failureThreshold: 5
# -- Specify liveness `timeoutSeconds` parameter for the deployment
timeoutSeconds: 10
readiness:
# -- Use the readinessProbe?
enabled: true
# -- Specify readiness `initialDelaySeconds` parameter for the deployment
initialDelaySeconds: 60
# -- Specify readiness `failureThreshold` parameter for the deployment
failureThreshold: 5
# -- Specify readiness `timeoutSeconds` parameter for the deployment
timeoutSeconds: 10
startup:
# -- Use the startupProbe? (new in kubernetes 1.16)
config:
enabled: false
# -- Specify startup `failureThreshold` parameter for the deployment
failureThreshold: 30
# -- Specify startup `periodSeconds` parameter for the deployment
periodSeconds: 10
emptyDir:
enabled: false
mountPath: /homebridge
## Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## 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: ""
# -- CPU/Memory resource requests/limits or the homebridge GUI
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
# -- Custom startup.sh script to install additional packages in the container
# @default -- string
config: |
#!/bin/sh
# -- Node labels for pod assignment or the homebridge GUI
nodeSelector: {}
# -- Toleration labels for pod assignment or the homebridge GUI
tolerations: []
# -- Affinity settings for pod assignment or the homebridge GUI
affinity: {}
#
# Docker Homebridge Custom Startup Script - oznu/homebridge
#
# This script can be used to customise the environment and will be executed as
# the root user each time the container starts.
#
# If using this to install plugins DO NOT use the global flag (-g).
#
# Example installing homebridge plugin:
#
# npm install homebridge-hue
#
# Example installing packages using default image (Alpine Linux):
#
# apk add --no-cache ffmpeg ffmpeg-libs libpcap-dev
#
# If you're running a debian based version of this container please use apt-get to install packages.
#

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: v3.00
description: Transmission is a cross-platform BitTorrent client
name: transmission
version: 4.0.0
version: 5.0.0
kubeVersion: ">=1.16.0-0"
keywords:
- transmission

View File

@@ -1,6 +1,6 @@
# transmission
![Version: 4.0.0](https://img.shields.io/badge/Version-4.0.0-informational?style=flat-square) ![AppVersion: v3.00](https://img.shields.io/badge/AppVersion-v3.00-informational?style=flat-square)
![Version: 5.0.0](https://img.shields.io/badge/Version-5.0.0-informational?style=flat-square) ![AppVersion: v3.00](https://img.shields.io/badge/AppVersion-v3.00-informational?style=flat-square)
Transmission is a cross-platform BitTorrent client
@@ -76,6 +76,7 @@ N/A
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| config | string | string | Transmission's settings.json configuration |
| env | object | `{}` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"ghcr.io/k8s-at-home/transmission"` | |
@@ -92,93 +93,9 @@ N/A
| persistence.watch.mountPath | string | `"/watch"` | |
| probes.liveness.spec.timeoutSeconds | int | `30` | |
| probes.readiness.spec.timeoutSeconds | int | `30` | |
| service.additionalServices[0].annotations | object | `{}` | |
| service.additionalServices[0].enabled | bool | `true` | |
| service.additionalServices[0].nameSuffix | string | `"utptcp"` | |
| service.additionalServices[0].port.name | string | `"utptcp"` | |
| service.additionalServices[0].port.port | int | `51413` | |
| service.additionalServices[0].port.protocol | string | `"TCP"` | |
| service.additionalServices[0].port.targetport | int | `51413` | |
| service.additionalServices[0].type | string | `"ClusterIP"` | |
| service.additionalServices[1].annotations | object | `{}` | |
| service.additionalServices[1].enabled | bool | `true` | |
| service.additionalServices[1].nameSuffix | string | `"utpudp"` | |
| service.additionalServices[1].port.name | string | `"utpudp"` | |
| service.additionalServices[1].port.port | int | `51413` | |
| service.additionalServices[1].port.protocol | string | `"UDP"` | |
| service.additionalServices[1].port.targetport | int | `51413` | |
| service.additionalServices[1].type | string | `"ClusterIP"` | |
| service.port.name | string | `"http"` | |
| service.port.port | int | `9091` | |
| strategy.type | string | `"Recreate"` | |
| transmissionConfig.alt-speed-down | int | `50` | |
| transmissionConfig.alt-speed-enabled | bool | `false` | |
| transmissionConfig.alt-speed-time-begin | int | `540` | |
| transmissionConfig.alt-speed-time-day | int | `127` | |
| transmissionConfig.alt-speed-time-enabled | bool | `false` | |
| transmissionConfig.alt-speed-time-end | int | `1020` | |
| transmissionConfig.alt-speed-up | int | `50` | |
| transmissionConfig.bind-address-ipv4 | string | `"0.0.0.0"` | |
| transmissionConfig.bind-address-ipv6 | string | `"::\""` | |
| transmissionConfig.blocklist-enabled | bool | `true` | |
| transmissionConfig.blocklist-url | string | `"http://john.bitsurge.net/public/biglist.p2p.gz"` | |
| transmissionConfig.cache-size-mb | int | `4` | |
| transmissionConfig.dht-enabled | bool | `true` | |
| transmissionConfig.download-dir | string | `"/downloads/complete"` | |
| transmissionConfig.download-queue-enabled | bool | `true` | |
| transmissionConfig.download-queue-size | int | `5` | |
| transmissionConfig.encryption | int | `1` | |
| transmissionConfig.idle-seeding-limit | int | `30` | |
| transmissionConfig.idle-seeding-limit-enabled | bool | `false` | |
| transmissionConfig.incomplete-dir | string | `"/downloads/incomplete"` | |
| transmissionConfig.incomplete-dir-enabled | bool | `true` | |
| transmissionConfig.lpd-enabled | bool | `false` | |
| transmissionConfig.message-level | int | `2` | |
| transmissionConfig.peer-congestion-algorithm | string | `""` | |
| transmissionConfig.peer-id-ttl-hours | int | `6` | |
| transmissionConfig.peer-limit-global | int | `200` | |
| transmissionConfig.peer-limit-per-torrent | int | `50` | |
| transmissionConfig.peer-port | int | `51413` | |
| transmissionConfig.peer-port-random-high | int | `65535` | |
| transmissionConfig.peer-port-random-low | int | `49152` | |
| transmissionConfig.peer-port-random-on-start | bool | `false` | |
| transmissionConfig.peer-socket-tos | string | `"default"` | |
| transmissionConfig.pex-enabled | bool | `true` | |
| transmissionConfig.port-forwarding-enabled | bool | `false` | |
| transmissionConfig.preallocation | int | `1` | |
| transmissionConfig.prefetch-enabled | bool | `true` | |
| transmissionConfig.queue-stalled-enabled | bool | `true` | |
| transmissionConfig.queue-stalled-minutes | int | `30` | |
| transmissionConfig.ratio-limit | int | `2` | |
| transmissionConfig.ratio-limit-enabled | bool | `false` | |
| transmissionConfig.rename-partial-files | bool | `true` | |
| transmissionConfig.rpc-authentication-required | bool | `false` | |
| transmissionConfig.rpc-bind-address | string | `"0.0.0.0"` | |
| transmissionConfig.rpc-enabled | bool | `true` | |
| transmissionConfig.rpc-host-whitelist | string | `""` | |
| transmissionConfig.rpc-host-whitelist-enabled | bool | `false` | |
| transmissionConfig.rpc-password | string | `"CHANGEME"` | |
| transmissionConfig.rpc-port | int | `9091` | |
| transmissionConfig.rpc-url | string | `"/transmission/"` | |
| transmissionConfig.rpc-username | string | `""` | |
| transmissionConfig.rpc-whitelist | string | `""` | |
| transmissionConfig.rpc-whitelist-enabled | bool | `false` | |
| transmissionConfig.scrape-paused-torrents-enabled | bool | `true` | |
| transmissionConfig.script-torrent-done-enabled | bool | `false` | |
| transmissionConfig.script-torrent-done-filename | string | `""` | |
| transmissionConfig.seed-queue-enabled | bool | `false` | |
| transmissionConfig.seed-queue-size | int | `10` | |
| transmissionConfig.speed-limit-down | int | `100` | |
| transmissionConfig.speed-limit-down-enabled | bool | `false` | |
| transmissionConfig.speed-limit-up | int | `100` | |
| transmissionConfig.speed-limit-up-enabled | bool | `false` | |
| transmissionConfig.start-added-torrents | bool | `true` | |
| transmissionConfig.trash-original-torrent-files | bool | `false` | |
| transmissionConfig.umask | int | `2` | |
| transmissionConfig.upload-slots-per-torrent | int | `14` | |
| transmissionConfig.utp-enabled | bool | `true` | |
| transmissionConfig.watch-dir | string | `"/watch"` | |
| transmissionConfig.watch-dir-enabled | bool | `false` | |
## Changelog
@@ -186,6 +103,16 @@ All notable changes to this application Helm chart will be documented in this fi
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).
### [5.0.0]
#### Added
- Example initContainer to showcase adding a custom web ui
#### Changed
- **Breaking**: `transmissionConfig` became `config` and is now a string not a object
### [4.0.0]
#### Changed
@@ -204,6 +131,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Initial commit
[5.0.0]: #5.0.0
[4.0.0]: #4.0.0
[1.0.0]: #1.0.0

View File

@@ -9,6 +9,16 @@ All notable changes to this application Helm chart will be documented in this fi
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).
### [5.0.0]
#### Added
- Example initContainer to showcase adding a custom web ui
#### Changed
- **Breaking**: `transmissionConfig` became `config` and is now a string not an object
### [4.0.0]
#### Changed
@@ -27,6 +37,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Initial commit
[5.0.0]: #5.0.0
[4.0.0]: #4.0.0
[1.0.0]: #1.0.0
{{- end -}}

View File

@@ -0,0 +1,18 @@
initContainers:
- name: custom-webui
image: curlimages/curl:7.76.1
command:
- "/bin/sh"
- "-c"
- "curl -fsSL -o /tmp/flood-for-transmission.tar.gz https://github.com/johman10/flood-for-transmission/releases/download/latest/flood-for-transmission.tar.gz"
- "mkdir -p /config/flood"
- "tar xf /tmp/flood-for-transmission.tar.gz --strip-components 1 -C /config/flood"
volumeMounts:
- name: config
mountPath: /config
persistence:
config:
enabled: true
emptyDir:
enabled: true

View File

@@ -6,4 +6,4 @@ metadata:
{{- include "common.labels" . | nindent 4 }}
data:
settings.json: |
{{- .Values.transmissionConfig | mustToPrettyJson | nindent 4 }}
{{- .Values.config | nindent 4 }}

View File

@@ -5,6 +5,20 @@
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
#
# # Use an initContainer to download a custom web ui
# initContainers:
# - name: custom-webui
# image: curlimages/curl:7.76.1
# command:
# - "/bin/sh"
# - "-c"
# - "curl -fsSL -o /tmp/flood-for-transmission.tar.gz https://github.com/johman10/flood-for-transmission/releases/download/latest/flood-for-transmission.tar.gz"
# - "mkdir -p /config/flood"
# - "tar xf /tmp/flood-for-transmission.tar.gz --strip-components 1 -C /config/flood"
# volumeMounts:
# - name: config
# mountPath: /config
image:
repository: ghcr.io/k8s-at-home/transmission
pullPolicy: IfNotPresent
@@ -13,37 +27,33 @@ image:
strategy:
type: Recreate
# See more environment variables in the transmission documentation
# https://hub.docker.com/r/linuxserver/transmission
env: {}
# PUID: 1000
# PGID: 1000
# TZ: UTC
# TRANSMISSION_WEB_HOME: /config/flood
service:
port:
port: 9091
name: http
additionalServices:
- enabled: true
nameSuffix: utptcp
type: ClusterIP
annotations: {}
port:
port: 51413
name: utptcp
protocol: TCP
targetport: 51413
- enabled: true
nameSuffix: utpudp
type: ClusterIP
annotations: {}
port:
port: 51413
name: utpudp
protocol: UDP
targetport: 51413
# additionalServices:
# - enabled: true
# nameSuffix: utptcp
# type: ClusterIP
# annotations: {}
# port:
# port: 51413
# name: utptcp
# protocol: TCP
# targetport: 51413
# - enabled: true
# nameSuffix: utpudp
# type: ClusterIP
# annotations: {}
# port:
# port: 51413
# name: utpudp
# protocol: UDP
# targetport: 51413
## transmission runs the gui and io on the same thread - heavy bandwith usage
## may stall the UI and result in restarts.
@@ -102,72 +112,76 @@ persistence:
enabled: false
mountPath: /watch
transmissionConfig:
alt-speed-down: 50
alt-speed-enabled: false
alt-speed-time-begin: 540
alt-speed-time-day: 127
alt-speed-time-enabled: false
alt-speed-time-end: 1020
alt-speed-up: 50
bind-address-ipv4: "0.0.0.0"
bind-address-ipv6: ::"
blocklist-enabled: true
blocklist-url: "http://john.bitsurge.net/public/biglist.p2p.gz"
cache-size-mb: 4
dht-enabled: true
download-dir: "/downloads/complete"
download-queue-enabled: true
download-queue-size: 5
encryption: 1
idle-seeding-limit: 30
idle-seeding-limit-enabled: false
incomplete-dir: "/downloads/incomplete"
incomplete-dir-enabled: true
lpd-enabled: false
message-level: 2
peer-congestion-algorithm: ""
peer-id-ttl-hours: 6
peer-limit-global: 200
peer-limit-per-torrent: 50
peer-port: 51413
peer-port-random-high: 65535
peer-port-random-low: 49152
peer-port-random-on-start: false
peer-socket-tos: "default"
pex-enabled: true
port-forwarding-enabled: false
preallocation: 1
prefetch-enabled: true
queue-stalled-enabled: true
queue-stalled-minutes: 30
ratio-limit: 2
ratio-limit-enabled: false
rename-partial-files: true
rpc-authentication-required: false
rpc-bind-address: "0.0.0.0"
rpc-enabled: true
rpc-host-whitelist: ""
rpc-host-whitelist-enabled: false
rpc-password: "CHANGEME"
rpc-port: 9091
rpc-url: "/transmission/"
rpc-username: ""
rpc-whitelist: ""
rpc-whitelist-enabled: false
scrape-paused-torrents-enabled: true
script-torrent-done-enabled: false
script-torrent-done-filename: ""
seed-queue-enabled: false
seed-queue-size: 10
speed-limit-down: 100
speed-limit-down-enabled: false
speed-limit-up: 100
speed-limit-up-enabled: false
start-added-torrents: true
trash-original-torrent-files: false
umask: 2
upload-slots-per-torrent: 14
utp-enabled: true
watch-dir: "/watch"
watch-dir-enabled: false
# -- Transmission's settings.json configuration
# @default -- string
config: |
{
"alt-speed-down": 50,
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127,
"alt-speed-time-enabled": false,
"alt-speed-time-end": 1020,
"alt-speed-up": 50,
"bind-address-ipv4": "0.0.0.0",
"bind-address-ipv6": "::",
"blocklist-enabled": true,
"blocklist-url": "http://john.bitsurge.net/public/biglist.p2p.gz",
"cache-size-mb": 4,
"dht-enabled": true,
"download-dir": "/downloads/complete",
"download-queue-enabled": true,
"download-queue-size": 5,
"encryption": 1,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/downloads/incomplete",
"incomplete-dir-enabled": true,
"lpd-enabled": false,
"message-level": 2,
"peer-congestion-algorithm": "",
"peer-id-ttl-hours": 6,
"peer-limit-global": 200,
"peer-limit-per-torrent": 50,
"peer-port": 51413,
"peer-port-random-high": 65535,
"peer-port-random-low": 49152,
"peer-port-random-on-start": false,
"peer-socket-tos": "default",
"pex-enabled": true,
"port-forwarding-enabled": false,
"preallocation": 1,
"prefetch-enabled": true,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 2,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": false,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-host-whitelist": "",
"rpc-host-whitelist-enabled": false,
"rpc-password": "CHANGEME",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "",
"rpc-whitelist": "",
"rpc-whitelist-enabled": false,
"scrape-paused-torrents-enabled": true,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
"seed-queue-enabled": false,
"seed-queue-size": 10,
"speed-limit-down": 100,
"speed-limit-down-enabled": false,
"speed-limit-up": 100,
"speed-limit-up-enabled": false,
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 2,
"upload-slots-per-torrent": 14,
"utp-enabled": true,
"watch-dir": "/watch",
"watch-dir-enabled": false
}