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: transmission
version: 2.2.2
version: 3.0.0
# upstream_version:
appVersion: "auto"
description: API Support for your favorite torrent trackers.
@@ -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"
@@ -78,6 +78,19 @@ questions:
type: int
default: 568
# Enable privileged
- variable: securityContext
group: "Container Image"
label: "Security Context"
schema:
type: dict
attrs:
- variable: privileged
label: "Enable privileged to pass thru a USB device"
schema:
type: boolean
default: false
- variable: PGID
group: "Container Image"
label: "PGID"
@@ -541,130 +554,68 @@ questions:
## TrueCharts Specific
- variable: appVolumeMounts
label: "app storage"
group: "Storage and Devices"
- variable: persistence
label: "Integrated Persistent Storage"
group: "Storage"
schema:
type: dict
attrs:
- variable: config
label: "config dataset"
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"
description: "Path to mount inside the pod"
label: "mountPath"
description: "Path inside the container the storage is mounted"
schema:
type: path
required: true
type: string
default: "/config"
editable: false
- variable: hostPathEnabled
label: "host Path Enabled"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "Host Path"
schema:
type: hostpath
required: true
- variable: downloads
label: "downloads dataset"
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: "downloads"
required: true
editable: false
- variable: mountPath
label: "Mount Path"
description: "Path to mount inside the pod"
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
required: true
default: "/downloads"
editable: false
- variable: hostPathEnabled
label: "host Path Enabled"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "Host Path"
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: []
@@ -35,25 +35,12 @@ env: {}
persistence:
config:
enabled: false
emptyDir: false
torrentblackhole:
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: ""
enabled: true
mountPath: "/config"
emptyDir: true
accessMode: ReadWriteOnce
size: 1Gi
storageClass: ""
## TrueCharts Values
@@ -94,15 +81,3 @@ transmissionFixedConfig:
utp-enabled: true
watch-dir: "/watch"
watch-dir-enabled: true
appVolumeMounts:
config:
enabled: true
emptyDir: true
setPermissions: true
mountPath: "/config"
downloads:
enabled: true
emptyDir: true
setPermissions: true
mountPath: "/downloads"