---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2beta2.json
apiVersion: helm.toolkit.fluxcd.io/v2beta2
kind: HelmRelease
metadata:
  name: local-path-provisioner
spec:
  interval: 30m
  chart:
    spec:
      chart: democratic-csi
      version: 0.14.5
      sourceRef:
        name: democratic-csi
        kind: HelmRepository
        namespace: flux-system
  install:
    remediation:
      retries: 3
  upgrade:
    cleanupOnFail: true
    remediation:
      retries: 3
  uninstall:
    keepHistory: false
  values:
    fullnameOverride: local-path-provisioner
    controller:
      strategy: node
      externalProvisioner:
        image: registry.k8s.io/sig-storage/csi-provisioner:v4.0.0
        extraArgs:
          - --leader-election=false
          - --node-deployment=true
          - --node-deployment-immediate-binding=false
          - --feature-gates=Topology=true
          - --strict-topology=true
          - --enable-capacity=true
          - --capacity-ownerref-level=1
      externalResizer:
        enabled: false
      externalAttacher:
        enabled: false
      externalSnapshotter:
        enabled: false
    csiDriver:
      name: local-hostpath.cluster.local
      storageCapacity: true
      attachRequired: false
      fsGroupPolicy: File
    storageClasses:
      - name: local-hostpath
        defaultClass: false
        reclaimPolicy: Delete
        volumeBindingMode: WaitForFirstConsumer
        allowVolumeExpansion: true
    driver:
      config:
        driver: local-hostpath
        local-hostpath:
          shareBasePath: &storagePath /var/lib/rancher/k3s/local-hostpath
          controllerBasePath: *storagePath
          dirPermissionsMode: "0770"
          dirPermissionsUser: 0
          dirPermissionsGroup: 0
    node:
      driver:
        image: ghcr.io/democratic-csi/democratic-csi:v1.8.4
        extraVolumeMounts:
          - name: local-hostpath
            mountPath: *storagePath
            mountPropagation: Bidirectional
      extraVolumes:
        - name: local-hostpath
          hostPath:
            path: *storagePath
            type: DirectoryOrCreate