From f074ce81e2e1eaad1b8ed4b2000ae57adc5e3e3a Mon Sep 17 00:00:00 2001 From: Stavros kois Date: Mon, 13 Nov 2023 19:42:07 +0200 Subject: [PATCH] add questions --- .../community/dashy/ci/basic-values.yaml | 2 +- .../community/dashy/ci/extra-values.yaml | 2 +- .../community/dashy/ci/hostNet-values.yaml | 2 +- .../community/dashy/ci/https-values.yaml | 2 +- library/ix-dev/community/dashy/questions.yaml | 376 ++++++++++++++++++ .../dashy/templates/_persistence.tpl | 4 +- library/ix-dev/community/dashy/values.yaml | 4 +- 7 files changed, 384 insertions(+), 8 deletions(-) create mode 100644 library/ix-dev/community/dashy/questions.yaml diff --git a/library/ix-dev/community/dashy/ci/basic-values.yaml b/library/ix-dev/community/dashy/ci/basic-values.yaml index 07bcfe995e..a022aa5c6f 100644 --- a/library/ix-dev/community/dashy/ci/basic-values.yaml +++ b/library/ix-dev/community/dashy/ci/basic-values.yaml @@ -6,5 +6,5 @@ dashyID: group: 1000 dashyStorage: - config: + data: type: pvc diff --git a/library/ix-dev/community/dashy/ci/extra-values.yaml b/library/ix-dev/community/dashy/ci/extra-values.yaml index c89307258e..3dd06507c1 100644 --- a/library/ix-dev/community/dashy/ci/extra-values.yaml +++ b/library/ix-dev/community/dashy/ci/extra-values.yaml @@ -2,7 +2,7 @@ dashyNetwork: webPort: 31000 dashyStorage: - config: + data: type: pvc additionalStorages: - type: pvc diff --git a/library/ix-dev/community/dashy/ci/hostNet-values.yaml b/library/ix-dev/community/dashy/ci/hostNet-values.yaml index 2e2e2f92c2..de8dc1c577 100644 --- a/library/ix-dev/community/dashy/ci/hostNet-values.yaml +++ b/library/ix-dev/community/dashy/ci/hostNet-values.yaml @@ -3,5 +3,5 @@ dashyNetwork: hostNetwork: true dashyStorage: - config: + data: type: pvc diff --git a/library/ix-dev/community/dashy/ci/https-values.yaml b/library/ix-dev/community/dashy/ci/https-values.yaml index 522dc65203..0dba31c54d 100644 --- a/library/ix-dev/community/dashy/ci/https-values.yaml +++ b/library/ix-dev/community/dashy/ci/https-values.yaml @@ -3,7 +3,7 @@ dashyNetwork: webPort: 31000 dashyStorage: - config: + data: type: pvc ixCertificates: diff --git a/library/ix-dev/community/dashy/questions.yaml b/library/ix-dev/community/dashy/questions.yaml new file mode 100644 index 0000000000..397fece9a8 --- /dev/null +++ b/library/ix-dev/community/dashy/questions.yaml @@ -0,0 +1,376 @@ +groups: + - name: Dashy Configuration + description: Configure Dashy + - name: User and Group Configuration + description: Configure User and Group for Dashy + - name: Network Configuration + description: Configure Network for Dashy + - name: Storage Configuration + description: Configure Storage for Dashy + - name: Resources Configuration + description: Configure Resources for Dashy + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "$kubernetes-resource_configmap_portal_path" + +questions: + - variable: DashyConfig + label: "" + group: Dashy Configuration + schema: + type: dict + attrs: + - variable: additionalEnvs + label: Additional Environment Variables + description: Configure additional environment variables for Dashy. + schema: + type: list + default: [] + items: + - variable: env + label: Environment Variable + schema: + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + + - variable: dashyID + label: "" + group: User and Group Configuration + schema: + type: dict + attrs: + - variable: user + label: User ID + description: The user id that Dashy files will be owned by. + schema: + type: int + min: 568 + default: 568 + required: true + - variable: group + label: Group ID + description: The group id that Dashy files will be owned by. + schema: + type: int + min: 568 + default: 568 + required: true + + + - variable: DashyNetwork + label: "" + group: Network Configuration + schema: + type: dict + attrs: + - variable: webPort + label: Web Port + description: The port for the Dashy Web UI. + schema: + type: int + default: 31003 + min: 9000 + max: 65535 + required: true + - variable: certificateID + label: Certificate + description: The certificate to use for Dashy + schema: + type: int + "null": true + $ref: + - "definitions/certificate" + - variable: hostNetwork + label: Host Network + description: | + Bind to the host network. It's recommended to keep this disabled.
+ schema: + type: boolean + default: false + + - variable: DashyStorage + label: "" + group: Storage Configuration + schema: + type: dict + attrs: + - variable: data + label: Dashy Data Storage + description: The path to store Dashy Data. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + immutable: true + default: "ixVolume" + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "data" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + + - variable: additionalStorages + label: Additional Storage + description: Additional storage for Dashy. + schema: + type: list + default: [] + items: + - variable: storageEntry + label: Storage Entry + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system.
+ SMB Share: Is a SMB share that is mounted to a persistent volume claim. + schema: + type: string + required: true + default: "ixVolume" + immutable: true + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - value: "smb-pv-pvc" + description: SMB Share (Mounts a persistent volume claim to a SMB share) + - variable: readOnly + label: Read Only + description: Mount the volume as read only. + schema: + type: boolean + default: false + - variable: mountPath + label: Mount Path + description: The path inside the container to mount the storage. + schema: + type: path + required: true + - variable: hostPathConfig + label: hostPathConfig + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + default: "storage_entry" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: smbConfig + label: SMB Share Configuration + description: The configuration for the SMB Share. + schema: + type: dict + show_if: [["type", "=", "smb-pv-pvc"]] + attrs: + - variable: server + label: Server + description: The server for the SMB share. + schema: + type: string + required: true + - variable: share + label: Share + description: The share name for the SMB share. + schema: + type: string + required: true + - variable: domain + label: Domain (Optional) + description: The domain for the SMB share. + schema: + type: string + - variable: username + label: Username + description: The username for the SMB share. + schema: + type: string + required: true + - variable: password + label: Password + description: The password for the SMB share. + schema: + type: string + required: true + private: true + - variable: size + label: Size (in Gi) + description: The size of the volume quota. + schema: + type: int + required: true + min: 1 + default: 1 + + - variable: resources + group: Resources Configuration + label: "" + schema: + type: dict + attrs: + - variable: limits + label: Limits + schema: + type: dict + attrs: + - variable: cpu + label: CPU + description: CPU limit for Dashy. + schema: + type: string + max_length: 6 + valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$' + valid_chars_error: | + Valid CPU limit formats are
+ - Plain Integer - eg. 1
+ - Float - eg. 0.5
+ - Milicpu - eg. 500m + default: "4000m" + required: true + - variable: memory + label: Memory + description: Memory limit for Dashy. + schema: + type: string + max_length: 12 + valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$' + valid_chars_error: | + Valid Memory limit formats are
+ - Suffixed with E/P/T/G/M/K - eg. 1G
+ - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
+ - Plain Integer in bytes - eg. 1024
+ - Exponent - eg. 134e6 + default: "8Gi" + required: true diff --git a/library/ix-dev/community/dashy/templates/_persistence.tpl b/library/ix-dev/community/dashy/templates/_persistence.tpl index a88b0c89fc..fed45b1e9e 100644 --- a/library/ix-dev/community/dashy/templates/_persistence.tpl +++ b/library/ix-dev/community/dashy/templates/_persistence.tpl @@ -2,7 +2,7 @@ persistence: config: enabled: true - {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.dashyStorage.config) | nindent 4 }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.dashyStorage.data) | nindent 4 }} targetSelector: dashy: dashy: @@ -21,7 +21,7 @@ persistence: mountPath: /tmp {{- range $idx, $storage := .Values.dashyStorage.additionalStorages }} - {{ printf "dashy-%v" (int $idx) }}: + {{ printf "dashy-%v:" (int $idx) }} enabled: true {{- include "ix.v1.common.app.storageOptions" (dict "storage" $storage) | nindent 4 }} targetSelector: diff --git a/library/ix-dev/community/dashy/values.yaml b/library/ix-dev/community/dashy/values.yaml index d7c23e324c..e15df0e818 100644 --- a/library/ix-dev/community/dashy/values.yaml +++ b/library/ix-dev/community/dashy/values.yaml @@ -21,8 +21,8 @@ dashyID: group: 568 dashyStorage: - config: + data: type: ixVolume ixVolumeConfig: - datasetName: config + datasetName: data additionalStorages: []