Compare commits

...

15 Commits

Author SHA1 Message Date
renovate[bot]
8bf006814a Update Helm chart common to v2.2.0 (#473)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-05 20:24:47 +01:00
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs
bf0ec02b1e Update renovate.json5 2021-01-05 19:20:22 +01:00
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs
eeba9db503 Update renovate.json5 2021-01-05 19:19:02 +01:00
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs
17d0825d3e Update renovate.json5 2021-01-05 19:16:52 +01:00
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs
52561bd15d [common] version 2.2.0 (#443)
* Add code-server env to values

* Bump chart version

* [common] - add ingressclass name (#441)

* add ingressclassname

Signed-off-by: Jon Baker <jonbaker85@gmail.com>

* Allow disabling of service links

* Update changelog

* Update changelog

* Set better default for targetPort

* Allow for different container / service ports

* Fix linting error

* Add unit tests

* Add unit tests

* Add unit tests

* Service unit tests

* Split CI jobs

* Testing CI

* Testing CI

* Testing CI

* Testing CI

* Rename test file to match source

* Fix newline

Co-authored-by: Jon Baker <jonbaker85@gmail.com>
Co-authored-by: ᗪєνιη ᗷυнʟ <onedr0p@users.noreply.github.com>
2021-01-05 18:34:42 +01:00
dcplaya
311c9c35bb [hyperion-ng] Initial Commit (#470)
* [hyperion-ng] Initial Commit

* Dang trailing space! Makes lint happy

* Suggested changes
2021-01-04 20:04:07 +01:00
stretched
d3679c6d39 [powerdns] Fix some minor issues introduced by dde8baec08 in k8s-at-home/charts#78. (#468)
- Bring `appVersion` from `Chart.yaml` back in sync with the wq`image.tag` from `values.yaml`
- `postgres.enabled` -> `postgresql.enabled` for postgresql dependency in `Chart.yaml`

Signed-off-by: David Armstrong <stretched@users.noreply.github.com>
2021-01-03 08:25:00 -05:00
Patrick Collins
77ea057807 [heimdall] fix copy-paste typo (#466)
* fix copy-paste typo

* bump chart version
2021-01-02 19:18:00 -05:00
Mike K
5e9124b1db [TVheadend] - New chart contribution (#464) 2021-01-02 16:27:58 -05:00
Dave O'Connor
b4e3d966aa [zigbee2mqtt] update appVersion to 1.17.0 (#460) 2021-01-01 16:06:31 +01:00
renovate[bot]
423c8b00dc Update Helm chart influxdb to v1.1.6 (#453)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-01 10:22:38 +01:00
renovate[bot]
fa10413661 Update external minor dep Helm releases (minor) (#454)
* Update external minor dep Helm releases

* [statping] Revert dependency update

* [home-assistant] Bump influxdb (see #453)

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs <6213398+bjw-s@users.noreply.github.com>
2021-01-01 10:16:43 +01:00
renovate[bot]
1193908f6d [powerdns] Update Helm chart mariadb to v9 (#455)
* [powerdns] Update Helm chart mariadb to v9

* Update values for latest mariadb chart

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs <6213398+bjw-s@users.noreply.github.com>
2021-01-01 10:01:04 +01:00
Mark McWhirter
554ecb81c9 [nzbhydra2] Use HTTP probes & Bump Version (#450) 2020-12-30 14:42:23 -05:00
Mark McWhirter
3d467a1779 [Deluge] V1 of Deluge Chart (#447) 2020-12-29 12:51:19 -05:00
86 changed files with 913 additions and 135 deletions

View File

@@ -3,8 +3,11 @@ name: Lint and Test Charts
on: pull_request
jobs:
lint-test:
lint:
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.list-changed.outputs.changed }}
common: ${{ steps.list-changed.outputs.common }}
steps:
- name: Checkout
uses: actions/checkout@v2
@@ -41,15 +44,67 @@ jobs:
run: ct lint --config .github/ct.yaml --excluded-charts ""
if: steps.list-changed.outputs.changed == 'true' || steps.list-changed.outputs.common == 'true'
unittest:
runs-on: ubuntu-latest
needs: lint
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install Dev tools
run: sudo apt-get update && sudo apt-get install -y jq libjq-dev
- name: Install Helm
uses: azure/setup-helm@v1
with:
version: v3.4.0
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
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
install:
runs-on: ubuntu-latest
needs: lint
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install Helm
uses: azure/setup-helm@v1
with:
version: v3.4.0
- uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.0.1
- name: Create kind cluster
uses: helm/kind-action@v1.1.0
if: steps.list-changed.outputs.changed == 'true' || steps.list-changed.outputs.common == 'true'
if: needs.lint.outputs.changed == 'true' || needs.lint.outputs.common == 'true'
- name: Run chart-testing (install)
run: ct install --config .github/ct.yaml
if: steps.list-changed.outputs.changed == 'true'
if: needs.lint.outputs.changed == 'true'
- name: Run chart-testing (common-test)
run: |
ct install --config .github/ct.yaml --charts 'charts/common-test'
if: steps.list-changed.outputs.common == 'true'
if: needs.lint.outputs.common == 'true'

10
.gitignore vendored
View File

@@ -1,4 +1,12 @@
.env
# IDE resources
.vscode
.idea
.devcontainer/
# Helm resources
charts/*/Chart.lock
charts/*/charts
# Other rsources
.env
Gemfile.lock

12
Gemfile Normal file
View File

@@ -0,0 +1,12 @@
# frozen_string_literal: true
source 'https://rubygems.org'
group :test do
gem 'm'
gem 'minitest'
gem 'minitest-implicit-subject'
gem 'minitest-reporters'
gem 'pry'
gem 'ruby-jq'
end

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 0.4.2
description: Bot for Prometheus Alertmanager
name: alertmanager-bot
version: 2.2.1
version: 2.3.0
keywords:
- alertmanager
- telegram
@@ -18,4 +18,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.2.1
version: 2.3.0
keywords:
- appdaemon
- home-automation
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.2.1
version: 5.3.0
keywords:
- bazarr
- radarr
@@ -21,4 +21,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.2.1
version: 2.3.0
keywords:
- booksonic
- audiobook
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.2.1
version: 4.3.0
keywords:
- calibre
- ebook
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -4,6 +4,23 @@ 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.2.0]
### Added
- Allow serviceLinks to be enabled/disabled.
- Support for ingressClassName on apiVersion `networking.k8s.io/v1` by setting `ingress.ingressClassName`.
- Added some initial proper unit tests for the `common` chart.
### Changed
- `service.port.targetPort` is now used in the container spec instead of `service.port.port` if specified. This allows for different service and container ports. (Implements [#465](https://github.com/k8s-at-home/charts/issues/465)).
### Fixed
- Document setting environment variables for code-server add-on in `values.yaml` (Fixes [#436](https://github.com/k8s-at-home/charts/issues/436)).
- Set service targetPort to the service port name first if no `targetPort` value is given.
## [2.1.0]
### Added
@@ -36,6 +53,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.2.0]: https://github.com/k8s-at-home/charts/tree/common-2.2.0/charts/common
[2.1.0]: https://github.com/k8s-at-home/charts/tree/common-2.1.0/charts/common
[2.0.4]: https://github.com/k8s-at-home/charts/tree/common-2.0.4/charts/common
[2.0.0]: https://github.com/k8s-at-home/charts/tree/common-2.0.0/charts/common

View File

@@ -2,7 +2,7 @@ apiVersion: v2
name: common
description: Function library for k8s-at-home charts
type: library
version: 2.1.1
version: 2.2.0
keywords:
- k8s-at-home
- common

View File

@@ -26,6 +26,11 @@ metadata:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if eq (include "common.capabilities.ingress.apiVersion" $) "networking.k8s.io/v1" }}
{{- if $values.ingressClassName }}
ingressClassName: {{ $values.ingressClassName }}
{{- end }}
{{- end }}
{{- if $values.tls }}
tls:
{{- range $values.tls }}

View File

@@ -12,7 +12,7 @@ Render all the ports and additionalPorts for a Service object.
ports:
{{- range $_ := $ports }}
- port: {{ .port }}
targetPort: {{ .targetPort | default "http" }}
targetPort: {{ .targetPort | default .name | default "http" }}
protocol: {{ .protocol | default "TCP" }}
name: {{ .name | default "http" }}
{{- if (and (eq $.svcType "NodePort") (not (empty .nodePort))) }}

View File

@@ -21,6 +21,7 @@ dnsPolicy: {{ . }}
dnsConfig:
{{- toYaml . | nindent 2 }}
{{- end }}
enableServiceLinks: {{ .Values.enableServiceLinks }}
{{- with .Values.initContainers }}
initContainers:
{{- toYaml . | nindent 2 }}

View File

@@ -32,7 +32,7 @@ Ports included by the controller.
ports:
{{- range $_ := $ports }}
- name: {{ .name }}
containerPort: {{ .port }}
containerPort: {{ .targetPort | default .port }}
protocol: {{ .protocol | default "TCP" }}
{{- end -}}
{{- end -}}

View File

@@ -51,6 +51,11 @@ dnsPolicy: ClusterFirst
# - name: ndots
# value: "1"
# Enable/disable the generation of environment variables for services.
# See https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#accessing-the-service
# for more information.
enableServiceLinks: true
initContainers: []
additionalContainers: []
@@ -96,13 +101,14 @@ probes:
service:
enabled: true
type: ClusterIP
# Specify the default port information
## Specify the default port information
port:
port:
# name defaults to http
## name defaults to http
name:
protocol: TCP
# targetPort defaults to http
## targetPort defaults to the service name. If targetPort is specified, this port number
## is used in the container definition instead of service.port.port.
targetPort:
## Specify the nodePort value for the LoadBalancer and NodePort service types.
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
@@ -314,6 +320,10 @@ addons:
pullPolicy: IfNotPresent
tag: 3.7.4
# Set any environment variables for code-server here
env: {}
# TZ: UTC
# Set codeserver command line arguments
# consider setting --user-data-dir to a persistent location to preserve code-server setting changes
args:

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: latest
description: CouchPotato (CP) is an automatic NZB and torrent downloader.
name: couchpotato
version: 4.2.1
version: 4.3.0
keywords:
- couchpotato
- usenet
@@ -18,4 +18,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -4,7 +4,7 @@ description: DashMachine is another web application bookmark dashboard, with fun
icon: https://github.com/rmountjoy92/DashMachine/raw/master/dashmachine/static/images/logo/logo.png
home: https://github.com/rmountjoy92/DashMachine
name: dashmachine
version: 3.2.1
version: 3.3.0
sources:
- https://github.com/rmountjoy92/DashMachine
maintainers:
@@ -12,5 +12,5 @@ maintainers:
email: ryan@ryanholt.net
dependencies:
- name: common
version: 2.1.1
version: 2.2.0
repository: https://k8s-at-home.com/charts/

View File

@@ -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.2.1
version: 2.3.0
keywords:
- ddclient
- dns
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

24
charts/deluge/.helmignore Normal file
View File

@@ -0,0 +1,24 @@
# 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
# OWNERS file for Kubernetes
OWNERS
.vscode/

20
charts/deluge/Chart.yaml Normal file
View File

@@ -0,0 +1,20 @@
apiVersion: v2
appVersion: v2.0.3-2201906121747
description: Deluge is a torrent download client
name: deluge
version: 1.1.0
keywords:
- deluge
- torrent
home: https://github.com/k8s-at-home/charts/tree/master/charts/deluge
icon: https://avatars2.githubusercontent.com/u/6733935?v=3&s=200
sources:
- https://hub.docker.com/r/linuxserver/deluge/
- https://deluge-torrent.org/
maintainers:
- name: mcmarkj
email: mark@markmcw.uk
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.2.0

8
charts/deluge/OWNERS Normal file
View File

@@ -0,0 +1,8 @@
approvers:
- billimek
- onedr0p
- bjw-s
reviewers:
- billimek
- onedr0p
- bjw-s

57
charts/deluge/README.md Normal file
View File

@@ -0,0 +1,57 @@
# Deluge
This is a helm chart for [Deluge](https://deluge-torrent.org/).
**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/deluge
```
## Installing the Chart
To install the chart with the release name `my-release`:
```console
helm install --name my-release k8s-at-home/deluge
```
The default login details (change ASAP) are:
* password:deluge
## 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
Read through the charts [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/deluge/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 deluge \
--set env.TZ="America/New_York" \
k8s-at-home/deluge
```
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the
chart. For example,
```console
helm install deluge k8s-at-home/deluge --values values.yaml
```
These values will be nested as it is a dependency, for example
```yaml
image:
tag: ...
```

View File

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

View File

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

45
charts/deluge/values.yaml Normal file
View File

@@ -0,0 +1,45 @@
# Default values for deluge.
image:
repository: linuxserver/deluge
pullPolicy: IfNotPresent
tag: version-2.0.3-2201906121747ubuntu18.04.1
strategy:
type: Recreate
service:
port:
port: 8112
persistence:
config:
enabled: false
emptyDir: false
mountPath: /config
downloads:
enabled: false
emptyDir: false
mountPath: /downloads
## 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: ""
env: {}
## Optional ENV Vars that can be set.
## All values below are the current default values.
# PUID: "1000"
# PGID: "1000"
# TZ: "Europe/London"
# UMASK_SET: "022"
# DELUGE_LOGLEVEL: "error"

View File

@@ -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.0.0
version: 1.1.0
keywords:
- dsmr-reader
- energy
@@ -17,7 +17,7 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0
- name: postgresql
version: 10.2.0
repository: https://charts.bitnami.com/bitnami

View File

@@ -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.2.1
version: 4.3.0
keywords:
- esphome
- home-automation
@@ -16,4 +16,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 4.1.1
description: Flood is a monitoring service for various torrent clients
name: flood
version: 2.2.1
version: 2.3.0
keywords:
- flood
- rtorrent
@@ -19,4 +19,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 1.17.0
description: FreshRSS is a self-hosted RSS feed aggregator
name: freshrss
version: 2.2.1
version: 2.3.0
keywords:
- freshrss
- rss
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.0.1
version: 1.1.0
keywords:
- plex
- plex-media-server
@@ -16,4 +16,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.2.1
version: 4.3.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.1.1
version: 2.2.0
repository: https://k8s-at-home.com/charts/

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 2.2.2
description: An Application dashboard and launcher
name: heimdall
version: 4.1.1
version: 4.2.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.1.1
version: 2.2.0
repository: https://k8s-at-home.com/charts/

View File

@@ -1,4 +1,4 @@
# Default values for grocy.
# Default values for heimdall.
image:
repository: linuxserver/heimdall

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 2020.12.1
description: Home Assistant
name: home-assistant
version: 5.2.2
version: 5.4.0
keywords:
- home-assistant
- hass
@@ -19,16 +19,16 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0
- name: postgresql
version: 10.2.0
repository: https://charts.bitnami.com/bitnami
condition: postgresql.enabled
- name: mariadb
version: 9.1.4
version: 9.2.0
repository: https://charts.bitnami.com/bitnami
condition: mariadb.enabled
- name: influxdb
version: 1.1.4
version: 1.1.6
repository: https://charts.bitnami.com/bitnami
condition: influxdb.enabled

View File

@@ -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.2.1
version: 2.3.0
sources:
- https://github.com/bastienwirtz/homer
maintainers:
@@ -12,5 +12,5 @@ maintainers:
email: jeff@billimek.com
dependencies:
- name: common
version: 2.1.1
version: 2.2.0
repository: https://k8s-at-home.com/charts/

View File

@@ -0,0 +1,24 @@
# 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/
.vscode/
*.tmproj
# OWNERS file for Kubernetes
OWNERS

View File

@@ -0,0 +1,20 @@
apiVersion: v2
appVersion: 2.0.0-alpha9
description: Hyperion is an opensource Bias or Ambient Lighting implementation
name: hyperion-ng
version: 1.1.0
keywords:
- hyperion-ng
- hyperion
home: https://github.com/k8s-at-home/charts/tree/master/charts/hyperion-ng
icon: https://raw.githubusercontent.com/hyperion-project/hyperion.ng/master/assets/webconfig/img/hyperion/hyperionlogo.png?raw=true
sources:
- https://github.com/hyperion-project/hyperion.ng
- https://hub.docker.com/r/sirfragalot/hyperion.ng
maintainers:
- name: billimek
email: jeff@billimek.com
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.2.0

View File

@@ -0,0 +1,8 @@
approvers:
- billimek
- onedr0p
- bjw-s
reviewers:
- billimek
- onedr0p
- bjw-s

View File

@@ -0,0 +1,67 @@
# Radarr
This is a helm chart for [Hyperion.ng](https://github.com/hyperion-project/hyperion.ng).
**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/hyperion-ng
```
## Installing the Chart
To install the chart with the release name `my-release`:
```console
helm install --name my-release k8s-at-home/hyperion-ng
```
## 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
Read through the charts [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/hyperion-ng/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 hyperion-ng \
--set env.TZ="America/New_York" \
k8s-at-home/hyperion-ng
```
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the
chart. For example,
```console
helm install hyperion-ng k8s-at-home/hyperion-ng --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.

View File

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

View File

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

View File

@@ -0,0 +1,37 @@
# Default values for hyperion-ng.
image:
repository: sirfragalot/hyperion.ng
pullPolicy: IfNotPresent
tag: 2.0.0-alpha.9-x86_64
strategy:
type: Recreate
service:
port:
port: 8090
additionalPorts:
- port: 19444
name: jsonservice
protocol: TCP
targetPort: 19444
- port: 19445
name: protobufservice
protocol: TCP
targetPort: 19445
- port: 19333
name: boblightservice
protocol: TCP
targetPort: 19333
env: {}
# TZ: UTC
# PUID: 1001
# PGID: 1001
persistence:
config:
enabled: false
emptyDir: false
mountPath: /root/.hyperion

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: v0.16.2106
description: API Support for your favorite torrent trackers
name: jackett
version: 6.2.1
version: 6.3.0
keywords:
- jackett
- torrent
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 10.6.4
description: Jellyfin is a Free Software Media System
name: jellyfin
version: 4.2.1
version: 4.3.0
keywords:
- jellyfin
- plex
@@ -18,4 +18,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.2.1
version: 6.3.0
keywords:
- lidarr
- torrent
@@ -18,4 +18,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.2.1
version: 2.3.0
keywords:
- lychee
- photo
@@ -18,4 +18,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.2.2
version: 2.4.0
keywords:
- crm
home: https://www.monicahq.com/
@@ -16,8 +16,8 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0
- name: mariadb
version: 9.1.4
version: 9.2.0
repository: https://charts.bitnami.com/bitnami
condition: mariadb.enabled

View File

@@ -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.2.1
version: 2.3.0
keywords:
- navidrome
- music
@@ -18,4 +18,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 0.3.0
description: Neolink - RTSP bridge to Reolink IP cameras
name: neolink
version: 1.0.0
version: 1.1.0
keywords:
- reolink
- rtsp
@@ -14,4 +14,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.0.0
version: 1.1.0
keywords:
- nut
- network-ups-tools
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.2.1
version: 5.3.0
keywords:
- nodered
- node-red
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: v21.0
description: NZBGet is a Usenet downloader client
name: nzbget
version: 7.2.1
version: 7.3.0
keywords:
- nzbget
- usenet
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -1,15 +1,15 @@
apiVersion: v2
appVersion: v3.4.3
appVersion: v3.8.1
description: Usenet meta search
name: nzbhydra2
version: 5.1.1
version: 5.3.0
keywords:
- nzbhydra2
- usenet
home: https://github.com/k8s-at-home/charts/tree/master/charts/nzbhydra2
icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/hydra-icon.png
sources:
- https://hub.docker.com/r/linuxserver/nzbhydra2/
- https://hub.docker.com/r/linuxserver/nzbhydra2
- https://github.com/theotherp/nzbhydra2
maintainers:
- name: billimek
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -3,7 +3,7 @@
image:
repository: linuxserver/nzbhydra2
pullPolicy: IfNotPresent
tag: version-v3.4.3
tag: version-v3.8.1
strategy:
type: Recreate
@@ -18,8 +18,40 @@ env: {}
# PGID: 1001
probes:
startup:
liveness:
custom: true
enabled: true
spec:
failureThreshold: 5
httpGet:
path: /actuator/health/livenessState
port: http
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 10
readiness:
custom: true
enabled: true
spec:
failureThreshold: 5
httpGet:
path: /actuator/health/readinessState
port: http
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 10
startup:
custom: true
enabled: true
spec:
failureThreshold: 5
httpGet:
path: /actuator/health/readinessState
port: http
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 10
persistence:
config:

View File

@@ -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.2.2
version: 2.3.0
keywords:
- octoprint
- 3d
@@ -18,4 +18,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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: 6.2.1
version: 6.4.0
keywords:
- ombi
- plex
@@ -21,8 +21,8 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0
- name: mariadb
version: 9.1.4
version: 9.2.0
repository: https://charts.bitnami.com/bitnami
condition: mariadb.enabled

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: latest
description: HTPC/Homelab Services Organizer
name: organizr
version: 3.2.1
version: 3.3.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.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 2.7.0
description: Paperless - Index and archive all of your scanned paper documents
name: paperless
version: 2.2.2
version: 2.3.0
keywords:
- paperless
home: https://github.com/k8s-at-home/charts/tree/master/charts/paperless
@@ -14,4 +14,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.2.1
version: 2.3.0
keywords:
- photos
- photoprism
@@ -19,4 +19,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: v4.0
description: Program for forwarding ADS-B data to FlightAware
name: piaware
version: 4.2.1
version: 4.3.0
keywords:
- piaware
- flight-aware
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 1.20.4.3517-ab5e1197c
description: Plex Media Server
name: plex-media-server
version: 1.2.1
version: 1.3.0
keywords:
- plex
- plex-media-server
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -1,8 +1,8 @@
apiVersion: v2
appVersion: v4.3.0
appVersion: v4.3.1
description: PowerDNS is a DNS server, written in C++ and licensed under the GPL. It runs on most Unix derivatives. PowerDNS features a large number of different backends ranging from simple BIND style zonefiles to relational databases and load balancing/failover algorithms. A DNS recursor is provided as a separate program.
name: powerdns
version: 2.8.0
version: 3.0.1
home: https://www.powerdns.com/
sources:
- http://www.github.com/PowerDNS/
@@ -14,8 +14,8 @@ dependencies:
- name: postgresql
version: 10.2.0
repository: https://charts.bitnami.com/bitnami
condition: postgres.enabled
condition: postgresql.enabled
- name: mariadb
version: 7.10.4
version: 9.2.0
repository: https://charts.bitnami.com/bitnami
condition: mariadb.enabled

View File

@@ -75,17 +75,16 @@ powerdns:
# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb
mariadb:
enabled: false
db:
name: pdns
user: pdns
password: pdnspass
replication:
enabled: false
rootUser:
password: pdnsrootpass
master:
architecture: standalone
auth:
database: pdns
username: pdns
password: pdns-pass
rootPassword: pdnsrootpass
primary:
persistence:
enabled: false
# storageClass: ""
# Enabled postgres
# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql

View File

@@ -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.2.1
version: 2.3.0
keywords:
- pyload
- download
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.1.1
version: 7.2.0
keywords:
- qbittorrent
- torrrent
@@ -16,4 +16,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.2.1
version: 8.3.0
keywords:
- radarr
- torrent
@@ -18,4 +18,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.0.0
version: 1.1.0
keywords:
- readarr
- torrent
@@ -20,4 +20,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -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.0.0
version: 1.1.0
keywords:
- resilio
- sync
@@ -18,4 +18,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 3.1.0
description: Free and easy binary newsreader
name: sabnzbd
version: 4.1.1
version: 4.2.0
keywords:
- sabnzbd
- usenet
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 0.18.0
description: Searx is a privacy-respecting, hackable metasearch engine
name: searx
version: 1.0.0
version: 1.1.0
keywords:
- searx
- search engine
@@ -19,4 +19,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 3.0.4.993
description: Smart PVR for newsgroup and bittorrent users
name: sonarr
version: 8.1.1
version: 8.2.0
keywords:
- sonarr
- torrent
@@ -18,4 +18,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: v2.6.1
description: A Python based monitoring and tracking tool for Plex Media Server
name: tautulli
version: 6.1.1
version: 6.2.0
keywords:
- tautulli
- plex
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: v4.11
description: Traccar is an open source GPS tracking system.
name: traccar
version: 2.1.1
version: 2.3.0
keywords:
- traccar
- gps
@@ -16,8 +16,8 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0
- name: mariadb
version: 9.1.4
version: 9.2.0
repository: https://charts.bitnami.com/bitnami
condition: mariadb.enabled

View File

@@ -0,0 +1,23 @@
# 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
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -0,0 +1,18 @@
apiVersion: v2
appVersion: latest
description: TVheadend - a TV streaming server and digital video recorder
name: tvheadend
version: 1.1.0
keywords:
- tv
- streaming
- dvb
home: https://github.com/k8s-at-home/charts/tree/master/charts/tvheadend
sources:
- https://github.com/tvheadend/tvheadend
maintainers:
- name: mr-onion-2
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.2.0

View File

@@ -0,0 +1,43 @@
# tvheadend
This is a helm chart for [tvheadend](https://github.com/tvheadend/tvheadend).
**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/tvheadend
```
## Installing the Chart
To install the chart with the release name `my-release`:
```console
helm install my-release k8s-at-home/tvheadend
```
## 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 chart's [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/tvheadend/values.yaml) file contains a set of suggested values for a minimal deployment. Further configuration options are found in the [common library](https://github.com/k8s-at-home/charts/blob/master/charts/common/values.yaml).
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
```console
helm install tvheadend \
--set env.TZ="America/New_York" \
k8s-at-home/tvheadend
```
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
```console
helm install tvheadend k8s-at-home/tvheadend --values values.yaml
```

View File

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

View File

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

View File

@@ -0,0 +1,30 @@
# Default values for tvheadend.
image:
repository: linuxserver/tvheadend
pullPolicy: IfNotPresent
tag: latest
strategy:
type: Recreate
# See https://github.com/linuxserver/docker-tvheadend#parameters
env: {}
# PUID: 1000
# PGID: 1000
# TZ: Europe/London
# RUN_OPTS: <run options here>
service:
port:
port: 9981
persistence:
config:
enabled: false
emptyDir: false
mountPath: /config
recordings:
enabled: false
emptyDir: false
mountPath: /recordings

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 2.0.1
description: Collect ALL UniFi Controller, Site, Device & Client Data - Export to InfluxDB or Prometheus
name: unifi-poller
version: 5.1.1
version: 5.2.0
keywords:
- unifi
- unifi-poller
@@ -17,8 +17,8 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0
- name: influxdb
version: 1.1.4
version: 1.1.6
repository: https://charts.bitnami.com/bitnami
condition: influxdb.enabled

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 2.1.2.0120
description: M3U Proxy for Plex DVR and Emby Live TV.
name: xteve
version: 4.1.1
version: 4.2.0
keywords:
- xteve
- iptv
@@ -19,4 +19,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -1,8 +1,8 @@
apiVersion: v2
appVersion: 1.16.2
appVersion: 1.17.0
description: Bridges events and allows you to control your Zigbee devices via MQTT
name: zigbee2mqtt
version: 4.1.2
version: 4.2.0
keywords:
- zigbee
- mqtt
@@ -19,4 +19,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -3,7 +3,7 @@
image:
repository: koenkk/zigbee2mqtt
pullPolicy: IfNotPresent
tag: 1.16.2
tag: 1.17.0
strategy:
type: Recreate

View File

@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 4.0.6
description: Fully configurable Zwave to MQTT gateway and Control Panel using NodeJS and Vue
name: zwave2mqtt
version: 6.1.1
version: 6.2.0
keywords:
- zwave
- mqtt
@@ -17,4 +17,4 @@ maintainers:
dependencies:
- name: common
repository: https://k8s-at-home.com/charts/
version: 2.1.1
version: 2.2.0

View File

@@ -0,0 +1,86 @@
# frozen_string_literal: true
require_relative '../test_helper'
class Test < ChartTest
@@chart = Chart.new('charts/common-test')
describe @@chart.name do
describe 'controller type' do
it 'defaults to "Deployment"' do
assert_nil(resource('StatefulSet'))
assert_nil(resource('DaemonSet'))
refute_nil(resource('Deployment'))
end
it 'accepts "statefulset"' do
chart.value controllerType: 'statefulset'
assert_nil(resource('Deployment'))
assert_nil(resource('DaemonSet'))
refute_nil(resource('StatefulSet'))
end
it 'accepts "daemonset"' do
chart.value controllerType: 'daemonset'
assert_nil(resource('Deployment'))
assert_nil(resource('StatefulSet'))
refute_nil(resource('DaemonSet'))
end
end
describe 'pod replicas' do
it 'defaults to 1' do
jq('.spec.replicas', resource('Deployment')).must_equal 1
end
it 'accepts integer as value' do
chart.value replicas: 3
jq('.spec.replicas', resource('Deployment')).must_equal 3
end
end
describe 'ports settings' do
default_name = 'http'
default_port = 8080
it 'defaults to name "http" on port 8080' do
jq('.spec.ports[0].port', resource('Service')).must_equal default_port
jq('.spec.ports[0].targetPort', resource('Service')).must_equal default_name
jq('.spec.ports[0].name', resource('Service')).must_equal default_name
jq('.spec.template.spec.containers[0].ports[0].containerPort', resource('Deployment')).must_equal default_port
jq('.spec.template.spec.containers[0].ports[0].name', resource('Deployment')).must_equal default_name
end
it 'port name can be overridden' do
values = {
service: {
port: {
name: 'server'
}
}
}
chart.value values
jq('.spec.ports[0].port', resource('Service')).must_equal default_port
jq('.spec.ports[0].targetPort', resource('Service')).must_equal values[:service][:port][:name]
jq('.spec.ports[0].name', resource('Service')).must_equal values[:service][:port][:name]
jq('.spec.template.spec.containers[0].ports[0].containerPort', resource('Deployment')).must_equal default_port
jq('.spec.template.spec.containers[0].ports[0].name', resource('Deployment')).must_equal values[:service][:port][:name]
end
it 'targetPort can be overridden' do
values = {
service: {
port: {
targetPort: 80
}
}
}
chart.value values
jq('.spec.ports[0].port', resource('Service')).must_equal default_port
jq('.spec.ports[0].targetPort', resource('Service')).must_equal values[:service][:port][:targetPort]
jq('.spec.ports[0].name', resource('Service')).must_equal default_name
jq('.spec.template.spec.containers[0].ports[0].containerPort', resource('Deployment')).must_equal values[:service][:port][:targetPort]
jq('.spec.template.spec.containers[0].ports[0].name', resource('Deployment')).must_equal default_name
end
end
end
end

119
test/test_helper.rb Normal file
View File

@@ -0,0 +1,119 @@
# frozen_string_literal: true
require 'json'
require 'yaml'
require 'open3'
require 'jq/extend'
require 'minitest-implicit-subject'
require "minitest/reporters"
require 'minitest/autorun'
require 'minitest/pride'
class HelmCompileError < StandardError
end
class HelmDepsError < StandardError
end
class Chart
attr_reader :name, :path, :values
def initialize(chart)
@name = chart.split('/').last
@path = File.expand_path(chart)
@values = default_values
update_deps!
end
def update_deps!
command = "helm dep update '#{path}'"
stdout, stderr, status = Open3.capture3(command)
raise HelmDepsError, stderr if status != 0
end
def reset!
@values = default_values
@parsed_resources = nil
end
def value(value)
values.merge!(value)
end
def configure_custom_name(name)
@name = name
end
def execute_helm_template!
file = Tempfile.new(name)
file.write(JSON.parse(values.to_json).to_yaml)
file.close
begin
command = "helm template '#{name}' '#{path}' --namespace='default' --values='#{file.path}'"
stdout, stderr, status = Open3.capture3(command)
raise HelmCompileError, stderr if status != 0
stdout
ensure
file.unlink
end
end
def parsed_resources
@parsed_resources ||= begin
output = execute_helm_template!
puts output if ENV.fetch('DEBUG', 'false') == 'true'
YAML.load_stream(output)
end
end
def resources(matcher = nil)
return parsed_resources unless matcher
parsed_resources.select do |r|
r >= Hash[matcher.map { |k, v| [k.to_s, v] }]
end
end
def default_values
{
}
end
end
class ExtendedMinitest < Minitest::Test
extend MiniTest::Spec::DSL
end
class ChartTest < ExtendedMinitest
Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
before do
chart.reset!
end
def chart
self.class.class_variable_get('@@chart')
end
def resource(name)
chart.resources(kind: name).first
end
def jq(matcher, object)
value(object.jq(matcher)[0])
end
end
class Minitest::Result
def name
test_name = defined?(@name) ? @name : super
test_name.to_s.gsub /\Atest_\d{4,}_/, ""
end
end