Storage rework part 1 (#337)

* Create docs for Integrated Persistent Storage

* add a clear note about possibly moving to PVC's in the (near) future.

* Adapt developer docs to reflect new storage system

* Move Apps fixed-storage to new Storage system
This commit is contained in:
Kjeld Schouten-Lebbing
2021-04-13 21:43:27 +02:00
committed by GitHub
parent 728cd300c8
commit eb48f8a4e1
491 changed files with 8313 additions and 11058 deletions
@@ -1,7 +1,7 @@
apiVersion: v2
kubeVersion: ">=1.16.0-0"
name: tvheadend
version: 2.2.2
version: 3.0.0
upstream_version: 1.1.2
appVersion: "latest"
description: TVheadend - a TV streaming server and digital video recorder
@@ -7,7 +7,7 @@ groups:
description: "additional container configuration"
- name: "Networking"
description: "Configure / service for container"
- name: "Storage and Devices"
- name: "Storage"
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"
@@ -236,133 +236,69 @@ questions:
default: 36052
required: true
# Configure app volumes
- variable: appVolumeMounts
group: "Storage and Devices"
label: ""
- variable: persistence
label: "Integrated Persistent Storage"
description: "Websocket Service"
group: "Storage"
schema:
type: dict
attrs:
# Config ------------------------
- variable: config
label: "Config Volume"
label: "App Config Storage"
description: "Stores the Application Configuration."
schema:
type: dict
$ref:
- "normalize/ixVolume"
attrs:
- variable: enabled
label: "Enabled"
label: "Enable the storage"
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: "Dataset Name"
- variable: storageClass
label: "Type of Storage"
description: " Warning: Anything other than Internal will break rollback!"
schema:
type: string
default: "config"
required: true
editable: false
hidden: true
default: ""
enum:
- value: ""
description: "Internal"
- variable: mountPath
label: "Mount path inside the container"
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: path
type: string
default: "/config"
editable: false
- variable: hostPathEnabled
label: "Config - Enable Host Path"
description: "something about this here"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "Config Host Path"
description: "Host path to store config"
schema:
type: hostpath
required: true
# Recordings ------------------------
- variable: recordings
label: "Recordings 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"
label: "Mount a ramdisk instead of actual storage"
schema:
type: boolean
default: false
hidden: true
editable: false
- variable: datasetName
label: "Dataset Name"
- variable: accessMode
label: "Access Mode (Advanced)"
description: "Allow or disallow multiple PVC's writhing to the same PVC"
schema:
type: string
default: "config"
required: true
editable: false
hidden: true
- variable: mountPath
label: "Mount path inside the container"
default: "ReadWriteOnce"
enum:
- value: "ReadWriteOnce"
description: "ReadWriteOnce"
- value: "ReadOnlyMany"
description: "ReadOnlyMany"
- value: "ReadWriteMany"
description: "ReadWriteMany"
- variable: size
label: "Size quotum of storage"
schema:
type: path
default: "/recordings"
editable: false
- variable: hostPathEnabled
label: "recordings - Enable Host Path"
description: "something about this here"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "recordings Host Path"
description: "Host path to store recordings"
schema:
type: hostpath
required: true
type: string
default: "100Gi"
- variable: additionalAppVolumeMounts
label: "Custom app storage"
group: "Storage and Devices"
group: "Storage"
schema:
type: list
default: []
@@ -30,24 +30,10 @@ services:
targetPort: 9982
persistence:
config:
enabled: false
emptyDir: false
mountPath: /config
recordings:
enabled: false
emptyDir: false
mountPath: /recordings
appVolumeMounts:
config:
enabled: true
emptyDir: true
# setPermissions: true
mountPath: "/config"
recordings:
enabled: true
emptyDir: true
# setPermissions: true
mountPath: "/recordings"
accessMode: ReadWriteOnce
size: 1Gi
storageClass: ""