# -- Name of the registered CSI Driver in the cluster
provisionerName: "rawfile.csi.openebs.io"

# -- Level of the logs (DEBUG, INFO, etc.)
logLevel: INFO
# -- Format of the logs (json, pretty)
logFormat: json

# -- Used to reserve capacity on each node for data dir storage on each host (Supports percentage and size) [e.g. `25%` or `50GB` or `10MiB`]
reservedCapacity: ""
# -- Overrides total capacity of the storage for data dir storage on each host (Support size values) [e.g. `50GB` or `10MiB`]
capacityOverride: ""

auth:
  # -- Enables authentication for internal gRPC server
  enabled: true
  # -- Sets authentication token for internal gRPC server, will generate one if nothing provided
  token: ""

global:
  # -- Default image registry for Images from DockerHub
  imageRegistry: docker.io
  # -- Default image registry for Images from Kubernetes (registry.k8s.io)
  k8sImageRegistry: registry.k8s.io
  # -- Default pull policy for images
  imagePullPolicy: IfNotPresent
  # -- Default image pull secret for images
  imagePullSecrets: []
  analytics:
    # -- Enable OpenEBS analytics which help track engine traction and usage.
    enabled: true

image:
  # -- Image registry for rawfile-localpv (default is global.imageRegistry)
  registry: ""
  # -- Image repository for rawfile-localpv
  repository: openebs/rawfile-localpv
  # -- Default image tag for node and controller components (uses AppVersion if empty)
  tag: ""
  # -- Default image pull policy for node and controller components
  pullPolicy: IfNotPresent

controller:
  image:
    # -- Overrides default image repository for node component
    repository: ""
    # -- Overrides default image tag for node component
    tag: ""
    # -- Overrides default image pull policy for node component
    pullPolicy: ""

  externalResizer:
    image:
      # -- Image registry for `csi-resizer`
      registry: ""
      # -- Image Repository for `csi-resizer`
      repository: sig-storage/csi-resizer
      # -- Image tag for `csi-resizer`
      tag: v1.13.2

  # -- Sets compute resources for controller component
  resources:
    {}
    # limits:
    #   cpu: 1
    #   memory: 100Mi
    # requests:
    #   cpu: 10m
    #   memory: 100Mi

  # -- priorityClassName for controller component since this part is critical for cluster `system-cluster-critical` is default
  priorityClassName: system-cluster-critical

  # -- Tolerations for controller component
  tolerations:
    - key: "node-role.kubernetes.io/master"
      operator: Equal
      value: "true"
      effect: NoSchedule

  # -- Number of gRPC workers for controller component
  grpcWorkers: 10

node:
  image:
    # -- Overrides default image repository for node component
    repository: ""
    # -- Overrides default image tag for node component
    tag: ""
    # -- Overrides default image pull policy for node component
    pullPolicy: ""

  driverRegistrar:
    image:
      # -- Image Registry for `csi-node-driver-registrar`
      registry: ""
      # -- Image Repository for `csi-node-driver-registrar`
      repository: sig-storage/csi-node-driver-registrar
      # -- Image Tag for `csi-node-driver-registrar`
      tag: v2.13.0

  externalProvisioner:
    image:
      # -- Image Registry for `csi-provisioner`
      registry: ""
      # -- Image Repository for `csi-provisioner`
      repository: sig-storage/csi-provisioner
      # -- Image Tag for `csi-provisioner`
      tag: v5.2.0

  externalSnapshotter:
    image:
      # -- Image Registry for `csi-snapshotter`
      registry: ""
      # -- Image Repository for `csi-snapshotter`
      repository: sig-storage/csi-snapshotter
      # -- Image Tag for `csi-snapshotter`
      tag: v8.2.1

  snapshotController:
    image:
      # -- Image Registry for `snapshot-controller`
      registry: ""
      # -- Image Repository for `snapshot-controller`
      repository: sig-storage/snapshot-controller
      # -- Image Tag for `snapshot-controller`
      tag: v8.2.1

  # -- Data dir path for provisioner to be used by provisioner
  dataDirPath: /var/csi/rawfile

  # -- Metadata dir path for rawfile volumes metadata and tasks store file
  metadataDirPath: /var/local/openebs/rawfile/{{ .Release.Name }}/meta

  # -- Kubelet path (Set to `/var/lib/k0s/kubelet` for k0s)
  kubeletPath: /var/lib/kubelet

  # -- Sets compute resources for node component
  resources:
    {}
    # limits:
    #   cpu: 1
    #   memory: 100Mi
    # requests:
    #   cpu: 10m
    #   memory: 100Mi
  metrics:
    enabled: false

  # -- priorityClassName for node component since this part is critical for node `system-node-critical` is default
  priorityClassName: system-node-critical

  # -- Tolerations for node component
  tolerations:

  # -- Number of gRPC workers for node component
  grpcWorkers: 10

  internalGRPC:
    # -- Port Number used for internal communication gRPC server
    port: 4500
    # --gRPC worker count used for internal communication
    workers: 10

# -- Sets image pull secret while pulling images from a private registry
imagePullSecrets: []

metrics:
  # -- Completely enable or disable metrics
  enabled: true
  # -- Sets metrics port
  port: 9100
  serviceMonitor:
    # -- Enables prometheus service monitor
    enabled: false
    # -- Sets prometheus target interval
    interval: 1m

storageClasses:
  - # -- Name of the StorageClass
    name: rawfile-localpv
    # -- Enable or disable StorageClass
    enabled: true
    # -- Sets volumeBindingMode for StorageClass
    volumeBindingMode: WaitForFirstConsumer
    # -- Make the storage class as default
    isDefault: false
    # -- volumes are able to expand/resize or not?
    allowVolumeExpansion: true
    # -- Sets default reclaimPolicy for StorageClass volumes
    reclaimPolicy: Delete
    # -- Sets filesystem type for volumes (Currently supports `btrfs`, `xfs` and `ext4` [which is default])
    fsType: ext4
    # -- Enables thin provisioning of volumes
    thinProvision: ""
    # -- Sets mount options for filesystem volumes
    mountOptions: []
    # -- Sets format options for filesystem volumes
    formatOptions: []
    # -- Enables CoW on storage class (defaults to autodetect)
    copyOnWrite: ""
    # -- Enables FreezeFS on storage class can be used to enable snapshotting of inused volumes when CoW is disabled/not supported (False by default)
    freezeFs: ""

snapshotClasses:
  - # -- Name of the SnapshotClass
    name: rawfile-localpv
    # -- Enable or disable SnapshotClass
    enabled: true
    # -- Sets deletion policy for snapshots created using this class (Delete or Retain)
    deletionPolicy: Delete
    # -- Make the snapshot class as default
    isDefault: false

crds:
  # -- Disables the installation of all CRDs if set to false
  enabled: true
  csi:
    volumeSnapshots:
      # -- Install Volume Snapshot CRDs
      enabled: true
