From 47455ec297bf548b4a6954c39913a44eb40471de Mon Sep 17 00:00:00 2001 From: sonicaj Date: Tue, 14 Nov 2023 20:58:25 +0000 Subject: [PATCH] Publish new changes in catalog --- community/dashy/1.0.0/Chart.lock | 6 + community/dashy/1.0.0/Chart.yaml | 25 ++ community/dashy/1.0.0/README.md | 3 + community/dashy/1.0.0/app-readme.md | 3 + community/dashy/1.0.0/charts/common-1.2.3.tgz | Bin 0 -> 63004 bytes community/dashy/1.0.0/ci/basic-values.yaml | 6 + community/dashy/1.0.0/ci/extra-values.yaml | 11 + community/dashy/1.0.0/ci/hostNet-values.yaml | 7 + community/dashy/1.0.0/ci/https-values.yaml | 93 +++++ community/dashy/1.0.0/ix_values.yaml | 24 ++ community/dashy/1.0.0/metadata.yaml | 8 + community/dashy/1.0.0/questions.yaml | 352 ++++++++++++++++++ community/dashy/1.0.0/templates/NOTES.txt | 1 + community/dashy/1.0.0/templates/_dashy.tpl | 75 ++++ .../dashy/1.0.0/templates/_persistence.tpl | 55 +++ community/dashy/1.0.0/templates/_portal.tpl | 16 + community/dashy/1.0.0/templates/_service.tpl | 15 + community/dashy/1.0.0/templates/common.yaml | 11 + community/dashy/item.yaml | 8 + 19 files changed, 719 insertions(+) create mode 100644 community/dashy/1.0.0/Chart.lock create mode 100644 community/dashy/1.0.0/Chart.yaml create mode 100644 community/dashy/1.0.0/README.md create mode 100644 community/dashy/1.0.0/app-readme.md create mode 100644 community/dashy/1.0.0/charts/common-1.2.3.tgz create mode 100644 community/dashy/1.0.0/ci/basic-values.yaml create mode 100644 community/dashy/1.0.0/ci/extra-values.yaml create mode 100644 community/dashy/1.0.0/ci/hostNet-values.yaml create mode 100644 community/dashy/1.0.0/ci/https-values.yaml create mode 100644 community/dashy/1.0.0/ix_values.yaml create mode 100644 community/dashy/1.0.0/metadata.yaml create mode 100644 community/dashy/1.0.0/questions.yaml create mode 100644 community/dashy/1.0.0/templates/NOTES.txt create mode 100644 community/dashy/1.0.0/templates/_dashy.tpl create mode 100644 community/dashy/1.0.0/templates/_persistence.tpl create mode 100644 community/dashy/1.0.0/templates/_portal.tpl create mode 100644 community/dashy/1.0.0/templates/_service.tpl create mode 100644 community/dashy/1.0.0/templates/common.yaml create mode 100644 community/dashy/item.yaml diff --git a/community/dashy/1.0.0/Chart.lock b/community/dashy/1.0.0/Chart.lock new file mode 100644 index 0000000000..70cb9d4c9c --- /dev/null +++ b/community/dashy/1.0.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.2.3 +digest: sha256:e6ff49b06bf5d4d159e505ae6d153f36cd46170bb519caf90462cd5caebfd0fb +generated: "2023-11-13T17:15:19.01883842+02:00" diff --git a/community/dashy/1.0.0/Chart.yaml b/community/dashy/1.0.0/Chart.yaml new file mode 100644 index 0000000000..c2827c8adc --- /dev/null +++ b/community/dashy/1.0.0/Chart.yaml @@ -0,0 +1,25 @@ +name: dashy +description: Dashy is a self-hostable personal dashboard built for you. +annotations: + title: Dashy +type: application +version: 1.0.0 +apiVersion: v2 +appVersion: 2.1.1 +kubeVersion: '>=1.16.0-0' +maintainers: + - name: truenas + url: https://www.truenas.com/ + email: dev@ixsystems.com +dependencies: + - name: common + repository: file://../../../common + version: 1.2.3 +home: https://dashy.to/ +icon: https://media.sys.truenas.net/apps/dashy/icons/icon.png +sources: + - https://dashy.to/ + - https://github.com/truenas/charts/tree/master/library/ix-dev/community/dashy + - https://github.com/lissy93/dashy +keywords: + - dashboard diff --git a/community/dashy/1.0.0/README.md b/community/dashy/1.0.0/README.md new file mode 100644 index 0000000000..1e8bb21a1e --- /dev/null +++ b/community/dashy/1.0.0/README.md @@ -0,0 +1,3 @@ +# Dashy + +[Dashy](https://dashy.to/) is a self-hostable personal dashboard built for you. diff --git a/community/dashy/1.0.0/app-readme.md b/community/dashy/1.0.0/app-readme.md new file mode 100644 index 0000000000..1e8bb21a1e --- /dev/null +++ b/community/dashy/1.0.0/app-readme.md @@ -0,0 +1,3 @@ +# Dashy + +[Dashy](https://dashy.to/) is a self-hostable personal dashboard built for you. diff --git a/community/dashy/1.0.0/charts/common-1.2.3.tgz b/community/dashy/1.0.0/charts/common-1.2.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..397a4ae384d843ce3880f2d115c5aa1c598a252c GIT binary patch literal 63004 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

2p+!kelOy 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 literal 0 HcmV?d00001 diff --git a/community/dashy/1.0.0/ci/basic-values.yaml b/community/dashy/1.0.0/ci/basic-values.yaml new file mode 100644 index 0000000000..cdae232b3f --- /dev/null +++ b/community/dashy/1.0.0/ci/basic-values.yaml @@ -0,0 +1,6 @@ +dashyNetwork: + webPort: 31000 + +dashyStorage: + data: + type: pvc diff --git a/community/dashy/1.0.0/ci/extra-values.yaml b/community/dashy/1.0.0/ci/extra-values.yaml new file mode 100644 index 0000000000..3dd06507c1 --- /dev/null +++ b/community/dashy/1.0.0/ci/extra-values.yaml @@ -0,0 +1,11 @@ +dashyNetwork: + webPort: 31000 + +dashyStorage: + data: + type: pvc + additionalStorages: + - type: pvc + mountPath: /data1 + - type: pvc + mountPath: /data2 diff --git a/community/dashy/1.0.0/ci/hostNet-values.yaml b/community/dashy/1.0.0/ci/hostNet-values.yaml new file mode 100644 index 0000000000..de8dc1c577 --- /dev/null +++ b/community/dashy/1.0.0/ci/hostNet-values.yaml @@ -0,0 +1,7 @@ +dashyNetwork: + webPort: 31000 + hostNetwork: true + +dashyStorage: + data: + type: pvc diff --git a/community/dashy/1.0.0/ci/https-values.yaml b/community/dashy/1.0.0/ci/https-values.yaml new file mode 100644 index 0000000000..0dba31c54d --- /dev/null +++ b/community/dashy/1.0.0/ci/https-values.yaml @@ -0,0 +1,93 @@ +dashyNetwork: + certificateID: 1 + webPort: 31000 + +dashyStorage: + data: + type: pvc + +ixCertificates: + "1": + certificate: | + -----BEGIN CERTIFICATE----- + MIIEdjCCA16gAwIBAgIDYFMYMA0GCSqGSIb3DQEBCwUAMGwxDDAKBgNVBAMMA2Fz + ZDELMAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxCzAJBgNVBAcMAmFmMQ0wCwYD + VQQKDARhc2RmMQwwCgYDVQQLDANhc2QxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w + HhcNMjEwODMwMjMyMzU0WhcNMjMxMjAzMjMyMzU0WjBuMQswCQYDVQQDDAJhZDEL + MAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxDTALBgNVBAcMBGFzZGYxDTALBgNV + BAoMBGFkc2YxDTALBgNVBAsMBGFzZGYxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w + ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7+1xOHRQyOnQTHFcrdasX + Zl0gzutVlA890a1wiQpdD5dOtCLo7+eqVYjqVKo9W8RUIArXWmBu/AbkH7oVFWC1 + P973W1+ArF5sA70f7BZgqRKJTIisuIFIlRETgfnP2pfQmHRZtGaIJRZI4vQCdYgW + 2g0KOvvNcZJCVq1OrhKiNiY1bWCp66DGg0ic6OEkZFHTm745zUNQaf2dNgsxKU0H + PGjVLJI//yrRFAOSBUqgD4c50krnMF7fU/Fqh+UyOu8t6Y/HsySh3urB+Zie331t + AzV6QV39KKxRflNx/yuWrtIEslGTm+xHKoCYJEk/nZ3mX8Y5hG6wWAb7A/FuDVg3 + AgMBAAGjggEdMIIBGTAnBgNVHREEIDAehwTAqAADhwTAqAAFhwTAqAC2hwTAqACB + hwTAqACSMB0GA1UdDgQWBBQ4G2ff4tgZl4vmo4xCfqmJhdqShzAMBgNVHRMBAf8E + AjAAMIGYBgNVHSMEgZAwgY2AFLlYf9L99nxJDcpCM/LT3V5hQ/a3oXCkbjBsMQww + CgYDVQQDDANhc2QxCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARhc2RmMQswCQYDVQQH + DAJhZjENMAsGA1UECgwEYXNkZjEMMAoGA1UECwwDYXNkMRYwFAYJKoZIhvcNAQkB + FgdhQGEuY29tggNgUxcwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwEwDgYDVR0PAQH/ + BAQDAgWgMA0GCSqGSIb3DQEBCwUAA4IBAQA6FpOInEHB5iVk3FP67GybJ29vHZTD + KQHbQgmg8s4L7qIsA1HQ+DMCbdylpA11x+t/eL/n48BvGw2FNXpN6uykhLHJjbKR + h8yITa2KeD3LjLYhScwIigXmTVYSP3km6s8jRL6UKT9zttnIHyXVpBDya6Q4WTMx + fmfC6O7t1PjQ5ZyVtzizIUP8ah9n4TKdXU4A3QIM6WsJXpHb+vqp1WDWJ7mKFtgj + x5TKv3wcPnktx0zMPfLb5BTSE9rc9djcBG0eIAsPT4FgiatCUChe7VhuMnqskxEz + MymJLoq8+mzucRwFkOkR2EIt1x+Irl2mJVMeBow63rVZfUQBD8h++LqB + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIEhDCCA2ygAwIBAgIDYFMXMA0GCSqGSIb3DQEBCwUAMGwxDDAKBgNVBAMMA2Fz + ZDELMAkGA1UEBhMCVVMxDTALBgNVBAgMBGFzZGYxCzAJBgNVBAcMAmFmMQ0wCwYD + VQQKDARhc2RmMQwwCgYDVQQLDANhc2QxFjAUBgkqhkiG9w0BCQEWB2FAYS5jb20w + HhcNMjEwODMwMjMyMDQ1WhcNMzEwODI4MjMyMDQ1WjBsMQwwCgYDVQQDDANhc2Qx + CzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARhc2RmMQswCQYDVQQHDAJhZjENMAsGA1UE + CgwEYXNkZjEMMAoGA1UECwwDYXNkMRYwFAYJKoZIhvcNAQkBFgdhQGEuY29tMIIB + IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq//c0hEEr83CS1pMgsHX50jt + 2MqIbcf63UUNJTiYpUUvUQSFJFc7m/dr+RTZvu97eDCnD5K2qkHHvTPaPZwY+Djf + iy7N641Sz6u/y3Yo3xxs1Aermsfedh48vusJpjbkT2XS44VjbkrpKcWDNVpp3Evd + M7oJotXeUsZ+imiyVCfr4YhoY5gbGh/r+KN9Wf9YKoUyfLLZGwdZkhtX2zIbidsL + Thqi9YTaUHttGinjiBBum234u/CfvKXsfG3yP2gvBGnlvZnM9ktv+lVffYNqlf7H + VmB1bKKk84HtzuW5X76SGAgOG8eHX4x5ZLI1WQUuoQOVRl1I0UCjBtbz8XhwvQID + AQABo4IBLTCCASkwLQYDVR0RBCYwJIcEwKgABYcEwKgAA4cEwKgAkocEwKgAtYcE + wKgAgYcEwKgAtjAdBgNVHQ4EFgQUuVh/0v32fEkNykIz8tPdXmFD9rcwDwYDVR0T + AQH/BAUwAwEB/zCBmAYDVR0jBIGQMIGNgBS5WH/S/fZ8SQ3KQjPy091eYUP2t6Fw + pG4wbDEMMAoGA1UEAwwDYXNkMQswCQYDVQQGEwJVUzENMAsGA1UECAwEYXNkZjEL + MAkGA1UEBwwCYWYxDTALBgNVBAoMBGFzZGYxDDAKBgNVBAsMA2FzZDEWMBQGCSqG + SIb3DQEJARYHYUBhLmNvbYIDYFMXMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF + BQcDAjAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAKEocOmVuWlr + zegtKYMe8NhHIkFY9oVn5ym6RHNOJpPH4QF8XYC3Z5+iC5yGh4P/jVe/4I4SF6Ql + PtofU0jNq5vzapt/y+m008eXqPQFmoUOvu+JavoRVcRx2LIP5AgBA1mF56CSREsX + TkuJAA9IUQ8EjnmAoAeKINuPaKxGDuU8BGCMqr/qd564MKNf9XYL+Fb2rlkA0O2d + 2No34DQLgqSmST/LAvPM7Cbp6knYgnKmGr1nETCXasg1cueHLnWWTvps2HiPp2D/ + +Fq0uqcZLu4Mdo0CPs4e5sHRyldEnRSKh0DVLprq9zr/GMipmPLJUsT5Jed3sj0w + M7Y3vwxshpo= + -----END CERTIFICATE----- + privatekey: | + -----BEGIN PRIVATE KEY----- + MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC7+1xOHRQyOnQT + HFcrdasXZl0gzutVlA890a1wiQpdD5dOtCLo7+eqVYjqVKo9W8RUIArXWmBu/Abk + H7oVFWC1P973W1+ArF5sA70f7BZgqRKJTIisuIFIlRETgfnP2pfQmHRZtGaIJRZI + 4vQCdYgW2g0KOvvNcZJCVq1OrhKiNiY1bWCp66DGg0ic6OEkZFHTm745zUNQaf2d + NgsxKU0HPGjVLJI//yrRFAOSBUqgD4c50krnMF7fU/Fqh+UyOu8t6Y/HsySh3urB + +Zie331tAzV6QV39KKxRflNx/yuWrtIEslGTm+xHKoCYJEk/nZ3mX8Y5hG6wWAb7 + A/FuDVg3AgMBAAECggEAapt30rj9DitGTtxAt13pJMEhyYxvvD3WkvmJwguF/Bbu + eW0Ba1c668fMeRCA54FWi1sMqusPS4HUqqUvk+tmyAOsAF4qgD/A4MMSC7uJSVI5 + N/JWhJWyhCY94/FPakiO1nbPbVw41bcqtzU2qvparpME2CtxSCbDiqm7aaag3Kqe + EF0fGSUdZ+TYl9JM05+eIyiX+UY19Fg0OjTHMn8nGpxcNTfDBdQ68TKvdo/dtIKL + PLKzJUNNdM8odC4CvQtfGMqaslwZwXkiOl5VJcW21ncj/Y0ngEMKeD/i65ZoqGdR + 0FKCQYEAGtM2FvJcZQ92Wsw7yj2bK2MSegVUyLK32QKBgQDe8syVCepPzRsfjfxA + 6TZlWcGuTZLhwIx97Ktw3VcQ1f4rLoEYlv0xC2VWBORpzIsJo4I/OLmgp8a+Ga8z + FkVRnq90dV3t4NP9uJlHgcODHnOardC2UUka4olBSCG6zmK4Jxi34lOxhGRkshOo + L4IBeOIB5g+ZrEEXkzfYJHESRQKBgQDX2YhFhGIrT8BAnC5BbXbhm8h6Bhjz8DYL + d+qhVJjef7L/aJxViU0hX9Ba2O8CLK3FZeREFE3hJPiJ4TZSlN4evxs5p+bbNDcA + 0mhRI/o3X4ac6IxdRebyYnCOB/Cu94/MzppcZcotlCekKNike7eorCcX4Qavm7Pu + MUuQ+ifmSwKBgEnchoqZzlbBzMqXb4rRuIO7SL9GU/MWp3TQg7vQmJerTZlgvsQ2 + wYsOC3SECmhCq4117iCj2luvOdihCboTFsQDnn0mpQe6BIF6Ns3J38wAuqv0CcFd + DKsrge1uyD3rQilgSoAhKzkUc24o0PpXQurZ8YZPgbuXpbj5vPaOnCdBAoGACYc7 + wb3XS4wos3FxhUfcwJbM4b4VKeeHqzfu7pI6cU/3ydiHVitKcVe2bdw3qMPqI9Wc + nvi6e17Tbdq4OCsEJx1OiVwFD9YdO3cOTc6lw/3+hjypvZBRYo+/4jUthbu96E+S + dtOzehGZMmDvN0uSzupSi3ZOgkAAUFpyuIKickMCgYAId0PCRjonO2thn/R0rZ7P + //L852uyzYhXKw5/fjFGhQ6LbaLgIRFaCZ0L2809u0HFnNvJjHv4AKP6j+vFQYYY + qQ+66XnfsA9G/bu4MDS9AX83iahD9IdLXQAy8I19prAbpVumKegPbMnNYNB/TYEc + 3G15AKCXo7jjOUtHY01DCQ== + -----END PRIVATE KEY----- diff --git a/community/dashy/1.0.0/ix_values.yaml b/community/dashy/1.0.0/ix_values.yaml new file mode 100644 index 0000000000..01a9d4cf4d --- /dev/null +++ b/community/dashy/1.0.0/ix_values.yaml @@ -0,0 +1,24 @@ +image: + repository: lissy93/dashy + pullPolicy: IfNotPresent + tag: 2.1.1 + +resources: + limits: + cpu: 4000m + memory: 8Gi + +dashyConfig: + additionalEnvs: [] + +dashyNetwork: + webPort: 31003 + certificateID: + hostNetwork: false + +dashyStorage: + data: + type: ixVolume + ixVolumeConfig: + datasetName: data + additionalStorages: [] diff --git a/community/dashy/1.0.0/metadata.yaml b/community/dashy/1.0.0/metadata.yaml new file mode 100644 index 0000000000..23542a150e --- /dev/null +++ b/community/dashy/1.0.0/metadata.yaml @@ -0,0 +1,8 @@ +runAsContext: + - userName: root + groupName: root + gid: 0 + uid: 0 + description: Dashy runs as a root user. +capabilities: [] +hostMounts: [] diff --git a/community/dashy/1.0.0/questions.yaml b/community/dashy/1.0.0/questions.yaml new file mode 100644 index 0000000000..9fbe1015c5 --- /dev/null +++ b/community/dashy/1.0.0/questions.yaml @@ -0,0 +1,352 @@ +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: 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/community/dashy/1.0.0/templates/NOTES.txt b/community/dashy/1.0.0/templates/NOTES.txt new file mode 100644 index 0000000000..ba4e01146c --- /dev/null +++ b/community/dashy/1.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{ include "ix.v1.common.lib.chart.notes" $ }} diff --git a/community/dashy/1.0.0/templates/_dashy.tpl b/community/dashy/1.0.0/templates/_dashy.tpl new file mode 100644 index 0000000000..27abb4cdac --- /dev/null +++ b/community/dashy/1.0.0/templates/_dashy.tpl @@ -0,0 +1,75 @@ +{{- define "dashy.workload" -}} +workload: + dashy: + enabled: true + primary: true + type: Deployment + podSpec: + hostNetwork: {{ .Values.dashyNetwork.hostNetwork }} + containers: + dashy: + enabled: true + primary: true + imageSelector: image + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + env: + {{- $protocol := "http" -}} + {{- if .Values.dashyNetwork.certificateID }} + {{- $protocol = "https" }} + SSL_PRIV_KEY_PATH: /cert/tls.key + SSL_PUB_KEY_PATH: /cert/tls.crt + SSL_PORT: {{ .Values.dashyNetwork.webPort }} + {{- else }} + PORT: {{ .Values.dashyNetwork.webPort }} + {{- end }} + NODE_ENV: production + IS_DOCKER: "true" + {{ with .Values.dashyConfig.additionalEnvs }} + envList: + {{ range $env := . }} + - name: {{ $env.name }} + value: {{ $env.value }} + {{ end }} + {{ end }} + probes: + liveness: + enabled: true + type: {{ $protocol }} + port: {{ .Values.dashyNetwork.webPort }} + path: / + readiness: + enabled: true + type: {{ $protocol }} + port: {{ .Values.dashyNetwork.webPort }} + path: / + startup: + enabled: true + type: {{ $protocol }} + port: {{ .Values.dashyNetwork.webPort }} + path: / + initContainers: + init-config: + enabled: true + type: init + imageSelector: image + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + command: + - /bin/sh + args: + - -c + - | + if [ -z "$(ls -A /data)" ]; then + echo "App directory is empty, copying default files" + cp -r /app/public/* /data/ + exit 0 + fi + + echo "App directory is not empty, skipping copy" + exit 0 +{{- end -}} diff --git a/community/dashy/1.0.0/templates/_persistence.tpl b/community/dashy/1.0.0/templates/_persistence.tpl new file mode 100644 index 0000000000..fed45b1e9e --- /dev/null +++ b/community/dashy/1.0.0/templates/_persistence.tpl @@ -0,0 +1,55 @@ +{{- define "dashy.persistence" -}} +persistence: + config: + enabled: true + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.dashyStorage.data) | nindent 4 }} + targetSelector: + dashy: + dashy: + mountPath: /app/public + # Mount the same dir to different path on init container + # So we can check if `/data` is empty and copy the default + # from /app/public + init-config: + mountPath: /data + tmp: + enabled: true + type: emptyDir + targetSelector: + dashy: + dashy: + mountPath: /tmp + + {{- range $idx, $storage := .Values.dashyStorage.additionalStorages }} + {{ printf "dashy-%v:" (int $idx) }} + enabled: true + {{- include "ix.v1.common.app.storageOptions" (dict "storage" $storage) | nindent 4 }} + targetSelector: + dashy: + dashy: + mountPath: {{ $storage.mountPath }} + {{- end -}} + + {{- if .Values.dashyNetwork.certificateID }} + cert: + enabled: true + type: secret + objectName: dashy-cert + defaultMode: "0600" + items: + - key: tls.key + path: tls.key + - key: tls.crt + path: tls.crt + targetSelector: + dashy: + dashy: + mountPath: /cert + readOnly: true + +scaleCertificate: + dashy-cert: + enabled: true + id: {{ .Values.dashyNetwork.certificateID }} + {{- end -}} +{{- end -}} diff --git a/community/dashy/1.0.0/templates/_portal.tpl b/community/dashy/1.0.0/templates/_portal.tpl new file mode 100644 index 0000000000..ac6bafaf49 --- /dev/null +++ b/community/dashy/1.0.0/templates/_portal.tpl @@ -0,0 +1,16 @@ +{{- define "dashy.portal" -}} +{{- $protocol := "http" -}} +{{- if .Values.dashyNetwork.certificateID -}} + {{- $protocol = "https" -}} +{{- end }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal +data: + path: "/" + port: {{ .Values.dashyNetwork.webPort | quote }} + protocol: {{ $protocol }} + host: $node_ip +{{- end -}} diff --git a/community/dashy/1.0.0/templates/_service.tpl b/community/dashy/1.0.0/templates/_service.tpl new file mode 100644 index 0000000000..c0d3c7f15e --- /dev/null +++ b/community/dashy/1.0.0/templates/_service.tpl @@ -0,0 +1,15 @@ +{{- define "dashy.service" -}} +service: + dashy: + enabled: true + primary: true + type: NodePort + targetSelector: dashy + ports: + webui: + enabled: true + primary: true + port: {{ .Values.dashyNetwork.webPort }} + nodePort: {{ .Values.dashyNetwork.webPort }} + targetSelector: dashy +{{- end -}} diff --git a/community/dashy/1.0.0/templates/common.yaml b/community/dashy/1.0.0/templates/common.yaml new file mode 100644 index 0000000000..5d246767c2 --- /dev/null +++ b/community/dashy/1.0.0/templates/common.yaml @@ -0,0 +1,11 @@ +{{- include "ix.v1.common.loader.init" . -}} + +{{/* Merge the templates with Values */}} +{{- $_ := mustMergeOverwrite .Values (include "dashy.workload" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "dashy.service" $ | fromYaml) -}} +{{- $_ := mustMergeOverwrite .Values (include "dashy.persistence" $ | fromYaml) -}} + +{{/* Create the configmap for portal manually*/}} +{{- include "dashy.portal" $ -}} + +{{- include "ix.v1.common.loader.apply" . -}} diff --git a/community/dashy/item.yaml b/community/dashy/item.yaml new file mode 100644 index 0000000000..925fa47cca --- /dev/null +++ b/community/dashy/item.yaml @@ -0,0 +1,8 @@ +icon_url: https://media.sys.truenas.net/apps/dashy/icons/icon.png +categories: + - productivity +screenshots: + - https://media.sys.truenas.net/apps/dashy/screenshots/screenshot1.gif + - https://media.sys.truenas.net/apps/dashy/screenshots/screenshot2.gif +tags: + - dashboard