Pārlūkot izejas kodu

Update catalog information

sonicaj 2 gadi atpakaļ
vecāks
revīzija
90bb397087

+ 23 - 2
catalog.json

@@ -266,7 +266,28 @@
         }
     },
     "test": {},
-    "enterprise": {},
+    "enterprise": {
+        "minio": {
+            "app_readme": "<h1>MinIO</h1>\n<p><a href=\"https://min.io\">MinIO</a> 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.</p>\n<blockquote>\n<p>During the installation process, a container will be launched with <strong>root</strong> privileges. This is required\nin order to apply the correct permissions to the MinIO data directory. Afterward, the <code>MinIO</code> container\nwill run as a <strong>non</strong>-root user (<code>568</code>).\nSame applies to the <code>postgres</code> container. This will run afterwards as a <strong>non</strong>-root user (<code>999</code>).\nOn each upgrade, a container will be launched with <strong>root</strong> privileges in order to apply the correct\npermissions to the <code>postgres</code> backups directory. Container that performs the backup will run as a <strong>non</strong>-root user (<code>999</code>) afterwards.\nKeep in mind the permissions on the backup directory will be changed to <code>999:999</code> on <strong>every</strong> update.\nBut will only be changed once for the <code>MinIO</code> and <code>postgres</code> data directories.</p>\n</blockquote>\n<p>When Multi Mode is enabled and entries contain <code>://</code> (url) will enable Host Networking. Regardless of the selection in the <code>Networking</code> section.</p>",
+            "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": "<h1>Vaultwarden</h1>\n<p><a href=\"https://github.com/dani-garcia/vaultwarden\">Vaultwarden</a> Alternative implementation of the <code>Bitwarden</code> server API written in Rust and compatible with upstream Bitwarden clients</p>\n<blockquote>\n<p>During the installation process, a container will be launched with <strong>root</strong> privileges. This is required\nin order to apply the correct permissions to the <code>Vaultwarden</code> data directory. Afterward, the <code>Vaultwarden</code> container\nwill run as a <strong>non</strong>-root user (default <code>568</code>).\nSame applies to the <code>postgres</code> container. This will run afterwards as a <strong>non</strong>-root user (<code>999</code>).\nOn each upgrade, a container will be launched with <strong>root</strong> privileges in order to apply the correct\npermissions to the <code>postgres</code> <strong>backups</strong> directory. Container that performs the backup will run as a <strong>non</strong>-root user (<code>999</code>) afterwards.\nKeep in mind the permissions on the backup directory will be changed to <code>999:999</code> on <strong>every</strong> update.\nBut will only be changed once for the <code>Vaultwarden</code> and <code>postgres</code> data directories.</p>\n</blockquote>\n<p>While the option to use <code>Rocket</code> for TLS is there, it is not\n<a href=\"https://github.com/dani-garcia/vaultwarden/wiki/Enabling-HTTPS#via-rocket\">recommended</a>.\nInstead, use a reverse proxy to handle TLS termination.</p>\n<p>Using <code>HTTPS</code> is <strong>required</strong> for the most of the features to work (correctly).</p>",
@@ -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",

+ 6 - 0
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"

+ 25 - 0
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

+ 16 - 0
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.

+ 16 - 0
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.

BIN
enterprise/minio/1.0.0/charts/common-1.0.3.tgz


+ 126 - 0
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-----

+ 139 - 0
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-----

+ 43 - 0
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: ""

+ 30 - 0
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

+ 106 - 0
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-----

+ 118 - 0
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-----

+ 28 - 0
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: ""

+ 19 - 0
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

+ 50 - 0
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

+ 351 - 0
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. <br/>
+            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. <br/>
+            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.</br>
+          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</br>
+            For example https;//minio1.example.com.</br></br>
+            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</br>
+            For example https;//console.example.com.</br></br>
+            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:</br>
+      Example Entry - /data{1...4}</br></br>
+      For Multi Node Multi Drive (MNMD), the entry will look like this:</br>
+      Example Entry - https://minio{1...3}.example.com:30000/data{1...4}</br></br>
+      Note that each host must use the same port number and the same number of storage items.</br>
+      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

+ 1 - 0
enterprise/minio/1.0.0/templates/NOTES.txt

@@ -0,0 +1 @@
+{{ include "ix.v1.common.lib.chart.notes" $ }}

+ 61 - 0
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 -}}

+ 91 - 0
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 <rootUser>" -}}
+  {{- end -}}
+
+  {{- if not .Values.minioCreds.rootPass -}}
+    {{- fail "Expected non-empty <rootPass>" -}}
+  {{- 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 <disk_capacity_gb>" .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 -}}

+ 51 - 0
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 -}}

+ 143 - 0
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 -}}

+ 15 - 0
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 -}}

+ 48 - 0
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 -}}

+ 15 - 0
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" . -}}

+ 5 - 0
enterprise/minio/item.yaml

@@ -0,0 +1,5 @@
+icon_url: https://min.io/resources/img/logo/MINIO_wordmark.png
+categories:
+  - storage
+  - object-storage
+  - S3