Compare commits
24 Commits
unpackerr-
...
readarr-1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
974de8e654 | ||
|
|
711b2f332d | ||
|
|
cef461b7f2 | ||
|
|
3d64b1c07a | ||
|
|
a5cd196a7f | ||
|
|
94bf122994 | ||
|
|
97de7b430d | ||
|
|
3bd8295151 | ||
|
|
38efefa16b | ||
|
|
c522152e20 | ||
|
|
beee21811a | ||
|
|
1775d51d22 | ||
|
|
a52f214568 | ||
|
|
269e6e6539 | ||
|
|
a885f84f21 | ||
|
|
dca725c103 | ||
|
|
8dcc5b95ca | ||
|
|
a6044906b8 | ||
|
|
acfb645810 | ||
|
|
34bbd3e3da | ||
|
|
5e86ce93b7 | ||
|
|
1549e9056f | ||
|
|
efcde7f81b | ||
|
|
fc49382e94 |
10
.github/workflows/charts-lint-test.yaml
vendored
10
.github/workflows/charts-lint-test.yaml
vendored
@@ -1,6 +1,6 @@
|
||||
name: "Charts: Lint and test"
|
||||
|
||||
on:
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'charts/**'
|
||||
@@ -68,13 +68,13 @@ jobs:
|
||||
- name: Install Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.7
|
||||
|
||||
ruby-version: 2.7
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
export RUBYJQ_USE_SYSTEM_LIBRARIES=1
|
||||
bundle install
|
||||
|
||||
|
||||
- name: Run tests
|
||||
run: |
|
||||
bundle exec m -r test/charts
|
||||
@@ -105,7 +105,7 @@ jobs:
|
||||
if: needs.lint.outputs.changed == 'true' || needs.lint.outputs.common == 'true'
|
||||
|
||||
- name: Run chart-testing (install)
|
||||
run: ct install --config .github/ct.yaml
|
||||
run: ct install --config .github/ct.yaml --excluded-charts ""
|
||||
if: needs.lint.outputs.changed == 'true'
|
||||
|
||||
- name: Run chart-testing (common-test)
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,3 +1,6 @@
|
||||
# Developer dependencies
|
||||
.bin
|
||||
|
||||
# IDE resources
|
||||
.vscode
|
||||
.idea
|
||||
@@ -9,4 +12,5 @@ charts/*/charts
|
||||
|
||||
# Other rsources
|
||||
.env
|
||||
.envrc
|
||||
Gemfile.lock
|
||||
|
||||
48
.taskfiles/Taskfile_chart.yml
Normal file
48
.taskfiles/Taskfile_chart.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
---
|
||||
version: '3'
|
||||
|
||||
tasks:
|
||||
|
||||
create:
|
||||
desc: create new chart
|
||||
cmds:
|
||||
- git checkout -b add-chart-{{.CHART}}
|
||||
- cp -r {{.GIT_ROOT}}/templates/chart {{.GIT_ROOT}}/charts/{{.CHART}}
|
||||
- ./.bin/go-replace -s '${CHARTNAME}' -r "{{.CHART}}" --path={{.GIT_ROOT}}/charts/{{.CHART}} --path-pattern='*.*'
|
||||
- task: dependency
|
||||
- echo "Congratulations, charts/{{.CHART}} successfully generated, you can now edit chart informations ( Chart.yaml and values.yaml )"
|
||||
status:
|
||||
- test -d {{.GIT_ROOT}}/charts/{{.CHART}}
|
||||
deps:
|
||||
- check-chart
|
||||
silent: true
|
||||
|
||||
|
||||
dependency:
|
||||
cmds:
|
||||
- test -d {{.GIT_ROOT}}/charts/{{.CHART}}/Chart.lock && rm {{.GIT_ROOT}}/charts/{{.CHART}}/Chart.lock || exit 0
|
||||
- test -d {{.GIT_ROOT}}/charts/{{.CHART}}/tmpcharts && rm -rf {{.GIT_ROOT}}/charts/{{.CHART}}/tmpcharts || exit 0
|
||||
- cd {{.GIT_ROOT}}/charts/{{.CHART}} && helm dependency update
|
||||
silent: true
|
||||
|
||||
lint:
|
||||
desc: lint your chart code
|
||||
cmds:
|
||||
- cd {{.GIT_ROOT}}/charts/{{.CHART}} && helm lint
|
||||
deps:
|
||||
- dependency
|
||||
- check-chart
|
||||
|
||||
test:
|
||||
desc: test your chart code
|
||||
cmds:
|
||||
- docker run --rm -it --user $(id -u):$(id -g) -e "HELM_CONFIG_HOME=/tmp/helm" -e "HELM_CACHE_HOME=/tmp/helm" -v {{.GIT_ROOT}}:/ci -w /ci quay.io/helmpack/chart-testing:latest ct lint --charts charts/{{.CHART}} --config /ci/.github/ct.yaml
|
||||
deps:
|
||||
- check-chart
|
||||
- lint
|
||||
|
||||
# Checks Parameters
|
||||
check-chart:
|
||||
cmds:
|
||||
- cmd: test ! -z "{{.CHART}}" || (echo "Please define CHART parameter"; exit 1)
|
||||
silent: true
|
||||
41
.taskfiles/Taskfile_darwin.yml
Normal file
41
.taskfiles/Taskfile_darwin.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
version: '3'
|
||||
|
||||
# Todo: add all darwin requirements
|
||||
|
||||
env:
|
||||
URL_GOREPLACE: https://github.com/webdevops/go-replace/releases/download/1.1.2/gr-64-osx
|
||||
|
||||
tasks:
|
||||
|
||||
install:
|
||||
desc: Install all developer dependencies
|
||||
deps:
|
||||
- distrib-requirements
|
||||
- go-replace
|
||||
|
||||
distrib-requirements:
|
||||
desc: Check needed distribution packages
|
||||
cmds:
|
||||
- task deps:need BIN=wget
|
||||
- task deps:need BIN=python3
|
||||
- task deps:need BIN=docker
|
||||
silent: true
|
||||
|
||||
need:
|
||||
desc: Check needed binary is present
|
||||
cmds:
|
||||
- type {{.BIN}} 2>&1 >/dev/null || (echo "Please install {{.BIN}}"; exit 1)
|
||||
silent: true
|
||||
|
||||
go-replace:
|
||||
desc: Install go-replace
|
||||
cmds:
|
||||
- echo "Installing go-replace"
|
||||
- mkdir -p ".bin"
|
||||
- wget -q "https://github.com/webdevops/go-replace/releases/download/1.1.2/gr-64-osx" -O .bin/go-replace && chmod +x .bin/go-replace
|
||||
status:
|
||||
- test -e .bin/go-replace
|
||||
deps:
|
||||
- distrib-requirements
|
||||
silent: true
|
||||
64
.taskfiles/Taskfile_linux.yml
Normal file
64
.taskfiles/Taskfile_linux.yml
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
version: '3'
|
||||
|
||||
env:
|
||||
URL_GOREPLACE: https://github.com/webdevops/go-replace/releases/download/1.1.2/gr-64-linux
|
||||
URL_HELM: https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
|
||||
|
||||
tasks:
|
||||
|
||||
install:
|
||||
desc: Install all developer dependencies
|
||||
deps:
|
||||
- distrib-requirements
|
||||
- helm
|
||||
- pre-commit
|
||||
- go-replace
|
||||
|
||||
distrib-requirements:
|
||||
desc: Check needed distribution packages
|
||||
cmds:
|
||||
- task deps:need BIN=wget
|
||||
- task deps:need BIN=python3
|
||||
- task deps:need BIN=docker
|
||||
silent: true
|
||||
|
||||
need:
|
||||
desc: Check needed binary is present
|
||||
cmds:
|
||||
- type {{.BIN}} 2>&1 >/dev/null || (echo "Please install {{.BIN}}"; exit 1)
|
||||
silent: true
|
||||
|
||||
helm:
|
||||
desc: Install helm client
|
||||
cmds:
|
||||
- echo "Installing helm"
|
||||
- wget -q -O - "$URL_HELM" | USE_SUDO=false HELM_INSTALL_DIR=.bin bash
|
||||
status:
|
||||
- test -e .bin/helm
|
||||
deps:
|
||||
- distrib-requirements
|
||||
silent: true
|
||||
|
||||
pre-commit:
|
||||
desc: Install a precommit pip package
|
||||
cmds:
|
||||
- echo "Installing pre-commit"
|
||||
- python3 -m pip install --user pre-commit
|
||||
status:
|
||||
- type pre-commit
|
||||
deps:
|
||||
- distrib-requirements
|
||||
silent: true
|
||||
|
||||
go-replace:
|
||||
desc: Install go-replace
|
||||
cmds:
|
||||
- echo "Installing go-replace"
|
||||
- mkdir -p ".bin"
|
||||
- wget -q "$URL_GOREPLACE" -O .bin/go-replace && chmod +x .bin/go-replace
|
||||
status:
|
||||
- test -e .bin/go-replace
|
||||
deps:
|
||||
- distrib-requirements
|
||||
silent: true
|
||||
10
.taskfiles/Taskfile_windows.yml
Normal file
10
.taskfiles/Taskfile_windows.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
version: '3'
|
||||
|
||||
# Todo: add windows requirements
|
||||
|
||||
tasks:
|
||||
default:
|
||||
cmds:
|
||||
- task -l
|
||||
silent: true
|
||||
@@ -39,6 +39,23 @@ See `git help commit`:
|
||||
|
||||
Once changes have been merged, the release job will automatically run to package and release changed charts.
|
||||
|
||||
### Create new chart
|
||||
```
|
||||
# Clone
|
||||
git clone
|
||||
cd charts
|
||||
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b .bin
|
||||
|
||||
# Create chart
|
||||
PATH=$PATH:$PWD/.bin
|
||||
task chart:create CHART=chart_name
|
||||
# Don't forgot edit some chart informations in charts/char_name/Chart.yaml and charts/char_name/values.yaml
|
||||
|
||||
# Lint & Test
|
||||
task chart:lint CHART=chart_name
|
||||
task chart:test CHART=chart_name
|
||||
```
|
||||
|
||||
### Immutability
|
||||
|
||||
Chart releases must be immutable. Any change to a chart warrants a chart version bump even if it is only changed to the documentation.
|
||||
|
||||
16
Taskfile.yml
Normal file
16
Taskfile.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
version: '3'
|
||||
|
||||
vars:
|
||||
GIT_ROOT:
|
||||
sh: git rev-parse --show-toplevel
|
||||
|
||||
includes:
|
||||
deps: .taskfiles/Taskfile_{{OS}}.yml
|
||||
chart: .taskfiles/Taskfile_chart.yml
|
||||
|
||||
tasks:
|
||||
default:
|
||||
cmds:
|
||||
- task -l
|
||||
silent: true
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 0.4.2
|
||||
description: Bot for Prometheus Alertmanager
|
||||
name: alertmanager-bot
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- alertmanager
|
||||
- telegram
|
||||
@@ -18,4 +18,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 4.0.5
|
||||
description: AppDaemon is a loosely coupled, multi-threaded, sandboxed python execution environment for writing automation apps for various types of Home Automation Software including Home Assistant and MQTT.
|
||||
name: appdaemon
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- appdaemon
|
||||
- home-automation
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v0.9.0.5
|
||||
description: Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements
|
||||
name: bazarr
|
||||
version: 5.3.1
|
||||
version: 5.4.0
|
||||
keywords:
|
||||
- bazarr
|
||||
- radarr
|
||||
@@ -21,4 +21,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v2009.1.0
|
||||
description: Booksonic is a platform for accessing the audibooks you own wherever you are
|
||||
name: booksonic-air
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- booksonic
|
||||
- audiobook
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 0.6.9
|
||||
description: Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database.
|
||||
name: calibre-web
|
||||
version: 4.3.1
|
||||
version: 4.4.0
|
||||
keywords:
|
||||
- calibre
|
||||
- ebook
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -4,6 +4,31 @@ All notable changes to this project will be documented in this file.
|
||||
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).
|
||||
|
||||
## [2.4.0]
|
||||
|
||||
### Added
|
||||
|
||||
- Allow setting environment variables from Downward API via `envValueFrom`. See [the Kubernetes docs](https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/) for more information.
|
||||
|
||||
## [2.3.0]
|
||||
|
||||
### Added
|
||||
|
||||
- Allow overriding the main container command.
|
||||
- Allow setting Helm templates as environment variables via `envTpl`. The given value is parsed through Helm's `tpl` function, allowing for powerful variable substitution.
|
||||
- Support for defining volumeClaimTemplates for StatefulSet.
|
||||
- Allow the following Pod spec fields to be configurable:
|
||||
- `priorityClassName`
|
||||
- `schedulerName`
|
||||
- `hostname`
|
||||
|
||||
### Fixed
|
||||
|
||||
- `values.yaml` now contains the following sections, these were already functional but were previously undocumented:
|
||||
- `podSecurityContext`
|
||||
- `securityContext`
|
||||
- `resources`
|
||||
|
||||
## [2.2.1]
|
||||
|
||||
### Fixed
|
||||
@@ -59,6 +84,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
This is the last version before starting this changelog. All sorts of cool stuff was changed, but only `git log` remembers what that was :slightly_frowning_face:
|
||||
|
||||
[2.4.0]: https://github.com/k8s-at-home/charts/tree/common-2.4.0/charts/common
|
||||
|
||||
[2.3.0]: https://github.com/k8s-at-home/charts/tree/common-2.3.0/charts/common
|
||||
|
||||
[2.2.1]: https://github.com/k8s-at-home/charts/tree/common-2.2.1/charts/common
|
||||
|
||||
[2.2.0]: https://github.com/k8s-at-home/charts/tree/common-2.2.0/charts/common
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
name: common
|
||||
description: Function library for k8s-at-home charts
|
||||
type: library
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- k8s-at-home
|
||||
- common
|
||||
|
||||
@@ -36,4 +36,18 @@ spec:
|
||||
{{- include "common.labels.selectorLabels" . | nindent 8 }}
|
||||
spec:
|
||||
{{- include "common.controller.pod" . | nindent 6 }}
|
||||
volumeClaimTemplates:
|
||||
{{- range $index, $vct := .Values.volumeClaimTemplates }}
|
||||
- metadata:
|
||||
name: {{ $vct.name }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ required (printf "accessMode is required for vCT %v" $vct.name) $vct.accessMode | quote }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ required (printf "size is required for PVC %v" $vct.name) $vct.size | quote }}
|
||||
{{- if $vct.storageClass }}
|
||||
storageClassName: {{ if (eq "-" $vct.storageClass) }}""{{- else }}{{ $vct.storageClass | quote }}{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -5,6 +5,9 @@ The main container included in the controller.
|
||||
- name: {{ include "common.names.fullname" . }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
{{- with .Values.command }}
|
||||
command: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.args }}
|
||||
args: {{ . }}
|
||||
{{- end }}
|
||||
@@ -12,12 +15,21 @@ The main container included in the controller.
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.env }}
|
||||
{{- if or .Values.env .Values.envTpl .Values.envValueFrom }}
|
||||
env:
|
||||
{{- range $key, $value := .Values.env }}
|
||||
- name: {{ $key }}
|
||||
value: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- range $key, $value := .Values.envTpl }}
|
||||
- name: {{ $key }}
|
||||
value: {{ tpl $value $ | quote }}
|
||||
{{- end }}
|
||||
{{- range $key, $value := .Values.envValueFrom }}
|
||||
- name: {{ $key }}
|
||||
valueFrom:
|
||||
{{- $value | toYaml | nindent 6 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.envFrom }}
|
||||
envFrom:
|
||||
@@ -37,6 +49,15 @@ The main container included in the controller.
|
||||
{{- if .Values.additionalVolumeMounts }}
|
||||
{{- toYaml .Values.additionalVolumeMounts | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- if eq .Values.controllerType "statefulset" }}
|
||||
{{- range $index, $vct := .Values.volumeClaimTemplates }}
|
||||
- mountPath: {{ $vct.mountPath }}
|
||||
name: {{ $vct.name }}
|
||||
{{- if $vct.subPath }}
|
||||
subPath: {{ $vct.subPath }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- include "common.controller.probes" . | nindent 2 }}
|
||||
{{- with .Values.resources }}
|
||||
resources:
|
||||
|
||||
@@ -11,9 +11,18 @@ serviceAccountName: {{ include "common.names.serviceAccountName" . }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- with .Values.priorityClassName }}
|
||||
priorityClassName: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.schedulerName }}
|
||||
schedulerName: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.hostNetwork }}
|
||||
hostNetwork: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.hostname }}
|
||||
hostname: {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.dnsPolicy }}
|
||||
dnsPolicy: {{ . }}
|
||||
{{- end }}
|
||||
|
||||
@@ -12,6 +12,8 @@ strategy:
|
||||
## DaemonSets ignore this
|
||||
type: RollingUpdate
|
||||
|
||||
# Override the default command
|
||||
command: []
|
||||
# Override the default args
|
||||
args: []
|
||||
|
||||
@@ -31,7 +33,19 @@ serviceAccount:
|
||||
name: ""
|
||||
|
||||
env: {}
|
||||
# TZ: UTC
|
||||
# TZ: UTC
|
||||
|
||||
## Variables with values set from templates, example
|
||||
## With a release name of: demo, the example env value will be: demo-admin
|
||||
envTpl: {}
|
||||
# TEMPLATE_VALUE: "{{ .Release.Name }}-admin"
|
||||
|
||||
## Variables with values from (for example) the Downward API
|
||||
## See https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/
|
||||
envValueFrom: {}
|
||||
# NODE_NAME:
|
||||
# fieldRef:
|
||||
# fieldPath: spec.nodeName
|
||||
|
||||
envFrom: []
|
||||
# - configMapRef:
|
||||
@@ -39,6 +53,15 @@ envFrom: []
|
||||
# - secretRef:
|
||||
# name: secret-name
|
||||
|
||||
# Custom priority class for different treatment by the scheduler
|
||||
# priorityClassName: system-node-critical
|
||||
|
||||
# Allow specifying a custom scheduler name
|
||||
# schedulerName: awkward-dangerous-scheduler
|
||||
|
||||
# Allow specifying explicit hostname setting
|
||||
# hostname:
|
||||
|
||||
# When using hostNetwork make sure you set dnsPolicy to ClusterFirstWithHostNet
|
||||
hostNetwork: false
|
||||
|
||||
@@ -56,6 +79,12 @@ dnsPolicy: ClusterFirst
|
||||
# for more information.
|
||||
enableServiceLinks: true
|
||||
|
||||
# Configure the Security Context for the Pod
|
||||
podSecurityContext: {}
|
||||
|
||||
# Configure the Security Context for the main container
|
||||
securityContext: {}
|
||||
|
||||
initContainers: []
|
||||
|
||||
additionalContainers: []
|
||||
@@ -207,6 +236,19 @@ additionalVolumes: []
|
||||
|
||||
additionalVolumeMounts: []
|
||||
|
||||
volumeClaimTemplates: []
|
||||
# Used in statefulset to create individual disks for each instance
|
||||
# - name: data
|
||||
# mountPath: /data
|
||||
# accessMode: "ReadWriteOnce"
|
||||
# size: 1Gi
|
||||
# - name: backup
|
||||
# mountPath: /backup
|
||||
# subPath: theSubPath
|
||||
# accessMode: "ReadWriteOnce"
|
||||
# size: 2Gi
|
||||
# storageClass: cheap-storage-class
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
affinity: {}
|
||||
@@ -221,6 +263,18 @@ hostAliases: []
|
||||
# - "example.com"
|
||||
# - "www.example.com"
|
||||
|
||||
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
|
||||
|
||||
addons:
|
||||
|
||||
# Enable running a VPN in the pod to route traffic through a VPN
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: latest
|
||||
description: CouchPotato (CP) is an automatic NZB and torrent downloader.
|
||||
name: couchpotato
|
||||
version: 4.3.1
|
||||
version: 4.4.0
|
||||
keywords:
|
||||
- couchpotato
|
||||
- usenet
|
||||
@@ -18,4 +18,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
# 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
|
||||
@@ -1,16 +0,0 @@
|
||||
apiVersion: v2
|
||||
appVersion: v0.5-4
|
||||
description: DashMachine is another web application bookmark dashboard, with fun features.
|
||||
icon: https://github.com/rmountjoy92/DashMachine/raw/master/dashmachine/static/images/logo/logo.png
|
||||
home: https://github.com/rmountjoy92/DashMachine
|
||||
name: dashmachine
|
||||
version: 3.3.1
|
||||
sources:
|
||||
- https://github.com/rmountjoy92/DashMachine
|
||||
maintainers:
|
||||
- name: carpenike
|
||||
email: ryan@ryanholt.net
|
||||
dependencies:
|
||||
- name: common
|
||||
version: 2.2.1
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
@@ -1,4 +0,0 @@
|
||||
approvers:
|
||||
- carpenike
|
||||
reviewers:
|
||||
- carpenike
|
||||
@@ -1,22 +0,0 @@
|
||||
# Default values for dashmachine.
|
||||
|
||||
image:
|
||||
repository: rmountjoy/dashmachine
|
||||
tag: v0.5-4
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
service:
|
||||
port:
|
||||
port: 5000
|
||||
|
||||
env: {}
|
||||
# TZ: UTC
|
||||
|
||||
persistence:
|
||||
config:
|
||||
enabled: false
|
||||
emptyDir: false
|
||||
mountPath: /dashmachine/dashmachine/user_data
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 3.9.1
|
||||
description: Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Providers
|
||||
name: ddclient
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- ddclient
|
||||
- dns
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v2.0.3-2201906121747
|
||||
description: Deluge is a torrent download client
|
||||
name: deluge
|
||||
version: 1.1.1
|
||||
version: 1.2.0
|
||||
keywords:
|
||||
- deluge
|
||||
- torrent
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v4.9.0
|
||||
description: DSMR-protocol reader, telegram data storage and energy consumption visualizer.
|
||||
name: dsmr-reader
|
||||
version: 1.1.1
|
||||
version: 1.2.0
|
||||
keywords:
|
||||
- dsmr-reader
|
||||
- energy
|
||||
@@ -17,7 +17,7 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
- name: postgresql
|
||||
version: 10.2.0
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 1.15.3
|
||||
description: ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
|
||||
name: esphome
|
||||
version: 4.3.1
|
||||
version: 4.4.0
|
||||
keywords:
|
||||
- esphome
|
||||
- home-automation
|
||||
@@ -16,4 +16,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v1.2.3
|
||||
description: FlareSolverr is a proxy server to bypass Cloudflare protection
|
||||
name: flaresolverr
|
||||
version: 1.0.0
|
||||
version: 1.1.0
|
||||
keywords:
|
||||
- flaresolverr
|
||||
- jackett
|
||||
@@ -16,4 +16,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 4.1.1
|
||||
description: Flood is a monitoring service for various torrent clients
|
||||
name: flood
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- flood
|
||||
- rtorrent
|
||||
@@ -19,4 +19,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 1.17.0
|
||||
description: FreshRSS is a self-hosted RSS feed aggregator
|
||||
name: freshrss
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- freshrss
|
||||
- rss
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
apiVersion: v2
|
||||
appVersion: "0.6.0"
|
||||
description: Realtime object detection on RTSP cameras with the Google Coral
|
||||
name: frigate
|
||||
version: 4.0.1
|
||||
keywords:
|
||||
- tensorflow
|
||||
- coral
|
||||
- ml
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/frigate
|
||||
icon: https://upload.wikimedia.org/wikipedia/commons/a/a4/Lutine1.jpg
|
||||
sources:
|
||||
- https://github.com/blakeblackshear/frigate
|
||||
maintainers:
|
||||
- name: billimek
|
||||
email: jeff@billimek.com
|
||||
- name: blakeblackshear
|
||||
email: blakeb@blakeshome.com
|
||||
@@ -1,4 +0,0 @@
|
||||
approvers:
|
||||
- billimek
|
||||
reviewers:
|
||||
- billimek
|
||||
@@ -1,99 +0,0 @@
|
||||
# frigate: Realtime object detection on RTSP cameras with the Google Coral
|
||||
|
||||
This is a helm chart for [frigate](https://github.com/blakeblackshear/frigate)
|
||||
|
||||
## TL;DR;
|
||||
|
||||
```shell
|
||||
$ helm repo add k8s-at-home https://k8s-at-home.com/charts/
|
||||
$ helm install k8s-at-home/frigate
|
||||
```
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `my-release`:
|
||||
|
||||
```console
|
||||
helm install --name my-release k8s-at-home/frigate
|
||||
```
|
||||
|
||||
~~**IMPORTANT NOTE:** the [Google Coral USB Accelerator](https://coral.withgoogle.com/products/accelerator/) must be accessible on the node where this pod runs, in order for this chart to function properly.~~
|
||||
|
||||
The Coral USB device is now optional
|
||||
|
||||
A way to achieve this can be with nodeAffinity rules, for example:
|
||||
|
||||
```yaml
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: tpu
|
||||
operator: In
|
||||
values:
|
||||
- google-coral
|
||||
```
|
||||
|
||||
... where a node with an attached Coral USB device is labeled with `tpu: google-coral`
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall/delete the `my-release` deployment:
|
||||
|
||||
```console
|
||||
helm delete my-release --purge
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart and deletes the release.
|
||||
|
||||
## Configuration
|
||||
|
||||
The following tables lists the configurable parameters of the Frigate chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|----------------------------|-------------------------------------|---------------------------------------------------------|
|
||||
| `image.repository` | Image repository | `blakeblackshear/frigate` |
|
||||
| `image.tag` | Image tag. Possible values listed [here](https://hub.docker.com/r/blakeblackshear/frigate/tags/).| `0.5.1`|
|
||||
| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
|
||||
| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` |
|
||||
| `timezone` | Timezone the frigate instance should run as, e.g. 'America/New_York' | `UTC` |
|
||||
| `rtspPassword` | Password to use for RTSP cameras | `password` |
|
||||
| `extraSecretForEnvFrom` | Secrets containing env variables for | `[]` |
|
||||
| `coral.enabled` | Use the Coral USB device | `false` |
|
||||
| `coral.hostPath` | Host Path to reference USB device location (on the host) | `/dev/bus/usb` |
|
||||
| `masksConfigMap` | Reference to existing ConfigMap that contains camera masks - [more info](https://github.com/blakeblackshear/frigate#masks-and-limiting-detection-to-a-certain-area) | `{}` |
|
||||
| `shmSize` | Shared memory size for processing | `1Gi` |
|
||||
| `config` | frigate configuration - see [config.yaml](https://github.com/blakeblackshear/frigate/blob/master/config/config.yml) for example | `{}` |
|
||||
| `Service.type` | Kubernetes service type for the frigate GUI | `ClusterIP` |
|
||||
| `Service.port` | Kubernetes port where the frigate GUI is exposed| `5000` |
|
||||
| `Service.annotations` | Service annotations for the frigate GUI | `{}` |
|
||||
| `Service.labels` | Custom labels | `{}` |
|
||||
| `Service.loadBalancerIP` | Loadbalance IP for the frigate GUI | `{}` |
|
||||
| `Service.loadBalancerSourceRanges` | List of IP CIDRs allowed access to load balancer (if supported) | None
|
||||
| `ingress.enabled` | Enables Ingress | `false` |
|
||||
| `ingress.annotations` | Ingress annotations | `{}` |
|
||||
| `ingress.labels` | Custom labels | `{}`
|
||||
| `ingress.path` | Ingress path | `/` |
|
||||
| `ingress.hosts` | Ingress accepted hostnames | `chart-example.local` |
|
||||
| `ingress.tls` | Ingress TLS configuration | `[]` |
|
||||
| `resources` | CPU/Memory resource requests/limits | `{}` |
|
||||
| `nodeSelector` | Node labels for pod assignment | `{}` |
|
||||
| `tolerations` | Toleration labels for pod assignment | `[]` |
|
||||
| `affinity` | Affinity settings for pod assignment | `{}` |
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```console
|
||||
helm install --name my-release \
|
||||
--set rtspPassword="nosecrets" \
|
||||
k8s-at-home/frigate
|
||||
```
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
|
||||
|
||||
```console
|
||||
helm install --name my-release -f values.yaml stable/frigate
|
||||
```
|
||||
|
||||
Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/frigate/values.yaml) file. It has several commented out suggested values.
|
||||
@@ -1,8 +0,0 @@
|
||||
# Probes configuration
|
||||
probes:
|
||||
liveness:
|
||||
enabled: false
|
||||
readiness:
|
||||
enabled: false
|
||||
startup:
|
||||
enabled: false
|
||||
@@ -1,19 +0,0 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- range .Values.ingress.hosts }}
|
||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ingress.path }}
|
||||
{{- end }}
|
||||
{{- else if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "frigate.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 svc -w {{ include "frigate.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "frigate.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "frigate.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:5000 to use your application"
|
||||
kubectl port-forward $POD_NAME 5000:5000
|
||||
{{- end }}
|
||||
@@ -1,45 +0,0 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "frigate.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 "frigate.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 "frigate.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "frigate.labels" -}}
|
||||
app.kubernetes.io/name: {{ include "frigate.name" . }}
|
||||
helm.sh/chart: {{ include "frigate.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end -}}
|
||||
@@ -1,13 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "frigate.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "frigate.name" . }}
|
||||
helm.sh/chart: {{ include "frigate.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
data:
|
||||
config.yml: |
|
||||
{{ .Values.config | indent 4 }}
|
||||
@@ -1,149 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "frigate.fullname" . }}
|
||||
labels:
|
||||
{{ include "frigate.labels" . | indent 4 }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
revisionHistoryLimit: 3
|
||||
strategy:
|
||||
type: {{ .Values.strategyType }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ include "frigate.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "frigate.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- if .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- range $key, $value := .Values.podAnnotations }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
- name: config
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: true
|
||||
image: "{{ .Values.initContainer.image.repository }}:{{ .Values.initContainer.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.initContainer.image.pullPolicy }}
|
||||
volumeMounts:
|
||||
- mountPath: /frigate-config
|
||||
name: configmap
|
||||
- mountPath: /masks
|
||||
name: masks
|
||||
- mountPath: /config
|
||||
name: config
|
||||
readOnly: false
|
||||
command: ['sh', '-c']
|
||||
args:
|
||||
- cp /frigate-config/* /config;
|
||||
{{- if .Values.masksConfigMap }}
|
||||
cp /masks/* /config;
|
||||
{{- end }}
|
||||
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
securityContext:
|
||||
privileged: true
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 5000
|
||||
protocol: TCP
|
||||
{{- if .Values.probes.liveness.enabled }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
scheme: 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
|
||||
scheme: 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
|
||||
scheme: HTTP
|
||||
failureThreshold: {{ .Values.probes.startup.failureThreshold }}
|
||||
periodSeconds: {{ .Values.probes.startup.periodSeconds }}
|
||||
{{- end }}
|
||||
env:
|
||||
{{- if .Values.timezone }}
|
||||
- name: TZ
|
||||
value: "{{ .Values.timezone }}"
|
||||
{{- end }}
|
||||
- name: FRIGATE_RTSP_PASSWORD
|
||||
value: "{{ .Values.rtspPassword }}"
|
||||
envFrom:
|
||||
{{- range .Values.extraSecretForEnvFrom }}
|
||||
- secretRef:
|
||||
name: {{ . }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Values.coral.enabled }}
|
||||
- mountPath: /dev/bus/usb
|
||||
name: usb
|
||||
{{- end }}
|
||||
- mountPath: /config
|
||||
name: config
|
||||
- name: dshm
|
||||
mountPath: /dev/shm
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
volumes:
|
||||
- name: config
|
||||
emptyDir: {}
|
||||
- name: configmap
|
||||
configMap:
|
||||
name: {{ template "frigate.fullname" . }}
|
||||
- name: masks
|
||||
{{- if .Values.masksConfigMap }}
|
||||
configMap:
|
||||
name: {{ .Values.masksConfigMap }}
|
||||
{{- else }}
|
||||
emptyDir:
|
||||
{}
|
||||
{{- end }}
|
||||
{{- if .Values.coral.enabled }}
|
||||
- name: usb
|
||||
hostPath:
|
||||
path: {{ .Values.coral.hostPath }}
|
||||
{{- end }}
|
||||
- name: dshm
|
||||
emptyDir:
|
||||
medium: Memory
|
||||
sizeLimit: {{ .Values.shmSize }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
@@ -1,35 +0,0 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "frigate.fullname" . -}}
|
||||
{{- $ingressPath := .Values.ingress.path -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
{{ include "frigate.labels" . | indent 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 }}
|
||||
@@ -1,49 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "frigate.fullname" . }}
|
||||
labels:
|
||||
{{ include "frigate.labels" . | indent 4 }}
|
||||
{{- if .Values.service.labels }}
|
||||
{{ toYaml .Values.service.labels | indent 4 }}
|
||||
{{- end }}
|
||||
{{- with .Values.service.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if (or (eq .Values.service.type "ClusterIP") (empty .Values.service.type)) }}
|
||||
type: ClusterIP
|
||||
{{- if .Values.service.clusterIP }}
|
||||
clusterIP: {{ .Values.service.clusterIP }}
|
||||
{{end}}
|
||||
{{- 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 | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.service.externalTrafficPolicy }}
|
||||
externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
port: {{ .Values.service.port }}
|
||||
protocol: TCP
|
||||
targetPort: http
|
||||
{{ if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }}
|
||||
nodePort: {{.Values.service.nodePort}}
|
||||
{{ end }}
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "frigate.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
@@ -1,251 +0,0 @@
|
||||
# Default values for frigate.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
# upgrade strategy type (e.g. Recreate or RollingUpdate)
|
||||
strategyType: Recreate
|
||||
|
||||
image:
|
||||
repository: blakeblackshear/frigate
|
||||
tag: 0.6.0
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
rtspPassword: password
|
||||
|
||||
# secret name containing environment variables for frigate
|
||||
extraSecretForEnvFrom: []
|
||||
|
||||
coral:
|
||||
enabled: false
|
||||
hostPath: /dev/bus/usb
|
||||
|
||||
# Specify image that generates the config folder containing the Frigate config file, masks (if specified), etc.
|
||||
initContainer:
|
||||
image:
|
||||
repository: busybox
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
|
||||
# reference to configMap that contains the binary data of the masks to be copied into the container
|
||||
# this requires that generateConfigFolder.enabled = true
|
||||
# see https://github.com/blakeblackshear/frigate#masks-and-limiting-detection-to-a-certain-area for more info
|
||||
masksConfigMap: {}
|
||||
|
||||
shmSize: 1Gi
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
# frigate configuration - see https://github.com/blakeblackshear/frigate/blob/master/config/config.yml for example
|
||||
config: |
|
||||
web_port: 5000
|
||||
|
||||
mqtt:
|
||||
host: test.mosquitto.org
|
||||
topic_prefix: frigate
|
||||
# client_id: frigate # Optional -- set to override default client id of 'frigate' if running multiple instances
|
||||
# user: username # Optional
|
||||
#################
|
||||
## Environment variables that begin with 'FRIGATE_' may be referenced in {}.
|
||||
## password: '{FRIGATE_MQTT_PASSWORD}'
|
||||
#################
|
||||
# password: password # Optional
|
||||
|
||||
#################
|
||||
# Default ffmpeg args. Optional and can be overwritten per camera.
|
||||
# Should work with most RTSP cameras that send h264 video
|
||||
# Built from the properties below with:
|
||||
# "ffmpeg" + global_args + input_args + "-i" + input + output_args
|
||||
#################
|
||||
# ffmpeg:
|
||||
# global_args:
|
||||
# - -hide_banner
|
||||
# - -loglevel
|
||||
# - panic
|
||||
# hwaccel_args: []
|
||||
# input_args:
|
||||
# - -avoid_negative_ts
|
||||
# - make_zero
|
||||
# - -fflags
|
||||
# - nobuffer
|
||||
# - -flags
|
||||
# - low_delay
|
||||
# - -strict
|
||||
# - experimental
|
||||
# - -fflags
|
||||
# - +genpts+discardcorrupt
|
||||
# - -vsync
|
||||
# - drop
|
||||
# - -rtsp_transport
|
||||
# - tcp
|
||||
# - -stimeout
|
||||
# - '5000000'
|
||||
# - -use_wallclock_as_timestamps
|
||||
# - '1'
|
||||
# output_args:
|
||||
# - -f
|
||||
# - rawvideo
|
||||
# - -pix_fmt
|
||||
# - rgb24
|
||||
|
||||
####################
|
||||
# Global object configuration. Applies to all cameras
|
||||
# unless overridden at the camera levels.
|
||||
# Keys must be valid labels. By default, the model uses coco (https://dl.google.com/coral/canned_models/coco_labels.txt).
|
||||
# All labels from the model are reported over MQTT. These values are used to filter out false positives.
|
||||
# min_area (optional): minimum width*height of the bounding box for the detected person
|
||||
# max_area (optional): maximum width*height of the bounding box for the detected person
|
||||
# threshold (optional): The minimum decimal percentage (50% hit = 0.5) for the confidence from tensorflow
|
||||
####################
|
||||
objects:
|
||||
track:
|
||||
- person
|
||||
- car
|
||||
- truck
|
||||
filters:
|
||||
person:
|
||||
min_area: 5000
|
||||
max_area: 100000
|
||||
threshold: 0.5
|
||||
|
||||
cameras:
|
||||
back:
|
||||
ffmpeg:
|
||||
################
|
||||
# Source passed to ffmpeg after the -i parameter. Supports anything compatible with OpenCV and FFmpeg.
|
||||
# Environment variables that begin with 'FRIGATE_' may be referenced in {}
|
||||
################
|
||||
input: rtsp://viewer:{FRIGATE_RTSP_PASSWORD}@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
|
||||
#################
|
||||
# These values will override default values for just this camera
|
||||
#################
|
||||
# global_args: []
|
||||
# hwaccel_args: []
|
||||
# input_args: []
|
||||
# output_args: []
|
||||
|
||||
################
|
||||
## Optionally specify the resolution of the video feed. Frigate will try to auto detect if not specified
|
||||
################
|
||||
# height: 1280
|
||||
# width: 720
|
||||
|
||||
################
|
||||
## Optional mask. Must be the same aspect ratio as your video feed.
|
||||
##
|
||||
## The mask works by looking at the bottom center of the bounding box for the detected
|
||||
## person in the image. If that pixel in the mask is a black pixel, it ignores it as a
|
||||
## false positive. In my mask, the grass and driveway visible from my backdoor camera
|
||||
## are white. The garage doors, sky, and trees (anywhere it would be impossible for a
|
||||
## person to stand) are black.
|
||||
##
|
||||
## Masked areas are also ignored for motion detection.
|
||||
################
|
||||
# mask: back-mask.bmp
|
||||
|
||||
################
|
||||
# Allows you to limit the framerate within frigate for cameras that do not support
|
||||
# custom framerates. A value of 1 tells frigate to look at every frame, 2 every 2nd frame,
|
||||
# 3 every 3rd frame, etc.
|
||||
################
|
||||
take_frame: 1
|
||||
|
||||
################
|
||||
# The expected framerate for the camera. Frigate will try and ensure it maintains this framerate
|
||||
# by dropping frames as necessary. Setting this lower than the actual framerate will allow frigate
|
||||
# to process every frame at the expense of realtime processing.
|
||||
################
|
||||
fps: 5
|
||||
|
||||
################
|
||||
# Configuration for the snapshots in the debug view and mqtt
|
||||
################
|
||||
snapshots:
|
||||
show_timestamp: True
|
||||
|
||||
################
|
||||
# Camera level object config. This config is merged with the global config above.
|
||||
################
|
||||
objects:
|
||||
track:
|
||||
- person
|
||||
filters:
|
||||
person:
|
||||
min_area: 5000
|
||||
max_area: 100000
|
||||
threshold: 0.5
|
||||
|
||||
|
||||
# Probes configuration
|
||||
probes:
|
||||
liveness:
|
||||
enabled: true
|
||||
initialDelaySeconds: 30
|
||||
failureThreshold: 5
|
||||
timeoutSeconds: 10
|
||||
readiness:
|
||||
enabled: true
|
||||
initialDelaySeconds: 30
|
||||
failureThreshold: 5
|
||||
timeoutSeconds: 10
|
||||
startup:
|
||||
enabled: false
|
||||
failureThreshold: 30
|
||||
periodSeconds: 10
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 5000
|
||||
## Specify the nodePort value for the LoadBalancer and NodePort service types.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
|
||||
##
|
||||
# nodePort:
|
||||
## Provide any additional annotations which may be required. This can be used to
|
||||
## set the LoadBalancer service type to internal only.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
|
||||
##
|
||||
annotations: {}
|
||||
labels: {}
|
||||
## Use loadBalancerIP to request a specific static IP,
|
||||
## otherwise leave blank
|
||||
##
|
||||
loadBalancerIP:
|
||||
# loadBalancerSourceRanges: []
|
||||
## Set the externalTrafficPolicy in the Service to either Cluster or Local
|
||||
# externalTrafficPolicy: Cluster
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
path: /
|
||||
hosts:
|
||||
- chart-example.local
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - chart-example.local
|
||||
|
||||
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
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
|
||||
podAnnotations: {}
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: latest
|
||||
description: Gaps searches through your Plex Server or local folders for all movies, then queries for known movies in the same collection.
|
||||
name: gaps
|
||||
version: 1.1.1
|
||||
version: 1.2.0
|
||||
keywords:
|
||||
- plex
|
||||
- plex-media-server
|
||||
@@ -16,4 +16,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
apiVersion: v2
|
||||
appVersion: latest
|
||||
appVersion: v0.12.0
|
||||
description: Music streaming server / subsonic server API implementation
|
||||
name: gonic
|
||||
version: 1.0.0
|
||||
version: 2.1.0
|
||||
keywords:
|
||||
- music
|
||||
- subsonic
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
21
charts/gonic/ci/ct-values.yaml
Normal file
21
charts/gonic/ci/ct-values.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
env:
|
||||
GONIC_MUSIC_PATH: "/music"
|
||||
GONIC_PODCAST_PATH: "/podcasts"
|
||||
GONIC_CACHE_PATH: "/cache"
|
||||
persistence:
|
||||
data:
|
||||
enabled: true
|
||||
emptyDir: true
|
||||
mountPath: /data
|
||||
podcasts:
|
||||
enabled: true
|
||||
emptyDir: true
|
||||
mountPath: /podcasts
|
||||
cache:
|
||||
enabled: true
|
||||
emptyDir: true
|
||||
mountPath: /cache
|
||||
music:
|
||||
enabled: true
|
||||
emptyDir: true
|
||||
mountPath: /music
|
||||
@@ -3,7 +3,7 @@
|
||||
image:
|
||||
repository: sentriz/gonic
|
||||
pullPolicy: IfNotPresent
|
||||
tag: latest
|
||||
tag: v0.12.0
|
||||
|
||||
strategy:
|
||||
type: Recreate
|
||||
@@ -15,13 +15,24 @@ service:
|
||||
# # See more environment variables in the gonic documentation
|
||||
# https://github.com/sentriz/gonic#configuration-options
|
||||
env: {}
|
||||
# TZ: UTC
|
||||
# TZ:
|
||||
# GONIC_MUSIC_PATH:
|
||||
# GONIC_PODCAST_PATH:
|
||||
# GONIC_CACHE_PATH:
|
||||
|
||||
persistence:
|
||||
data:
|
||||
enabled: false
|
||||
emptyDir: false
|
||||
|
||||
podcasts:
|
||||
enabled: false
|
||||
emptyDir: false
|
||||
|
||||
cache:
|
||||
enabled: false
|
||||
emptyDir: false
|
||||
|
||||
music:
|
||||
enabled: false
|
||||
emptyDir: false
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v2.7.1
|
||||
description: ERP beyond your fridge - grocy is a web-based self-hosted groceries & household management solution for your home
|
||||
name: grocy
|
||||
version: 4.3.1
|
||||
version: 4.4.0
|
||||
keywords:
|
||||
- grocy
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/grocy
|
||||
@@ -14,5 +14,5 @@ maintainers:
|
||||
email: jeff@billimek.com
|
||||
dependencies:
|
||||
- name: common
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 2.2.2
|
||||
description: An Application dashboard and launcher
|
||||
name: heimdall
|
||||
version: 4.2.1
|
||||
version: 4.3.0
|
||||
keywords:
|
||||
- heimdall
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/heimdall
|
||||
@@ -15,5 +15,5 @@ maintainers:
|
||||
email: jeff@billimek.com
|
||||
dependencies:
|
||||
- name: common
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
apiVersion: v2
|
||||
appVersion: 2020.12.1
|
||||
appVersion: 2021.1.5
|
||||
description: Home Assistant
|
||||
name: home-assistant
|
||||
version: 5.4.1
|
||||
version: 5.5.0
|
||||
keywords:
|
||||
- home-assistant
|
||||
- hass
|
||||
@@ -19,7 +19,7 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
- name: postgresql
|
||||
version: 10.2.0
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# Default values for zwave2mqtt.
|
||||
# Default values for home-assistant.
|
||||
|
||||
image:
|
||||
repository: homeassistant/home-assistant
|
||||
pullPolicy: IfNotPresent
|
||||
tag: 2020.12.1
|
||||
tag: 2021.1.5
|
||||
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
@@ -4,7 +4,7 @@ description: A dead simple static HOMepage for your servER to keep your services
|
||||
icon: https://raw.githubusercontent.com/bastienwirtz/homer/main/public/logo.png
|
||||
home: https://github.com/bastienwirtz/homer
|
||||
name: homer
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
sources:
|
||||
- https://github.com/bastienwirtz/homer
|
||||
maintainers:
|
||||
@@ -12,5 +12,5 @@ maintainers:
|
||||
email: jeff@billimek.com
|
||||
dependencies:
|
||||
- name: common
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 2.0.0-alpha9
|
||||
description: Hyperion is an opensource Bias or Ambient Lighting implementation
|
||||
name: hyperion-ng
|
||||
version: 1.1.1
|
||||
version: 1.2.0
|
||||
keywords:
|
||||
- hyperion-ng
|
||||
- hyperion
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v0.16.2106
|
||||
description: API Support for your favorite torrent trackers
|
||||
name: jackett
|
||||
version: 6.3.1
|
||||
version: 6.4.0
|
||||
keywords:
|
||||
- jackett
|
||||
- torrent
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 10.6.4
|
||||
description: Jellyfin is a Free Software Media System
|
||||
name: jellyfin
|
||||
version: 4.3.1
|
||||
version: 4.4.0
|
||||
keywords:
|
||||
- jellyfin
|
||||
- plex
|
||||
@@ -18,4 +18,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
apiVersion: v2
|
||||
name: lazylibrarian
|
||||
description: A Helm chart for deploying LazyLibrarian
|
||||
version: 2.0.1
|
||||
version: 3.1.0
|
||||
appVersion: 1.7.2
|
||||
keywords:
|
||||
- lazylibrarian
|
||||
@@ -14,3 +14,7 @@ sources:
|
||||
maintainers:
|
||||
- name: billimek
|
||||
email: jeff@billimek.com
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.4.0
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# LazyLibrarian helm chart
|
||||
# LazyLibrarian
|
||||
|
||||
This is a helm chart for [LazyLibrarian](https://gitlab.com/LazyLibrarian/LazyLibrarian.git) based on the [container image provided by LinuxServer.io](https://hub.docker.com/r/linuxserver/lazylibrarian/).
|
||||
This is a helm chart for [LazyLibrarian](https://gitlab.com/LazyLibrarian/LazyLibrarian.git).
|
||||
|
||||
**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)**
|
||||
|
||||
## TL;DR
|
||||
|
||||
@@ -13,89 +15,67 @@ $ helm install k8s-at-home/lazylibrarian
|
||||
|
||||
To install the chart with the release name `my-release`:
|
||||
|
||||
```shell
|
||||
helm install my-release k8s-at-home/lazylibrarian
|
||||
```console
|
||||
helm install --name my-release k8s-at-home/lazylibrarian
|
||||
```
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall/delete the `my-release` deployment:
|
||||
|
||||
```shell
|
||||
```console
|
||||
helm delete my-release --purge
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart and deletes the release.
|
||||
|
||||
## Configuration
|
||||
|
||||
The following tables lists the configurable parameters of the LazyLibrarian chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
| ------------------------------------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
|
||||
| `image.repository` | Image repository | `linuxserver/lazylibrarian` |
|
||||
| `image.tag` | Image tag. Possible values listed [here](https://hub.docker.com/r/linuxserver/lazylibrarian/tags/). | `581cdfb3-ls23` |
|
||||
| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
|
||||
| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` |
|
||||
| `timezone` | Timezone the instance should run as, e.g. 'America/New_York' | `UTC` |
|
||||
| `puid` | process userID the instance should run as | `1001` |
|
||||
| `pgid` | process groupID the instance should run as | `1001` |
|
||||
| `dockerMods.calibre.enabled` | Enable optional calibre conversion feature. refer [here](https://github.com/linuxserver/docker-lazylibrarian#application-setup) | `false` |
|
||||
| `dockerMods.calibre.image.repository` | DockerMod image repository | `linuxserver/calibre-web` |
|
||||
| `dockerMods.calibre.image.tag` | DockerMod image tag. Can be found [here](https://hub.docker.com/r/linuxserver/calibre-web/tags/) | `calibre` |
|
||||
| `dockerMods.ffmpeg.enabled` | Enable optional ffmpeg conversion feature. refer [here](https://github.com/linuxserver/docker-lazylibrarian#application-setup) | `false` |
|
||||
| `dockerMods.ffmpeg.image.repository` | DockerMod image repository | `linuxserver/mods` |
|
||||
| `dockerMods.ffmpeg.image.tag` | DockerMod image tag. | `lazylibrarian-ffmpeg` |
|
||||
| `probes.liveness.enabled` | Enables liveness probe for the main container | `true` |
|
||||
| `probes.liveness.initialDelaySeconds` | Specify liveness `initialDelaySeconds` parameter for the main container | `60` |
|
||||
| `probes.liveness.failureThreshold` | Specify liveness `failureThreshold` parameter for the main container | `5` |
|
||||
| `probes.liveness.timeoutSeconds` | Specify liveness `timeoutSeconds` parameter for the main container | `10` |
|
||||
| `probes.readiness.enabled` | Enables readiness probe for the main container | `true` |
|
||||
| `probes.readiness.initialDelaySeconds` | Specify readiness `initialDelaySeconds` parameter for the main container | `60` |
|
||||
| `probes.readiness.failureThreshold` | Specify readiness `failureThreshold` parameter for the main container | `5` |
|
||||
| `probes.readiness.timeoutSeconds` | Specify readiness `timeoutSeconds` parameter for the main container | `10` |
|
||||
| `probes.startup.enabled` | Enables startup probe for the main container | `false` |
|
||||
| `probes.startup.failureThreshold` | Specify startup `failureThreshold` parameter for the main container | `30` |
|
||||
| `probes.startup.timeoutSeconds` | Specify startup `periodSeconds` parameter for the main container | `10` |
|
||||
| `service.type` | Kubernetes service type for the GUI | `ClusterIP` |
|
||||
| `service.port` | Kubernetes port where the GUI is exposed | `5299` |
|
||||
| `service.annotations` | Service annotations for the GUI | `{}` |
|
||||
| `service.labels` | Custom labels | `{}` |
|
||||
| `service.loadBalancerIP` | Loadbalancer IP for the GUI | `{}` |
|
||||
| `service.loadBalancerSourceRanges` | List of IP CIDRs allowed access to load balancer (if supported) | None |
|
||||
| `ingress.enabled` | Enables Ingress | `false` |
|
||||
| `ingress.annotations` | Ingress annotations | `{}` |
|
||||
| `ingress.labels` | Custom labels | `{}` |
|
||||
| `ingress.path` | Ingress path | `/` |
|
||||
| `ingress.hosts` | Ingress accepted hostnames | `chart-example.local` |
|
||||
| `ingress.tls` | Ingress TLS configuration | `[]` |
|
||||
| `persistence.enabled` | Use persistent volume to store configuration data | `true` |
|
||||
| `persistence.size` | Size of persistent volume claim | `1Gi` |
|
||||
| `persistence.existingClaim` | Use an existing PVC to persist data | `nil` |
|
||||
| `persistence.storageClass` | Type of persistent volume claim | `-` |
|
||||
| `persistence.subPath` | Mount a sub directory if set | `nil ` |
|
||||
| `persistence.accessMode` | Persistence access mode | `ReadWriteOnce` |
|
||||
| `persistence.extraVolumes` | Optionally add multiple additional volumes | `[]` |
|
||||
| `resources` | CPU/Memory resource requests/limits | `{}` |
|
||||
| `nodeSelector` | Node labels for pod assignment | `{}` |
|
||||
| `tolerations` | Toleration labels for pod assignment | `[]` |
|
||||
| `affinity` | Affinity settings for pod assignment | `{}` |
|
||||
| `podAnnotations` | Key-value pairs to add as pod annotations | `{}` |
|
||||
Read through the charts [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/lazylibrarian/values.yaml)
|
||||
file. It has several commented out suggested values.
|
||||
Additionally you can take a look at the common library [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/common/values.yaml) for more (advanced) configuration options.
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```console
|
||||
helm install my-release \
|
||||
--set timezone="Europe/Amsterdam" \
|
||||
helm install lazylibrarian \
|
||||
--set env.TZ="America/New_York" \
|
||||
k8s-at-home/lazylibrarian
|
||||
```
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the
|
||||
chart. For example,
|
||||
```console
|
||||
helm install my-release -f values.yaml k8s-at-home/lazylibrarian
|
||||
helm install lazylibrarian k8s-at-home/lazylibrarian --values values.yaml
|
||||
```
|
||||
|
||||
```yaml
|
||||
image:
|
||||
tag: ...
|
||||
```
|
||||
|
||||
---
|
||||
**NOTE**
|
||||
|
||||
Read through the [values.yaml](https://github.com/k8s-at-home/charts/lazylibrarian/values.yaml) file. It has several commented out suggested values.
|
||||
If you get
|
||||
```console
|
||||
Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: ...`
|
||||
```
|
||||
it may be because you uninstalled the chart with `skipuninstall` enabled, you need to manually delete the pvc or use `existingClaim`.
|
||||
|
||||
---
|
||||
|
||||
## Upgrading an existing Release to a new major version
|
||||
|
||||
A major chart version change (like 4.0.1 -> 5.0.0) indicates that there is an incompatible breaking change potentially needing manual actions.
|
||||
|
||||
### Upgrading from 2.x.x to 3.x.x
|
||||
|
||||
Due to migrating to a centralized common library some values in `values.yaml` have changed.
|
||||
|
||||
Examples:
|
||||
|
||||
* `pguid` has been moved to `env`
|
||||
* `pgid` has been moved to `env`
|
||||
* All dockermods have been moved to `env`
|
||||
* `service.port` has been moved to `service.port.port`.
|
||||
* `persistence.type` has been moved to `controllerType`.
|
||||
|
||||
Refer to the library values.yaml for more configuration options.
|
||||
|
||||
@@ -1,21 +1 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- range $host := .Values.ingress.hosts }}
|
||||
{{- range .paths }}
|
||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "lazylibrarian.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 "lazylibrarian.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "lazylibrarian.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
||||
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "lazylibrarian.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.port }}
|
||||
{{- end }}
|
||||
{{- include "common.notes.defaultNotes" . -}}
|
||||
|
||||
@@ -1,107 +0,0 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "lazylibrarian.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 "lazylibrarian.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 "lazylibrarian.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "lazylibrarian.labels" -}}
|
||||
helm.sh/chart: {{ include "lazylibrarian.chart" . }}
|
||||
{{ include "lazylibrarian.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "lazylibrarian.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "lazylibrarian.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "lazylibrarian.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
{{- default (include "lazylibrarian.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else }}
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Determine the addons to be installed
|
||||
*/}}
|
||||
{{- define "lazylibrarian.enabledAddons" -}}
|
||||
{{- $enabledAddons := list -}}
|
||||
{{- if .Values.dockerMods.calibre.enabled }}
|
||||
{{- $enabledAddons = printf "%s:%s" .Values.dockerMods.calibre.image.repository .Values.dockerMods.calibre.image.tag | append $enabledAddons -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.dockerMods.ffmpeg.enabled }}
|
||||
{{- $enabledAddons = printf "%s:%s" .Values.dockerMods.ffmpeg.image.repository .Values.dockerMods.ffmpeg.image.tag | append $enabledAddons -}}
|
||||
{{- end -}}
|
||||
{{- join "|" $enabledAddons | quote -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Get the additional volumes
|
||||
*/}}
|
||||
{{- define "lazylibrarian.extraVolumes" -}}
|
||||
{{- if .Values.persistence.extraVolumes }}
|
||||
{{- $extraVolumes := .Values.persistence.extraVolumes -}}
|
||||
{{- range $extraVolumes }}
|
||||
{{- $_ := unset . "mountPath" }}
|
||||
{{- end }}
|
||||
{{- toYaml $extraVolumes }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Get the additional volumeMounts
|
||||
*/}}
|
||||
{{- define "lazylibrarian.extraVolumeMounts" -}}
|
||||
{{- if .Values.persistence.extraVolumes }}
|
||||
{{- $extraVolumeMounts := list -}}
|
||||
{{- range .Values.persistence.extraVolumes }}
|
||||
{{- if .mountPath }}
|
||||
{{- $extraVolumeMounts = dict "name" .name "mountPath" .mountPath | append $extraVolumeMounts -}}
|
||||
{{- else }}
|
||||
{{- $extraVolumeMounts = dict "name" .name "mountPath" (printf "/mnt/%s" .name) | append $extraVolumeMounts -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- toYaml $extraVolumeMounts }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,15 +0,0 @@
|
||||
{{- if .Values.autoscaling.enabled }}
|
||||
apiVersion: autoscaling/v2beta1
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ include "lazylibrarian.fullname" . }}
|
||||
labels:
|
||||
{{- include "lazylibrarian.labels" . | nindent 4 }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
name: {{ include "lazylibrarian.fullname" . }}
|
||||
minReplicas: {{ .Values.autoscaling.minReplicas }}
|
||||
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
|
||||
{{- end }}
|
||||
@@ -1,41 +0,0 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "lazylibrarian.fullname" . -}}
|
||||
{{- $svcPort := .Values.service.port -}}
|
||||
{{- 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 "lazylibrarian.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: {{ .host | quote }}
|
||||
http:
|
||||
paths:
|
||||
{{- range .paths }}
|
||||
- path: {{ . }}
|
||||
backend:
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: {{ $svcPort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,32 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "lazylibrarian.fullname" . }}
|
||||
labels:
|
||||
{{- include "lazylibrarian.labels" . | nindent 4 }}
|
||||
{{- if .Values.service.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.service.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
{{- if .Values.service.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.service.load }}
|
||||
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.service.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.service.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if .Values.service.externalTrafficPolicy }}
|
||||
externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
{{- include "lazylibrarian.selectorLabels" . | nindent 4 }}
|
||||
@@ -1,12 +0,0 @@
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "lazylibrarian.serviceAccountName" . }}
|
||||
labels:
|
||||
{{- include "lazylibrarian.labels" . | nindent 4 }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,132 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: {{ include "lazylibrarian.fullname" . }}
|
||||
labels:
|
||||
{{- include "lazylibrarian.labels" . | nindent 4 }}
|
||||
spec:
|
||||
{{- if not .Values.autoscaling.enabled }}
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "lazylibrarian.selectorLabels" . | nindent 6 }}
|
||||
serviceName: {{ include "lazylibrarian.name" . }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "lazylibrarian.selectorLabels" . | nindent 8 }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ include "lazylibrarian.serviceAccountName" . }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext | nindent 12 }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: {{ .Values.service.port }}
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: TZ
|
||||
value: {{ .Values.timezone }}
|
||||
- name: PUID
|
||||
value: {{ .Values.puid | quote }}
|
||||
- name: PGID
|
||||
value: {{ .Values.pgid | quote }}
|
||||
- name: DOCKER_MODS
|
||||
value: {{ include "lazylibrarian.enabledAddons" . }}
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /config
|
||||
{{- include "lazylibrarian.extraVolumeMounts" . | nindent 12 }}
|
||||
{{- if .Values.probes.liveness.enabled }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
scheme: {{ .Values.probes.liveness.scheme }}
|
||||
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
|
||||
scheme: {{ .Values.probes.readiness.scheme }}
|
||||
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
|
||||
scheme: {{ .Values.probes.startup.scheme }}
|
||||
failureThreshold: {{ .Values.probes.startup.failureThreshold }}
|
||||
periodSeconds: {{ .Values.probes.startup.periodSeconds }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
volumes:
|
||||
{{- if not .Values.persistence.enabled }}
|
||||
- name: config
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- if and .Values.persistence.enabled .Values.persistence.existingClaim }}
|
||||
- name: config
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ .Values.persistence.existingClaim }}
|
||||
{{- end }}
|
||||
{{- include "lazylibrarian.extraVolumes" . | nindent 8 }}
|
||||
|
||||
volumeClaimTemplates:
|
||||
{{- if and .Values.persistence.enabled ( not .Values.persistence.existingClaim ) }}
|
||||
- metadata:
|
||||
name: config
|
||||
labels:
|
||||
{{- include "lazylibrarian.labels" . | nindent 10 }}
|
||||
{{- if .Values.persistence.annotations }}
|
||||
annotations:
|
||||
{{- toYaml .Values.persistence.annotations | nindent 10 }}
|
||||
{{- end }}
|
||||
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 }}
|
||||
@@ -1,153 +1,43 @@
|
||||
# Default values for lazylibrarian.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
autoscaling:
|
||||
enabled: false
|
||||
minReplicas: 1
|
||||
maxReplicas: 1
|
||||
# Default values for LazyLibrarian.
|
||||
|
||||
image:
|
||||
repository: linuxserver/lazylibrarian
|
||||
pullPolicy: IfNotPresent
|
||||
# Overrides the image tag whose default is the chart appVersion.
|
||||
tag: 2551a8bc-ls25
|
||||
tag: version-047f91af
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
timezone: UTC
|
||||
puid: 1001
|
||||
pgid: 1001
|
||||
|
||||
# Linuxserver.io additional layers.
|
||||
# Enables additional features for the image, at the cost of increased size and
|
||||
# possible incompatabilities with certain architectures. Disabled by default.
|
||||
#
|
||||
# To enable, set enabled to true, and follow the guide at: https://github.com/linuxserver/docker-lazylibrarian#application-setup
|
||||
# to configure the application.
|
||||
dockerMods:
|
||||
# Enable the Calibre Docker Mod to allow Calibredb import
|
||||
calibre:
|
||||
enabled: false
|
||||
image:
|
||||
repository: linuxserver/calibre-web
|
||||
tag: calibre
|
||||
# Enable the FFMpeg Docker Mod. This allows using the audiobook conversion features of LazyLibrarian.
|
||||
ffmpeg:
|
||||
enabled: false
|
||||
image:
|
||||
repository: linuxserver/mods
|
||||
tag: lazylibrarian-ffmpeg
|
||||
|
||||
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: ""
|
||||
|
||||
podAnnotations: {}
|
||||
|
||||
podSecurityContext: {}
|
||||
# fsGroup: 2000
|
||||
|
||||
securityContext: {}
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# readOnlyRootFilesystem: true
|
||||
# runAsNonRoot: true
|
||||
# runAsUser: 1000
|
||||
|
||||
persistence:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
## lazylibrarian data 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: "-"
|
||||
|
||||
## If you want to reuse an existing claim, you can pass the name of the PVC using
|
||||
## the existingClaim variable
|
||||
##
|
||||
# existingClaim: lazylibrarian-config
|
||||
accessMode: ReadWriteOnce
|
||||
size: 1Gi
|
||||
|
||||
# Any extra volumes to define for the pod
|
||||
# Volumes will be mounted to the folder specified under mountPath
|
||||
# If no mountPath is set it will be mounted to /mnt/<name>
|
||||
extraVolumes: []
|
||||
# - name: example-name
|
||||
# hostPath:
|
||||
# path: /path/on/host
|
||||
# type: DirectoryOrCreate
|
||||
# mountPath: "/mnt/test"
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 5299
|
||||
# externalTrafficPolicy: Local
|
||||
# loadBalancerIP: ""
|
||||
# loadBalancerSourceRanges: []
|
||||
annotations: {}
|
||||
port:
|
||||
port: 5299
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
hosts:
|
||||
- host: chart-example.local
|
||||
paths: []
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - chart-example.local
|
||||
env: {}
|
||||
# TZ: UTC
|
||||
# PUID: 1001
|
||||
# PGID: 1001
|
||||
## Docker Mods are not actively tested and might not work as expected.
|
||||
# DOCKER_MODS=linuxserver/mods:lazylibrarian-ffmpeg
|
||||
# DOCKER_MODS=linuxserver/calibre-web:calibre
|
||||
|
||||
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
|
||||
|
||||
probes:
|
||||
liveness:
|
||||
enabled: true
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
failureThreshold: 5
|
||||
timeoutSeconds: 10
|
||||
readiness:
|
||||
enabled: true
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
failureThreshold: 5
|
||||
timeoutSeconds: 10
|
||||
startup:
|
||||
persistence:
|
||||
config:
|
||||
enabled: false
|
||||
scheme: HTTP
|
||||
failureThreshold: 30
|
||||
periodSeconds: 10
|
||||
emptyDir: false
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
media:
|
||||
enabled: false
|
||||
emptyDir: false
|
||||
mountPath: /media
|
||||
## 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: ""
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 0.8.0.1886
|
||||
description: Looks and smells like Sonarr but made for music
|
||||
name: lidarr
|
||||
version: 6.3.1
|
||||
version: 6.4.0
|
||||
keywords:
|
||||
- lidarr
|
||||
- torrent
|
||||
@@ -18,4 +18,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 4.0.8
|
||||
description: Lychee is a free photo-management tool, which runs on your server or web-space
|
||||
name: lychee
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- lychee
|
||||
- photo
|
||||
@@ -18,4 +18,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v2.19.1
|
||||
description: A Personal Relationship Management tool to help you organize your social life
|
||||
name: monica
|
||||
version: 2.4.1
|
||||
version: 2.5.0
|
||||
keywords:
|
||||
- crm
|
||||
home: https://www.monicahq.com/
|
||||
@@ -16,7 +16,7 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
- name: mariadb
|
||||
version: 9.2.0
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 0.39.0
|
||||
description: Navidrome is an open source web-based music collection server and streamer
|
||||
name: navidrome
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- navidrome
|
||||
- music
|
||||
@@ -18,4 +18,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 0.3.0
|
||||
description: Neolink - RTSP bridge to Reolink IP cameras
|
||||
name: neolink
|
||||
version: 1.1.1
|
||||
version: 1.2.0
|
||||
keywords:
|
||||
- reolink
|
||||
- rtsp
|
||||
@@ -14,4 +14,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v2.7.4-2061-g46c7da76
|
||||
description: Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS, PDU and SCD hardware.
|
||||
name: network-ups-tools
|
||||
version: 1.1.1
|
||||
version: 1.2.0
|
||||
keywords:
|
||||
- nut
|
||||
- network-ups-tools
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 1.2.5
|
||||
description: Node-RED is low-code programming for event-driven applications
|
||||
name: node-red
|
||||
version: 5.3.1
|
||||
version: 5.4.0
|
||||
keywords:
|
||||
- nodered
|
||||
- node-red
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v21.0
|
||||
description: NZBGet is a Usenet downloader client
|
||||
name: nzbget
|
||||
version: 7.3.1
|
||||
version: 7.4.0
|
||||
keywords:
|
||||
- nzbget
|
||||
- usenet
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v3.8.1
|
||||
description: Usenet meta search
|
||||
name: nzbhydra2
|
||||
version: 5.3.1
|
||||
version: 5.4.0
|
||||
keywords:
|
||||
- nzbhydra2
|
||||
- usenet
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 1.4.2
|
||||
description: OctoPrint is the snappy web interface for your 3D printer
|
||||
name: octoprint
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- octoprint
|
||||
- 3d
|
||||
@@ -18,4 +18,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 4.0.681
|
||||
description: Want a Movie or TV Show on Plex or Emby? Use Ombi!
|
||||
name: ombi
|
||||
version: 7.0.0
|
||||
version: 7.1.0
|
||||
keywords:
|
||||
- ombi
|
||||
- plex
|
||||
@@ -21,4 +21,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: latest
|
||||
description: HTPC/Homelab Services Organizer
|
||||
name: organizr
|
||||
version: 3.3.1
|
||||
version: 3.4.0
|
||||
keywords:
|
||||
- organizr
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/organizr
|
||||
@@ -16,4 +16,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 1.16.0
|
||||
description: Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services such as Sonarr, Radarr and Plex!
|
||||
name: overseerr
|
||||
version: 1.0.0
|
||||
version: 1.1.0
|
||||
keywords:
|
||||
- overseerr
|
||||
- plex
|
||||
@@ -19,4 +19,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
apiVersion: v2
|
||||
appVersion: 2.7.0
|
||||
appVersion: 1.0.0
|
||||
description: Paperless - Index and archive all of your scanned paper documents
|
||||
name: paperless
|
||||
version: 2.3.1
|
||||
version: 3.1.0
|
||||
keywords:
|
||||
- paperless
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/paperless
|
||||
icon: https://raw.githubusercontent.com/the-paperless-project/paperless/master/src/paperless/static/paperless/img/logo-dark.png
|
||||
sources:
|
||||
- https://github.com/the-paperless-project/paperless
|
||||
- https://github.com/jonaswinkler/paperless-ng
|
||||
maintainers:
|
||||
- name: mr-onion-2
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Paperless
|
||||
|
||||
This is a helm chart for [Paperless](https://github.com/the-paperless-project/paperless). The documentation can be found [here](https://paperless.readthedocs.io/en/latest/index.html).
|
||||
This is a helm chart for [Paperless-ng](https://github.com/jonaswinkler/paperless-ng). The documentation can be found [here](https://paperless-ng.readthedocs.io/en/latest/).
|
||||
|
||||
**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).**
|
||||
|
||||
@@ -35,16 +35,23 @@ The chart's [values.yaml](https://github.com/k8s-at-home/charts/blob/master/char
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
```console
|
||||
helm install paperless \
|
||||
--set env.TZ="America/New_York" \
|
||||
--set env.PAPERLESS_TIME_ZONE="America/New_York" \
|
||||
k8s-at-home/paperless
|
||||
```
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
|
||||
```console
|
||||
helm install paperless k8s-at-home/paperless --values values.yaml
|
||||
```
|
||||
---
|
||||
|
||||
## Backup & Restore
|
||||
Documents can be exported and re-imported by running the following commands directly on the pod. [More info](https://paperless.readthedocs.io/en/latest/migrating.html).
|
||||
## Upgrading an existing Release to a new major version
|
||||
|
||||
Backup: `/usr/src/paperless/src/manage.py document_exporter /path/to/somewhere/`
|
||||
Restore: `/usr/src/paperless/src/manage.py document_importer /path/to/somewhere/`
|
||||
A major chart version change (like 1.0.1 -> 2.0.0) indicates that there is an incompatible breaking change potentially needing manual actions.
|
||||
|
||||
### Upgrading from 2.x.x to 3.x.x
|
||||
|
||||
Version 3.0.0 of this chart has been adapted for [Paperless-ng](https://github.com/jonaswinkler/paperless-ng) (currently a fork of the main project). The default `values.yaml` has been updated accordingly. Changes include:
|
||||
|
||||
* A new set of [environment variables](https://github.com/jonaswinkler/paperless-ng/blob/master/paperless.conf.example)
|
||||
* New mouthPath defaults for the consume and export volumes
|
||||
* Seperate consumer pod no longer required.
|
||||
@@ -2,16 +2,12 @@ persistence:
|
||||
data:
|
||||
enabled: true
|
||||
emptyDir: true
|
||||
mountPath: /usr/src/paperless/data
|
||||
media:
|
||||
enabled: true
|
||||
emptyDir: true
|
||||
mountPath: /usr/src/paperless/media
|
||||
consume:
|
||||
enabled: true
|
||||
emptyDir: true
|
||||
mountPath: /consume
|
||||
export:
|
||||
enabled: true
|
||||
emptyDir: true
|
||||
mountPath: /export
|
||||
|
||||
@@ -1 +1,4 @@
|
||||
{{- include "common.notes.defaultNotes" . -}}
|
||||
{{- include "common.notes.defaultNotes" . }}
|
||||
2. Create a super user by running the command:
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "common.names.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
kubectl exec -it --namespace {{ .Release.Namespace }} $POD_NAME -- bash -c "python manage.py createsuperuser"
|
||||
@@ -1,26 +1,23 @@
|
||||
# Default values for Paperless.
|
||||
|
||||
image:
|
||||
repository: thepaperlessproject/paperless
|
||||
repository: jonaswinkler/paperless-ng
|
||||
pullPolicy: IfNotPresent
|
||||
tag: latest
|
||||
|
||||
args: "['gunicorn', '-b', '0.0.0.0:8000']"
|
||||
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
# See the following files for supported environment variables
|
||||
# https://github.com/the-paperless-project/paperless/blob/master/docker-compose.env.example
|
||||
# https://github.com/the-paperless-project/paperless/blob/master/paperless.conf.example
|
||||
# See the following files for additional environment variables
|
||||
# https://github.com/jonaswinkler/paperless-ng/tree/master/docker/compose/
|
||||
# https://github.com/jonaswinkler/paperless-ng/blob/master/paperless.conf.example
|
||||
env:
|
||||
# TZ: Europe/London
|
||||
PAPERLESS_OCR_LANGUAGES: eng
|
||||
# PAPERLESS_FORGIVING_OCR: true
|
||||
# PAPERLESS_DISABLE_LOGIN: true
|
||||
# PAPERLESS_INLINE_DOC: true
|
||||
# PAPERLESS_OCR_THREADS:
|
||||
# PAPERLESS_CONVERT_DENSITY:
|
||||
COMPOSE_PROJECT_NAME: paperless
|
||||
PAPERLESS_REDIS: redis://localhost:6379
|
||||
PAPERLESS_OCR_LANGUAGE: eng
|
||||
# USERMAP_UID: 1000
|
||||
# USERMAP_GID: 1000
|
||||
# PAPERLESS_TIME_ZONE: Europe/London
|
||||
|
||||
service:
|
||||
port:
|
||||
@@ -30,27 +27,21 @@ persistence:
|
||||
data:
|
||||
enabled: false
|
||||
mountPath: /usr/src/paperless/data
|
||||
emptyDir: false
|
||||
media:
|
||||
enabled: false
|
||||
mountPath: /usr/src/paperless/media
|
||||
emptyDir: false
|
||||
consume:
|
||||
enabled: false
|
||||
mountPath: /consume
|
||||
mountPath: /usr/src/paperless/consume
|
||||
emptyDir: false
|
||||
export:
|
||||
enabled: false
|
||||
mountPath: /export
|
||||
mountPath: /usr/src/paperless/export
|
||||
emptyDir: false
|
||||
|
||||
additionalContainers:
|
||||
- name: consumer
|
||||
image: thepaperlessproject/paperless:latest
|
||||
- name: broker
|
||||
image: redis:6.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
args: ['document_consumer']
|
||||
volumeMounts:
|
||||
- mountPath: /usr/src/paperless/data
|
||||
name: data
|
||||
- mountPath: /usr/src/paperless/media
|
||||
name: media
|
||||
- mountPath: /consume
|
||||
name: consume
|
||||
- mountPath: /export
|
||||
name: export
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: "20201122"
|
||||
description: PhotoPrism® is a server-based application for browsing, organizing and sharing your personal photo collection
|
||||
name: photoprism
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- photos
|
||||
- photoprism
|
||||
@@ -19,4 +19,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v4.0
|
||||
description: Program for forwarding ADS-B data to FlightAware
|
||||
name: piaware
|
||||
version: 4.3.1
|
||||
version: 4.4.0
|
||||
keywords:
|
||||
- piaware
|
||||
- flight-aware
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 1.20.4.3517-ab5e1197c
|
||||
description: Plex Media Server
|
||||
name: plex-media-server
|
||||
version: 1.3.1
|
||||
version: 1.4.0
|
||||
keywords:
|
||||
- plex
|
||||
- plex-media-server
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
18
charts/protonmail-bridge/Chart.yaml
Normal file
18
charts/protonmail-bridge/Chart.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
apiVersion: v2
|
||||
appVersion: 1.5.7-1
|
||||
description: Container for protonmail bridge to work on the network.
|
||||
name: protonmail-bridge
|
||||
version: 1.1.0
|
||||
keywords:
|
||||
- protonmail
|
||||
- protonmail-bridge
|
||||
sources:
|
||||
- https://github.com/shenxn/protonmail-bridge-docker
|
||||
- https://hub.docker.com/r/shenxn/protonmail-bridge
|
||||
maintainers:
|
||||
- name: Eagleman7
|
||||
email: my@email.com
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.4.0
|
||||
8
charts/protonmail-bridge/OWNERS
Normal file
8
charts/protonmail-bridge/OWNERS
Normal file
@@ -0,0 +1,8 @@
|
||||
approvers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
reviewers:
|
||||
- billimek
|
||||
- onedr0p
|
||||
- bjw-s
|
||||
88
charts/protonmail-bridge/README.md
Normal file
88
charts/protonmail-bridge/README.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Protonmail-bridge
|
||||
|
||||
This is a helm chart for [Protonmail-bridge](https://github.com/shenxn/protonmail-bridge-docker).
|
||||
|
||||
**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)**
|
||||
|
||||
## TL;DR;
|
||||
|
||||
```shell
|
||||
$ helm repo add k8s-at-home https://k8s-at-home.com/charts/
|
||||
$ helm install k8s-at-home/protonmail-bridge
|
||||
```
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `my-release`:
|
||||
|
||||
```console
|
||||
helm install --name my-release k8s-at-home/protonmail-bridge
|
||||
```
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall/delete the `my-release` deployment:
|
||||
|
||||
```console
|
||||
helm delete my-release --purge
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart and deletes the release.
|
||||
|
||||
## Configuration
|
||||
Once installed do the following to configure the application within the pod:
|
||||
1. Get the name of your deployed pod `kubectl get pods`
|
||||
2. Run interactively on the pod (setup only) `kubectl exec --stdin --tty protonmail-bridge-deployment-6c79fd7f84-ftwcw -- /bin/bash`
|
||||
3. Once logged in, execute the init command `bash /protonmail/entrypoint.sh init`
|
||||
4. You should now see the CLI for protonmail-bridge, authenticate with login
|
||||
5. (optional) If you use split address mode, change mode and info are good for printing the details.
|
||||
6. Copy your SMTP server info (or IMAP, your choice)
|
||||
7. Delete the active pod so a new one gets created (which will properly fire up with your persisted settings)
|
||||
|
||||
Read through the charts [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/protonmail-bridge/values.yaml)
|
||||
file. It has several commented out suggested values.
|
||||
Additionally you can take a look at the common library [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/common/values.yaml) for more (advanced) configuration options.
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
```console
|
||||
helm install protonmail-bridge \
|
||||
--set env.TZ="America/New_York" \
|
||||
k8s-at-home/protonmail-bridge
|
||||
```
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the
|
||||
chart. For example,
|
||||
```console
|
||||
helm install protonmail-bridge k8s-at-home/protonmail-bridge --values values.yaml
|
||||
```
|
||||
|
||||
```yaml
|
||||
image:
|
||||
tag: ...
|
||||
```
|
||||
|
||||
|
||||
---
|
||||
**NOTE**
|
||||
|
||||
If you get
|
||||
```console
|
||||
Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: ...`
|
||||
```
|
||||
it may be because you uninstalled the chart with `skipuninstall` enabled, you need to manually delete the pvc or use `existingClaim`.
|
||||
|
||||
---
|
||||
|
||||
## Upgrading an existing Release to a new major version
|
||||
|
||||
A major chart version change (like 4.0.1 -> 5.0.0) indicates that there is an incompatible breaking change potentially needing manual actions.
|
||||
|
||||
### Upgrading from 3.x.x to 4.x.x
|
||||
|
||||
Due to migrating to a centralized common library some values in `values.yaml` have changed.
|
||||
|
||||
Examples:
|
||||
|
||||
* `service.port` has been moved to `service.port.port`.
|
||||
* `persistence.type` has been moved to `controllerType`.
|
||||
|
||||
Refer to the library values.yaml for more configuration options.
|
||||
1
charts/protonmail-bridge/templates/NOTES.txt
Normal file
1
charts/protonmail-bridge/templates/NOTES.txt
Normal file
@@ -0,0 +1 @@
|
||||
{{- include "common.notes.defaultNotes" . -}}
|
||||
1
charts/protonmail-bridge/templates/common.yaml
Normal file
1
charts/protonmail-bridge/templates/common.yaml
Normal file
@@ -0,0 +1 @@
|
||||
{{ include "common.all" . }}
|
||||
19
charts/protonmail-bridge/values.yaml
Normal file
19
charts/protonmail-bridge/values.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
# Default values for Protonmail-bridge.
|
||||
|
||||
image:
|
||||
repository: shenxn/protonmail-bridge
|
||||
tag: 1.5.7-1
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
service:
|
||||
port:
|
||||
port: 25
|
||||
name: smtp-service
|
||||
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
mountPath: /root
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 0.4.20
|
||||
description: pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web.
|
||||
name: pyload
|
||||
version: 2.3.1
|
||||
version: 2.4.0
|
||||
keywords:
|
||||
- pyload
|
||||
- download
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 4.3.0
|
||||
description: qBittorrent is a cross-platform free and open-source BitTorrent client
|
||||
name: qbittorrent
|
||||
version: 7.2.1
|
||||
version: 7.3.0
|
||||
keywords:
|
||||
- qbittorrent
|
||||
- torrrent
|
||||
@@ -16,4 +16,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 3.0.0.3989
|
||||
description: A fork of Sonarr to work with movies à la Couchpotato
|
||||
name: radarr
|
||||
version: 8.3.1
|
||||
version: 8.4.0
|
||||
keywords:
|
||||
- radarr
|
||||
- torrent
|
||||
@@ -18,4 +18,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 0.1.0.351
|
||||
description: A fork of Radarr to work with Books & AudioBooks
|
||||
name: readarr
|
||||
version: 1.1.1
|
||||
version: 1.2.0
|
||||
keywords:
|
||||
- readarr
|
||||
- torrent
|
||||
@@ -20,4 +20,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 0.13.0
|
||||
description: Recipes is a Django application to manage, tag and search recipes using either built in models or external storage providers hosting PDF's, Images or other files.
|
||||
name: recipes
|
||||
version: 2.2.2
|
||||
version: 2.3.0
|
||||
keywords:
|
||||
- recipes
|
||||
- cooking
|
||||
@@ -16,4 +16,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 2.7.2
|
||||
description: Resilio Sync is a fast, reliable, and simple file sync and share solution, powered by P2P technology
|
||||
name: resilio-sync
|
||||
version: 1.1.1
|
||||
version: 1.2.0
|
||||
keywords:
|
||||
- resilio
|
||||
- sync
|
||||
@@ -18,4 +18,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
# rTorrent/flood BitTorrent client
|
||||
|
||||
TBD
|
||||
## Setup
|
||||
|
||||
NB: This chart will start 2 containers in a single pod, when both containers are started, you will be able to configure flood.
|
||||
|
||||
1. Install the chart `helm install rtorrent k8s-at-home/rtorrent-flood`
|
||||
|
||||
2. Port-forward to the container `kubectl port-forward $(kubectl get pods -A -o json | jq '.items[] | select(.metadata.labels."app.kubernetes.io/name"=="rtorrent-flood")' | jq .metadata.name -r) 3000:3000`
|
||||
|
||||
3. To connect flood to rtorrent, provide the socket path : `/tmp/rtorrent.sock`
|
||||
|
||||
4. When connected with flood to rtorrent, go to the settings and change the download path to `/data` which is set by default by the chart
|
||||
|
||||
5. You should be able to start downloading torrents now :)
|
||||
|
||||
|
||||
## Custom parameters
|
||||
|
||||
Like any other chart, you can provide a file with your own values (check `./values.yaml` for reference) :
|
||||
|
||||
`helm install rtorrent k8s-at-home/rtorrent-flood -f my-values.yaml`
|
||||
|
||||
|
||||
## Pitfalls
|
||||
|
||||
You may need to change the StorageClass depending on your kubernetes setup or the containers won't start, use a custom `values.yaml` file to do so.
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: 3.1.0
|
||||
description: Free and easy binary newsreader
|
||||
name: sabnzbd
|
||||
version: 4.2.1
|
||||
version: 4.3.0
|
||||
keywords:
|
||||
- sabnzbd
|
||||
- usenet
|
||||
@@ -17,4 +17,4 @@ maintainers:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: 2.2.1
|
||||
version: 2.4.0
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user