github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/helm/templates/storageprovider/minio.yaml (about)

     1  apiVersion: storage.kubeblocks.io/v1alpha1
     2  kind: StorageProvider
     3  metadata:
     4    name: minio
     5    labels:
     6      {{- include "kubeblocks.labels" . | nindent 4 }}
     7  spec:
     8    csiDriverName: ru.yandex.s3.csi
     9    csiDriverSecretTemplate: |
    10      accessKeyID: {{ `{{ index .Parameters "accessKeyId" }}` }}
    11      secretAccessKey: {{ `{{ index .Parameters "secretAccessKey" }}` }}
    12      endpoint: {{ `{{ index .Parameters "endpoint" }}` }}
    13  
    14    storageClassTemplate: |
    15      provisioner: ru.yandex.s3.csi
    16      parameters:
    17        mounter: geesefs
    18        # you can set mount options here, for example limit memory cache size (recommended)
    19        options: {{ `{{ printf "--memory-limit 1000 --dir-mode 0777 --file-mode 0666 %s" (index .Parameters "mountOptions") }}` }}
    20        bucket: {{ `{{ index .Parameters "bucket" }}` }}
    21        csi.storage.k8s.io/provisioner-secret-name: {{ `{{ .CSIDriverSecretRef.Name }}` }}
    22        csi.storage.k8s.io/provisioner-secret-namespace: {{ `{{ .CSIDriverSecretRef.Namespace }}` }}
    23        csi.storage.k8s.io/controller-publish-secret-name: {{ `{{ .CSIDriverSecretRef.Name }}` }}
    24        csi.storage.k8s.io/controller-publish-secret-namespace: {{ `{{ .CSIDriverSecretRef.Namespace }}` }}
    25        csi.storage.k8s.io/node-stage-secret-name: {{ `{{ .CSIDriverSecretRef.Name }}` }}
    26        csi.storage.k8s.io/node-stage-secret-namespace: {{ `{{ .CSIDriverSecretRef.Namespace }}` }}
    27        csi.storage.k8s.io/node-publish-secret-name: {{ `{{ .CSIDriverSecretRef.Name }}` }}
    28        csi.storage.k8s.io/node-publish-secret-namespace: {{ `{{ .CSIDriverSecretRef.Namespace }}` }}
    29  
    30    datasafedConfigTemplate: |
    31      [storage]
    32      type = s3
    33      provider = Minio
    34      env_auth = false
    35      access_key_id = {{ `{{ index .Parameters "accessKeyId" }}` }}
    36      secret_access_key = {{ `{{ index .Parameters "secretAccessKey" }}` }}
    37      endpoint = {{ `{{ index .Parameters "endpoint" }}` }}
    38      root = {{ `{{ index .Parameters "bucket" }}` }}
    39      chunk_size = 50Mi
    40  
    41    parametersSchema:
    42      openAPIV3Schema:
    43        type: "object"
    44        properties:
    45          bucket:
    46            type: string
    47            description: "MinIO bucket"
    48          endpoint:
    49            type: string
    50            description: "MinIO endpoint"
    51          mountOptions:
    52            type: string
    53            description: "mount options for geesefs"
    54          accessKeyId:
    55            type: string
    56            description: "MinIO access key"
    57          secretAccessKey:
    58            type: string
    59            description: "MinIO secret key"
    60  
    61        required:
    62          - bucket
    63          - endpoint
    64          - accessKeyId
    65          - secretAccessKey
    66  
    67      credentialFields:
    68        - accessKeyId
    69        - secretAccessKey