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

View File

@@ -5,82 +5,78 @@ This article serves as a development extention to the storage article available
##### Storage and Common-Chart
For all these storage solutions we require the commonchart to be added to the App.
The Common-Chart handles both the connection/addition of storage to the container and spinning up special k8s jobs to fix the permissions if requested.
The Common-Chart handles both the connection/addition of storage to the container and spinning up special k8s jobs to fix the permissions if requested for the Custom storage.
### Fixed Storage
### Integrated Persistent Storage
When adding an App, there are almost always certain folders that are required for solid Apps performance. For example config files that should be persistent across restarts.
For these storages we can easily add fixes values in the UI, these settings can not be disabled or removed and would, by default, bind to an ix_volume if nothing is changed.
For these storages we can easily add fixes values in the UI, these settings can not be disabled or removed and would, by default and preferably, be limited to the "internal" storage class
Preventing the user to disable them, ensures that users don't (by mistake) remove the storage.
#####
```
- variable: appVolumeMounts
label: "app storage"
group: "Storage and Devices"
- variable: persistence
label: "Integrated Persistent Storage"
description: "Websocket Service"
group: "Storage"
schema:
type: dict
attrs:
# Config ------------------------
- variable: config
label: "config dataset"
- variable: data
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
default: "/config"
editable: false
- variable: hostPathEnabled
label: "host Path Enabled"
type: string
default: "/data"
hidden: true
- variable: emptyDir
label: "Mount a ramdisk instead of actual storage"
schema:
type: boolean
default: false
show_subquestions_if: true
subquestions:
- variable: hostPath
label: "Host Path"
schema:
type: hostpath
required: true
hidden: true
- variable: accessMode
label: "Access Mode (Advanced)"
description: "Allow or disallow multiple PVC's writhing to the same PVC"
schema:
type: string
default: "ReadWriteOnce"
enum:
- value: "ReadWriteOnce"
description: "ReadWriteOnce"
- value: "ReadOnlyMany"
description: "ReadOnlyMany"
- value: "ReadWriteMany"
description: "ReadWriteMany"
- variable: size
label: "Size quotum of storage"
schema:
type: string
default: "100Gi"
```
### Unlimited Custom Storage Mounts