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

     1  apiVersion: storage.kubeblocks.io/v1alpha1
     2  kind: StorageProvider
     3  metadata:
     4    name: oss
     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      {{ `{{- $region := index .Parameters "region" }}` }}
    13      {{ `{{- $endpoint := index .Parameters "endpoint" }}` }}
    14      {{ `{{- if not $endpoint }}` }}
    15        {{ `{{- $endpoint = (printf "https://oss-%s.aliyuncs.com" $region) }}` }}
    16      {{ `{{- end }}` }}
    17      endpoint: {{ `{{ $endpoint }}` }}
    18  
    19    storageClassTemplate: |
    20      provisioner: ru.yandex.s3.csi
    21      parameters:
    22        mounter: geesefs
    23        # you can set mount options here, for example limit memory cache size (recommended)
    24        options: {{ `{{ printf "--memory-limit 1000 --dir-mode 0777 --file-mode 0666 %s --subdomain" (index .Parameters "mountOptions") }}` }}
    25        bucket: {{ `{{ index .Parameters "bucket" }}` }}
    26        csi.storage.k8s.io/provisioner-secret-name: {{ `{{ .CSIDriverSecretRef.Name }}` }}
    27        csi.storage.k8s.io/provisioner-secret-namespace: {{ `{{ .CSIDriverSecretRef.Namespace }}` }}
    28        csi.storage.k8s.io/controller-publish-secret-name: {{ `{{ .CSIDriverSecretRef.Name }}` }}
    29        csi.storage.k8s.io/controller-publish-secret-namespace: {{ `{{ .CSIDriverSecretRef.Namespace }}` }}
    30        csi.storage.k8s.io/node-stage-secret-name: {{ `{{ .CSIDriverSecretRef.Name }}` }}
    31        csi.storage.k8s.io/node-stage-secret-namespace: {{ `{{ .CSIDriverSecretRef.Namespace }}` }}
    32        csi.storage.k8s.io/node-publish-secret-name: {{ `{{ .CSIDriverSecretRef.Name }}` }}
    33        csi.storage.k8s.io/node-publish-secret-namespace: {{ `{{ .CSIDriverSecretRef.Namespace }}` }}
    34  
    35    datasafedConfigTemplate: |
    36      [storage]
    37      type = s3
    38      provider = Alibaba
    39      env_auth = false
    40      access_key_id = {{ `{{ index .Parameters "accessKeyId" }}` }}
    41      secret_access_key = {{ `{{ index .Parameters "secretAccessKey" }}` }}
    42      endpoint = {{ `{{- printf "oss-%s.aliyuncs.com" .Parameters.region) }}` }}
    43      root = {{ `{{ index .Parameters "bucket" }}` }}
    44      chunk_size = 50Mi
    45  
    46    parametersSchema:
    47      openAPIV3Schema:
    48        type: "object"
    49        properties:
    50          region:
    51            type: string
    52            description: "OSS region, e.g. cn-hangzhou"
    53          bucket:
    54            type: string
    55            description: "OSS bucket"
    56          endpoint:
    57            type: string
    58            description: "OSS endpoint (optional)"
    59          mountOptions:
    60            type: string
    61            description: "mount options for geesefs"
    62          accessKeyId:
    63            type: string
    64            description: "OSS access key"
    65          secretAccessKey:
    66            type: string
    67            description: "OSS secret key"
    68  
    69        required:
    70          - bucket
    71          - region
    72          - accessKeyId
    73          - secretAccessKey
    74  
    75      credentialFields:
    76        - accessKeyId
    77        - secretAccessKey