apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
  name: local-path-provisioner
  namespace: flux-system
spec:
  interval: 1m
  url: https://github.com/rancher/local-path-provisioner.git
  ref:
    tag: v0.0.26
---
apiVersion: helm.toolkit.fluxcd.io/v2beta2
kind: HelmRelease
metadata:
  name: local-path-provisioner
  namespace: kube-system
spec:
  interval: 15m
  chart:
    spec:
      chart: ./deploy/chart/local-path-provisioner
      sourceRef:
        kind: GitRepository
        name: local-path-provisioner
        namespace: flux-system
  maxHistory: 3
  install:
    createNamespace: true
    remediation:
      retries: 3
  upgrade:
    cleanupOnFail: true
    remediation:
      retries: 3
  uninstall:
    keepHistory: false
  values:
    helperImage:
      repository: public.ecr.aws/docker/library/busybox
      tag: latest
    storageClass:
      defaultClass: false
    nodePathMap:
      - node: DEFAULT_PATH_FOR_NON_LISTED_NODES
        paths: ["/var/lib/rancher/k3s/storage"]
    # Note: Do not enable Flux variable substitution on this HelmRelease
    configmap:
      setup: |-
        #!/bin/sh
        while getopts "m:s:p:" opt
        do
            case $opt in
                p)
                absolutePath=$OPTARG
                ;;
                s)
                sizeInBytes=$OPTARG
                ;;
                m)
                volMode=$OPTARG
                ;;
            esac
        done
        mkdir -m 0777 -p ${absolutePath}
        chmod 701 ${absolutePath}/..
      teardown: |-
        #!/bin/sh
        while getopts "m:s:p:" opt
        do
            case $opt in
                p)
                absolutePath=$OPTARG
                ;;
                s)
                sizeInBytes=$OPTARG
                ;;
                m)
                volMode=$OPTARG
                ;;
            esac
        done
        rm -rf ${absolutePath}