operator:
  env:
    - name: MINIO_OPERATOR_TLS_ENABLE
      value: "off"
  image:
    repository: minio/operator
    tag: v4.3.2
    pullPolicy: IfNotPresent
  imagePullSecrets: []
  initcontainers: []
  replicaCount: 1
  securityContext:
    runAsUser: 1000
    runAsGroup: 1000
    runAsNonRoot: true
    fsGroup: 1000
  nodeSelector: {}
  affinity: {}
  tolerations: []
  topologySpreadConstraints: []
  resources:
    requests:
      cpu: 200m
      memory: 256Mi
      ephemeral-storage: 500Mi

console:
  image:
    repository: minio/console
    tag: v0.10.0
    pullPolicy: IfNotPresent
  imagePullSecrets: []
  initcontainers: []
  replicaCount: 1
  nodeSelector: {}
  affinity: {}
  tolerations: []
  topologySpreadConstraints: []
  resources: {}
  securityContext:
    runAsUser: 1000
    runAsNonRoot: true
  ingress:
    enabled: false
    labels: {}
    annotations: {}
    tls: []
    host: console.local
    path: /

## MinIO Tenant Definition
tenants:
  # Tenant name
  - name: minio1
    ## Registry location and Tag to download MinIO Server image
    image:
      repository: minio/minio
      tag: RELEASE.2021-10-06T23-36-31Z
      pullPolicy: IfNotPresent
    ## Customize namespace for tenant deployment
    namespace: dev1
    ## Customize any private registry image pull secret.
    ## currently only one secret registry is supported
    imagePullSecret: {}
    ## If a scheduler is specified here, Tenant pods will be dispatched by specified scheduler.
    ## If not specified, the Tenant pods will be dispatched by default scheduler.
    scheduler: {}
    ## Specification for MinIO Pool(s) in this Tenant.
    pools:
      ## Servers specifies the number of MinIO Tenant Pods / Servers in this pool.
      ## For standalone mode, supply 1. For distributed mode, supply 4 or more.
      ## Note that the operator does not support upgrading from standalone to distributed mode.
      - servers: 1
        ## volumesPerServer specifies the number of volumes attached per MinIO Tenant Pod / Server.
        volumesPerServer: 4
        ## size specifies the capacity per volume
        size: 20Gi
        ## storageClass specifies the storage class name to be used for this pool
        storageClassName: ebs-sc
        ## Used to specify a toleration for a pod
        tolerations: {}
        ## nodeSelector parameters for MinIO Pods. It specifies a map of key-value pairs. For the pod to be
        ## eligible to run on a node, the node must have each of the
        ## indicated key-value pairs as labels.
        ## Read more here: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
        nodeSelector: {}
        ## Affinity settings for MinIO pods. Read more about affinity
        ## here: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity.
        affinity: {}
        ## Configure resource requests and limits for MinIO containers
        resources: {}
        ## Configure security context
        securityContext: {}
        ## Configure topology constraints
        topologySpreadConstraints: []
    ## Mount path where PV will be mounted inside container(s).
    mountPath: /export
    ## Sub path inside Mount path where MinIO stores data.
    subPath: /data
    # pool secrets
    secrets:
      # create a kubernetes secret object with the accessKey and secretKey as defined here.
      enabled: true
      name: minio1-secret
      accessKey: minioadmin
      secretKey: minioadmin
    # pool metrics to be read by Prometheus
    metrics:
      enabled: false
      port: 9000
    certificate:
      ## Use this field to provide one or more external CA certificates. This is used by MinIO
      ## to verify TLS connections with other applications:
      ## https://github.com/minio/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret
      externalCaCertSecret: {}
      ## Use this field to provide a list of Secrets with external certificates. This can be used to to configure
      ## TLS for MinIO Tenant pods. Create secrets as explained here:
      ## https://github.com/minio/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret
      externalCertSecret: {}
      ## Enable automatic Kubernetes based certificate generation and signing as explained in
      ## https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster
      requestAutoCert: false
      ## This field is used only when "requestAutoCert" is set to true. Use this field to set CommonName
      ## for the auto-generated certificate. Internal DNS name for the pod will be used if CommonName is
      ## not provided. DNS name format is *.minio.default.svc.cluster.local
      certConfig: {}
    ## Enable S3 specific features such as Bucket DNS which would allow `buckets` to be
    ## accessible as DNS entries of form `<bucketname>.minio.default.svc.cluster.local`
    s3:
      ## This feature is turned off by default
      bucketDNS: false
    ## PodManagement policy for MinIO Tenant Pods. Can be "OrderedReady" or "Parallel"
    ## Refer https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy
    ## for details.
    podManagementPolicy: Parallel
    ## serviceMetadata allows passing additional labels and annotations to MinIO and Console specific
    ## services created by the operator.
    serviceMetadata: {}
    ## Add environment variables to be set in MinIO container (https://github.com/minio/minio/tree/master/docs/config)
    env:
    - name: MINIO_ACCESS_KEY
      value: "minioadmin"
    - name: MINIO_SECRET_KEY
      value: "minioadmin"  
    ## PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods.
    ## This is applied to MinIO pods only.
    ## Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass/
    priorityClassName: ""
