# Default values for minio-operator.

operator:
  ## set kubernetes cluster domain where minio is running
  clusterDomain:  cluster.local
  # nsToWatch: set to blank to enable watching all namespaces
  nsToWatch: ""
  image:
    repository: registry1.dso.mil/ironbank/opensource/minio/operator
    tag: v4.0.4
    pullPolicy: IfNotPresent
  imagePullSecrets: []
  replicaCount: 1
  securityContext:
    runAsUser: 1000
    runAsGroup: 1000
    runAsNonRoot: true
  resources:
    requests:
      cpu: 200m
      memory: 256Mi
      ephemeral-storage: 500Mi

nameOverride: ""
fullnameOverride: ""
## set kubernetes cluster domain where minio is running
##
clusterDomain:
# watchedNamespace: set to blank to enable watching all namespaces
watchedNamespace:


serviceAccount:
  # Specifies whether a service account should be created
  create: true
  # Annotations to add to the service account
  annotations: {}
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name: ""
nodeSelector: {}
affinity: {}

console:
  image:
    repository: minio/console
    tag: v0.6.3
    pullPolicy: IfNotPresent
  replicaCount: 1

## MinIO Tenant Definition
tenants:
  # Tenant name
  - name: minio1
    ## Registry location and Tag to download MinIO Server image
    image:
      repository: minio/minio
      tag: RELEASE.2021-03-01T04-20-55Z
      pullPolicy: IfNotPresent
    imagePullSecrets: []
    ## 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: {}
    ## 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: {}
    secrets:
      name: minio1-secret
      accessKey: ThisIsAVeryLongPasswordForExample
      secretKey: ThisIsAVeryLongPasswordForExample
    metrics:
      enabled: false
      port: 9000
    ## 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: 4
        ## volumesPerServer specifies the number of volumes attached per MinIO Tenant Pod / Server.
        volumesPerServer: 4
        ## size specifies the capacity per volume
        size: 10Gi
        ## storageClass specifies the storage class name to be used for this pool
        storageClassName: standard
    ## Mount path where PV will be mounted inside container(s).
    mountPath: /export
    ## Sub path inside Mount path where MinIO stores data.
    subPath: /data
    certificate:
      ## 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: true
      ## 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: {}
    ## 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 : ""
    ## Define configuration for Console (Graphical user interface for MinIO)
    ## Refer https://github.com/minio/console
    console:
      image:
        repository: minio/console
        tag: v0.6.3
        pullPolicy: IfNotPresent
      replicaCount: 1
      secrets:
        name: console-secret
        passphrase: ThisIsAVeryLongPasswordForExample
        salt: ThisIsAVeryLongPasswordForExample
        accessKey: ThisIsAVeryLongPasswordForExample
        secretKey: ThisIsAVeryLongPasswordForExample