Create new permission and customStorage system on the individual apps (#343)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://truecharts.org/
|
||||
version: 2.2.2
|
||||
digest: sha256:82ffcab0ecb2e23d6a8a775fb2408906a40bcde3379d5575cb54542ed16aa596
|
||||
generated: "2021-04-12T17:35:52.180497322Z"
|
||||
version: 3.0.1
|
||||
digest: sha256:872003df28f67815271ff4716b856a152b06a170fe98bdbceebf29dbe6c229a5
|
||||
generated: "2021-04-14T20:26:33.1128417+02:00"
|
||||
|
||||
@@ -21,7 +21,7 @@ sources:
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://truecharts.org/
|
||||
version: 2.2.2
|
||||
version: 3.0.1
|
||||
# condition:
|
||||
maintainers:
|
||||
- name: TrueCharts
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -9,10 +9,6 @@ image:
|
||||
tag: v1.23.2
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
startAsRoot: true
|
||||
|
||||
# 24=cdrom 44=video 107=render
|
||||
supplementalGroups: 24,44,107
|
||||
|
||||
#All values here are set as the docker defaults.
|
||||
envTpl:
|
||||
|
||||
@@ -17,17 +17,33 @@ groups:
|
||||
description: "Advanced Configuration"
|
||||
- name: "WARNING"
|
||||
description: "WARNING"
|
||||
|
||||
portals:
|
||||
web_portal:
|
||||
protocols:
|
||||
- "https"
|
||||
- "$kubernetes-resource_configmap_portal_protocol"
|
||||
host:
|
||||
- "$variable-ingress.hosts[0].host"
|
||||
- "$kubernetes-resource_configmap_portal_host"
|
||||
ports:
|
||||
- "443"
|
||||
|
||||
- "$kubernetes-resource_configmap_portal_port"
|
||||
questions:
|
||||
|
||||
# Portal
|
||||
- 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"
|
||||
@@ -40,7 +56,6 @@ questions:
|
||||
description: "Create new pods and then kill old ones"
|
||||
- value: "Recreate"
|
||||
description: "Kill existing pods before creating new ones"
|
||||
|
||||
# Configure Time Zone
|
||||
- variable: timezone
|
||||
group: "Container Image"
|
||||
@@ -51,46 +66,230 @@ questions:
|
||||
$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
|
||||
|
||||
|
||||
# Enable privileged
|
||||
- variable: securityContext
|
||||
group: "Container Image"
|
||||
label: "Security Context"
|
||||
- variable: env
|
||||
group: "Configuration"
|
||||
label: "Image Environment"
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: privileged
|
||||
label: "Enable privileged to pass thru a USB device"
|
||||
- variable: gui
|
||||
label: "GUI Settings"
|
||||
description: "Always read description before changing a value here. Also refer to README"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- 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
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: DISPLAY_WIDTH
|
||||
label: "DISPLAY_WIDTH"
|
||||
description: "Width (in pixels) of the application's window."
|
||||
schema:
|
||||
type: string
|
||||
default: "1280"
|
||||
required: true
|
||||
- variable: DISPLAY_HEIGHT
|
||||
label: "DISPLAY_HEIGHT"
|
||||
description: "Height (in pixels) of the application's window."
|
||||
schema:
|
||||
type: string
|
||||
default: "768"
|
||||
required: true
|
||||
- variable: SECURE_CONNECTION
|
||||
label: "SECURE_CONNECTION"
|
||||
description: "When set to 1, an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details."
|
||||
schema:
|
||||
type: string
|
||||
default: "0"
|
||||
required: true
|
||||
- variable: VNC_PASSWORD
|
||||
label: "VNC_PASSWORD"
|
||||
description: "Password needed to connect to the application's GUI. See the VNC Password section for more details."
|
||||
schema:
|
||||
private: true
|
||||
type: string
|
||||
default: ""
|
||||
- variable: autoconv
|
||||
label: "Automated Conversion Settings"
|
||||
description: "Always read description before changing a value here. Also refer to README"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
show_subquestions_if: true
|
||||
subquestions:
|
||||
- variable: AUTOMATED_CONVERSION_PRESET
|
||||
label: "AUTOMATED_CONVERSION_PRESET"
|
||||
description: "HandBrake preset used by the automatic video converter. Identification of a preset must follow the format <CATEGORY>/<PRESET NAME>"
|
||||
schema:
|
||||
type: string
|
||||
default: 'General/Very Fast 1080p30'
|
||||
required: true
|
||||
- variable: AUTOMATED_CONVERSION_FORMAT
|
||||
label: "AUTOMATED_CONVERSION_FORMAT"
|
||||
description: "Video container format used by the automatic video converter for output files. This is typically the video filename extension."
|
||||
schema:
|
||||
type: string
|
||||
default: 'mp4'
|
||||
required: true
|
||||
- variable: AUTOMATED_CONVERSION_KEEP_SOURCE
|
||||
label: "AUTOMATED_CONVERSION_KEEP_SOURCE"
|
||||
description: "When set to 0, a video that has been successfully converted is removed from the watch folder."
|
||||
schema:
|
||||
type: string
|
||||
default: "1"
|
||||
required: true
|
||||
- variable: AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION
|
||||
label: "AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION"
|
||||
description: "When set to ignore, a non-video file found in the watch folder is ignored. If set to copy, a non-video file is copied as-is to the output folder."
|
||||
schema:
|
||||
type: string
|
||||
default: 'ignore'
|
||||
required: true
|
||||
|
||||
- variable: UMASK
|
||||
group: "Container Image"
|
||||
label: "UMASK (advanced)"
|
||||
description: "The UMASK used if supported by the application"
|
||||
schema:
|
||||
type: string
|
||||
default: "002"
|
||||
|
||||
# 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: 5800
|
||||
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: 5800
|
||||
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
|
||||
- variable: vnc
|
||||
label: "VNC service"
|
||||
description: "VNC Service"
|
||||
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: "TCP"
|
||||
hidden: true
|
||||
enum:
|
||||
- value: TCP
|
||||
description: "TCP"
|
||||
- value: "UDP"
|
||||
description: "UDP"
|
||||
- variable: port
|
||||
label: "container port"
|
||||
schema:
|
||||
type: int
|
||||
default: 5900
|
||||
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: 5900
|
||||
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
|
||||
|
||||
## TrueCharts Specific
|
||||
|
||||
- variable: persistence
|
||||
label: "Integrated Persistent Storage"
|
||||
group: "Storage"
|
||||
@@ -149,8 +348,7 @@ questions:
|
||||
schema:
|
||||
type: string
|
||||
default: "100Gi"
|
||||
|
||||
- variable: additionalAppVolumeMounts
|
||||
- variable: customStorage
|
||||
label: "Custom app storage"
|
||||
group: "Storage"
|
||||
schema:
|
||||
@@ -210,7 +408,6 @@ questions:
|
||||
schema:
|
||||
type: hostpath
|
||||
required: true
|
||||
|
||||
- variable: ingress
|
||||
label: ""
|
||||
group: "Reverse Proxy Configuration"
|
||||
@@ -301,3 +498,88 @@ questions:
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: PUID
|
||||
group: "Advanced"
|
||||
label: "PUID"
|
||||
description: "Sets the PUID env var for LinuxServer.io (compatible) containers"
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
|
||||
- variable: PGID
|
||||
group: "Advanced"
|
||||
label: "PGID"
|
||||
description: "Sets the PGID env var for LinuxServer.io (compatible) containers"
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
- variable: UMASK
|
||||
group: "Advanced"
|
||||
label: "UMASK"
|
||||
description: "Sets the UMASK env var for LinuxServer.io (compatible) containers"
|
||||
schema:
|
||||
type: string
|
||||
default: "002"
|
||||
# Enable privileged
|
||||
- variable: securityContext
|
||||
group: "Advanced"
|
||||
label: "Security Context"
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: privileged
|
||||
label: "Enable privileged mode for Common-Chart based charts"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
# Set Pod Security Policy
|
||||
- variable: podSecurityContext
|
||||
group: "Advanced"
|
||||
label: "Pod Security Context"
|
||||
schema:
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: runAsNonRoot
|
||||
label: "runAsNonRoot"
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: runAsUser
|
||||
label: "runAsUser"
|
||||
description: "The UserID of the user running the application"
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
- variable: runAsGroup
|
||||
label: "runAsGroup"
|
||||
description: The groupID this App of the user running the application"
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
- variable: supplementalGroups
|
||||
label: "supplementalGroups"
|
||||
description: "Additional groups this App needs access to"
|
||||
schema:
|
||||
type: list
|
||||
default: [24, 44, 107]
|
||||
items:
|
||||
- variable: Group
|
||||
label: "Group"
|
||||
schema:
|
||||
type: int
|
||||
default: 568
|
||||
- variable: fsGroup
|
||||
label: "The group that should own ALL storage."
|
||||
schema:
|
||||
type: int
|
||||
default: 0
|
||||
- variable: fsGroupChangePolicy
|
||||
label: "When should we chmod/chown?"
|
||||
schema:
|
||||
type: string
|
||||
default: "OnRootMismatch"
|
||||
enum:
|
||||
- value: "OnRootMismatch"
|
||||
description: "OnRootMismatch"
|
||||
- value: "Always"
|
||||
description: "Always"
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
{{- include "common.notes.defaultNotes" . -}}
|
||||
@@ -8,8 +8,13 @@ strategy:
|
||||
|
||||
startAsRoot: true
|
||||
|
||||
# 24=cdrom 44=video 107=render
|
||||
supplementalGroups: 24,44,107
|
||||
# Configure the Security Context for the Pod
|
||||
podSecurityContext:
|
||||
runAsNonRoot: false
|
||||
runAsUser: 0
|
||||
runAsGroup: 0
|
||||
fsGroup: 0
|
||||
supplementalGroups: [24, 44, 107]
|
||||
|
||||
services:
|
||||
main:
|
||||
|
||||
Reference in New Issue
Block a user