From 90bb3970870faab243ce5631fccb6f3946cccbfb Mon Sep 17 00:00:00 2001 From: sonicaj Date: Wed, 5 Apr 2023 14:57:38 +0000 Subject: [PATCH] Update catalog information --- catalog.json | 25 +- enterprise/minio/1.0.0/Chart.lock | 6 + enterprise/minio/1.0.0/Chart.yaml | 25 ++ enterprise/minio/1.0.0/README.md | 16 + enterprise/minio/1.0.0/app-readme.md | 16 + .../minio/1.0.0/charts/common-1.0.3.tgz | Bin 0 -> 54263 bytes .../minio/1.0.0/ci/snmd-https-values.yaml | 126 +++++++ .../1.0.0/ci/snmd-logsearch-https-values.yaml | 139 +++++++ .../minio/1.0.0/ci/snmd-logsearch-values.yaml | 43 +++ enterprise/minio/1.0.0/ci/snmd-values.yaml | 30 ++ .../minio/1.0.0/ci/snsd-https-values.yaml | 106 ++++++ .../1.0.0/ci/snsd-logsearch-https-values.yaml | 118 ++++++ .../minio/1.0.0/ci/snsd-logsearch-values.yaml | 28 ++ enterprise/minio/1.0.0/ci/snsd-values.yaml | 19 + enterprise/minio/1.0.0/ix_values.yaml | 50 +++ enterprise/minio/1.0.0/questions.yaml | 351 ++++++++++++++++++ enterprise/minio/1.0.0/templates/NOTES.txt | 1 + .../minio/1.0.0/templates/_configuration.tpl | 61 +++ enterprise/minio/1.0.0/templates/_helpers.tpl | 91 +++++ .../minio/1.0.0/templates/_logsearch.tpl | 51 +++ enterprise/minio/1.0.0/templates/_minio.tpl | 143 +++++++ enterprise/minio/1.0.0/templates/_portal.tpl | 15 + .../minio/1.0.0/templates/_postgres.tpl | 48 +++ enterprise/minio/1.0.0/templates/common.yaml | 15 + enterprise/minio/item.yaml | 5 + 25 files changed, 1526 insertions(+), 2 deletions(-) create mode 100644 enterprise/minio/1.0.0/Chart.lock create mode 100644 enterprise/minio/1.0.0/Chart.yaml create mode 100644 enterprise/minio/1.0.0/README.md create mode 100644 enterprise/minio/1.0.0/app-readme.md create mode 100644 enterprise/minio/1.0.0/charts/common-1.0.3.tgz create mode 100644 enterprise/minio/1.0.0/ci/snmd-https-values.yaml create mode 100644 enterprise/minio/1.0.0/ci/snmd-logsearch-https-values.yaml create mode 100644 enterprise/minio/1.0.0/ci/snmd-logsearch-values.yaml create mode 100644 enterprise/minio/1.0.0/ci/snmd-values.yaml create mode 100644 enterprise/minio/1.0.0/ci/snsd-https-values.yaml create mode 100644 enterprise/minio/1.0.0/ci/snsd-logsearch-https-values.yaml create mode 100644 enterprise/minio/1.0.0/ci/snsd-logsearch-values.yaml create mode 100644 enterprise/minio/1.0.0/ci/snsd-values.yaml create mode 100644 enterprise/minio/1.0.0/ix_values.yaml create mode 100644 enterprise/minio/1.0.0/questions.yaml create mode 100644 enterprise/minio/1.0.0/templates/NOTES.txt create mode 100644 enterprise/minio/1.0.0/templates/_configuration.tpl create mode 100644 enterprise/minio/1.0.0/templates/_helpers.tpl create mode 100644 enterprise/minio/1.0.0/templates/_logsearch.tpl create mode 100644 enterprise/minio/1.0.0/templates/_minio.tpl create mode 100644 enterprise/minio/1.0.0/templates/_portal.tpl create mode 100644 enterprise/minio/1.0.0/templates/_postgres.tpl create mode 100644 enterprise/minio/1.0.0/templates/common.yaml create mode 100644 enterprise/minio/item.yaml diff --git a/catalog.json b/catalog.json index bfafff7c0a..b7b9ecddab 100644 --- a/catalog.json +++ b/catalog.json @@ -266,7 +266,28 @@ } }, "test": {}, - "enterprise": {}, + "enterprise": { + "minio": { + "app_readme": "

MinIO

\n

MinIO is a High Performance Object Storage released under Apache License v2.0.\nIt is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure\nfor machine learning, analytics and application data workloads.

\n
\n

During the installation process, a container will be launched with root privileges. This is required\nin order to apply the correct permissions to the MinIO data directory. Afterward, the MinIO container\nwill run as a non-root user (568).\nSame applies to the postgres container. This will run afterwards as a non-root user (999).\nOn each upgrade, a container will be launched with root privileges in order to apply the correct\npermissions to the postgres backups directory. Container that performs the backup will run as a non-root user (999) afterwards.\nKeep in mind the permissions on the backup directory will be changed to 999:999 on every update.\nBut will only be changed once for the MinIO and postgres data directories.

\n
\n

When Multi Mode is enabled and entries contain :// (url) will enable Host Networking. Regardless of the selection in the Networking section.

", + "categories": [ + "storage", + "object-storage", + "S3" + ], + "description": "High Performance, Kubernetes Native Object Storage", + "healthy": true, + "healthy_error": null, + "location": "/__w/charts/charts/enterprise/minio", + "latest_version": "1.0.0", + "latest_app_version": "2023-02-17", + "latest_human_version": "2023-02-17_1.0.0", + "last_update": null, + "name": "minio", + "recommended": false, + "title": "MinIO", + "icon_url": "https://min.io/resources/img/logo/MINIO_wordmark.png" + } + }, "community": { "vaultwarden": { "app_readme": "

Vaultwarden

\n

Vaultwarden Alternative implementation of the Bitwarden server API written in Rust and compatible with upstream Bitwarden clients

\n
\n

During the installation process, a container will be launched with root privileges. This is required\nin order to apply the correct permissions to the Vaultwarden data directory. Afterward, the Vaultwarden container\nwill run as a non-root user (default 568).\nSame applies to the postgres container. This will run afterwards as a non-root user (999).\nOn each upgrade, a container will be launched with root privileges in order to apply the correct\npermissions to the postgres backups directory. Container that performs the backup will run as a non-root user (999) afterwards.\nKeep in mind the permissions on the backup directory will be changed to 999:999 on every update.\nBut will only be changed once for the Vaultwarden and postgres data directories.

\n
\n

While the option to use Rocket for TLS is there, it is not\nrecommended.\nInstead, use a reverse proxy to handle TLS termination.

\n

Using HTTPS is required for the most of the features to work (correctly).

", @@ -322,7 +343,7 @@ "latest_version": "1.0.1", "latest_app_version": "4.5.2", "latest_human_version": "4.5.2_1.0.1", - "last_update": "2023-04-04 06:53:15", + "last_update": "2023-04-04 14:36:31", "name": "qbittorrent", "recommended": false, "title": "qBittorrent", diff --git a/enterprise/minio/1.0.0/Chart.lock b/enterprise/minio/1.0.0/Chart.lock new file mode 100644 index 0000000000..26a78f601c --- /dev/null +++ b/enterprise/minio/1.0.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.0.3 +digest: sha256:1a090020cfa582aff29906320874ffe9b543fcc6c2423c281f434514f2653e02 +generated: "2023-04-05T14:29:53.295151027Z" diff --git a/enterprise/minio/1.0.0/Chart.yaml b/enterprise/minio/1.0.0/Chart.yaml new file mode 100644 index 0000000000..aa41c36158 --- /dev/null +++ b/enterprise/minio/1.0.0/Chart.yaml @@ -0,0 +1,25 @@ +name: minio +description: High Performance, Kubernetes Native Object Storage +annotations: + title: MinIO +type: application +version: 1.0.0 +apiVersion: v2 +appVersion: '2023-02-17' +kubeVersion: '>=1.16.0-0' +maintainers: + - name: truenas + url: https://www.truenas.com/ +dependencies: + - name: common + repository: file://../../../common + version: 1.0.3 +home: https://min.io +icon: https://min.io/resources/img/logo/MINIO_wordmark.png +sources: + - https://github.com/minio/minio + - https://github.com/truenas/charts/tree/master/enterprise/minio +keywords: + - storage + - object-storage + - S3 diff --git a/enterprise/minio/1.0.0/README.md b/enterprise/minio/1.0.0/README.md new file mode 100644 index 0000000000..f4c20c7e50 --- /dev/null +++ b/enterprise/minio/1.0.0/README.md @@ -0,0 +1,16 @@ +# MinIO + +[MinIO](https://min.io) is a High Performance Object Storage released under Apache License v2.0. +It is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure +for machine learning, analytics and application data workloads. + +> During the installation process, a container will be launched with **root** privileges. This is required +> in order to apply the correct permissions to the MinIO data directory. Afterward, the `MinIO` container +> will run as a **non**-root user (`568`). +> Same applies to the `postgres` container. This will run afterwards as a **non**-root user (`999`). +> On each upgrade, a container will be launched with **root** privileges in order to apply the correct +> permissions to the `postgres` backups directory. Container that performs the backup will run as a **non**-root user (`999`) afterwards. +> Keep in mind the permissions on the backup directory will be changed to `999:999` on **every** update. +> But will only be changed once for the `MinIO` and `postgres` data directories. + +When Multi Mode is enabled and entries contain `://` (url) will enable Host Networking. Regardless of the selection in the `Networking` section. diff --git a/enterprise/minio/1.0.0/app-readme.md b/enterprise/minio/1.0.0/app-readme.md new file mode 100644 index 0000000000..f4c20c7e50 --- /dev/null +++ b/enterprise/minio/1.0.0/app-readme.md @@ -0,0 +1,16 @@ +# MinIO + +[MinIO](https://min.io) is a High Performance Object Storage released under Apache License v2.0. +It is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure +for machine learning, analytics and application data workloads. + +> During the installation process, a container will be launched with **root** privileges. This is required +> in order to apply the correct permissions to the MinIO data directory. Afterward, the `MinIO` container +> will run as a **non**-root user (`568`). +> Same applies to the `postgres` container. This will run afterwards as a **non**-root user (`999`). +> On each upgrade, a container will be launched with **root** privileges in order to apply the correct +> permissions to the `postgres` backups directory. Container that performs the backup will run as a **non**-root user (`999`) afterwards. +> Keep in mind the permissions on the backup directory will be changed to `999:999` on **every** update. +> But will only be changed once for the `MinIO` and `postgres` data directories. + +When Multi Mode is enabled and entries contain `://` (url) will enable Host Networking. Regardless of the selection in the `Networking` section. diff --git a/enterprise/minio/1.0.0/charts/common-1.0.3.tgz b/enterprise/minio/1.0.0/charts/common-1.0.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cb802e309204b05b5e22f5e7c45d4a8fe30bdb7c GIT binary patch literal 54263 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

h0ND1Wv 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 literal 0 HcmV?d00001 diff --git a/enterprise/minio/1.0.0/ci/snmd-https-values.yaml b/enterprise/minio/1.0.0/ci/snmd-https-values.yaml new file mode 100644 index 0000000000..05c5dac5a5 --- /dev/null +++ b/enterprise/minio/1.0.0/ci/snmd-https-values.yaml @@ -0,0 +1,126 @@ +# When inside the versioned minio folder, run: +# helm dependency update +# helm template -f ix_values.yaml -f ci/basic-https-values.yaml . + +# Always use a unique hostPath for each test +# Release.Namespace is guaranteed to be a unique value +# in the test environment (ct-install) + +minioCreds: + rootUser: minio_test + rootPass: minio_test + +minioRunAs: + user: 1000 + group: 1000 + +minioNetwork: + certificateID: 1 + +minioMultiMode: + - /data{1...4} + +minioStorage: + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data1 + datasetName: "" + mountPath: /data1 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data2 + datasetName: "" + mountPath: /data2 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data3 + datasetName: "" + mountPath: /data3 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data4 + datasetName: "" + mountPath: /data4 + +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/enterprise/minio/1.0.0/ci/snmd-logsearch-https-values.yaml b/enterprise/minio/1.0.0/ci/snmd-logsearch-https-values.yaml new file mode 100644 index 0000000000..048c0cb431 --- /dev/null +++ b/enterprise/minio/1.0.0/ci/snmd-logsearch-https-values.yaml @@ -0,0 +1,139 @@ +# When inside the versioned minio folder, run: +# helm dependency update +# helm template -f ix_values.yaml -f ci/logsearch-https-values.yaml . + +# Always use a unique hostPath for each test +# Release.Namespace is guaranteed to be a unique value +# in the test environment (ct-install) + +minioCreds: + rootUser: minio_test + rootPass: minio_test + +minioNetwork: + certificateID: 1 + +minioRunAs: + user: 1000 + group: 1000 + +minioMultiMode: + - /data{1...4} + +minioStorage: + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data1 + datasetName: "" + mountPath: /data1 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data2 + datasetName: "" + mountPath: /data2 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data3 + datasetName: "" + mountPath: /data3 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data4 + datasetName: "" + mountPath: /data4 + +minioLogging: + logsearch: + enabled: true + diskCapacityGB: 5 + pgData: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/postgres_data + datasetName: "" + pgBackup: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/postgres_backup + datasetName: "" + +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/enterprise/minio/1.0.0/ci/snmd-logsearch-values.yaml b/enterprise/minio/1.0.0/ci/snmd-logsearch-values.yaml new file mode 100644 index 0000000000..3c13baae4e --- /dev/null +++ b/enterprise/minio/1.0.0/ci/snmd-logsearch-values.yaml @@ -0,0 +1,43 @@ +# When inside the versioned minio folder, run: +# helm dependency update +# helm template -f ix_values.yaml -f ci/logsearch-values.yaml . + +# Always use a unique hostPath for each test + +minioCreds: + rootUser: minio_test + rootPass: minio_test + +minioMultiMode: + - /data{1...4} + +minioStorage: + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data1 + datasetName: "" + mountPath: /data1 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data2 + datasetName: "" + mountPath: /data2 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data3 + datasetName: "" + mountPath: /data3 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data4 + datasetName: "" + mountPath: /data4 + +minioLogging: + logsearch: + enabled: true + diskCapacityGB: 5 + pgData: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/postgres_data + datasetName: "" + pgBackup: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/postgres_backup + datasetName: "" diff --git a/enterprise/minio/1.0.0/ci/snmd-values.yaml b/enterprise/minio/1.0.0/ci/snmd-values.yaml new file mode 100644 index 0000000000..481dd5aaf6 --- /dev/null +++ b/enterprise/minio/1.0.0/ci/snmd-values.yaml @@ -0,0 +1,30 @@ +# When inside the versioned minio folder, run: +# helm dependency update +# helm template -f ix_values.yaml -f ci/basic-values.yaml . + +# Always use a unique hostPath for each test + +minioCreds: + rootUser: minio_test + rootPass: minio_test + +minioMultiMode: + - /data{1...4} + +minioStorage: + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data1 + datasetName: "" + mountPath: /data1 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data2 + datasetName: "" + mountPath: /data2 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data3 + datasetName: "" + mountPath: /data3 + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data4 + datasetName: "" + mountPath: /data4 diff --git a/enterprise/minio/1.0.0/ci/snsd-https-values.yaml b/enterprise/minio/1.0.0/ci/snsd-https-values.yaml new file mode 100644 index 0000000000..8d9f00b1a1 --- /dev/null +++ b/enterprise/minio/1.0.0/ci/snsd-https-values.yaml @@ -0,0 +1,106 @@ +# When inside the versioned minio folder, run: +# helm dependency update +# helm template -f ix_values.yaml -f ci/basic-https-values.yaml . + +# Always use a unique hostPath for each test + + +minioCreds: + rootUser: minio_test + rootPass: minio_test + +minioNetwork: + certificateID: 1 + +minioStorage: + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data1 + datasetName: "" + mountPath: /data1 + +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/enterprise/minio/1.0.0/ci/snsd-logsearch-https-values.yaml b/enterprise/minio/1.0.0/ci/snsd-logsearch-https-values.yaml new file mode 100644 index 0000000000..f882382a04 --- /dev/null +++ b/enterprise/minio/1.0.0/ci/snsd-logsearch-https-values.yaml @@ -0,0 +1,118 @@ +# When inside the versioned minio folder, run: +# helm dependency update +# helm template -f ix_values.yaml -f ci/logsearch-https-values.yaml . + +# Always use a unique hostPath for each test + +minioCreds: + rootUser: minio_test + rootPass: minio_test + +minioNetwork: + certificateID: 1 + +minioStorage: + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data1 + datasetName: "" + mountPath: /data1 + +minioLogging: + logsearch: + enabled: true + diskCapacityGB: 5 + pgData: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/postgres_data + datasetName: "" + pgBackup: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/postgres_backup + datasetName: "" + +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/enterprise/minio/1.0.0/ci/snsd-logsearch-values.yaml b/enterprise/minio/1.0.0/ci/snsd-logsearch-values.yaml new file mode 100644 index 0000000000..cde962dfb5 --- /dev/null +++ b/enterprise/minio/1.0.0/ci/snsd-logsearch-values.yaml @@ -0,0 +1,28 @@ +# When inside the versioned minio folder, run: +# helm dependency update +# helm template -f ix_values.yaml -f ci/logsearch-values.yaml . + +# Always use a unique hostPath for each test + +minioCreds: + rootUser: minio_test + rootPass: minio_test + +minioStorage: + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data1 + datasetName: "" + mountPath: /data1 + +minioLogging: + logsearch: + enabled: true + diskCapacityGB: 5 + pgData: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/postgres_data + datasetName: "" + pgBackup: + type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/postgres_backup + datasetName: "" diff --git a/enterprise/minio/1.0.0/ci/snsd-values.yaml b/enterprise/minio/1.0.0/ci/snsd-values.yaml new file mode 100644 index 0000000000..6ce309e1cd --- /dev/null +++ b/enterprise/minio/1.0.0/ci/snsd-values.yaml @@ -0,0 +1,19 @@ +# When inside the versioned minio folder, run: +# helm dependency update +# helm template -f ix_values.yaml -f ci/basic-values.yaml . + +# Always use a unique hostPath for each test + +minioCreds: + rootUser: minio_test + rootPass: minio_test + +minioRunAs: + user: 1000 + group: 1000 + +minioStorage: + - type: hostPath + hostPath: /mnt/{{ .Release.Namespace }}/data1 + datasetName: "" + mountPath: /data1 diff --git a/enterprise/minio/1.0.0/ix_values.yaml b/enterprise/minio/1.0.0/ix_values.yaml new file mode 100644 index 0000000000..25df34fc4e --- /dev/null +++ b/enterprise/minio/1.0.0/ix_values.yaml @@ -0,0 +1,50 @@ +image: + repository: minio/minio + tag: RELEASE.2023-02-27T18-10-45Z + pullPolicy: IfNotPresent + +logsearchImage: + repository: minio/operator + tag: v4.5.8 + pullPolicy: IfNotPresent + +resources: + limits: + cpu: 4000m + memory: 8Gi + +minioCreds: + rootUser: "" + rootPass: "" + +minioRunAs: + user: 568 + group: 568 + +minioNetwork: + apiPort: 30000 + webPort: 30001 + certificateID: "" + hostNetwork: false + serverUrl: "" + consoleUrl: "" + +minioMultiMode: [] + +minioStorage: [] + +minioLogging: + anonymous: false + quiet: false + + logsearch: + enabled: false + diskCapacityGB: 5 + pgData: + type: ixVolume + hostPath: "" + datasetName: postgres-data + pgBackup: + type: ixVolume + hostPath: "" + datasetName: postgres-backup diff --git a/enterprise/minio/1.0.0/questions.yaml b/enterprise/minio/1.0.0/questions.yaml new file mode 100644 index 0000000000..ebaf6ee4df --- /dev/null +++ b/enterprise/minio/1.0.0/questions.yaml @@ -0,0 +1,351 @@ +groups: + - name: MinIO Credentials + description: Configure Credentials for MinIO + - name: User and Group Configuration + description: Configure User and Group for MinIO + - name: Network Configuration + description: Configure Network for MinIO + - name: Storage Configuration + description: Configure Storage for MinIO + - name: MultiMode Configuration + description: Configure MultiMode for MinIO + - name: MinIO Logging + description: Configure Logging for MinIO + - name: Resources Configuration + description: Configure Resources for MinIO + +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: minioCreds + label: "" + group: MinIO Credentials + schema: + type: dict + attrs: + - variable: rootUser + label: Root User + description: The access key for the root user. + schema: + type: string + min_length: 5 + required: true + - variable: rootPass + label: Root Password + description: The secret key for the root user. + schema: + type: string + required: true + min_length: 8 + private: true + + - variable: minioRunAs + label: "" + group: User and Group Configuration + schema: + type: dict + attrs: + - variable: user + label: User ID + description: | + The user id that MinIO will run as.
+ Can't be changed after initial install. + schema: + type: int + min: 1 + default: 568 + immutable: true + required: true + - variable: group + label: Group ID + description: | + The group id that MinIO will run as.
+ Can't be changed after initial install. + schema: + type: int + min: 1 + default: 568 + immutable: true + required: true + + - variable: minioNetwork + label: "" + group: Network Configuration + schema: + type: dict + attrs: + - variable: apiPort + label: API Port + description: The port for the MinIO API. + schema: + type: int + default: 30000 + min: 9000 + max: 65535 + required: true + - variable: webPort + label: Web Port + description: The port for the MinIO Web UI. + schema: + type: int + default: 30001 + min: 9000 + max: 65535 + required: true + - variable: hostNetwork + label: Host Network + description: | + Bind to the host network. It's recommended to keep this disabled.
+ schema: + type: boolean + default: false + - variable: certificateID + label: Certificate + description: The certificate to use for MinIO + schema: + type: int + "null": true + $ref: + - "definitions/certificate" + - variable: serverUrl + label: MinIO Server URL (API) + description: | + The URL that console will use to reach API
+ For example https;//minio1.example.com.

+ This field is optional. + schema: + type: string + - variable: consoleUrl + label: MinIO Browser Redirect URL + description: | + The URL that console will provide as a redirect URL
+ For example https;//console.example.com.

+ This field is optional. + schema: + type: string + + - variable: enableMultiMode + label: Enable Multi Mode (SNMD or MNMD) + group: MultiMode Configuration + description: | + For Single Node Multi Drive (SNMD), the entry will look like this:
+ Example Entry - /data{1...4}

+ For Multi Node Multi Drive (MNMD), the entry will look like this:
+ Example Entry - https://minio{1...3}.example.com:30000/data{1...4}

+ Note that each host must use the same port number and the same number of storage items.
+ In both cases /data{1..4} is the directories to be used for MinIO. + You have to add additional storage for each data entry. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: minioMultiMode + label: Multi Mode (SNMD or MNMD) + group: MultiMode Configuration + schema: + type: list + default: [] + items: + - variable: item + label: "" + schema: + type: string + required: true + + - variable: minioStorage + label: "" + group: Storage Configuration + schema: + type: list + default: [] + items: + - variable: item + label: Storage Item + schema: + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + immutable: true + required: true + default: ixVolume + enum: + - value: hostPath + description: Host Path + - value: ixVolume + description: ixVolume + - variable: mountPath + label: Mount Path + description: The path inside the container to mount the storage. + schema: + type: path + required: true + immutable: true + default: /data1 + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + required: true + immutable: true + default: "" + show_if: [["type", "=", "hostPath"]] + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + immutable: true + # Can we make this dynamic, so we can hide it?! + default: data1 + $ref: + - "normalize/ixVolume" + + - variable: minioLogging + label: "" + group: MinIO Logging + schema: + type: dict + attrs: + - variable: anonymous + label: Anonymous + description: Hides sensitive information from logging. + schema: + type: boolean + default: false + - variable: quiet + label: Quiet + description: Disables startup information. + schema: + type: boolean + default: false + + - variable: logsearch + label: LogSearch Configuration + schema: + type: dict + attrs: + - variable: enabled + label: Enable LogSearch + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: diskCapacityGB + label: Disk Capacity (GB) + description: The disk capacity for LogSearch. + schema: + type: int + default: 5 + required: true + - variable: pgData + label: Postgres Data Storage + description: The path to store Postgres data. + schema: + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + required: true + immutable: true + default: ixVolume + enum: + - value: hostPath + description: Host Path + - value: ixVolume + description: ixVolume + - variable: datasetName + label: Dataset Name + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + hidden: true + immutable: true + default: postgres-data + $ref: + - "normalize/ixVolume" + - variable: hostPath + label: Host Path + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + immutable: true + required: true + - variable: pgBackup + label: Postgres Backup Storage + description: The path to store Postgres backups. + schema: + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + required: true + default: ixVolume + enum: + - value: hostPath + description: Host Path + - value: ixVolume + description: ixVolume + - variable: datasetName + label: Dataset Name + schema: + type: string + show_if: [["type", "=", "ixVolume"]] + required: true + hidden: true + immutable: true + default: postgres-backup + $ref: + - "normalize/ixVolume" + - variable: hostPath + label: Host Path + schema: + type: hostpath + show_if: [["type", "=", "hostPath"]] + required: true + + - variable: resources + label: "" + group: Resources Configuration + schema: + type: dict + attrs: + - variable: limits + label: Limits + schema: + type: dict + attrs: + - variable: cpu + label: CPU + description: CPU limit for MinIO. + schema: + type: string + default: 4000m + required: true + - variable: memory + label: Memory + description: Memory limit for MinIO. + schema: + type: string + default: 8Gi + required: true diff --git a/enterprise/minio/1.0.0/templates/NOTES.txt b/enterprise/minio/1.0.0/templates/NOTES.txt new file mode 100644 index 0000000000..ba4e01146c --- /dev/null +++ b/enterprise/minio/1.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{ include "ix.v1.common.lib.chart.notes" $ }} diff --git a/enterprise/minio/1.0.0/templates/_configuration.tpl b/enterprise/minio/1.0.0/templates/_configuration.tpl new file mode 100644 index 0000000000..c3584dd385 --- /dev/null +++ b/enterprise/minio/1.0.0/templates/_configuration.tpl @@ -0,0 +1,61 @@ +{{- define "minio.configuration" -}} + + {{/* Validation */}} + {{ include "minio.validation" $ }} + + {{ $config := fromJson (include "minio.prepare.config" $) }} + +{{/* Secrets */}} +secret: + minio-creds: + enabled: true + data: + MINIO_ROOT_USER: {{ .Values.minioCreds.rootUser }} + MINIO_ROOT_PASSWORD: {{ .Values.minioCreds.rootPass }} + MINIO_VOLUMES: {{ $config.volumes }} + {{ with .Values.minioNetwork.serverUrl }} + MINIO_SERVER_URL: {{ . | quote }} + {{ end }} + {{ with .Values.minioNetwork.consoleUrl }} + MINIO_BROWSER_REDIRECT_URL: {{ . | quote }} + {{ end }} + {{ if .Values.minioLogging.logsearch.enabled }} + MINIO_AUDIT_WEBHOOK_ENABLE_ix_logsearch: "on" + MINIO_AUDIT_WEBHOOK_ENDPOINT_ix_logsearch: {{ $config.webhookURL }} + MINIO_LOG_QUERY_AUTH_TOKEN: {{ $config.queryToken }} + MINIO_LOG_QUERY_URL: {{ $config.logQueryURL }} + {{ end }} + + # Always create the logsearch and postgres secret, even if logsearch is disabled. + # Because autogenerated passwords are stored in the secret, and disabling logsearch after + # the secret is created will cause the passwords to be lost (if the secret is conditionally rendered). + logsearch-creds: + enabled: true + data: + LOGSEARCH_PG_CONN_STR: {{ $config.postgresURL }} + LOGSEARCH_AUDIT_AUTH_TOKEN: {{ $config.auditToken }} + MINIO_LOG_QUERY_AUTH_TOKEN: {{ $config.queryToken }} + {{ if .Values.minioLogging.logsearch.enabled }} + LOGSEARCH_DISK_CAPACITY_GB: {{ $config.diskCapacity | quote }} + {{ end }} + + postgres-creds: + enabled: true + data: + POSTGRES_PASSWORD: {{ $config.dbPass }} + POSTGRES_USER: {{ $config.dbUser }} + POSTGRES_DB: {{ $config.dbName }} + POSTGRES_HOST: {{ $config.dbHost }} + POSTGRES_URL: {{ $config.postgresURL }} + +{{/* MinIO Certificate */}} +{{ if .Values.minioNetwork.certificateID }} +scaleCertificate: + minio-cert: + enabled: true + labels: {} + annotations: {} + id: {{ .Values.minioNetwork.certificateID }} +{{ end }} + +{{- end -}} diff --git a/enterprise/minio/1.0.0/templates/_helpers.tpl b/enterprise/minio/1.0.0/templates/_helpers.tpl new file mode 100644 index 0000000000..9808d6cbc5 --- /dev/null +++ b/enterprise/minio/1.0.0/templates/_helpers.tpl @@ -0,0 +1,91 @@ +{{/* Scheme */}} +{{- define "minio.scheme" -}} + {{- $scheme := "http" -}} + {{- if .Values.minioNetwork.certificateID -}} + {{- $scheme = "https" -}} + {{- end -}} + + {{- $scheme -}} +{{- end -}} + +{{- define "minio.hostnetwork" -}} + {{- $hostNet := .Values.minioNetwork.hostNetwork -}} + + {{- range $entry := .Values.minioMultiMode -}} + {{/* + Only if multi mode has urls set hostnetwork, + Multi Mode can be used for single node, multi disk setup + */}} + {{- if contains "://" $entry -}} + {{- $hostNet = true -}} + {{- end -}} + + {{- end -}} + {{- $hostNet -}} +{{- end -}} + +{{/* Validation */}} +{{- define "minio.validation" -}} + {{- if not .Values.minioCreds.rootUser -}} + {{- fail "Expected non-empty " -}} + {{- end -}} + + {{- if not .Values.minioCreds.rootPass -}} + {{- fail "Expected non-empty " -}} + {{- end -}} + + {{- if not .Values.minioStorage -}} + {{- fail "Expected at least 1 storage item added" -}} + {{- end -}} + + {{- if and (ne (len .Values.minioStorage) 1) (not .Values.minioMultiMode) -}} + {{- fail "Expected Multi Mode to be enabled, when more than 1 storage items added" -}} + {{- end -}} +{{- end -}} + +{{/* Config preparation */}} +{{- define "minio.prepare.config" -}} + {{/* Prepare logsearch related config, shared across different configmaps */}} + {{- $config := dict -}} + + {{- $fullname := (include "ix.v1.common.lib.chart.names.fullname" $) -}} + + {{- if .Values.minioLogging.logsearch.enabled -}} + {{- $_ := set $config "diskCapacity" (required "Expected non-empty " .Values.minioLogging.logsearch.diskCapacityGB) -}} + {{- end -}} + + {{- $_ := set $config "dbUser" "logsearch" -}} + {{- $_ := set $config "dbName" "logsearch" -}} + + {{- $_ := set $config "dbPass" (randAlphaNum 32) -}} + {{- with (lookup "v1" "Secret" .Release.Namespace (printf "%s-postgres-creds" $fullname)) -}} + {{- $_ := set $config "dbPass" ((index .data "POSTGRES_PASSWORD") | b64dec) -}} + {{- end -}} + + {{- $_ := set $config "auditToken" (randAlphaNum 32) -}} + {{- with (lookup "v1" "Secret" .Release.Namespace (printf "%s-logsearch-creds" $fullname)) -}} + {{- $_ := set $config "auditToken" ((index .data "LOGSEARCH_AUDIT_AUTH_TOKEN") | b64dec) -}} + {{- end -}} + + {{- $_ := set $config "queryToken" (randAlphaNum 32) -}} + {{- with (lookup "v1" "Secret" .Release.Namespace (printf "%s-logsearch-creds" $fullname)) -}} + {{- $_ := set $config "queryToken" ((index .data "MINIO_LOG_QUERY_AUTH_TOKEN") | b64dec) -}} + {{- end -}} + + {{- $_ := set $config "dbHost" (printf "%s-postgres" $fullname ) -}} + {{- $_ := set $config "logQueryURL" (printf "http://%s-logsearch:8080" $fullname) -}} + {{- $_ := set $config "webhookURL" (printf "%s/api/ingest?token=%v" $config.logQueryURL $config.auditToken) -}} + {{- $_ := set $config "postgresURL" (printf "postgres://%s:%s@%s:5432/%s?sslmode=disable" $config.dbUser $config.dbPass $config.dbHost $config.dbName) -}} + + {{/* When no multi mode, use the first storage entry */}} + {{- $_ := set $config "volumes" (.Values.minioStorage | first).mountPath -}} + {{- if .Values.minioMultiMode -}} + {{- $_ := set $config "volumes" (join " " .Values.minioMultiMode) -}} + {{- end -}} + + {{- if not $config.volumes -}} + {{- fail "ERROR: Volumes can't be empty" -}} + {{- end -}} + + {{- $config | toJson -}} +{{- end -}} diff --git a/enterprise/minio/1.0.0/templates/_logsearch.tpl b/enterprise/minio/1.0.0/templates/_logsearch.tpl new file mode 100644 index 0000000000..f7c3ada148 --- /dev/null +++ b/enterprise/minio/1.0.0/templates/_logsearch.tpl @@ -0,0 +1,51 @@ +{{- define "logsearch.workload" -}} +workload: + logsearch: + enabled: true + type: Deployment + podSpec: + containers: + logsearch: + enabled: true + primary: true + imageSelector: logsearchImage + securityContext: + runAsUser: {{ .Values.minioRunAs.user }} + runAsGroup: {{ .Values.minioRunAs.group }} + envFrom: + - secretRef: + name: logsearch-creds + command: /logsearchapi + probes: + liveness: + enabled: true + type: http + port: 8080 + path: /status + readiness: + enabled: true + type: http + port: 8080 + path: /status + startup: + enabled: true + type: http + port: 8080 + path: /status + initContainers: + {{- include "ix.v1.common.app.postgresWait" (dict "name" "postgres-wait" + "secretName" "postgres-creds") | nindent 8 }} + +{{/* Service */}} +service: + logsearch: + enabled: true + type: ClusterIP + targetSelector: logsearch + ports: + logsearch: + enabled: true + primary: true + port: 8080 + targetSelector: logsearch +{{- end -}} diff --git a/enterprise/minio/1.0.0/templates/_minio.tpl b/enterprise/minio/1.0.0/templates/_minio.tpl new file mode 100644 index 0000000000..d2a47e8166 --- /dev/null +++ b/enterprise/minio/1.0.0/templates/_minio.tpl @@ -0,0 +1,143 @@ +{{- define "minio.workload" -}} +workload: + minio: + enabled: true + primary: true + type: Deployment + podSpec: + hostNetwork: {{ include "minio.hostnetwork" $ }} + containers: + minio: + enabled: true + primary: true + imageSelector: image + securityContext: + runAsUser: {{ .Values.minioRunAs.user }} + runAsGroup: {{ .Values.minioRunAs.group }} + envFrom: + - secretRef: + name: minio-creds + args: + - server + - "--address" + - {{ printf ":%v" .Values.minioNetwork.apiPort | quote }} + - "--console-address" + - {{ printf ":%v" .Values.minioNetwork.webPort | quote }} + {{- if .Values.minioNetwork.certificateID }} + - "--certs-dir" + - "/.minio/certs" + {{- end -}} + {{- if .Values.minioLogging.anonymous }} + - "--anonymous" + {{- end -}} + {{- if .Values.minioLogging.quiet }} + - "--quiet" + {{- end }} + probes: + liveness: + enabled: true + type: {{ include "minio.scheme" $ }} + port: "{{ .Values.minioNetwork.apiPort }}" + path: /minio/health/live + readiness: + enabled: true + type: {{ include "minio.scheme" $ }} + port: "{{ .Values.minioNetwork.apiPort }}" + path: /minio/health/live + startup: + enabled: true + type: {{ include "minio.scheme" $ }} + port: "{{ .Values.minioNetwork.apiPort }}" + path: /minio/health/live + initContainers: + {{- include "ix.v1.common.app.permissions" (dict "UID" .Values.minioRunAs.user + "GID" .Values.minioRunAs.group + "type" "install") | nindent 8 -}} + {{- if .Values.minioLogging.logsearch.enabled }} + logsearch-wait: + enabled: true + type: init + imageSelector: bashImage + resources: + limits: + cpu: 500m + memory: 256Mi + envFrom: + - secretRef: + name: minio-creds + command: bash + args: + - -c + - | + echo "Pinging Logsearch API for readiness..." + until wget --spider --quiet --timeout=3 --tries=1 ${MINIO_LOG_QUERY_URL}/status; do + echo "Waiting for Logsearch API (${MINIO_LOG_QUERY_URL}/status) to be ready..." + sleep 2 + done + echo "Logsearch API is ready" + {{- end }} + +{{/* Service */}} +service: + minio: + enabled: true + primary: true + type: NodePort + targetSelector: minio + ports: + api: + enabled: true + primary: true + port: {{ .Values.minioNetwork.apiPort }} + nodePort: {{ .Values.minioNetwork.apiPort }} + targetSelector: minio + webui: + enabled: true + port: {{ .Values.minioNetwork.webPort }} + nodePort: {{ .Values.minioNetwork.webPort }} + targetSelector: minio + +{{/* Persistence */}} +persistence: + {{- range $idx, $storage := .Values.minioStorage }} + {{ printf "data%v" (int $idx) }}: + enabled: true + type: {{ $storage.type }} + datasetName: {{ $storage.datasetName | default "" }} + hostPath: {{ $storage.hostPath | default "" }} + targetSelector: + minio: + minio: + mountPath: {{ $storage.mountPath }} + permissions: + mountPath: /mnt/directories{{ $storage.mountPath }} + {{- end }} + # Minio writes temporary files to this directory. Adding this as an emptyDir, + # So we don't have to set readOnlyRootFilesystem to false + tempdir: + enabled: true + type: emptyDir + targetSelector: + minio: + minio: + mountPath: /.minio + {{- if .Values.minioNetwork.certificateID }} + cert: + enabled: true + type: secret + objectName: minio-cert + defaultMode: "0600" + items: + - key: tls.key + path: private.key + - key: tls.crt + path: public.crt + - key: tls.crt + path: CAs/public.crt + targetSelector: + minio: + minio: + mountPath: /.minio/certs + readOnly: true + {{- end -}} +{{- end -}} diff --git a/enterprise/minio/1.0.0/templates/_portal.tpl b/enterprise/minio/1.0.0/templates/_portal.tpl new file mode 100644 index 0000000000..04fef05475 --- /dev/null +++ b/enterprise/minio/1.0.0/templates/_portal.tpl @@ -0,0 +1,15 @@ +{{- define "minio.portal" -}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: portal +data: + {{- $host := .Values.minioNetwork.consoleUrl | default "$node_ip" -}} + {{- $host = $host | replace "https://" "" -}} + {{- $host = $host | replace "http://" "" }} + path: "/" + port: {{ .Values.minioNetwork.webPort | quote }} + protocol: {{ include "minio.scheme" $ }} + host: {{ $host }} +{{- end -}} diff --git a/enterprise/minio/1.0.0/templates/_postgres.tpl b/enterprise/minio/1.0.0/templates/_postgres.tpl new file mode 100644 index 0000000000..7a311136fb --- /dev/null +++ b/enterprise/minio/1.0.0/templates/_postgres.tpl @@ -0,0 +1,48 @@ +{{- define "postgres.workload" -}} +workload: +{{- include "ix.v1.common.app.postgres" (dict "secretName" "postgres-creds" "resources" .Values.resources) | nindent 2 }} + +{{/* Service */}} +service: + postgres: + enabled: true + type: ClusterIP + targetSelector: postgres + ports: + postgres: + enabled: true + primary: true + port: 5432 + targetSelector: postgres + +{{/* Persistence */}} +persistence: + postgresdata: + enabled: true + type: {{ .Values.minioLogging.logsearch.pgData.type }} + datasetName: {{ .Values.minioLogging.logsearch.pgData.datasetName | default "" }} + hostPath: {{ .Values.minioLogging.logsearch.pgData.hostPath | default "" }} + targetSelector: + # Postgres pod + postgres: + # Postgres container + postgres: + mountPath: /var/lib/postgresql/data + # Permissions container + permissions: + mountPath: /mnt/directories/postgres_data + postgresbackup: + enabled: true + type: {{ .Values.minioLogging.logsearch.pgBackup.type }} + datasetName: {{ .Values.minioLogging.logsearch.pgBackup.datasetName | default "" }} + hostPath: {{ .Values.minioLogging.logsearch.pgBackup.hostPath | default "" }} + targetSelector: + # Postgres backup pod + postgresbackup: + # Postgres backup container + postgresbackup: + mountPath: /postgres_backup + # Permissions container + permissions: + mountPath: /mnt/directories/postgres_backup +{{- end -}} diff --git a/enterprise/minio/1.0.0/templates/common.yaml b/enterprise/minio/1.0.0/templates/common.yaml new file mode 100644 index 0000000000..b013a2644c --- /dev/null +++ b/enterprise/minio/1.0.0/templates/common.yaml @@ -0,0 +1,15 @@ +{{- include "ix.v1.common.loader.init" . -}} + +{{/* Merge the templates with Values */}} +{{- $_ := mustMergeOverwrite .Values (include "minio.configuration" $ | fromYaml) -}} + +{{- $_ := mustMergeOverwrite .Values (include "minio.workload" $ | fromYaml) -}} +{{- if .Values.minioLogging.logsearch.enabled -}} + {{- $_ := mustMergeOverwrite .Values (include "logsearch.workload" $ | fromYaml) -}} + {{- $_ := mustMergeOverwrite .Values (include "postgres.workload" $ | fromYaml) -}} +{{- end -}} + +{{/* Create the configmap for portal manually*/}} +{{- include "minio.portal" $ -}} + +{{- include "ix.v1.common.loader.apply" . -}} diff --git a/enterprise/minio/item.yaml b/enterprise/minio/item.yaml new file mode 100644 index 0000000000..42760f5321 --- /dev/null +++ b/enterprise/minio/item.yaml @@ -0,0 +1,5 @@ +icon_url: https://min.io/resources/img/logo/MINIO_wordmark.png +categories: + - storage + - object-storage + - S3