Testing, BugFixes and Review Improvements

- Fix SabNZBD hostname whitelist issues
- Add transmission settings to GUI
- Fix some qbittorrent connection issues
- Remove Torrent Ingress
- Fix some device mounting gui issues
- Change repo url references
- Cleaning up the homepage
- Drop Deluge (App is not safe due to being mostly abandoned)
- Move Emby to own Non-Root container
- Create new trains and move charts->stable
- Add Plex app
- update emby and plex intel hardware support
- Implement new parallel CI for Apps
- Move PGID, PUID, TZ and UMASK settings to "Container Image" configuration
- Stop running some workflows on staging
- Add branch security trigger to matrix workflows

Co-authored-by: Troy Prelog <35702532+tprelog@users.noreply.github.com>
This commit is contained in:
Kjeld Schouten-Lebbing
2021-03-17 17:20:26 +01:00
committed by kjeld Schouten-Lebbing
co-authored by Troy Prelog
parent c9a3f01580
commit 56211222bf
724 changed files with 5235 additions and 4067 deletions
+24
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
.vscode/
# OWNERS file for Kubernetes
OWNERS
+3
View File
@@ -0,0 +1,3 @@
# Configuration Options
N/A
+11
View File
@@ -0,0 +1,11 @@
{{- define "custom.custom.configuration.header" -}}
# Configuration Options
{{- end -}}
{{- define "custom.custom.configuration" -}}
{{ template "custom.custom.configuration.header" . }}
N/A
{{- end -}}
{{ template "custom.custom.configuration" . }}
+31
View File
@@ -0,0 +1,31 @@
apiVersion: v2
kubeVersion: ">=1.16.0-0"
name: esphome
version: 2.0.0
upstream_version: 4.3.1
appVersion: "auto"
description: ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
type: application
deprecated: false
home: https://github.com/truecharts/apps/tree/master/stable/esphome
icon: https://esphome.io/_images/logo.svg
keywords:
- esphome
sources:
- https://github.com/truecharts/apps/tree/master/stable/esphome
- https://github.com/k8s-at-home/charts/tree/master/charts/esphome
- https://github.com/esphome/esphome
- https://hub.docker.com/u/esphome
dependencies:
- name: common
repository: https://truecharts.org/
version: 2.0.0
# condition:
maintainers:
- name: TrueCharts
email: info@truecharts.org
url: truecharts.org
- name: tprelog
email: 35702532+tprelog@users.noreply.github.com
url: truecharts.org
# annotations:
+56
View File
@@ -0,0 +1,56 @@
# Introduction
![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: auto](https://img.shields.io/badge/AppVersion-auto-informational?style=flat-square)
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
TrueCharts are designed to be installed as TrueNAS SCALE app only. We can not guarantee this charts works as a stand-alone helm installation.
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/apps/issues/new/choose)**
## Source Code
* <https://github.com/truecharts/apps/tree/master/stable/esphome>
* <https://github.com/k8s-at-home/charts/tree/master/charts/esphome>
* <https://github.com/esphome/esphome>
* <https://hub.docker.com/u/esphome>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://truecharts.org/ | common | 2.0.0 |
## Installing the Chart
To install the chart with the release name `esphome`
- Open TrueNAS SCALE
- Go to Apps
- Click "Install" for this specific Apps
- Fill out the configuration form
## Uninstalling the Chart
To uninstall the `esphome` deployment
- Open TrueNAS SCALE
- Go to Apps
- Go to "Installed Apps"
- Expand the menu in the top-right corner of this App
- Click "Remove" for this specific Apps
The command removes all the Kubernetes components associated with the chart **including storage volumes** _(Except hostPath Storage)_ and deletes the release.
## Support
- See the [Wiki](https://wiki.truecharts.org)
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
- Ask a [question](https://github.com/truecharts/apps/discussions)
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
All Rights Reserved - The TrueCharts Project
+2
View File
@@ -0,0 +1,2 @@
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
This App is supplied by TrueCharts, for more information please visit https://truecharts.org
Binary file not shown.
+15
View File
@@ -0,0 +1,15 @@
##
# This file contains Values.yaml content that gets added to the output of questions.yaml
# It's ONLY meant for content that the user is NOT expected to change.
# Example: Everything under "image" is not included in questions.yaml but is included here.
##
image:
repository: esphome/esphome
pullPolicy: IfNotPresent
tag: 1.15.3
##
# Most other defaults are set in questions.yaml
# For other options please refer to the wiki, default_values.yaml or the common library chart
##
+441
View File
@@ -0,0 +1,441 @@
groups:
- name: "Container Image"
description: "Image to be used for container"
- name: "Workload Configuration"
description: "Configure workload deployment"
- name: "Configuration"
description: "additional container configuration"
- name: "Networking"
description: "Configure / service for container"
- name: "Storage and Devices"
description: "Persist and share data that is separate from the lifecycle of the container"
- name: "Resource Reservation"
description: "Specify resources to be allocated to workload"
- name: "Reverse Proxy Configuration"
description: "Reverse Proxy configuration"
- name: "Advanced"
description: "Advanced Configuration"
- name: "WARNING"
description: "WARNING"
portals:
web_portal:
protocols:
- "$kubernetes-resource_configmap_portal_protocol"
host:
- "$kubernetes-resource_configmap_portal_host"
ports:
- "$kubernetes-resource_configmap_portal_port"
questions:
- variable: portal
group: "Container Image"
label: "Configure Portal Button"
schema:
type: dict
hidden: true
attrs:
- variable: enabled
label: "Enable"
description: "enable the portal button"
schema:
hidden: true
editable: false
type: boolean
default: true
# Update Policy
- variable: strategyType
group: "Container Image"
label: "Update Strategy"
schema:
type: string
default: "Recreate"
enum:
- value: "RollingUpdate"
description: "Create new pods and then kill old ones"
- value: "Recreate"
description: "Kill existing pods before creating new ones"
# Configure Time Zone
# Configure Time Zone
- variable: timezone
group: "Container Image"
label: "Timezone"
schema:
type: string
default: "Etc/UTC"
$ref:
- "definitions/timezone"
- variable: PUID
group: "Container Image"
label: "PUID"
description: "The UserID of the user running the application and owning the files"
schema:
type: int
default: 568
- variable: PGID
group: "Container Image"
label: "PGID"
description: "The groupID of the user/group running the application and owning the files"
schema:
type: int
default: 568
- variable: UMASK
group: "Container Image"
label: "UMASK (advanced)"
description: "The UMASK used if supported by the application"
schema:
type: string
default: "002"
# Configure Enviroment Variables
- variable: environment
group: "Configuration"
label: "Environment Variables"
schema:
type: list
default: []
items:
- variable: environmentVariable
label: ""
schema:
type: dict
attrs:
- variable: name
label: "Name"
schema:
type: string
- variable: value
label: "Value"
schema:
type: string
# Service Configuration
# Enable Host Networking
- variable: hostNetwork
group: "Networking"
label: "Enable Host Networking"
schema:
type: boolean
default: false
- variable: services
group: "Networking"
label: "Configure Service"
schema:
type: dict
attrs:
- variable: main
label: "Main service"
description: "The Primary service on which the healthcheck runs, often the webUI"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable the service"
schema:
type: boolean
default: true
hidden: true
- variable: type
label: "Service type"
description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System"
schema:
type: string
default: "ClusterIP"
enum:
- value: "NodePort"
description: "NodePort"
- value: "ClusterIP"
description: "ClusterIP"
- variable: port
label: "Port configuration"
schema:
type: dict
attrs:
- variable: protocol
label: "Port Type"
schema:
type: string
default: "HTTP"
hidden: false
enum:
- value: HTTP
description: "HTTP"
- value: "HTTPS"
description: "HTTPS"
- variable: port
label: "container port"
schema:
type: int
default: 6052
editable: false
hidden: true
- variable: targetport
label: "Internal Service port"
description: "When connecting internally to this App, you'll need this port"
schema:
type: int
default: 6052
editable: false
hidden: true
- variable: nodePort
label: "(optional) host nodePort to expose to"
description: "only get used when nodePort is selected"
schema:
type: int
min: 9000
max: 65535
default: 36052
required: true
# Configure app volumes
- variable: appVolumeMounts
group: "Storage and Devices"
label: ""
schema:
type: dict
attrs:
# Config ------------------------
- variable: config
label: "Config Volume"
schema:
type: dict
$ref:
- "normalize/ixVolume"
attrs:
- variable: enabled
label: "Enabled"
schema:
type: boolean
default: true
required: true
hidden: true
editable: false
- variable: setPermissions
label: "Automatic Permissions"
description: "Automatically set permissions on install"
schema:
type: boolean
default: true
hidden: false
- variable: emptyDir
label: "emptyDir"
schema:
type: boolean
default: false
hidden: true
editable: false
- variable: datasetName
label: "Name"
schema:
type: string
default: "config"
editable: false
- variable: mountPath
label: "Mount path inside the container"
schema:
type: path
default: "/config"
editable: false
- variable: hostPathEnabled
label: "Config - Enable Host Path"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "Config Host Path"
schema:
type: hostpath
required: true
# platformio ------------------------
- variable: platformio
label: "platformio"
schema:
hidden: true
type: dict
$ref:
- "normalize/ixVolume"
attrs:
- variable: enabled
label: "Enabled"
schema:
type: boolean
default: true
- variable: setPermissions
label: "Automatic Permissions"
schema:
type: boolean
default: true
- variable: emptyDir
label: "Empty Dir"
schema:
type: boolean
default: false
- variable: datasetName
label: "Dataset Name"
schema:
type: string
default: "platformio"
- variable: mountPath
label: "Mount Path"
schema:
type: path
default: "/.platformio"
- variable: additionalAppVolumeMounts
label: "Custom app storage"
group: "Storage and Devices"
schema:
type: list
default: []
items:
- variable: volumeMount
label: "Custom Storage"
schema:
type: dict
attrs:
- variable: enabled
label: "Enabled"
schema:
type: boolean
default: true
required: true
hidden: true
editable: false
- variable: setPermissions
label: "Automatic Permissions"
description: "Automatically set permissions on install"
schema:
type: boolean
default: true
hidden: false
- variable: name
label: "Mountpoint Name"
schema:
type: string
default: ""
required: true
editable: true
- variable: emptyDir
label: "emptyDir"
schema:
type: boolean
default: false
hidden: true
editable: false
- variable: mountPath
label: "Mount Path"
description: "Path to mount inside the pod"
schema:
type: path
required: true
default: ""
editable: true
- variable: hostPathEnabled
label: "host Path Enabled"
schema:
type: boolean
default: true
hidden: true
- variable: hostPath
label: "Host Path"
schema:
type: hostpath
required: true
- variable: ingress
label: ""
group: "Reverse Proxy Configuration"
schema:
type: dict
attrs:
- variable: main
label: "Web Reverse Proxy Configuration"
schema:
type: dict
attrs:
- variable: enabled
label: "Enable Web Reverse Proxy"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: type
label: "Reverse Proxy Type"
schema:
type: string
default: "HTTP"
hidden: true
editable: false
required: true
- variable: serviceName
label: "Service name to proxy to"
schema:
hidden: true
editable: false
type: string
default: ""
- variable: entrypoint
label: "Select Entrypoint"
schema:
type: string
default: "websecure"
required: true
enum:
- value: "websecure"
description: "Websecure: HTTPS/TLS port 443"
- variable: hosts
label: "Hosts"
schema:
type: list
default: []
items:
- variable: host
label: "Host"
schema:
type: dict
attrs:
- variable: host
label: "Domain Name"
required: true
schema:
type: string
- variable: path
label: "path"
schema:
type: string
required: true
hidden: true
default: "/"
- variable: certType
label: "Select Certificate Type"
schema:
type: string
default: "selfsigned"
enum:
- value: ""
description: "No Encryption/TLS/Certificates"
- value: "selfsigned"
description: "Self-Signed Certificate"
- value: "ixcert"
description: "TrueNAS SCALE Certificate"
- variable: certificate
label: "Select TrueNAS SCALE Certificate"
schema:
type: int
show_if: [["certType", "=", "ixcert"]]
$ref:
- "definitions/certificate"
- variable: authForwardURL
label: "Forward Authentication URL"
schema:
type: string
default: ""
@@ -0,0 +1 @@
{{ include "common.all" . }}
+49
View File
@@ -0,0 +1,49 @@
# Default values for esphome.
image:
repository: esphome/esphome
pullPolicy: IfNotPresent
tag: 1.15.3
strategy:
type: Recreate
services:
main:
port:
port: 6052
env: {}
# ESPHOME_DASHBOARD_USE_PING: true
# ESPHOME_DASHBOARD_RELATIVE_URL: "/"
# ESPHOME_QUICKWIZARD:
# ESPHOME_IS_HASSIO:
# DISABLE_HA_AUTHENTICATION:
# USERNAME:
# PASSWORD:
persistence:
config:
enabled: false
emptyDir: false
## 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: ""
## TrueCharts Config
appVolumeMounts:
config:
enabled: true
emptyDir: true
setPermissions: true
mountPath: "/config"
+1
View File
@@ -0,0 +1 @@
# This file is empty on purpose, as it should not be used with TrueNAS SCALE
+3
View File
@@ -0,0 +1,3 @@
categories:
- tools
icon_url: https://esphome.io/_images/logo.svg